From 40f6d425a4429b16936cc8bb4900a23c3362a123 Mon Sep 17 00:00:00 2001 From: Xavier Del Campo Romero Date: Sun, 7 Jan 2024 23:49:03 +0100 Subject: WIP --- Makefile | 48 ++++++++++++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 18 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 76f8162..471ca21 100644 --- a/Makefile +++ b/Makefile @@ -1,20 +1,28 @@ .POSIX: .SUFFIXES: .apk .unsigned .aligned -PROJECT = helloworld +PROJECT = org.slcl ANDROIDSDK = /usr/lib/android-sdk DX = $(ANDROIDSDK)/build-tools/debian/dx MANIFEST = AndroidManifest.xml PLATFORM = $(ANDROIDSDK)/platforms/android-23/android.jar OBJECTS = \ - HelloWorld.class \ - Test.class + src/org/slcl/core/Cookie.class \ + src/org/slcl/core/Login.class \ + src/org/slcl/Directory.class \ + src/org/slcl/InternalFile.class \ + src/org/slcl/Main.class RESOURCES = \ + res/layout/activity_directory.xml \ res/layout/activity_main.xml -R = helloworld/R.java +R = src/org/slcl/R.java +PASS = password.secret +DNAME = "cn=slcl, ou=slcl, o=slcl, c=ES" # Resources: # https://www.hanshq.net/command-line-android.html +# https://unix.stackexchange.com/questions/230673/how-to-generate-a-random-string +# https://stuff.mit.edu/afs/sipb/project/android/docs/guide/topics/resources/layout-resource.html#layoutvalues all: $(PROJECT).apk @@ -24,20 +32,23 @@ $(PROJECT).apk: keystore.jks apksigner sign \ --ks keystore.jks \ --ks-key-alias androidkey \ - --ks-pass pass:android \ - --key-pass pass:android \ + --ks-pass file:$(PASS) \ --out $@ $< -keystore.jks: - keytool \ +keystore.jks: $(PASS) + (for i in 1 2; do cat $(PASS); done; echo) \ + | keytool \ -genkeypair \ + -dname $(DNAME) \ -keystore $@ \ -alias androidkey \ - -validity 10000 \ -keyalg RSA \ - -keysize 4096 \ - -storepass android \ - -keypass android + -keysize 4096 + +$(PASS): + (LC_ALL=C \ + tr -dc 'A-Za-z0-9!"#$$%&'\''()*+,-./:;<=>?@[\]^_`{|}~' \ + < /dev/urandom | head -c 100; echo) > $(PASS) .unsigned.aligned: zipalign -f -p 4 $< $@ @@ -45,19 +56,20 @@ keystore.jks: $(PROJECT).unsigned: dex/classes.dex $(MANIFEST) aapt package -f -F $@ -I $(PLATFORM) -M $(MANIFEST) -S res dex -dex/classes.dex: $(OBJECTS) $(MANIFEST) +dex/classes.dex: .build $(MANIFEST) mkdir -p dex - $(DX) --dex --output=$@ $(OBJECTS) + $(DX) --dex --min-sdk-version=9 --output=$@ src -$(OBJECTS): $(OBJECTS:.class=.java) $(R) - javac -bootclasspath $(PLATFORM) -source 1.7 $(OBJECTS:.class=.java) +.build: $(OBJECTS:.class=.java) $(R) + javac -bootclasspath $(PLATFORM) -source 1.7 -sourcepath src $(OBJECTS:.class=.java) + touch $@ $(R): $(MANIFEST) $(RESOURCES) - aapt package -f -m -S res -M $(MANIFEST) -I $(PLATFORM) -J . + aapt package -f -m -S res -M $(MANIFEST) -I $(PLATFORM) -J src clean: rm -f $(R) $(OBJECTS) $(PROJECT).unsigned \ $(PROJECT).aligned $(PROJECT).apk.idsig dex/classes.dex distclean: clean - rm -rf dex/ *.apk keystore.jks + rm -rf dex/ *.apk keystore.jks $(PASS) -- cgit v1.2.3