我使用adb和以下命令连接到我的活动设备:

C:\>adb -s HT829GZ52000 shell
$ ls
ls
sqlite_stmt_journals
cache
sdcard
etc
system
sys
sbin
proc
logo.rle
init.trout.rc
init.rc
init.goldfish.rc
init
default.prop
data
root
dev
$ cd data
cd data
$ ls
ls
opendir failed, Permission denied

我惊讶地发现,我的访问被拒绝了。为什么我不能像这样使用命令行浏览目录呢?

我如何获得我手机的根权限?


当前回答

如果你的Android设备是根设备,这是有效的(不确定是否适用于非根设备)。

Adb shell -访问shell Su -成为超级用户。

您现在可以读取所有目录中的所有文件。

其他回答

我知道这个线程是相当旧的,但我遇到了这个问题,今天试图从android工作室复制我的数据库文件到我的窗口读取它。我不需要运行任何命令,实际上根本不需要运行任何命令。我所做的唯一一件事就是重新连接USB到我的设备上,当提示说“使用USB”出现时,我选择了“文件传输”,它工作了!您不需要有一个根设备来复制其内部文件。

如果你只是想看到你的数据库和表,那么最简单的方法是使用Stetho。非常酷的工具,每个Android开发者谁使用SQLite buit由Facobook开发。

工具使用步骤

在应用程序的gradle文件中添加以下依赖项

“编译”com.facebook.stetho: stetho: 1.4.2

在Activity onCreate()方法中添加以下代码行

@Override onCreate(Bundle savedInstanceState) super.onCreate (savedInstanceState); Stetho.initializeWithDefaults(这个); setContentView (R.layout.activity_main); }

现在,构建您的应用程序&当应用程序正在运行时,您可以浏览您的应用程序数据库,通过在url中打开chrome:

chrome://inspect/#devices

其截图如下_

ChromeInspact

你的数据库

希望对大家有所帮助!:)

我在这方面也遇到了很多麻烦。我仍然不完全理解权限和根运行,但这对我来说是有效的(之前的答案之一),从/data/data/[包名]/databases/my_db.db复制数据库文件。由于某种原因,运行shell root或shell中的su不能工作,复制db文件也不行(尽管我可以导航到目录),sqlite3也不行。

所以,这是有效的!在DOS命令提示符中:

C:\Program Files\Android\android-sdk\platform-tools>adb shell
1|shell@android:/ $ run-as de.vogella.android.locationapi.maps
run-as de.vogella.android.locationapi.maps
1|shell@android:/data/data/de.vogella.android.locationapi.maps $ cd /data
cd /data
shell@android:/data $ cd data
cd data
shell@android:/data/data $ cd de.vogella.android.locationapi.maps
cd de.vogella.android.locationapi.maps
shell@android:/data/data/de.vogella.android.locationapi.maps $ cd databases
cd databases
shell@android:/data/data/de.vogella.android.locationapi.maps/databases $ ls
ls
bus_timetable_lines.db
bus_timetable_lines.db-journal
shell@android:/data/data/de.vogella.android.locationapi.maps/databases $ cat bus
_timetable_lines.db > /sdcard/db_copy.db
 bus_timetable_lines.db > /sdcard/db_copy.db                                   <
shell@android:/data/data/de.vogella.android.locationapi.maps/databases $exit   ^
exit
shell@android:/ $ exit
exit

C:\Program Files\Android\android-sdk\platform-tools>

现在转到SDCARD目录,获取文件db_copy.db。连这个都藏起来了,但我还是发了邮件。回到Windows,我可以用SQLite数据库浏览器打开db文件。:)

如果你知道应用程序包,你可以直接CD到那个文件夹。

例如CD data/data/com.yourapp

这将把您放到一个可读/可写的目录中,以便您可以根据需要更改文件。由于模拟器上的文件夹是相同的,所以可以使用该文件夹获取文件夹路径。

产品版本不能进入/data/app

drwxrwx--- system   cache             1970-01-01 08:00 cache
drwxrwxr-x root     system            1970-01-01 08:00 mnt 
drwxrwx--x system   system            1970-01-01 08:15 data

可能需要更换正确的所有者来操作它。