android之使用signapk打包成系統應用,獲取系統許可權

wangsfine發表於2016-04-21

        有的時候在應用程式中需要獲取一些特殊許可權,比如寫該系統時間,或者關機程式,這是後除了獲取root許可權方法之外,還可以使用在menifest.xml檔案中新增android:sharedUserId="android.uid.system"到根節點中將自己的應用程式打包成系統應用以達到目的。


但是新增android:sharedUserId="android.uid.system"編譯成功後的apk是不能安裝的 ,這是因為系統應用使用了統一的簽名,而我們的簽名和系統應用的簽名不一樣,所以接下來的事情就是怎麼將自己的應用簽名改成系統的應用簽名了(尷尬的是現在國內大多數系統都是定製過得,系統應用簽名無法獲取,所以該方法僅限於android原生系統)


1、使用目標系統的platform金鑰來重新給apk檔案簽名。

首先在我的Android原始碼目錄中的位置是"build        argetproductsecurity",下面的platform.pk8和platform.x509.pem兩個檔案。

然後使用系統提供的簽名工具signapk.jar,使用步驟是將自己的apk還有上述三個檔案放入一個資料夾如圖:


2、然後用壓縮軟體開啟自己的apk檔案,刪掉META-INF目錄下的CERT.SF和CERT.RSA兩個檔案。


3、然後在cmd下進入到改資料夾下我的是e:/to/SignApk使用如下命令:


回車後我們的資料夾下已經多了一個new.apk檔案了,這就將我們的應用打包成系統應用瞭如圖:

下面是資源問價signapk.jar  platfrom.pk8   platform.x509.pem 的下載連結:

下載連結




相關文章