57 lines
2.1 KiB
Markdown
Raw Normal View History

2025-03-14 14:37:12 +05:00
# Reproducible Builds
[![Reproducible build](https://github.com/mollyim/mollyim-android/actions/workflows/reprocheck.yml/badge.svg)](https://github.com/mollyim/mollyim-android/actions/workflows/reprocheck.yml)
Follow these instructions to verify that this source code is exactly the same code that was used to compile the APK distributed on the website.
The [reproducible-builds.org](https://reproducible-builds.org/) project has more information about this general topic.
## Prerequisites
- Docker
- Docker Compose
- Python 3
## Build and Verify
You can compile you own release of Molly inside a Docker container and compare the resulted APK to the APK that is officially distributed. To do so, execute the following:
```shell
# Set the release version you want to check
export VERSION=v5.42.8-2
# Clone the source code repository
git clone https://github.com/mollyim/mollyim-android.git
# Go to this directory
cd mollyim-android/reproducible-builds
# Check out the release tag
git checkout $VERSION
# The following steps might be different for the chosen version.
# Before proceeding, you should open this tutorial (README.md file) and review the instructions.
# Build the APK using the Docker environment
docker compose up --build
# Download the official APK
wget https://github.com/mollyim/mollyim-android/releases/download/$VERSION/Molly-$VERSION.apk
# Download the official APK (FOSS)
wget https://github.com/mollyim/mollyim-android/releases/download/$VERSION/Molly-$VERSION-FOSS.apk
# Run the diff script to compare the APKs
python apkdiff/apkdiff.py Molly-$VERSION.apk outputs/apk/prodGmsWebsite/release/Molly-unsigned-$VERSION.apk
# Run the diff script to compare the APKs (FOSS)
python apkdiff/apkdiff.py Molly-$VERSION-FOSS.apk outputs/apk/prodFossWebsite/release/Molly-unsigned-$VERSION-FOSS.apk
# Clean up the Docker environment
docker compose down
```
If you get `APKs match`, you have **successfully verified** that the official release matches with your own self-built version of Molly. Congratulations!
If you get `APKs don't match`, please [report the issue](https://github.com/mollyim/mollyim-android/issues).