签名详解(一)

1. 引言

  • Android系统要求每一个Android应用程序必须要经过数字签名才能够安装到系统中;
  • 在我们的开发调试中,ADT会自动的使用debug密钥为应用程序签名;
  • debug密钥是一个名为debug.keystore的文件,它的默认位置C:\Users\Administrator.android/debug.keystore;
  • 这个数字签名由应用程序的作者完成,并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的,Android通过数字签名来标识应用程序的作者和在应用程序之间建立信任关系;

2. 应用程序签名步骤

  • 完全通过DOS命令来完成apk签名(本文主讲该方式)

  • 通过命令行给apk签名一共要用到3个工具分别是:keytool、jarsigner和zipalign:
    1.keytool:生成数字证书,即密钥,扩展名为.keystore的文件;
    2.jarsigner:使用数字证书给apk文件签名;
    3.zipalign:对签名后的apk进行优化,提高与Android系统交互的效率(Android SDK1.6版本开始包含此工具)

  • 如果你是第一次做Android应用程序签名,上面的3个工具都将用到;但如果你已经有数字证书了,以后再给其它apk签名时,只需要用到jarsigner和zipalign就可以完成。
    为了方便使用上面3个命令,首先需要将上面3个工具所在路径添加到环境变量path中(是为了方便使用,不是必须)。这3个工具默认所在的路径:
    1)keytool:该工具位于jdk安装路径的bin目录下;
    2)jarsigner:该工具位于jdk安装路径的bin目录下;
    3)zipalign:该工具位于android-sdk-windows\tools\目录下
    不知道大家是否注意到keytool和jarsigner两个工具是jdk自带的,也就意味着生成数字证书和文件签名不是Android的专利;

  • 通过ADT提供的图形化界面完成apk签名签名详解(二)

3. 生成未经签名的apk文件

  • Eclipse下,在Android工程名称上点击右键,依次选择"Android Tools" - "Export Unsigned Application Package ...",然后选择一个存储位置保存得到的未经签名的apk文件。
  • Android studio下,打开右侧的 Gardle 窗口 ,展开列表里的三角形 , 双击 assemble 选项,生成的 APK 在: …/YourProject/app/build/outputs/apk/app-debug.apk


    page_1

**4. 使用keytool工具生成数字证书 **

keytool -genkey -v -keystore sign.keystore -alias sign -keyalg RSA -validity 20000
/*      
1) keytool是工具名称,-genkey意味着执行的是生成数字证书操作,-v表示将生成证书的详细信息打印出来,显示在dos窗口中;     
2)-keystore sign.keystore 表示生成的数字证书的文件名为"sign.keystore";      
3)-alias sign表示证书的别名为"sign",可以和文件名一样;      
4)-keyalg RSA 表示生成密钥文件所采用的算法为RSA;      
5)-validity 20000 表示该数字证书的有效期为20000天,意味着20000天之后该证书将失效在执行上面的命令生成数字证书文件时,会提示你输入一些信息,包括证书的密码。
*/
Paste_2
keytool -list -v -keystore sign.keystore//查看JKS中生成的证书的详细信息
Paste_3

**5. 使用jarsigner工具为Android应用程序签名 **

jarsigner -verbose -keystore sign.keystore -signedjar app-signed.apk app-unsigned sign

*/
1)jarsigner是工具名称,-verbose表示将签名过程中的详细信息打印出来,显示在dos窗口中;      
2)-keystore sign.keystore 表示签名所使用的数字证书所在位置,此处没有写路径,表示在当前目录下默认:C:\Users\Administrator;      
3)-signedjar app_signed.apk app.apk 表示给notepad.apk文件签名,签名后的文件名称为notepad_signed.apk;      
4)最后面的sign 表示证书的别名,对应于生成数字证书时-alias参数后面的名称
*/

6. 使用zipalign工具优化已签名的apk(非必须但建议这么做)

      zipalign -v 4 app-signed.apk app_signed_aligned.apk
/*      
1)zipalign是工具名称,-v表示在DOS窗口打印出详细的优化信息;      
2)app-signed.apk app_signed_aligned.apk 表示对已签名文件app-signed.apk进行优化,优化后的文件名为app_signed_aligned.apk
*/
  • 至此就完成了通过DOS命令来对apk进行签名

感谢:博客园的阿拉丁

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,264评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,549评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,389评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,616评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,461评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,351评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,776评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,414评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,722评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,760评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,537评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,381评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,787评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,030评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,304评论 1 252
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,734评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,943评论 2 336

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,142评论 25 707
  • 参考什么是 Android 签名机制,Bluebox Security 发现的漏洞有何威胁? Android应用程...
    合肥黑阅读 2,065评论 1 16
  • < 本文主要为大家详细讲解APK数字签名方面的内容,并介绍APK调试模式和发布模式下数字签名的方式。 本文转...
    好读书不求甚解阅读 2,670评论 6 13
  • app签名,相当于是app在Anndroid系统上的一个认证,Android系统要求每一个Android应用程序必...
    spilledyear阅读 4,840评论 7 6
  • 这个世界上最伟大的是光荣的胜利比光荣的胜利更伟大的是诚实的失败:诚实的失败证明我们曾经尝试过不可能的事。
    郭绿狮阅读 196评论 0 1