转自:http://18e0c209.wiz01.com/share/s/0oUc890scQDx2tkMAj02NI0c3Ubmms31ckdr2UwE0E2X-bzY
在看本文之前,先了解
1. Android Signature V2 Scheme 介绍:
http://blog.bihe0832.com/android-v2-signature.html
2. Android Signature V2 Scheme签名下的新一代渠道包打包神器(链接:
https://github.com/itang01/walle 或 http://tech.meituan.com/android-apk-v2-signature-scheme.html
)
以360渠道为例:
步骤1
:将应用上传360加固(网页-上传和加固(不签名),加固完后下载到本地备用。注:不是使用360
加固助手(因为PC版会 加固并签名应用,而且使用的是V1(传统)签名))
步骤2
:使用Android SDK中的
zipalign -
对齐操作 -
优化
(利用tools文件夹下的zipalign工具。首先调出cmd命令行,然后执行:zipalign -v 4 source.apk androidres.apk。这个方法不受API Level的限制,可以对任何版本的APK执行Align优化。
检查当前APK是否已经执行过Align优化。命令:zipalign -c -v 4 androidres.apk)
a. 打开CMD,进入Android SDK -> build-tools -> 25.+目录,
例如:C:\Users\Administrator\AppData\Local\Android\Sdk\build-tools\25.0.2
b. 执行命令:
zipalign -v 4 C:\Users\Administrator\Desktop\_360jiagu\奇鱼旅行_qiyu_v1.2.5_7_20170124_jiagu_nosign.apk C:\Users\Administrator\Desktop\_360jiagu\奇鱼旅行_qiyu_v1.2.5_7_20170124_jiagu_zipalign_nosign.apk
步骤3
:
使用V2签名工具再次签名加固后的Apk
a. 打开CMD,进入
Android SDK -> build-tools ->
25.+
目录,
例如:C:\Users\Administrator\AppData\Local\Android\Sdk\build-tools\25.0.2
b.
执行
命令:
apksigner sign --ks D:\Test\qy_trip.jks C:\Users\Administrator\Desktop\apksigner\奇鱼旅行20170209_v1.2.5_qiyu_jiagu_no_zipalign_v2_sign_pre.apk
apksigner sign --ks [
你的签名文件
] [apk路径]
步骤4
:检查是否使用V2签名
需要jar包,
CheckAndroidV2Signature.jar 下载链接:
https://github.com/bihe0832/AndroidGetAPKInfo/blob/master/CheckAndroidV2Signature.jar
执行
命令:
java -jar C:\Users\Administrator\Desktop\apksigner\CheckAndroidV2Signature.jar C:\Users\Administrator\Desktop\_360jiagu\奇鱼旅行_qiyu_v1.2.5_7_20170124_jiagu_zipalign_sign_pre.apk
执行命令后返回:
{"ret":0,"msg":"ok","isV2":true,"isV2OK":true} 是 V2 签名的App
{"ret":0,"msg":"ok","isV2":false,"isV2OK":false} 不
是 V2 签名的App
步骤5(修正):写入渠道信息
需要
walle-cli-all.jar 包
:https://github.com/Meituan-Dianping/walle/blob/master/walle-cli/walle-cli-all.jar
执行命令:
命令一:(单个写入,如果未指定目录,生成的新Apk与
[apk路径]
同级目录)
java -jar walle-cli-all.jar put -c qiyu C:\Users\Administrator\Desktop\apksigner\qiyu_jiagu_zipalign_v2_sign_walla_channel_tools.apk
java -jar walle-cli-all.jar put -c [渠道名] [apk路径]
java -jar walle-cli-all.jar put -c [渠道名] [apk路径] [生成的apk路径
(
可选
)
]
命令二:(批量写入,如果未指定目录,生成的新apk与[apk路径]同级目录)
java -jar walle-cli-all.jar batch -f C:\Users\Administrator\Desktop\apksigner\channel C:\Users\Administrator\Desktop\apksigner\qiyu_jiagu_zipalign_v2_sign_walla_channel_tools.apk C:\Users\Administrator\Desktop\apksigner\apk
java -jar walle-cli-all.jar put -c [渠道文件] [apk路径] [
生成的新apk
路径
(
可选
)
]
其他命令:
显示当前apk中的渠道和额外信息:
java -jar walle-cli-all.jar show
C:\Users\Administrator\Desktop\apksigner\qiyu_jiagu_zipalign_v2_sign_walla_channel_tools_itang.apk
最后,安装app,代码获取渠道信息打印验证是否能够获取到渠道信息,结果:360加固后的签名和渠道配置成功
根据上面的的逻辑,实现了一个渠道化工具
http://download.csdn.net/download/jason_2016/9765391