This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

1{ 2 stdenvNoCC, 3 androidenv, 4 fetchurl, 5 jdk17_headless, 6 unzip, 7 zip, 8 icon, 9 # CI sets them per run; Android only installs updates with a higher versionCode. 10 versionCode ? 1, 11 versionName ? "1", 12}: 13let 14 sdk = androidenv.composeAndroidPackages { 15 platformVersions = [ "36" ]; 16 buildToolsVersions = [ "36.0.0" ]; 17 includeEmulator = false; 18 includeSystemImages = false; 19 includeNDK = false; 20 }; 21 sdkRoot = "${sdk.androidsdk}/libexec/android-sdk"; 22 buildTools = "${sdkRoot}/build-tools/36.0.0"; 23 androidJar = "${sdkRoot}/platforms/android-36/android.jar"; 24 browser = fetchurl { 25 url = "https://dl.google.com/android/maven2/androidx/browser/browser/1.10.0/browser-1.10.0.aar"; 26 hash = "sha256-+0DR7l/ZEMnREiAIaKlTQVanqZmrwo+7PGgVouOsUVA="; 27 }; 28in 29# Unsigned release APK; tools/hermes-voice/flake-module.nix has the signer. 30# Only androidx.browser's classes go in: the parts used here need none of its 31# dependencies. 32stdenvNoCC.mkDerivation { 33 pname = "hermes-voice-android"; 34 version = versionName; 35 src = ./.; 36 nativeBuildInputs = [ 37 jdk17_headless 38 unzip 39 zip 40 ]; 41 buildPhase = '' 42 runHook preBuild 43 unzip -q ${browser} classes.jar -d browser 44 45 mkdir -p res/mipmap-xxxhdpi 46 cp ${icon}/icon-192.png res/mipmap-xxxhdpi/ic_launcher.png 47 ${buildTools}/aapt2 compile --dir res -o res.zip 48 ${buildTools}/aapt2 link -o unsigned.apk -I ${androidJar} \ 49 --manifest AndroidManifest.xml res.zip \ 50 --min-sdk-version 29 --target-sdk-version 36 \ 51 --version-code ${toString versionCode} --version-name ${versionName} 52 53 javac -source 8 -target 8 -Xlint:-options -encoding UTF-8 \ 54 -bootclasspath ${androidJar} -cp browser/classes.jar \ 55 -d classes $(find src -name '*.java') 56 ${buildTools}/d8 --release --min-api 29 --lib ${androidJar} --output . \ 57 $(find classes -name '*.class') browser/classes.jar 58 59 touch -d @315532800 classes.dex 60 TZ=UTC zip -X -D unsigned.apk classes.dex 61 runHook postBuild 62 ''; 63 installPhase = '' 64 install -Dm444 unsigned.apk $out/hermes-voice-android-unsigned.apk 65 ''; 66 passthru = { inherit buildTools; }; 67}