APK包签名相关

原创 2015年11月18日 15:03:13

查看APK包签名公钥信息,可以比对两个APK包的签名是否一样。执行的步骤如下:

1、用解压文件打开APK包,接入META-INF目录可以看到如下三个文件:


三个文件的说明如下:

MANIFEST.MF:这个是摘要文件。是对APK包每个文件(非文件夹,非签名文件)逐个用SHA1算法生成摘要并且用Base64进行编码。如果你改变了apk包中的文件,那么在apk安装校验时,改变后的文件摘要信息与MANIFEST.MF的检验信息不同,程序就不能成功安装。并且此文件名是不能修改的。


CERT.SF:这个文件是对摘要文件进行SHA-RSA算法用开发者的秘钥进行签名。只能用开发者公钥解密。如果解密后的文件盒MANIFEST.MF文件对应不上,就说明APK包是被修改过的,此时APK包是安装不了的。(名字可以修改,比如改成TEST.SF,但后缀不能改,并且要和.RSA文件名保持一致)


CERT.RSA:保存了公钥和相关的加密算法信息。(名字可以修改,比如改成TEST.RSA,但后缀不能改,并且要和.SF文件名保持一致)


二、拷贝出CERT.RSA文件出来

三、使用keytool.exe提取公钥的命令

命令行:C:\Program Files (x86)\Java\jdk1.6.0\bin>keytool.exe -printcert -file APK包的.RSA路径

就可以查看到签名公钥信息。比如我的Eclipse默认签名公钥如下:



如果要对比两个APK包签名是否使用同一个签名,那么只要对比证书指纹就可以了,如果相同的话,那么就是使用的同一个签名。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android Studio 及 Eclipse 导出生成签名apk包方法

在很多时候,我们经常都是在开发应用,很少有机会去打包apk安装包,或者都是产品经理去导包。 而让我们有时候都基本忘了这个比较简单的技能给忘记了。这里就给各位献丑一下。 接下来就给Eclipse 和 A...

自学Android历程->对Android应用APK包进行签名

1、对于Android应用需要签名的作用说明:      前面提过,Android项目以它的包名作为唯一的标识,如果在同一台手机上安装了两个包名完全一样的程序,那么后面安装的则会覆盖安装上一个安装的应...

robotium测试apk包修改签名问题

最近又有leader给了死命令,最近要做android自动化测试,所以必须把学习啊,由于之前没有java基础所以必须从java学起,这是一个辛苦啊,现在突然发现从新学起一门技术这是困难啊,但是难也学啊...

使用命令对APK包进行签名

如果不想借助于Eclipse提供的方式对Android应用程序签名,或许在某些场合下,需要对一个“未签名”的APK包进行签名,则可通过“命令”来对Android应用程序进行手动签名。 使用命令对An...

android使用gradle打包带签名的apk包

签名对apk的重要性不言而喻, 下面总结一下apk打包签名的具体方法 1-生成签名文件 如果想要打带签名的包, 我们必须有一个签名文件. windown+r ->cmd 进入命令行, 进入到本机j...

MAC下打Android 多渠道 带签名APK包。

打包流程:(转载文章 描述了一下我碰到的问题) 一.打包前准备工作 1.首先确定你的JDK版本为1.6! 2.在AndroidManifest.xml中application标签下添加一个用来识...

Linux和WINDOWS下JAVA代码实现,用命令行实现对apk包重新签名打包优化

1.7zip-解压到文件名命名的文件下,并删掉该apk文件 遇到的问题:无 2.判断是否为白包,如果已签名则删掉META—INF文件夹和文件夹下的所有文件 遇到的问题:在删除的时候要注意要删除M...

在命令行使用已存在的keystore对apk包进行签名

在命令行使用已存在的keystore对apk包进行签名

纯JAVA读取android应用程序apk包的相关信息

程序入口 package com.read.apk; public class ReadApk { /** * * @param args * @return voi...

Android APK包签名或重签名

1.      生成Android APK包签名证书 1).     在doc中切换到jdk的bin目录 cd C:\Program Files\Java\jdk1.6.0_18\b...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)