From 8f863ec56f359b719f6492458dd5da802aaf2e18 Mon Sep 17 00:00:00 2001 From: Duncan Tourolle Date: Wed, 26 Aug 2026 14:21:05 +0200 Subject: [PATCH] Put file(1) in the Android image too The android job now fetches the model and cross-compiles the whole app -- 28 minutes of it -- and then dies on file: not found (exit 127) `Verify minimum API level` reads the linked API out of the .so's ELF notes with file(1), and the image has never had it. Like git-lfs, the absence could not show until something got that far: every previous run panicked in dr-segment's build script long before this line, so the step that was going to fail never ran. Audited the rest of what the remaining steps invoke against the image rather than find the next one the same expensive way -- zip, keytool, base64, mktemp, shred, find, sed, awk, and aapt2/zipalign/apksigner/d8 from build-tools are all present. file was the only gap left. Co-Authored-By: Claude Opus 5 --- docker/android/Dockerfile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docker/android/Dockerfile b/docker/android/Dockerfile index 61b04e6..ca1cd62 100644 --- a/docker/android/Dockerfile +++ b/docker/android/Dockerfile @@ -52,6 +52,10 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ # missing `git lfs pull` that no amount of pulling would have fixed, # because the client was never here to run. git-lfs \ + # file: the API-level check reads the Android version out of the linked + # .so's ELF notes with it. Its absence hid behind the missing model for + # as long as the build panicked before ever reaching that line. + file \ # zip: package.sh adds the .so and dex to the aapt2-linked APK zip \ openjdk-${JDK_VERSION}-jdk-headless \