ProtectedApkResignerForWalle一步解決應用加固導致Walle渠道信息失效的自動化腳本工具,自動生成渠道包

最近使用walle+tinker的方式來實現(xiàn)多渠道打包和熱修復,但是遇到一個問題:使用walle生產的渠道包進行360加固后獲取不到渠道信息?。?!
怎么解決?walle官方推薦了兩種辦法:
方法一:操作步驟http://blog.csdn.net/jason_2016/article/details/58137497
方法二:ay-Goo同學寫了一個工具,專門修復類似360加固重簽名和批量注入渠道,2秒搞定。支持全平臺 https://github.com/Jay-Goo/ProtectedApkResignerForWalle

補充:其中方法一中有個錯誤,就是V2簽名這里這么配置是錯誤的
image.png

應該改為下面這樣:

apksigner sign            //執(zhí)行簽名操作
 --ks 你的jks路徑                                 //jks簽名證書路徑
--ks-key-alias 你的alias           //生成jks時指定的alias
--ks-pass pass:你的密碼          //KeyStore密碼
--key-pass pass:你的密碼   //簽署者的密碼,即生成jks時指定alias對應的密碼
--out output.apk                         //輸出路徑
input.apk                                     //被簽名的apk

示例:

apksigner sign  --ks key.jks  --ks-key-alias releasekey  --ks-pass pass:pp123456  --key-pass pass:pp123456  --out output.apk  input.apk

下面回到本篇文章的主題!!!

因為方法一操作步驟過于復雜,而方法二又過于簡單。。。so,選擇方法二。
下面就講一下方法二ProtectedApkResignerForWalle的操作步驟:
1、按照config.py文件中的注釋改成自己項目配置
2、將已經加固好的包【未簽名的包,請不要使用加固客戶端簽名工具】放到腳本工具根目錄下,即app-release.encrypted.apk
3、各種渠道的定義是在channel這個文件中,請根據項目情況修改
4、運行命令 python ApkResigner.py,即可自動生成所有渠道包。

步驟1字段如何填寫:
image.png

keystorePath、keyAlias、keystorePassword、keyPassword:就按項目中簽名那里配置的信息填寫
protectedSourceApkName:加固后的apk的名字(記得要帶.apk)
protectedSourceApkDirPath、channelsOutputFilePath、channelFilePath:不填寫即代表在默認路徑上
sdkBuildToolPath:sdk/build-tools目錄下的25.0.0以上的版本路徑

步驟2:
image.png

步驟3:
image.png

打開channel,在里面寫上渠道

步驟4:進入到腳本的文件夾下,然后運行python ApkResigner.py命令即可。

最后生成的渠道包在此文件夾下
image.png

那么,如何驗證用此方法生成的渠道包可以獲取到渠道信息呢???
通過String umeng_channel = WalleChannelReader.getChannel(mContext);獲取渠道信息,然后吐司看下是否有實際信息。


image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容