MASTG-TECH-0039: Repackaging & Re-Signing
Repackaging¶
You can easily repackage an app by doing the following:
cd UnCrackable-Level1
apktool b
zipalign -v 4 dist/UnCrackable-Level1.apk ../UnCrackable-Repackaged.apk
Note that the Android Studio build tools directory must be in the path. It is located at [SDK-Path]/build-tools/[version]
. The zipalign
and apksigner
tools are in this directory.
Re-Signing¶
Before re-signing, you first need a code-signing certificate. If you have built a project in Android Studio before, the IDE has already created a debug keystore and certificate in $HOME/.android/debug.keystore
. The default password for this KeyStore is "android" and the key is called "androiddebugkey".
The standard Java distribution includes keytool
for managing KeyStores and certificates. You can create your own signing certificate and key, then add it to the debug KeyStore:
keytool -genkey -v -keystore ~/.android/debug.keystore -alias signkey -keyalg RSA -keysize 2048 -validity 20000
After the certificate is available, you can re-sign the APK with it. Be sure that apksigner
is in the path and that you run it from the folder where your repackaged APK is located.
apksigner sign --ks ~/.android/debug.keystore --ks-key-alias signkey UnCrackable-Repackaged.apk
Note: If you experience JRE compatibility issues with apksigner
, you can use jarsigner
instead. When you do this, zipalign
must be called after signing.
jarsigner -verbose -keystore ~/.android/debug.keystore ../UnCrackable-Repackaged.apk signkey
zipalign -v 4 dist/UnCrackable-Level1.apk ../UnCrackable-Repackaged.apk
Now you may reinstall the app:
adb install UnCrackable-Repackaged.apk