android: 對apk進行系統簽名


下午收到合作伙伴給的測試的Apk,該apk需要用到系統權限,並且要在我司開發的android開發板上運行。本來想圖省事,於是直接使用 adb push 命令將這個apk push 到system/app目錄下,后來發現apk push成功了,但是重啟板子后,他們的apk 死活跑不起來,甚至launcher上連圖標都沒有!后來咨詢他們的工程師,說是需要給該apk 加上系統簽名,並且要使用adb install 指令才能安裝成功。通過反編譯他們的apk, 注意到清單文件中聲明了:

android:sharedUserId="android.uid.system"

所以要是直接使用adb install 指令安裝是肯定不行的,可能會報一些:

INSTALL_FAILED_SHARED_USER_INCOMPATIBLE 諸如此類的問題。

於是找系統組的人要了簽名證書文件:platform.pk8 和 platform.x509.pem,對該apk進行系統簽名:

java -jar signapk.jar platform.x509.pem platform.pk8 8761_Dongle_Demo.apk 8761_Dongle_signed.apk

signapk.jar 是簽名工具。

8761_Dongle_Demo.apk 是合作伙伴給的未簽名的apk

8761_Dongle_signed.apk 是我指定的生成的apk的名字

執行:

這樣就能生成帶系統簽名的apk, 再次執行adb install 就不會再報 INSTALL_FAILED_SHARED_USER_INCOMPATIBLE 這樣的問題了。

關於 platform.pk8 和 platform.x509.pem 這兩個文件

這兩個文件位於: /build/target/product/security/ 目錄下:http://androidxref.com/4.4_r1/xref/build/target/product/security/

 

但要注意不能直接使用AOSP code中的這兩個文件,這兩個文件由定制android系統的廠商提供。

signapk.jar 下載鏈接:鏈接: https://pan.baidu.com/s/1mVQTwLP_Ju52p5A_MGr8UQ 提取碼: ba3c

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM