aboutsummaryrefslogtreecommitdiffstats
path: root/fdroid
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-09-17 08:19:41 -0700
committerAdam Soltys <[email protected]>2026-09-17 08:19:41 -0700
commit1bd3e2613641a8d2bc63c262a58cad126632459f (patch)
tree4365b59063893d779e47bd8dd520eaeed21f6f30 /fdroid
parent16c77b192e27ab08c7aa8ee821f2b1cc41013ac9 (diff)
downloadcoinosv3-1bd3e2613641a8d2bc63c262a58cad126632459f.tar.gz
coinosv3-1bd3e2613641a8d2bc63c262a58cad126632459f.zip
Android: a reproducible F-Droid flavor with the web app bundled inside.fdroid-v1.6
The Android builds so far were shells around the live site: a verified APK proved nothing about the code that ran. The new `fdroid` flavor (io.coinos.fdroid) shares the WebView shell and carries the built web app in its assets. The page still lives at the v3.coinos.io origin — same storage, links and gift URLs — but every file under it is answered from the APK (Assets.java); only the site's live API paths reach the network, and the bundled page registers no service worker (HAL_NO_SW=1). Two clean unsigned builds give the same APK. COINOS_UNSIGNED=1 builds without the keystore; Bun is pinned via packageManager; the Gradle wrapper properties pin 8.12. fdroid/io.coinos.fdroid.yml is the fdroiddata recipe (checksum-pinned Bun in sudo, prebuild web build, scandelete, our signing key allowed for the Binaries match) and docs/REPRODUCIBLE.md the how-to. Verified on a phone: the bundled build cold-starts in airplane mode. Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01JuwQqNWtDJcxPWtEm9134z
Diffstat (limited to 'fdroid')
-rw-r--r--fdroid/io.coinos.fdroid.yml58
1 files changed, 58 insertions, 0 deletions
diff --git a/fdroid/io.coinos.fdroid.yml b/fdroid/io.coinos.fdroid.yml
new file mode 100644
index 0000000..4e4bd6d
--- /dev/null
+++ b/fdroid/io.coinos.fdroid.yml
@@ -0,0 +1,58 @@
+# F-Droid build recipe for the bundled Android build (metadata/io.coinos.fdroid.yml
+# in fdroiddata). The web app is built first with a checksum-pinned Bun, then
+# the Gradle flavor packs dist/ into the APK as assets. Both halves are
+# reproducible: two clean builds give the same unsigned APK, so F-Droid can
+# publish the coinos-signed release once its own build matches (Binaries +
+# AllowedAPKSigningKeys).
+Categories:
+ - Money
+License: MIT
+AuthorName: Adam Soltys
+WebSite: https://v3.coinos.io
+SourceCode: https://github.com/coinos/coinosv3
+IssueTracker: https://github.com/coinos/coinosv3/issues
+
+AutoName: Coinos
+Summary: Self-custodial bitcoin wallet with instant Ark payments and nostr chat
+Description: |-
+ Bitcoin you actually hold: your wallet is twelve words, nobody else ever
+ has them, and they work in any wallet, anywhere.
+
+ * Spending over Ark: instant, low-fee off-chain payments with a unilateral exit
+ * Savings on-chain: a full BIP84 bitcoin wallet
+ * Lightning sends and receives, plus a [email protected] payment address
+ * Nostr built in: encrypted DMs, community chat, posts, zaps
+ * Handles lightning:, bitcoin:, nostr: and lnurl: links and NFC taps
+
+ This build carries the whole app inside the APK; the coinos servers are
+ only reached for their APIs (the Ark server, Electrum, the name registrar).
+
+RepoType: git
+Repo: https://github.com/coinos/coinosv3.git
+Binaries: https://github.com/coinos/coinosv3/releases/download/fdroid-v%v/coinos-fdroid-%v.apk
+
+Builds:
+ - versionName: '1.6'
+ versionCode: 7
+ commit: fdroid-v1.6
+ subdir: android/app
+ sudo:
+ - curl -fsSL -o /tmp/bun.zip https://github.com/oven-sh/bun/releases/download/bun-v1.3.9/bun-linux-x64-baseline.zip
+ - echo "104d4d037f4b35e10215c0507e1779691f39c57bd91ddeefe11cad781e3fc4b9 /tmp/bun.zip" | sha256sum -c
+ - unzip -q /tmp/bun.zip -d /tmp/bun
+ - install -m 0755 /tmp/bun/bun-linux-x64-baseline/bun /usr/local/bin/bun
+ gradle:
+ - fdroid
+ prebuild:
+ - cd ../.. && bun install --frozen-lockfile && HAL_NO_SW=1 bun run build
+ scandelete:
+ - node_modules
+ - static/coinos.apk
+ - static/graphene.apk
+
+AllowedAPKSigningKeys: 766483ab8372c02f8406d29595e7389a2869190b429e0ffd092ebb0bfa2bc2f4
+
+AutoUpdateMode: Version
+UpdateCheckMode: Tags ^fdroid-v[0-9.]+$
+CurrentVersion: '1.6'
+CurrentVersionCode: 7