首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 定制系統靜默安裝方案:系統簽名 + /system/app 放置 + SELinux 權限配置

     編輯:程式設計綜合問答

核心前提

靜默安裝(無用戶彈窗確認)需要 系統級簽名權限,即 APK 必須使用平台證書 (platform.x509.pem + platform.pk8) 簽名,並安裝到 /system/app 或 /system/priv-app。

完整流程

  1. 獲取平台簽名文件:向設備廠商申請或從 AOSP 源碼編譯獲取 platform.pk8、platform.x509.pem。
  2. 簽名 APK:
    
    java -jar signapk.jar platform.x509.pem platform.pk8 app-unsigned.apk app-signed.apk
    
  3. 推送至系統分區 (需 root/remount):
    
    adb root && adb remount
    adb push app-signed.apk /system/priv-app/MyControlApp/
    adb shell chmod 644 /system/priv-app/MyControlApp/app-signed.apk
    adb reboot
    
  4. SELinux 策略:若啟用 SELinux,需為應用定義 platform_app 域或添加 install_package 權限,否則 pm install 仍會被拒絕。

應用層調用


// 控制端 APK 已具系統簽名
String cmd = "pm install -r " + apkPath;
Runtime.getRuntime().exec(cmd); // 靜默安裝被控 APK

常見失敗原因

  • 簽名不匹配:使用測試鑰匙而非平台鑰匙。
  • 放置路徑錯誤:放在 /data/app 仍需用戶確認。
  • SELinux 拒絕:dmesg | grep avc 查看拒絕日誌,補充策略。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved