未验证 提交 7e0a2b1b 编写于 作者: O openharmony_ci 提交者: Gitee

!9237 FIX: 补充system说明

Merge pull request !9237 from cheng_jinsong/0907_sysparam
......@@ -66,7 +66,7 @@
支持通过aa命令冷启动应用。
```
param set appspawn.cold.boot true // 打开冷启动开关
param set startup.appspawn.cold.boot 1 // 打开冷启动开关
aa start -d 12345 -a $name -b $package -C
参考:
aa start -d 12345 -a ohos.acts.startup.sysparam.function.MainAbility -b ohos.acts.startup.sysparam.function -C
......@@ -169,5 +169,5 @@
<br>&emsp;&emsp;通过命令冷启动应用, 应用拉起失败。
&emsp;**解决方法**
<br>&emsp;&emsp;1. 需要设置 param set appspawn.cold.boot true生效。
<br>&emsp;&emsp;1. 需要设置 param set startup.appspawn.cold.boot 1生效。
<br>&emsp;&emsp;2. 确认冷启动命令是否正确。
\ No newline at end of file
......@@ -162,6 +162,21 @@
| int ServiceSetReady(const char *serviceName) | 设置服务准备 | 返回值:成功返回0,失败返回-1 <br> 参数:<br> serviceName: 服务名 |
| int StartServiceByTimer(const char *serviceName, uint64_t timeout) | 定时启动服务 | 返回值:成功返回0,失败返回-1 <br> 参数: <br> serviceName: 服务名 <br> timeout: 超时时间 |
| int StopServiceTimer(const char *serviceName) | 停止服务计时器 | 返回值:成功返回0,失败返回-1 <br> 参数:<br> serviceName: 服务名 |
- 服务控制接口的DAC配置
服务控制接口配置DAC,需要修改/base/startup/init/services/etc/group文件,在组servicectrl中添加对应的用户id,例如:
```java
servicectrl:x:1050:root,shell,system,samgr,hdf_devmgr
```
- 服务控制接口的selinux配置
服务控制接口配置selinux,需要在init.te文件中添加该服务接口所需要的selinux权限,例如为init、samgr、hdf_devmgr等服务配置系统参数写权限:
```java
allow { init samgr hdf_devmgr } servicectrl_param:parameter_service { set };
```
### 开发步骤
此处以要新增一个名为MySystemApp的系统服务为例进行说明,使用如下配置:
......
......@@ -98,6 +98,55 @@ OHOS系统参数为各系统服务提供简单易用的键值对访问接口,
![UGO规则信息](figures/系统参数DAC.png)
- 系统参数配置selinux策略
- 添加selinux标签
为系统参数添加selinux标签,首先需要在文件/base/security/selinux/sepolicy/base/public/parameter.te中定义标签,例如:
```java
type servicectrl_param, parameter_attr
```
标签定义完成后,在文件/base/security/selinux/sepolicy/base/public/parameter_contexts中添加和标签关联的系统参数前缀,这里以前缀ohos.servicectrl.为例:
```java
ohos.servicectrl. u:object_r:servicectrl_param:s0
```
- 给init授权,允许map等操作,在文件/base/security/selinux/sepolicy/ohos_policy/startup/init/public/init.te中补充下面内容:
```java
allow servicectrl_param tmpfs:filesystem associate;
allow init servicectrl_param:file { map open read relabelto relabelfrom };
```
- 设置写权限,这里允许init samgr hdf_devmgr 进行系统参数写:
```java
allow { init samgr hdf_devmgr } servicectrl_param:parameter_service { set };
```
- 设置读权限,如果只允许部分进程访问可单独对该进程授权:
```java
allow { xxx } servicectrl_param:file { map open read };
```
- 如果全部允许,则设置为:
```java
allow { domain -limit_domain } servicectrl_param:file { map open read };
```
- 建议:
各个子系统只保留两个系统参数标签:
一个私有,用来控制系统参数设置
一个公有,允许所有服务进行访问
- 默认参数加载
系统参数的加载顺序如下:
......@@ -111,6 +160,20 @@ OHOS系统参数为各系统服务提供简单易用的键值对访问接口,
| system参数 | /system/etc/param/*.para | 加载各子系统定义的参数参数。如果系统参数已经存在,则忽略掉。 |
| persist参数 | /data/parameters/ | 如果持久化参数存在,则最后加载持久化系统参数。持久化系统参数会覆盖加载的默认系统参数。 |
#### 系统参数标签文件大小配置
如果标签对应的系统参数个数多,超过5条时,需要配置系统参数标签文件的大小,默认大小(512),配置文件为/base/startup/init/services/etc/param/ohos.para.size
配置规则:
系统参数标签=大小
例如:
```java
startup_init_param=40960
```
### 约束与限制
仅限小型系统、标准系统下使用。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册