当前位置: 首页 > news >正文

OpenHarmony包管理子系统

OpenHarmony包管理子系统

简介

包管理子系统负责应用安装包的管理,提供安装包的信息查询、安装、更新、卸载和包信息存储等能力。具体功能如下:

包管理子系统架构如下图所示:

部件内子模块职责

子模块名称职责
包管理接口模块1.对外提供的安装更新卸载及通知接口;
2.对外提供的包/组件信息/权限信息查询接口;
3.对外提供的应用权限查询接口;
4.对外提供的清除数据的接口;
扫描模块1.预置应用的扫描;
2.已安装三方应用的扫描;
3.包配置文件的解析;
安全管理模块1.安装过程中的签名校验;
2.安装过程中应用所申请权限的授予;
3.应用运行中权限的校验;
DBMS模块1.获取指定设备ability信息;
安装管理模块1.安装、更新、卸载逻辑处理及结果通知;
包信息管理模块1.包信息、组件信息的存储及同步;
设备状态监听模块1.监听设备的上下线;
Installed模块特权进程:
1)用于创建、删除等目录操作;
2)用于创建、删除等文件操作;
3)用于设备目录的沙箱uid/gid等操作
DFX1.包管理维测工具

目录

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 -g查询系统中签名为调试类型的应用包名
bm dump -n查询指定包名的详细信息
bm dump -n -s查询指定包名下的快捷方式信息
bm dump -n -d跨设备查询包信息
bm dump -n -u查询指定用户下指定包名的详细信息
  • 示例
# 显示所有已安装的包名
bm dump -a
# 查询系统中签名为调试类型的应用包名
bm dump -g
# 显示该应用的详细信息
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

相关仓

包管理子系统

bundlemanager_bundle_framework

bundlemanager_bundle_framework_lite

developtools_packing_tool

相关文章:

  • Linux lsblk 命令详解:查看磁盘和分区信息 (中英双语)
  • Spring Boot Validation 接口校验:从零到掌握
  • python中轻量级 LLM 应用开发框架 Promptic 如何有效进行对话管理?
  • AI革命下的多元生态:DeepSeek、ChatGPT、XAI、文心一言与通义千问的行业渗透与场景重构
  • 基于Hadoop的汽车大数据分析系统设计与实现【爬虫、数据预处理、MapReduce、echarts、Flask】
  • DPVS-1:编译安装DPVS (ubuntu22.04)
  • DeepSeek-R1之三_基于RAGFlowAI托管平台在Docker中部署搭建本地AI知识库
  • 关于java中的BigInteger类
  • 区块链相关方法-波特五力分析模型
  • Eigen3开发入门指南:矩阵操作与核心功能详解
  • ChromeDriver版本不匹配问题的解决
  • Android Binder机制
  • Java 继承
  • hi3516cv610的isp调试专业名词
  • Spring Boot定时任务原理
  • 数据结构:实验题目:单链表归并。将两个非递减次序排列的单链表归并为一个非递增次序排列的单链表,并计算表长。要求利用原来两个单链表的结点存放合并后的单链表。
  • JVM 面试题相关总结
  • 设计模式教程:迭代器模式(Iterator Pattern)
  • 多源 BFS 算法详解:从原理到实现,高效解决多源最短路问题
  • Andorid 学习 Compose UI(1):Box
  • 深入贯彻中央八项规定精神学习教育中央第六指导组指导督导中国工商银行见面会召开
  • 公募基金行业迎系统性变革:基金公司业绩差必须少收费
  • 湖北奥莱斯轮胎公司逃避监管排放大气污染物被罚25万元
  • 哥伦比亚总统称将在访华期间签署“一带一路”倡议意向书,外交部回应
  • 德国新一届联邦政府宣誓就职
  • 市场监管总局通报民用“三表”专项检查结果