Ich habe ein gerootetes Android-Handy. Ich versuche, die Anwendungen aus /system/app/ zu ziehen. Dies kopiert jedoch einfach nicht die apk. Was ich probiert habe.
adb shell
su
cd data
cd app
ls
Viele Bewerbungen werden gezeigt. Aber wenn ich versuche, es zu ziehen, sagt es
adb pull /data/app test
pull: building file list...
0 files pulled. 0 files skipped.
Wenn ich versuche, es aus dem System/der App zu ziehen, zieht es es, aber es wird keine Datei auf meinem Computer erstellt. Ich habe den Dateinamen angegeben, mit und ohne probiert. Könnte mir bitte jemand sagen was ich falsch mache?
Ich habe es auch einzeln mit bestimmten apks ausprobiert. Aber auch das geht nicht.
Wenn Sie verwenden su
, um Root-Rechte zu erhalten, wenn Sie in die Shell einsteigen (was Sie angegeben haben), bedeutet dies, dass Sie standardmäßig nicht root auf der Shell sind. adb pull
schlägt mit dieser Fehlermeldung fehl, da es keine Berechtigung hat, das Verzeichnis zu indizieren und den Inhalt abzurufen.
Sie sollten zuerst adb
auf Ihrem Gerät neu starten können adb root
:
adb root
adb pull /data/app/
Und ein vollständig anschauliches Beispiel, um zu zeigen, dass dies das wahrscheinliche Problem ist (ich habe es /data/misc
nur verwendet, weil es kleiner ist):
[09:27:23] ~/adb-test $ adb pull /data/misc/
pull: building file list...
0 files pulled. 0 files skipped. <-------------- Same issue because we're not root yet!
[09:27:49] ~/adb-test $ adb root
[09:27:56] ~/adb-test $ adb pull /data/misc/
pull: building file list...
... Snip all of the individual files here ...
24 files pulled. 0 files skipped.
65 KB/s (7732 bytes in 0.115s)
[09:27:59] ~/adb-test $
Eine weitere Option für einen Neustart adb
als Root ist die adbd insecure App von Chainfire . Einige ROMs unterstützen den adb root
Befehl jedoch nicht, da sie nicht dafür gebaut wurden. Dies ist beispielsweise der Fall, wenn Sie ein Standard-ROM rooten, ohne ein benutzerdefiniertes zu installieren.
adb root
Befehl möglicherweise leider nicht. Eine andere Option wäre zu versuchen, entweder ein Boot-Image zu finden, das einen unsicheren adbd
Start unterstützt, oder ein völlig anderes ROM.adbd
als Root neu zu starten (Sie erhalten ein 15-minütiges Rückerstattungsfenster, wenn Sie sie testen möchten). Ein benutzerdefiniertes ROM wäre kostenlos und Sie müssten sich keine Gedanken über die Verwendung der App machen, aber ein bisschen mehr Aufwand für die Installation. Sie könnten wahrscheinlich in beide Richtungen gehen, aber ich denke, das adb pull
sind leider die einzigen wirklichen Optionen, um mit eingeschränkten Verzeichnissen zu arbeiten.Sie müssen adb nicht als root ausführen, um die eigentlichen Dateien abzurufen, aber Sie müssen es als root ausführen, um das Verzeichnis aufzulisten, in dem sie sich befinden (was eine implizite Anforderung wäre, um das gesamte Verzeichnis abzurufen).
Wenn Sie es ohne Root tun möchten, ziehen Sie /data/system/packages.xml und extrahieren Sie die Codepfade der Anwendungen von dort, dann ziehen Sie sie einzeln mit ihren vollständigen Pfadnamen von adb. Das könnte eine großartige Gelegenheit sein, etwas über grep und xargs zu lernen – oder Ihre bevorzugte hostseitige Skriptsprache zu verwenden.
Stellen Sie zunächst sicher, dass Sie die neueste Version des ADB-Dienstprogramms haben, indem Sie die neueste Android SDK-Version von hier herunterladen .
Die Syntax ist adb pull <path to apk> <path on PC>
. Versuchen Sie für den Abschnitt "Pfad auf dem PC", den vollständigen Pfad mit Laufwerksbuchstaben wie folgt anzugeben:
adb pull /data/app/myapp.apk c:\test
Um alle Apps aus dem /data/app-Verzeichnis zu ziehen, versuchen Sie Folgendes:
adb pull /data/app/ c:\test
/
" nach dem Quellpfad, wenn Sie versuchten, das gesamte Verzeichnis abzurufen./
ist doch nicht nötig.
Fluss
Sab