在OpenHarmony2.0 上安装自己的系统应用 原创 精华

发布于 2021-6-6 02:04
浏览
12收藏

废话不多说,先上效果图:

在OpenHarmony2.0 上安装自己的系统应用-开源基础软件社区 在OpenHarmony2.0 上安装自己的系统应用-开源基础软件社区

在OpenHarmony2.0 上安装自己的系统应用-开源基础软件社区 在OpenHarmony2.0 上安装自己的系统应用-开源基础软件社区
系统原生应用   修改后自安装的应用JsHelloWorld  

使用该方法安装的hap为系统hap,不可卸载。文档写的使用hdc安装hap暂未走通。请参考官方文档

有打包、签名(建议参考一下官方文档的签名,和HarmonyOS签名方式有些许改动)基础的请移步至底部的第4步。

1.工欲善其事必先利其器

 需要用到的工具:

  • hap开发工具DevEco Studio 2.1 Release
  • 代码修改工具VS Code
  • 代码管理工具:Git
  • JAVA环境
  • docker编译环境
  • 烧录工具Hitool

2.准备工作

       开发hap首先需要下载并安装好DevEco Studio 2.1 Release,其次需要下载OpenHarmonySDK包并解压。打开DevEco Studio,在顶部导航栏找到Tools->SDK Manager设置IDE的SDK。将SDK路径设为openharmonySDK解压路径,设置后会自动勾选SDK(API Version6)。

在OpenHarmony2.0 上安装自己的系统应用-开源基础软件社区

配置完SDK后,进入Sdk\js\2.2.0.0\build-tools\ace-loader目录,然后在该目录下运行命令行工具,分别执行如下命令,直至安装完成。

npm cache clean -f
npm install

至此IDE配置完成。

确保安装有Git环境条件下,进入到IDE的欢迎界面,选择Import HarmonyOS Sample, 再选择common下的HelloWorld或者JsHelloWorld工程,然后点击Next。就可对想做的hap应用进行开发。文档参考 

在OpenHarmony2.0 上安装自己的系统应用-开源基础软件社区

 

3.hap的签名设置(hap必须签名)

   hap开发完成后须进行签名及打包,签名步骤如下: 官方文档参考

       1.生成密钥和证书请求文件

          使用DevEco Studio即可生成密钥和证书请求文件。菜单栏选择 Build->Generate Key and CSR。点击New进行新建Key Store File,填入相关信息,点击Next按钮进入下一步操作。

在OpenHarmony2.0 上安装自己的系统应用-开源基础软件社区

       2.生成应用证书文件

           将第一步生成的*.csr证书文件复制到解压的 OpenHarmonySDK目录下的Sdk\toolchains\lib文件夹下。在lib目录下打开shell窗口执行以下命令生成应用证书文件。此处可修改项仅 -infile、-outfile 后边的参数,其余命令参数皆不可修改。

          注意此处使用Java的keytool命令工具,需要先将该工具在系统环境变量中进行设置。

keytool -gencert -alias "OpenHarmony Application CA" -infile app.csr -outfile IDE.cer -keystore OpenHarmony.p12 -sigalg SHA384withECDSA -storepass 123456 -ext KeyUsage:"critical=digitalSignature" -validity  3650 -rfc

       3.生成应用Profile文件

          进入Sdk\toolchains\lib目录下,打开命令行工具,执行如下命令。

java -jar provisionsigtool.jar sign --in UnsgnedReleasedProfileTemplate.json --out SgnedReleasedProfileTemplate.p7b --keystore OpenHarmony.p12 --storepass 123456 --alias "OpenHarmony Application Profile Release" --sigAlg SHA256withECDSA --cert OpenHarmonyProfileRelease.pem --validity 365 --developer-id ohosdeveloper --bundle-name 包名 --permission 受限权限名(可选) --permission 受限权限名(可选) --distribution-certificate IDE.cer
 说明: 在上述命令中,标识为蓝色字体的字段不能修改,否则会导致Profile文件生成失败。

关于该命令的参数说明如下:

provisionsigtool:Profile文件生成工具,文件在OpenHarmony SDK的Sdk\toolchains\lib路径下。
in:Profile模板文件所在路径,文件在OpenHarmony SDK中Sdk\toolchains\lib路径下,该参数不能修改。
out:输出的Profile文件名和路径。
keystore:签发证书的密钥库路径,OpenHarmony密钥库文件名为OpenHarmony.p12,文件在OpenHarmony SDK中Sdk\toolchains\lib路径下,该参数不能修改。
storepass:密钥库密码,密码为123456,该参数不能修改。
alias:用于签名Profile私钥别名,OpenHarmony社区CA私钥存于OpenHarmony.p12密钥库文件中,该参数不能修改。
sigalg:证书签名算法,该参数不能修改。
cert:签名Profile的证书文件路径,文件在OpenHarmony SDK中Sdk\toolchains\lib路径下,该参数不能修改。
validity:证书有效期,自定义天数。
developer-id:开发者标识符,自定义一个字符串。
bundle-name:填写应用包名。
permission:可选字段,如果不需要,则可以省去此字段;如果需要添加多个受限权限,则如示例所示重复输入。受限权限列表如下:ohos.permission.READ_CONTACTS、ohos.permission.WRITE_CONTACTS。
distribution-certificate:生成应用证书文件中生成的证书文件。

       4.配置应用签名信息

          通过以上3个步骤就能生成hap的签名文件,接下来就需要将签名文件在hap中进行配置。在DevEco Studio菜单栏选择File->Project Structure然后选中Project、SigningConfigs。将前3个步骤设置的签名文件对应放入栏目中。其中StoreFile使用第一步生成的*.p12证书;Store Password、Key Alias、Key Password也是对应第一步中填入信息;sign Alg保持不变;Profile File,Certpath File分别采用第二、第三步在Sdk\toolchains\lib文件夹下生成的证书,最后点击OK按钮即完成证书配置。在OpenHarmony2.0 上安装自己的系统应用-开源基础软件社区

       5.打包签名的hap应用

          在DevEco Studio菜单栏选择build->build hap(s)/build app(s)->build hap(s)开始打包hap文件。打包完成后在\entry\build\outputs\hap\debug目录中找到签名的*.hap文件。在OpenHarmony2.0 上安装自己的系统应用-开源基础软件社区

4.已开发好的hap存放及文件修改(关键)

   将签名的hap改名并放入下载的openharmony2.0-canary的applications->standard->hap目录下(此处以Hello.hap)为例子,其余为代码自带hap。然后修改BUILD.gn文件,将我们的Hello.hap包含进去;然后修改ohos.build文件,将不想要的hap包删除,并把BUILD.gn中包含的hello_hap放入“module_list”这个数组中。

在OpenHarmony2.0 上安装自己的系统应用-开源基础软件社区 在OpenHarmony2.0 上安装自己的系统应用-开源基础软件社区 在OpenHarmony2.0 上安装自己的系统应用-开源基础软件社区

至此代码修改已完成。

5.编译烧录

编译烧录请点击参考 https://harmonyos.51cto.com/posts/5136

需要注意的是编译时最好删除out目录,进行全量代码编译,烧录使用网口烧录,串口的速率能把人直接劝退。

 

 

以上分享完毕,在openharmony2.0能做哪些花里胡哨的系统应用,打造属于自己的系统,就请努力的写bug吧!!!

本人未系统学习过嵌入式相关知识,有错误地方,敬请多多指正!

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2021-6-6 12:43:58修改
9
收藏 12
回复
举报
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源 去关联
    相关推荐