IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 鸿蒙应用(Harmony OS App)的签名方式 -> 正文阅读

[系统运维]鸿蒙应用(Harmony OS App)的签名方式

在基于鸿蒙SDK开发完成应用后,可以通过 Build -> Build Hap(s)/APP(s) 编译后,在 项目根目录/build/outputs/app/release/ 目录下生成两个文件: xxx_unsigned.app 和 xxx_signed.app。在某些情况下可能需要使用 xxx_unsigned.app 文件,然后使用同步的签名文件对文件进行签名。

那么问题来了,怎么对未签名的文件进行重新签名呢?这个文件就是本文想要解决的问题。

前提

  1. 本文中用到的签名文件需要从华为开发者申请,具体申请流程可参考 HarmonyOS Developer工具->应用发布。这里就不再累述;
  2. 需要安装 DevEco Studio。该工具可以去 HarmonyOS Developer 下载。

为什么要使用脚本签名

  1. 团队管理上,为了保护正式的签名证书。所以在开发阶段使用开发的签名证书,发布的时候使用正式的签名证书。
  2. 在对应用做加固的时候,加固后需要重新签名。

签名方法

在 DevEco Studio 中有一个 hapsigntoolv2.jar 。通过这个 jar 包可以对应用进行重签名。签名脚本内容如下:

echo "开始签名操作..."

## 设置 hapsigntoolv2.jar 的路径
jarPath=/Users/<User>/Library/Huawei/Sdk/toolchains/lib/hapsigntoolv2.jar
## 设置签名文件 .p12 的目录
keystorePath=release.p12

## 设置签名文件密码变量。这个密码在生成签名文件是设置的
keystorePasswd=abcdefg

## 设置签名文件别名
keystoreAlias=Alias

## 设置证书 .p7b 文件路径
profilePath=release.p7b

## 设置证书 .cer 文件路径
certPath=release.cer

## 输入文件路径设置。输入文件路径作为命令执行的第一个参数
inputFilePath=$1

## 输出文件路径设置。输出文件路径作为命令执行的第二个参数
outputFilePath=$2

## 进行签名
java -jar $jarPath sign -mode localjks -keystore $keystorePath -keystorepasswd $keystorePasswd -privatekey $keystoreAlias -keyaliaspasswd $keystorePasswd -signAlg SHA256withECDSA -profile $profilePath -certpath $certPath -inputFile $inputFilePath -outputFile $outputFilePath

echo .
echo "签名完成~~~"

将上面内容写到一个 signer.sh 文件中保持。通过下面指令赋给脚本文件可行的权限:

$ chmod 777 signer.sh

至此,一个简单的签名工具已经完成。

签名工具的使用

上面章节已经完成一个简单的签名工具 signer.sh。使用方式如下:

$ signer.sh xxx_unsigned.app xxx_signed.app

如果执行成功,则会生成 xxx_signed.app 文件。
然后尝试运行一下试试吧。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-16 11:42:51  更:2021-07-16 11:45:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 16:19:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码