如果需要编写测试程序测试正式版app,就要先去除正式版的签名,换上debug版签名,只要签名一致,测试程序才能与app通讯。
1.先将app原本app签名去除。
把apk文件改成.zip后缀解压,把META-INF 目录目录删除。META-INF放置的是原本app的签名的。再重新压缩,最后把后缀改为.apk
2.先查看debug版签名位置:
安卓debug版签名debug.keystore,如果使用eclipse的adt,可以如下方式查看:
打开eclipse,window->Preferences->Android->Build->Default debug keystore,这个Default debug keystore对应的路径就是我们 要找的debug.keystore
3.使用jarsigner去签名。
jarsigner在jdk的bin文件夹下,配置了jdk变量的话,打开cmd直接输入javsginer可以查看使用方法。
查看某个应用程序是否签名:jarsigner -verify -verbose -certs D:\auto\MyWorkSpace\hehe.apk1.去除原来签名信息:将apk后缀名改为.zip,然后从winrar中删除META-INF文件夹,删除后重新将文件名重新改成apk。
2.将eclipse自带的debug.keystore拷贝到其他盘符,将apk也放在这个盘符下,然后命令行cd到这个盘符下。
3.jdk6中签名方式:jarsigner -keystore debug.keystore -storepass android -keypass android unsign.apk androiddebugkey,jdk1.8略有区别:jarsigner -digestalg SHA1 -sigalg SHA1withRSA -keystore debug.keystore -storepass android -keypass android unsign.apk androiddebugkey
----最后一个字段androiddebugkey直接输入该字符串
4.zipalign 4 unsign.apk sign.apk这样重新生成了签名的apk,zipalign能够使apk文件中未压缩的数据在4个字节边界上对齐(这个在其他文章看回来的,暂时不深究其含义,以后有机会研究)。
4.最后,安装已重签名的apk安装,我使用adb命令:
adb install sign.apk