h5打包成apk,加固后重新签名(使用java的jdk,使用android的sdk)

温馨提醒:打包时targerSdkVersion设置要大于28,要不然鸿蒙系统拍照后读取不到图片文件

两种方式:
1.使用java的jdk(jdk安装就不做说明了,网上一大堆)
cmd进入bin目录下,生成签名文件,执行:
keytool -genkey -alias smokeTest(签名文件别名) -keyalg RSA -sigalg SHA1WithRSA -validity 40000 -keysize 1024 -keystore smokeTest(签名文件名称).keystore

smokeTest是使用smokeTest.keystore签名文件打包的在这里插入图片描述
这里的smokeTest是经过加固软件加固的,我使用的是百度加固,腾讯加固也可以,加固后签名文件丢失(重新签名必须与打包时的签名一致,要不重新签名后的apk安装后打不开)
重新签名执行:
jarsigner -verbose -keystore smokeTest(签名文件名称).keystore -signedjar smokeTest_out.apk (重新签名后输出的apk)smokeTest.apk(重新签名的apk) smokeTest(签名别名)

特别说明:签名是v1,等保测试不会通过

2.使用android的sdk进行v1 + v2签名
https://www.androiddevtools.cn/(此地址下载)
在这里插入图片描述
解压后双击“SDK Manager.exe”,启动SDK Manager安装工具
在这里插入图片描述
安装成功后进入对应版本查看是否有apksigner.bat
在这里插入图片描述
有的话cmd进入版本号如下图:
在这里插入图片描述
对加固后的apk进行v1 + v2签名:
apksigner sign --ks smokeTest.keystore --out smokeTest_out.apk(签名后输出的apk) --v2-signing-enabled true(开启v2签名) smokeTest.apk(加固后无签名的apk)

重要选项:
以下选项指定要应用于签名者的基本设置:

--out <apk-filename>

您将要保存已签名 APK 的位置。如果未明确提供此选项,则 APK 软件包将就地签名,并替换输入的 APK 文件。

--min-sdk-version <integer>

apksigner 用来确认 APK 签名将通过验证的最低 Android 框架 API 级别。该级别值越高,表示该工具在为应用签名时可使用的安全参数越强,
但这会限制 APK 只能用于搭载更新版本 Android 的设备。
默认情况下,apksigner 会使用应用清单文件中的 minSdkVersion 属性的值。

--max-sdk-version <integer>

apksigner 用来确认 APK 签名将通过验证的最高 Android 框架 API 级别。
默认情况下,该工具会使用尽可能高的 API 级别。

--v1-signing-enabled <true | false>

确定 apksigner 是否会使用基于 JAR 的传统签名方案为给定的 APK 软件包签名。
默认情况下,该工具会使用 --min-sdk-version 和 --max-sdk-version 的值来决定何时采用此签名方案。

--v2-signing-enabled <true | false>

确定 apksigner 是否会使用 APK 签名方案 v2 为给定的 APK 软件包签名。
默认情况下,该工具会使用 --min-sdk-version 和 --max-sdk-version 的值来决定何时采用此签名方案。

--v3-signing-enabled <true | false>

确定 apksigner 是否会使用 APK 签名方案 v3 为给定的 APK 软件包签名。
默认情况下,该工具会使用 --min-sdk-version 和 --max-sdk-version 的值来决定何时采用此签名方案。

--v4-signing-enabled <true | false | only>

确定 apksigner 是否会使用 APK 签名方案 v4 为给定的 APK 软件包签名。此方案会在单独的文件 (apk-name.apk.idsig) 中生成签名。
如果为 true 并且 APK 未签名,则系统会根据 --min-sdk-version 和 --max-sdk-version 的值生成 v2 或 v3 签名。然后,该命令会根据
已签名的 APK 的内容生成 .idsig 文件。使用 only 仅生成 v4 签名,而不会修改 APK 及其在调用前具有的任何签名;如果 APK 没有
v2 或 v3 签名,或者签名使用的密钥不同于为当前调用提供的密钥,则 only 会失败。
默认情况下,该工具会使用 --min-sdk-version 和 --max-sdk-version 的值来决定何时采用此签名方案。

特别说明:打包apk时minSdkVersion设置不能大于Android7.024)要不然的话v1签名签不上,默认签出来是v2+v3

查看签名:
在这里插入图片描述
上述方法是我经过多次测试的,有问题欢迎提问(加固使用的是百度加固,最后再说明下加固配置so文件不可加固,要不然apk安装后也会打不开)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值