在開發中,有些應用的代碼不參與系統編譯,而是在IDE工具中編譯,然後apk參與系統編譯並被簽名(需要系統簽名權限),在調試中時常需要替換系統中編譯出來的apk,簽名不同會導致安裝失敗。
1.在程序代碼中添加系統權限
androidManifest.xml中添加 android:sharedUserId="android.uid.system"
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xxx.xxx.xxx"
android:sharedUserId="android.uid.system" >
2.在源碼中提取簽名文件
源碼的簽名文件各部相同,由定製系統的廠商來提供,文件在:build\target\product\security目錄下
定製源碼不同目錄結果會有差異,可以將目錄整個拷貝出來,或將上圖箭頭所指的文件拷貝出;
3.簽名工具SignApk.jar
下載好SignApk.jar簽名工具後,與apk和簽名文件放在同一目錄(比較方便)
編輯簽名腳本例如:
紅色箭頭爲原APK文件名,藍色箭頭爲簽名後的APK文件名,可隨意編輯名稱
運行編輯好的bat腳本,就會在同目錄下生成簽名後的apk