Android 5.0如何用ADB双向传输文件?推送文件如何被文件管理器访问?
问题解答:通过ADB向未解锁原生Android 5.0设备传输可被文件管理器访问的纯文本文件
核心结论
可以实现,但不能将文件放在/data/local/tmp目录——这个路径属于系统级临时目录,受Android沙箱机制和SELinux强制规则限制,普通应用(包括文件管理器、文本编辑器)无权限访问,即便修改文件权限为755也无法突破限制。
可行解决方案
直接将文件推送至外部存储的公共可访问目录(如内置存储的Download、Documents目录),这些目录对普通应用开放权限:
- 直接执行推送命令(无需提前创建目录,系统默认存在这些公共目录):
adb push test.txt /sdcard/Download/
- 推送完成后,打开设备的文件管理器,进入「内置存储 > 下载」目录,就能找到并打开
test.txt文件。
为什么之前的方法无效?
Android 5.0开启了SELinux强制模式,/data/local/tmp属于系统分区的私有目录,仅授予系统进程或拥有root权限的进程访问权限。普通第三方应用(包括文件管理器)受沙箱隔离限制,无法读取该路径下的内容,修改文件权限无法绕过SELinux的规则限制。
备选方案(不推荐)
如果因特殊需求必须保留文件在系统分区,只能通过以下方式,但均需额外操作:
- 打包文本文件到APK的assets目录,安装应用后让应用将文件导出到外部存储;
- 解锁bootloader并获取root权限,修改SELinux规则或直接授予应用访问/data/local/tmp的权限,但这会失去设备保修并带来安全风险。
内容的提问来源于stack exchange,提问作者turtle
相关产品推荐
相关产品推荐

