zoukankan      html  css  js  c++  java
  • android init.rc详解

    来源:http://hi.baidu.com/donghaozheng/blog/item/e2f5045577cb73c8b645aec0.html

    摘自《Android系统原理及开发要点详解》

        在 Android中的启动脚本init.rc,可以在系统的初始化过程中进行一些简单的初始化操作。这个脚本被直接安装到目标系统的根文件系统中,被 init可执行程序解析。 init.rc是在init启动后被执行的启动脚本,其语法主要包含了以下内容:

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

    (1) Commands是一些基本的操作,例如:
        mkdir /sdcard 0000 system system
        mkdir /system
        mkdir /data 0771 system system
        mkdir /cache 0770 system cache
        mkdir /config 0500 root root
        mkdir /sqlite_stmt_journals 01777 root root
        mount tmpfs tmpfs /sqlite_stmt_journals size=4m
    这些命令在init可执行程序中被解析,然后调用相关的函数来实现。

    (2) Actions(动作)表示一系列的命令,通常在Triggers(触发条件)中调用,动作和触发条件的形式为:
       on <trigger>
          <command>
          <command>
          <command>
    示例如下:
       on init
     //init是触发条件,触发后,export和mkdir作为一个动作Action 
       export PATH /sbin:/system/sbin:/system/bin:/system/xbin //设置环境变量
       mkdir /system                                           //建立目录

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

    service vold /system/bin/vold 
        socket vold stream 0660 root mount

    service bootsound /system/bin/playmp3
        user media
        group audio
        oneshot

    vold和bootsound分别是两个服务的名称,/system/bin/vold和/system /bin/playmp3分别是他们所对应的可执行程序。
    socket、user、group、oneshot就是配合服务使用的选项。其中oneshot选项表示该服务只启动一次,而如果没有oneshot选项,这个可执行程序会一直存在--如果可执行程序被杀死,则会重新启动。

    (4) Properties(属性)是系统中使用的一些值,可以进行设置和读取。

        setprop ro.FOREGROUND_APP_MEM 1536
        setprop ro.VISIBLE_APP_MEM 2048
        on property:ro.kernel.qemu=1
        start adbd
    setprop 用于设置属性,on property可以用于判断属性,这里的属性在整个Android系统运行中都是一致的。

    init脚本的关键字可以参考init进程的system/core/init/keyword.h文件。
    init.rc的使用方法,可以参考说明文件system/core/init/readme.txt

    如果想要修改启动过程只需要修改init.c(system/core/init)或者init.rc里的内容即可.

  • 相关阅读:
    数组模拟链表
    高精度模板
    利用二分法求三次方根
    AcWing 789.数的范围
    二进制中1的个数
    AcWing 787.归并排序
    微信小程序form表单的bindsubmit提交没有效果
    本地项目如果上传到GitHub上
    微信小程序生成随机数
    CSS3 Filter的十种特效
  • 原文地址:https://www.cnblogs.com/rzq232/p/2836934.html
Copyright © 2011-2022 走看看