Wie bekomme ich die apk-Datei von einem Android-Gerät? Oder wie übertrage ich die apk-Datei vom Gerät auf das System?
Antworten
Zu viele Anzeigen?Auf Unix-Systemen können Sie diese Funktion ausprobieren:
function android_pull_apk() {
if [ -z "$1" ]; then
echo "You must pass a package to this function!"
echo "Ex.: android_pull_apk \"com.android.contacts\""
return 1
fi
if [ -z "$(adb shell pm list packages | grep $1)" ]; then
echo "You are typed a invalid package!"
return 1
fi
apk_path="`adb shell pm path $1 | sed -e 's/package://g' | tr '\n' ' ' | tr -d '[:space:]'`"
apk_name="`adb shell basename ${apk_path} | tr '\n' ' ' | tr -d '[:space:]'`"
destination="$HOME/Documents/Android/APKs"
mkdir -p "$destination"
adb pull ${apk_path} ${destination}
echo -e "\nAPK saved in \"$destination/$apk_name\""
}
- Exemple :
android_pull_apk com.android.contacts
- 備考 : Zur Identifizierung des Pakets:
adb shell pm list packages
Um die Antwort von @Yojimbo zu vervollständigen, habe ich Folgendes getan (nur Linux/Mac, funktioniert nicht sofort unter Windows... vielleicht in der Bash-Shell von Git):
for i in $(adb shell pm list packages -f -3 | cut -d= -f 1 | cut -d ":" -f 2); do adb pull $i; done
Das ist hässliche Bash, aber es funktioniert :)
EDIT: Es funktioniert nicht mehr auf AndroidM: alle Dateien sind "base.apk" unter einem anderen Verzeichnis benannt. Sollte "trivial" zu beheben sein.
Probieren Sie diesen einzeiligen Bash-Befehl aus, um alle Ihre Anwendungen zu sichern:
for package in $(adb shell pm list packages -3 | tr -d '\r' | sed 's/package://g'); do apk=$(adb shell pm path $package | tr -d '\r' | sed 's/package://g'); echo "Pulling $apk"; adb pull -p $apk "$package".apk; done
Dieser Befehl ist abgeleitet von Das Skript des Feuerlords . Ich habe gerade alle apks in ihre Paketnamen umbenannt, um das Problem mit elcucos Skript d.h. die gleiche base.apk
Datei wird unter Android 6.0 "Marshmallow" und höher überschrieben.
Beachten Sie, dass dieser Befehl nur Anwendungen von Drittanbietern sichert, denn ich sehe keinen Sinn darin, integrierte Anwendungen zu sichern. Wenn Sie aber auch Systemanwendungen sichern wollen, lassen Sie einfach das -3
Option.