OpenHarmony3.2 安装系统应用
OpenHarmony3.2开启了严格的权限管控, 普通应用程序无法调用系统API, 应用需要修改应用为system_core级别才能访问系统API. 此外3.2OS支持预置系统权限(系统初次启动自动配置敏感权限, 无需向用户申请), 本文将介绍如何手动安装系统应用和预置权限
本文基于Deveco Studio一键签名操作
1. 修改HarmonyAppProvision配置文件
创建新工程时, 该应用的类型默认为hos_normal_app(普通应用),APL级别默认为normal。
当需要使用系统API时,需要手动修改app-feature字段为hos_system_app(系统应用);当需要申请高级别权限时,可能需要修改apl、acl等字段,请根据实际需要,参考访问控制开发概述
进行修改。
可以参考以下步骤,修改HarmonyAppProvision配置文件。
-
打开OpenHarmony SDK所在目录(可通过DevEco Studio菜单栏中单击File > Settings > OpenHarmony SDK界面查看 )。
-
在SDK目录下,进入Toolchains > {Version} > lib文件夹,打开“UnsgnedReleasedProfileTemplate.json”文件。
-
根据实际需求,修改对应的字段。
{ // others... "bundle-info": { // 表示可以调用系统核心API "apl": "system_core", "app-feature":"hos_system_app" }, "acls": { "allowed-acls": [ // 根据实际需求,填写acl权限 ] }, }
-
使用Deveco Studio重新签名
以下为手动安装配置依赖过程, 目前提供一键安装系统应用的python脚本, 推荐使用
2. 证书指纹获取
-
连接shell, 开启hilog debug级别日志
hdc_shell shell hilog -b D
-
使用Deveco Studio重新生成签名, 编译安装, 打开hilog, 过滤
finger
关键字查看指纹
3. 替换预安装配置文件
-
使用hdc file recv 命令pull配置文件
hdc_std shell mount -o remount,rw / hdc_std file recv system/etc/app/install_list.json hdc_std file recv system/etc/app/install_list_capability.json hdc_std file recv system/etc/app/install_list_permissions.json
-
参考其他应用, 新增或修改预安装配置文件
install_list.json – 预安装配置, 配置hap包安装目录
install_list_capability.json – 包能力配置, 填写应用bundleName和从步骤2获取的指纹等信息
install_list_permissions.json – 预赋权限配置, 填写bundleName和指纹和权限等信息 -
推送hap应用, 预安装配置文件
hdc_std shell mount -o remount,rw / forfiles /M *.json /C "cmd /c hdc_std file send @path system/etc/app/" hdc_std shell mkdir system/app/{your_hap_bundleName}/ hdc_std file send ${your_hap_path} system/app/${your_hap_bundleName}/ hdc_std shell chmod -R 777 system/app/${your_hap_bundleName}/ hdc_std shell bm install -u 0 -p system/app/${your_hap_bundleName}/${your_hap_name} pause
![请添加图片描述](https://img-blog.csdnimg.cn/ace4b0a0f1114947a3f3d6cfed2f86b2.png