声明
- 最近工作上涉及到对Android系统安全性的改造,在改造之前先分析整理下目前Android系统自身的安全性;
- 参考了一些文章及书籍,在这里大部分是对别人描述的提炼,我挑出一些对我有用的内容整理;
- 可参考Google官网:《保护 Android 设备》
- 学习本文需要具备很强的Linux操作系统知识。
- 本文使用的代码是Android 7.1.1
0 写在前面的
Android在Linux的基础上构建出了一个富框架(rich framework),但在它最核心的层面上,还要靠Linux来完成所有操作。它沿用了Linux提供的安全特性:权限(permission)、权能(capability)、SELinux和其它一些底层安全保护措施。
1 Android继承了Linux的安全模型
Linux的安全模型的基本规定如下:
-
每个用户都有一个数字形式表示的UID:具体的用户名是什么对系统来说无关紧要,因为用户名是给用户看的(这些用户名是专门分配给配置文件和它们所属的目录的所有者使用的)。注意:两个用户名可能会共享同一个UID,但出现这种情况,从系统的角度讲,实际上只是意味着一个UID有两套用户名/密码而己。
-
每个用户都有一个数字形式表示的主组(primary group