51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3644|回复: 1
打印 上一主题 下一主题

【转】在OpenHarmony2.0 上安装自己的系统应用

[复制链接]
  • TA的每日心情
    无聊
    3 天前
  • 签到天数: 1050 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-7-16 15:46:28 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    废话不多说,先上效果图:

    使用该方法安装的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)。
    配置完SDK后,进入Sdk\js\2.2.0.0\build-tools\ace-loader目录,然后在该目录下运行命令行工具,分别执行如下命令,直至安装完成。
    1. npm cache clean -f
    2. npm install
    复制代码
    至此IDE配置完成。
    确保安装有Git环境条件下,进入到IDE的欢迎界面,选择Import HarmonyOS Sample, 再选择common下的HelloWorld或者JsHelloWorld工程,然后点击Next。就可对想做的hap应用进行开发。文档参考
    3.hap的签名设置(hap必须签名)
       hap开发完成后须进行签名及打包,签名步骤如下: 官方文档参考
           1.生成密钥和证书请求文件
              使用DevEco Studio即可生成密钥和证书请求文件。菜单栏选择 Build->Generate Key and CSR。点击New进行新建Key Store File,填入相关信息,点击Next按钮进入下一步操作。
    2.生成应用证书文件
               将第一步生成的*.csr证书文件复制到解压的 OpenHarmonySDK目录下的Sdk\toolchains\lib文件夹下。在lib目录下打开shell窗口执行以下命令生成应用证书文件。此处可修改项仅 -infile、-outfile 后边的参数,其余命令参数皆不可修改。
              注意此处使用Java的keytool命令工具,需要先将该工具在系统环境变量中进行设置。
    1. 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目录下,打开命令行工具,执行如下命令。
    1. 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
    复制代码
    1. 说明: 在上述命令中,标识为蓝色字体的字段不能修改,否则会导致Profile文件生成失败。

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

    3. provisionsigtool:Profile文件生成工具,文件在OpenHarmony SDK的Sdk\toolchains\lib路径下。
    4. in:Profile模板文件所在路径,文件在OpenHarmony SDK中Sdk\toolchains\lib路径下,该参数不能修改。
    5. out:输出的Profile文件名和路径。
    6. keystore:签发证书的密钥库路径,OpenHarmony密钥库文件名为OpenHarmony.p12,文件在OpenHarmony SDK中Sdk\toolchains\lib路径下,该参数不能修改。
    7. storepass:密钥库密码,密码为123456,该参数不能修改。
    8. alias:用于签名Profile私钥别名,OpenHarmony社区CA私钥存于OpenHarmony.p12密钥库文件中,该参数不能修改。
    9. sigalg:证书签名算法,该参数不能修改。
    10. cert:签名Profile的证书文件路径,文件在OpenHarmony SDK中Sdk\toolchains\lib路径下,该参数不能修改。
    11. validity:证书有效期,自定义天数。
    12. developer-id:开发者标识符,自定义一个字符串。
    13. bundle-name:填写应用包名。
    14. permission:可选字段,如果不需要,则可以省去此字段;如果需要添加多个受限权限,则如示例所示重复输入。受限权限列表如下:ohos.permission.READ_CONTACTS、ohos.permission.WRITE_CONTACTS。
    15. 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按钮即完成证书配置。
    5.打包签名的hap应用
              在DevEco Studio菜单栏选择build->build hap(s)/build app(s)->build hap(s)开始打包hap文件。打包完成后在\entry\build\outputs\hap\debug目录中找到签名的*.hap文件。
    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”这个数组中。
    至此代码修改已完成。


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-24 13:13 , Processed in 0.069853 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表