【发布时间】:2017-05-24 12:38:00
【问题描述】:
我正在尝试从我的应用中禁用其中一个应用。我创建了一个启动器应用程序并尝试使用以下包管理器方法
pm.setApplicationEnabledSetting(packageInfo.packageName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
但我得到 SecurityException 作为 SecurityException: Permission Denial: 尝试从 pid=20217, uid=10066, package uid=10067 更改组件状态
注意: 我在某处发现解决方案是在清单中提及以下权限
但是我在这个权限中收到一个警告,这个权限只授予系统应用程序。
【问题讨论】:
-
“我正在尝试从我的应用中禁用其中一个应用”——为什么? “但是我在此权限中收到警告,该权限仅授予系统应用程序” - 正确。否则,作为勒索软件攻击的一部分,恶意软件作者很容易禁用各种应用程序。
-
是的,你是对的。但是,改变组件状态的正确方法是什么?
-
您不会更改组件状态。你做点别的。既然你懒得回答“为什么?”我最初评论中的问题,我无法就可能的替代方案向您提供建议。
-
“我正在尝试从我的应用中禁用其中一个应用”——为什么? - 创建此类应用程序的目的是通过启动器应用程序实现移动设备管理。我的应用程序仅适用于特定组织。
-
如果您真正实现的是 MDM 解决方案,欢迎您查看设备管理员和设备所有者 API。
标签: android security app-launcher