我如何使用adb grant或adb revoke?

Android文档包含以下对adb grant和adb revoke命令的描述。

grant <PACKAGE_PERMISSION> 

授予应用程序的权限。 只有应用程序声明的可选许可才能被授予。

 revoke <PACKAGE_PERMISSION> 

撤消对应用程序的权限。 只有应用程序声明的可选权限才能被撤消。

任何人都可以给一个正确的语法的例子来使用它们吗?

我认为这将是一个权限像android.permission.WRITE_EXTERNAL_STORAGE ,或者也许只是WRITE_EXTERNAL_STORAGE 。 那么我尝试了这些,还有其他几个,我不能得到它的工作。

我也尝试过(无效)包和权限的几个组合,这对我来说更有意义(这听起来像一个命令,将修改一个包,而不是所有的权限)

Solutions Collecting From Web of "我如何使用adb grant或adb revoke?"

所以在棒棒糖,我认为你需要先做“adbshell”,然后你尝试的应该工作:

 adb shell pm grant com.name.app android.permission.READ_PROFILE 

这应该会改变Android M,你应该能够只使用:

 adb shell pm revoke com.name.app android.permission.READ_PROFILE 

完整的权限列表可以在这里find。 如果你有安装Android构build工具 ,你可以看到应用程序使用的权限。 首先使用

 adb shell pm list packages -f 

然后将软件包复制到您的电脑:

 adb pull /path/to/package/from/previous/step.apk 

然后获取权限:

 aapt d permissions path/to/app/on/computer.apk 

如果您碰巧不知道权限的名称或想清除您可以使用的所有权限

 adb shell pm reset-permissions your.package.name 

因此,这里有一个小命令行(mac / linux),从命令行向您的应用程序授予所需的所有权限。

 aapt d permissions ./path/to/your.apk \ | sed -n \ -e "s/'//g" \ -e "/^uses-permission: name=android.permission\./s/^[^=]*=//p" \ | xargs -n 1 adb shell pm grant com.your.package