MASTG-TECH-0039: Repackaging and Re-Signing
Reempacotamento¶
Você pode facilmente reempacotar um aplicativo fazendo o seguinte:
cd UnCrackable-Level1
apktool b
zipalign -v 4 dist/UnCrackable-Level1.apk ../UnCrackable-Repackaged.apk
Observe que o diretório de ferramentas de compilação do Android Studio deve estar no path. Ele está localizado em [SDK-Path]/build-tools/[version]. As ferramentas zipalign e apksigner estão neste diretório.
Ressinatura¶
Antes de reassinar, você primeiro precisa de um certificado de assinatura de código. Se você já construiu um projeto no Android Studio anteriormente, a IDE já criou um keystore de debug e um certificado em $HOME/.android/debug.keystore. A senha padrão para este KeyStore é "android" e a chave se chama "androiddebugkey".
A distribuição padrão do Java inclui o keytool para gerenciar KeyStores e certificados. Você pode criar seu próprio certificado e chave de assinatura, e depois adicioná-lo ao KeyStore de debug:
keytool -genkey -v -keystore ~/.android/debug.keystore -alias signkey -keyalg RSA -keysize 2048 -validity 20000
Após o certificado estar disponível, você pode reassinar o APK com ele. Certifique-se de que o apksigner está no path e que você o executa a partir da pasta onde seu APK reempacotado está localizado.
apksigner sign --ks ~/.android/debug.keystore --ks-key-alias signkey UnCrackable-Repackaged.apk
Nota: Se você encontrar problemas de compatibilidade do JRE com o apksigner, pode usar o jarsigner em vez disso. Quando fizer isso, o zipalign deve ser chamado após a assinatura.
jarsigner -verbose -keystore ~/.android/debug.keystore ../UnCrackable-Repackaged.apk signkey
zipalign -v 4 dist/UnCrackable-Level1.apk ../UnCrackable-Repackaged.apk
Agora você pode reinstalar o aplicativo:
adb install UnCrackable-Repackaged.apk