Android apk签名方法介绍
还望支持个人博客站:http://www.enjoytoday.cn
参考博客:http://www.enjoytoday.cn/posts/203
为什么要签名
在介绍签名方法之前,首先我们来了解下,android系统为何需要我们签名后才可安装运行apk,其实这个签名和我们生活中的信用卡签名并无本质不同,就是一个对apk身份的验证,对于apk的一种担责行为。apk前面采用加密算法(RSA或DSA)对apk加密验证以确保在apk安装运行之前的文件完整性和未被修改。
签名前的准备
签名其实说白了即使对文件进行加密,将整个文件给”锁起来”了。因此, apk前面前需要获取两个文件,一个是android已经编译成功 的apk文件,另一个即使apk的签名文件。当然,签名前你还是需要知道你的签名文件的签名基本参数的:别名和签名密码。所以在签名之前,我们需要做两个最基础的事情:一是编译生成apk文件,二是创建私有签名文件,apk文件编译胡不多赘述,主要来说如何生成一个签名文件。
签名文件的生成
签名文件的生成方式主要有两种,一种是工具式的可视化生成,一种是通过命令行方式生成。下面我主要介绍通过命令行方式生成一个前面文件*.jks.
命令行生成的前提是需要你已经成 功安装配置java运行时环境,生成签名证书使用的是java源码工具下的一个工具keytool,命令格式如下:
#keytool -genkey -alias keyname -keyalg RSA --validity 20000 -keystore keyname.jks -storepass storepass -keypass keypass
各个选项的含义如下所示:
-genkey : 生成.jks或.keystore文件
-alias :签名文件的别名,若需要导入eclipse对应用进行签名则需要设置为 androiddebugkey
-keyalg : 加密方式
-validity : 有效时间
-keystore : .jks或.keystore文件名
-storepass :store仓库密码,若需要导入eclipse对应用进行签名则需要设置为android
-keypass : .jks或.keystore文件的密码
命令运行后会显示一些需要你输入的信息,包括公司信息、个人地址、个人姓名等相关信息,显示如下:
最后确认后就会在当前目录生成一个keyname.jks前面文件,如此就完成了一个签名文件的创建过程 。
开始签名
命令行签名使用的是java自带工具jarsigner签名工具签名,签名使用使用的命令如下:
#jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore keyname.jks -signedjar. test.tspk release.apk keyname
如此就可成功将test.apk签名成功,输出签名成功后的apk文件release.apk.
查看签名
签名后我们可以通过keytool工具对我们的apk进行查看签名信息,结果会输出你签名时填入的相关信息,以及一个生成的sha1和md5值,命令如下:
#keytool -printcert -jarfile release.apk
结果显示如下:
签名者 #1:
签名:
所有者: C=US, O=Android, CN=Android Debug
发布者: C=US, O=Android, CN=Android Debug
序列号: 1
有效期开始日期: Sun May 15 02:14:14 CST 2016, 截止日期: Tue May 08 02:14:14 CST 2046
证书指纹:
MD5: 7C:79:6B:BD:C5:CE:9C:A5:BB:3F:F2:20:39:6A:A7:B5
SHA1: 4A:00:08:BE:CC:A6:9A:CE:7D:82:F5:84:C1:31:C6:19:99:12:84:53
SHA256: A1:36:20:F4:E3:32:9C:32:F7:28:B1:8A:EB:15:42:37:1C:A5:10:47:47:A1:E2:12:AB:29:C5:62:35:05:C4:B3
签名算法名称: SHA1withRSA
版本: 1
Android apk签名方法介绍的更多相关文章
- Android APK 签名比对(转)
Android apk签名的过程 1. 生成MANIFEST.MF文件: 程序遍历update.apk包中的所有文件(entry),对非文件夹非签名文件的文件,逐个生成SHA1的数字签名信息,再用Ba ...
- Android apk签名详解——AS签名、获取签名信息、系统签名、命令行签名
Apk签名,每一个Android开发者都不陌生.它就是对我们的apk加了一个校验参数,防止apk被掉包.一开始做Android开发,就接触到了apk签名:后来在微信开放平台.高德地图等平台注册时,需要 ...
- Android APK 签名 (转发)
Cordova 3.5 为 Android APK 签名,生成可发布的 APK 程序文件 任侠 2014-06-07 00:04 移动开发 抢沙发 16,288 views 目录 [隐藏] ...
- Android apk签名的两种方法
编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识.前端.后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过! 为了保证 ...
- [转]Android APK签名原理及方法
准备知识:数据摘要 这个知识点很好理解,百度百科即可,其实他也是一种算法,就是对一个数据源进行一个算法之后得到一个摘要,也叫作数据指纹,不同的数据源,数据指纹肯定不一样,就和人一样. 消息摘要算法(M ...
- Android : apk签名的多种方法以及key的配置
方法一:使用Android SDK中的签名工具给apk签名: (1)Android源码的 build/target/product/security/ 目录下有 media.pk8.media.x50 ...
- Android APK签名
一.为什么要签名? 开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样的名字,这时候如何区分?签名这时候就是起区分作用的. 由于开发商可能通过使用相同的Package Name来 ...
- Android APK安装过程介绍
课题路径:从Myfile中点击应用进行安装,到安装完成,过程分析 思想方法:在研究PreloadInstaller的时候我们直接从整个apk的文件结构入手,由整体到部分的分析:但现在整个PMS非常庞大 ...
- apk签名方法
生成签名文件: 1.右击项目管理器 选择 Export... 菜单: 2.在弹出的Export窗口中选择 Android->Export Android Application 后 next: ...
随机推荐
- Java生鲜电商平台-商城系统库存问题分析以及产品设计对逻辑/物理删除思考
Java生鲜电商平台-商城系统库存问题分析以及产品设计对逻辑/物理删除思考 说明:在生鲜电商的库存设计,是后台的重点,也是难点,关乎商品是否存在超卖.商品的库存增加方式倒不难,直接在后台添加即可,而扣 ...
- Cesium专栏-热力图(附源码下载)
Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...
- Violet音乐社区界面原型手册
目录 Violet音乐社区界面原型手册 一.引言 1.0 项目前阶段相关文档 1.1 编写目的 1.2 开发背景 二.界面原型展示 2.0 界面设计说明 2.1 首页 2.2 歌单/专辑/单曲界面 2 ...
- could not launch process: debugserver or lldb-server not found: install XCode's command line tools or lldb-server
0x00 事件 VS 调试 go 的时候,发生了这个错误,导致无法调试: could not launch process: debugserver or lldb-server not found: ...
- linux学习(十)Shell中的控制语句
目录 1. 条件测试语句 1.1 test语句 1.2[]语句 1.3文件测试 1.4字符串测试 1.5数值测试 1.5逻辑操作符 @(Shell中的控制语句) 1. 条件测试语句 测试语句十Shel ...
- Git 在小团队中的管理流程
目标读者:了解 Git 的基本概念,能够使用 Git 进行基本的本地和远程操作. 有关 Git 的基础知识可以参见 知乎回答-怎样使用 GitHub?,天猪(刘勇)给出了一些很好的学习资料. 本文介绍 ...
- go语言设计模式之interpreter
interpreter.go package interpreter import ( //"fmt" "strconv" "strings" ...
- cf之 前缀和差分
给定一个n×n的WB矩阵,给定一个k∗k的能把B变成W的橡皮擦,求橡皮擦作用一次后,全为W的行.列总数最大值 连接:http://codeforces.com/contest/1200/problem ...
- AcWing 836. 合并集合
地址 https://www.acwing.com/problem/content/838/ 一共有n个数,编号是1~n,最开始每个数各自在一个集合中. 现在要进行m个操作,操作共有两种: “M a ...
- LG5196 「USACO2019JAN」Cow Poetry 背包+乘法原理
\(\mathrm{Cow Poetry}\) 问题描述 LG5196 题解 因为每句诗的长度一定是\(k\),所以自然而然想到背包. 设\(opt[i][j]\)代表到第\(i\)位时,结尾为\(j ...