Android apk使用debug key重新签名

在做android黑盒自动化时(如robotium),我们的test.apk必须和dest.apk使用相同的签名,robotium才有权限驱动dest.apk自动化运行。在开发环境中,一般使用测试签名,密钥库一般是~/.android/debug.keysotre。之前一直使用google code上的resign.jar图形化运行,后来使用android-maven-plugin这个插件,直接支持重签名。现在的项目没用maven管理,需要在shell下进行签名,步骤如下:

  1. 将目标apk重命名为zip文件
     mv dest.apk dest.zip
    
  2. 解压zip文件,并删除里面的META-INF文件夹
     unzip dest.zip
     rm -rf META-INF
    
  3. 重新打成apk包
     zip -r dest.apk * #注意不要把其他文件也打进去,不要忘记-r参数
    
  4. 使用debug key签名(当然如果使用的是正式的key store也行)
     jarsigner -keystore ~/.android/debug.keystore -storepass android -keypass android dest.apk androiddebugkey
    
  5. jdk 1.7及以上,需要下面的命令
     jarsigner -digestalg SHA1 -sigalg MD5withRSA  -keystore ~/.android/debug.keystore -storepass android -keypass android meilishuo.apk  androiddebugkey
    
  6. ok,完成。可以查看刚才的签名
     jarsigner -verify -verbose -certs dest.apk
    

    输出的内容应该包含X.509, CN=Android Debug, O=Android, C=US字样。

版权声明

本站文章、图片、视频等(除转载外),均采用知识共享署名 4.0 国际许可协议(CC BY-NC-SA 4.0),转载请注明出处、非商业性使用、并且以相同协议共享。

© 空空博客,本文链接:https://www.yeetrack.com/?p=973