From d5d5a7b01279e5e86be8a0d772efcf4adf6c33b8 Mon Sep 17 00:00:00 2001 From: Cory McWilliams Date: Sun, 14 Jul 2024 16:18:47 -0400 Subject: [PATCH] Build a separate .apk for fdroid with its own app ID. --- GNUmakefile | 55 +++++++++++++++++++++++++++++++++---------- src/android/build.xml | 2 +- 2 files changed, 44 insertions(+), 13 deletions(-) diff --git a/GNUmakefile b/GNUmakefile index 182c5c8e..de934a0b 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -92,7 +92,7 @@ BUILD_TYPES += \ androidrelease-x86 \ androiddebug-x86_64 \ androidrelease-x86_64 -all: out/TildeFriends-arm-debug.apk out/TildeFriends-arm-release.apk out/TildeFriends-x86-debug.apk out/TildeFriends-x86-release.apk +all: out/TildeFriends-arm-debug.apk out/TildeFriends-arm-release.apk out/TildeFriends-x86-debug.apk out/TildeFriends-x86-release.apk out/TildeFriends-release.fdroid.apk endif WINDOWS_TARGETS := \ @@ -667,15 +667,6 @@ src/version.h : $(firstword $(MAKEFILE_LIST)) @echo "#define VERSION_NUMBER \"$(VERSION_NUMBER)\"" > $@ @echo "#define VERSION_NAME \"$(VERSION_NAME)\"" >> $@ -src/android/AndroidManifest.xml : $(firstword $(MAKEFILE_LIST)) - @echo "[android_version] $@" - @sed -i \ - -e 's/versionCode=".*"/versionCode="$(VERSION_CODE)"/' \ - -e 's/versionName=".*"/versionName="$(VERSION_NUMBER)"/' \ - -e 's/android:minSdkVersion="[[:digit:]]*"/android:minSdkVersion="$(ANDROID_MIN_SDK_VERSION)"/' \ - -e 's/android:targetSdkVersion="[[:digit:]]*"/android:targetSdkVersion="$(ANDROID_TARGET_SDK_VERSION)"/' \ - $@ - # Android support. out/res/layout_activity_main.xml.flat: src/android/res/layout/activity_main.xml @mkdir -p $(dir $@) @@ -688,8 +679,29 @@ out/res/drawable_icon.xml.flat: src/android/res/drawable/icon.xml @$(ANDROID_BUILD_TOOLS)/aapt2 compile -o out/res/ src/android/res/drawable/icon.xml out/apk/res.apk out/gen/com/unprompted/tildefriends/R.java: out/res/layout_activity_main.xml.flat out/res/drawable_icon.xml.flat src/android/AndroidManifest.xml + @echo [aapt2 link] res.apk @mkdir -p $(dir $@) - @$(ANDROID_BUILD_TOOLS)/aapt2 link -I $(ANDROID_PLATFORM)/android.jar out/res/layout_activity_main.xml.flat out/res/drawable_icon.xml.flat --manifest src/android/AndroidManifest.xml -o out/apk/res.apk --java out/gen/ + @$(ANDROID_BUILD_TOOLS)/aapt2 link -I $(ANDROID_PLATFORM)/android.jar out/res/layout_activity_main.xml.flat out/res/drawable_icon.xml.flat \ + --version-code $(VERSION_CODE) \ + --version-name $(VERSION_NUMBER) \ + --min-sdk-version $(ANDROID_MIN_SDK_VERSION) \ + --target-sdk-version $(ANDROID_TARGET_SDK_VERSION) \ + --manifest src/android/AndroidManifest.xml \ + -o out/apk/res.apk \ + --java out/gen/ + +out/apk/res.fdroid.apk out/gen_fdroid/com/unprompted/tildefriends/R.java: out/res/layout_activity_main.xml.flat out/res/drawable_icon.xml.flat src/android/AndroidManifest.xml + @echo [aapt2 link] res.fdroid.apk + @mkdir -p $(dir $@) + @$(ANDROID_BUILD_TOOLS)/aapt2 link -I $(ANDROID_PLATFORM)/android.jar out/res/layout_activity_main.xml.flat out/res/drawable_icon.xml.flat \ + --version-code $(VERSION_CODE) \ + --version-name $(VERSION_NUMBER) \ + --min-sdk-version $(ANDROID_MIN_SDK_VERSION) \ + --target-sdk-version $(ANDROID_TARGET_SDK_VERSION) \ + --rename-manifest-package com.unprompted.tildefriends.fdroid \ + --manifest src/android/AndroidManifest.xml \ + -o out/apk/res.fdroid.apk \ + --java out/gen_fdroid/ JAVA_FILES := out/gen/com/unprompted/tildefriends/R.java $(wildcard src/android/com/unprompted/tildefriends/*.java) CLASS_FILES := $(foreach src,$(JAVA_FILES),out/classes/com/unprompted/tildefriends/$(notdir $(src:.java=.class))) @@ -716,11 +728,13 @@ out/apk/TildeFriends-arm-debug.unsigned.apk: BUILD_TYPE := debug out/apk/TildeFriends-arm-release.unsigned.apk: BUILD_TYPE := release out/apk/TildeFriends-x86-debug.unsigned.apk: BUILD_TYPE := debug out/apk/TildeFriends-x86-release.unsigned.apk: BUILD_TYPE := release +out/apk/TildeFriends-release.fdroid.unsigned.apk: BUILD_TYPE := release out/apk/TildeFriends-arm-debug.unsigned.apk: out/apk/classes.dex out/androiddebug/tildefriends out/androiddebug-armv7a/tildefriends $(RAW_FILES) out/apk/res.apk out/apk/TildeFriends-arm-release.unsigned.apk: out/apk/classes.dex out/androidrelease/tildefriends out/androidrelease-armv7a/tildefriends $(RAW_FILES) out/apk/res.apk out/apk/TildeFriends-x86-debug.unsigned.apk: out/apk/classes.dex out/androiddebug-x86_64/tildefriends out/androiddebug-x86/tildefriends $(RAW_FILES) out/apk/res.apk out/apk/TildeFriends-x86-release.unsigned.apk: out/apk/classes.dex out/androidrelease-x86_64/tildefriends out/androidrelease-x86/tildefriends $(RAW_FILES) out/apk/res.apk +out/apk/TildeFriends-release.fdroid.unsigned.apk: out/apk/classes.dex out/androidrelease/tildefriends out/androidrelease-armv7a/tildefriends out/androidrelease-x86_64/tildefriends out/androidrelease-x86/tildefriends $(RAW_FILES) out/apk/res.fdroid.apk $(BUNDLETOOL): @echo [curl] $(BUNDLETOOL_URL) TO $@ @@ -786,6 +800,23 @@ out/apk/TildeFriends-x86-%.unsigned.apk: @zip -u $@.zip -q -9 $(RAW_FILES) @$(ANDROID_BUILD_TOOLS)/zipalign -f 4 $@.zip $@ +out/apk/TildeFriends-%.fdroid.unsigned.apk: + @mkdir -p $(dir $@) out/apk-fdroid-$(BUILD_TYPE)/lib/x86_64/ out/apk-fdroid-$(BUILD_TYPE)/lib/x86/ out/apk-fdroid-$(BUILD_TYPE)/lib/arm64-v8a/ out/apk-fdroid-$(BUILD_TYPE)/lib/armeabi-v7a/ + @echo "[aapt] $@" + @cp out/android$(BUILD_TYPE)-x86_64/tildefriends out/apk-fdroid-$(BUILD_TYPE)/lib/x86_64/libtildefriends.so + @cp out/android$(BUILD_TYPE)-x86/tildefriends out/apk-fdroid-$(BUILD_TYPE)/lib/x86/libtildefriends.so + @cp out/android$(BUILD_TYPE)/tildefriends out/apk-fdroid-$(BUILD_TYPE)/lib/arm64-v8a/libtildefriends.so + @cp out/android$(BUILD_TYPE)-armv7a/tildefriends out/apk-fdroid-$(BUILD_TYPE)/lib/armeabi-v7a/libtildefriends.so + @$(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip out/apk-fdroid-$(BUILD_TYPE)/lib/x86_64/libtildefriends.so + @$(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip out/apk-fdroid-$(BUILD_TYPE)/lib/x86/libtildefriends.so + @$(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip out/apk-fdroid-$(BUILD_TYPE)/lib/arm64-v8a/libtildefriends.so + @$(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip out/apk-fdroid-$(BUILD_TYPE)/lib/armeabi-v7a/libtildefriends.so + @cp out/apk/res.fdroid.apk $@.zip + @cp out/apk/classes.dex out/apk-fdroid-$(BUILD_TYPE)/classes.dex + @cd out/apk-fdroid-$(BUILD_TYPE) && zip -u ../../$@.zip -q -9 -r . && cd ../../ + @zip -u $@.zip -q -9 $(RAW_FILES) + @$(ANDROID_BUILD_TOOLS)/zipalign -f 4 $@.zip $@ + out/%.apk: out/apk/%.unsigned.apk @echo "[apksigner] $(notdir $@)" @$(ANDROID_BUILD_TOOLS)/apksigner sign --ks .keys/android.jks --ks-key-alias androidKey --ks-pass pass:android --key-pass pass:android --min-sdk-version $(ANDROID_MIN_SDK_VERSION) --out $@ $< @@ -957,5 +988,5 @@ docs: @doxygen .PHONY: docs -fdroid: out/apk/TildeFriends-arm-release.unsigned.apk +fdroid: out/apk/TildeFriends-release.fdroid.unsigned.apk .PHONE: fdroid diff --git a/src/android/build.xml b/src/android/build.xml index cc4bc621..c236b5f8 100644 --- a/src/android/build.xml +++ b/src/android/build.xml @@ -1,6 +1,6 @@ - Creating ../../../out/apk/TildeFriends-arm-release.unsigned.apk for release. + Creating ../../../out/apk/TildeFriends-release.fdroid.unsigned.apk for release.