walle多渠道打包与360加固之间的攻防战

前言

当你看到这篇博客,我默认你已经掌握了walle配置多渠道,如果没有请移步之前的博客Gradle+Walle全新二代签名打包工具。

问题

我们使用walle配置好多渠道包的时候,发布360市场的时候需要对apk包进行加固处理,但是这么一处理,我们的apk包中注入的渠道号就会被冲掉,这时,就需要我们重新手动注入渠道号。

问题知道,解决问题
1.加固

直接下载pc版的加固助手,然后将要上传给360市场的apk通过助手加固,但是不要选择自动签名


walle多渠道打包与360加固之间的攻防战_第1张图片
加固助手不勾选签名.jpg

助手加固好了的apk会自动下载到默认的输出路径,我为了查找方便就改变了输出路径
walle多渠道打包与360加固之间的攻防战_第2张图片
加固完毕路径设置.jpg
2.zipalign 对齐(方便起见,命令行窗口不要关)

通过第一步,我们已经拿到了经过360加固之后的apk文件,但是渠道已经丢失了。
我们进入sdk目录下的build-tools目录下,选个版本25+的目录,shift + 鼠标右键 -->在此处打开命令行,执行命令:

 zipalign -v 4  [加固好的apk路径] [对齐好的apk路径]
对齐操作.png

建议对齐好的apk与原来加固的apk同目录,加个后缀以示区别
walle多渠道打包与360加固之间的攻防战_第3张图片
对齐成功.png
3.重新签名(方便起见,命令行窗口不要关)

同样通过命令行执行(需要在build-tools 25+的目录中打开命令行,所有不要关步骤2的命令行窗口)命令如下

        apksigner sign --ks [你的签名文件] [apk路径]
重新签名.png

为了方便起见,我把签名文件也扔在这个目录下,重新签名需要我们输入签名文件的密码,但是这个密码是看不见的,所以我们需要记住,不要输错了。

4.检查是否为v2签名(方便起见,命令行窗口不要关)

当前步骤可有可无,看到这一步的肯定都是v2签名。但是还是建议走一遍。
这里需要下载v2签名检查jar包CheckAndroidV2Signature.jar。
(如上上图所示,我还是扔在同一目录下)
执行命令如下:

java -jar [CheckAndroidV2Signature.jar路径] [apk路径]
校验是否是二代签名.png

执行命令后返回:

  {"ret":0,"msg":"ok","isV2":true,"isV2OK":true}   是    V2 签名的App
  {"ret":0,"msg":"ok","isV2":false,"isV2OK":false}不是 V2 签名的App
4. 重新注入渠道号(方便起见,命令行窗口不要关)

最后一步也是关键的一步,同样也是需要下载walle-cli-all.jar文件。(如上上上图所示,我还是仍在同一目录下)
执行命令行(-c 和渠道名是分开的,不要连在一起)

java -jar [walle-cli-all.jar路径] put -c [渠道名] [apk路径] [生成的apk路径(可选)]
最后一步,注入渠道号.png

命令行执行完毕之后,可以进入生成的apk路径目录下查看情况。(如果没有写第二个路径,生成的apk默认是当前目录下)
walle多渠道打包与360加固之间的攻防战_第4张图片
注入成功.png

渠道号参照自己项目中的格式,最后附上当前项目中的markets文件


walle多渠道打包与360加固之间的攻防战_第5张图片
市场渠道号.png
5. 成功生成apk文件之后,最后还是验证一下,一般情况下是不会有问题的,此时,命令行窗口可以关闭了。

你可能感兴趣的:(walle多渠道打包与360加固之间的攻防战)