Jak odinstalować aplikację systemową za pomocą polecenia dezinstalacji adb (NIE usuwaj przez rm lub w jakikolwiek inny sposób)

13

Muszę o tym wspomnieć, aby uniknąć możliwego zamieszania, to pytanie nie jest duplikowane. To pytanie dotyczy użycia adb do odinstalowania pakietu . Istnieje kilka podobnych pytań, ale wszystkie różnią się od tego, ponieważ koncentrują się na usuwaniu aplikacji w jakikolwiek sposób.

Nie podawaj odpowiedzi za pomocą polecenia „rm”, aby usunąć pliki pakietów. Również odpowiedzi związane ze zniekształconymi nazwami pakietów lub końcowymi zwrotami karetki. Myślę, że prawie wszystkie są ujęte we wszystkich pozostałych pytaniach.

Miałem pm uninstallfunkcjonalność, ale po aktualizacji ROM. Niektóre rzeczy nie będą już odinstalowywane. Na przykład następujące dwie aplikacje systemowe (które usunąłem z poprzedniej pamięci ROM, znacznie poprawiając ogólną wydajność):
/system/priv-app/SecurityCenter/SecurityCenter.apk=com.miui.securitycenter
/system/app/Updater/Updater.apk= com.android.updater

Teraz pojawia się błąd podczas próby odinstalowania ich po południu: Błąd [DELETE_FAILED_INTERNAL_ERROR]

Ale inne aplikacje systemowe (które nie zostaną odinstalowane za pomocą zwykłego interfejsu Androida) wykonują odinstalowanie za pomocą pm uninstallpolecenia. Przykład:
/system/priv-app/Browser/Browser.apk=com.android.browser

Więc oba są aplikacjami systemowymi, jaka może być różnica między nimi?

Dla porównania zaktualizowałem wersję MIUI 8.1.6.0 do 8.5.3.0 i ponownie zainstalowałem TWRP i SuperSU. To pytanie nie jest specyficzne dla mojej pamięci ROM, ponieważ widzę, że inni ludzie są w tej samej sytuacji. Ale wydaje mi się, że mam przewagę, że mogę odinstalować niektóre aplikacje systemowe. I jestem gotów przyczynić się, znaleźć rozwiązanie dla wszystkich, odinstalować dowolną aplikację.

Próbowałem: mount -o rw, remount / system,
ale to nie rozwiązało problemu.

Pomóżcie z wszelkimi pomysłami po drodze. Dzięki!


Update 1 - Potwierdzanie kroków w celu uniknięcia sporadycznych problemów
* Wyczyść wszystkie partycje w TWRP
* Zainstalowano najnowszą pamięć ROM (MIUI 8.5.3.0)
* Wróciłem do TWRP, tylko wyczyściłem / Dane
* Przywrócone / Dane z kopii zapasowej wersji ROM, która została dostarczona z urządzeniem (MIUI 8.1.6.0)
* Teraz po uruchomieniu systemu operacyjnego ROM pokazuje jako najnowszy (MIUI 8.5.3.0) w ustawieniach

Teraz jestem w stanie odinstalować każdą wypróbowaną aplikację. Nawet najbardziej odporny: Google APP, Updater, Bezpieczeństwo.

Ten Frankenstein .. err Mam na myśli, że hybrydowa pamięć ROM działa do tej pory dobrze i już usunąłem wiele pakietów systemowych, dzięki czemu telefon (Redmi 3S +) jest wyraźnie szybszy. Ale nadal chciałbym wskazać, co spowodowało, że stało się to rozwiązaniem ogólnym . Tak więc, jeśli się nie zepsuję, chętnie go zepsuję, więc następnym razem, gdy się zepsuje, dowiemy się, co go powoduje i jak to naprawić.

Update 2 -
* Wyczyściłem wszystkie partycje i przywróciłem wszystkie partycje z oryginalnej pamięci ROM.
* Przywrócone do ustawień fabrycznych (przy użyciu TWRP)
* i po uruchomieniu w ROM, wróciłem do TWRP i utworzyłem kolejną kopię zapasową
* Korzystając z tego samego scenariusza jak w aktualizacji 1 powyżej, z wyjątkiem tylko użycia / danych z tego miejsca. odinstalowanie po południu nie działa.

Czy są jakieś przemyślenia na temat różnic między dwiema partycjami / danymi, na których powinienem się skupić?

Emil
źródło
1
AFAIK pm uninstallnie może być używany z aplikacjami systemowymi. Ponieważ nie jest jasne, czy naprawdę chcesz odinstalować, czy po prostu ukryć aplikację (o której wspomniałeś pm disable), może pm hidetak naprawdę szukasz?
Izzy
@Izzy Tak, może. To, co mówię powyżej, właśnie edytowałem / uczyniłem to nieco jaśniejszym. Chcę odinstalować po południu, ale miałem na myśli, że przed aktualizacją mogłem zarówno odinstalować, jak i wyłączyć aplikacje systemowe, a nawet napisać fajne skrypty, które zajmą się wszystkim po aktualizacji.
Emil
Nigdy nie udało mi się z pm uninstallaplikacjami systemowymi. Ale zgaduję: czy twoja poprzednia pamięć ROM jest wersją „inżynieryjną”? Przypuszczam, że działa z kompilacją eng (aka dev build).
iBug
@ iBug nie, właściwie poprzednia pamięć ROM była tą, z którą ten telefon był dostarczany. Nowa pamięć ROM jest również oficjalnym uaktualnieniem ze strony producenta.
Emil,
1
@Firelord Moje ustawienie optiomizacji MIUI było już wyłączone . device_owner.xml jest nieobecny. device_policies.xml ma po prostu następujące wiersze: <? xml version = '1.0' encoding = 'utf-8' standalone = 'yes'?> <policy setup-complete = "true"> <active-password -stuff here- /> </policies>
Emil

Odpowiedzi:

18

Udało mi się dodać opcje -k i --user do polecenia pm , np .:

pm uninstall -k --user 0 com.android.service

Komenda została wydana jako root, nie ma potrzeby ponownego instalowania / systemu jako rw. Android w telefonie to 6.0, a pakiet to aplikacja systemowa. Bez dodatkowej opcji pojawia się błąd:

Failure [DELETE_FAILED_INTERNAL_ERROR]
RigacciOrg
źródło
1
Dziękuję Ci. Dla każdego, kto czyta, niektóre przewodniki mają jedną kreskę przed użytkownikiem, co spowodowało błąd.
TrojanName
4

Działa również bez opcji -k (zachowaj ustawienia użytkownika):

pm uninstall --user 0 com.android.service

i bez otwierania powłoki adb:

adb uninstall --user 0 com.android.service
Andrei Karcheuski
źródło
zaktualizowano z Miui 10 do Miui 11., ale dla kilku aplikacji systemowych / prywatnych te kody zawodzą. np. dla com.miui.calculator
srv_sud