在 Android Device Monitor 的 File Explorer 中,无法打开某些文件夹的解决方法
参考:https://www.jianshu.com/p/acf9e8240467?tdsourcetag=s_pctim_aiomsg
Android Device Monitor 的 File Explorer 中,列出了模拟器内的各种文件与文件夹,有的文件夹旁边明明有箭头符号,然而却打不开,比如下面的 data 文件夹:
File Explorer
1 分析
因为 Android 的底层是 linux,所以每个文件夹都是有权限控制的,比如 data 的 Permissions(权限)是 drwxrwx--x
我们来解释一下:
- 第一个字符表示的是文件类型。如果是 d,则表示是文件夹。
- 后面跟着三个三元组。
- 共 10 个字符。
三个三元组各有不同的含义:
- 第一个组表示文件所有者的权限。
- 第二个组表示文件的组权限。
- 第三个组表示所有其他用户权限。
三元组字符的含义(顺序是 rwx
):
r
- 允许读(read)w
- 允许写(write)x
- 允许执行(execute)-
- 没有上述某种权限(与位置有关)
2 解决
使用 Android SDK 中的 adb,为文件夹设置访问权限。
1、把 platform-tools 文件夹设置为环境变量:
找到 Android SDK 的安装路径,如果用的是 Android Studio,可以在 File → Settings → Android SDK 中找到安装路径:
Android SDK 配置
把它设置为系统环境变量:
系统环境变量
并加入 path。
2、打开 cmd,输入以下命令,为 data 文件夹设置相应的权限:
设置权限
备注:输入两次 exit,就能退出到 windows 盘符下。
这时,我们再打开 Android Device Monitor 的 File Explorer(会自动刷新),就可以正常打开 data 文件夹啦:
访问 data 文件夹
3 命令解析
adb shell
:打开 adb shell 程序。su
:获取 root 权限。chmod 权限 文件夹
:为文件夹设置权限。
这里的 775,表示的是 rwxrwxr-x,每一个数字表示的是一个二进制数,比如 7,即 111,表示为这一个三元组设置所有的 rwx 权限。
更简单的做法是直接使用命令:
adb root
这样就不用一层一层文件夹设置权限啦O(∩_∩)O哈哈~
关于解决su:not found的方法
参考:https://blog.csdn.net/yh18668197127/article/details/83313482
adb shell之后su无法转到root权限,导致无法进入data/data/…
在Google查询之后发现是模拟器版本的问题
The play image has the Google Play store already installed and you can install apps, but there is no root access as it is a production build and not a debug build)
Android Studio带(Google Play)的模拟器无法获得root权限
安装(Google APIs)的模拟器
(注意图片Target里的(Google Play)和(Google APIs))