即使更改了权限,我也无法从设备中提取数据库。我有根电话。 它曾经工作过。我之前可以拉。由于某种未知的原因,我现在不能。
我收到的错误是
remote object '/data/data/com.thuptencho.transitbus/databases/ttc.db' does not exist
有人知道为什么会这样吗? 以下是我在命令窗口中所做的。
C:\users\thupten>adb shell
shell@android:/ $ su
su
root@android:/ # cd /data/data/com.thuptencho.transitbus/databases/
cd /data/data/com.thuptencho.transitbus/databases/
root@android:/data/data/com.thuptencho.transitbus/databases # ls
ls
ttc.db
ttc.db-journal
webview.db
webview.db-journal
webviewCookiesChromium.db
webviewCookiesChromiumPrivate.db
root@android:/data/data/com.thuptencho.transitbus/databases # chmod 755 ttc.db
5 ttc.db <
root@android:/data/data/com.thuptencho.transitbus/databases # chmod 777 ttc.db
7 ttc.db <
root@android:/data/data/com.thuptencho.transitbus/databases # exit
exit
shell@android:/ $ 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
答案 0 :(得分:8)
我使用这些命令从/ data / data文件夹中获取数据,不需要更改权限
adb kill-server
adb root
答案 1 :(得分:4)
我明白了。 我不得不chmod数据库文件夹,然后是文件。
答案 2 :(得分:2)
问题是您不仅需要该文件的权限,还需要其父目录的权限。
(那个许可不应该是777!)
与其尝试更改权限,您可能要做的就是让adb以root身份运行(如果支持的话)(即,如果您有工程构建,而不是安全设备的售后“rooting”)或者使用您的root访问权限(或者应用程序本身,或者如果您有调试apk,则使用stock run-as命令)将感兴趣的文件复制到可访问的位置,然后adb拉出副本。
答案 3 :(得分:0)
我的首选解决方案是:
安装Chainfire的adbd不安全应用 在adbd insecure app中,选择“启用不安全的adbd” adb pull /data/data/com.package.name/databases/database.db
注意 - adb不安全意味着adb在您的设备上以root用户身份运行。
答案 4 :(得分:0)
for i in `adb shell ls /data/ -1`;do adb pull /data/$i data; done