| … | … | @@ -1,8 +1,9 @@ |
| 1 | 1 | # favela-surface-android |
| 2 | 2 | |
| 3 | | A full favela node on an Android handset: `favela-peer` inside a |
| 4 | | [bare-kit](https://github.com/holepunchto/bare-kit) worklet, with `favela-surface` rendering its |
| 5 | | pages into a WebView, and the atproto half composed in through `favela-host`. |
| 3 | A full favela node on an Android handset: [favela-peer](../favela-peer) inside a |
| 4 | [bare-kit](https://github.com/holepunchto/bare-kit) worklet, with |
| 5 | [favela-surface](../favela-surface) rendering its pages into a WebView, and the atproto half composed |
| 6 | in through [favela-host](../favela-host). |
| 6 | 7 | |
| 7 | 8 | ## Install |
| 8 | 9 | |
| … | … | @@ -16,7 +17,8 @@ https://7rnx.net/git/releases/favela-surface-android/<version>/favela-surface-an |
| 16 | 17 | Requires Android 10 — `android/build.gradle` sets `minSdkVersion = 29`, matching what |
| 17 | 18 | react-native-bare-kit 0.14.5 declares. Sideloading needs "install unknown apps" for your browser. |
| 18 | 19 | |
| 19 | | This is not a pgh app; the deliverable is an APK installed by Android's package manager. The |
| 20 | This is not a [pgh](../pgh) app; the deliverable is an APK installed by Android's package manager. |
| 21 | The |
| 20 | 22 | worklet bundle inside it *is* published to the pgh release registry — see [OTA](#ota). |
| 21 | 23 | |
| 22 | 24 | | | | |
| … | … | @@ -27,7 +29,8 @@ worklet bundle inside it *is* published to the pgh release registry — see [OTA |
| 27 | 29 | | `worklet.bundle` | 40 MB | |
| 28 | 30 | | `loader.bundle` | 227 KB | |
| 29 | 31 | |
| 30 | | `applicationId` is deliberately not favela-android's `to.favela.android`: sharing one would make |
| 32 | `applicationId` is deliberately not [favela-android](../favela-android)'s `to.favela.android`: |
| 33 | sharing one would make |
| 31 | 34 | installing this app replace the other, and they hold different identities and different storage. |
| 32 | 35 | The gradle `namespace` is still `to.favela.android` — it sets the R class package and manifest |
| 33 | 36 | resolution, never the install identity. |
| … | … | @@ -115,7 +118,8 @@ to land in two places. `lib/host/` is the extraction boundary when anyone has th |
| 115 | 118 | |
| 116 | 119 | ## OTA |
| 117 | 120 | |
| 118 | | `pgh-runtime`, over Hyperswarm from the pgh release registry — not over the forge's HTTPS release |
| 121 | [pgh-runtime](../pgh-runtime), over Hyperswarm from the pgh release registry — not over the forge's |
| 122 | HTTPS release |
| 119 | 123 | path, which is load-balanced and replicates between backends asynchronously. A release landed on one |
| 120 | 124 | backend and had not reached the other after 600s on 2026-08-25, and the phone correctly reported no |
| 121 | 125 | update. |