讓Android程序得到系統的權限,實現關機重啓,靜默安裝等功能

引用:http://www.cnblogs.com/welenwho/archive/2012/05/10/2494984.htmlhtml

android想要得到系統權限有幾種途徑,一種就是你的程序固化的系統中,這種方式能夠經過將apk放到rom中/system/app中而後刷機便可,或者是在你的程序root後經過root文件管理器將apk放到改目錄下.第二種就是你的程序必需要有該平臺的簽名,那麼怎樣得到android下的系統簽名呢.java

首先須要有android的源碼,編譯出signapk.jar文件,signapk的源碼在android源碼目錄的/build/tools/signapk下,首先須要cd到該目錄下,而後經過javac signapk.java命令編譯該源文件,獲得SignApk$SignatureOutputStream.class和SignApk.class文件,而後手動建立 k/com/android/signapk目錄,而後將兩個class文件放到該目錄下,執行jar cvfm signapk.jar SignApk.mf -C k\ .便可生成signapk.jar文件,獲得android提供的簽名程序(k\ .之間有空格).android

而後是在android源碼目錄中的位置是/build/target/product/security下面的platform.pk8和platform.x509.pem兩個文件(該目錄下面還有兩個testkey.pk8和testkey.x509.pem文件這兩個是系統簽名測試文件,第三方rom通常經過使用這個從新簽名修改後的rom,上面提到的第一種方法修改完後須要使用該文件簽名,不簽在某些recovery下是能夠經過的,可是仍是建議籤)app

在得到signapk.jar文件和platform.pk8和platform.x509.pem文件後就能夠對某個apk進行系統簽名了 ,具體執行指令以下,假如須要對名爲welen.apk(在此以前,welen.apk文件的生成時必須在AndroidManifest.xml文件中加入android:sharedUserId="android.uid.system",使其得到和系統同樣的uid,在加入該屬性後若是沒有通過系統簽名,該apk是沒法安裝的)的文件進行系統簽名,則測試

java -jar signapk.jar platform.x509.pem platform.pk8 welen.apk welen_signed.apkui

使用上面指令便可對welen.apk文件進行簽名,簽名後的文件擁有系統程序的權限,可執行靜默安裝卸載,系統關機重啓,強制結束進程等操做,具體的關機重啓的代碼就不寫了spa

相關文章
相關標籤/搜索