Ich habe zwei Tage lang gekämpft. Hoffe hier auf Hilfe.
Ich habe eine Windows-Batchdatei geschrieben, die Amazon-Sperrbildschirmanzeigen durch Benutzerbilder auf verwurzeltem Kindle Fire HD 7 ", 2013 (kfsowi) ersetzt. Ich habe gerade erfahren, dass ich die adb-Befehle verpfuscht habe, weil ich" adb unsicher "ausgeführt habe und daher su-Zugriff erhalten habe, ohne sie zu schreiben in die adb Befehle.
Was ich brauche: Um in einer Batch-Datei ausgeführt zu werden, benötige ich einzeilige adb shell su-Befehle, um von / push to / data auf diesem Gerät zu ziehen. (Oder ich könnte -> adb -d shell su -c "mount -o remount rw, / data <- in einer Zeile gefolgt von Pull oder Push verwenden)
Ich habe einen ls-Befehl wie folgt behoben:
- Dies funktionierte mit ADB unsicher: ADB ls "/ data / SecureStorageLocation"
- Was ich brauchte war: adb shell su -c "ls ./data/securedStorageLocation"
Jetzt brauche ich das gleiche zum Ziehen und Schieben. Das Problem:
- Bei unsicherem ADB funktioniert dies einwandfrei : ADB Pull "/ data / SecuredStorageLocation" "C: / Ziel"
- Ohne unsicheres ADB wird Folgendes angezeigt : Remote-Objekt '/ data / SecuredStorageLocation /' existiert nicht
Oben passiert auch, wenn ich zum ersten Mal Folgendes ausführe: adb -d shell su -c "mount -o remount rw, / data
Kann mir jemand sagen, wie man mit adb shell und su zieht und drückt. Ich habe viele Permutationen ausprobiert und kann das nicht herausfinden. Vielen Dank für Ihre Zeit.
BEARBEITEN: Der Befehl adb root erhält auf diesem Gerät kein Root
quelle
adb push
oderadb pull
im Root-Modus muss der ADB-Daemon auf dem Gerät im Root-Modus ausgeführt werden (was ADBInsecure tut).adb root
zur Arbeit kommen konnte). Vielleicht eine andere Frage wert?Antworten:
Nun, Sie müssen ein paar Befehle ausführen, da ich nicht glaube, dass es in einem funktionieren wird.
Sie müssen tun:
adb shell
su
cd /data/path/of/file
cp /data/path/of/file/copyme /data/local/tmp
chown shell.shell /data/local/tmp/copyme
exit
exit
adb pull /data/local/tmp/copyme /destination/copyme
Das funktioniert bei mir jedes Mal.
quelle
Danke für diese Diskussion. Es führte mich zu einer Lösung, die beim Sichern meines Telefons gut genug funktionierte und die interne ext4 nicht bereitstellte, bevor ich beim Versuch, das Problem zu beheben, etwas drastisches unternahm (anscheinend sind Root-Berechtigungen erforderlich).
Beachten Sie, dass im
adb shell
Allgemeinen ein Textterminal eingerichtet wird (so dass einzelne Zeilenendezeichen in CRLF konvertiert werden können, wodurch Binärdaten wie Partitionsbilder oder TAR-Archive entstellt werden). Während Sie dies in Unix / Linux-Versionen von adb umgehen können (z. B.stty raw
zu Ihrem geschälten Befehl hinzufügen ) oder ein neueres adb mitexec-out
Option verwenden können, schreibt es unter Windows immer noch CRLF in seine Ausgabe. Der nette Trick besteht darin, Daten durch Base64-Codierung und -Decodierung zu übertragen (Binärdateien sind für Windows en masse verfügbar). Beachten Sie auch , dass Fehler oder ausführliche Meldungen zu bedruckendenstderr
in Shell Ende auf bisstdout
vonadb shell
Programm im Host - System - so dass Sie diese nach unvermeidlichen anfänglichen Experimentieren verwerfen wollen.Hier geht:
Kann von Windows einfach per Skript erstellt werden, um alle Partitionen abzudecken (kann die Liste nach
ls -la /dev/block/
und / oder nachcat /proc/diskstats
oder nachschlagencat /proc/partitions
), z.(Hinweis zur Verwendung
%%P
in CMD-Batchdateien oder%P
in einer interaktiven Shell).Vergessen Sie nicht, dass es auch
mmcblk0boot[01]
Partitionen gibt und dass diemmcblk0
Gesamtheit all diese Partitionen in einem GPT-Wrapping enthält, genau wie jede andere Festplatte oder jeder Imitator einer :)Um die einzelnen Partitionsgrößen abzuschätzen, können Sie die Ausgabe von:
Leider habe ich es nicht schnell und einfach geschafft
tar cf - mmcblkp0*
, den Partitionsinhalt zu erhalten, so dass ich ihn an z. B.7z x -si
weiterleiten und die Daten auch als mehrere Dateien in einem tragbaren Einzeiler ausgeben konnte.Zu
tar
einigen Dateien können Sie:AKTUALISIERT: Es wurden weitere Tricks zum Übertragen von Binärdaten gefunden.
Ich hoffe, das hilft jemand anderem, Jim Klimov
quelle
adb exec-out
könnte die Lösung sein - aber aus irgendeinem Grund hat es für mich nicht gut funktioniert.Ich verwende das Batch-Skript (
extract-db-from-emulator.bat
) unten, um die lokale Datenbank auf den Host zu ziehen:quelle
Es muss nicht unbedingt einzeilig sein, aber Sie können versuchen, die folgenden Aktionen auszuführen:
/sdcard
oder auf einer externen SD-Karte).Möglicher Nachteil: Zwischen dem ersten und letzten Schritt kann eine böswillige App, wenn Sie sie "verwenden", ihre Dateien in einem temporären öffentlich zugänglichen Verzeichnis lesen und / oder ändern. In der Praxis ist dies sehr unwahrscheinlich.
quelle
Ich sehe einen Fehler mit
Die Lösung ist unter Linux
quelle