一、Android目录结构
1. data/data目录
data/data目录存放用户应用的数据,每个应用都有自己的子目录,以包名命名。例如,包名为com.example.app的应用,其数据存放在data/data/com.example.app中。该目录是私有目录,只有相应的应用能够访问,除非获得了root权限。
2. data/app目录
用户安装的应用存放在data/app目录下。
3. data/local/tmp目录
data/local/tmp是一个临时目录,具有较大的权限,通常用于存放一些临时文件。
4. system/app目录
system/app目录存放系统自带的应用。
5. system/lib和system/lib64目录
system/lib和system/lib64目录存放应用使用的共享库文件(.so文件)。
6. system/bin目录
system/bin目录存放Android系统的shell命令。
7. system/framework目录
system/framework目录存放Android系统使用的框架文件,如一些jar文件和XposedBridge.jar。
8. sd卡目录
无论设备是否有外部存储卡,都会有sd卡目录,通常是/sdcard,链接到/storage/self/primary。访问sd卡目录需要申请权限,如:
/sdcard -> /storage/self/primary
/mnt/sdcard
/storage/emulated/0
二、Android系统权限管理
在Linux系统中,文件和目录的权限通过ls -l命令显示,权限部分如下所示:
lrwxrwxrwx 1 root root 8 May 29 04:09 sbin -> usr/sbin
1. 权限解释
a) 文件类型
-:普通文件l:链接文件,后面用->指向真实文件d:目录,相当于Windows的文件夹c:字符设备文件,例如鼠标、键盘(位于/dev目录)b:块设备文件,例如硬盘(位于/dev目录)
b) 权限位
- 第1-3位:所有者权限
- 第4-6位:所属组权限
- 第7-9位:其他用户权限
2. 权限表示方式
权限表示可以使用字母或数字:
r:可读(4)w:可写(2)x:可执行(1)-:无权限
例如,rwx表示可读、可写、可执行,数值表示为7(4+2+1)。
3. 其他说明
- 硬链接数:访问同一文件的不同路径数,文件一般为1,目录至少为2。
- 用户和组:文件的所有者和所属组。
- 文件大小:以字节为单位,目录大小通常显示为4096字节。
- 修改日期:最后修改的日期和时间。
- 文件名:包括软链接名和实际指向的文件或目录。
4. 修改权限
使用chmod命令修改文件或目录权限:
- 使用符号方式:
u:所有者g:所属组o:其他人a:所有人- 示例:
chmod u=rwx,g=rx,o=x 文件/目录名chmod o+w 文件/目录名chmod a-x 文件/目录名
- 使用数字方式:
- 示例:
chmod 777 文件/目录名
- 示例:
5. SELinux策略
并非所有目录和文件都能通过上述方式修改权限,有些需要修改SELinux策略。
6. Android目录权限测试
/data/data/pkgName:应用的私有目录,文件通常拷贝到sd卡目录再pull出来。/data/local/tmp:权限较大的临时目录,逆向工程人员常用。/sdcard:访问权限需在清单文件中申请,Android 6.0以上需要动态申请,10.0以后还需额外设置。
2499

被折叠的 条评论
为什么被折叠?



