Android 新版v2签名&渠道包工具

Android7.0引入了全新的APK Signature Scheme v2签名方式,使用传统的JDK jarsigner命令行签名只能进行v1签名,如果要进行v2签名就要使用SDK提供的apksigner工具。

apksigner.jar在版本>25的SDK\build-tools\中。

基于此,使用JavaFx编写了安卓Apk签名工具,方便快速进行v1&v2签名。

  1. 无需记忆复杂的命令行,点击几下即可方便快速的签名。
  2. 使用xml格式配置签名密钥,可以配置多个签名密钥。
  3. 开放源码,无需担心恶意工具入侵你的Apk。

在这里插入图片描述

使用说明

运行环境
  1. Windows系统
  2. JDK1.8&环境变量
1.下载源码编译运行
  1. clone/下载代码到你的电脑,导入到IDEA中运行,编译完成后,点击Run Main运行。

  2. 程序初始化后会先读取默认的签名配置文件(代码根目录\config.xml)

    • 点击“编辑密钥配置”编辑你的密钥配置。

    • 如果点击“编辑密钥配置”没反应,应该是没有配置xml的默认打开程序,可以找到"config.xml"用记事本打开编辑。

    • 编辑完,点保存关闭后。点击“编辑后,刷新密钥配置”,重新读取配置。

    • 可以参考config.xml格式,复制编辑保存成新的签名配置,签名前选择新密钥配置即可。

  3. 选择一个未签名的apk签名,配置渠道信息,然后打开签名后Apk的位置,验证签名状态。

  4. 修改代码,适应你的需求。

2.下载压缩包解压运行
  1. 进入Releases v1.2,下载附件ApkSignTools.7z

  2. 解压后,双击"ApkSignTools.exe"运行签名程序。

  3. 程序初始化后会先读取默认的签名配置文件(程序安装路径\app\config.xml)

    • 点击“编辑密钥配置”编辑你的密钥配置。

    • 如果点击“编辑密钥配置”没反应,应该是没有配置xml的默认打开程序,可以找到"config.xml"用记事本打开编辑。

    • 编辑完,点保存关闭后。点击“编辑后,刷新密钥配置”,重新读取配置。

    • 可以参考config.xml格式,复制编辑保存成新未新的签名配置,签名前选择新密钥配置即可。

  4. 选择一个未签名的apk签名,配置渠道信息,然后打开签名后Apk的位置,验证签名状态。

Apk渠道相关

基于美团渠道包解决方案 新增渠道写入功能。

需要注意的点是,由于写入多渠道空白文件会破坏App结构,在v1签名下没有影响,但是会导致v2签名成功后校验失败无法安装。
为了解决这个问题,需要在写入渠道后,v2签名前,使用zipalign.exe先将apk对齐。

zipalign对齐

由于写入多渠道空白文件会破坏App结构,所以要先使用zipalign对齐。

zipalign -v 4 " + 需要签名的apk +" "+ 对齐后的apk
注意

zipalign.exe位于AndroidSDK的build-tools目录下,不同的系统平台会有差异。

签名相关命令

旧版v1签名
jarsigner -verbose -keystore 你的密钥 -storepass 密钥密码 -keypass 别名密码 -sigfile CERT -signedjar 签名后的apk路径  待签名的apk  别名
新版v1&v2签名
java -jar apksigner.jar sign  --ks 你的密钥  --ks-key-alias 别名  --ks-pass pass:密钥密码  --key-pass pass:别名密码  --out 签名后的apk路径  待签名的apk   
验证Apk签名状态
java -jar apksigner.jar verify -v my.apk
签名状态说明
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true

第一行对应的结果,表示是否已使用v1签名。
第二行对应的结果,表示是否已使用v2签名。

Github

https://github.com/DeMonJavaSpace/SignatureTools

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值