安卓 apk 包重新签名解决方案
对于客户提供的已签名apk进行再次签名的方法如下:
1、使用apktool工具,将原apk的签名进行删除:命令如下:apktool d test.apk
2、对删除签名之后的文件夹进行再次打包,此时无签名,命令如下:apktool b test,此时在test目录下会有一个dist文件夹,dist下面的就是重新打包的apk;
3、使用jarsigner对步骤2当中重新打包的apk进行签名,命令如下:jarsigner -verbose -keystore debug.keystore -sigfile cert -storepass android -signedjar test_signed.apk -sigalg SHA256withRSA test-new.apk androiddebugkey
jarsigner命令说明:
-keystore后面为keystore
-sigfile 指定.SF和.RSA文件的文件名,如果不输入-sigfile,则默认使用keystore别名的前8个字符作为文件名
-storepass 指定keystore的密码
-sigalg 指定摘要算法
-digestalg 指定签名算法,如果指定SHA1则使用SHA1签名,如果不指定,则使用SHA256
androiddebugkey 为keystore的别名
示例:
jarsigner -verbose -keystore debug.keystore -storepass android -signedjar test_signed.apk -digestalg SHA1 -sigalg MD5withRSA test.apk androiddebugkey
apksigner 命令说明:
java -jar apksigner.jar sign --ks debug.keystore --ks-key-alias androiddebugkey --ks-pass pass:android --key-pass pass:android --out test-new_sign.apk test-new.apk
–ks 后面为keystore
–ks-key-alias 后面为keystore别名
–ks-pass pass: 后面为keystore的密码
–key-pass pass: 后面为keystore的密码
–v1-signing-enabled 是否开启V1签名,默认开启
–v2-signing-enabled 是否开启V2签名,默认开启(apksigner sign --v2-signing-enabled false --ks 密钥库名 xxx.apk)
–out 为输出的apk
apksigner.jar所在目录:E:studio_sdkuild-tools28.0.3lib
使用示例:
java -jar E:studio_sdkuild-tools28.0.3libapksigner.jar sign --ks application.keystore --ks-key-alias androiddebugkey --ks-pass pass:android --key-pass pass:android --out cashier_system_tablet-release_signed.apk cashier_system_tablet-release_unsign.apk
相关文章
- 一个Java程序员对2011年的回顾
- 大数据发展历程
- Android高级进阶之路【一】Android中View绘制流程浅析
- 可信服务管理(Trusted Service Manager)介绍
- GIS应用|快速开发REST空间分析服务
- 未来十年微软长盛不衰的两项战略
- 领域驱动设计模式的收益与挑战
- cocos 3.0 一键打包android平台应该注意的细节
- 数智化时代,驱动企业转型升级的“三驾马车”是什么?
- 基于MINA构建高性能的NIO应用
- 使用Rainbond实现离线环境软件交付
- 工作流引擎 jBPM 5.2 发布
- 微信小程序Minium自动化测试(三)
- 桌面应用抢先体验,这次有点料!
- 甲骨文Java专利遭拒 起诉Android侵权受挫
- 云计算的应用领域及发展前景
- Java效率真的很低吗?Android为何要采用?
- Android高级进阶之路【二】十分钟彻底弄明白 View 事件分发机制
- 庖丁解牛之-Android平台RTSP|RTMP播放器设计
- 手机直付,超级方便