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


android想要獲得系統權限有幾種途徑,一種就是你的程序固化的系統中,這種方式可以通過將apk放到rom中/system/app中然后刷機即可,或者是在你的程序root后通過root文件管理器將apk放到改目錄下.第二種就是你的程序必須要有該平台的簽名,那么怎樣獲得android下的系統簽名呢.

首先需要有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源碼目錄中的位置是/build/target/product/security下面的platform.pk8和platform.x509.pem兩個文件(該目錄下面還有兩個testkey.pk8和testkey.x509.pem文件這兩個是系統簽名測試文件,第三方rom一般通過使用這個重新簽名修改后的rom,上面提到的第一種方法修改完后需要使用該文件簽名,不簽在某些recovery下是可以通過的,但是還是建議簽)

在獲得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.apk

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


免責聲明!

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



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