簡介
包管理子系統負責應用安裝包的管理,提供安裝包的信息查詢、安裝、更新、卸載和包信息存儲等能力。具體功能如下:
包管理子系統架構如下圖所示:

部件內子模塊職責
| 子模塊名稱 | 職責 |
|---|---|
| 包管理接口模塊 | 1.對外提供的安裝更新卸載及通知接口; 2.對外提供的包/組件信息/權限信息查詢接口; 3.對外提供的應用權限查詢接口; 4.對外提供的清除數據的接口; |
| 掃描模塊 | 1.預置應用的掃描; 2.已安裝三方應用的掃描; 3.包配置文件的解析; |
| 安全管理模塊 | 1.安裝過程中的簽名校驗; 2.安裝過程中應用所申請權限的授予; 3.應用運行中權限的校驗; |
| DBMS模塊 | 1.獲取指定設備ability信息; |
| 安裝管理模塊 | 1.安裝、更新、卸載邏輯處理及結果通知; |
| 包信息管理模塊 | 1.包信息、組件信息的存儲及同步; |
| 設備狀態監聽模塊 | 1.監聽設備的上下線; |
| Installed模塊 | 特權進程: 1)用于創建、刪除等目錄操作; 2)用于創建、刪除等文件操作; 3)用于設備目錄的沙箱uid/gid等操作 |
| DFX | 1.包管理維測工具 |
目錄
foundation/bundlemanager/bundle_framework
├── bundle_tool # bm工具存放目錄
├── distributed_bundle_framework # 分布式包管理服務框架代碼
├── common
│ └── log # 日志組件目錄
├── interfaces
│ ├── inner_api # 內部接口存放目錄
│ └── kits # 應用接口
│ ├── js # JS接口
│ └── native # C/C++接口
├── services # 包管理服務框架代碼
└── test # 測試目錄
bm工具命令
bm是用來方便開發者調試的一個工具。bm工具被hdc工具封裝,進入hdc shell命令后,就可以使用bm工具。
| 命令 | 描述 |
|---|---|
| help | 幫助命令,顯示bm支持的命令信息 |
| install | 安裝命令,用來安裝應用 |
| uninstall | 卸載命令,用來卸載應用 |
| dump | 查詢命令,用來查詢應用的相關信息 |
| clean | 清理命令,用來清理應用的緩存和數據 |
| enable | 使能命令,用來使能應用 |
| disable | 禁用命令,用來禁用應用 |
| get | 獲取udid命令,用來獲取設備的udid |
幫助命令
| 命令 | 描述 |
|---|---|
| bm help | 顯示bm工具的能夠支持的命令信息 |
- 示例
# 顯示幫助信息
bm help
安裝命令
命令可以組合,下面列出部分命令。
| 命令 | 描述 |
|---|---|
| bm install -h | 顯示install支持的命令信息 |
| bm install -p | 安裝hap包,支持指定路徑和多個hap同時安裝 |
| bm install -p -u | 給指定用戶安裝一個hap包 |
| bm install -r -p | 覆蓋安裝一個hap包 |
| bm install -r -p -u | 給指定用戶覆蓋安裝一個hap包 |
- 示例
# 安裝一個hap
bm install -p /data/app/ohosapp.hap
# 覆蓋安裝一個hap
bm install -p /data/app/ohosapp.hap -r
卸載命令
命令可以組合,下面列出部分命令。-u未指定情況下,默認為所有用戶。
| 命令 | 描述 |
|---|---|
| bm uninstall -h | 顯示uninstall支持的命令信息 |
| bm uninstall -n | 通過指定包名卸載應用 |
| bm uninstall -n -k | 通過指定包名卸載應用時保留數據目錄 |
| bm uninstall -n -u | 通過指定包名和用戶卸載應用 |
| bm uninstall -n -m | 通過指定包名卸載應用的一個模塊 |
- 示例
# 卸載一個hap
bm uninstall -n com.ohos.app
# 卸載一個hap,保留數據目錄
bm uninstall -n com.ohos.app -k
# 卸載一個hap下面的ability
bm uninstall -n com.ohos.app -m com.ohos.app.MainAbility
查詢命令
命令可以組合,下面列出部分命令。-u未指定情況下,默認為所有用戶。
| 命令 | 描述 |
|---|---|
| bm dump -h | 顯示dump支持的命令信息 |
| bm dump -a | 查詢系統已經安裝的所有應用 |
| bm dump -n | 查詢指定包名的詳細信息 |
| bm dump -n -s | 查詢指定包名下的快捷方式信息 |
| bm dump -n -d | 跨設備查詢包信息 |
| bm dump -n -u | 查詢指定用戶下指定包名的詳細信息 |
- 示例
# 顯示所有已安裝的包名
bm dump -a
# 顯示該應用的詳細信息
bm dump -n com.ohos.app
清理命令
-u未指定情況下,默認為當前活躍用戶。
| 命令 | 描述 |
|---|---|
| bm clean -h | 顯示clean支持的命令信息 |
| bm clean -n -c | 清除指定包名的緩存數據 |
| bm clean -n -d | 清除指定包名的數據目錄 |
| bm clean -n -c -u | 清除指定用戶下包名的緩存數據 |
| bm clean -n -d -u | 清除指定用戶下包名的數據目錄 |
- 示例
# 清理該應用下的緩存數據
bm clean -n com.ohos.app -c
# 清理該應用下的用戶數據
bm clean -n com.ohos.app -d
使能命令
-u未指定情況下,默認為當前活躍用戶。
| 命令 | 描述 |
|---|---|
| bm enable -h | 顯示enable支持的命令信息 |
| bm enable -n | 使能指定包名的應用 |
| bm enable -n -a | 使能指定包名下的元能力模塊 |
| bm enable -n -u | 使能指定用戶和包名的應用 |
- 示例
# 使能該應用
bm enable -n com.ohos.app
禁用命令
-u未指定情況下,默認為當前活躍用戶。
| 命令 | 描述 |
|---|---|
| bm disable -h | 顯示disable支持的命令信息 |
| bm disable -n | 禁用指定包名的應用 |
| bm disable -n -a | 禁用指定包名下的元能力模塊 |
| bm disable -n -u | 禁用指定用戶和包名下的應用 |
- 示例
# 禁用該應用
bm disable -n com.ohos.app
獲取udid命令
| 命令 | 描述 |
|---|---|
| bm get -h | 顯示get支持的命令信息 |
| bm get -u | 獲取設備的udid |
- 示例
# 獲取設備的udid
bm get -u
審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
接口
+關注
關注
33文章
9519瀏覽量
157015 -
鴻蒙
+關注
關注
60文章
2963瀏覽量
45883
發布評論請先 登錄
相關推薦
熱點推薦
Helm包管理與模板化部署實戰
直接用kubectl管理K8s資源,10個微服務就要維護幾十個YAML文件,版本管理靠文件夾命名,回滾靠手動替換文件。Helm把一組相關的K8s資源打包成Chart,支持模板化、版本管理、一鍵部署和回滾,是K8s生態中事實上的
M4-R1 開源鴻蒙(OpenHarmory)開發板丨串口調試助手實戰案例
支持與高集成度設計,成為開發者體驗與學習鴻蒙系統的理想平臺。無論是智慧家居、教學實驗,還是設備通信,M4-R1都能提供穩定可靠的開發環境。本次分享的
鴻蒙5開發寶藏案例分享---一多開發實例(音樂)
各位開發者小伙伴們好呀!今天咱們來點硬核干貨!最近在鴻蒙文檔中心挖到一座“金礦”——官方竟然暗藏了100+實戰案例,從分布式架構到交互動效優化應有盡有!這些案例不僅藏著華為工程師的私房技巧,還直接
鴻蒙5開發寶藏案例分享---性能體驗設計
;性能優化\"關鍵詞!
**如果大家在實戰中遇到卡頓難題,歡迎在評論區交流~ 也歡迎關注我,后續會持續分享鴻蒙開發實戰技巧! **?
希望這篇接地氣的總結能幫你避開性能深坑!如果覺得有
發表于 06-12 16:45
鴻蒙5開發寶藏案例分享---埋點開發實戰指南
鴻蒙埋點開發寶藏指南:官方案例實戰解析,輕松搞定數據追蹤!
大家好呀!我是HarmonyOS開發路上的探索者。最近在折騰應用埋點時,意外發現了鴻蒙
發表于 06-12 16:30
鴻蒙5開發寶藏案例分享---切面編程實戰揭秘
鴻蒙切面編程(AOP)實戰指南:隱藏的寶藏功能大揭秘!
大家好!今天在翻鴻蒙開發者文檔時,意外發現了官方埋藏的「切面編程」寶藏案例!實際開發
發表于 06-12 16:21
鴻蒙5開發寶藏案例分享---應用并發設計
?** 鴻蒙并發編程實戰指南:解鎖ArkTS多線程黑科技**
嘿,開發者朋友們! 今天給大家扒一扒鴻蒙官方文檔里藏著的并發編程寶藏—— 100+實戰
發表于 06-12 16:19
鴻蒙5開發寶藏案例分享---應用架構實戰技巧
大家好! 今天咱們聊聊鴻蒙開發中那些“官方文檔提了但實際開發難找”的架構設計技巧。結合官方文檔,我會用 真實代碼案例+通俗講解 ,幫你把分層架構和線程通信落地到項目里,告別“理論會了,代碼不會
發表于 06-12 16:14
嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-input子系統之input子系統簡介
用戶的輸入,比如按鍵輸入、鼠標操作等,并根據這些輸入事件做出相應的響應。Input子系統還提供了一些附加功能,如輸入設備的熱插拔支持、輸入設備屬性的查詢和配置等。這使得開發者可以更加靈活地管理和使用輸入
發表于 04-15 10:42
飛凌嵌入式ElfBoard ELF 1板卡-input子系統之input子系統簡介
用戶的輸入,比如按鍵輸入、鼠標操作等,并根據這些輸入事件做出相應的響應。Input子系統還提供了一些附加功能,如輸入設備的熱插拔支持、輸入設備屬性的查詢和配置等。這使得開發者可以更加靈活地管理和使用輸入
發表于 04-15 10:27
飛凌嵌入式ElfBoard ELF 1板卡-Pinctrl和GPIO子系統之GPIO子系統
GPIO(General Purpose Input/Output)子系統是用于控制和管理通用輸入/輸出引腳的一部分。它提供了一種標準化的方式來訪問和操作硬件平臺上的GPIO引腳,使開發人員能夠通過
發表于 03-24 15:41
本周三晚7點!《手把手教你做PC》第四課:驅動子系統開發流程上-KHDF
本周三晚七點,《KaihongOS筆記本電腦開發實戰④——驅動子系統開發流程上-KHDF》即將啟動!本次課程旨在幫助開發者了解KaihongOS驅動
鴻蒙開發實戰:【包管理子系統】
評論