APP通用免反编译多渠道打包简易方法

网上流传多种方法,用于多渠道打包

1.腾讯的 WasDolly 和美团的 Walle, 都是以开源 Tencent/VasDolly 基础演变出来

看过原理就知道是通过修改EOCD数据块,插入渠道标识达到目的,声称能绕过签名和校验流程,无须重新签名,能发布,从而节省时间.
这种方法严格来说,只是钻了人家漏洞而言,有漏洞迟早会给补上,实践也证实,老版 andorid 10 以下,相对稳定,但 andorid 11以上,就出现闪退,安装不成功等.

2.在manifest文件中写入一个meta标签

这是最早期做法,通过 apktool 反编译后 修改 AndroidManifest.xml ,很多打包工具也用类似这种方法实现,随着andorid 13以上流行,也出现 无法安装等问题.

3.直接 META-INF 写渠道文件
这种与第一种方法原理,也是差不多, 据说能 支持 V1/V2/V3/V4 签名,兼用性也是难保证.

以上都是用技术手段实行,都是有通病,兼用性得不到保证, 随着手机厂商系统版本升级,自然出现各种问题.最终App表现出不稳定,用户流失.

改动过apk本身,想要稳定,脱离重新签名的,无论怎样钻漏洞都是难而保证的稳定的,不要忘记人家弄个签名就是防止改过Apk的.

如果你的应用是商业化,建议不要用钻漏洞来呈现你的技术,最终只会在考验你的用户耐性,这是以用户流失作代价.

4.APP通用免反编译
也是我在用的方法,觉得比较可靠,归根到底没技术含量,纯属提示,因为最后也要对APP重新签名,但不用反编译,所以稳定,V1/V2/V3/V4 签名也不影响.

apx说到底也是一个zip压缩文件,既然zip文件,我们只要往里面追加一个文件作为渠道标识,就可以了,
apx里面中的assets文件夹,是资源库,是没编译的,用winrar打开,放一个空文件,以渠道名作文件名,就可以得到渠道标识,在源码中读取那个文件名出来,就是知道是那个渠道了,就是那么简单.

static String channel="";
 public static String getChannel(Context appContext)
    {
        try {
            if (channel.length()==0) {
                String[] files = appContext.getAssets().list("channel");
                //Assets加入channel文件夹
                if(files!=null && files.length>0)
                {
                    //读取channel文件夹里的文件名,文件名就代表渠道名,这样做轻松得到渠道
                    String[] t_channel=  files[0].split("//");
                    channel=t_channel[t_channel.length-1];
                   Log.d(tag,"channel:"+channel);
                }
            }
        }catch (Exception e)
        {

        }
 
        return channel;
    }

在这里插入图片描述

在这里插入图片描述
如图这样,vivo渠道,只是把空文件放进入,就完成了, 记得重新签名,

如果有几十,上百个渠道,难道又是一个个加入?当然不是,写个批处理文件就可以了

@echo off 
set "zip_exe=D:\Program Files\WinRAR\WinRAR.exe" 
set "apk_file=%~1"
set  channel_dir=assets\channel\
set  channel=vivo
call "%zip_exe%" a -ap%channel_dir% %apk_file%  %channel%

在这里插入图片描述
这是我测试的bat批处理文件,只是把test.apk 拖到 vivo.bat,就完成加入渠道标识,要想全自动化,只要改进批处理命令就可以了,如,加入自动签名,完成后删除临时文件等命令,bat批处理文件dos命令宝刀未老,即使数百个渠道,也只是在bat批处理中加入循环而已.

注意:-ap%channel_dir% 这里的 参数 -ap后面接着的,不要有空格.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liangfang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值