2016/12/27
署名済みの apk から署名を削除する方法
Debug Keystore で署名済みの apk が送られてきちゃった。みたいな事は時々あると思うのですが、そういう時は署名を削除して再署名すれば良いのです。
apk の署名とは
apk の署名は以下の 3つのファイルで構成されています1。 そのため、これらのファイルを削除すれば、未署名の apk になります。
- META-INF/MANIFEST.MF
- META-INF/CERT.RSA
- META-INF/CERT.SF
注: CERT.RSA と CERT.SF は別の名前(ANDROID.RSA 等)になっている場合があります。
参考
署名を削除する
コマンドラインだと以下のようにすると良いでしょう。
1 2 3 4 | $ zip -d app-debug.apk "META-INF/*" deleting: META-INF/CERT.RSA deleting: META-INF/CERT.SF deleting: META-INF/MANIFEST.MF |
この方法だと META-INF
ディレクトリ自体を削除してしまうのですが、apk の場合 META-INF
にこれ以外のファイルが入ることは無さそうなので2、これで大丈夫だと思われます。
以下のように apksigner verify
をするとエラーが出ます。
1 2 3 | $ apksigner verify app-debug.apk DOES NOT VERIFY ERROR: Missing META-INF/MANIFEST.MF |
参考
再署名する
未署名の apk に後から署名する方法がそのまま使えます。
zipalign
を忘れないようにしましょう。
0 件のコメント:
コメントを投稿