华为手机安装apk提示该应用已感染病毒,ESET
apk不是应用市场下载的,华为手机安装的时候看到提示该应用已病毒或者包含不良信息一脸懵,开发过那么多app都没遇到过这种问题,由于项目是接手的,完全不知道加载了什么第三方库,并且只有华为手机会检测到病毒,小米不会。
一开始是以为是获取手机通讯录权限的问题,把代码都删掉,再次安装apk。华为这种检测奇特,你一开始装apk不会马上提示病毒,过段几个小时,要么到第二天才能知道apk会不会报。删掉通讯录权限后还是一样提示,开始打开了百度。
查到可以用VirusTotal这个软件去检查病毒,检测到ESET-NOD32,再一查看到因为依赖了com.blankj:utilcode,找了自己项目确实有这个,删除后报红开始各种修改代码,用了小技巧,根据用到这个库的类,自己重建同样的类,然后把复制代码到自己的类里面,工具类的代码都是一样的,这种应该不会存在问题,报病毒应该是这个库获取权限过多导致的,只需重新导包,省去自己一个个替换。
全部修改完毕后,满心欢喜的以为应该没问题了,再次打包检测,还是报ESET-NOD32,猝…… 开始了漫长的排查之路,用最笨的方法,把依赖一个个删掉后,都去VirusTotal检测,检测到怀疑人生,,,终于发现项目加载了一个名叫SDK的jar,删掉也不影响代码,打包检测终于也不报错了,感动。
检查的过程中也测试过,删除名叫SDK的jar包,保留com.blankj:utilcode这个,也是会报ESET-NOD32,完全解决是,2个都删除,完工。
总结:把你不熟悉的jar,依赖先排除,还有一点app名字有点敏感的话,可能也会被检测到。