cm-14.1 Android系统启动过程分析(4)-init进程的启动、rc脚本解析、zygote启动、属性服务

声明

  • 前阶段在项目中涉及到了Android系统定制任务,Android系统定制前提要知道Android系统是如何启动的。
  • 本文参考了一些书籍的若干章节,比如《Android进阶解密-第2章-Android系统启动》、《深入理解Android虚拟机-第8/9/10章-init进程详解/Dalvik VM的进程系统/Dalvik VM运作流程详解》、《深入理解Android系统-第6/7/8章-init启动进程详解/Zygote进程详解/System进程详解》等
  • 本文使用的代码是LineageOS的cm-14.1,对应Android 7.1.2,可以参考我的另一篇博客:如何下载Nexus5的LineageOS14.1(cm-14.1)系统源码并编译、刷机
  • 很多代码注释待详细写

1 init进程

    init进程在Linux系统中是内核启动后启动的1号进程,init进程在Android系统中依然是内核初始化完成后首先启动的1号进程。init进程主要作用是:

  1. 创建、挂载启动所需的文件目录,包括:tmpfs、devpts、proc、sys、selinuxfs;
  2. 生成设备驱动节点(设备热插拔、udev、uevent,可参考书籍《Android框架揭秘》3.4节)
  3. 解析、处理init.rc等脚本文件中的命令;
  4. 初始化属性服务;
  5. 创建Zygote和属性服务;
  6. 使用while(true)循环创建子进程;

你可能感兴趣的:(#,Android系统启动过程分析,android,zygote)