我是靠谱客的博主 兴奋凉面,最近开发中收集的这篇文章主要介绍android5.1 init对rc文件解析执行顺序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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,此文件位于deviceqcomcommonrootdiretc目录下,接着看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文件解析执行顺序的全部内容,希望文章能够帮你解决android5.1 init对rc文件解析执行顺序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部