问题描述
我将 apk 安装到我的 Android 7.1.1 模拟器中的 /system/priv-app 文件夹中,因此它可以作为特权系统应用程序运行,但是当我尝试使用我的应用程序代码安装 apk 时
val runtime = Runtime.getRuntime()
val process = runtime.exec("pm install -r -f $apkFilePath")
process.waitFor()
val output = process.inputStream.bufferedReader().use { it.readText() }
val error = process.errorStream.bufferedReader().use { it.readText() }
在 error
输出中我得到
错误:java.lang.SecurityException:权限拒绝: runInstallCreate from pm 命令要求以用户 -1 身份运行,但正在调用 来自用户 0;这需要 android.permission.INteraCT_ACROSS_USERS_FULL
<uses-permission
android:name="android.permission.INteraCT_ACROSS_USERS_FULL"
android:protectionLevel="signatureOrSystem"
tools:ignore="ProtectedPermissions"
/>
但还是出现同样的错误。我什至试过
runtime.exec("pm install -r -f --user -1 $apkFilePath")
还是报同样的错误
试试这个代码有什么有趣的
runtime.exec("pm install -r -f --user 0 $apkFilePath")
那么 error
的输出会变成 NullPointerException
那么为什么 INteraCT_ACROSS_USERS_FULL
权限不起作用而 --user -1
也不起作用?我以为系统权限应用可以静默安装apk,那么问题出在哪里?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)