diff --git a/zh-cn/device-dev/subsystems/subsys-boot-init-service.md b/zh-cn/device-dev/subsystems/subsys-boot-init-service.md index 65dd5a51b14e8b89510ad2677d03fef6ea92082b..06609ac01ac8ad1418aa604c4cf31f5adc830635 100644 --- a/zh-cn/device-dev/subsystems/subsys-boot-init-service.md +++ b/zh-cn/device-dev/subsystems/subsys-boot-init-service.md @@ -162,7 +162,21 @@ | int ServiceSetReady(const char *serviceName) | 设置服务准备 | 返回值:成功返回0,失败返回-1
参数:
serviceName: 服务名 | | int StartServiceByTimer(const char *serviceName, uint64_t timeout) | 定时启动服务 | 返回值:成功返回0,失败返回-1
参数:
serviceName: 服务名
timeout: 超时时间 | | int StopServiceTimer(const char *serviceName) | 停止服务计时器 | 返回值:成功返回0,失败返回-1
参数:
serviceName: 服务名 | +- 服务控制接口的DAC配置 + 服务控制接口配置DAC,需要修改文件https://gitee.com/openharmony/startup_init_lite/blob/master/services/etc/group,在组servicectrl中添加对应的用户id,例如: + + ```java + servicectrl:x:1050:root,shell,system,samgr,hdf_devmgr + ``` +- 注意 + + int DoReboot(const char *cmdContent) 接口配置DAC,需要修改文件https://gitee.com/openharmony/startup_init_lite/blob/master/services/etc/group,在组powerctrl中添加对应的用户id,例如: + + ```java + powerctrl:x:1051:root,shell,system,update,power_host + ``` + ### 开发步骤 此处以要新增一个名为MySystemApp的系统服务为例进行说明,使用如下配置: diff --git a/zh-cn/device-dev/subsystems/subsys-boot-init-sysparam.md b/zh-cn/device-dev/subsystems/subsys-boot-init-sysparam.md index 98f6cc4ed4c047fad2c8397f754c3ec306c1a9d4..7d0ce448629020702caf8fb19d69f0d1626004c6 100644 --- a/zh-cn/device-dev/subsystems/subsys-boot-init-sysparam.md +++ b/zh-cn/device-dev/subsystems/subsys-boot-init-sysparam.md @@ -98,6 +98,62 @@ OHOS系统参数为各系统服务提供简单易用的键值对访问接口, ![UGO规则信息](figures/系统参数DAC.png) +- 系统参数配置selinux策略 + + a、添加selinux标签 + + 为系统参数添加selinux标签,首先需要先在文件parameter.te中定义标签,例如: + + ```java + type servicectrl_param, parameter_attr + ``` + + 标签定义完成后,在文件parameter_contexts中添加标签,这里以ohos.servicectrl.开始的系统参数为例: + + ```java + ohos.servicectrl. u:object_r:servicectrl_param:s0 + ``` + + b、如果需要给init授权,允许map等操作,可以在对应子系统中加init.te,并补充下面内容: + + ```java + allow servicectrl_param tmpfs:filesystem associate; + ``` + + ```java + allow init servicectrl_param:file { map open read relabelto relabelfrom }; + ``` + + c、设置写权限,这里允许init samgr hdf_devmgr 进行系统参数写。 + + ```java + allow { init samgr hdf_devmgr } servicectrl_param:parameter_service { set }; + ``` + + d、设置读权限: + + ```java + allow { xxx } servicectrl_param:file { map open read }; + ``` + + 如果全部允许,也可以设置: + + ```java + allow { domain -limit_domain } servicectrl_param:file { map open read }; + ``` + +- 建议: + + 各个子系统只保留两个系统参数标签: + + 一个私有,用来控制系统参数设置 + + 一个公有,允许所有服务进行访问 + +- 注意: + + 当前不允许hap包访问ohos.boot.sn属性 + - 默认参数加载 系统参数的加载顺序如下: @@ -111,6 +167,20 @@ OHOS系统参数为各系统服务提供简单易用的键值对访问接口, | system参数 | /system/etc/param/*.para | 加载各子系统定义的参数参数。如果系统参数已经存在,则忽略掉。 | | persist参数 | /data/parameters/ | 如果持久化参数存在,则最后加载持久化系统参数。持久化系统参数会覆盖加载的默认系统参数。 | +#### 系统参数标签文件大小配置 + +如果标签对应的系统参数个数多,超过5条时,需要配置系统参数标签文件的大小,默认大小(512),配置文件 https://gitee.com/openharmony/startup_init_lite/blob/master/services/etc/param/ohos.para.size + +配置规则: + +系统参数标签=大小 + +例如: + +```java +startup_init_param=40960 +``` + ### 约束与限制 仅限小型系统、标准系统下使用。