windowsでapkの署名をするのに手こずったので作業メモ
参考にしたのはこちら
qiita.com
前提としてjavaとAndroid Studioがインストールされていること
https://www.java.com/ja/download/
https://developer.android.com/studio
プログラムの実行は必要に応じパス指定するか環境変数pathに追加すること
apkファイル"sample.apk"の展開 ※カレントフォルダにtmpを作成しそこに展開
apktool d "sample.apk" -o tmp
tmpからapkファイルをリビルド
apktool b tmp
W: invalid resource directory name:でエラーになる場合は--use-aapt2オプションを使う
※エラーの理由とかよくわからなかったorz
apktool --use-aapt2 b tmp
署名に必要なキーストア"nakapon.keystore"を作成する
※alias よくわからなかったのでkeystore_aliasのまま
keytool -genkeypair -v -keystore nakapon.keystore -alias keystore_alias -keyalg RSA -keysize 2048 -validity 10000
作成はできるがpkcs12にしろと警告メッセージが出るので変換
※多分最初からpkcs12を指定すれば良いだけだと思う
keytool -importkeystore -srckeystore nakapon.keystore -destkeystore nakapon.keystore -deststoretype pkcs12
zipalignで署名前にアライメント調整 "sample.apk" -> "sample aligned.apk"
※サイトによっては署名後に行うよう解説しているところもあるがmicrosoftのサイトでは前
zipalign -v -p 4 "sample.apk" "sample aligned.apk"
apksignerで署名 "sample aligned.apk" -> "sample signed.apk"
apksigner sign --ks nakapon.keystore --ks-key-alias keystore_alias --out "sample signed.apk" "sample aligned.apk"
署名の確認
apksigner verify "sample signed.apk"