{{tag>android}} ====== Sign android apk from terminal ====== This was used for signing an apk built with buildozer and made with kivy. ===== Create certificate ===== keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000 ===== Migrate keystore to PKCS12 ===== Above command will recommend this so do it: keytool -importkeystore -srckeystore my-release-key.keystore -destkeystore my-release-key.keystore -deststoretype pkcs12 ===== Sign the apk ===== jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name ===== Zipalign the apk ===== This is required for uploading to the Play Store. It aligns the data in apk to start on 4 byte boundaries for faster memory access and reduced memory consumption. Install tool sudo apt install zipalign Align zipalign -v 4 my_application.apk-signed.apk my_application.apk-signed-aligned.apk ====== Tested on ====== * Xubuntu 20.04.1 * Buildozer 1.2.0 * kivy 2.0.0 ====== References ====== * https://stackoverflow.com/a/17777071/6881647 * https://developer.android.com/studio/publish/app-signing