【问题标题】:android permission - CHANGE_COMPONENT_ENABLED_STATE安卓权限 - 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.. 不确定我是否会错过什么?

【问题讨论】:

    标签: android security permissions components


    【解决方案1】:

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

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

    【讨论】:

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