APKtool編譯生成的apk若沒簽名,不能安裝,可以用signapk對apk文件簽名。signapk是Android源碼包中的一個簽名工具,源碼路徑為/build/tools/signapk/SignApk.java!
signapk簽名工具介紹:
SignApk.jar是一個已包含在Android平臺源碼包中的工具。如果要使用SignApk.jar,你需要創(chuàng)建一個帶有對應(yīng)證書/公鑰的私鑰。而你可以使用Openssl來創(chuàng)建私鑰/公鑰對。在Unix/Linux系統(tǒng)中使用Openssl相對來說比較容易。
signapk簽名工具用法:
如何使用OpenSSL創(chuàng)建私鑰/公鑰對
在OpenSSL\bin文件夾下按順序輸入
openssl genrsa -out key.pem 1024
openssl req -new -key key.pem -config C:\OpenSSL\openssl.cnf -out request.pem
openssl x509 -req -days 9999 -in request.pem -signkey key.pem -out certificate.pem
openssl pkcs8 -topk8 -outform DER -in key.pem -inform PEM -out key.pk8 -nocrypt
(如果你創(chuàng)建了自己的私鑰/公鑰對)
復(fù)制certificate.pem和key.pk8到文件夾中,在該文件下下
java -jar signapk.jar certificate.pem key.pk8 your-app.apk your-signed-app.apk
或是
java -jar signapk.jar certificate.pem key.pk8 your-update.zip your-signed-update.zip
使用方法:
java -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk 執(zhí)行后new.apk即為簽名后的文件。
其中platform.x509.pem替換為壓縮包中的testkey.x509.pem,platform.pk8替換為testkey.pk8。
之前我們說過signapk工具也可以對刷機rom卡刷包進行前面,同樣的我們也可以使用上面的方法對卡刷包進行簽名。我們只需要將上面的最后兩個參數(shù)修改下就可以了,將old.apk修改為卡刷包的文件名,如update.zip,將new.apk修改為簽名過后生成的文件名,如update_new.zip即可。