android5.1 init对rc文件解析执行顺序

备注,下面on对应的section下面内容的数字,代表内核启动log所在的行数

比如我们的init.rc文件部分内容如下:
import /init.environ.rc

import /init.usb.rc

import/init.${ro.hardware}.rc

import /init.${ro.zygote}.rc

import /init.trace.rc

on early-init

mkdir /mnt 0775 root system

on init

sysclktz 0

symlink/system/etc /etc------------1975

chmod 0440/sys/fs/pstore/console-ramoops--------------------2125

上面的ro.hardware对于高通平台是qcom,也就是import /init.qcom.rc,此文件位于\device\qcom\common\rootdir\etc目录下,接着看init.qcom.rc

import init.qcom.usb.rc

import init.target.rc

import init.qcom.factory.rc

on early-init

mountdebugfs debugfs /sys/kernel/debug

on init

mkdir/persist 0771 system system----------2153

symlink/mnt/shell/emulated/0 /storage/emulated/legacy-------2189

接着看init.target.rc内容

on init

write /sys/module/qpnp_rtc/parameters/poweron_alarm 1-----------2199

所以可以看出,有几个规律:

(1)  不同的rc文件

init在解析rc文件的时候,会先执行init.rc文件的内容,然后才是执行它import的其他rc文件,其他先import进来的会先执行

比如init.rc:

Import /init.A.rc

Import /init.B.rc

就会先执行A.rc,然后才是B.rc,但不是执行完A.rc所有的内容,然后才是执行B.rc的内容,而是按照先执行完A.rc中init section,然后再执行B.rc的init section

(2)  同一个rc文件,比如init.rc文件,依次执行early-init、init、late-init等部分

on early-init

#create mountpoints

mkdir /mnt 0775root system---------内核启动log里找不到

on init

#Backward compatibility

symlink/system/etc /etc--------1975

chmod 0440/sys/fs/pstore/console-ramoops--------------------2125

# Mount filesystems and start core systemservices.

on late-init

trigger early-fs---------------------------2217(2125~2217之间执行其他rc的init的section了)

android5.1 init对rc文件解析执行顺序相关推荐

  1. Android init.rc文件解析过程详解(三)

    Android init.rc文件解析过程详解(三) 三.相关结构体 1.listnode listnode结构体用于建立双向链表,这种结构广泛用于kernel代码中, android源代码中定义了l ...

  2. Android init.rc文件解析过程详解(一)

        Android init.rc文件解析过程详解(一) 一.init.rc文件结构介绍 init.rc文件基本组成单位是section, section分为三种类型,分别由三个关键字(所谓关键字 ...

  3. 安卓 linux init.rc,[原创]Android init.rc文件解析过程详解(二)

    Android init.rc文件解析过程详解(二) 3.parse_new_section代码如下: void parse_new_section(struct parse_state *state ...

  4. Android init.rc文件解析过程详解(二)

    Android init.rc文件解析过程详解(二) 3.parse_new_section代码如下: void parse_new_section(struct parse_state *state ...

  5. A20 init.sun7i.rc 文件

    如果需要在开机的时候,自动加载一些ko文件,或者通过chmod修改一些设备文件的属性,都可以再 init.sun7i.rc文件中添加insmod和chmod命令来实现. init.sun7i.rc文件 ...

  6. SaltStack(4)——SaltStack目录中有多个sls文件的执行顺序

    一.saltstack文件中有多个sls文件的执行顺序 在stalstack的目录中有多个sls文件,系统会默认编译init.sls文件 所以编译sls文件中的模块可以在文件中定义 salt执行的目录 ...

  7. Android Init Language(RC文件)介绍

    Android Init Language介绍 基本概念 什么是rc文件? Android Init进程用rc做了什么? 相关内容 Android RC文件应用 Android rc文件语法解析 Li ...

  8. Android init.rc文件格式解析

    /****************************************************************************** Android init.rc文件格式解 ...

  9. [日更-2019.4.8、4.9、4.12、4.13] cm-14.1 Android系统启动过程分析(一)-init进程的启动、rc脚本解析、zygote启动、属性服务...

    2019独角兽企业重金招聘Python工程师标准>>> 声明 前阶段在项目中涉及到了Android系统定制任务,Android系统定制前提要知道Android系统是如何启动的. 本文 ...

最新文章

  1. linux命令eric,Linux命令行下连接无线网
  2. 脉冲电子围栏系统介绍_网络型脉冲电子围栏系统介绍
  3. 【Java报错】GP数据库 function point(unknown) is not unique.Could not choose a best candidate function 问题解决
  4. 洛谷 P1615 西游记公司
  5. ES6 中 class 和 extends 的es5实现
  6. 深入浅出曲面的切平面方程和曲面的法线方程
  7. 炫酷背光文字html,PS制作背光放射出来的文字效果
  8. 微信公众号使用:给微信公众号自定义菜单中设置查看历史记录的功能
  9. nagios一些安装注意
  10. 【Pigeon源码阅读】服务注册发布流程(四)
  11. java笔记--多敲代码四
  12. Eureka 服务注册中心的探究
  13. shell脚本入门与Netkeeper破解路由
  14. c语言中的static inline
  15. 取消华为mate30 删除图片时手机弹出提示:“..检测xx删除了图片..“
  16. HDU - 1431 素数回文 【素数打表】+【判断回文】
  17. 数据结构课程设计(八)---家谱管理系统(十几个功能)
  18. 马克鳗(美术设计稿标注工具)
  19. 联想拯救者y7000充电一闪一闪,接触不良
  20. Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.1.0:resources (default-reso

热门文章

  1. jvm 9种垃圾收集器
  2. 051_InfiniteScroll无限滚动
  3. 002_Spring Data JPA CRUD
  4. 035_jdbc-mysql-dbutils的使用
  5. java分布式事务原理_JAVA分布式事务原理及应用
  6. 语言专升本必背代码_2020年【山西省专升本】,专升本专业与考试科目,专升本招生院校,专升本报名流程大全!...
  7. 页面转发后文本显示???_使用Divi的滑动动画显示过程的进度
  8. Windows10 对系统盘C 有效清理
  9. page fault in nonpaged area 蓝屏_由于错误的更新,安装Windows 10 KB4549951后蓝屏死机解决办法...
  10. r语言必学的十个包肖凯_30 天学会R DAY 14:R语言必学包dplyr