Google 开发者账号及关联被封后的解决方案

2022-04-061747

近期谷歌下架了600多款安卓应用,App被暂停、下架,账号被封停这些事情遇到太多,损失可谓惨重!下面将结合实际经验分享一下如何应对开发者账号被封停,2021年8月份以来,Google封禁的力度和技术水平提升了不少,在踩过很多坑以后,我觉得有必要总结一下我们踩过的坑,给其它朋友作为参考。

Google封禁关联账号,主要是把控两个部分, Google开发者账号的申请,申请Google开发者账号用的PC,基本原则:一台VPS对应一个Google开发者账号。


独立的VPS服务器


更换一台全新的VPS(之前没用过的),确保IP和物理环境绝对唯一,一台PC登录过其他Google开发者账号,忘记清除登录信息,结果会凉凉

账号问题

账号申请的IP、支付25美金的付款卡做到唯一,切记不要一个付款卡多次使用,做到一卡一号(也可以找我买,我这里的谷歌开发者是绝对的一卡一号,微信:heyan1105)

每个Google开发者账号都要对应一套全新的信息,这样才能从源头做好隔离。

光做到这一步远远不够,接着就是包体问题,我手上很多客户账号被封主要原因都是因为包体问题没有解决,下面我就给大家分析一下。


APK包体关联分析


提交到Google上的的apk, 静态马甲包,就是指新提交的包和以前被封的包存在相似的地方,被Google检查出来了,这种是纯静态检测,即我们自己解压apk包就能看到的东西。具体包含哪些呢?

Android aar包,Unity游戏必然要引入各种Android aar包,这些包里面一般都是第三方公共的SDK,看起来应该没问题,我们就往aar包加了一个自己的类,结果就被封了。移除这个类就没事!

解决方案,从0开始导入第三方的SDK,如果自己要新加类,麻烦更换类名和包名,不要和之前提交的一样,找个第三方加固工具(比如360的应用加固),加固一下apk。

资源包,也就是apk解压后assetsin\Data下的文件(以Unity工程为例)Google是通过比较文件名和文件内容的相似度来判断两个包是否是马甲包,不管你是用mono方式打包,还是IL2CPP方式打包,这个目录下会有一大堆用hash值命名的二进制文件,hash值来源于原始的文件名,这意味着如果两个apk里面有大量的二进制文件同名,那么对应的也就会有大量的实体资源文件同名,这个很危险。

最佳选择,把用到的资源单独打一个AssetBundle包,并对这个包进行加密(简单的按位取反就行),这样就不会有太多二进制文件暴露在assetsin\Data目录下了,这个最优选择也有个问题,就是如果这次提的包被封了,下次提的包AssetBundle文件就和这次相同了,解决方法就是换一种加密方式。

服务器网络,如果你提交的包被封了,那么下次提交时一定要更换服务器的IP地址和域名,很多互金朋友可能不知道,自己游戏的HTTP请求是明文的,就是客户端发送给服务器的HTTP请求把服务器的域名写的很清楚,Google会毫不客气地封掉这个域名,所以光换IP地址,不换服务器域名,是没有用的,没有用的,没有用的!

 代码(针对Unity工程)这个没什么好说的,直接用IL2CPP方式打包,如果你坚持用mono打包,也可以,自己修改一下libmono.so,实现对dll的加密就行。


总结


一定要确定账号生产源头是隔离的,ip、邮箱、物理地址、付款卡要一卡一号。

谷歌反作弊

如果仅仅前面3步你以为能逃脱强大的Google Ai了?谷歌反作弊系统会分析你的代码的,以及各种特征。最好的办法是以前的都不要用了。不然每次封杀你,你可能会怀疑人生,做到以上4点好像看起来就跟以前完全脱离了。没错,就是这样,你一定要把自己当做全新的一个开发者。不要侥幸。你对面的是全球最强大的人工智能。而你只有一个人。

上传应用部分

多个马甲包,隔天上传,每个马甲包隔1天上传,发布成功一个,则上传下一个。因为同一天可能被同一个人审核,以避免造成同时被拒/下架

用Firefox传包,据说可以隔离本地数据

应用描述、应用截图,与之前不同

应用描述不包含竞品品牌词,apache、base测试版发布,测试人员账号,与之前不同


APK打包部分

《隐私协议》《用户数据授权说明》《其他文本协议》,与之前不同
APP前端文案(展示文案&提示文案…),与之前不同,细化到每个词,不仅仅是顺序调整

APK内数据传送域名、API、IP、域名主体、SSL证书主体,与之前不同

APK文案中联系方式(WhatsApp、email、手机号、地址…),与之前不同
APK内三方服务信息(如firebase、google analytics等),与之前不同
APK应用签名,与之前不同
APK打包机器和IP,与之前不同

代码混淆,相似度越低越好,相似性<40%,有条件重构最好。

文件名、类名、协议名、函数名、属性名;图片、样式表等资源文件命名及路径,与之前完全不同

APP启动弹出隐私授权声明,需用户同意,才能进入下一环节,用户同意后,才可进行数据采集授权,用户同意授权后,才可进行数据收集

图片、视频等媒体文件,hash值与之前不同(需打乱)

UI与之前完全不同,从外表看与被下架的产品有结构上的区别