2010-07-15 1 views
14

Ich habe mein Nexus One mit dem USB verbunden.Zugriff auf Datenordner im Datei-Explorer von DDMS mit einem Nexus One nicht möglich!

Wenn ich den Datei-Explorer der DDMS besuche, wenn ich auf den Ordner "data" klicke, verschwindet das kleine Plus neben dem Namen "data" für 2-6 Sekunden und erscheint dann wieder, aber der Inhalt des Ordners "data" wird nicht angezeigt!

Hier einige andere Informationen:

  • der Ordner Daten über Berechtigungen drwxrwx - x

  • das OS von meinem PC ist Windows XP

  • Eclipse-v 3.5.2

    .
  • Android SDK 1.6

+1

Fragen zu Stack Overflow werden in der Regel im Zusammenhang mit der Programmierung oder Softwareentwicklung im Rahmen der Definition in der FAQ stehen. – Pentium10

+3

Wenn Sie auf Ihrem Telefon keinen Root-Zugriff haben, können Sie nicht auf den Datenordner zugreifen. – Pentium10

+0

versuchen Sie es auf forceclose.com – Pentium10

Antwort

9

Wenn der adbd-Daemon als root ausgeführt wird, können Sie/data mit adb-basierten Tools wie dem DDMS-Datei-Explorer oder der adb-Shell durchsuchen. Wenn dies nicht der Fall ist, können Sie auf einige Dateien unter/data und ihre untergeordneten Elemente direkt über ihre vollständigen Pfadnamen zugreifen, aber Sie können die meisten Ordner (einschließlich/data selbst) nicht durchsuchen (oder "cd").

"rooten" als inoffizieller Prozess bedeutet, Dinge zu variieren und unterschiedliche Ergebnisse zu produzieren - dh adbd kann oder darf nicht als root laufen.

Wenn ro.secure in Startskripts wie /init.rc auf 0 gesetzt ist, wird adbd als root ausgeführt, aber das ist möglicherweise keine gute Idee auf einem Benutzergerät. Es ist auf dem Emulator auf 0 gesetzt, und deshalb können Sie dort Daten durchsuchen. Beachten Sie, dass /init.rc normalerweise in einem Ramdisk-Image enthalten ist, das auf dem Kernel gepackt ist - Sie können es nicht wirklich auf dem Telefon bearbeiten, aber das Image offline ändern und es erneut an den Kernel anhängen und blitze sie erneut auf. Wenn Sie jedoch einen Su-Hack haben, können Sie die Eigenschaft vorübergehend ändern und adbd neu starten.

+4

Wer auf Daten einer Anwendung zugreifen möchte, die auf einem nicht gerooteten Gerät entwickelt wird, sollte sich auch den Befehl run-as in der AdB-Shell ansehen, der Ihnen einen Shell-Prozess als Benutzer-ID Ihrer (debug-) build) APK, mit dem Datenverzeichnis der Anwendung als Arbeitsverzeichnis. –

+0

danke für den Hinweis auf dieses (zumindest für mich) obskure Kommando. Es ist etwas überraschend, dass Eclipse diese Magie hinter den Abdeckungen für nicht gerootete Geräte nicht tut. Seufzer. – jpm

2

Ich glaube nicht, dass jemand diese Frage wirklich versteht. Giorgio kann den DDMS File Explorer verwenden, um den Ordner ./data auf seinem Telefon zu durchsuchen. Pentium10 spricht davon, dass der Root-Zugriff auf dem Telefon erforderlich ist.

Nun, ich bin ein Einzelhandels Nexus One und ein Entwickler Nexus. Ich war schon immer in der Lage, den DDMS File Explorer zu verwenden, um den Ordner ./data auf meinem Entwickler-Telefon zu durchsuchen, aber nicht auf meinem Mobiltelefon. Also würde ich mit meinem Handy telefonieren. Ich tat es nicht.

Also das Endergebnis ist, gibt es etwas anderes über die Retail-und Entwickler-Handys. Bis weitere Untersuchungen durchgeführt werden, können Sie den Datenordner auf Ihrem Telefon nicht durchsuchen.

Hoffe, das hilft.

6

In diesem Link (http://denniskubes.com/2012/09/25/read-android-data-folder-without-rooting/) zeigt Dennis Kubes eine Methode zum Zugriff auf den Datenordner Ihrer Anwendung ohne Root-Zugriff.

Es stellt sich heraus, gibt es eine einfache Lösung, der Run-as-Befehl.

run-as com.your.package ls -l /data/data/com.your.package 
run-as com.your.package rm /data/data/com.your.package/databases/mydatabase.db 

Damit können Sie Befehle als Ihre App ausführen. Sie können Run-as auch im interaktiven Modus verwenden.

run-as com.your.package 
[email protected]:/data/data/com.your.package $ ls 
cache 
databases 
lib 
shared_prefs 
rm databases/mydatabase.db 

Im interaktiven Modus werden Sie in den Datenordner für Ihre App geleitet. Sie können von dort navigieren.

+0

bash: run-as: Befehl nicht gefunden –

+0

@Leo tun 'adb Shell' auf den ersten – Evgeniy