Apksigner (#3)

* Bump apktool to 2.6.0

* Switch from jarsigner to apksigner
This commit is contained in:
Livia Medeiros 2021-12-13 02:17:24 +08:00 committed by GitHub
parent deebb890df
commit 81186c630b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 33 additions and 14 deletions

5
.gitignore vendored
View File

@ -426,3 +426,8 @@ lib/cocos_old/
lib/Dobby_old/ lib/Dobby_old/
sign.bat sign.bat
sign.sh sign.sh
jarsign.sh
# Android NDK, build-tools
/ndk/
/abt/

View File

@ -8,8 +8,9 @@ NINJA="${MT_NINJA:-ninja}" # /usr/bin/ninja
CURL="${MT_CURL:-curl}" # /usr/bin/curl CURL="${MT_CURL:-curl}" # /usr/bin/curl
JAVA="${MT_JAVA:-java}" # /usr/bin/java JAVA="${MT_JAVA:-java}" # /usr/bin/java
PYTHON="${MT_PYTHON:-python3}" # /usr/bin/python3.8 PYTHON="${MT_PYTHON:-python3}" # /usr/bin/python3.8
JARSIGNER="${MT_JARSIGNER:-jarsigner}" # /usr/bin/jarsigner APKTOOL="${MT_APKTOOL:-apktool_2.6.0.jar}"
APKTOOL="${MT_APKTOOL:-apktool_2.5.0.jar}" ZIPALIGN="${MT_ZIPALIGN:-zipalign}" # ~/android-sdk/build-tools/zipalign
APKSIGNER="${MT_APKSIGNER:-apksigner}" # ~/android-sdk/build-tools/apksigner
# arg-based # arg-based
SRCAPK="${1:-${BASEDIR}/apk/vanilla.apk}" SRCAPK="${1:-${BASEDIR}/apk/vanilla.apk}"

View File

@ -2,21 +2,34 @@
BASEDIR="$(realpath "$(dirname "${0}")")" BASEDIR="$(realpath "$(dirname "${0}")")"
# env-based # env-based
JARSIGNER="${MT_JARSIGNER:-jarsigner}" # /usr/bin/jarsigner ZIPALIGN="${MT_ZIPALIGN:-zipalign}" # ~/android-sdk/build-tools/zipalign
APKSIGNER="${MT_APKSIGNER:-apksigner}" # ~/android-sdk/build-tools/apksigner
# hardcode-based
#ZIPALIGN="${BASEDIR}/abt/zipalign"
#APKSIGNER="${BASEDIR}/abt/apksigner"
# arg-based # arg-based
APK="${1:-${BASEDIR}/build/io.kamihama.magiatranslate.v0.50.apk}" APK="${1:-${BASEDIR}/build/io.kamihama.magiatranslate.v0.50.apk}"
KEYSTORE="${2:-${BASEDIR}/changeme.keystore}" KEYSTORE="${2:-${BASEDIR}/changeme.keystore}"
if [ ! -f "${APK}" ] _errorexit() {
then [ -z "${2}" ] || echo "${2}"
echo "Missing apk to sign! Tried file: ${APK}" echo "Signing failed."
exit 1 exit ${1}
fi }
if [ ! -f "${KEYSTORE}" ]
then
echo "Missing keystore! Tried file: ${KEYSTORE}"
exit 2
fi
${JARSIGNER} -sigalg SHA512withRSA -digestalg SHA-512 -keystore "${KEYSTORE}" "${APK}" -storepass changeme name [ -f "${APK}" ] || _errorexit 1 "Missing apk to sign! Tried file: ${APK}"
[ -f "${KEYSTORE}" ] || _errorexit 2 "Missing keystore! Tried file: ${KEYSTORE}"
echo "Doing zipalign..."
"${ZIPALIGN}" -f -p 4 "${APK}" "${APK}.tmp"
[ "$?" -ne "0" ] && _errorexit 3 "Failed to zipalign!"
echo "Doing apksign..."
"${APKSIGNER}" sign --ks "${KEYSTORE}" --ks-pass pass:changeme --ks-key-alias name "${APK}.tmp"
[ "$?" -ne "0" ] && _errorexit 4 "Failed to apksign!"
echo "Removing tmp file..."
mv "${APK}.tmp" "${APK}"
exit 0