• Home
Name Date Size #Lines LOC

..--

common/12-May-2024-1,6261,028

figures/12-May-2024-

interfaces/innerkits/12-May-2024-21,85815,618

kits/appkit/napi/12-May-2024-9,8618,575

libs/12-May-2024-9,4195,497

sa_profile/12-May-2024-211181

services/12-May-2024-50,92538,286

test/12-May-2024-28,71720,521

tools/12-May-2024-11,0217,629

.gitattributesD12-May-20241

LICENSED12-May-202410.1 KiB177150

OAT.xmlD12-May-20244 KiB7016

README_zh.mdD12-May-20247.5 KiB181158

appexecfwk.gniD12-May-20241,004 2623

bundle.jsonD12-May-20244.2 KiB103103

README_zh.md

1# **包管理子系统**
2
3## 简介
4
5包管理子系统负责应用安装包的管理,提供安装包的信息查询、安装、更新、卸载和包信息存储等能力。具体功能如下:
6
7包管理子系统架构如下图所示:
8
9![](figures/appexecfwk.png)
10
11
12## 部件内子模块职责
13
14| 子模块名称       | 职责                                                         |
15| ---------------- | ------------------------------------------------------------ |
16| 包管理接口模块   | 1.对外提供的安装更新卸载及通知接口;<br>2.对外提供的包/组件信息/权限信息查询接口;<br>3.对外提供的应用权限查询接口;<br>4.对外提供的清除数据的接口; |
17| 扫描模块         | 1.预置应用的扫描;<br>2.已安装三方应用的扫描;<br>3.包配置文件的解析; |
18| 安全管理模块     | 1.安装过程中的签名校验;<br>2.安装过程中应用所申请权限的授予;<br>3.应用运行中权限的校验; |
19| DBMS模块         | 1.获取指定设备ability信息;                                  |
20| 安装管理模块     | 1.安装、更新、卸载逻辑处理及结果通知;                       |
21| 包信息管理模块   | 1.包信息、组件信息的存储及同步;                             |
22| 设备状态监听模块 | 1.监听设备的上下线;                                         |
23| Installd模块     | 特权进程:<br>1)用于创建、删除等目录操作;<br>2)用于创建、删除等文件操作;<br>3)用于设备目录的沙箱uid/gid等操作 |
24| DFX              | 1.包管理维测工具                                               |
25
26
27## 目录
28
29```
30foundation/appexecfwk/standard
31├── kits
32│   └── appkit						   # Appkit实现的核心代码
33├── common
34│   └── log							   # 日志组件目录
35├── interfaces
36│   └── innerkits					   # 内部接口存放目录
37├── services
38│   └── bundlemgr	                   # 包管理服务框架代码
39│   └── dbms	                       # 分布式包管理服务框架代码
40├── test						       # 测试目录
41└── tools                              # bm命令存放目录
42```
43
44### bm工具命令
45bm是用来方便开发者调试的一个工具。bm工具被hdc工具封装,进入hdc shell命令后,就可以使用bm工具。
46| 命令    | 描述       |
47| ------- | ---------- |
48|  help | 帮助命令,显示bm支持的命令信息 |
49| install | 安装命令,用来安装应用|
50| uninstall | 卸载命令,用来卸载应用|
51| dump | 查询命令,用来查询应用的相关信息|
52| clean | 清理命令,用来清理应用的缓存和数据 |
53| enable | 使能命令,用来使能应用 |
54| disable | 禁用命令,用来禁用应用 |
55| get | 获取udid命令,用来获取设备的udid |
56#### 帮助命令
57| 命令    | 描述       |
58| ------- | ---------- |
59| bm help | 显示bm工具的能够支持的命令信息 |
60
61* 示例
62```Bash
63# 显示帮助信息
64bm help
65```
66#### 安装命令
67命令可以组合,下面列出部分命令。
68| 命令                                | 描述                       |
69| ----------------------------------- | -------------------------- |
70| bm install -h | 显示install支持的命令信息 |
71| bm install -p <hap-file-path>    | 安装hap包,支持指定路径和多个hap同时安装 |
72| bm install -p <hap-file-path> -u <user-id>   |给指定用户安装一个hap包 |
73| bm install -r -p <hap-file-path> | 覆盖安装一个hap包 |
74| bm install -r -p <hap-file-path> -u <user-id> | 给指定用户覆盖安装一个hap包 |
75
76* 示例
77```Bash
78# 安装一个hap
79bm install -p /data/app/ohosapp.hap
80# 覆盖安装一个hap
81bm install -p /data/app/ohosapp.hap -r
82```
83#### 卸载命令
84命令可以组合,下面列出部分命令。-u未指定情况下,默认为所有用户。
85| 命令                          | 描述                     |
86| ----------------------------- | ------------------------ |
87| bm uninstall -h | 显示uninstall支持的命令信息 |
88| bm uninstall -n <bundle-name> | 通过指定包名卸载应用 |
89| bm uninstall -n <bundle-name> -u <user-id>| 通过指定包名和用户卸载应用 |
90| bm uninstall -n <bundle-name> -m <moudle-name> | 通过指定包名卸载应用的一个模块 |
91
92* 示例
93```Bash
94# 卸载一个hap
95bm uninstall -n com.ohos.app
96# 卸载一个hap下面的ability
97bm uninstall -n com.ohos.app -m com.ohos.app.MainAbility
98```
99#### 查询命令
100命令可以组合,下面列出部分命令。-u未指定情况下,默认为所有用户。
101| 命令       | 描述                       |
102| ---------- | -------------------------- |
103| bm dump -h | 显示dump支持的命令信息 |
104| bm dump -a | 查询系统已经安装的所有应用 |
105| bm dump -i | 查询系统已经安装的所有应用的详细信息 |
106| bm dump -n <bundle-name> | 查询指定包名的详细信息 |
107| bm dump -n <bundle-name> -s | 查询指定包名下的快捷方式信息 |
108| bm dump -n <bundle-name> -d <device-id> | 跨设备查询包信息 |
109| bm dump -n <bundle-name> -u <user-id> | 查询指定用户下指定包名的详细信息 |
110
111* 示例
112```Bash
113# 显示所有已安装的包名
114bm dump -a
115# 显示该应用的详细信息
116bm dump -n com.ohos.app
117```
118#### 清理命令
119-u未指定情况下,默认为当前活跃用户。
120| 命令       | 描述                       |
121| ---------- | -------------------------- |
122| bm clean -h | 显示clean支持的命令信息 |
123| bm clean -n <bundle-name> -c | 清除指定包名的缓存数据 |
124| bm clean -n <bundle-name> -d | 清除指定包名的数据目录 |
125| bm clean -n <bundle-name> -c -u <user-id> | 清除指定用户下包名的缓存数据 |
126| bm clean -n <bundle-name> -d -u <user-id> | 清除指定用户下包名的数据目录 |
127
128* 示例
129```Bash
130# 清理该应用下的缓存数据
131bm clean -n com.ohos.app -c
132# 清理该应用下的用户数据
133bm clean -n com.ohos.app -d
134```
135#### 使能命令
136-u未指定情况下,默认为当前活跃用户。
137| 命令       | 描述                       |
138| ---------- | -------------------------- |
139| bm enable -h | 显示enable支持的命令信息 |
140| bm enable -n <bundle-name> | 使能指定包名的应用 |
141| bm enable -n <bundle-name> -a <ability-name> | 使能指定包名下的元能力模块 |
142| bm enable -n <bundle-name> -u <user-id>| 使能指定用户和包名的应用 |
143
144* 示例
145```Bash
146# 使能该应用
147bm enable -n com.ohos.app
148```
149#### 禁用命令
150-u未指定情况下,默认为当前活跃用户。
151| 命令       | 描述                       |
152| ---------- | -------------------------- |
153| bm disable -h | 显示disable支持的命令信息 |
154| bm disable -n <bundle-name> | 禁用指定包名的应用 |
155| bm disable -n <bundle-name> -a <ability-name> | 禁用指定包名下的元能力模块 |
156| bm disable -n <bundle-name> -u <user-id>| 禁用指定用户和包名下的应用 |
157
158* 示例
159```Bash
160# 禁用该应用
161bm disable -n com.ohos.app
162```
163#### 获取udid命令
164| 命令       | 描述                       |
165| ---------- | -------------------------- |
166| bm get -h | 显示get支持的命令信息 |
167| bm get -u | 获取设备的udid |
168
169* 示例
170```Bash
171# 获取设备的udid
172bm get -u
173```
174## 相关仓
175
176包管理子系统
177
178**appexecfwk_standard**
179
180developtools_packing_tool
181