当前位置: 首页 > news >正文

Android 签名、空包签名 、jarsigner、apksigner

jarsigner是JDK提供的针对jar包签名的通用工具,

位于JDK/bin/jarsigner.exe

apksigner是Google官方提供的针对Android apk签名及验证的专用工具,

位于Android SDK/build-tools/SDK版本/apksigner.bat

jarsigner:

jarsigner签名空包执行的命令:

jarsigner -verbose -keystore [your signature storage path] -signedjar [signed filename] [unsigned filename] [alias] 

[your signature storage path]-keystore文件路径

[signed filename]-签名以后的apk

[unsigned filename]-要签名的apk

[alias] -keystore中的别名!


为了防止环境变量配置导致的问题,请将待签名的空包“xx.apk”和待签名的私钥keystore拷贝到JDK下的bin目录下。

androidStudio查看配置的jdk路径:

把jks与空包同时放入JDK下的bin目录下。

jks的别名用自己的,这里用xxx代替。

cmd进入到JDK下的bin目录下,执行命令:
jarsigner -verbose -keystore xxx.jks -signedjar OppoSignVerify_signed.apk OppoSignVerify.apk xxx

输入密码签名完成

JDK下的bin目录下生成已签名的apk包。

apksigner:

apksigner签名空包执行的命令:

apksigner sign --ks [your private key storage path] --ks-key-alias [your key alias] --out [path to signed file] [path to unsigned file]

[your private key storage path]-jks文件路径

[your key alias]-别名

[path to signed file]-签名以后的apk输出路径

[path to unsigned file]-要签名的apk路径

androidStudio查看配置的sdk路径:

cmd进入到SDK\build-tools\对应版本 的目录下,执行命令:(C:\Users\guowe\Desktop\signDir是自己未签名和jks所在的路径)
apksigner sign --ks C:\Users\guowe\Desktop\signDir\xxx.jks  --ks-key-alias xxx --out C:\Users\guowe\Desktop\signDir\signed.apk C:\Users\guowe\Desktop\signDir\OppoSignVerify.apk

Keystore password for signer #1: (输入签名密码)后回车,签名完成

目录下生成已签名的apk包

同时会生成.idsig 文件。

APK 签名方案 v4 是在 Android 11 中引入的。Android 11 将签名存储在单独的 [apk name].apk.idsig 文件中。
具体看:
Android 应用签署
Android不同的签名方式讲解

apksigner签名过程中,出现的话

按照提示在命令前加上.\可以执行成功。
.\apksigner sign --ks.....

--------------------------------------------------------------------------------------------

用apksigner打小米签名空包遇到的问题:

https://global.developer.mi.com/document?doc=appManagement.emptyPackageSignatureGuide

下载了小米的空包:com.xiaomi.getapps.signature.verification.apk
按照示例命令签名:
apksigner sign --ks C:\Users\YourName\keystore-test.jks  --ks-key-alias keystore-test --out C:\Users\YourName\signed.apk C:\Users\YourName\com.xiaomi.getapps.signature.verification.apk

输出的apk也按照signed.apk 这样命名。但把签完名的apk提交时报错:

解决方式:
把签完名的apk也用com.xiaomi.getapps.signature.verification.apk来命名。。。。。。

也就是:

apksigner sign --ks C:\Users\YourName\keystore-test.jks  --ks-key-alias keystore-test --out C:\Users\YourName\com.xiaomi.getapps.signature.verification.apk C:\Users\YourName\com.xiaomi.getapps.signature.verification.apk

把最后生成的com.xiaomi.getapps.signature.verification.apk 再提交就验证通过了。。。。。。。。。。。。。。。。。。。。。。。

参考:
Android中APK签名工具之jarsigner和apksigner详解
https://cloud.tencent.com/developer/article/1743269

http://www.lryc.cn/news/440158.html

相关文章:

  • java基础(小技巧)
  • Android Studio 安装配置教程(Windows最详细版)
  • Cesium绘制可编辑线
  • 【算法】差分思想:强大的算法技巧
  • 微软开源项目 Detours 详细介绍与使用实例分享
  • Numba基础
  • [JAVA]介绍怎样在Java中通过字节字符流实现文件读取与写入
  • oracle停止当前运行的JOB或kill会话
  • SpringBoot 消息队列RabbitMQ 消息可靠性 数据持久化 与 LazyQueue
  • CLIP论文中关键信息记录
  • sshj使用代理连接服务器
  • 【Leetcode:1184. 公交站间的距离 + 模拟】
  • VRRP 笔记
  • 【洛谷】P3743 小鸟的设备 的题解
  • 算法面经手撕系列(2)--手撕BatchNormlization
  • mysql-搭建主从复制
  • MiniMaxi-共创智能新体验新手入门
  • Docker torchserve 部署模型流程
  • mybatis开启日志
  • MobaXterm : Network error: Connection refused(连接被拒绝)
  • 电脑的主板,内存条插多少合适?
  • C++:初始化列表
  • [000-01-008].第05节:OpenFeign特性-重试机制
  • Android 11(API 级别 30)及以上版本中,将Bitmap保存到设备上
  • django orm增删改查操作
  • 禁忌搜索算法(TS算法)求解实例---旅行商问题 (TSP)
  • Rust 所有权 简介
  • linux-网络管理-防火墙配置
  • 【springboot】实现文件上传和下载
  • 【RabbitMQ】RabbitMQ如何保证数据的可靠性,RabbitMQ如何保证数据不丢失,数据存储