当前位置: 首页 > 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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【二级C语言考试】自定义数据类型
  • Gin渲染
  • CSS01-语法规范、基础选择器
  • 使用ESP8266和OLED屏幕实现一个小型电脑性能监控
  • Spring Boot-热部署问题
  • C语言中值传递
  • java通过org.eclipse.milo实现OPCUA客户端进行连接和订阅
  • Python | Leetcode Python题解之第421题数组中两个数的最大异或值
  • 详细分析分布式事务场景、理论基础以及解决方法
  • 吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)2.1-2.2
  • python函数三:拆包和交换变量值、引用、匿名函数
  • 使用 uni-app 开发微信小程序的详细指南
  • Thymeleaf模板引擎
  • 【深度学习】发展过程和实际应用场景——图像分类 ?自然语音处理?语音识别?自动驾驶?医疗影像诊断?附代码
  • Java项目基于docker 部署配置
  • [译]前端离线指南(上)
  • 11111111
  • Apache Spark Streaming 使用实例
  • CentOS 7 修改主机名
  • ECMAScript6(0):ES6简明参考手册
  • Intervention/image 图片处理扩展包的安装和使用
  • Java Agent 学习笔记
  • JavaScript-Array类型
  • js中forEach回调同异步问题
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Sass Day-01
  • Terraform入门 - 3. 变更基础设施
  • win10下安装mysql5.7
  • 订阅Forge Viewer所有的事件
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 京东美团研发面经
  • 聊聊hikari连接池的leakDetectionThreshold
  • 区块链共识机制优缺点对比都是什么
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 入手阿里云新服务器的部署NODE
  • 用jquery写贪吃蛇
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • #if等命令的学习
  • #VERDI# 关于如何查看FSM状态机的方法
  • #进阶:轻量级ORM框架Dapper的使用教程与原理详解
  • (2)(2.10) LTM telemetry
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (一)Java算法:二分查找
  • (正则)提取页面里的img标签
  • (转)mysql使用Navicat 导出和导入数据库
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • ***监测系统的构建(chkrootkit )
  • *算法训练(leetcode)第四十七天 | 并查集理论基础、107. 寻找存在的路径
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .htaccess配置重写url引擎
  • .NET Micro Framework初体验
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .net 连接达梦数据库开发环境部署