startup_appspawn/README_zh.md
Zheng Yongjun e55a9a3d5a update README_zh.md
Signed-off-by: Zheng Yongjun <zhengyongjun3@huawei.com>
2022-07-11 10:08:49 +08:00

3.8 KiB
Raw Blame History

appspawn应用孵化器组件

简介

应用孵化器,负责接受应用程序框架的命令孵化应用进程,设置其对应权限,并调用应用程序框架的入口。

其主要的结构及流程如下图所示:

目录

base/startup/appspawn_standard
├─adapter                # 适配外部依赖
│  └─sysevent            # 系统事件管理
├─common                 # 通用代码
├─etc
├─figures
├─interfaces             # 应用孵化器组件头文件以及对外接口
│  └─innerkits
│      ├─client          # 应用孵化器客户端源码
│      └─include         # 应用孵化器头文件
├─lite                   # 小型系统应用孵化器源码
├─standard               # 标准系统应用孵化器源码
├─test                   # 应用孵化器组件测试源码
└─util
    ├─include            # 应用孵化器工具类头文件
    └─src                # 应用孵化器工具类源码, 含json处理库及应用沙箱实现源码

使用说明

小型系统

appspawn被init启动后向IPC框架注册服务名称之后等待接收进程间消息根据消息解析结果启动应用服务并赋予其对应权限。

appspawn注册的服务名称为“appspawn”在安全子系统限制规则下目前仅Ability Manager Service有权限可以向appspawn发送的进程间消息。

appspawn接收的消息为json格式如下所示

"{"bundleName":"testvalid1","identityID":"1234","uID":1000,"gID":1000,"capability":[0]}"

表 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获取渲染终止状态。

限制与约束

仅支持小型系统和标准系统。

相关仓

startup_syspara_lite

startup_appspawn

startup_bootstrap_lite

startup_init_lite