2013-05-07 27 views
23

Dokumentacja systemu Android zawiera następujący opis przydziałów adb i odwołań adb.Jak mogę odwołać Adb lub odwołać AdB?

grant <PACKAGE_PERMISSION> 

Udziel uprawnień do aplikacji. Można przyznać tylko opcjonalne uprawnienia zgłoszone przez aplikację.

revoke <PACKAGE_PERMISSION> 

Unieważnij uprawnienia do aplikacji. Tylko opcjonalne uprawnienia, które zadeklarowała aplikacja, mogą zostać odwołane.

Czy ktokolwiek może podać przykład prawidłowej składni, aby z nich skorzystać?

Zakładam, że byłoby to zezwolenie, takie jak android.permission.WRITE_EXTERNAL_STORAGE, lub może po prostu WRITE_EXTERNAL_STORAGE. Cóż, próbowałem tych i kilku innych i nie mogę tego zrobić.

ja również próbował (bezskutecznie) kilku kombinacjach pakietu i zgody, co ma większy sens dla mnie (to brzmi jak rozkaz, które zmieniłyby zgodę na jednym pakiecie, nie wszystkie)

Odpowiedz

34

Więc Lollipop Myślę, że trzeba zrobić „adb shell” pierwszy to co próbowałeś powinno działać:

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

To ma zmienić na Androida M i powinieneś być w stanie po prostu użyć:

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

Pełna lista uprawnień znajduje się pod adresem here. Jeśli masz skonfigurowany android build tools, możesz sprawdzić, jakich uprawnień używa aplikacja. Pierwsze użycie

adb shell pm list packages -f 

Następnie należy skopiować pakiet do ciebie komputer:

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

następnie uzyskać uprawnienia:

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

Dlaczego PACKAGE_USAGE_STATS nie może być udzielone w ten sposób? Czy istnieje alternatywa? –

2

Więc tutaj jest trochę linii poleceń (Mac/Linux) udzielenia swoją aplikację wszystkie wymagane uprawnienia z wiersza poleceń.

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 
5

Jeśli zdarzy się, nie znasz nazwy zgody lub chcesz usunąć wszystkie uprawnienia można użyć

adb shell pm reset-permissions your.package.name 
+3

** Uważaj przy tym poleceniu, ponieważ resetuje ono wszystkie twoje uprawnienia systemowe. ** pm reset-uprawnienia są bez parametrów. Nie obchodzi go twoja nazwa.package.name. –