本文转载自:https://blog.csdn.net/quhj/article/details/51819638

android 系统开机是会有一个初始化过程 init ,整个初始化过程是根据配置脚本init.rc进行的。init.rc文件位于android设备的根目录,在设备出厂是就确定了,一般用户无法修改,厂家也不希望用户修改,如果是资深人士,那就另当别论了。

不管在android的原生代码根目录,还是soc提供的目录下,在执行完 source build/envsetup.sh之后,可以在代码根目录下使用

mgrep init.rc  命令,命令的输出大概揭示了init.rc 的生成过程。

以下是我在freescale 平台的输出结果:

./device/fsl/imx6/evk_6sl.mk:24:    device/fsl/evk_6sl/init.rc:root/init.freescale.rc \
./device/fsl/imx6/sabreauto_6q.mk:20:    device/fsl/sabreauto_6q/init.rc:root/init.freescale.rc \
./device/fsl/imx6/imx6.mk:370:    system/core/rootdir/init.rc:root/init.rc \
./device/fsl/imx6/evk_6ul.mk:24:    device/fsl/evk_6ul/init.rc:root/init.freescale.rc \
./device/fsl/imx6/sabresd_6dq.mk:20:    device/fsl/sabresd_6dq/init.rc:root/init.freescale.rc \
./device/fsl/imx6/sabresd_6sx.mk:20:    device/fsl/sabresd_6sx/init.rc:root/init.freescale.rc \
./device/fsl/imx6/sabreauto_6sx.mk:20:    device/fsl/sabreauto_6sx/init.rc:root/init.freescale.rc \
./device/fsl/imx7/imx7.mk:359:    system/core/rootdir/init.rc:root/init.rc \
./device/fsl/imx7/sabresd_7d.mk:24:    device/fsl/sabresd_7d/init.rc:root/init.freescale.rc \
./device/generic/qemu/ranchu_arm64.mk:33:            system/core/rootdir/init.rc:root/init.rc \
./device/generic/qemu/qemu_base.mk:42:    init.rc \
./system/core/CleanSpec.mk:51:$(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/init.rc)
./system/core/CleanSpec.mk:52:$(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/init.rc)
./system/core/rootdir/Android.mk:4:# init.rc
./system/core/rootdir/Android.mk:5:# Only copy init.rc if the target doesn't have its own.
./system/core/rootdir/Android.mk:9:LOCAL_MODULE := init.rc
./system/core/rootdir/Android.mk:24:# Put it here instead of in init.rc module definition,
./system/core/rootdir/Android.mk:25:# because init.rc is conditionally included.
./build/target/product/full_x86.mk:23:# that isn't a wifi connection. This will instruct init.rc to enable the
./build/target/product/full_x86_64.mk:23:# that isn't a wifi connection. This will instruct init.rc to enable the
./build/target/product/embedded.mk:35:    init.rc \
./build/core/Makefile:801:recovery_initrc := $(call include-path-for, recovery)/etc/init.rc
行:

./system/core/rootdir/Android.mk:9:LOCAL_MODULE := init.rc
 揭示了android原始的init.rc 的位置以及生成动作
行:

./device/fsl/imx6/imx6.mk:370:    system/core/rootdir/init.rc:root/init.rc \
揭示了soc厂家定制后还使用原始的init.rc
行:

./device/fsl/imx6/imx6.mk:370:    system/core/rootdir/init.rc:root/init.rc \
揭示了soc如何把自己定制的文件按照系统定义的名称,让init.rc 包含到。
这个大概就是init.rc的生成过程了把,freescale 是直接使用了android 原始的init.rc 也可以直接使用自己的。
---------------------
作者:FisherQu
来源:CSDN
原文:https://blog.csdn.net/quhj/article/details/51819638
版权声明:本文为博主原创文章,转载请附上博文链接!

android 6 中init.rc的生成过程【转】的更多相关文章

  1. init进程 && 解析Android启动脚本init.rc && 修改它使不启动android && init.rc中启动一个sh文件

    Android启动后,系统执行的第一个进程是一个名称为init 的可执行程序.提供了以下的功能:设备管理.解析启动脚本.执行基本的功能.启动各种服务.代码的路径:system/core/init,编译 ...

  2. Android如何配置init.rc中的开机启动进程(service)【转】

    本文转载自:http://blog.csdn.net/qq_28899635/article/details/56289063 开篇:为什么写这篇文章 先说下我自己的情况,我是个普通的大四学生,之前在 ...

  3. android中init.rc文件的解析问题

    init.rc中文件里会通过import /init.${ro.hardware}.rc文件,这个ro.hardware应该是某个详细的属性.而这个ro.hardware赋值应该是在Init进程中赋值 ...

  4. Android启动脚本init.rc(2)

    在Android中使用启动脚本init.rc,可以在系统的初始化中进行简单的操作. init.rc启动脚本路径:system/core/rootdir/init.rc 内容: Commands:命令 ...

  5. Android启动脚本init.rc说明文档readme.txt翻译

    Android Init Language--------------------- Android初始化语言--------------------- The Android Init Langua ...

  6. Android init.rc解析【转】

    转自:http://www.linuxidc.com/Linux/2014-10/108438.htm 本文主要来自$Android_SOURCE/system/init/readme.txt的翻译. ...

  7. Android中的 init.rc文件简介

    init.rc脚本是由Android中linux的第一个用户级进程init进行解析的. init.rc 文件并不是普通的配置文件,而是由一种被称为"Android初始化语言"(An ...

  8. Android: 启动init.rc 中service的权限问题【转】

    转自:http://www.linuxidc.com/Linux/2011-04/35014.htm 通过property_set("ctl.start", service_xx) ...

  9. Android 重定向 init.rc中服务的输出

    在init.rc中运行的服务,由于系统启动的时候将标准输出重定向到了/dev/null, 所以服务中的打印信息都不可见. 但调试时可能需要看到其中的打印信息,因此就有了logwrapper这个工具:l ...

随机推荐

  1. vsftp

    [安装vsftpd]安装vsftpd工具步骤   1 安装vsftpd组件 [root@bogon ~]# yum -y install vsftpd 安装完后,有/etc/vsftpd/vsftpd ...

  2. Bootstrap-全局CSS样式-图片样式

    Bootstrap第二部分:全局CSS样式-图片样式.img-rounded   圆角图片.img-circle    圆形图片.img-thumbnail 缩略图片.img-responsive响应 ...

  3. c++中istream类型到bool类型的隐式转换

    事情的起因是见到了这种用法: while(cin>>m>>n&&m&&n) { } 现在分析一下,cin>>m>>n返回 ...

  4. ubuntu安装python-mysqldb

    前期准备: sudo apt-get install  libmysqld-dev sudo apt-get install libmysqlclient-dev sudo apt-get insta ...

  5. JS中常用的输出方式(五种)

    1.alert("要输出的内容"); ->在浏览器中弹出一个对话框,然后把要输出的内容展示出来 ->alert都是把要输出的内容首先转换为字符串然后在输出的 2.doc ...

  6. Yii Listview

  7. STL容器之map

    [1]map容器 map 是关联容器.容器中的每一个元素都是由一个键值和一个数据值组成的. set 是一个集合它以其元素作为键值(同一个键值只能出现一次),且默认以升序排列. list 是一个顺序容器 ...

  8. Java并发编程1--synchronized关键字用法详解

    1.synchronized的作用 首先synchronized可以修饰方法或代码块,可以保证同一时刻只有一个线程可以执行这个方法或代码块,从而达到同步的效果,同时可以保证共享变量的内存可见性 2.s ...

  9. 在Eclipse中创建Dynamic Web Project具有和MyEclipse中Web Project一样的目录结构

    1.在Eclipse中新建Dynamic Web Project 1.1.修改default output folder build\classes修改为:WebRoot\WEB-INF\classe ...

  10. Git 常用命令列表

    1 常用 $ git remote add origin git@github.com:yeszao/dofiler.git # 配置远程git版本库 $ git pull origin master ...