在做android黑盒自动化时(如robotium),我们的test.apk必须和dest.apk使用相同的签名,robotium才有权限驱动dest.apk自动化运行。在开发环境中,一般使用测试签名,密钥库一般是~/.android/debug.keysotre。之前一直使用google code上的resign.jar图形化运行,后来使用android-maven-plugin这个插件,直接支持重签名。现在的项目没用maven管理,需要在shell下进行签名,步骤如下:
- 将目标apk重命名为zip文件
mv dest.apk dest.zip
- 解压zip文件,并删除里面的META-INF文件夹
unzip dest.zip rm -rf META-INF
- 重新打成apk包
zip -r dest.apk * #注意不要把其他文件也打进去,不要忘记-r参数
- 使用debug key签名(当然如果使用的是正式的key store也行)
jarsigner -keystore ~/.android/debug.keystore -storepass android -keypass android dest.apk androiddebugkey
- jdk 1.7及以上,需要下面的命令
jarsigner -digestalg SHA1 -sigalg MD5withRSA -keystore ~/.android/debug.keystore -storepass android -keypass android meilishuo.apk androiddebugkey
- ok,完成。可以查看刚才的签名
jarsigner -verify -verbose -certs dest.apk
输出的内容应该包含
X.509, CN=Android Debug, O=Android, C=US
字样。
转载请保留链接地址: https://www.yeetrack.com/?p=973
近期评论