Skip to content
This repository was archived by the owner on Mar 26, 2026. It is now read-only.

Commit 40efcaf

Browse files
committed
update reproducible readme about AGP 9
1 parent 546277d commit 40efcaf

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

‎reproducible/README.md‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ This folder contains the tooling to rebuild tagged releases inside Docker and co
1515
- unzip, curl
1616
- uv for tool installs, plus `apksigcopier` and `diffoscope`: `uv tool install apksigcopier diffoscope`
1717
- Android SDK build-tools `dexdump` for `diff_dexdump.py` (e.g., `${ANDROID_HOME}/build-tools/<ver>/dexdump`)
18-
- Tooling snapshot: Gradle 8.13-bin, AGP 8.13.1, Kotlin compiler/KGP 2.2.21/1.9.24, KSP 2.2.21-2.0.4; R8 is the AGP-bundled version (map-id flag not exposed).
18+
- Tooling snapshot: Gradle wrapper 9.2.1, AGP 9.0.0, Kotlin/KSP from `gradle/libs.versions.toml`; R8 is the AGP-bundled version (AGP still does not expose a public map-id seed/template flag).
1919

2020
## Step-by-step verification
2121
1) Auth + credentials:
@@ -32,10 +32,10 @@ This folder contains the tooling to rebuild tagged releases inside Docker and co
3232
6) Optional dexdump diff: `./diff_dexdump.py <official-apk> <rebuilt-apk> [--out-dir DIR] [--dexdump PATH] [--tag TAG]` to write per-dex dumps/diffs (defaults to `artifacts/reproducible/<tag>/dexdump` when `--tag` is provided).
3333

3434
## Known issues
35-
- AGP 8.13.1 (bundled R8) randomizes map-id; we patch via `fix_pg_map_id.py` and confirm payload identity by copying the official signing block (apksigcopier). Deterministic map-id support is still required for strict reproducibility.
36-
- Kotlin 2.2.x constrains AGP/R8 upgrades; AGP 9.0.0-beta03 + Gradle 9.2.1 (R8 9.0.27) rejects `-pg-map-id-seed` and lacks Studio support, so we remain on AGP 8.13.1/Gradle 8.13-bin.
35+
- AGP 9.0.0 (bundled R8) still does not provide a public DSL/property to set deterministic map-id values for release builds; we patch via `fix_pg_map_id.py` and confirm payload identity by copying the official signing block (apksigcopier).
36+
- `R8_MAP_ID_SEED` is kept as reproducible tooling input, but AGP 9.0.0 does not currently wire it to a supported map-id flag.
3737

3838
## Path forward
39-
1) Upgrade to an AGP that supports Kotlin 2.2.x and bundles a map-id-capable R8.
40-
2) Re-enable deterministic map-id (seed or fixed id) in release builds.
39+
1) Track AGP/R8 support for deterministic map-id configuration (seed/template/fixed id) through public APIs.
40+
2) Wire deterministic map-id into release builds once AGP exposes it.
4141
3) Re-run `./verify_apk.py <tag> <apk>` and confirm hashes match without signature copying.

0 commit comments

Comments
 (0)