反編譯命令
java -jar apktool d 文件名.apk
打包命令
java -jar apktool b 文件目錄 -o 指定文件名.apk
簽名命令
預(yù)備條件:有個密鑰庫文件。
密鑰庫文件生成的方法:
keytool -genkey -alias test.keystore -keyalg RSA -validity 20000 -keystore test.keystore
其中,-genkey表示生成密鑰,-alias表示密鑰別名,-keyalg表示密鑰的算法,-validity表示有效期,-keystor表示生成文件的名字
之后會提示輸入相應(yīng)的信息,輸入后按Y確認即可
- 若最后提示keytool 錯誤: java.io.FileNotFoundException: android.keystore (拒絕訪問。)
是因為-keystore test.keystore指定的路徑(即Java路徑)是不能寫的,需要指定到其他地方,如-keystore d:\test.keystore,將文件保存在d盤。
使用test.keystore簽名:
jarsigner -verbose -keystore test.keystore -signedjar testapk_signed.apk testapk.apk test.keystore
其中:
-verbose表示顯示出簽名詳細信息
-keystore表示使用當前目錄中的test.keystore簽名證書文件。
-signedjar testapk_signed.apk表示簽名后生成的APK名稱
testapk.apk表示未簽名 的APK
test.keystore表示密鑰的別名
應(yīng)用重新打包簽名安裝后,可能不能正常使用,是因為代碼中可能加入了驗證證書的相關(guān)代碼。