如何判断 Android 应用的 Apk 签名是否一致

 我来答
huanglenzhi
推荐于2016-06-02 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517203
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  毕设做的是Android应用重打包检测,首先就需要批量检测Android应用之间签名是否一致。所以在这里介绍一下在终端中如何写脚本或者直接输入命令批量检测应用签名是否一致。

  Android应用的发布形式apk中包含的签名加密方法除了RSA还有DSA,所以不能只从apk中提取常见的META-INF/CERT.RSA,第一步应该是检查apk中具体的签名文件是什么。

  FILE="yourapp.apk"
  cert_XSA=`jar tf $FILE | grep SA`
  此时得到的cert_XSA可能是META-INF/*.RSA或者META-INF/*.DSA。

  接下来从apk中提取具体的签名文件。

  jar xf $FILE $cert_XSA
  此时会在当前目录得到cert_XSA文件。

  然后对于得到的签名文件,提取其中签名的MD5值

  keytool -printcert -file $cert_XSA | grep MD5 > "$FILE.certMD5"
  这时候yourapp.certMD5这个文件中就保存了yourapp.apkk中的签名MD5值。

  最后比较两个app的签名可以用diff

  FILE1="yourapp1.apk"
  FILE2="yourapp2.apk"
  # ...
  # ... 经过上述步骤得到$FILE1.certMD5和$FILE2.certMD5
  # ...
  certMD5_diff=`diff $FILE1.certMD5 $FILE2.certMD5`
  if [ "$certMD5_diff" = "" ]; then
  echo "$FILE1.certMD5 == $FILE2.certMD5"
  fi
  若输出yourapp1.apk.certMD5 == yourapp2.apk.certMD5那么这两个应用的签名就一致。
百度网友ecc7a72
2015-02-27
知道答主
回答量:32
采纳率:0%
帮助的人:14.3万
展开全部
不能同事安装签名一致的两个软件吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式