本文转载自: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. mybatis batchinsert

    <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-/ ...

  2. clear/reset select2,重置select2,恢复默认

    4.0 version //方法一$('#yourButton').on('click', function() { $('#yourfirstSelect2').val(null).trigger( ...

  3. linux中截取文件的特定字节(去掉utf-8 bom头)

    事出有因,之所以要截取特定字节,是为了给utf-8编码的文件去掉bom头. bom头好去啊,notepad++文本编辑器中就有这个功能啊.可是,问题所在是要编辑的文件太大了,300MB,小电脑卡shi ...

  4. URL Resources

    Prezi 1. 官网   https://prezi.com/ 2. 入门教程   https://wenku.baidu.com/view/9bb234ac0029bd64783e2c6b.htm ...

  5. uva 10369 Arctic Network

    题意: 有许多基地,每个基地都有两种收发信号的方式,一种是通过无线电收发机,另一种是通过卫星.两个基地之间可以通过卫星交流不管它们相距多远:但是通过无线电交流,就要求它们的距离不超过D.为了方便布置, ...

  6. 【Hbase学习之五】HBase MapReduce

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-2.6.5 hbase-0.98.12.1-h ...

  7. JDK8 元空间

    1. 运行时常量池和静态变量都存储到了堆中,MetaSpace存储类的元数据,MetaSpace直接申请在本地内存中(Native memory),这样类的元数据分配只受本地内存大小的限制,OOM问题 ...

  8. 单台主机上DB2 10.5和arcgis 10.4 空间数据库配置

    该篇文章重点参考arcgis官网说明:http://enterprise.arcgis.com/zh-cn/server/10.4/publish-services/linux/register-db ...

  9. jenkins2

    创建工程 Eclipse创建工程:注意工程的路径,不是/home/svn,这个是svn的根目录. 是工程上传的路径,Apple直接下面有pom文件. 创建工程,创建一个任务就是创建一个工程. 需要注意 ...

  10. JustOj 1386: 众数的数量

    题目链接:http://oj.jxust.edu.cn/problem.php?id=1386 题目描述 qwn和Q伟N最近沉迷于Battle of Balls,天天翘课玩游戏.因为Q伟N太坑了,所以 ...