自创建了 OpenHarmony开源应用社区以来,目前已经做了 3 个开源应用和一些脚本文档类项目,一直想着未来做一个类似安卓世界 F-Droid 一样的自由开源软件应用仓库,把 Gitee 组织内的开源应用陆续添加进去。
那为了实现这个小目标,首先要解决的问题肯定是如何在设备端实现直接安装 hap,完全脱离电脑 hdc 命令。
效果如下:
关于这个问题,现阶段网上可能搜不到什么特别有价值的信息,那只能自己探索了,经过几天的研究和尝试,目前给出以下两种实现思路,希望能帮助到大家~
设备信息
一加 6T
OpenHarmony 3.2.11.1(此固件由 @AlgoIdeas 移植并发布)
实现思路1(官方接口)
参考文档:应用开发文档 > 包管理 @ohos.bundle.installer (installer 模块)
http://docs.openharmony.cn/pages/v3.2Beta/zh-cn/application-dev/reference/apis/js-apis-installer.md/
安装应用:
BundleInstaller.install
卸载应用:
BundleInstaller.uninstall
需要注意的是,这个 API 需要 ohos.permission.INSTALL_BUNDLE 权限,权限等级为 system_core,所以我们要配置 APL 或者 ACL 方式修改应用的Profile。
具体参考:应用开发文档 > 访问控制(权限)开发概述,可手动或自动签名,文档内都有详细说明。
http://docs.openharmony.cn/pages/v3.2Beta/zh-cn/application-dev/security/accesstoken-overview.md/重中之重,大坑来了,卸载 API 的调用很顺利,但安装始终报 17700012 错误码(hap 路径有问题),一度怀疑官方文档写的不够准确,中间的折腾就不再细说了。 最终和其他小伙伴的探讨和尝试下,终于搞定了,只要按照以下三点说明,肯定可以,这三点绝对比官方文档靠谱。 ①hap 包要放到/data/app/el2/100/base/ 你的应用包名 /haps/entry/files/ ②但是,hapFilePaths前缀要写:(谜之操作)
/data/storage/el2/base/haps/entry/files/③并且,hapFilePaths 需要写上文件名,并且必须和步骤 1 中 hap 包的名字保持一致。
至于如何打开应用,暂时还没继续研究,知道的小伙伴们可以在评论区展示一下。
实现思路 2(另辟蹊径)
实际上我是先想到的这个方法,因为当时没仔细看官方文档,忽略了有包管理 API 的存在,这种方式毕竟是非常规手段,如果有官方 API 可用当然还是首选官方 API 的。
开发一个 shell 命令服务放到系统内,用于操作 bm/aa 等本地 shell 命令去安装和打开应用,并提供 http 或其他协议的接口给上层应用调用,思路清奇哈哈。
参考文档:设备开发文档 > Shell命令开发指导贴
http://docs.openharmony.cn/pages/v3.2Beta/zh-cn/device-dev/kernel/kernel-small-debug-shell-guide.md/
不一定非得参考这个,自己写一个命令行工具实现就行。
可以放到/system/bin/目录,挂载系统分区可读可写:
mount-oremount,rw/添加一个引导启动配置,用于开机自动启动我们自己写的这个 shell 命令服务。
参考文档:设备开发文档 > init启动引导组件
http://docs.openharmony.cn/pages/v3.2Beta/zh-cn/device-dev/subsystems/subsys-boot-init-cfg.md/其实很简单,文档内有开发实例,就是一个简单的 json 配置文件。 参考上面的挂载系统分区可读可写命令,然后放到/system/etc/init/目录,然后重启系统,服务将自动启动。 至此,我们开发的应用只需要调用本机的一个接口,即可实现安装、卸载、打开应用等操作。 很明显这违背了 OpenHarmony 的访问控制权限机制,所以我称之为非常规手段,并不推荐这么做。
感兴趣的小伙伴们,可以关注 OpenHarmony 开源应用社区:
https://gitee.com/ohos-dev
-
开源
+关注
关注
3文章
3368浏览量
42564 -
鸿蒙
+关注
关注
57文章
2368浏览量
42896 -
OpenHarmony
+关注
关注
25文章
3727浏览量
16388
原文标题:鸿蒙上实现直接安装hap
文章出处:【微信号:gh_834c4b3d87fe,微信公众号:OpenHarmony威廉希尔官方网站 社区】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论