1. 程式人生 > >Android為apk重新簽名

Android為apk重新簽名

前言

重新簽名,在一些地方有一些用途。

準備工作

去除apk中的兩個檔案

使用解壓縮工具,這裡使用的是7z解壓縮工具。進入
進入apk

進入META-INF

7z d apk.apk META-INF/*.RSA META-INF/*SF -r

如果存在CERT.RSA和檔案CERT.SF請刪除

java環境 這個是必須具備的前提條件

開始重新簽名

生成簽名證書

keytool -genkey -v -keystore test.keystore -alias test -keyalg RSA -validity 20000

keytool -genkeypair -dname "cn=Mark Jones, ou=JavaSoft, o=Sun, c=US" -alias business -keypass kpi135 -keystore android.keystore -storepass ab987c -validity 9999


-keyalg 是加密方式這裡是RSA
-validity 是有效期這裡是20000
-keystore 要生成的keystore名稱,這裡是test.keystore
-alias 最後面跟的是別名,這裡是test

檢視簽名

keytool -list -v -keystore **.keystore -storepass 123456

開始簽名

jarsigner -verbose -keystore test.keystore -signedjar app-signed.apk app.apk test
-keystore: keystore的名稱
-signedjar app-signed.apk: 指定簽名後生成的APK名稱
app.apk: 準備工作中的那個apk

驗證簽名

jarsigner -verify app-signed.apk
提示如下:
已簽名的提示

如果沒有準備工作,這一步會發現一個異常,並且簽名後的包也不可以用。