Shadow
Shadow copied to clipboard
android手机非root,无法直接通过adb push to data目录
readme文中提到 编译插件,在plugin-project目录中运行:
./gradlew packageDebugPlugin
adb push build/plugin-debug.zip /data/local/tmp
adb push build/plugin-debug.zip /data/local/tmp,这个命令,目前稍微高一点的Android版本手机,运行这个命令会报 adb: error: failed to copy 'build/plugin-debug.zip' to '/data/loacl/tmp': remote secure_mkdirs failed: Permission denied 这个有什么办法么?
Android 11之后对这块权限进行控制了,建议readme中可以更新下适配到最近的Android版本,便于后面的开发者更快的跑通demo。 1、把adb命令中push文件的目录 /data/loacl/tmp改成了 sdcard目录 2、host-projecet和manage-project的代码中的相应代码也改了路径 3、在host-project中,增加读写权限,可以跑通demo
Android 11之后对这块权限进行控制了
有官方的文档链接吗?
我试了一下API 31的虚拟机也是可以adb push /data/local/tmp的。
https://developer.android.com/about/versions/11/privacy/storage#other-apps-data
你可以用非root的真机测试下,虚拟机我理解是可以拿到root权限的。
虚拟机默认也是非root的,也是普通的AOSP系统。所以我估计应该是OEM系统进行了额外限制。
这个/data/local/tmp
目录仍然在AOSP代码里大量使用,所以它的特殊性不应该会随意变化:https://cs.android.com/search?q=%2Fdata%2Flocal%2Ftmp&sq=
https://developer.android.com/about/versions/11/privacy/storage#other-apps-data
这里没有特别指明/data/local/tmp
目录,应该是只是普通的内部存储和外部存储权限的调整。
我这边没有android 11的真机设备,有条件的话,应该验证一下多种OEM的android 11 设备是否都有这个问题。