Calendar Lite 1.5: GingerCal is now Calendar Lite, new icon and reminder icon
Renames the app (label, texts, User-Agent, PRODID, APK) and uses the new launcher icon pack (ldpi to xhdpi, master in art/) instead of drawing one at build time. Reminders show a white calendar glyph in the status bar (stat_notify, 18-48 px) instead of the system's colour alarm clock, which didn't fit the Gingerbread bar. The package name, database and signing key stay, so it installs over GingerCal and keeps its data. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
5eeaf0f519
commit
748f6add54
24 files changed
+37
-71
No files matched your search
@@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Builds GingerCal.apk for Android 2.3 (API 10) without Gradle.
|
||||
# Builds CalendarLite.apk for Android 2.3 (API 10) without Gradle.
|
||||
#
|
||||
# Needs: JDK 11+ (javac, keytool), python3 with Pillow (icon), and three tools:
|
||||
# Needs: JDK 11+ (javac, keytool), python3, and three tools:
|
||||
# D8 command that runs d8 (Android SDK build-tools; default "d8" on PATH)
|
||||
# APKTOOL path to apktool.jar (https://apktool.org; bundles aapt and smali)
|
||||
# APKSIGNER path to apksigner.jar (Android SDK build-tools/<ver>/lib/apksigner.jar)
|
||||
@@ -20,7 +20,7 @@ VERSION_CODE=$(sed -n 's/.*android:versionCode="\([0-9]*\)".*/\1/p' AndroidManif
|
||||
VERSION_NAME=$(sed -n 's/.*android:versionName="\([^"]*\)".*/\1/p' AndroidManifest.xml)
|
||||
|
||||
rm -rf "$OUT"
|
||||
mkdir -p "$OUT/stubs" "$OUT/classes" "$OUT/dex" "$OUT/apk/res/drawable" "$OUT/apk/res/drawable-ldpi"
|
||||
mkdir -p "$OUT/stubs" "$OUT/classes" "$OUT/dex" "$OUT/apk/res"
|
||||
|
||||
# 0. every interface string must have its Galician translation
|
||||
python3 tools/check_i18n.py .
|
||||
@@ -46,13 +46,11 @@ java -cp "$APKTOOL:$OUT/tools" Disassemble "$OUT/dex/classes.dex" "$OUT/apk/smal
|
||||
|
||||
# 3. resources + manifest, compiled by real aapt (v1, the tool of the Gingerbread era)
|
||||
cp AndroidManifest.xml "$OUT/apk/"
|
||||
cp -r res/values "$OUT/apk/res/"
|
||||
cp -r res/* "$OUT/apk/res/" # launcher icon (ldpi..xhdpi) and the status-bar reminder icon
|
||||
cp -r assets "$OUT/apk/" # Mozilla root certificates for the bundled TLS
|
||||
python3 tools/mkicon.py "$OUT/apk/res/drawable/icon.png" 48
|
||||
python3 tools/mkicon.py "$OUT/apk/res/drawable-ldpi/icon.png" 36
|
||||
cat > "$OUT/apk/apktool.yml" <<EOF
|
||||
version: 2.9.3
|
||||
apkFileName: GingerCal.apk
|
||||
apkFileName: CalendarLite.apk
|
||||
isFrameworkApk: false
|
||||
usesFramework:
|
||||
ids:
|
||||
@@ -80,14 +78,14 @@ java -jar "$APKTOOL" -q b --use-aapt1 -api 8 -f -o "$OUT/unsigned.apk" "$OUT/apk
|
||||
# attributes; apksigner picks exactly that for --min-sdk-version 8. (jarsigner does not.)
|
||||
if [ ! -f "$KS" ]; then
|
||||
keytool -genkeypair -keystore "$KS" -storetype PKCS12 -storepass android -keypass android \
|
||||
-alias gingercal -keyalg RSA -keysize 2048 -sigalg SHA1withRSA -validity 10000 -dname "CN=GingerCal" 2>/dev/null
|
||||
-alias gingercal -keyalg RSA -keysize 2048 -sigalg SHA1withRSA -validity 10000 -dname "CN=Calendar Lite" 2>/dev/null
|
||||
fi
|
||||
java -jar "$APKSIGNER" sign --ks "$KS" --ks-key-alias gingercal --ks-pass pass:android --key-pass pass:android \
|
||||
--min-sdk-version 8 --v1-signing-enabled true --v2-signing-enabled false --v3-signing-enabled false \
|
||||
--v4-signing-enabled false --out "$OUT/signed.apk" "$OUT/unsigned.apk"
|
||||
python3 tools/zipalign.py "$OUT/signed.apk" GingerCal.apk
|
||||
python3 tools/zipalign.py "$OUT/signed.apk" CalendarLite.apk
|
||||
|
||||
# 5. refuse to ship anything Android 2.3 would reject
|
||||
java -jar "$APKSIGNER" verify --min-sdk-version 8 --max-sdk-version 10 GingerCal.apk
|
||||
python3 tools/check_dex.py GingerCal.apk
|
||||
ls -l GingerCal.apk
|
||||
java -jar "$APKSIGNER" verify --min-sdk-version 8 --max-sdk-version 10 CalendarLite.apk
|
||||
python3 tools/check_dex.py CalendarLite.apk
|
||||
ls -l CalendarLite.apk
|
||||
Reference in new issue
Block a user