8 Star 7 Fork 133

OpenHarmony / startup_appspawn

加入 Gitee
与超过 800 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README_zh.md

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

简介

Appspawn module for spawning application processes | 应用孵化模块 展开 收起
C++ 等 3 种语言
Apache-2.0
取消

发行版

暂无发行版

OpenHarmony

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/openharmony/startup_appspawn.git
git@gitee.com:openharmony/startup_appspawn.git
openharmony
startup_appspawn
startup_appspawn
master

搜索帮助