android-init.rc语法

init.rc

在 Android 系统中,init.rc 文件是一个非常重要的文件,它定义了系统引导过程中需要执行的初始化和配置命令。

init.rc源码路径

系统(System)级别的 init.rc:system/core/rootdir/init.rc
供应商(Vendor)级别的 init.rc:vendor/<vendor_name>/<device_name>/init.rc
								device/<vendor_name>/<device_name>/init.rc

init.rc文件系统路径

系统(System)级别的 init.rc:/system/etc/init/hw/init.rc
供应商(Vendor)级别的 init.rc:/vendor/etc/init/hw/init.rc

init.rc语法

Action语法:
	on <trigger> [&& <trigger>]* 	 //触发条件
 		<command>  				//执行命令
 		<command>  				//执行命令
Command语法:
	setenforce 0|1
Service语法:
	service <name> <pathname> [ <argument> ]*	//<service名字><执行程序路径><传递参数>
 		<option>
Option语法:
	critical:这是十分关键的服务。如果在四分钟内退出超过四次,手机将会重启并进入recovery模式。
	disabled:这种类型的服务不会自动启动。它必须明确的使用名字启动。
	setenv <name> <value>:设置环境变量<name>=<value>在加载的进程中。
	socket <name> <type> <perm> [ <user> [ <group> [ <context> ] ] ]:创建一个名为/dev/socket/<name>的UNIX域socket并将fd传递到加载的进程中。
	<type>必须是"dgram", "stream", "seqpacket"中的一种。
	<user>和<group>默认为0.
	<context>是 SELinux socket 安全上下文,默认为service安全级别,可以指定为seclabel或根据service的可执行文件的安全级别计算。
	user <username>在执行该service前改变用户名,默认为root。如果你的进程请求Linux的特殊能力,就不要用这个命令。需以进入进程仍是root->请求特权->切换到你期望的uid来替换此法。
	group <groupname> [ <groupname> ]*在执行该service前改变组名。第一个以后的附加组名用于设定进程的附加组(通过setgroups())。当前默认是root。
	seclabel <securitycontext>:在执行服务之前改变安全级别。主要用于从rootfs执行服务,比如ueventd, adbd. 在system分区上可以用基于文件安全级别的策略定义的transition,如果没有指定且没有定义策略的transition,默认是init上下文。
	oneshot:退出不重启服务(名副其实,一次性)。
	class <name>:为一service指定一个类名,所有有相同类名的service可以一同启动或停止。如果没有用class选项指定类名,该service属于"default"。
	onrestart:在service重启的时候执行。
  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Paper_Love

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值