一:谷歌通过多种方法判断应用是否为马甲包或存在关联,但具体算法和方法并没有对外公开,以下是一些可能属性:
1、开发者账号资料
开发者的身份,付款银行卡,绑定的手机号,辅助邮箱等,其中收款账户还是在其中占了很大比例。因为如果多个账号都使用了同一个收款账户,那就说明这些账号的最终受益者相同,从而可以推断出这些账号极有可能是由同一个人操控。
2、环境维度 打包环境,IP环境、访问GooglePlay后台的浏览器环境等
登录Google Play后台操作,如果多账号混用IP、Mac地址,那么在平台后台看来,这些账号的IP频繁切换、且来来回回都用的是这几个IP和Mac地址,从而很容易判定这些账号间有关联关系。
在打包环境方面,如果多个应用使用相同的打包环境(即操作系统版本和硬件配置等相同),会有被关联的风险;
在IP环境方面,如果多个应用在相同的IP地址打包上架,会有被关联的风险;
访问Google Play后台的浏览器环境,如果多个Google paly账号使用相似或相同的浏览器环境(即浏览器类型、操作系统和浏览器指纹信息等相同或相似)进行访问和管理Google Play后台,同样有被关联的风险。
3、代码
Google 系统可能会对应用/马甲包的代码进行分析,这包括检查代码结构、函数调用、算法实现等方面的相似性。
4、APP信息关联
当App的各种信息相似度较高时,这包括多个应用的应用名称、图标设计、元素、颜色以及详情描述中的功能特点、关键词等相似度太高,或者与其他知名应用过于相似,就有可能有被关联的风险。
5、测试包环境
在测试时,可能会因为有集成GooglePlay的SDK包运行在同个手机环境、IP地址下,导致有被关联的风险。如果在相同的手机环境和IP地址上运行进行测试时,意味着它们共享相同的功能服务、硬件、操作系统环境、设备型号和网络等,这种情况就很可能被GooglePlay的SDK包采集,导致有被关联风险。
6、注册开发者账号的行为
如果开发者账号的注册时间非常接近,并且注册的行为模式非常相似,例如在同一个时间段注册的多个开发者账号的设备指纹、IP地址、信息填写的顺序和速度、点击的频率等相同,就很容易增加被关联风险。且谷歌还会怀疑开发者在使用自动化工具来模拟注册行为注册多个账号或同一个人在注册多个账号,这种滥用账号的行为是不被谷歌允许的,谷歌会进行更深入的审核。
二、避免Google 账户关联策略
Google封禁关联账号,主要是把控三个环节:一是账号信息,二是App关联信息,三是设备相关环境及操作。
1、首先是账号问题
关于收款、付款账户的原则就是,不同开发者账号,收款、付款信息分开,不要混用。
2、其次是App问题
(1)、App内数据传输,服务器网络(IP、域名)、API接口、SSL证书主体不能与历史重复
(2)、App文案中联系方式,例如:WhatsApp、email、手机号、地址不能与历史重复
(3)、App内三方服务信息,如 firebase、google analytics 、appsflyer 、admob或adSense 、facebook 等,需重建账号或appid ,保证不能与历史重复
(4)、App包名、显示名、应用签名不能与历史重复
(5)、App文件名、类名、协议名、函数名、属性名不能与历史重复
(6)、App Icon 、布局文件名、控件名 ,不能与历史重复
(7)、App内图片资源、脚本资源、视频等媒体资源文件,hash值不能与历史重复
(8)、APP内隐私政策、用户协议、以及其他文本协议,名称、内容,不能与历史重复
(9)、代码混淆,相似度越低越好,相似性 < 40%,有条件重构最好
(10)、UI与之前不同,从外表看与被下架的产品有结构上的区别
3、设备相关环境及操作问题
(1)、申请账号和操作设备
Google开发者账号的申请和使用,基本原则:单人、单设备、单账号、单IP、单VPN。
(2)、上传时机。新注册的开发者账号,最好登录设备,养几天号后再进行提交审核操作。
如果有多个包,需要间隔上传,发布成功一个,则上传下一个。因为同一天可能被同一个人审核,以避免造成同时被拒/下架。
(3)、浏览器语言环境,不能与历史重复
(4)、应用描述、应用截图不能与历史重复
(5)、alpha、base测试版发布,测试人员账号不能与历史重复
(6)、隐私协议不能与历史重复