概述
文檔環(huán)境
開(kāi)發(fā)環(huán)境:Windows 11
DevEco Studio 版本:DevEco Studio 4.0 Release(4.0.0.600)
SDK 版本:4.0.10.13
開(kāi)發(fā)板型號(hào):DAYU200(RK3568)
系統(tǒng)版本:OpenHarmony-4.0-Release
功能簡(jiǎn)介
為了保證?OpenHarmony?應(yīng)用的完整性和來(lái)源可靠,在應(yīng)用構(gòu)建時(shí)需要對(duì)應(yīng)用進(jìn)行簽名。經(jīng)過(guò)簽名的應(yīng)用才能在設(shè)備上安裝、運(yùn)行、和調(diào)試。DevEco Studio 自動(dòng)化簽名功能僅用于應(yīng)用調(diào)試階段使用,不可用于發(fā)布上架應(yīng)用市場(chǎng)。
基本概念
Hap 包簽名工具支持本地簽名需求的開(kāi)發(fā),為 OpenHarmony 應(yīng)用提供完整性保護(hù)和來(lái)源管控機(jī)制,該簽名工具基于 PKI 公鑰證書(shū)的機(jī)制實(shí)現(xiàn),在進(jìn)行開(kāi)發(fā)前,開(kāi)發(fā)者應(yīng)了解以下基本概念:
- 非對(duì)稱(chēng)密鑰對(duì):非對(duì)稱(chēng)密鑰算法是數(shù)據(jù)簽名/驗(yàn)簽的基礎(chǔ),應(yīng)用簽名工具實(shí)現(xiàn)了標(biāo)準(zhǔn)的非對(duì)稱(chēng)密鑰對(duì)生成功能(支持的密鑰對(duì)類(lèi)型包括 ECC P384/256、RSA2048/3072/4096)
- CSR:CSR(Certificate Signing Request)證書(shū)簽發(fā)請(qǐng)求是生成證書(shū)的前提,他包括證書(shū)的公鑰、證書(shū)主題和私鑰簽名,在申請(qǐng)證書(shū)之前,需要先基于密鑰對(duì)生成 CSR,然后提交給 CA 簽發(fā)證書(shū)。
- 證書(shū):OpenHarmony 采用 RFC5280 標(biāo)準(zhǔn)構(gòu)建 X509 證書(shū)信任體系。用于應(yīng)用簽名的 OpenHarmony 證書(shū)共有三級(jí),分為:根 CA 證書(shū)、中間 CA 證書(shū)、最終實(shí)體證書(shū),其中最終實(shí)體證書(shū)分為應(yīng)用簽名證書(shū)和 profile 簽名證書(shū)。應(yīng)用簽名證書(shū)表示應(yīng)用開(kāi)發(fā)者的身份,可保證系統(tǒng)上安裝的應(yīng)用來(lái)源可追溯,profile 簽名證書(shū)實(shí)現(xiàn)對(duì) profile 文件的簽名進(jìn)行驗(yàn)簽,保證 profile 文件的完整性。
- HAP 包:HAP(OpenHarmony Ability Package)是 Ability 的部署包,OpenHarmony 應(yīng)用代碼圍繞 Ability 組件展開(kāi),它是由一個(gè)或者多個(gè) Ability 組成。
- profile 文件:Hap 包中的描述文件,該描述文件描述了已授權(quán)的證書(shū)權(quán)限和設(shè)備 ID 信息等信息。
簽名配置
應(yīng)用簽名信息配置于工程目錄?build-profile.json5?文件中,配置項(xiàng)說(shuō)明:
{
"app": { //工程級(jí)別信息配置,包含API等級(jí)、簽名和產(chǎn)品信息
"signingConfigs": [{ //工程的簽名信息,可包含多個(gè)簽名信息
"name": "default", //標(biāo)識(shí)簽名方案的名稱(chēng)
"material": { //該方案的簽名材料
"certpath": "ohos.cer", //調(diào)試或發(fā)布證書(shū)文件,格式為.cer
"storePassword": "******", //密鑰庫(kù)Password,以密文形式呈現(xiàn)
"keyAlias": "debug_ohos", //密鑰別名信息
"keyPassword": "******", //密鑰Password,以密文形式呈現(xiàn)
"profile": "ohos.p7b", //調(diào)試或發(fā)布證書(shū)Profile文件,格式為.p7b
"signAlg": "SHA256withECDSA", //密鑰庫(kù)signAlg參數(shù)
"storeFile": "ohos.p12" //密鑰庫(kù)文件,格式為.p12
}
}],
"products": [{ //定義構(gòu)建的產(chǎn)品品類(lèi),如通用默認(rèn)版、付費(fèi)版、免費(fèi)版等
"name": "default", //定義產(chǎn)品的名稱(chēng),由開(kāi)發(fā)者自定義
"signingConfig": "default" //指定當(dāng)前產(chǎn)品品類(lèi)對(duì)應(yīng)的簽名信息,簽名信息需要在signingConfigs中進(jìn)行定義
...
}]
···
}
}
···
?
自動(dòng)化簽名
未簽名的 HAP 包
使用?DevEco Studio?創(chuàng)建一個(gè)新的工程,默認(rèn)是沒(méi)有配置簽名信息的。簽名信息可通過(guò)工程根路徑的?build-profile.json5?文件查看。未簽名的 HAP 包無(wú)法保證應(yīng)用的完整性和來(lái)源可靠,在?OpenHarmony?系統(tǒng)是無(wú)法被安裝的。
- 新創(chuàng)建的工程,在?build-profile.json5?文件的?signingConfigs?配置項(xiàng)中不包含簽名信息。
- 當(dāng)未配置簽名信息的工程執(zhí)行 HAP 打包時(shí),僅會(huì)生成?unsigned?標(biāo)記的 HAP 包。
- hvigor?編譯構(gòu)建工具進(jìn)行?build?時(shí),提示未配置簽名信息。
- 未簽名的 HAP 包在系統(tǒng)中安裝時(shí),報(bào)未簽名錯(cuò)誤。
DevEco Studio 自動(dòng)簽名
應(yīng)用在真機(jī)設(shè)備上運(yùn)行,需要提前為應(yīng)用進(jìn)行簽名,DevEco Studio?為開(kāi)發(fā)者提供了自動(dòng)化簽名方案,可以一鍵完成應(yīng)用簽名。
配置自動(dòng)簽名:
- 單擊?File > Project Structure > Project > SigningConfigs?界面勾選?Automatically generate signature,等待自動(dòng)簽名完成即可,單擊?OK。
- 查看?build-profile.json5?配置信息,配置信息中增加自動(dòng)簽名生成的證書(shū)信息。
- 使用?hvigor?編譯構(gòu)建工具?build,在?output?目錄中生成標(biāo)記為?signed?的 HAP 包。
修改應(yīng)用權(quán)限等級(jí)
OpenHarmony?針對(duì)應(yīng)用訪問(wèn)額外的系統(tǒng)或其他應(yīng)用的數(shù)據(jù)(包括用戶(hù)個(gè)人數(shù)據(jù))或功能,提供了一種訪問(wèn)控制機(jī)制來(lái)保證這些數(shù)據(jù)或功能不會(huì)被不當(dāng)或惡意使用,即應(yīng)用權(quán)限。根據(jù)權(quán)限對(duì)于不同等級(jí)應(yīng)用有不同的開(kāi)放范圍,權(quán)限類(lèi)型對(duì)應(yīng)分為以下三種,等級(jí)依次提高。
- normal 權(quán)限
- system_basic 權(quán)限
- system_core 權(quán)限
默認(rèn)情況下自動(dòng)化簽名功能只能申請(qǐng)權(quán)限等級(jí)為“normal”的權(quán)限。若使用了更高級(jí)別的權(quán)限?system_core?或?system_basic,需修改自動(dòng)化簽名所需要的?Profile?模板,然后再使用自動(dòng)化簽名功能對(duì)應(yīng)用進(jìn)行簽名。
修改?Profile?模板:
- 打開(kāi)?OpenHarmony SDK?所在目錄,可通過(guò)工程根路徑?local.properties?文件或?DevEco Studio?菜單欄中單擊?File > Settings > SDK > OpenHarmony?界面查看 。
- 在?OpenHarmony SDK?目錄下,進(jìn)入{Version} > toolchains > lib?文件夾,打開(kāi)?UnsgnedReleasedProfileTemplate.json文件。
- 根據(jù)需求對(duì)?Profile?文件進(jìn)行修改,例如需申請(qǐng)最高級(jí)別的權(quán)限等級(jí),則修改?apl?為?system_core,Profile?修改參考?HarmonyAppProvision 配置文件的說(shuō)明。
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-778016.html
- 使用?DevEco Studio?自動(dòng)化簽名功能(需重新點(diǎn)擊?Automatically generate signature?)為應(yīng)用重新生成證書(shū)文件和配置信息,安裝后通過(guò)?bm dump?指令查看權(quán)限生效情況。
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-778016.html
參考文檔
- HarmonyOS 應(yīng)用開(kāi)發(fā)官網(wǎng) - 配置編譯構(gòu)建信息
- HarmonyOS 應(yīng)用開(kāi)發(fā)官網(wǎng) - 自動(dòng)化簽名方案
- OpenAtom OpenHarmony - Hap 包簽名工具概述
到了這里,關(guān)于OpenHarmony應(yīng)用簽名 - DevEco Studio 自動(dòng)簽名(4.0-Release)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!