Risposte:
Sì. Il comando è pm disable <package name>
. Devi essere root per fare questo:
Apri shell e ottieni root:
PC> adb shell
shell@hammerhead:/ $ su
Elenca tutte le app abilitate, filtra per "calcolatrice":
root@hammerhead:/ # pm list packages -e | grep 'calculator'
package:com.android.calculator2
Disabilita app:
root@hammerhead:/ # pm disable com.android.calculator2
Package com.android.calculator2 new state: disabled
Elenca tutte le app disabilitate:
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:/ #
Alcune altre cose degne di nota:
pm enable <package name>
. In effetti, questo sembra essere l' unico modo per riattivarli, nella mia esperienza.Manifest
o simili (non sono uno sviluppatore Android, quindi non posso dirlo).
Oltre alla risposta di @eldarerathis, è possibile disabilitare un'app per un utente specifico. Ho usato questo metodo per rimuovere alcune app da un utente con restrizioni che non erano elencate nella schermata delle impostazioni dell'utente. Tutti i comandi da un adb shell
. È necessario l'accesso alla radice per apportare modifiche.
Innanzitutto, ottieni l'ID dell'utente:
$ pm list users
Users:
UserInfo{0:Alice:13} running
UserInfo{11:Bob:18} running
Poi
$ pm disable --user 11 com.cyanogenmod.filemanager
Package com.cyanogenmod.filemanager new state: disabled-user
Per riattivare
# pm enable --user 11 com.cyanogenmod.filemanager
In questo esempio, Alice può usare il file manager ma Bob no.
Puoi fare una cosa simile con hide
invece di disable
. Non sono sicuro di quale sia il migliore, ma vedi questa risposta . Il contrario di hide
è unhide
(potrebbe essere necessario un riavvio per effettuare unhide
).
Puoi elencare i pacchetti con pm list pacakges --user 11
. Dai -e
alla lista pacchetti abilitati o -d
se vuoi vedere quelli disabilitati. Sembra che non ci sia alcun filtro per i pacchetti nascosti.
FWIW, ho provato quanto sopra su Lollipop con CM 12.1 su Amazon Fire (KFFOWI).
Questo dovrebbe funzionare indipendentemente dal fatto che l'app sia un'app di sistema o un'app di terze parti (installata dall'utente).
Vedi la mia risposta su Determinare il nome del pacchetto dell'app per ottenere il nome del pacchetto dell'app interessata e utilizzare la shell adb per eseguire questi comandi ( richiede l'accesso come root ):
shell adb su pm disable PACKAGE # disabilita l'app e la nasconde in Impostazioni -> Applicazioni pm nascondi PACCHETTO # alternativa; per Android Lollipop e versioni successive pacchetto cmd sospendere PACCHETTO # alternativa; il pacchetto rimane visibile nell'app Avvio applicazioni e Impostazioni ma non può essere utilizzato; una funzionalità di Device Administration
PACKAGE
si riferisce al nome del pacchetto dell'app
Per ripristinare l'app, sostituisci disabilita con abilita , nascondi con scopri , e sospendi con insospensione nel comando detto ed eseguilo con il privilegio di root.
Se hai Android KitKat o versioni successive e non hai accesso root , utilizza adb nel PC per eseguire questo comando:
blocco pm pm adb PACCHETTO # per Android KitKat adb shell pm hide PACCHETTO # solo per Android Lollipop adb shell pm disable-user PACCHETTO # alternativa a `pm hide`; per Android Lollipop e versioni successive; funziona esattamente come disabilitare un'app tramite l'app Impostazioni
Per ripristinare l'app:
adb shell pm sbloccare PACCHETTO # per Android KitKat adb shell pm scopri PACCHETTO # per Android Lollipop e solo se hai usato `pm hide` in precedenza adb shell pm abilita il PACCHETTO # per Android Lollipop e versioni successive
Le modifiche avverrebbero immediatamente.