⑴ 如何用android:sharedUserId屬性生成帶有系統許可權的apk
如何用android:sharedUserId屬性生成帶有系統許可權的apk?
通過源碼編譯apk獲取系統許可權,主要有兩種方法:使用Android系統源碼的環境下用make命令編譯,或者使用eclipse源碼編譯,無需使用make命令。
方法1:Android源碼環境下的make命令編譯。首先在android源碼根目錄下執行以下命令:
- build/envsetup.sh 設置編譯環境
- lunch 選擇編譯目標
- make 編譯整個系統
Android平台提供常用命令如:
- make 編譯整個系統或單個模塊
- mmm 編譯指定目錄下的模塊
- mm 編譯當前目錄下的模塊
- mma 編譯當前目錄及其依賴模塊
- mms 編譯指定目錄及其依賴模塊
- make sdk 編譯SDK
- make snod 生成系統映像,速度較快但不穩定
方法2:使用eclipse源碼編譯。在signapk.java代碼目錄下執行命令:
- javac signapk.java 獲取SignApk$SignatureOutputStream.class和SignApk.class
- 將兩個class文件放入目錄下並生成signapk.jar文件
- 復制platform.pk8和platform.x509.pem文件至signapk.jar和SignApk.mf所在的目錄
- 使用java -jar signapk.jar簽名apk文件
在加入android:sharedUserId="android.uid.system"屬性後,程序運行在系統進程中,擁有系統許可權。但還需使用platform.pk8和platform.x509.pem兩個文件簽名apk,確保在系統中安裝和運行。生成的程序僅在原始Android系統或自己編譯的系統中可用。
系統中使用不同共享UID的APK具有不同的許可權和用途。遵循上述方法,你可以嘗試編譯帶有sharedUserId許可權的apk,並將其放置在開發版的/system/priv-app/目錄下,以實現靜默ota升級。
本文章總結了使用android:sharedUserId屬性生成帶有系統許可權的apk的方法和注意事項,希望對開發者有所幫助。後續將介紹ota升級的理論、實踐和原理等內容。歡迎關注知乎主頁以獲取更多Android開發知識。sunst 2019-06-15 23:30