mirror of
https://github.com/austinried/subtracks.git
synced 2026-11-11 15:29:15 +01:00
docs: correct the signing notes for Play App Signing
Google re-signs Play-delivered apps, so the release key is only the upload key there and signs the AAB we send; the installed app verifies against Google's app signing certificate. The release key also signs the GitHub-release APK.
This commit is contained in:
+21
-4
@@ -1,10 +1,14 @@
|
|||||||
# Verifying a subtracks download
|
# Verifying a subtracks download
|
||||||
|
|
||||||
subtracks ships through three channels, each with its own signer:
|
subtracks ships through four channels:
|
||||||
|
|
||||||
- **GitHub releases and Google Play** — signed with the release key. Every GitHub
|
- **GitHub releases** — the APK is signed with the release key. Every release
|
||||||
release attaches `subtracks.apk`, a `SHA256SUMS` file and the public certificate
|
attaches the public certificate `release-certificate.pem` and a `SHA256SUMS`.
|
||||||
`release-certificate.pem`.
|
- **Google Play** — uses Play App Signing, so Google re-signs the app it
|
||||||
|
delivers. The release key is only the *upload* key there: it signs the AAB we
|
||||||
|
send to Play, not the APK users install. The installed app verifies against
|
||||||
|
Google's app signing certificate (Play Console → App integrity), and the upload
|
||||||
|
key only proves the AAB we uploaded.
|
||||||
- **`next` builds** (the `subtracks-next` artifact from CI) — signed with the
|
- **`next` builds** (the `subtracks-next` artifact from CI) — signed with the
|
||||||
public debug key committed here as [`next-certificate.pem`](next-certificate.pem).
|
public debug key committed here as [`next-certificate.pem`](next-certificate.pem).
|
||||||
- **F-Droid** — re-signed by F-Droid with its own key; see F-Droid's published
|
- **F-Droid** — re-signed by F-Droid with its own key; see F-Droid's published
|
||||||
@@ -38,3 +42,16 @@ keytool -printcert -file release-certificate.pem # prints its SHA-256
|
|||||||
```
|
```
|
||||||
|
|
||||||
The signing certificate SHA-256 is also listed in the release notes.
|
The signing certificate SHA-256 is also listed in the release notes.
|
||||||
|
|
||||||
|
## Google Play
|
||||||
|
|
||||||
|
The AAB we upload is signed with the release (upload) key, and that is what Play
|
||||||
|
checks; Google then re-signs the delivered APKs with its own app signing key. So
|
||||||
|
a Play-installed app is verified against Play's app signing certificate (shown in
|
||||||
|
Play Console → App integrity), not `release-certificate.pem`.
|
||||||
|
|
||||||
|
To check the AAB that was sent:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
keytool -printcert -jarfile app-release.aab
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user