Android系统要求所有安装的应用程序必需有数字签名。否则系统将不会安装和运行没有合适的签名许可的程序。无论是在设备还是模拟器上都必须给你的程序建立签名才可以调试运。这是所有Android开发人员都懂得的道理。但是什么是数字签名,其中的原理是什么呢?我并不了解。所有趁有空,查了查相关的知识。

在介绍Android,我们要了解密码学的基本知识:加密。请看对加密技术的一点总结(1)

而在Gphone上的数字签名不仅存在于所有安装的应用程序上,在使用updata.zip刷机的时候,刷机包也用到了签名验证。

首先看看apk是如何进行签名:

(1)必备工具:Sun官方网站下载JDK,安装后产生的keytool和jarsigne两个系统工具。

而对于两个工具和keystore的介绍请看:jdk工具keytool和jarsigner帮助Part1(jdk keytool&jarsigner tool manual) 和 jdk工具keytool和jarsigner帮助Part2(jdk keytool&jarsigner tool manual)

这两篇讲得非常的透彻,感谢NCNC

(2)生成keystore

$keytool -genkey -alias tekkaman.keystore -keyalg
RSA -validity 20000 -keystore tekkaman.keystore
输入keystore密码:
再次输入新密码:
您的名字与姓氏是什么?
[Unknown]: tekkaman
您的组织单位名称是什么?
[Unknown]: NERV
您的组织名称是什么?
[Unknown]: NERV
您所在的城市或区域名称是什么?
[Unknown]: Linux
您所在的州或省份名称是什么?
[Unknown]: GNU
该单位的两字母国家代码是什么
[Unknown]: CN
CN=tekkaman, OU=NERV, O=NERV, L=Linux, ST=GNU, C=CN 正确吗?
[否]: 是

输入<tekkaman.keystore>的主密码
(如果和 keystore 密码相同,按回车):

(3)使用你生成的keystore对apk包签名

$jarsigner -verbose -keystore tekkaman.keystore -
signedjar tekkaman_signed.apk tekkaman.apk tekkaman.keystore
输入密钥库的口令短语:
正在添加: META-INF/TEKKAMAN.SF
正在添加: META-INF/TEKKAMAN.RSA
正在签名: ......

......

下次介绍如何生成自己的加密文件,并使用这些文件对updata.zip刷机包签名!

更多相关文章

  1. Android性能测试 一些适用于Android(安卓)Studio的代码审查和性
  2. android切换输入法工具类
  3. 深入理解Android工程的编译过程
  4. 做自己的Android(安卓)ROM,屏蔽对framework中的系统APK的签名检查
  5. [Android(安卓)Studio 权威教程]打包、生成jks密钥、签名Apk、多渠
  6. AndroidStudio Build过程解析
  7. Android的界面设计工具——DroidDraw
  8. mac下Android(安卓)apk 破解流程
  9. [Android(安卓)Pro] Android签名与认证详细分析之二(CERT.RSA剖析

随机推荐

  1. Android SSL BKS证书的生成过程
  2. 安卓模拟器设置网速和延迟
  3. 短视频app开源源码android 给图片加文字
  4. 在PC上体验Android
  5. OpenERP Android(安卓)DEMO工程发布下载
  6. 【Android View】Android中View对触摸事
  7. 模拟器无法启动,卡在android字样的界面上
  8. Android(安卓)应用程序签名、发布
  9. linux下配置android sdk
  10. android开发环境之ADT安装,卸载,更新