You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Mar 26, 2026. It is now read-only.
Repository navigation
Commit 40efcaf
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: reproducible/README.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ This folder contains the tooling to rebuild tagged releases inside Docker and co
15
15
- unzip, curl
16
16
- uv for tool installs, plus `apksigcopier` and `diffoscope`: `uv tool install apksigcopier diffoscope`
17
17
- 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).
19
19
20
20
## Step-by-step verification
21
21
1) Auth + credentials:
@@ -32,10 +32,10 @@ This folder contains the tooling to rebuild tagged releases inside Docker and co
32
32
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).
33
33
34
34
## 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.
37
37
38
38
## 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.
41
41
3) Re-run `./verify_apk.py <tag><apk>` and confirm hashes match without signature copying.
0 commit comments