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

news2024/12/22 20:50:33

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.coloradmin.cn/o/2135031.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于Spring Cloud Gateway中 Filters的理解

Spring Cloud Gateway中 Filters的理解 Filters Filters拦截器的作用是,对请求进行处理 可以进行流量染色 ⭐增加请求头 例子 spring:cloud:gateway:routes:- id: add_request_header_routeuri: http://localhost:8123predicates:- Path=/api/**filters:- AddRequestHea…

嵌入式软件工程师:科技浪潮中的关键角色

嵌入式软件工程师:科技浪潮中的关键角色 一、嵌入式软件工程师的职业魅力 (一)市场需求旺盛 嵌入式软件工程师在当今科技领域中扮演着至关重要的角色。随着智能化时代的到来,嵌入式系统在各个行业的应用越来越广泛,市…

Java API 搜索引擎测试报告

一、测试项目介绍 基于SpringBoot开发的 Java API 文档搜索引擎,输入具体的类名或包名就能找到对应相关的搜索结果,点击标题即可跳转到对应官方网页。 二、测试 测试环境:Windows11,Google chrome浏览器 128.0.6613.138 (正式版…

jmeter 录制APP脚本

一、手机 1、修改网络 代理选择手动→填写服务器主机名(电脑IP,如:192.1xx.x.xx)→服务器端口(任意未被占用端口,如:8888) 2、安装证书 手机浏览器访问服务器主机名:服务器端口&a…

通过mqtt通信远程控制大疆无人机

一、控制大疆无人机通信链路如上图所示 二、大疆无人机pilot指令飞行通信交互逻辑如上图所示 三、实现远程控制步骤 3.1前端单独实现:只通过后端获取控制权,然后前端单独发送mqtt指令,延时较低。 3.2前后端一起实现:前端发送ht…

Leetcode - 周赛414

目录 一,3280. 将日期转换为二进制表示 二,3281. 范围内整数的最大得分 三,3282. 到达数组末尾的最大得分 四,3283. 吃掉所有兵需要的最多移动次数 一,3280. 将日期转换为二进制表示 本题就是简单的字符串和整数之…

产品密封防水设计技术、工艺标准及实施方案解培训

一、课程背景: 当前智能产品密封防水能力成为电子产品营销的重要卖点,虽然我们不需长期带着某种电子设备在水下工作和生活,意外却会令价值不菲的电子产品瞬间报废。时下智能手表和耳机成了慢跑伴侣,汗水或雨水长期的侵润腐蚀&…

查谷歌流量什么最准确,服务商提供的工具为什么不能用?

查网站的SEO流量,Google Search Console是最准确的工具,因为这就是谷歌官方提供的工具,谷歌这方面没必要造假,GSC能直接展示你的网站在谷歌搜索中的表现,包括点击次数、展示次数、点击率和平均排名。因为这些数据直接来…

项目需求 | MySQL增量备份与恢复的完整操作指南

目录 一、MySql数据库增量备份的工作原理 1、全量备份与增量备份 2、增量备份原理 二、进行增量备份 步骤1:启用二进制日志 使用 SHOW VARIABLES 命令查看二进制日志状态 步骤2:执行增量备份脚本 三、使用增量备份恢复损坏的数据库 步骤1&#…

[数据集][目标检测]男女性别检测数据集VOC+YOLO格式9769张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):9769 标注数量(xml文件个数):9769 标注数量(txt文件个数):9769 标注…

《程序猿之设计模式实战 · 池化思想》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

春意盎然:SpringBoot在线教育平台设计

第五章 系统实现 5.1用户功能模块 用户点击进入到系统操作界面,可以对首页、个人中心、课程信息管理、我的收藏管理、订单管理等功能模块,个人信息:通过列表可以获取账号、密码、姓名、性别、手机、邮箱、照片、备注并进行修改操作&#xff…

网络药理学:15、草稿暂存区(autodock vina)

TCMSP 韦恩图在线网站 https://bioinfogp.cnb.csic.es/tools/venny/index.html String数据库参数详解:https://www.bilibili.com/video/BV1q64y1k7Zf?p16&vd_sourceaed4c634975918b14b7354ec93ce5389 David数据库可以用基因ID或者基因名。 KEGG数据库使用&am…

大雪纷飞的视频素材去哪里找啊?雪景素材库分享

当冬季的银装素裹覆盖大地,无数抖音创作者便开始寻找那些可以捕捉到大雪纷飞的壮观画面。无论是为了制作节日主题的视频、记录下雪天的活动,还是单纯展示雪的清新美,优质的大雪视频素材都显得尤为重要。如果你正为寻找这类素材而苦恼&#xf…

软件测试面试题,精选100 道,内附答案

精挑细选,整理了100道软件测试面试题,都是非常常见的面试题,篇幅较长,所以只放出了题目,答案在评论区! 测试技术面试题 1、什么是兼容性测试?兼容性测试侧重哪些方面? 2、我现在有…

设计模式篇--抽象工厂模式

/*** 主要思路:先构建一个总工厂,包含许多分工厂,再从分工厂中,取出自己想要的类型的物品*/ public class main {public static void main(String[] args) {FactoryProducer factoryProducer new FactoryProducer();//获取手机工…

计算机网络(六) —— http协议详解

目录 一,预备知识 1.1 关于域名 1.2 关于URL 1.3 urlencode和urldecode 二,关于http 2.1 什么是http 2.2 http协议格式 2.2.1 网络协议栈 2.2.2 http请求协议格式* 2.2.3 http响应协议格式* 三,http细节字段 3.1 http方法 3.2 …

《A++ 敏捷开发》- 26 根与翼

中国社会一直非常强调家庭价值观,希望实现家族的持续传承,家族有族谱,代代相传的关系对每个家庭成员的成长产生深远影响。我们每个人都只是人类进化过程中的短暂过渡。父母普遍希望把最好的东西传承给下一代。然而我们需要问自己,…

【Go】Go语言中延迟函数、函数数据的类型、匿名函数、闭包等高阶函数用法与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

每日处理250亿个事件,Canva如何应对数据洪流

在这个数据被称为“新石油”的时代,如何有效地处理海量信息流显得尤为重要。作为广受欢迎的设计平台,Canva不仅因其用户友好的界面而备受关注,还因其高效利用Amazon Kinesis管理每日高达250亿个事件而成为热议焦点。让我们深入探讨Canva是如何…