appspawn应用孵化组件

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

appspawn注册的服务名称为“appspawn”,可通过包含“base\startup\appspawn_lite\services\include\appspawn_service.h“头文件,获取服务名称对应的宏APPSPAWN_SERVICE_NAME定义。在安全子系统限制规则下,目前仅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个。