Antworten:
Ja. Der Befehl lautet pm disable <package name>
. Sie müssen root sein, um dies zu tun:
Öffne die Shell und erhalte root:
PC> adb shell
shell@hammerhead:/ $ su
Alle aktivierten Apps auflisten, nach "Rechner" filtern:
root@hammerhead:/ # pm list packages -e | grep 'calculator'
package:com.android.calculator2
App deaktivieren:
root@hammerhead:/ # pm disable com.android.calculator2
Package com.android.calculator2 new state: disabled
Alle deaktivierten Apps auflisten:
root@hammerhead:/ # pm list packages -d
package:com.android.calculator2
package:com.google.android.apps.inputmethod.hindi
package:jp.co.omronsoft.iwnnime.ml
package:com.google.android.inputmethod.pinyin
package:com.google.android.inputmethod.korean
package:com.google.earth
root@hammerhead:/ #
Einige andere bemerkenswerte Dinge:
pm enable <package name>
. Tatsächlich scheint dies meiner Erfahrung nach die einzige Möglichkeit zu sein, sie wieder zu aktivieren.Manifest
oder ähnlichem gemacht werden (ich bin kein Android-Entwickler, also kann ich nicht sagen).
Nach der Antwort von @eldarerathis können Sie eine App für einen bestimmten Benutzer deaktivieren. Ich habe diese Methode verwendet, um einige Apps von einem eingeschränkten Benutzer zu entfernen, die nicht auf dem Bildschirm mit den Benutzereinstellungen aufgeführt sind. Alle Befehle von einem adb shell
. Root-Zugriff ist erforderlich, um Änderungen vorzunehmen.
Erstens erhalten Sie die Benutzer-ID:
$ pm list users
Users:
UserInfo{0:Alice:13} running
UserInfo{11:Bob:18} running
Dann
$ pm disable --user 11 com.cyanogenmod.filemanager
Package com.cyanogenmod.filemanager new state: disabled-user
Zum erneuten Aktivieren
# pm enable --user 11 com.cyanogenmod.filemanager
In diesem Beispiel kann Alice den Dateimanager verwenden, Bob jedoch nicht.
Sie können eine ähnliche Sache mit hide
anstelle von tun disable
. Ich bin nicht sicher, welches das beste ist, aber sehe diese Antwort . Das Gegenteil von hide
ist unhide
(möglicherweise ist ein Neustart erforderlich, um dies zu bewirken unhide
).
Sie können Pakete mit auflisten pm list pacakges --user 11
. Geben Sie -e
an, -d
ob aktivierte Pakete aufgelistet werden sollen oder ob deaktivierte angezeigt werden sollen. Es scheint keinen Filter für versteckte Pakete zu geben.
FWIW, ich habe das oben auf Lollipop mit CM 12.1 auf einem Amazon Fire (KFFOWI) ausprobiert.
Dies sollte unabhängig davon funktionieren, ob es sich bei der App um eine System-App oder eine Drittanbieter-App (vom Benutzer installiert) handelt.
Siehe meine Antwort unter Ermitteln Sie den Paketnamen Ihrer App , um den Paketnamen der betreffenden App zu erhalten, und verwenden Sie die AdB- Shell , um diese Befehle auszuführen ( erfordert Root-Zugriff ):
ADB Shell su pm disable PACKAGE # deaktiviert die App und blendet sie unter Einstellungen -> Anwendungen aus pm hide PAKET # alternative; für Android Lollipop und höher cmd package suspend PAKET # alternative; Paket bleibt in Launcher und Einstellungen sichtbar, kann aber nicht verwendet werden. eine Funktion der Geräteverwaltung
PACKAGE
bezieht sich auf den Paketnamen der App
Wiederherzustellen die App, ersetzt disable mit ermöglichen , verstecken mit sichtbar machen , und Suspend mit Unsuspend in dem Kommando gesagt und führen Sie es mit Root - Rechten.
Wenn Sie Android KitKat oder höher verwenden und keinen Root-Zugriff haben , verwenden Sie adb auf dem PC, um diesen Befehl auszuführen:
adb shell pm block PACKAGE # für Android KitKat adb shell pm hide PAKET # nur für Android Lollipop adb shell pm disable-user PAKET # Alternative zu `pm hide`; für Android Lollipop und höher; Dies funktioniert genauso wie das Deaktivieren einer App über die App "Einstellungen"
So stellen Sie die App wieder her:
adb shell pm entblocken PACKAGE # für Android KitKat adb shell pm blende PAKET # für Android Lollipop ein und nur wenn du vorher `pm hide` benutzt hast adb shell pm aktiviert PAKET # für Android Lollipop und höher
Änderungen würden sofort stattfinden.