dev-updater: build an app on the machine, install it on the phone

A Rust backend that discovers Android projects under configured roots,
builds one on request, and serves the APK over pinned TLS on a WireGuard
interface; an Android client that lists what is buildable, watches a build,
and installs the result. Enrolment carries the token and the CA, so the
phone trusts exactly the machine that issued it and nothing else.

`AGENTS.md` is the working guide and `README.md` the configuration
reference. The shared tunnel-and-TLS code lives in `vendor/wg-app-link`,
which ai-app uses too.

History before this point was squashed away, and a stale `config.json` went
with it: nothing had read that file since the config moved to RON outside
the checkout, and what it still held was one machine's absolute paths and
the names of projects on it.
This commit is contained in:
iris committed 2026-08-31 20:31:08 -04:00
commit b0e83059a3
82 files changed
+20372

No files matched your search

@@ -0,0 +1,15 @@
// A test project for Dev Updater, not a real app. See ../README.md.
//
// Builds the same app twice under different variant directories, which is
// the only thing this one is for: with more than one build present the
// phone gets a variant picker, `resolve_apk` has something to fall back
// from when a chosen variant is deleted, and the manifest has to report the
// size of the one actually being served.
label: "Test: Two Variants",
components: [
Apk(
name: "app",
build: "./build.sh",
),
],
+15
View File
@@ -0,0 +1,15 @@
#!/bin/sh
# Builds this test app twice, once per variant.
#
# Two runs of the shared builder rather than a flag on it: what is being
# tested is Dev Updater seeing two builds under one project, and the
# simplest thing that produces that is building twice. They are byte-for-
# byte the same app -- the variant is the directory name, which is where
# `discover.rs` reads it from.
set -eu
for variant in debug release; do
../lib/build-apk.sh \
--package com.example.dutest.variants \
--label "Test Variants" \
--variant "$variant"
done