安卓权限 - CHANGE_COMPONENT_ENABLED_STATE

Posted

技术标签:

【中文标题】安卓权限 - CHANGE_COMPONENT_ENABLED_STATE【英文标题】:android permission - CHANGE_COMPONENT_ENABLED_STATE 【发布时间】:2013-10-18 16:15:36 【问题描述】:

我需要在我的代码中使用 android.permission.CHANGE_COMPONENT_ENABLED_STATE 权限,因为我需要更新我的项目的另一个 apk 的组件,但它似乎并不适合我

这是我的代码:

<permission
    android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"
    android:protectionLevel="signatureOrSystem"/>

final int permission = ctx.checkCallingPermission(android.Manifest.permission.CHANGE_COMPONENT_ENABLED_STATE);

final boolean allowedByPermission = (permission == PackageManager.PERMISSION_GRANTED);
L.d(TAG, "allowedByPermission :" + allowedByPermission + " permission:" + permission);
if(allowedByPermission) 

allowedByPermission 总是记录一个 false.. 不确定我是否会错过什么?

【问题讨论】:

【参考方案1】:

首先,您的应用需要&lt;uses-permission&gt;,而不是&lt;permission&gt;

其次,您的应用不能拥有该权限,除非它安装在系统分区上(例如,由 root 设备用户)或由与系统固件签名的相同签名密钥签名。

【讨论】:

你能提供任何的例子吗?两个 apk 也是用相同的签名生成的,所以它应该可以正常工作吗? @AJit:“两个 apk 的生成都具有相同的签名,所以它应该可以正常工作吗?” ——不,不应该。该权限将授予您禁用 any 应用程序的 any 组件的权利,这是一项非常特权的操作。 您也可以提供有关此 CHANGE_COMPONENT_ENABLED_STATE 权限的任何线索吗?我们只在有根设备中使用吗? @AJit:“我们只在有根设备中使用吗?” -- 请重新阅读我回答的第二段。 非常感谢您的快速回放。我仍然不确定如何将组件更新到另一个 apk..

以上是关于安卓权限 - CHANGE_COMPONENT_ENABLED_STATE的主要内容,如果未能解决你的问题,请参考以下文章

怎么在电脑上修改安卓手机系统文件权限

安卓上有啥可以控制和禁止软件权限的软件?

安卓手机要怎么解除权限ROOM

安卓蓝牙动态权限

安卓开发我想获取System权限

安卓手机root权限获取都有哪些方法