如何为从Play商店下载的应用程序授权?

10

我知道自从4.1版本以后,谷歌已经不再授权非系统应用程序使用转储权限。

但是对于可调试的应用程序,我仍然可以使用以下命令授予它们转储权限:

命令:

adb shell pm grant "com.packageName" android.permission.DUMP

但我无法为从Play商店下载的应用程序执行相同的操作。

命令:

adb shell pm grant "com.playStoreApp" android.permission.DUMP

错误信息:

Operation not allowed: java.lang.SecurityException: Package com.playStoreApp has not requested permission android.permission.DUMP

是否有任何黑客或解决方法可以为Play商店中的应用授予权限?

提前感谢。


有没有任何黑客或变通方法可以授予Play Store应用程序权限?--不是在普通设备上。也许在已root的设备上可以。DUMP是一个signature|system|development权限,在protectionLevel方面。development允许您调整可调试应用程序的值。system意味着该应用程序安装在系统分区中,如果您root您的设备并将应用程序移动到那里,则可能会出现这种情况。 - CommonsWare
1个回答

4

没有变通的方法。android.permission.Dump受系统、签名和开发权限保护级别的保护。在源代码第1993行可以看到这一点。如果您的APK使用框架证书进行签名,位于priv-app目录中或是可调试的(见下文),则可以使用pm服务授予权限,但否则代码明确防止您所要求的操作(源代码第2624行)。

通过在build.gradle上设置debuggable属性来创建可调试的APK。以下是示例Android DSL:

android {
    ...
    buildTypes {
        debug {
            debuggable true
            ...
        }
        quality_assurance {
            debuggable true
        }
    ...
}

我正在尝试使用此 https://gist.github.com/danielgomezrico/9371a79a7222a156ddad 设置动画,但是我收到了“不允许操作:java.lang.SecurityException:权限android.permission.SET_ANIMATION_SCALE不是可更改的权限类型”的错误消息。为什么会这样? - Daniel Gomez Rico
你正在使用Android M预览版吗? - PaulR
具体而言,你的设备正在运行预览版吗? - PaulR
错误报告:https://code.google.com/p/android-developer-preview/issues/detail?id=2557 - ballzak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接