如何在自有应用中编程清除其他应用数据,转为系统应用后可否实现?
系统应用调用pm clear清除其他应用数据的有效性说明
- 你用到的
Runtime.getRuntime().exec("pm clear PACKAGE_NAME")命令本身支持清除任意应用的用户数据,限制仅来自调用应用的权限等级:- 普通第三方应用默认仅拥有自身数据的操作权限,所以只能清除自身数据,无法操作其他应用的数据
- 当你的应用满足系统特权应用要求时,该命令可以正常生效,需要同时符合两个条件:
- 在AndroidManifest.xml中声明权限
android.permission.CLEAR_APP_USER_DATA - 应用属于系统特权应用:要么使用对应设备的平台签名密钥签名,要么预装在设备的
/system/priv-app目录下
- 在AndroidManifest.xml中声明权限
- 注意:如果仅将应用放到普通
/system/app目录、未放在特权目录,或者没有使用平台签名,即便属于广义的系统应用,也无法拿到清除其他应用数据的权限。
系统应用开发与测试的官方文档说明
官方Android开发者文档提供了完整的系统应用开发相关指引,内容覆盖系统应用的权限规则、签名要求、预装配置、调试测试方法等,可直接在Android开发者官网的系统开发板块检索对应内容。
内容的提问来源于stack exchange,提问作者Divyang Panchal
相关产品推荐
相关产品推荐

