adb -d shell "run-as ..." 在Android O上无法工作

3

最近在Android O上,以下类似的命令是否已经失效?

adb -d shell "run-as package.name cat /data/data/package.name/databases/foo.db" > foo.db

运行中:

  • 版本: OPP2.170420.019
  • 设备: Nexus 6P

我已经尝试了很多方法,但即使使用cat或cp命令将文件复制到/sdcard目录下也没有效果。我猜测某些权限发生了变化,我们不能再使用run-as package.name命令。

我唯一能够从未root的Android O设备中获取数据的方式是使用FileProvider并复制到/sdcard目录下。

是否有人成功地在调试包上使用run-as命令?有人遇到和我同样的问题吗?

2个回答

1
我不知道如何回答我的具体问题,但想分享我的新发现(对某些人可能很明显)。
在测试Android Studio 3.0 Canary 1后,有一个新的设备文件浏览器,可以轻松下载甚至同步最新的数据库!

Android Studio 3 Canary 1 - Device File Explorer

这是一个强大的功能,适用于需要从开发设备中获取任何类型文件的人。Cat命令从未完美过,有时会损坏数据库。此外,这个文件浏览器加上SQLPro for SQLite对于拥有数据库的Android开发来说是非常有价值的!如果有人能给出我原始问题的原因或解决方案,我将保持问题开放状态。另外,如果我接受自己的答案,我会感到很糟糕。 :)

0

看起来run-as会将当前目录设置为/data/data/packageName。

我认为以下命令可以工作:

adb -d shell "run-as package.name cat databases/foo.db" > foo.db


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接