Как использовать 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?"

Поэтому в Lollipop я думаю, что вам нужно сначала сделать «adb shell», а то, что вы пробовали, должно работать:

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

Это должно измениться на Android M, и вы должны просто использовать:

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

Полный список разрешений можно найти здесь . Если у вас установлены инструменты сборки Android, вы можете узнать, какие разрешения использует приложение. Первое использование

 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