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: ...
随机推荐
- 在vue中添加ico图标
准备:添加 ico图标在与index.html同级的目录 第一种方法: 在index.html中引入: <link rel="shortcuticon" type=" ...
- JS基础语法---作用域
作用域:使用范围 全局变量: 声明的变量是使用var声明的, 那么这个变量就是全局变量 全局变量可以在页面的任何位置使用 除了函数以外, 其他的任何位置定义的变量都是全局变量 局部变量:在函数内部定义 ...
- 2019 DevOps 必备面试题——DevOps 理念篇
原文地址:https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3 原文作者:Saurabh Kulshrestha 翻译君 ...
- jmeter控制器(四)
交替控制器: 交替控制器主要是让控制器里面的请求顺序执行,如下图设置了审批管理循环3次,那么第一次运行就执行了请假模块,第二次运行执行了请假模块1,第二次执行了请加模块2,依顺序每一个请加模块只执行一 ...
- 网络时间服务和chrony
⽹络时间服务和chrony 实验练习: 准备实验环境: 可用的centos6.7系统. centos6 :192.168.37.6 centos7 :192.168.37.7 关闭selinux 关闭 ...
- z390 m.2 接口插上sata 硬盘后,机械硬盘不识别;HDD 硬盘不识别;z390 m.2和 SATA 硬盘安装组合;
今天,在集成z390芯片组的主板上,安装了一块m.2支持 sata协议的ssd时,发现安装上ssd后,之前机械硬盘不识别了:还以为机械硬盘烧了: 在网上查找相关博客可以发现,是M.2 SATA 和 S ...
- 表单生成器(Form Builder)之表单数据存储结构mongodb篇
从这篇笔记开始,记录一下表单生成器(Form Builder)相关的一些东西,网上关于他的介绍有很多,这里就不解释了. 开篇说一下如何存储Form Builder生成的数据.
- [PHP] cli环境下php设置进程名字
if (function_exists('cli_set_process_title')) { cli_set_process_title("superman php master proc ...
- July 7th, 2019. Week 27th, Sunday
We laughed and kept syaing "see you soon", but inside we both knew we would never see each ...
- docker搭建kafka环境&&Golang生产和消费
docker 搭建kafka环境 version: '2' services: zk1: image: confluentinc/cp-zookeeper:latest hostname: zk1 c ...