1. 程式人生 > >SecurityException: Neither nor current process has android.permission.INSTALL_PACKAGES

SecurityException: Neither nor current process has android.permission.INSTALL_PACKAGES

最近在嘗試寫一個靜默自動安裝應用的程式,發現出現上述錯誤。最後發現是因為申請了uses-permission android:name="android.permission.INSTALL_PACKAGES",而一般三方程式是沒有該安全許可權的,所以只能把這個應用寫到原始碼中,也就是在package/apps裡面定義一個新的程式模組。目前並見到有三方軟體可以靜默安裝應用的,不過有可能申請root許可權再靜默安裝。

解決:

需要有系統應用開發許可權,現在尚沒有方法做成第三方應用採用靜默安裝的。 需要將androidmanifest.xml中將userid改成packageinstaller即可。 <manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="com.test.onekey"     android:versionCode="1"     android:versionName="1.0"      android:sharedUserId="android.uid.packageinstaller"
> package/apps裡面定義一個新的程式模組。這個將在eclipse裡面開發的原始碼,拷貝到package/apps下面,只保留res/src/Androidmanifest.xml/android.mk等檔案(檔案結構類似apps下面的其他應用)。還需要將模組名稱新增進build/target/product/common.mk裡面的PRODUCT_PACKAGES下面即可。