做海外项目的朋友一定都会遇到马甲包的问题。
马甲包指的是与主包相比,除了应用图标和应用名不一致,其他内容基本相同的应用。其主要作用包括:
- 给主包导流
- 覆盖关键词,增加曝光量
- 功能测试
然而,自2024年初以来,谷歌对马甲包的检测收紧,因此我们必须了解谷歌是如何检测马甲包的。
谷歌如何检测马甲包?
通过反编译代码,我们可以推测谷歌的检测逻辑可能包括以下几个方面:
- 通过比对 Dex 文件
谷歌可能通过比较 Dex 文件的内容,分析代码的相似度来判断应用是否为马甲包。 - 比对 res 文件夹下的资源相似性
如果多个应用中的资源文件(如图片、布局文件等)高度相似,谷歌可能会判断它们为马甲包。 - 比对 AndroidManifest.xml 中四大组件的声明
通过对比 AndroidManifest.xml 中声明的活动(Activity)、服务(Service)、广播接收器(Receiver)和内容提供者(Content Provider)的相似性,谷歌可以检测出多个应用间的相似性。
马甲包如何规避谷歌检测?
对 Dex 文件进行更复杂的混淆
使用更高级的混淆规则可以有效避免代码被谷歌检测出来。可以利用以下工具进行混淆:
- 变态代码混淆字典
在bt-proguard.txt
文件中定义混淆规则,然后将其复制到项目目录中,最后在proguard-rules.pro
文件中进行配置。具体配置如下:
-obfuscationdictionary bt-proguard.txt
-classobfuscationdictionary bt-proguard.txt
-packageobfuscationdictionary bt-proguard.txt
混淆后,代码会变得更加难以被谷歌识别。
混淆 res 文件夹的内容
通过使用微信的 AndResGuard 工具,可以对资源文件夹(res 文件夹)进行混淆,从而减少谷歌通过资源文件进行比对的可能性。
修改 AndroidManifest.xml 文件
可以通过自定义插件在打包时修改 AndroidManifest.xml
文件,插入额外的代码。开源工具 AndroidManifestAdder 可以帮助开发者在 AndroidManifest.xml
中插入四大组件的声明,从而有效规避谷歌的检测。
有问题找NB早鸟出海,NB早鸟出海深耕出海近十年,专业提供Google/Facebook/Tiktok广告账户,谷歌/iOS上架&开发者账户,PWA/W2A/H5/APP代投。欢迎咨询飞机:@nboversea