apk签名冲突 与旧版不同解决办法 apk签名比对
来源:互联网 发布:淘宝举报假冒伪劣 编辑:程序博客网 时间:2024/05/22 04:53
最近刚接手一个应用,更新了一些内容后想在测试机器上进行调试,结果AndroidStudio提示
Installation failed since the device already has an application with the same package but a different signature.
In order to proceed, you have to uninstall the existing application.
WARNING: Uninstalling will remove the application data!
Do you want to uninstall the existing application?
意思很明显,就是说现在要安装apk的机器上已经有了一个相同包名的apk了,但是这个apk的签名和要安装的apk的签名不一致,要想安装必须卸载之前的那个。
要卸载之前的apk很容易,但是这样新的apk发布出去后用户就没法更新了,总不能要求用户先卸载在安装更新吧。
于是问题来了,要找到之前应用使用的签名文件,用同样的签名对apk再签名一次,但是手头有很多签名文件,挨个试效率太低了,于是想到直接把应用中已经安装好的apk的签名拿到,再跟本地的签名库去比对,来找到原始签名。
第一步拿到已经安装了的旧应用的apk 可以先用以下方法确定下该应用安装后在设备中的存放位置
连接adb后执行
Adb shell
Ls查看移动设备当前文件夹下文件
因为本应用是系统文件,apk安装后存放在/system/app目录下
Cd /system/app
如果是用户安装的应用,apk安装后存放在 /data/app目录下
进入到该目录 执行ls查看目录下的系统app,可以看到有很多.apk结尾的应用,找到要替换的那个应用,确定该应用的位置。
然后新开一个终端,(千万不要在设备的shell中执行)执行
Adb pull /system/app/XXX.apk /home/me/Desktop
将设备中/system/app/XXX.apk位置的apk复制到本机的/home/me/Desktop,
就能拿到之前安装的应用的apk了。
第二步,进行签名比对
将拿到的已经安装上的apk解压,在解压出的文件夹的META-INF文件夹下找到CERT.RSA,这里面包含了apk的签名信息,
在当前文件下下打开终端,执行
keytool -printcert –file ./CERT.RSA
可以看到原来安装的apk的签名信息与证书指纹了,要比对的就是这个指纹
然后进入到 本地的签名库,执行keytool -v –list –keystore XXX.key将XXX替换成你的签名库的名字,执行,将会打印出库中所有的条目,当然也包括所有签名的指纹信息,将这个指纹与上一步得到的已经安装的apk的指纹比对,就知道之前使用哪个对应用进行签名的了。
- apk签名冲突 与旧版不同解决办法 apk签名比对
- APK_Android APK 签名比对
- Android APK 签名比对
- Android APK 签名比对
- Android APK 签名比对
- Android APK 签名比对
- Android APK 签名比对
- Android APK 签名比对
- Android APK 签名比对
- Android APK 签名比对
- Android APK 签名比对
- Android APK 签名比对
- Android APK 签名比对
- Android APK 签名比对
- Android APK 签名比对
- Android APK 签名比对
- Android APK 签名比对
- Android APK 签名比对
- linux下atime,mtime,ctime三种时间状态
- Leetcode 90 - Subsets II(Search)
- 我的科研生活2017-2-17
- POJ 3530 A Modular Arithmetic Challenge 英文少
- bzoj2754&JZOJ2834【SCOI2012】喵星球上的点名 AC自动机+STL
- apk签名冲突 与旧版不同解决办法 apk签名比对
- 怎样解决ListView条目中的Button事件
- JSP页面使用举例(单表的增删查功能实现)
- 使用Hexo搭建博客
- CHM文档打不开的问题解决方法
- 判断n 是不是素数
- 使用Fiddler抓取模拟器APP的请求,并转发到本地调试
- POJ 3531 Alternating Sum of Digits 英文少
- 02、mysql数据类型和列属性