Utilizzando ADB, è possibile utilizzare uno dei seguenti tre comandi:
adb shell am start -a android.intent.action.UNINSTALL_PACKAGE -d "package:PACKAGE"
adb shell am start -n com.android.packageinstaller/.UninstallerActivity -d "package:PACKAGE"
adb shell am start -a android.intent.action.DELETE -d "package:PACKAGE"
Sostituisci PACCHETTO con il nome del pacchetto dell'app utente installata. L'app non deve essere un amministratore del dispositivo affinché il comando funzioni correttamente. Tutti questi comandi richiederebbero la conferma dell'utente per la rimozione dell'app.
I dettagli di detto comando possono essere conosciuti controllando l'utilizzo di am usando adb shell am
.
Ho ricevuto le informazioni su quei comandi usando Elixir 2 (usa qualsiasi app equivalente). L'ho usato per mostrare le attività dell'app Package Installer (la GUI che vedi durante l'installazione e la rimozione delle app) e le relative intenzioni. Ecco qua
Il modo alternativo che ho usato era: ho tentato di disinstallare l'app tramite la GUI fino a quando non mi è stata mostrata la conferma finale. Non ho confermato ma eseguo il comando
adb shell dumpsys activity recents # for Android 4.4 and above
adb shell dumpsys activity activities # for Android 4.2.1
Tra l'altro, mi ha mostrato utili dettagli dell'intento passato in background. Esempio:
intent={act=android.intent.action.DELETE dat=package:com.bartat.android.elixir#com.bartat.android.elixir.MainActivity flg=0x10800000 cmp=com.android.packageinstaller/.UninstallerActivity}
Qui puoi vedere l'azione, i dati, il flag e il componente - abbastanza per l'obiettivo.