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


    在Android中使用启动脚本init.rc,可以在系统的初始化中进行简单的操作。

    init.rc启动脚本路径:system/core/rootdir/init.rc

    内容:

    • Commands:命令
    • Actions:动作
    • Triggers:触发条件
    • Services:服务
    • Options:选项
    • Properties:属性

    Commands是一些基本操作。如:

        mkdir /system
        mkdir /data 0771 system system
        mkdir /persist 0771 system system
        devwait /dev/block/mmcblk0p12
        mount ext3 /dev/block/mmcblk0p

    Action表示一系列命令,通常在Triggers中调用,如:


        on init           //表示一个触发条件

        sysclktz 0

        loglevel 3

        # setup the global environment
        export PATH /sbin:/system/sbin:/system/bin:/system/xbin
        export LD_LIBRARY_PATH /system/lib
        export ANDROID_BOOTLOGO 1

    Services通常表示启动一个可执行程序,Options是服务的附加内容,用于配合服务使用。

        service vold /system/bin/vold      //vold是服务名称,/system/bin/vold是所对应的可执行程序。
        socket vold stream 0660 root mount   //socket是配合服务使用的选项
        ioprio be 2

        service netd /system/bin/netd
        socket netd stream 0660 root system

    配合服务使用的选项有socket,user,group,oneshot。

    oneshot表示该服务只启动一次,而如果没有oneshot选项,这个可执行程序将一直存在——如果可执行程序被杀死,则会重新启动。

    Properties是系统中使用的一些值,可以进行设置和读写。

        setprop ro.HIDDEN_APP_MEM 5120         //setprop用于设置属性
        setprop ro.CONTENT_PROVIDER_MEM 5632
        setprop ro.EMPTY_APP_MEM 6144

        ...

        on property:ro.kernel.qemu=1       //on property用于判断属性
        start adbd

    这里的属性在整个android系统运行中都是一致的。

    init脚本的关键字可以参考init进程中的system/core/init/keyword.h文件。如:

    KEYWORD(chroot,      COMMAND, 1, do_chroot)     //chroot是命令,do_chroot()是调用的函数,这个函数在init进程中的system/core/init/builtins.c文件中定义。

    init.rc使用方法,见说明文件system/core/init/readme.txt

  • 相关阅读:
    超简单解释TCP、UDP、HTTP
    亲身经历面试题总结
    面试最让你手足无措的一个问题:你的系统如何支撑高并发?
    什么是hadoop,hadoop可以做什么
    在.net Core中如何使用HTML5上传视频
    2018很废的一年
    SQL合集
    ASP.NET CORE 基础配置、Linux发包
    SQL获取本周,上周,本月,上月的开始时间和结束时间
    C# net Emgu.CV.World 人脸识别 根据照片将人脸抠图出来。
  • 原文地址:https://www.cnblogs.com/senior-engineer/p/4848822.html
Copyright © 2020-2023  润新知