• 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设备屏幕分辨率与适配
    【面向对象设计模式】 适配器模式 (二)
    重构 之 总结代码的坏味道 Bad Smell (一) 重复代码 过长函数 过大的类 过长参数列 发散式变化 霰弹式修改
    【Android 应用开发】Android资源文件
    java 创建并写入文件
    隐藏 HttpClient 在console的日志
    HOW TO CHANGE THE DEFAULT KEY-VALUE SEPARATOR OF A MAPREDUCE JOB
    java 时间戳转换
  • 原文地址:https://www.cnblogs.com/zzb-Dream-90Time/p/10199637.html
Copyright © 2020-2023  润新知