The following describes the procedure to create a custom apps repository running on your own server which then can be managed by GRM.
- a system with:
- python3
- signify(-openbsd)
- a webserver (e.g. nginx)
- aapt
- ideally a FQDN (while IP is possible but not recommended for well known reasons)
- a SSL certificate (recommended: Let's Encrypt)
-
Create your own signing key:
signify -n -G -p apps.0.pub -s apps.0.sec
-
clone this repository to your server (e.g.
git clone https://github.com/sfX-Android/apps.grapheneos.org /var/www/html/
). note: if you do NOT plan to use GRM you can use the official one instead but for GRM you have to go with this one. -
Create the following directories in this cloned directory:
mkdir apps apps-stable apps-beta
-
install a webserver on your server and ensure it has a valid certificate set (see step 3)
- the root directory must point to the
apps
directory (e.g./var/www/html/apps
)
- the root directory must point to the
-
put your app(s) in the
apps
directory- every app must have its own directory (i.e.
apps/packages/<app-package-name>/<versionCode>/my-app.apk
) - you can use
grm-import.py
to achieve all that which is also used by GRM itself
- every app must have its own directory (i.e.
-
run
./generate2.py
to sign and add these apps to your repo -
modify the Apps app:
- replace all occurences of
apps.grapheneos.org
with your own FQDN - grab the content of your public key from
apps.0.pub
and replace theREPO_PUBLIC_KEY
variable in build.gradle.kts - in that same file ensure
REPO_BASE_URL
is set correctly - adjust network_security_config.xml if your CA is not already there
- replace all occurences of
-
build the Apps app
Follow steps 5 + 6