我只是使用这种方法植根我的Nexus 5:http://www.phonearena.com/news/How-to-root-Google-Nexus-5_id49014
我还在开发人员选项中启用了USB调试.
然后我尝试使用此命令从我的设备中提取数据库文件:
adb pull /data/data/path.to.package/databases/data /sdcard/test
Run Code Online (Sandbox Code Playgroud)
我收到permission denied错误.
我没有在我尝试访问的应用程序中设置调试标志.这是我无法访问该文件的原因吗?如果是,是否有任何变通方法可以访问应用程序文件?
gue*_*418 77
您可以使用run-asshell命令访问私有应用程序数据.
如果您只想复制数据库,可以使用/sf/answers/2205298441/中提供的此代码段.
adb -d shell "run-as com.example.test cat /data/data/com.example.test/databases/data.db" > data.db
Run Code Online (Sandbox Code Playgroud)
小智 22
我有同样的问题.我的工作是使用adb shell和su.接下来,将文件复制到/ sdcard/Download
然后,我可以使用adb pull来获取文件.
Anv*_*thy 19
你adb remount在给予后尝试了adb root吗?
我有同样的问题,这是如何处理它:
有人早先提到了类似的东西.
感谢下面的评论.
小智 7
如果你得到无法复制和权限是正确的禁用selinux.
检查是否启用了selinux.
$ adb shell
$su
# getenforce
Enforcing
Run Code Online (Sandbox Code Playgroud)
Selinux已启用并阻止/强制执行.禁用selinux
# setenforce 0
Run Code Online (Sandbox Code Playgroud)
做你的东西并设置selinux来执行.
# setenforce 1
Run Code Online (Sandbox Code Playgroud)
此通用解决方案应在所有植根设备上工作:
adb shell "su -c cat /data/data/com.android.providers.contacts/databases/contacts2.db" > contacts2.d
Run Code Online (Sandbox Code Playgroud)
该命令以shell cat身份连接,然后以root用户身份执行并将输出收集到本地文件中。
与@ guest-418的解决方案相反,不必为有问题的用户进行挖掘。
另外,如果您贪婪并且想要一次所有数据库(例如,用于备份)
for i in `adb shell "su -c find /data -name '*.db'"`; do
mkdir -p ".`dirname $i`"
adb shell "su -c cat $i" > ".$i"
done
Run Code Online (Sandbox Code Playgroud)
这会在文件名的末尾添加一个mysteryous问号,但仍可读。
这个答案最终对我有用:https : //stackoverflow.com/a/15559278/53001
备份到文件,提取备份,然后将其转换为 tarball 并解压缩。
adb backup -f myAndroidBackup.ab com.corp.appName
dd if=myAndroidBackup.ab bs=1 skip=24 | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" | tar -xvf -
Run Code Online (Sandbox Code Playgroud)
Mai*_*aik -6
命令pull是:
adb pull source dest
Run Code Online (Sandbox Code Playgroud)
当你写:
adb pull /data/data/path.to.package/databases/data /sdcard/test
Run Code Online (Sandbox Code Playgroud)
这意味着您将从 中提取/data/data/path.to.package/databases/data并将其复制到/sdcard/test,但目标必须是本地目录。你也可以写C:\Users\YourName\temp。
例如:
adb pull /data/data/path.to.package/databases/data c:\Users\YourName\temp
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
85254 次 |
| 最近记录: |