Android系统目录与权限管理

一、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/libsystem/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以后还需额外设置。
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值