重签名
前言:当我们做自动化测试时候,特别是黑盒测试,因为apk是开发编写的,apk的签名和我们测试程序的签名不一致,当我们使用robotium测试框架测试,会出现测试失败。故而我们必须对待测apk进行重签名
一、删除待测apk签名文件
1.将待测apk后缀名字改为zip,如:talkback_leelen.apk,改为
talkback_leelen.zip
2.删除掉签名文件META-INF,具体步骤:选择talkback-leelen.zip,后,使用WinRAR打开(其他解压工具打开也一样),然后选择根目录下的META-INF文件夹,删除掉整个文件夹(我看到有些网友是删掉META-INF文件夹里除MANIFEST.MF以外的东西,我试过,但出了点问题,所以建议你们还是和我一样删除整个文件夹,简单利落)
3,将无签名的待测apk后缀改回.apk
二、将自己eclipse的签名文件和无签名的待测apk放在同一目录下
1.查找自己eclipse签名文件,详细步骤:1.打开eclipse-Windows-preferences,在preferences界面选择Android-build后看到default debug keystore(默认调试密钥存储库),其对应的文本框中就是签名文件及路径,如下图,我的路径是:D:\adt-bundle-windows-x86-20140702\adt-bundle-windows-x86-20140702\sdk\.android,而签名文件就是debug.keystore
2.复制eclipse的签名文件到相应的目录或文件夹下,必须和待测的apk(无签名),放在一起,如放在D:/test 目录下
三、输入重签名命令,进行重签名(重要)
1.进入到D:/test,在上方导航输入框输入cmd后回车,进入到cmd命令界面,如下图:
2.在cmd命令界面输入重签名命令,jarsigner -verbose -keystore debug.keystore(签名文件,可按需替换) -storepass android -signedjar leelen_singer.apk(签名后的apk名,可修改) -digestalg SHA1 -sigalg MD5withRSA talkback_leelen.apk androiddebugkey 后回车,
系统自动执行,
签名成功后,在D:/test就能看的新生成的重签名包
命令详解:jarsigner 是Java的签名工具 ; verbose 显示详细信息
keystore 签名文件 ;storepass android表示Android指定密码库密码
signedjar 指定签名后的apk 名; -digestalg SHA1 -sigalg MD5withRSA 算法和签名算法的相关参数
androiddebugkey 秘钥