最近在開發中碰到實現android系統重啟的問題,經過一天折騰和上網查資料終於把問題解決了,這里主要是權限的問題。分享如下:
環境:android2.2 eclipse3.7 jdk1.6
我主要采用的簽名的方式:
1.在AndroidManifest.xml中的manifest節點中添加 android:sharedUserId="android.uid.system"。
2.添加后程序在虛擬機上是不可以直接用的。但可以用eclipse編譯成apk。
3.編譯成apk后用壓縮工具打開apk,把META-INF目錄中的CERT.SF、CERT.RSA 兩個文件刪除。
4.使用android自帶的簽名工具signapk.jar 以及源碼中的platform.x509.pem,platform.pk8 對apk進行重新簽名。
執行:java -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk 執行后new.apk即為簽名后的文件。
(注:執行命令時所有文件這里放在同一目錄下,如果不在同一目錄請修改路徑)。
文件platform.x509.pem和platform.pk8我們可以在源碼的 build/target/product/security中找到。signapk.jar 可以編譯build/tools/signapk/ 得到。
5.簽名后就可以安裝使用了
另外這樣簽名后可能會導致不能操作sdcard目錄下的文件。