Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Rozwiązane Android: dezaktywacja uprawnień administratora aplikacji
#1
0
Dzień dobry
Zdaję sobie sprawę, że Android jest stosunkowo luźno związany z pojęciem "dystrybucja Linuxa", ale pomyślałem że może ktoś z Forumowiczów mógłby znać odpowiedź
Chcialbym usunąć z telefonu z Androidem Pie "Uslugi Google Play" Żeby to zrobić, należy w pierwszej kolejności usunąć uprawnienia administratora tej aplikacji, ponieważ bez tego po wywołaniu komendy
Kod:
adb -s 5ea5959e8fdf1fd9 shell pm uninstall -k com.google.android.gms


Otrzymuje się:
Kod:
Failure [DELETE_FAILED_DEVICE_POLICY_MANAGER]
Teraz jest najciekawszy moment. Mianowicie udało mi się usunąć te uprawnienia oraz samą aplikację pewną komendą. Niestety po tej operacji bylem zmuszony (z zupełnie innego powodu) zresetować telefon do ustawień fabrycznych, tak więc Uslugi wróciły wraz ze swoimi superuprawnieniami. Nie wiem która konkretnie komenda wywołała usunięcie tych uprawnień, więc przejrzałem wszystkie komendy wpisane w bashu i ponowiłem je. Tutaj zaskoczenie - aplikacji mimo powtórzenia operacji nie da się usunąć!
Zastosowane polecenia to:
Kod:
adb shell pm revoke com.google.android.gms android.permission.BIND_DEVICE_ADMIN
Zwraca:
Kod:
Security exception: Package com.google.android.gms has not requested permission android.permission.BIND_DEVICE_ADMIN

java.lang.SecurityException: Package com.google.android.gms has not requested permission android.permission.BIND_DEVICE_ADMIN
    at com.android.server.pm.permission.BasePermission.enforceDeclaredUsedAndRuntimeOrDevelopment(BasePermission.java:389)
    at com.android.server.pm.permission.PermissionManagerService.revokeRuntimePermission(PermissionManagerService.java:2570)
    at com.android.server.pm.permission.PermissionManagerService.access$1400(PermissionManagerService.java:132)
    at com.android.server.pm.permission.PermissionManagerService$PermissionManagerInternalImpl.revokeRuntimePermission(PermissionManagerService.java:3336)
    at com.android.server.pm.PackageManagerService.revokeRuntimePermission(PackageManagerService.java:6526)
    at com.android.server.pm.PackageManagerShellCommand.runGrantRevokePermission(PackageManagerShellCommand.java:1732)
    at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:219)
    at android.os.ShellCommand.exec(ShellCommand.java:103)
    at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:26270)
    at android.os.Binder.shellCommand(Binder.java:642)
    at android.os.Binder.onTransact(Binder.java:540)
    at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:3329)
    at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:4850)
    at android.os.Binder.execTransact(Binder.java:739)
Z kolei polecenie
Kod:
adb shell dpm remove-active-admin --user 0 com.google.android.gms
Zwraca:
Kod:
usage: dpm [subcommand] [options]
usage: dpm set-active-admin [ --user <USER_ID> | current ] <COMPONENT>
usage: dpm set-device-owner [ --user <USER_ID> | current *EXPERIMENTAL* ] [ --name <NAME> ] <COMPONENT>
usage: dpm set-profile-owner [ --user <USER_ID> | current ] [ --name <NAME> ] <COMPONENT>
usage: dpm remove-active-admin [ --user <USER_ID> | current ] [ --name <NAME> ] <COMPONENT>

dpm set-active-admin: Sets the given component as active admin for an existing user.

dpm set-device-owner: Sets the given component as active admin, and its package as device owner.

dpm set-profile-owner: Sets the given component as active admin and profile owner for an existing user.

dpm remove-active-admin: Disables an active admin, the admin must have declared android:testOnly in the application in its manifest. This will also remove device and profile owners.

dpm clear-freeze-period-record: clears framework-maintained record of past freeze periods that the device went through. For use during feature development to prevent triggering restriction on setting freeze periods.

dpm force-security-logs: makes all security logs available to the DPC and triggers DeviceAdminReceiver.onSecurityLogsAvailable() if needed.

Error: Invalid component com.google.android.gms
Poszukukiwałem o tym informacji na forach związanych z tą tematyką i żadna odpowiedź nie była tam pomocna. Czy to jest możliwe żeby po tym przywróceniu do ustawień fabrycznych, do telefonu "wepchała się" aktualizacja, która uniemożliwia odebranie Usługom GP administratora?
Odpowiedz
#2
0
Wpisz 

Kod:
adb devices

Jeżeli ci się wyświetli "unauthorized" to najprawdopodobniej masz wyłączone debugowanie USB, powinieneś je włączyć w ukrytych opcjach programistycznych.

Następnie wpisz:
Kod:
adb shell
 
i zaakceptuj wyskakujące komunikaty w telefonie. 

Następnie wpisz:
Kod:
pm list packages | grep google

Powinna wyświetlić ci się lista aplikacji i usług Google.

Następnie wpisz polecenie:

Kod:
pm uninstall -k --user 0 com.google.android.gms

 Jeżeli chcesz odinstalować jeszcze jakieś pakiety oprócz "Usług Google" to wpisujesz schematycznie: 
 
Kod:
pm uninstall -k --user 0 nazwapakietu
 

W razie gdyby coś nie działało, to napisz.

Mam nadzieje, że pomogłem  Tongue

(Możesz też skorzystać z gotowego skryptu, który usunie ci wszystkie aplikacje i usługi od Google)
 Tutaj masz link do skryptu: https://gist.github.com/olivier-m/6200184
Odpowiedz
#3
0
Dziękuję za odpowiedź, ale to niestety nie działa w taki sposób. Jeśli chodzi o ten skrypt, to jest on już stary i nie działa we współczesnych urządzeniach. Te ścieżki do plików .apk preinstalowanych programów są inne i są one tylko do odczytu. Nie można ich tak łatwo usunąć.
Opcje programistyczne były już włączone zanim założyłem ten temat. Zaproponowana przez Ciebie metoda zwraca dokładnie taki sam wynik tzn. próba instalacji powoduje wynik
Kod:
Failure [DELETE_FAILED_DEVICE_POLICY_MANAGER]
Odpowiedz
#4
1
Better response on post RE: Android: dezaktywacja uprawnień administratora aplikacjiTo w takim razie wejdź w Ustawienia -> Lokacja i Bezpieczeństwo (W zależności od marki telefonu i softu menu będzie się różnić.) -> Administratorzy urządzenia i tam będą aplikacje mające uprawnienia Administratora, żeby odinstalować powyższy pakiet musisz najpierw wyłączyć uprawnienia administratora dla Usług Google Play. 

W moim Huawei wygląda to tak:
Ustawienia -> Bezpieczeństwo i prywatność -> Ustawienia dodatkowe -> Administratorzy urządzenia 

Następnie przejdź od zakładki "Aplikacje" i musisz zatrzymać aplikację "Usługi Google Play"/"Google Play Services".

Następnie powtórz całą procedurę z ADB.
Odpowiedz
#5
0
Warto wspomnieć, że usunięcie lub dezaktywacja aplikacji "Usługi Google" wpłynie na działanie innych aplikacji wykorzystujących jej komponenty (czyli większość aplikacji na Androida). Mogą wystąpić problemy m.in. z dostarczaniem powiadomień, z wyświetlanymim przez aplikacje mapami (pozornie wbudowanymi, a w rzeczywistości korzystających właśnie z komponentu wchodzącego w skład "Usług Google"). Niektóre aplikacje mogą się w ogóle nie uruchomić.

Przykładowo, o ile aplikacja OLX działa na urządzeniu bez zainstalowanych usług Google, to jednak dopóki nie otworzymy aplikacji nie dotrą do Nas żadne powiadomienia, a po kliknięciu na opcję wyświetlenia lokalizacji przedmiotu z ogłoszenia pojawi się komunikat jak na zrzucie ekranu poniżej.
[Obrazek: sA6TdCul.png]

Istnieje też microG, czyli otwarta, częściowa reimplementacja usług Google.

O ile korzystanie z urządzenia bez usług Google jest możliwe - sam korzystam z tak skonfigurowanych urządzeń od kilku lat - o tyle wiąże się z pewnymi niedogodnościami.
Odpowiedz
#6
0
Dziękuję za odpowiedzi. W tym telefonie Galaxy, usługi Google da się usunąć tylko po usunięciu uprawnień administratora aplikacji "Znajdź mój telefon". Być może dotyczy to także innych modeli.
Dziękuję za wszystkie sugestie. Problem został zatem rozwiązany.
Odpowiedz


Skocz do:




Użytkownicy przeglądający ten wątek: 2 gości