fix scripts and Makefile
This commit is contained in:
parent
27f4077ac8
commit
8d4fa5fa11
4 changed files with 146 additions and 105 deletions
29
app/.Makefile.scripts/make--AndroidManifest.xml
Executable file
29
app/.Makefile.scripts/make--AndroidManifest.xml
Executable file
|
@ -0,0 +1,29 @@
|
|||
#!/bin/bash
|
||||
|
||||
test -f app-config.sh && {
|
||||
source app-config.sh
|
||||
}
|
||||
|
||||
cat > "AndroidManifest.xml" << ANDROIDMANIFEST
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="$APP_PACKAGE"
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0">
|
||||
<uses-sdk android:minSdkVersion="$APP_VERSION_SDK_MIN"
|
||||
android:targetSdkVersion="$APP_VERSION_SDK_TARGET"/>
|
||||
$(sed 's/^/ /' <<< "$APP_PERMISSIONS")
|
||||
<application android:label="$APP_NAME" android:icon="@drawable/ic_launcher">
|
||||
<activity android:name="$APP_PACKAGE.AppActivity"
|
||||
android:exported="true"
|
||||
android:configChanges="orientation|screenSize|keyboardHidden"
|
||||
android:label="$APP_NAME">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
</manifest>
|
||||
ANDROIDMANIFEST
|
||||
|
|
@ -52,9 +52,10 @@ test -f android-sdk/.installed.buildtools.version.$APP_VERSION_SDK_TARGET || {
|
|||
sdkmanager --install "$EXACTVERSION_BUILDTOOLS"
|
||||
}
|
||||
echo "$EXACTVERSION_BUILDTOOLS" > android-sdk/.installed.buildtools.version.$APP_VERSION_SDK_TARGET
|
||||
ln -rvsf android-sdk/.installed.buildtools.version.{$APP_VERSION_SDK_TARGET,current}
|
||||
}
|
||||
|
||||
test -f android-sdk/.installed.platform.version.$APP_VERSION_SDK_TARGET || {
|
||||
test -f android-sdk/.installed.platforms.version.$APP_VERSION_SDK_TARGET || {
|
||||
EXACTVERSION_PLATFORM="$(
|
||||
sdkmanager --list 2>/dev/null |
|
||||
sed 's/^ *//' |
|
||||
|
@ -71,43 +72,8 @@ test -f android-sdk/.installed.platform.version.$APP_VERSION_SDK_TARGET || {
|
|||
sdkmanager --list_installed | grep -q "$EXACTVERSION_PLATFORM" || {
|
||||
sdkmanager --install "$EXACTVERSION_PLATFORM"
|
||||
}
|
||||
echo "$EXACTVERSION_PLATFORM" > android-sdk/.installed.platform.version.$APP_VERSION_SDK_TARGET
|
||||
echo "$EXACTVERSION_PLATFORM" > android-sdk/.installed.platforms.version.$APP_VERSION_SDK_TARGET
|
||||
ln -rvsf android-sdk/.installed.platforms.version.{$APP_VERSION_SDK_TARGET,current}
|
||||
}
|
||||
|
||||
exec bash
|
||||
|
||||
#test -f android-sdk/.installed.buildtools.version.$APP_VERSION_SDK_TARGET || { # EXACTVERSION_BUILDTOOLS="$(
|
||||
# sdkmanager --list 2>/dev/null |
|
||||
# sed 's/^ *//' |
|
||||
# grep -e 'build-tools;'"$APP_VERSION_SDK_TARGET"'\.[0-9]*\.[0-9]*\ ' |
|
||||
# cut -f1 -d' ' |
|
||||
# sort |
|
||||
# tail -n 1
|
||||
# )"
|
||||
# sdkmanager list_installed | -q grep "$EXACTVERSION_BUILDTOOLS" || {
|
||||
# sdkmanager --install "$EXACTVERSION_BUILDTOOLS"
|
||||
# }
|
||||
# touch android-sdk/.installed.buildtools.version.$APP_VERSION_SDK_TARGET
|
||||
#}
|
||||
|
||||
#sdkmanager --list | grep build-tools | grep -v rc
|
||||
|
||||
#
|
||||
#ENV PATH="$BUILD_TOOLS_LATEST/bin:$PATH"
|
||||
##TODO make this automatic
|
||||
#ENV JAVA_HOME="/usr/lib/jvm/java-17-openjdk/"
|
||||
#ENV LIBRARY_PATH="$LIBRARY_PATH:$BUILD_TOOLS_LATEST/lib"
|
||||
#RUN echo you selected to accept the licenses/TOS
|
||||
#RUN echo "$YESACCEPT" | sdkmanager --install "build-tools;33.0.2"
|
||||
#RUN echo "$YESACCEPT" | sdkmanager --install "platforms;android-33"
|
||||
##RUN echo "$YESACCEPT" | sdkmanager --install "ndk;28.0.12433566"
|
||||
##RUN echo "$YESACCEPT" | sdkmanager --install "system-images;android-33;aosp_atd;x86_64"
|
||||
##RUN echo "$YESACCEPT" | sdkmanager --install "emulator"
|
||||
##RUN echo "no" | avdmanager --verbose create avd --force --name "thedevice" --package 'system-images;android-33;aosp_atd;x86_64' --tag "aosp_atd" --abi "x86_64"
|
||||
##RUN echo "$YESACCEPT" | sdkmanager --install "platform-tools"
|
||||
#COPY entrypoint.sh /entrypoint.sh
|
||||
#RUN chown 0:0 /entrypoint.sh
|
||||
#RUN chmod 0700 /entrypoint.sh
|
||||
#WORKDIR /apk
|
||||
#ENTRYPOINT ["/entrypoint.sh"]
|
||||
#RUN echo "$YESACCEPT" | tee yesaccept
|
||||
touch android-sdk/installed
|
|
@ -670,8 +670,9 @@ APP_PERMISSIONS="${APP_PERMISSIONS:-"$(whiptail --nocancel --notags --checklist
|
|||
'android.permission.WRITE_SMS' 'WRITE_SMS' 0 \
|
||||
'android.permission.WRITE_SOCIAL_STREAM' 'WRITE_SOCIAL_STREAM' 0 \
|
||||
'android.permission.WRITE_SYNC_SETTINGS' 'WRITE_SYNC_SETTINGS - Allows applications to write the sync settings.' 0 \
|
||||
'android.permission.WRITE_VOICEMAIL' 'WRITE_VOICEMAIL - Allows an application to modify and remove existing voicemails in the system.' 0 3>&1 1>&2 2>&3 |
|
||||
sed 's/"an/<uses-permission android:name="an/g;s/" /"\/>\n/g' )"}"
|
||||
'android.permission.WRITE_VOICEMAIL' 'WRITE_VOICEMAIL - Allows an application to modify and remove existing voicemails in the system.' 0 3>&1 1>&2 2>&3 |
|
||||
sed 's/$/ /' |
|
||||
sed 's/"an/<uses-permission android:name="an/g;s/" /"\/>\n/g' )"}"
|
||||
|
||||
|
||||
|
||||
|
@ -688,36 +689,3 @@ cat << INFO
|
|||
Creating an skeleton for an Android app with the following info:
|
||||
$APP_VALUES
|
||||
INFO
|
||||
#
|
||||
#
|
||||
#cat > "${APP_FOLDER}/AndroidManifest.xml" << ANDROIDMANIFEST
|
||||
#<?xml version="1.0" encoding="utf-8"?>
|
||||
#<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
# package="$APP_PACKAGE"
|
||||
# android:versionCode="1"
|
||||
# android:versionName="1.0">
|
||||
# <uses-sdk android:minSdkVersion="$APP_VERSION_SDK_MIN"
|
||||
# android:targetSdkVersion="$APP_VERSION_SDK_TARGET"/>
|
||||
#$(sed 's/^/ /' <<< "$APP_PERMISSIONS")
|
||||
# <application android:label="$APP_NAME" android:icon="@drawable/ic_launcher">
|
||||
# <activity android:name="$APP_PACKAGE.AppActivity"
|
||||
# android:exported="true"
|
||||
# android:configChanges="orientation|screenSize|keyboardHidden"
|
||||
# android:label="$APP_NAME">
|
||||
# <intent-filter>
|
||||
# <action android:name="android.intent.action.MAIN" />
|
||||
# <category android:name="android.intent.category.LAUNCHER" />
|
||||
# </intent-filter>
|
||||
# </activity>
|
||||
# </application>
|
||||
#</manifest>
|
||||
#ANDROIDMANIFEST
|
||||
#
|
||||
#cat Dockerfile > "${APP_FOLDER}/Dockerfile"
|
||||
#cat >> "${APP_FOLDER}/Dockerfile" << DOCKERFILEADDITION
|
||||
#RUN echo "$YESACCEPT" | sdkmanager --install "build-tools;33.0.2"
|
||||
#RUN echo "$YESACCEPT" | sdkmanager --install "platforms;android-33"
|
||||
#DOCKERFILEADDITION
|
||||
#
|
||||
#
|
||||
#
|
140
app/Makefile
140
app/Makefile
|
@ -1,46 +1,124 @@
|
|||
|
||||
|
||||
|
||||
android-sdk: app-config.sh
|
||||
./.Makefile.scripts/Makefile.android-sdk.sh
|
||||
SHELL=/bin/bash
|
||||
|
||||
|
||||
|
||||
app-config.sh: FORCE
|
||||
./.Makefile.scripts/Makefile.app-config.sh
|
||||
#shell:
|
||||
# bash
|
||||
|
||||
app.apk: ./result/app.apk
|
||||
ln -srv ./result/app.apk ./app.apk
|
||||
|
||||
./result/app.apk : ./result/signed.apk app-config.sh
|
||||
source app-config.sh; $${ANDROID_SDK_ROOT}/$$(tr ';' '/' < android-sdk/.installed.buildtools.version.current)/zipalign -v -f 4 $< $@
|
||||
source app-config.sh; $${ANDROID_SDK_ROOT}/$$(tr ';' '/' < android-sdk/.installed.buildtools.version.current)/apksigner sign \
|
||||
--ks ToyKey.keystore --key-pass pass:armena --ks-pass pass:armena $@
|
||||
|
||||
./result/signed.apk : ./result/unsigned.apk ./ToyKey.keystore ./result
|
||||
jarsigner -verbose -keystore ./ToyKey.keystore -storepass armena -keypass armena -signedjar $@ $< helljniKey
|
||||
|
||||
android-sdk/installed: app-config.sh
|
||||
./.Makefile.scripts/make--android-sdk.sh
|
||||
|
||||
AndroidManifest.xml: app-config.sh
|
||||
./.Makefile.scripts/Makefile.AndroidManifest.xml
|
||||
./.Makefile.scripts/make--AndroidManifest.xml
|
||||
|
||||
app-config.sh:
|
||||
./.Makefile.scripts/make--app-config.sh
|
||||
|
||||
|
||||
srcj/package: app-config.sh
|
||||
source app-config.sh; PKGDIR=$$(echo "$$APP_PACKAGE" | tr '.' '/'); mkdir -p src/$$PKGDIR; ln -srv src/$$PKGDIR $@
|
||||
|
||||
app.apk:
|
||||
echo hallo
|
||||
obj/package: app-config.sh
|
||||
source app-config.sh; PKGDIR=$$(echo "$$APP_PACKAGE" | tr '.' '/'); mkdir -p obj/$$PKGDIR; ln -srv obj/$$PKGDIR $@
|
||||
|
||||
./result /bin /assets /src/ obj:
|
||||
mkdir -p "$@"
|
||||
|
||||
./ToyKey.keystore :
|
||||
keytool -genkeypair -validity 1000 -dname "CN=alexander,O=Android,C=JPN" -keystore $@ \
|
||||
-storepass armena -keypass armena -alias helljniKey -keyalg RSA -v
|
||||
|
||||
./src/package/R.java : $(shell find ./res -type f) app-config.sh src/package
|
||||
source app-config.sh; $${ANDROID_SDK_ROOT}/$$(tr ';' '/' < android-sdk/.installed.buildtools.version.current)/aapt package \
|
||||
-v -f -m -S ./res -J ./src -M ./AndroidManifest.xml \
|
||||
-I $${ANDROID_SDK_ROOT}/$$(tr ';' '/' < android-sdk/.installed.platforms.version.current)/android.jar
|
||||
|
||||
./obj/package/AppActivity.class : ./src/package/AppActivity.java ./src/package/R.java obj/package
|
||||
javac -d ./obj -classpath $${ANDROID_SDK_ROOT}/$$(tr ';' '/' < android-sdk/.installed.platforms.version.current)/android.jar \
|
||||
-sourcepath ./src $<
|
||||
|
||||
|
||||
./result/signed.apk : ./result/unsigned.apk ./ToyKey.keystore ./result
|
||||
jarsigner -verbose -keystore ./ToyKey.keystore -storepass armena -keypass armena -signedjar $@ $< helljniKey
|
||||
|
||||
|
||||
./result/unsigned.apk : ./bin/classes.dex ./result ./assets
|
||||
rm -rvf "$@"
|
||||
source app-config.sh; $${ANDROID_SDK_ROOT}/$$(tr ';' '/' < android-sdk/.installed.buildtools.version.current)/aapt package \
|
||||
-v -u -f -M ./AndroidManifest.xml -S ./res \
|
||||
-I $${ANDROID_SDK_ROOT}/$$(tr ';' '/' < android-sdk/.installed.platforms.version.current)/android.jar -A ./assets -F $@ ./bin
|
||||
|
||||
|
||||
./bin/classes.dex : ./obj/package/AppActivity.class ./obj/package/AppActivity$$1.class /bin
|
||||
source app-config.sh; $${ANDROID_SDK_ROOT}/$$(tr ';' '/' < android-sdk/.installed.buildtools.version.current)/d8 ./obj/package/*.class \
|
||||
--lib $${ANDROID_SDK_ROOT}/$$(tr ';' '/' < android-sdk/.installed.platforms.version.current)/android.jar --output bin
|
||||
|
||||
FORCE:
|
||||
true
|
||||
@true
|
||||
|
||||
#ANDROID_HOME = /opt/android
|
||||
#ANDROID_VERSION = 33.0.2
|
||||
#PLATFORM = android-$(shell echo $(ANDROID_VERSION) | sed 's/\..*//')
|
||||
#TOOLCHAIN = /Users/amon/grive/development/Android/NativeToolchain
|
||||
#GCC = $(TOOLCHAIN)/bin/aarch64-linux-android-gcc
|
||||
#CXX_FLAGS = -march=armv8-a --sysroot=$(TOOLCHAIN)/sysroot
|
||||
|
||||
|
||||
### this includes explicit rules
|
||||
##include Makefile.apps
|
||||
##Makefile.apps: Makefile apps
|
||||
## @./Makefile.make.Makefile.apps.sh
|
||||
##
|
||||
##apps:
|
||||
## mkdir "$@"
|
||||
##
|
||||
##install: $(shell for APP in apps/*/; do test -d "$$APP" || continue; echo "$$APP""app.apk.install-log"; done)
|
||||
##force-install reinstall:
|
||||
## for APP in apps/*/; do rm -f "$$APP""app.apk.install-log" 2>/dev/null; done; $(MAKE) install
|
||||
##run: $(shell cd apps/; for APP in */; do test -d "$$APP" || continue; echo "run-$${APP%/}"; done)
|
||||
##
|
||||
##docker-compose-build.log: Dockerfile compose.yml
|
||||
## docker-compose down --remove-orphans --rmi all
|
||||
## BUILDKIT_PROGRESS=plain docker-compose build | tee docker-compose-build.log
|
||||
##
|
||||
##new-app: FORCE
|
||||
## ./Makefile.make.new-app.sh
|
||||
##
|
||||
##FORCE:
|
||||
## @true
|
||||
|
||||
#all: build
|
||||
#
|
||||
#.PHONY : build
|
||||
#.PHONY : deploy
|
||||
#.PHONY : clean
|
||||
#
|
||||
#build : ./result/example.app.apk
|
||||
# mv ./result/example.app.apk app.apk
|
||||
# true
|
||||
#
|
||||
#env:
|
||||
# set > set ; env > env
|
||||
#./result/example.app.apk : ./result/signed.apk
|
||||
# $(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/zipalign -v -f 4 $< $@
|
||||
# $(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/apksigner sign --ks ToyKey.keystore --key-pass pass:armena --ks-pass pass:armena $@
|
||||
#
|
||||
#./result/signed.apk : ./result/unsigned.apk ./ToyKey.keystore ./result
|
||||
# jarsigner -verbose -keystore ./ToyKey.keystore -storepass armena -keypass armena -signedjar $@ $< helljniKey
|
||||
#
|
||||
#./result:
|
||||
# mkdir -p "$@"
|
||||
#
|
||||
#./result/unsigned.apk : ./bin/classes.dex ./result
|
||||
# rm -rvf "$@"
|
||||
# $(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/aapt package -v -u -f -M ./AndroidManifest.xml -S ./res \
|
||||
# -I $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar -A ./assets -F $@ ./bin
|
||||
#
|
||||
#./bin/classes.dex : ./obj/app/example/ExampleApp.class ./obj/app/example/ExampleApp$$1.class
|
||||
# $(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/d8 ./obj/app/example/*.class --lib $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar --output bin
|
||||
#
|
||||
#./src/app/example/R.java : $(shell find ./res -type f)
|
||||
# $(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/aapt package -v -f -m -S ./res -J ./src -M ./AndroidManifest.xml \
|
||||
# -I $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar
|
||||
#
|
||||
#./obj/app/example/ExampleApp.class : ./src/app/example/ExampleApp.java ./src/app/example/R.java
|
||||
# javac -d ./obj -classpath $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar -sourcepath ./src $<
|
||||
#
|
||||
#./ToyKey.keystore :
|
||||
# keytool -genkeypair -validity 1000 -dname "CN=alexander,O=Android,C=JPN" -keystore $@ \
|
||||
# -storepass armena -keypass armena -alias helljniKey -keyalg RSA -v
|
||||
#
|
||||
#clean:
|
||||
# rm -f ./bin/* ./lib/arm64-v8a/* ./result/*
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue