天天看點

Android 使用 platform key 給apk簽名

如果使用Android Studio對代碼進行

make project

後,将輸出的

app-debug.apk

部署到手機

/system/app

下,雖然該apk能作為系統 app 自動安裝并無法删除,但他在 selinux 中屬于

u:r:untrusted_app:s0

标簽(域),隻有通路 ASEC、SD卡、TCP/UDP socket、PTY的權限,且受制于

neverallow

規則的限制,在源碼中無法對其開放驅動節點通路的權限。

若要在seLinux開放app通路特定的驅動節點,我們需要将app進行

platform_app

簽名:

  • 将xxx.apk檔案放到aosp根目錄,在aosp根目錄執行以下指令:
java -Djava.library.path="out/host/linux-x86/lib64" -jar out/host/linux-x86/framework/signapk.jar build/target/product/security/platform.x509.pem build/target/product/security/platform.pk8 xxx.apk xxx-signed.apk
           

簽名後安裝至Android機器中,現其在SELinux中的标簽(域)為:

u:r:platform_app:s0

參考文獻

  [1] lei7143. O apk 簽名[EB/OL].CSDN部落格,2018.06.01