startup_appspawn/README_zh.md

86 lines
3.8 KiB
Markdown
Raw Normal View History

2021-06-01 16:04:01 +00:00
# appspawn应用孵化器组件
## 简介
应用孵化器,负责接受应用程序框架的命令孵化应用进程,设置其对应权限,并调用应用程序框架的入口。
其主要的结构及流程如下图所示:
![](figures/appspawn.png)
## 目录
```
base/startup/appspawn_standard
├─adapter # 适配外部依赖
│ └─sysevent # 系统事件管理
├─common # 通用代码
├─etc
├─figures
├─interfaces # 应用孵化器组件头文件以及对外接口
│ └─innerkits
│ ├─client # 应用孵化器客户端源码
│ └─include # 应用孵化器头文件
├─lite # 小型系统应用孵化器源码
├─standard # 标准系统应用孵化器源码
├─test # 应用孵化器组件测试源码
└─util
├─include # 应用孵化器工具类头文件
└─src # 应用孵化器工具类源码, 含json处理库及应用沙箱实现源码
2021-06-01 16:04:01 +00:00
```
## 使用说明
### 小型系统
appspawn被init启动后向IPC框架注册服务名称之后等待接收进程间消息根据消息解析结果启动应用服务并赋予其对应权限。
appspawn注册的服务名称为“appspawn”在安全子系统限制规则下目前仅Ability Manager Service有权限可以向appspawn发送的进程间消息。
2021-06-01 16:04:01 +00:00
appspawn接收的消息为json格式如下所示
```
"{"bundleName":"testvalid1","identityID":"1234","uID":1000,"gID":1000,"capability":[0]}"
```
2021-06-01 16:04:01 +00:00
**表 1** 小型系统字段说明
| 字段名 | 说明 |
| -------- | -------- |
| bundleName | 即将启动的应用程序包名长度≥7字节≤127字节。 |
| identityID | AMS为新进程生成的标识符由appspawn透传给新进程长度≥1字节≤24字节。 |
| uID | 即将启动的应用服务进程的uID。 |
| gID | 即将启动的应用服务进程的gID。 |
| capability | 即将启动的应用服务进程所需的capability权限数量≤10个。 |
### 标准系统
appspawn注册的服务名称为“appspawn”。appspawn 通过监听本地socket接收来自客户端的请求消息。
**表 2** 标准系统字段说明
| 字段名 | 说明 |
| -------- | -------- |
| processName | 即将启动的应用服务进程名最大256字节。 |
| bundleName | 即将启动的应用程序包名最大256字节。 |
| soPath | 即应用程序指定的动态库的路径最大256字节。 |
| uid | 即将启动的应用进程的uid。 |
| gid | 即将启动的应用进程的gid。 |
| gidTable | 即将启动的应用进程组信息长度由gidCount指定最大支持64个进程组必须为正值。 |
| gidCount | 即将启动的应用进程组个数。 |
| accessTokenId | 即应用进程权限控制的token id。 |
| apl | 即应用进程权限控制的apl最大32字节. |
| renderCmd | 即图形图像渲染命令, 最大1024字节。 |
| flags | 启动标志位, 目前包含冷启动标志位DLP应用标志位备份恢复标志位。 |
| index | 临时沙箱index |
| pid | 即渲染进程pid查询渲染进程退出状态。 |
| AppOperateType | 即App操作类型0 默认状态; 1获取渲染终止状态。 |
## 限制与约束
仅支持小型系统和标准系统。
2021-06-01 16:04:01 +00:00
## 相关仓
[startup\_syspara\_lite](https://gitee.com/openharmony/startup_syspara_lite/blob/master/README_zh.md)
2021-06-01 16:04:01 +00:00
**[startup_appspawn](https://gitee.com/openharmony/startup_appspawn/blob/master/README_zh.md)**
[startup\_bootstrap\_lite](https://gitee.com/openharmony/startup_bootstrap_lite/blob/master/README_zh.md)
[startup\_init\_lite](https://gitee.com/openharmony/startup_init_lite/blob/master/README_zh.md)