Android系统要求每一个安装进系统的应用程序都是经过数字证书签名的,数字证书的私钥则保存在程序开发者的手中。Android系统将数字证书用于在应用程序的作者和应用程序之间建立信任关系,但并不用于决定最终用户可以安装哪些应用程序。这个数字证书并不需要权威的数字证书签名机构认证,它只是用于应用程序包自我认证的。
Android数字证书包含以下几个要点:
(1)所有的应用程序都必须有数字证书,Android系统不会安装一个没有数字证书的应用程序。
(2)Android程序包使用的数字证书可以是自签名的,不需要一个权威的数字证书机构签名认证。
(3)如果要正式发布一个Android应用程序安装包,必须使用一个合适的私钥生成的数字证书来给程序签名,而不能使用如ant工具等生成的调试证书来发布。
(4)数字证书包含应用程序所有者姓名,所在组织,国家,证书创建时间,证书有效期等信息。
(5)Android使用标准的Java工具 Keytool and Jarsigner 来生成数字证书,并给应用程序包签名。
(6)Android数字证书跟包名无关,多个不同包名的应用程序安装包可使用同一个数字证书对其进行签名。
(7)Android系统不会覆盖安装运行包名相同,签名证书不同的两个安装包。