描述
在上架Oppo的时候审核打回了发现了病毒。提示如下:
自动化检测“安全”项未通过,病毒名称:Android.Virus.AdCheat.AdCut.A,病毒描述:该病毒安装启动后,会展示非官方广告,造成盗源消耗和信息泄露,请卸载。

随即我在oppo手机上用手机管家扫描,的确也是提示这个病毒:

分析
Unity3D游戏接入了穿山甲的广告Sdk Gromore,我接入的版本为2022年12月07日15:26:28为止最新的v3.7.0.4 。而且我能确保对广告没有任何违规操作。

寻求客服
由于是上架oppo被打回,于是第一件事情肯定是先找oppo的客服,咨询一番发现客服是傻b。只会重复这一句:让开发去查。
搜索关键词
由于客服那边无法得到有效信息,于是在百度和谷歌搜索了一番。咦~竟然在oppo社区发现有类似的问题:

但是会发现他们的问题跟我的不一样,我是ADCut,他们是AutoClick或者是OutAppAD ,而且会发现这些帖子下面也有很多人出现这种问题,但是都没解决方案。
穿山甲文档
搜索引擎无果之后,因为能确定是广告问题,于是我打开了穿山甲官网,打开帮助文档,看完了全部的FAQ,没发现并没有相关描述。
穿山甲工单
最后只能寻找穿山甲的客服(工单)了。创建工单直接问:

然后穿山甲需要我自己确定是gromore还是穿山甲导致的问题(我知道个毛线),还让我提供oppo具体的检测文件(具体个毛线,oppo就给两行字爱看不看)

问题解决
经过和穿山甲工单客服的交流,最后他给我发了一个穿山甲的定制sdk。 接入后发现问题解决。
链接:https://bytedance.feishu.cn/docs/doccnyM6p6dRmBZ1clYDUoQUcrd#SVXFHc
密码: jnUF


防止它删除,我上传了一份到云盘:
链接: https://pan.baidu.com/s/1ut7vy2kUkLH9K3VJ9w8G-w?pwd=ny6y
提取码: ny6y
定制Sdk接入
简单分析了一下这个定制sdk,发现主要是包名路径修改了, com.bytedance.sdk.openadsdk -> com.bykv.vk.openvk ,其余的基本不变,所以接入的时候需要注意修改对应的包名地方。由于我是Unity3D接入的Gromore,所以我接入的步骤如下:
1. 替换aar文件
把msdk.androidlibModule的libs里面的open_ad_sdk_4.8.0.8.aar文件删除,复制压缩包里面的open_ad_sdk_4.8.1.1.aar进去

2. 修改部分路径
代码文件:MSDK/Scripts/Android/AdManager.java 里面有一个地方修改
if (extraInfo instanceof Bundle) {
//直接使用字符串:: float rewardPropose = ((Bundle) extraInfo).getFloat(TTRewardVideoAd.REWARD_EXTRA_KEY_REWARD_PROPOSE);
float rewardPropose = ((Bundle) extraInfo).getFloat("reward_extra_key_reward_propose");
jsonObject.put("rewardPropose", rewardPropose);
}

清单文件:Plugins/Android/msdk.androidlib/AndroidManifest.xml 里面的Provider路径需要修改:
<provider
android:name="com.bykv.vk.openvk.TTFileProvider"
android:authorities="${applicationId}.TTFileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/pangle_file_paths" />
</provider>
<provider
android:name="com.bykv.vk.openvk.multipro.TTMultiProvider"
android:authorities="${applicationId}.TTMultiProvider"
android:exported="false" />

混淆文件:也是一样,把混淆文件proguard-user里面的相关com.bytedance.sdk.openadsdk的路径都替换成com.bykv.vk.openvk 即可。

接入方法仅供参考,如果你是用原生Android的或者是其它引擎的,原理一样,换汤不换药。
![[附源码]Python计算机毕业设计Django行程规划app](https://img-blog.csdnimg.cn/ea06d50398254333bba84a285aaf7263.png)












![[附源码]Python计算机毕业设计Django疫情背景下社区互助服务系统](https://img-blog.csdnimg.cn/449db978e87f48a89a01a2c2b26c2600.png)





