为什么我在尝试将 Sqlite 文件推送到我的 root Android 设备时得到权限被拒绝?

Why am I getting Permission Denied when trying to push a Sqlite file to my rooted Android device?

所以我有一个本地 Sqlite 文件,我正试图将其推送到我的 Rooted Android ( Nexus 7 2013) 设备。我已通过绑定 adb shellsu 并查看 #[= 来确认 Rooted显示 39=] 而不是 $

我正在尝试 运行 以下命令:

adb push D:\tfs\MyApp\MyDatabase.db3 /data/data/MyApp/files/MyDatabase.db3

但我不断得到

Failed to copy ...MyApp.. to ...MyApp...: Permission denied

我在互联网上搜索并找到了答案 here and here 并得出以下结论:

adb shell su -c "mount -o rw,remount /data"
adb shell su -c "chmod 777 /data"

但即使在 运行 执行以上两个命令和 运行 执行我的 Push 命令后,我仍然 Permission Denied

我做错了什么?

好的,这是我的解决方案。

我的 phone 已经 Rooted 但由于某些原因,这还不足以做任何你想做的事。

我不得不去下载 apk 到我的名为 adbd insecure 的设备上 here which you can download on that thread or from the google play store。然后我不得不在我的设备上打开应用程序并单击 "Enable Insecure adbd" 我还单击了 "Enable at boot"

在此之后 运行 我的正常命令:

adb push D:\tfs\MyApp\MyDatabase.db3 /data/data/MyApp/files/MyDatabase.db3

工作

'adb push' 无法推送到 data/data/ 目录。 但是,您可以使用这样的中转站来完成:

adb push D:\tfs\MyApp\MyDatabase.db3 ~/sdcard/MyDatabase.db3

adb shell

su

mv /sdcard/MyDatabase.db3 /data/data/MyApp/files/MyDatabase.db3

对我有用,祝你好运。

从本地 C:/Apps

推送 APK 文件例如:"MyApp" 到 /data/local/tmp/

adb push C:/Apps/MyApp /data/local/tmp/ 给出权限被拒绝错误

完成这项工作的步骤(按顺序发出这些命令)

  1. adb shell
  2. su
  3. chmod 777 /data/local/tmp/
  4. exit
  5. chmod 777 /data/local/tmp/
  6. exit

现在如果我给 adb push,它就起作用了

adb push C:/Apps/MyApp /data/local/tmp/