Ich habe festgestellt, dass Apps (wie Google Contacts Sync), die mit dem Standard-App-Manager für Android (KitKat) deaktiviert wurden, bei Verwendung von Prozessbeobachter-Tools weiterhin als ausgeführt angezeigt werden. Dies gilt auch nach dem Neustart des Geräts.
Warum werden deaktivierte Apps noch ausgeführt? Gibt es eine effektive (und sichere) Möglichkeit, sie tatsächlich zu deaktivieren?
Lösungen, die Root-Rechte erfordern, sind akzeptabel.
(Beachten Sie, dass Sie Android im obigen Beispiel anweisen können, Ihre Kontakte nicht zu synchronisieren, aber dennoch den Google Contacts Sync-Prozess ausführen. Aber lassen Sie uns nicht auf dieses Beispiel eingehen ... es ist nur ein Beispiel.)
applications
4.4-kitkat
task-management
disable-app
RockPaperLizard
quelle
quelle
block/hide
was bei pm nicht der Fall ist ). Ich frage mich daher, warum die App jetzt geladen wird. Es ist eine andere Sache, dass Sie, während es in den Speicher geladen wurde, seine oberflächliche Abwesenheit durch Mangel an Hintergrund, Themen, Statusleiste und mehr beobachten können. Vielleicht kann daraus eine neue Frage geschmiedet werden..apk
und Zurücklassen von Daten" vergleichbar ist. Die App wird also "völlig unregistriert und für alles außer dem Dateimanager unsichtbar", sodass andere Apps ihre Absichten nicht mehr so aufrufen können, wie sie können finde sie nicht.Antworten:
Ihr Android muss keinen Root-Zugriff haben, um eine App wirklich zu deaktivieren, wenn Sie Version 4.4.x oder höher haben. Sie benötigen lediglich ein ADB- Setup auf dem PC und ein USB-Debugging, das auf einem nicht gerooteten Gerät aktiviert ist , oder eine Terminalemulator-App für ein gerootetes Gerät (Sie können auch ADB verwenden).
Wenn Sie die Verwendung von Package Manager (
pm
) überprüfen , wird dies angezeigtFür Lollipop wäre es das
Um ein Paket zu blockieren oder auszublenden (es ist sicher), tun Sie es einfach
Führen Sie folgende Schritte aus, um das Paket zu entsperren oder wieder einzublenden
PACKAGE
→ Paketname einer App. So kennen Sie den Paketnamen einer App:adb shell
Vor dem Befehl anhängen , um sie vom PC aus auszuführen.Die Funktion hinter hide enthält den folgenden Kommentar im Quellcode
Ähnliches Kommentieren wird hier für Block gemacht .
Um den Anspruch zu überprüfen, können Sie einige Systemdienste wie verwenden
meminfo
,procstats
undactivity
mit dem dumpsys Werkzeug oder auch mit allen , die Prozesse auflistenps
. Sie werden keine aktive Präsenz der blockierten / versteckten App finden.Das Gleiche gilt für viele System-Apps, die über die GUI deaktiviert wurden, oder
pm disable
nicht für jede App,da selbst eine deaktivierte App Broadcasts empfangen kann, für die sie sich registriert hat. Dies ist nur möglich, wenn sie in den Speicher geladen wird1 . Trotzdem kann eine deaktivierte App nicht alleine agieren und auch nicht von einer anderen App ausgeführt werden.Ich habe einige der Unterschiede zwischen Verstecken / Blockieren und Deaktivieren in meiner Frage pm hide VS pm disable - die Identitätskrise - diskutiert . Es enthält nur zusätzliche Informationen zu dieser Antwort, sodass Sie sie überspringen können.
BEARBEITEN:
Es scheint, dass die Technik nicht für alle Apps auf Android KitKat funktioniert. In diesem Fall widerrufen Sie einfach die Leseberechtigung aus dem APK der App oder entfernen Sie die Erweiterung .APK aus dem Dateinamen der App (letzterer von Jaskaranbir einmal vorgeschlagen), gefolgt von einem Soft / Full-Neustart. Dies entspricht dem Löschen einer App aus dem System, mit dem Unterschied, dass alle Dateien an ihrem Speicherort verbleiben.
Beide Schritte können mit jeder Root-Dateimanager-App ausgeführt werden. Die Befehlszeile lautet:
1: Fehlende technische Beweise, um die Tatsache zu stützen
quelle
pm block/hide
Lassen Sie sie also unberührt.adb shell su -c "chmod 111 /system/app/SystemUI.apk"
. 111 bedeutet, dass nur ausführbare Berechtigungen für Eigentümer, Gruppe und andere festgelegt werden. Starten Sie neu und die App fehlt im System. Sie können es auch einstellen000
.