我使用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
我惊讶地发现,我的访问被拒绝了。为什么我不能像这样使用命令行浏览目录呢?
我如何获得我手机的根权限?
我在这方面也遇到了很多麻烦。我仍然不完全理解权限和根运行,但这对我来说是有效的(之前的答案之一),从/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文件。:)