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.Manifesto 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 hideinvece 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 -ealla lista pacchetti abilitati o -dse 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.