android 6 中init.rc的生成过程【转】
本文转载自: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的生成过程【转】的更多相关文章
- init进程 && 解析Android启动脚本init.rc && 修改它使不启动android && init.rc中启动一个sh文件
Android启动后,系统执行的第一个进程是一个名称为init 的可执行程序.提供了以下的功能:设备管理.解析启动脚本.执行基本的功能.启动各种服务.代码的路径:system/core/init,编译 ...
- Android如何配置init.rc中的开机启动进程(service)【转】
本文转载自:http://blog.csdn.net/qq_28899635/article/details/56289063 开篇:为什么写这篇文章 先说下我自己的情况,我是个普通的大四学生,之前在 ...
- android中init.rc文件的解析问题
init.rc中文件里会通过import /init.${ro.hardware}.rc文件,这个ro.hardware应该是某个详细的属性.而这个ro.hardware赋值应该是在Init进程中赋值 ...
- Android启动脚本init.rc(2)
在Android中使用启动脚本init.rc,可以在系统的初始化中进行简单的操作. init.rc启动脚本路径:system/core/rootdir/init.rc 内容: Commands:命令 ...
- Android启动脚本init.rc说明文档readme.txt翻译
Android Init Language--------------------- Android初始化语言--------------------- The Android Init Langua ...
- Android init.rc解析【转】
转自:http://www.linuxidc.com/Linux/2014-10/108438.htm 本文主要来自$Android_SOURCE/system/init/readme.txt的翻译. ...
- Android中的 init.rc文件简介
init.rc脚本是由Android中linux的第一个用户级进程init进行解析的. init.rc 文件并不是普通的配置文件,而是由一种被称为"Android初始化语言"(An ...
- Android: 启动init.rc 中service的权限问题【转】
转自:http://www.linuxidc.com/Linux/2011-04/35014.htm 通过property_set("ctl.start", service_xx) ...
- Android 重定向 init.rc中服务的输出
在init.rc中运行的服务,由于系统启动的时候将标准输出重定向到了/dev/null, 所以服务中的打印信息都不可见. 但调试时可能需要看到其中的打印信息,因此就有了logwrapper这个工具:l ...
随机推荐
- ssh整合not found class 异常总结
(1)org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.microsoft.sqls ...
- Python 模型定义 :通过pymysql和数据模型(models.py)创建mysql表及表结构
一.model的配置 1.创建数据库 2.安装pymysql 3.修改配置文件 数据库连接配置 DATABASES = { 'default': { 'ENGINE': 'django.db.back ...
- linux 中的screen出现cannot find terminfo entry 的错误
事情的起因: 本地使用urxvt terminal ,使用ssh方式远程登录服务器,远程在服务器端执行screen命令,然后就出现了cannot find terminfo entry的错误. 解决方 ...
- [9]Windows内核情景分析 --- DPC
DPC不同APC,DPC的全名是'延迟过程调用'. DPC最初作用是设计为中断服务程序的一部分.因为每次触发中断,都会关中断,然后执行中断服务例程.由于关中断了,所以中断服务例程必须短小精悍,不能消耗 ...
- 【转】SQL Server 运行状况监控SQL语句
SQL Server 运行状况监控SQL语句 Microsoft SQL Server 2005 提供了一些工具来监控数据库.方法之一是动态管理视图.动态管理视图 (DMV) 和动态管理函数 (D ...
- linux常用命令:ls命令
ls命令是linux下最常用的命令.ls命令就是list的缩写,缺省下ls用来打印出当前目录的清单,如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单. 通过ls 命令不仅可以查看linux ...
- flask渲染模板时报错TypeError: 'UnboundField' object is not callable
渲染模板时,访问页面提示TypeError: 'UnboundField' object is not callable 检查代码,发现实例化表单类是,没有加括号:form = NewNoteForm ...
- python深拷贝和浅拷贝的区别
首先深拷贝和浅拷贝都是对象的拷贝,都会生成一个看起来相同的对象,他们本质的区别是拷贝出来的对象的地址是否和原对象一样,也就是地址的复制还是值的复制的区别. 什么是可变对象,什么是不可变对象: 可变对象 ...
- RocketMQ 问题汇总
1. rocketMQ安装: 编译完成以后准备启动项目,注意:bin的位置是编译后target目录下,启动命令在这里. linux命令目录:你的目录/rocketmq-all-4.2.0/distri ...
- PNG文件格式详解
源文件地址:https://blog.mythsman.com/2015/12/08/1/ 最近在看隐写术的时候经常需要研究图片文件的二进制文档格式,那么这就很有必要了解我们的图片文件究竟是如何保存的 ...