diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 85f61a8..69cd7bb 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -2,13 +2,13 @@ + package="PACKAGE"> - + diff --git a/flake.nix b/flake.nix index 8b7f246..957956e 100644 --- a/flake.nix +++ b/flake.nix @@ -47,6 +47,16 @@ mv build/classes.dex $out ''; }; + make-manifest = package : name: pkgs.stdenvNoCC.mkDerivation { + name = "AndroidManifest-${package}.xml"; + srcs = self; + #buildInputs = [ ]; + phases = ["unpackPhase" "buildPhase"]; + buildPhase = '' + mkdir $out + cat AndroidManifest.xml | sed 's/PACKAGE/${package}/' | sed 's/NAME/${name}/' > $out/AndroidManifest.xml + ''; + }; java-classes-main = pkgs.stdenvNoCC.mkDerivation { name = "java-class-main"; @@ -82,7 +92,9 @@ in rec { packages = { - default = pkgs.stdenvNoCC.mkDerivation rec { + default = let + manifest = make-manifest "com.example.shadowing.control" "Shadowing C"; + in pkgs.stdenvNoCC.mkDerivation rec { name = "com-example-shadowing.apk"; srcs = self; buildInputs = [ jdk android-env.androidsdk pkgs.which ]; @@ -94,7 +106,8 @@ # link classes.dex not working? # ${build-tools}/aapt2 link -v ---manifest AndroidManifest.xml -I ${platforms}/android.jar -o build/app.apk build/apk_files/ - ${build-tools}/aapt package -v -f -M AndroidManifest.xml -I ${platforms}/android.jar -F build/app.apk build/apk_files/ + + ${build-tools}/aapt package -v -f -M ${manifest}/AndroidManifest.xml -I ${platforms}/android.jar -F build/app.apk build/apk_files/ ${build-tools}/zipalign -f 4 build/app.apk build/app.aligned.apk keytool -genkeypair -validity 1000 -dname "CN=SomeKey,O=SomeOne,C=FR" -keystore build/ToyKey.keystore -storepass 'P@ssw0rd!' -keypass 'P@ssw0rd!' -alias SignKey -keyalg RSA -v