我将我的 android 设备连接到 PC 并通过 adb 连接。我想要做的是将文件从我的 PC 复制到我的应用程序 ( /data/data/com.example.app/databases
) 的内部存储中,无需 root 或su
. 我首先将文件从我的 PC 推送到/sdcard/
我的 android 设备的文件夹中。
adb push database.sqlite /sdcard/
然后我想将该文件复制到我的应用程序的内部存储中。我可以成功运行我的应用程序包并查看内部存储。
adb shell
$ run-as com.example.app
$ ls databases
这不会导致权限问题。/sdcard/
如果我不使用run-as
也没问题,我也可以查看文件夹
adb shell
$ ls sdcard
问题是当我第一次使用时run-as
我无法访问 /sdcard/ 文件夹,当我不使用时run-as
我无法访问内部存储文件夹。所以,如果我执行run-as
然后执行这个:
cp /sdcard/database.sqlite /data/data/com.example.app/databases/
我收到此权限被拒绝错误:
cp: /data/data/com.example.app/databases/database.sqlite: Permission denied
我也试过 withh dd 但没有用:
dd if=/sdcard/database.sqlite of=/data/data/com.example.app/databases/
# output
dd: /sdcard/database.sqlite: Permission denied
我怎么解决这个问题?我没有 root 访问权限,也没有超级用户 ( su
)。我想我可以在没有 root 的情况下实现这一点,因为使用 android studio 设备文件资源管理器我设法将数据库上传到同一个 android 设备中。我只想使用命令行(Windows)来做到这一点。
任何帮助将不胜感激:D