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:
XoséandClaude Opus 5.5 committed 2026-10-19 16:57:48 +02:00
1 parent 5eeaf0f519
commit 748f6add54
24 files changed
+37 -71

No files matched your search

+10 -12
View File
@@ -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