Android签名

1.介绍:Android系统安装APK的时候,首先会检验APK签名,如签名文件不存在或者校验签名失败,会拒绝安装。

2.给APK签名好处:

应用程序升级:Android系统要求应用程序的新版本与老版本具有相同的签名与包名。若包名相同而签名不同,系统会拒绝安装新版应用。

应用程序模块化:用户可以独立的升级其中的一个模块。Android系统可以允许同一个证书签名的多个应用程序在一个进程里运行,系统实际把他们作为一个单个的应用程序。此时就可以把我们的应用程序以模块的方式进行部署,而。

代码或数据共享:一个应用程序可以为另一个以相同证书签名的应用程序公开自己的功能与数据,同时其它具有不同签名的应用程序不可访问相应的功能与数据。

防伪造:签名信息中包含有开发者信息,在一定程度上可以防止应用被伪造。

3.原理:

APK签名后,APK文件根目录下会增加META-INF文件:

MANIFEST.MF:APK里所有文件的SHA1校验值的BASE64编码

NETEASE.RSA(.DSA):签名的公钥、签名所有者,SHA1withRSA签名算法对SF文件的签名结果信息。

NETEASE.SF:保存了MANIFEST.MF文件的SHA1校验值,检验值的BASE64编码。

RSA与SF文件的文件名可以更改,命名必须一样。

Android系统就是根据这三个文件的内容对APK文件进行签名检验的。

4.方法:极速签名工具(ApkSinger)

参考文档:apk签名原理

你可能感兴趣的:(Android签名)