【问题标题】:Pre Launch report issue with Huawei Mate 9华为 Mate 9 的预发布报告问题
【发布时间】:2020-01-20 23:51:11
【问题描述】:

这几天我每次发布 APK 都会收到一个发布前的报告,说它在华为 Mate 9 上失败。报告没有说太多,日志中没有任何崩溃。我能看到的唯一奇怪的是,它声称我的应用程序在屏幕截图上有病毒。我附上它显示的内容。因为我知道我的应用程序没有病毒,所以我很好奇是否有其他人看到它?此版本中唯一的重大变化是我添加了 Unity 广告。

由于我的应用程序有一个介绍屏幕,我认为那些忽略或卸载的按钮会阻止测试软件在我的应用程序中进行。

编辑:回复建议READ_PHONE_STATE 是问题,但我只是在没有它的情况下发布了它,它没有改变任何东西,警告仍然存在。而且该应用程序也没有短信权限。

编辑:我应该补充一点,我继续发布了这个版本,该应用已经有几十万用户尝试了新版本,两个华为用户提到了警告和一个 Oppo 用户,所有这些都来自一些内置的保护,不是他们安装的东西。

编辑:我请求的清单权限:

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="com.android.vending.BILLING"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission-sdk-23 android:name="android.permission.ACCESS_FINE_LOCATION"/>

编辑:华为代表对我说:We have tested the app on Mate 9 device and other 2 models with Android 9.0, there is no such issue, it might be a problem with Android 7.0 system, so we suggested to guide the user to upgrade to Android 9.0 if they have this issue on their devices.

编辑:一位用户给我发了一张更详细的屏幕截图,上面写着clicker.fc 是检测到的病毒。不知道那是什么,谷歌搜索没有帮助。我已经在我的 apk 上尝试了几个病毒扫描程序,但没有发现任何问题。

编辑:原来是 Unity 广告。我设法缩小了它发生的确切版本,然后开始在 Firebase 测试实验室上一一测试新版本,并找到了导致它的确切行。每次都在 gradle 上添加 Unity 广告。

【问题讨论】:

    标签: android huawei-mobile-services


    【解决方案1】:

    没有提供AndroidManifest.xml,因此答案只是一个模糊的问题。

    因此,我假设:

    b) 您可能正在请求任何权限,这需要将应用程序注册为 default handler 以获得 Intent

    您的应用必须先请求成为默认处理程序,然后才能请求与成为该处理程序相关的权限。 例如,应用必须先请求成为默认短信处理程序,然后才能请求READ_SMS 权限。

    b) 或者它找不到访问敏感信息所需的隐私政策,例如 PII(个人身份信息)。 Unity 广告还需要隐私政策。这些 Unity Ads 一般都有点恶意,因为UnityAdsCache ...用于将广告下载到设备以进行离线广告;类似的图像和视频广告,时长为 +/- 30 秒(随着时间的推移,当内部存储已满时,可能会导致一定的性能下降)。见reddit。但是,应用程序的内部存储应该仍然可以访问 - 但会对性能产生负面影响 - 与使用外部媒体(如 SD 卡)相反。

    c) 另一个可能的原因是,这是误报 - 这只能通过联系华为来解决 - 他们可能会告诉你原因 - 或者相应地更新其内置防病毒应用程序的签名。

    【讨论】:

    • 华为代表认为这是他们 Android 7 上的病毒检查器的问题,他们可能是正确的,因为唯一报告它的用户有 Android 7。我没有任何 SMS 权限或处理程序或任何东西与短信有关。我确实有针对某些文件类型的意图处理程序,但如前所述,这个问题突然开始弹出,我的代码几乎没有任何变化,甚至在它开始弹出的版本中也没有添加 Unity。
    • @casolorz 那么您唯一可用的选项是在 Play 商店控制台上将设备列入黑名单(这也应该将其排除在发布前测试之外),至少在华为发布安全卷之前-向上 - 但仍然可能有用户,他们只有移动数据,这是成本 - 他们可能更愿意保持不打补丁。将视频广告下载到此类设备通常会浪费宝贵的流量。
    • 想通了,添加了一个答案。虽然是 Unity 广告,但我无法在不同的测试 apk 上重现该问题。
    【解决方案2】:

    原因

    这是protection 针对智能手机中有害应用程序的消息。 这可能是因为一些**危险的权限**,例如 "Making Phone Calls""Sending SMS""Reading SMS"。由于这些危险的权限,一些防病毒程序会将此类应用程序标记为来自您设备的潜在病毒威胁。

    解决方案

    尝试禁用安全弹出:

    Settings -> Google -> Security -> (Play Protect) And uncheck “Scan Device for Security threats”
    

    【讨论】:

    • 我不使用短信,但我确实有电话呼叫权限,以便在发生呼叫时收到通知,以便在用户启用它时执行某些操作。那一定是这样做的人。这是新事物吗?
    • 是的,因为您获得了读取呼叫的权限。您可以在给出的链接中查看权限策略:android-developers.googleblog.com/2019/01/…
    • 我没有通话记录权限,我有READ_PHONE_STATE。这仍然适用吗?
    • 是的,我看到了,我没有看到READ_PHONE_STATE,但我确实看到了类似的东西。我知道具有短信权限的应用程序在今年早些时候收到了警告和删除,我没有收到任何警告。此病毒警告来自华为,仅影响华为。不过感谢您提供的所有信息,我真的很感激,并让我考虑删除此功能,因为它只是我应用程序的一小部分。
    【解决方案3】:

    原来是 Unity 广告。我设法缩小了它发生的确切版本,然后开始在 Firebase 测试实验室上一一测试新版本,并找到了导致它的确切行。每次都在 gradle 上添加 Unity 广告。

    我应该补充一点,虽然它发生在我的带有 Unity 广告的 apk 上,但我在其中一个 Android Studio 模板中添加了 Unity 广告,它不会重现误报,所以不知道我的应用和添加之间的问题是什么导致它的 Unity 广告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-28
      • 2019-02-21
      • 1970-01-01
      • 2019-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多