判断 Android 应用的 Apk 签名是否一致
2014-01-27 14:05
211 查看
http://www.zhihu.com/question/20749413
王仲禹,Android NC粉
毕设做的是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那么这两个应用的签名就一致。
相关文章推荐
- 如何判断 Android 应用的 Apk 签名是否一致
- 如何判断 Android 应用的 Apk 签名是否一致?
- 如何判断 两个不同包名的 Android 应用的 Apk 签名是否一致
- android 判断Apk是否签名和 签名是否一致
- android 判断2次安装apk签名是否相同工具类
- 【Android】Adroid开发之判断一个自己的apk是否已经签名
- android 推断Apk是否签名和 签名是否一致
- [置顶] 【Android】Adroid开发之判断一个自己的apk是否已经签名
- Android通过签名判断是否系统编译的apk
- Android应用之间检测签名是否一致
- Android判断应用是否存在
- Android应用apk的调试模式签名和发布模式签名
- Android - 视图Android应用(apk)签名
- Android开发之--判断当前手机上是否存在QQ或微信应用
- Android应用apk程序自动签名工具
- android 判断应用是否在前台
- Android 判断应用是否在运行以及判断处于顶层的activity
- android_签名/重新签名/签名是否一致
- Android中判断应用是否第一次打开 闪屏页
- Android 判断应用是否在前台