init.rc语法

1.init时设置设备权限

init可执行文件是Android系统运行的第一个用户空间的程序,它以守护进程的方式运行

2. init.rc中的内容

Android中使用启动脚本init.rc,init启动脚本路径:system/core/rootdir/init.rc可以在系统的初始化过程中进行一些简单的初始化操作,init.rc脚本被直接安装到目标系统的根文件系统中,被init可执行程序解析

init.rc是在init启动后被执行的启动脚本,其语法主要包含了以下的内容:

commands:命令

actions:动作

triggers:触发条件

services:服务

options:选项

properties:属性

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

commands:命令是一些基本的操作

export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin

mount yaffs2 mtd@system /system

mount yaffs2 mtd@system /system ro remount

mount yaffs2 mtd@userdata /data nosuid nodev

mount yaffs2 mtd@cache /cache nosuid nodev

这些命令在init可执行程序中被解析,然后调用相关的函数来实现

Actions:动作,表示一系列的命令,通常在triggers触发条件中调用,动作和触发条件的形式

on  <trigger>

<command>

on init

export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin

init表示一个触发条件初始化过程,在这个触发事件发生后,进行设置环境变量和建立目录的操作称为一个动作

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

在启动脚本中,属性的使用如下所示

setprop ro.FOREGROUND_APP_MEM 2048

setprop ro.VISIBLE_APP_MEM 3072

on property:ro.secure=0

start console

on property可以用于判断属性,这里的属性在整个Android系统运行中都是一致的。

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

例如,启动电话的进程ril-daemon和开机动画的服务

service ril-daemon /system/bin/rild

    socket rild stream 660 root radio

    socket rild-debug stream 660 radio system

    user root

group radio cache inet misc audio sdcard_rw

service bootanim /system/bin/bootanimation

    user graphics

    group graphics

    disabled

    oneshot

ril-daemonbootaim表示服务的名称,/system/bin/rildsystem/bin/bootanimation表示服务所需要执行的可执行程序的路径。

oneshot选项表示该服务只启动一次,而如果没有oneshot选项,这个可执行程序会一直存在,如果可执行程序被杀死,则会重新启动,ril-daemon是一个守护进程,如果退出,需要重新启动,因此没有使用oneshot; bootaim开机动画,只执行一次,因此加上了oneshot.

你可能感兴趣的:(init.rc语法)