一、前言
经过一段时间的学习,打包应用并安装应该是最激动人心的一环了,所以今天带大家完成openHarmony应用的安装,正文即将开始~~
二、配置openHarmony应用签名信息
一般应用在安装之前都需要进行签名才可以正式安装,这部分主要是为了保证程序不被恶意修改而设置的,下图展示了签名的流程
1.生成密钥和证书请求文件
OpenHarmony应用通过数字证书(.cer文件)和Profile文件(.p7b文件)来保证应用的完整性,需要通过DevEco Studio来生成密钥文件(.p12文件)和证书请求文件(.csr文件)。同时,也可以使用命令行工具的方式来生成密钥文件和证书请求文件。这里我们以DevEco Studio操作为例
- 在主菜单栏点击Build > Generate Key and CSR
点击create new 然后创建一个新的.p12密钥文件,这里需要注意一下密码格式,必须包含大小写字母、特殊符号、数字,不能使用一般的密码,类似123456(以前测试的时候经常这么做)
- 填写其他部分,填完如下,其他部分可以空着不填,然后点击next
- 生成证书文件
同样需要自己选择一个存放csr文件的路径,它会自动生成文件,点击finish即可
然后就是成功生成的提示
2.生成应用证书文件
使用生成密钥和证书请求文件中生成的证书请求文件,来生成应用签名所需的数字证书文件。生成方法如下:
进入DevEco Studio安装目录的 Sdk\toolchains\lib文件夹下(该SDK目录只能是OpenHarmony SDK,配置方法可参考配置OpenHarmony SDK),打开命令行工具,执行如下命令(如果keytool命令不能执行,请在系统环境变量中添加JDK的环境变量)。其中,只需要修改输入和输出即可快速生成证书文件,即修改 -infile指定证书请求文件csr文件路径, -outfile指定输出证书文件名及路径 - validity有效时间。(这里需要注意,我这里只是为了美观,才一行行的写,实际输入的时候需要连在一起,因为换行代表执行命令的意思,下面还有一个配置也是一样)
keytool -gencert
-alias "OpenHarmony Application CA"
-infile 路径+密钥文件名.csr
-outfile 路径+数字证书文件名.cer
-keystore OpenHarmony.p12
-sigalg SHA384withECDSA
-storepass 123456
-ext KeyUsage:"critical=digitalSignature"
-validity 3650 -rfc
这里有几点需要注意
- 这个命令只能在DevEco Studio安装目录的 Sdk\toolchains\lib文件夹下执行
自带的这个终端快捷路径下执行即可 Terminal
- infile是指定的输入路径,outfile仍然是新建一个文件,输出路径自定义
- 其他参数不能改,都是系统指定的(那个storepass的密码有点搞笑,我先笑一会)
3.生成应用profile文件
这个步骤是相似的,进入 Sdk\toolchains\lib目录下,打开命令行工具,执行如下命令,直接上命令
- --out需要修改成自己的路径
- --bundle-name 即包名需要换成自己的,
- --permission这个选项如果没有的话空着就行,不要去掉(踩了大坑,私自去掉然后倒霉了,一直报错)
- --distribution-certificate 换成自己的输出路径
- --validity 有效期
java -jar provisionsigtool.jar
sign --in UnsgnedReleasedProfileTemplate.json
--out 路径+文件名.p7b
--keystore OpenHarmony.p12
--storepass 123456
--alias "OpenHarmony Application Profile Release"
--sigAlg SHA256withECDSA
--cert OpenHarmonyProfileRelease.pem
--validity 365
--developer-id wresource
--bundle-name 包名
--permission
--distribution-certificate 路径+文件名.cer
4.配置应用签名信息
在真机设备上调试前,需要使用到制作的私钥(.p12)文件、证书(.cer)文件和Profile(.p7b)文件对调试的模块进行签名。
打开 File > Project Structure,点击 Project > Signing Configs > debug窗口中,去除勾选“Automatically generate signing”,然后配置指定模块的调试签名信息。这里指定的是release的签名
- Store File:选择密钥库文件,文件后缀为.p12,该文件为生成密钥和证书请求文件中生成的.p12文件。
- Store Password:输入密钥库密码,该密码为生成密钥和证书请求文件中填写的密钥库密码保持一致。
- Key Alias:输入密钥的别名信息,与生成密钥和证书请求文件中填写的别名保持一致。
- Key Password:输入密钥的密码,与 Store Password保持一致。
- Sign Alg:签名算法,固定为SHA256withECDSA。
- Profile File:选择生成应用Profile文件中生成的Profile文件,文件后缀为.p7b。
- Certpath File:选择生成应用证书文件中生成的数字证书文件,文件后缀为.cer。
上面这些参数都是比较容易填得,这些文件最好放在项目的目录下,便于查找
然后点击build即可完成hap的生成
之后在这个路径下可以找到生成的hap包
三、安装运行openHarmony应用
经历千辛万苦终于来到安装和运行openHarmony应用了,这里需要注意一点,openHarmony不能安装在普通手机上,只能安装在认证的开发板上,官方烧录文档如果有空的话下一次给大家带来烧录的教程
以下命令行安装均默认在连接完开发板时进行,需要进入Sdk\toolchains目录下进行运行
1.发送应用
hdc_std file send 本地路径.hap 远程接收路径.hap
2.安装应用
hdc_std install 应用名.hap
3.抓取日志
hdc_std hilog
四、总结
至此安装openHarmony应用已经完成了,可以在你的开发板上运行了,中间还是有点小曲折的,不过真的要吐槽一下,这个签名是真的复杂,需要手动生成两次文件,希望后面有更快捷的命令直接生成,下一篇见~~