2017-07-07 1 views
-1

Ich versuche, mehrere Pakete mit einem Bash-Skript mit adb deinstallieren zu deinstallieren.Deinstallieren Sie mehrere Android-Pakete mit adb

In der Theorie sollten folgende Skripte funktionieren:

adb shell pm list packages com.your.app | cut -d ':' -f 2 | while read line ; do adb uninstall --verbose $line ; done 

ODER

adb shell pm list packages com.your.app | cut -d ':' -f 2 | xargs -L1 -t adb uninstall 

bekomme ich folgende Fehler

Fehler [DELETE_FAILED_INTERNAL_ERROR]

Ich fand auch, dass das Problem mit adb-Befehlen ist, die keine Pipe-Argumente oder Argumente von Shell-Variablen nehmen. Zum Beispiel der folgende Befehl auch

echo com.your.app | adb uninstall 

Dies wird auch den gleichen Fehler geben.

Ich habe bereits betrachtete delete packages of domain by adb shell pm

Antwort

0

\ r hinzugefügt, um die Ausgabe von dem ersten Befehl hinzugefügt wird. Wir können tr -d '\r' verwenden, um diese Zeichen zu entfernen.

adb shell pm list packages com.your.app \ 
| cut -d ':' -f 2 \ 
| tr -d '\r' \ 
| xargs -L1 -t adb uninstall 

die Lösung in Echo outputting results in erratic order in BASH gefunden