【Android开发】jarsigner重新打包apk
签名(sign):在应用程序的特定字段写入特定的标记信息,表示该软件已经通过了签署者的审核。
过程:使用私有密钥数字地签署一个给定的应用程序。
作用:
识别应用程序作者;
检測应用程序是否发生改变;
有种程序升级。当新程序与旧程序签名不一致时,会发生冲突觉得不是同一APP,,要求新程序改包名。
签名步骤:
1. 安装并配置jdk;
2. 进入jdk目录
cd C:\Program Files\Java\jdk1.8.0\bin
3. 生成android.keystore
keytool -genkey -v -keystore android.keystore -alias android.keystore -keyalg RSA -validity 20000
注意:
- -keystore 后边紧跟 "android.keystore" 的是要生成的签名文件;
- -alias 后边紧跟 "android.keystore" 的是签名文件的别名;


此时在jdk的bin目录,已经生成了一个证书: android.keystore
4. 进行签名
jarsigner -verbose -keystore android.keystore -signedjar [签名后的apk路径+文件] [未签名的apk路径+文件] android.keystore
注意:
- -keystore 后边紧跟 "android.keystore" 的是上一步生成的签名文件;
- 最后一个词 "android.keystore" 是上一步指定的签名文件的别名;
- 如果不是 “.keystore” 类型的签名文件,而是 “.jks” 类型的,也可以拿过来直接替换使用。
此时会出现一行警告:
警告:未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。如果没有时间戳, 则在签名者证书的到期日期 (2113-10-30) 或以后的任何撤销日期之后, 用户可能无法验证此 jar。
jarsigner 签名命令里加入如下参数来解决:
-digestalg SHA1 -sigalg MD5withRSA
可以忽略,安装后测试是否可行!
5.验证签名
jarsigner -verify XiaomiVerifysignd.apk
6. 优化apk
不过需要把build-tools下的zipalin包放到tools下
zipalign -v 4 XiaomiVerifysignd.apk XiaomiVerifysignd_new.apk
附加:
1. 根据 “.jks" 文件或者 ".keystore" 文件获取签名信息
keytool -list -v -keystore [keystore文件名 或者 jks文件名]
从中可以看到各种信息,其中就包含上边提到的别名,所以如果忘记或者不知道别名,可以再次获取到。
2, 查看apk的签名信息
jarsigner -verify -verbose -certs [keystore文件名 或者 jks文件名]
3, Windows系统,Android Studio默认的签名目录
C:\Users\Administrator\.android\debug.keystore
查看签名命令 (密码android):
keytool -v -list -keystore debug.keystore
4, 查看apk的签名信息
jarsigner -verify -verbose -certs <your_apk_path.apk>
备注: 其他参数可以参考:http://www.cnblogs.com/gccbuaa/p/7092556.html
【Android开发】jarsigner重新打包apk的更多相关文章
- Android开发笔记:打包数据库
对于数据比较多的控制一般会加入SQLite数据库进行数据存储,在打包时这些数据库是不自动打包到apk中的,如何创建数据库呢 方法1:将创建数据库的sql语句在SQLiteHelper继承类中实现,在第 ...
- Android直接用手机打包apk!
你没有看错,用手机浏览器访问Jenkins,就可以打包apk,并生成下载二维码,发送邮件通知测试人员下载,从此解放双手,告别打包测试.先上本人手机邮箱收到的打包成功通知效果图: 废话少说, ...
- Android开发把项目打包成apk
做完一个Android项目之后,如何才能把项目发布到Internet上供别人使用呢?我们需要将自己的程序打包成Android安装包文件--APK(Android Package),其后缀名为" ...
- (转)Android开发把项目打包成apk
转:http://blog.csdn.net/luoyin22/article/details/7862742 做完一个Android项目之后,如何才能把项目发布到Internet上供别人使用呢?我们 ...
- Android开发中内置apk程序
首先申明,这里的方法介绍是针对我司自己项目中的具体开发板而做的. Mg701内置APK有三种方式 一. 这种方法必须要自己编写Android.mk文件(关于Android.mk可以参考 ...
- Android开发把项目打包成apk-(转)
做完一个Android项目之后,如何才能把项目发布到Internet上供别人使用呢?我们需要将自己的程序打包成Android安装包文件--APK(Android Package),其后缀名为" ...
- Android studio 自己定义打包APK名称
Android Studio打包应用默认生成的apk名称是:app-release.apk .假设我们要让生成的apk名跟我们版本号包名有联系的话.那我们就要自己定义生成的apk名了,要怎么做呢. 我 ...
- Android开发 Failed to install *.apk on device 'emulator-5554': EOF
在运行android 程序时出现这样的错误: Failed to install homework.apk on device 'emulator-5554': EOF java.io.IOExcep ...
- Android #Android开发环境搭建
Android #Android开发环境搭建 1.下载:Google在国服的官网 https://developer.android.google.cn/index.html 1.点击首页 “ 获取 ...
随机推荐
- LeetCode-073-矩阵置零
矩阵置零 题目描述:给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 .请使用 原地 算法. 进阶: 一个直观的解决方案是使用 O(mn) 的额外空间,但这并不 ...
- [csi]浅聊ceph-csi组件
描述 ceph-csi扩展各种存储类型的卷的管理能力,实现第三方存储ceph的各种操作能力与k8s存储系统的结合.调用第三方存储ceph的接口或命令,从而提供ceph数据卷的创建/删除.挂载/解除 ...
- 扩展auth_user字段、BBS需求分析、创建BBS数据库、注册页面搭建与用户头像展示及Ajax提交数据
昨日内容回顾 csrf跨站请求 1. SQL注入 2. xss攻击 3. csrf跨站请求 4. 密码加密(加盐) '''django中默认有一个中间件来验证csrf''' # 只针对post请求才验 ...
- Sqlserver 2008 导出数据库
sqlserver2008中导出数据库: ①当数据库中的数据量比较大时,可使用备份的方法. 路径可以默认,想自定义就点击[添加],最后[确定]即可. ②当数据量不是很大时,可以采用导出SQL执行语句的 ...
- tensorflow源码解析之framework-shape_inference
目录 什么是形状推断 InferenceContext 关系图 涉及的文件 迭代记录 1. 什么是形状推断 前面我们讲到op的时候,提到了操作的注册器OpRegistry,并且提到,其中注册的数据是一 ...
- CF1534F1题解
首先,对于一个在第 \(i\) 行 \(j\) 列的沙子,如果他开始下降,他能够使哪些沙子下降呢? 很容易得知是第 \(j-1,j,j+1\) 列所有行号不小于 \(i\) 的沙子. 对于沙子 \(u ...
- Cobalt Strike的安装
一.下载 压缩包下载回来之后,可以看到里面的文件有这些: 其中搭建团队服务器端的关键文件有两个,一个是cobaltstrike.jar,另一个是teamserver,这里我打算将团队服务器端搭在我的v ...
- 12.11 Exception
12.11exception 1.类别 检查性异常:用户错误或者问题引起的异常,此类异常程序员无法预见.例如:打开一个不存在的文件,用户输入错误(在只能输数字的地方输入汉字)...... 运行时异常: ...
- [WPF] 假装可变字体
1. 可变字体 上图中的两个动画,一个文字直接变粗,一个渐渐变粗,我觉得后者会更有趣.但普通的字体可达不到这种效果,例如微软雅黑,无论怎么调整它的 FontWeight,实际上它也只有三种粗细: 这时 ...
- display 不同的值及他们的作用
display 不同的值及他们的作用 常见 block 块元素类型,默认宽度为父元素宽度,可设置宽高,并独占一行 none 元素不显示,并从文档流中移除 inline 行内元素类型,默认宽度为内容宽度 ...