2013-07-24 2 views
7

Ich bin nicht in der Lage, eine Datenbank vom Gerät zu ziehen, auch nach dem Ändern der Erlaubnis. Ich habe ein verwurzeltes Telefon. Früher hat es funktioniert. Ich könnte vorher ziehen. Aus irgendeinem unbekannten Grund kann ich jetzt nicht.Kann adb nicht ziehen Datenbank auch nach chmod 777 auf meinem Gerät

Der Fehler, den ich empfangen wird remote object '/data/data/com.thuptencho.transitbus/databases/ttc.db' does not exist

Weiß jemand, warum dies geschieht? Unten ist, was ich im Befehlsfenster getan habe.

C:\users\thupten>adb shell 
[email protected]:/ $ su 
su 
[email protected]:/ # cd /data/data/com.thuptencho.transitbus/databases/ 
cd /data/data/com.thuptencho.transitbus/databases/ 
[email protected]:/data/data/com.thuptencho.transitbus/databases # ls 
ls 
ttc.db 
ttc.db-journal 
webview.db 
webview.db-journal 
webviewCookiesChromium.db 
webviewCookiesChromiumPrivate.db 
[email protected]:/data/data/com.thuptencho.transitbus/databases # chmod 755 ttc.db 
5 ttc.db                  < 
[email protected]:/data/data/com.thuptencho.transitbus/databases # chmod 777 ttc.db 
7 ttc.db                  < 
[email protected]:/data/data/com.thuptencho.transitbus/databases # exit 
exit 
[email protected]:/ $ exit 
exit 

C:\users\thupten>adb pull /data/data/com.thuptencho.transitbus/databases/ttc.db 
remote object '/data/data/com.thuptencho.transitbus/databases/ttc.db' does not exist 

Antwort

4

Ich fand es heraus. Ich musste auch den Datenbankordner chmod und dann die Datei.

2

Das Problem besteht darin, dass Sie nicht nur für die Datei, sondern auch für die übergeordneten Verzeichnisse eine Berechtigung benötigen.

(Das Erlaubnis nicht 777, obwohl sein sollte!)

Anstatt zu versuchen, die Erlaubnis zu ändern, was wollen Sie wahrscheinlich zu tun ist, adb läuft als root, wenn das unterstützt wird, (dh, wenn Sie eine haben Engineering-Build, anstatt ein Aftermarket "Rooting" eines gesicherten Geräts) oder verwenden Sie Ihren Root-Zugriff (oder die App selbst, oder die Aktie run-as Befehl, wenn Sie eine Debug-apk haben), um die Datei von Interesse irgendwo zugänglich und zu kopieren dann adb ziehe die kopie.

+0

Saubere Lösung. – naXa

8

ich diese Befehle unter Verwendung von Daten zu erhalten, von/Daten/Datenordner, benötigt kein Wechsel Erlaubnis

adb kill-server 
adb root 
0

Meine bevorzugte Lösung war:

unsichere App installieren Chainfire ist adbd Aus dem adbd unsichere App wählen Sie "Enable unsichere adbd" adb Pull /data/data/com.package.name/databases/database.db

Vorsicht - adb unsicher bedeutet adb als root auf dem Gerät ausgeführt wird.

0
for i in `adb shell ls /data/ -1`;do adb pull /data/$i data; done 
Verwandte Themen