【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文件名]
备注: 其他参数可以参考:http://www.cnblogs.com/gccbuaa/p/7092556.html
转载于:https://www.cnblogs.com/neo-java/p/10185011.html
【Android开发】jarsigner重新打包apk相关推荐
- win8下cocos2dx3.2移植android平台及代码打包APK
cocos2dx程序不能只在VS2012下运行,迟早是要搬运到Android和IOS上的.Windows下移植IOS平台先搁下不说比较困难,而且只有越狱的苹果机才可以运行,而且毕竟IOS高端.小众 ...
- Android开发Android studio之gradle打包apk重命名的方法
老套路,先看效果图: 首先第一步在gradle里面(跟android同级)写个获取当前时间的方法如下: //获取时间的方法 GMT+8代表北京时间,下面两个方法都可以 static def getNo ...
- Android Studio 2.3 打包apk
LZ-Says:写代码写得突然蒙比了,来来回回折腾了小2个月,乱啊~ 前言 话说从Eclipse转化到Android Studio后,一直都没打个包,发个版本,今天想提交测试打个版本,丫的一看,和Ec ...
- Android直接用手机打包apk!
你没有看错,用手机浏览器访问Jenkins,就可以打包apk,并生成下载二维码,发送邮件通知测试人员下载,从此解放双手,告别打包测试.先上本人手机邮箱收到的打包成功通知效果图: 废话少说,开干! 本人 ...
- Android开发把项目打包成apk
做完一个Android项目之后,如何才能把项目发布到Internet上供别人使用呢?我们需要将自己的程序打包成Android安装包文件--APK(Android Package),其后缀名为" ...
- android开发 Gradle多渠道打包以及集成360加固
先上图 先说实现的目的 主要是 用脚本做渠道打包 然后在APP里面添加数据 在启动时读取数据上传服务器做统计 然后为啥要这么做:第一个是因为APP里面在做渠道包的时候 需要加特定的东西,区别这些APP ...
- Android 超级简单的打包apk
为什么要打包: apk文件就是一个包,打包就是要生成apk文件,有了apk别人才能安装使用.打包分debug版和release包,通常所说的打包指生成release版的apk,release版的apk ...
- Qt 配置Android开发环境,及.apk软件发布方法
Qt版本:5.14.1 1 准备安装资源 JDK SDK NDK 下载链接: 链接:https://pan.baidu.com/s/17AgHX0uW4ase2AKemP__VA 提取码:ojnd ...
- unity android解析包失败,打包APK失败。求解释
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Error building Player: CommandInvokationFailure: Failed to re-package resourc ...
最新文章
- 计算机rsnge指令,计算机二级office Excel 函数复习重点
- 2020应届生「求职图鉴」,扎心了!
- 大多数Web浏览器中都可以使用PUT,DELETE,HEAD等方法吗?
- 定位技术GPS/A-GPS/LBS/WIFI定位介绍
- 深入浅出理解有限状态机
- UE4 使用VaRest的最佳实践
- 单例(Singleton)设计模式应用场景
- 误区30日谈21-24
- hal库开启中断关中断_STM32 HAL库学习系列第9篇---NVIC按键外部中断函数
- 高中信息技术——Photoshop刷题点整理
- 解析接口中的JSON数据
- 北大计算机与微电子学校,中国计算机大会CNCC2019在苏州隆重举行
- 转:getaddrinfo函数详解
- 物联网案例_讨论物联网采用的商业案例
- 这猪蹄是人类能吃完的?
- Chrome Extension 介绍
- 元分析 | 大脑同伦共激活的性别差异
- device mapper与device-mapper-persistent-data 和 lvm2
- jasper翻译_Jasper为什么成为了Max的小翻译 孩子要从小学习双语吗
- php 虚拟机速度慢,[译]PHP虚拟机(PHP Virtual Machine)
热门文章
- mvc ajax 页面不刷新页面,如何在不刷新页面MVC C#的情况下显示不同的值
- mysql 窗口函数_7、MySQL高级功能(窗口函数)
- hdu 6351 Beautiful Now
- dns提供商主机名_DNS域名解析的过程
- 深入理解Python对象(源码深度解析)
- 基于范围的for循环
- bzoj 4498: 魔法的碰撞(DP+组合数)
- HDU 6156 2016ICPC网络赛 G: Palindrome Function(数位DP)
- python 批量修改文件名
- mqtt安装使用教程。(基于rabbitmq插件,docker部署,k8s部署,python教程)