Android系统源码探索与内核剖析
1. Android安全访问控制
在Android系统中,仅使用自主访问控制(DAC)不足以防止系统被入侵。例如,一个具有高特权的系统服务(如init)若被入侵,可能会导致系统被无限制访问。而SE Linux为Android引入了强制访问控制(MAC),从安全角度进一步限制每个运行进程。所有应用程序(包括系统进程)都会被分配SE上下文,并由内核强制执行,这能限制单个进程被入侵时造成的损害。
在编写和扩展SE策略时,若非绝对必要,最好不要修改AOSP树中提供的SE策略,因为它们符合CDD/CTS标准,这对于设备获得Android设备认证尤为重要。
2. Android应用资源访问机制
Android应用通过代理服务访问稀缺资源,这是Android硬件访问的关键。当应用需要访问稀缺资源时,不会直接请求,而是使用进程间通信(IPC)机制Binder向系统服务发出请求。通常,IPC请求对调用者是完全隐藏的,因为它被封装在Android API库中,客户端应用仅看到对本地方法的调用。
具体步骤如下:
1. 客户端应用调用Android API中的某个方法。
2. 该方法调用会发起与一个或多个远程进程中的Android服务应用的IPC对话。
3. 这些服务进程具有必要的安全权限,能够访问稀缺资源。
4. 服务可以协调请求,管理资源的访问和客户端使用。
5. 服务通过声明权限对应用访问其管理的稀缺资源进行细粒度控制。应用若要使用权限,必须在其清单文件中声明意图,并在获得权限之前得到应用用户的明确批准。
超级会员免费看
订阅专栏 解锁全文
1229

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



