Android启动过程分析

本文概述了Android系统的启动步骤,从boot loader到kernel,再到init进程,重点关注init进程的作用,如创建系统目录,启动服务和进程。讨论了zygote、system_server和service_manager等关键进程,它们的崩溃会导致系统软重启。文章提及CVE-2014-7911漏洞,展示了系统服务如何在system_server进程中以高权限运行。最后,提出了几个关于系统服务启动机制和潜在安全问题的研究方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  本文主要简单总结下Android系统启动过程。

  首先看下别人总结系统启动过程图,图来自博客

这里写图片描述

第一步:设备芯片ROM上写好了上电后代码执行的地方,会在ROM上查找boot loader执行的地址。

第二步:boot loader执行,完成硬件的初始化,寻找Linux kernel的地址。

第三步:kernel执行,初始化各种软硬件环境,加载驱动程序,挂载根文件系统,并启动第一个用户空间的进程init进程。

第四步:从init进程开始,是Android系统启动重点分析的对象。

init 进程主要完成工作有:
创建与挂在系统目录,包括/dev, /proc, /sys等;
根据init.rc 系统启动脚本启动一系列服务和进程。

由init进程启动的启动的进程包括:

  •   一些守护进程,例如vold,debuggerd,installd等;

  •   service_manager进程,此进程统一管理系统服务;

  •   zygote进程,zygote不用多说,所有的app及system_server都是fork自zygote进程;

  • (mediaserver进程也是init进程启动的,不知道算不算守护进程)

zygote进程很重要,是所有App的父进程。也是system_server的父进程。我们知道,system_server进程如果崩溃,系统将发生软重启。所以如果zygote进程崩溃,系统必然更会软重启。zygote进程做了以下的事:

  zygote进程启动Android 虚拟机,并启动system_server进程。

以上都是网上常见的内容,关于这个我就是浅显地了解。里面有三个进程需要注意,system_server,zygote和servicemanager,这三个进程如果发生了异常崩溃(killed),系统都将发生软重启。此外,这三个进程的uid级别都很高,至少是system级别。如果能向这几个进程注入代码,被注入的代码将以高权限执行。 CVE-2014-7911这个漏洞其实就是利用反序列化向系统服务(system_server)注入了代码,从而达到system提权的目的。

此外,还有一点需要说明,在CVE-2014-7911分析中,包含ROP链的String其实是注入到系统服务中的,为何会以system权限被执行?其实,所以的系统服务(非Native服务)都是作为system_server线程被启动的,也就是说所有系统服务的代码都运行在system_server进程中,所以有system权限。

这篇就到这里,主要是对网上 资料的整理,给自己留下个印象。这里还贴上一个图。

这里写图片描述

图中可以看到system_server,系统服务还有,servicemanger三者直接是有关系的,所以以下提出几个值得思考和后续值得研究下的问题:

1. 系统服务是怎么启动的?即system_server,servicemanager,和系统服务启动时各自发挥了什么作用?工作机制?
2. 能否向system_server,zygote,service_manager进程注入数据或者代码?导致系统崩溃或者code execution?
3. 看到网上资料说zygote开启了本地Linux socket作为进程通信用,那么这些socket是否有利用价值?




参考文献:
http://ticktick.blog.51cto.com/823160/1659473
http://blog.youkuaiyun.com/amazing7/article/details/51578478

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值