千家信息网

Android签名的示例分析

发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,这篇文章主要介绍了Android签名的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在Android 系统中,所有安装 到 系
千家信息网最后更新 2025年11月13日Android签名的示例分析

这篇文章主要介绍了Android签名的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

在Android 系统中,所有安装 到 系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个 permission的protectionLevel为signature,那么就只有那些跟该permission所在的程序拥有同一个数字证书的应 用程序才能取得该权限。Android使用Java的数字证书相关的机制来 给apk加盖数字证书,要理解android的数字证书,需要先了解以下数字证书的概念和java的数字证书机制。Android系统要求每一个安装进系 统的应用程序都是经过数字证书签名的,数字证书的私钥则保存在程序开发者的手中。Android将数字证书用来标识应用程序的作者和在应用程序之间建立信 任关系,不是用来决定最终用户可以安装哪些应用程序。这个数字证书并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。

一:同一个开发者的多个程序尽可能使用同一个数字证书 ,这可以带来以下好处。

(1)有利于程序升级,当新版程序和旧版程序的数字证书相同时,Android系统才会认为这两个程序是同一个程序的不同版本。如果新版程序和旧版程序的数字证书不相同,则Android系统认为他们是不同的程序,并产生冲突,会要求新程序更改包名。

(2)有利于程序的模块化设计和开发。Android系统允许拥有同一个数字签名的程序运行在一个进程中,Android程序会将他们视为同一个程序。所以开发者可以将自己的程序分模块开发,而用户只需要在需要的时候下载适当的模块。

(3) 可以通过权限(permission)的方式在多个程序间共享数据和代码。Android提供了基于数字证书的权限赋予机制,应用程序可以和其他的程序共 享概功能或者数据给那那些与自己拥有相同数字证书的程序。如果某个权限(permission)的protectionLevel是signature, 则这个权限就只能授予那些跟该权限所在的包拥有同一个数字证书的程序。

在签名时,需要考虑数字证书的有效期 :

(1)数字证书的有效期要包含程序的预计生命周期,一旦数字证书失效,持有改数字证书的程序将不能正常升级。

(2)如果多个程序使用同一个数字证书,则该数字证书的有效期要包含所有程序的预计生命周期。

(3)Android Market强制要求所有应用程序数字证书的有效期要持续到2033年10月22日以后。

二:Android数字证书包含以下几个要点:

(1)所有的应用程序都必须有数字证书 ,Android系统不会安装一个没有数字证书的应用程序

(2)Android程序包使用的数字证书可以是自签名的,不需要一个权威的数字证书机构签名认证

(3)如果要正式发布 一个Android ,必须使用一个合适的私钥生成的数字证书来给程序签名 ,而不能使用adt插件 或者ant工具 生成的调试证书来发布。

(4)数字证书都是有有效期 的,Android只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能。

(***ndroid使用标准的java工具 Keytool and Jarsigner 来生成数字证书,并给应用程序包签名。

(6)使用zipalign 优化 程序。

Android 系统不会安装运行任何一款未经数字签名的apk程序,无论是在模拟器上还是在实际的物理设备上。Android的开发工具(ADT插件和Ant)都可以协 助开发者给apk程序签名,它们都有两种模式:调试模式(debug mode)和发布模式(release mode)。

在调试模式下,android的开发工具会在每次编译时使用调试用的数字证书给程序签名,开发者无须关心。

当要发布程序时,开发者就需要使用自己的数字证书给apk包签名,可以有两种方法。

(1)在命令行下使用JDK中的和Keytool(用于生成数字证书)和Jarsigner(用于使用数字证书签名)来给apk包签名。

(2)使用ADT Export Wizard进行签名(如果没有数字证书可能需要生成数字证书)。
三;两种签名方式


***种签名方式, 使用Keytool和Jarsigner给程序签名( 用于1.5以下版本 )


命令:keytool -genkey -v -keystore android.keystore -alias android -keyalg RSA -validity 20000

该 命令中,-keystore ophone.keystore 表示生成的证书,可以加上路径(默认在用户主目录下);-alias ophone 表示证书的别名是ophone;-keyalg RSA 表示采用的RSA算法;-validity 20000表示证书的有效期是20000天。

此时,我们会在互用主目录下看到ophone.keystore,即我们刚刚创建的证书。


第二种签名方式:现在介绍android 1.5及更新版本的apk签名方式

1,打开Eclipse->选择你要签名的项目->右击->android tools->Export signed Application package...


2,跳出窗口

3,project checks 如果核对项目名没有问题的话 点击 Next
然后跳出keystore selection 如果是已经存在keystore的文件就选择然后next 输入keystore的密码进行签名。
如果没有的话选择 create new keystore 然后选择 keystore 保存的位置,设置keystore的密码,点击Next。


4.填写keystore的基本信息,如,别名,密码,有效期,姓名,组织,组织名称,所在城市,所在省份,国家等,点击Next


5.选择被签名后的APK保存位置。点击finish。


6.就可以在你保存的位置中找到相应的被签名后的APK文件。

感谢你能够认真阅读完这篇文章,希望小编分享的"Android签名的示例分析"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

程序 证书 数字 数字证书 应用程序 应用 开发 系统 有效 有效期 开发者 权限 方式 生成 选择 工具 所在 模式 篇文章 相同 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全备案处罚案例 数据库的四个参数 支撑软件是支持软件开发 怎样开minecraft服务器 什么服务器支持240伏直流电 宽城区网络技术服务质量保障 江西科技师范大学互联网工程 维护网络安全创建文明校园手抄报 ddr4服务器内存有几种 软件开发和工程专业哪个好 数据库系统主要由哪四部分 陕西语音网络技术服务 股票分析安卓软件开发 网络安全电视 江苏营销网络技术服务费 美国道富的软件开发 怎么重置服务器文件 数据库共享锁 x轴步进服务器的作用 网络技术发展阶段有网络平台 网络安全法对境内外网络安全 近几年的重大网络安全事件 软件开发和工程专业哪个好 深圳翰升网络技术有限公司 不能使用关键字段的数据库有 数据库 空间索引 公司网络安全三同步 黄浦区无线网络技术包括什么 软件开发员证书 软件开发技术基础pdf下载
0