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 也可以直接使用自己的。



更多相关文章

  1. MPlayer往Android上的移植(1)
  2. Android实战技巧之五十一:libjpeg与Android
  3. Android(安卓)Studio下导出jar包和aar包
  4. Android(安卓)solve设备(手机)旋转过程中出现程序中断问题
  5. android jni 的编写一(JNI的静态注册)
  6. Android(安卓)下用 Pull 解析和生成 XML
  7. Android使用JNI生成.so文件并调用(使用传统生成.h的方法)
  8. Android(安卓)so 文件进阶 从dlsym()源码看android 动态链接过程
  9. 记录一下我的Android学习过程-第一课

随机推荐

  1. 分享两种最简单的Android打渠道包的方法
  2. 如何监控android的流量信息
  3. Android 程序适应多种多分辨率
  4. Android IPC原理分析小结
  5. Android java与html js交互 html视频播放
  6. android的图形系统
  7. 我的android第一课
  8. 4.0、Android(安卓)Studio配置你的构建
  9. 如何搭建简易蓝牙定位系统
  10. Android资源String中html标签的使用