我一直试图从我的索尼xperia android设备(OS:JellyBean 4.1.2)中取出sqlite数据库,我在某些情况下调查了不同的stackoverflow线程我收到错误
"run-as: Package 'com.myapp' is unknown",
在某些情况下,mydata.db文件显示在我的计算机目录中,但大小为零。是否有任何正确的方法来拉出数据库?为此目的,谷歌有任何指南吗?
注意我已经访问了以下主题:
android adb, retrieve database using run-as
答案 0 :(得分:1)
如果我理解正确,您可以使用adb pull <path-to-db-on-phone> <path-on-your-pc>
。如果您收到任何权限错误:执行adb remount
,然后再次尝试上述命令。
答案 1 :(得分:-1)
我找到了解决方案。
首先运行此命令
adb backup -f ~/data.ab -noapk app.package.name[![enter image description here][1]][1]
只需点击&#34;备份我的数据&#34;按钮。屏幕将显示您要备份的软件包的名称,然后在成功完成后自行关闭。
由此产生的&#34; .ab&#34;文件包含android备份格式的应用程序数据。
快速提取简单的非加密备份运行:
dd if=data.ab bs=1 skip=24 | openssl zlib -d | tar -xvf -
有可能并非所有openssl安装都使用zlib支持进行编译。这是一个替代单行程序,它使用python来实现相同的结果:
dd if=data.ab bs=1 skip=24 | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" | tar -xvf -
结果是包含应用程序数据的apps / app.package.name /文件夹。
注意:如果应用程序开发人员通过设置android:allowBackup =&#34; false&#34;来明确禁用备份其应用程序的能力,则此方法不起作用。在应用程序清单中。
点击此链接:http://blog.shvetsov.com/2013/02/access-android-app-data-without-root.html