RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙上實(shí)現(xiàn)直接安裝hap

OpenHarmony技術(shù)社區(qū) ? 來(lái)源: OpenHarmony技術(shù)社區(qū) ? 2023-04-11 19:06 ? 次閱讀

自創(chuàng)建了 OpenHarmony開源應(yīng)用社區(qū)以來(lái),目前已經(jīng)做了 3 個(gè)開源應(yīng)用和一些腳本文檔類項(xiàng)目,一直想著未來(lái)做一個(gè)類似安卓世界 F-Droid 一樣的自由開源軟件應(yīng)用倉(cāng)庫(kù),把 Gitee 組織內(nèi)的開源應(yīng)用陸續(xù)添加進(jìn)去。

那為了實(shí)現(xiàn)這個(gè)小目標(biāo),首先要解決的問(wèn)題肯定是如何在設(shè)備端實(shí)現(xiàn)直接安裝 hap,完全脫離電腦 hdc 命令。

效果如下:

關(guān)于這個(gè)問(wèn)題,現(xiàn)階段網(wǎng)上可能搜不到什么特別有價(jià)值的信息,那只能自己探索了,經(jīng)過(guò)幾天的研究和嘗試,目前給出以下兩種實(shí)現(xiàn)思路,希望能幫助到大家~

設(shè)備信息

一加 6T

OpenHarmony 3.2.11.1(此固件由 @AlgoIdeas 移植并發(fā)布)

實(shí)現(xiàn)思路1(官方接口

參考文檔:應(yīng)用開發(fā)文檔 > 包管理 @ohos.bundle.installer (installer 模塊)

http://docs.openharmony.cn/pages/v3.2Beta/zh-cn/application-dev/reference/apis/js-apis-installer.md/

安裝應(yīng)用:

BundleInstaller.install

卸載應(yīng)用:

BundleInstaller.uninstall

需要注意的是,這個(gè) API 需要 ohos.permission.INSTALL_BUNDLE 權(quán)限,權(quán)限等級(jí)為 system_core,所以我們要配置 APL 或者 ACL 方式修改應(yīng)用的Profile。

具體參考:應(yīng)用開發(fā)文檔 > 訪問(wèn)控制(權(quán)限)開發(fā)概述,可手動(dòng)或自動(dòng)簽名,文檔內(nèi)都有詳細(xì)說(shuō)明。

http://docs.openharmony.cn/pages/v3.2Beta/zh-cn/application-dev/security/accesstoken-overview.md/
重中之重,大坑來(lái)了,卸載 API 的調(diào)用很順利,但安裝始終報(bào) 17700012 錯(cuò)誤碼(hap 路徑有問(wèn)題),一度懷疑官方文檔寫的不夠準(zhǔn)確,中間的折騰就不再細(xì)說(shuō)了。 最終和其他小伙伴的探討和嘗試下,終于搞定了,只要按照以下三點(diǎn)說(shuō)明,肯定可以,這三點(diǎn)絕對(duì)比官方文檔靠譜。 ①hap 包要放到/data/app/el2/100/base/ 你的應(yīng)用包名 /haps/entry/files/ ②但是,hapFilePaths前綴要寫:(謎之操作)
/data/storage/el2/base/haps/entry/files/
③并且,hapFilePaths 需要寫上文件名,并且必須和步驟 1 中 hap 包的名字保持一致。

至于如何打開應(yīng)用,暫時(shí)還沒(méi)繼續(xù)研究,知道的小伙伴們可以在評(píng)論區(qū)展示一下。

實(shí)現(xiàn)思路 2(另辟蹊徑)

實(shí)際上我是先想到的這個(gè)方法,因?yàn)楫?dāng)時(shí)沒(méi)仔細(xì)看官方文檔,忽略了有包管理 API 的存在,這種方式畢竟是非常規(guī)手段,如果有官方 API 可用當(dāng)然還是首選官方 API 的。

開發(fā)一個(gè) shell 命令服務(wù)放到系統(tǒng)內(nèi),用于操作 bm/aa 等本地 shell 命令去安裝和打開應(yīng)用,并提供 http 或其他協(xié)議的接口給上層應(yīng)用調(diào)用,思路清奇哈哈。

參考文檔:設(shè)備開發(fā)文檔 > Shell命令開發(fā)指導(dǎo)貼

http://docs.openharmony.cn/pages/v3.2Beta/zh-cn/device-dev/kernel/kernel-small-debug-shell-guide.md/

不一定非得參考這個(gè),自己寫一個(gè)命令行工具實(shí)現(xiàn)就行。

可以放到/system/bin/目錄,掛載系統(tǒng)分區(qū)可讀可寫:

mount-oremount,rw/
添加一個(gè)引導(dǎo)啟動(dòng)配置,用于開機(jī)自動(dòng)啟動(dòng)我們自己寫的這個(gè) shell 命令服務(wù)。

參考文檔:設(shè)備開發(fā)文檔 > init啟動(dòng)引導(dǎo)組件

http://docs.openharmony.cn/pages/v3.2Beta/zh-cn/device-dev/subsystems/subsys-boot-init-cfg.md/
其實(shí)很簡(jiǎn)單,文檔內(nèi)有開發(fā)實(shí)例,就是一個(gè)簡(jiǎn)單的 json 配置文件。 參考上面的掛載系統(tǒng)分區(qū)可讀可寫命令,然后放到/system/etc/init/目錄,然后重啟系統(tǒng),服務(wù)將自動(dòng)啟動(dòng)。 至此,我們開發(fā)的應(yīng)用只需要調(diào)用本機(jī)的一個(gè)接口,即可實(shí)現(xiàn)安裝、卸載、打開應(yīng)用等操作。 很明顯這違背了 OpenHarmony 的訪問(wèn)控制權(quán)限機(jī)制,所以我稱之為非常規(guī)手段,并不推薦這么做。

感興趣的小伙伴們,可以關(guān)注 OpenHarmony 開源應(yīng)用社區(qū):

https://gitee.com/ohos-dev

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3309

    瀏覽量

    42471
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2339

    瀏覽量

    42805
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3713

    瀏覽量

    16254

原文標(biāo)題:鴻蒙上實(shí)現(xiàn)直接安裝hap

文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    編寫HAP應(yīng)用及開發(fā)板上調(diào)試端到端指南

    ,./bm install -p test.hap安裝HAP鴻蒙系統(tǒng)中,test.hap是你的HAP
    發(fā)表于 09-21 14:51

    轉(zhuǎn)發(fā):鴻蒙HI3516-HAP的編譯打包和安裝

    /deveco-studio#download2.安裝DevEco Studio具體安裝流程請(qǐng)看官網(wǎng)3.新建項(xiàng)目填寫路徑4.修改試驗(yàn)代碼5.編譯生成和預(yù)覽點(diǎn)擊運(yùn)行,然后選擇下面那個(gè)6.打成HAP
    發(fā)表于 12-22 16:41

    鴻蒙開發(fā)AI應(yīng)用(匯總)連載中

    )UI篇本篇基于DevEco Studio的JS框架,體驗(yàn)了一下鴻蒙的前端開發(fā)流程,并講述設(shè)備應(yīng)用的編譯打包以及Hap安裝的過(guò)程...7. 用鴻蒙開發(fā)AI應(yīng)用(七)觸摸屏控制LED本篇
    發(fā)表于 01-13 15:03

    鴻蒙HI3516-HAP的編譯打包和安裝

    鴻蒙HI3516-HAP的編譯打包和安裝?1.把源碼包編譯和燒錄1.vsc導(dǎo)入HI3516項(xiàng)目https://repo.huaweicloud.com/harmonyos/os/1.0
    發(fā)表于 03-04 21:50

    OpenHarmony hap安裝失敗的原因及其解決方法解析

    OpenHarmony hap安裝:error: failed to install bundle. error: install update incompatible.簽名認(rèn)證
    發(fā)表于 03-15 14:15

    淺析HarmonyOS APP和HAP的組成合集

    對(duì)于鴻蒙開發(fā)的初學(xué)者而言,了解 HarmonyOS 的一些基礎(chǔ)理論知識(shí)尤為重要。本篇文章匯總了關(guān)于鴻蒙移動(dòng)應(yīng)用開發(fā)的重要基礎(chǔ)知識(shí)——HarmonyOS APP 和 HAP 的構(gòu)成,希望能為鴻蒙
    發(fā)表于 03-22 15:27

    OpenHarmony 3.1 Beta版本關(guān)鍵特性解析——HAP安裝實(shí)現(xiàn)剖析

    。為了讓大家深入了解 OpenHarmony 的技術(shù)特點(diǎn),本期對(duì) OpenHarmony HAP安裝實(shí)現(xiàn)進(jìn)行剖析。一、HAP包介紹HAP
    發(fā)表于 03-28 14:29

    【HarmonyOS HiSpark AI Camera試用連載 】燒錄鴻蒙3.0、測(cè)試hap應(yīng)用

    ' }, Close() {app.terminate(); }}* js 的開發(fā)方式和主流的 Vue 等有些類似,搭配華為官方的 sdk ,上手還是挺容易的。* 編譯 hap 包* 從鴻蒙 3.0 編譯結(jié)果文件
    發(fā)表于 04-10 17:27

    請(qǐng)問(wèn)鴻蒙hap包是否支持插件化開發(fā)?

    如題,安卓上可以使用dexclassloader機(jī)制動(dòng)態(tài)加載其他apk作為插件使用,鴻蒙上用類似的能力嗎?有什么解決方案呢?
    發(fā)表于 06-16 11:34

    鴻蒙上安裝docker嗎?

    android是不支持安裝docker的,想了解下鴻蒙是否支持安裝docker
    發(fā)表于 03-21 16:32

    鴻蒙上使用Python進(jìn)行物聯(lián)網(wǎng)編程

    炫耀!然而,這卻是非常重要的一步:在鴻蒙上用使用 Python 進(jìn)行物聯(lián)網(wǎng)編程是可行的?。?! 既然可行,加上 Python 語(yǔ)言天生的優(yōu)勢(shì)(易于掌握,開發(fā)效率高),那么真的值得持續(xù)打造,將鴻蒙上的 Python 進(jìn)行到底。 所以,今天的主題就是利用 GPIO 搭配 I2C
    的頭像 發(fā)表于 09-28 09:55 ?4288次閱讀
    在<b class='flag-5'>鴻蒙上</b>使用Python進(jìn)行物聯(lián)網(wǎng)編程

    鴻蒙上安裝按鈕實(shí)現(xiàn)下載、暫停、取消、顯示等操作

    今天給大家分享在鴻蒙上一個(gè)按鈕實(shí)現(xiàn)下載、暫停、取消、顯示下載進(jìn)度操作。
    的頭像 發(fā)表于 01-04 14:32 ?2300次閱讀

    鴻蒙上實(shí)現(xiàn)“數(shù)字華容道”小游戲

    本篇文章教大家如何在鴻蒙上實(shí)現(xiàn)“數(shù)字華容道”小游戲。
    的頭像 發(fā)表于 12-26 09:52 ?1240次閱讀

    鴻蒙上實(shí)現(xiàn)簡(jiǎn)單的“每日新聞”

    這是一篇講解如何實(shí)現(xiàn)基于鴻蒙 JS 的簡(jiǎn)單的每日新聞。
    的頭像 發(fā)表于 12-26 09:58 ?855次閱讀

    鴻蒙上開發(fā)“小蜜蜂”游戲

    小時(shí)候我們有個(gè)熟悉的游戲叫小蜜蜂。本文教大家在鴻蒙上學(xué)做這個(gè)小蜜蜂游戲。
    的頭像 發(fā)表于 04-03 11:27 ?1674次閱讀
    RM新时代网站-首页