Android系统中的/data/local/tmp 目录是一个特殊目录,可以使用adb上传或拉取文件,许多工具也会将运行需要的文件推送到该目录下,如:Android投屏工具Scrcpy。
前几天手抖误删了tmp目录,直接重新创建,发现还是访问不了,开启投屏工具会报错,提示"copy scrcpy-server' to '/data/local/tmp/scrcpy-server.jar': remote couldn't create file: Permission denied",终于在今天凌晨找到了解决方法,特此记录:
1、需要保证手机有root权限。(既然能删除这个目录肯定是已经拥有root权限了)
2、创建/data/local/tmp
# mkdir /data/loca/tmp
3、此时的tmp目录的拥有者和用户组都是root,需要改成shell,权限最好也改成与之前一致。
# chmod 771 /data/loca/tmp
# chown shell /data/loca/tmp
# chgrp shell /data/loca/tmp
4、然后就是关键一步,执行以下命令即可。
# chcon -R u:object_r:shell_data_file:s0 /data/local/tmp