【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.点击首页 “ 获取 ...
随机推荐
- Chapter02 Java概述
Chapter02 Java概述 目录 Chapter02 Java概述 2.1 什么是程序 程序: 2.2 Java的重要特点 2.3 Java 运行机制及运行过程 2.3.1 Java 语言的特点 ...
- PHP底层运行原理简括
PHP是一种适用于web开发的动态语言.具体点说,就是一个用C语言实现包含大量组件模块的软件框架.是一个强大的UI框架. 简言之:PHP动态语言执行过程:拿到一段代码后,经过词法解析.语法解析等阶段后 ...
- laravel html转pdf
这两天项目中需要将HTML页面转换为PDF文件方便打印,我在网上搜了很多资料.先后尝试了laravel-dompdf和laravel-snappy两种扩展包,个人感觉laravel-snappy比较好 ...
- find: `./folder': No such file or directory 错误处理
这是我正在处理的目录的内容: misha@hp-laptop:~/work/c/5$ ls -l total 8 -rw-rw-r-- 1 misha misha 219 May 20 15:37 d ...
- angular批量上传图片并进行校验
最近做一个项目,有一个批量上传图片,并校验是否是图片和上传最大数量的需求.下面分享一下我的想法,欢迎大神探讨. 首先是在html中支持批量上传和接收图片(mac下设置了之后不存在类型校验),下面上ht ...
- pd.merge操作的on参数解释
# 同时传入两个Key,此时会进行以['key1','key2']列表的形式进行对应,left的keys列表是:[['K0', 'K0'],['K0', 'K1'],['K1', 'K0'],['K2 ...
- ubuntu21.10搭建jenkins和gitlab自动化部署环境
镜像下载.域名解析.时间同步请点击阿里云开源镜像站 前置环境: vmware pro 16 + ubuntu21.10 安装gitlab 搭建ssh远程 打开终端 sudo apt-get insta ...
- mongoDb入门并整合springboot
镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 MongoDb简介 MongoDb是一种非关系型数据库,是现在非常火热的noSQL.也被称为文档性数据库.(可存放json,xml等格式) mo ...
- 内网渗透----域环境搭建(server 2008)
域控制器 配置静态IP 安装域服务 点击服务器管理器-添加角色-下一步-添加AD域服务: 安装过后运行安装向导: 下一步后选择"在新林中新建域": 若提示密码不符合要求,则配置密码 ...
- Sealer - 把 Kubernetes 看成操作系统集群维度的 Docker
作者 | 中弈 写在开头 身为一名技术人员,总是喜欢把自己的作品打造成理想状态呈现给别人,我非常荣幸能把集群镜像这样一个卓越的想法变成现实, 也非常开心用户使用我们的作品时对我们的高度认可. Seal ...