来自 Google Play 商店的隐式 PendingIntent 漏洞错误

Implicit PendingIntent Vulnerability error from Google Play Store

问题描述:

最近,一些开发者报告说他们想在 Play 商店更新他们的应用程序, 但是,它收到来自 Google 的拒绝,标题为 Implicit PendingIntent Vulnerability,表示他们的应用程序包含隐式 PendingIntent 问题.他们需要在 Play 管理中心显示的截止日期之前解决此问题,否则应用可能会从 Google Play 中移除。

类似问题:Google denied update due Remediation for Implicit PendingIntent Vulnerability

正如@tao提到的,让我post这里的解决方案。


问题原因:

5.3.0.304版本之前的HMS Core Push kit、之前的Analytics Kit 6.0.0.301版本和早于5.3.0.305版本的Account kit包含Implicit PendingIntent问题。

解决方案:

推送服务SDK version 5.3.0.304、Analytics Kit SDK version 6.0.0.301 和 Account kit SDK version 5.3.0.305 已发布并修复了 Implicit PendingIntent 问题。它们已经过开发人员的测试和验证,可以通过 Google 批准发布。

如果您目前正在使用插件(如React Native、Cordova、Ionic、Flutter),在这些插件的新版本发布之前,华为还提供解决方案(通过手动更改版本号)。

下面介绍修改方法(基于5.x插件):

  • React Native
  1. RN中安装HMS Core插件后,插件包存放在node_modules/@hmscore.

  2. 需要修改node_modules/@hmscore/react-native-hms-account/android目录下的build.gradle文件(取Account Kit插件为例):

    打开build.gradle文件,修改依赖中的SDK版本。

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation 'com.facebook.react:react-native:+'  // From node_modules
    implementation 'com.huawei.hms:hwid:5.0.3.302'
}
  1. 更新后,运行以下命令再次开始编译。插件下载新SDK:

    react-native run-android


  • Cordova/Ionic
  1. 如果您安装了华为文档中描述的插件,插件应该保存在node_modules/@hmscore文件夹中。

  2. 您需要修改node_modules/@hmscore/cordova-plugin-hms-push目录下的plugin.xml文件。 (以下以Push Kit插件为例)

    打开Plugin.xml文件,搜索关键字framework,找到需要修改的SDK。

<framework src="androidx.core:core:1.3.1"/>
<framework src="com.facebook.fresco:fresco:2.2.0"/>
<framework src="com.huawei.hms:push:5.0.2.301" />
<framework src="resources/plugin.gradle" custom="true" type="gradleReference"/>

将版本号更改为新的版本号并保存。

  1. 回到应用程序根目录,删除platforms/androidplugins/cordova-plugin-hms-push文件夹

  2. 运行在根目录下执行以下命令:

    科尔多瓦

    cordova platform add android

    cordova run android --device

    Ionic(Cordova)

    ionic cordova platform add android

    ionic build

    ionic cordova run android --device

  3. 离子(电容器)以不同的方式运行:

    ①。从 android 目录中删除 capacitor-cordova-android-plugins 文件夹。

    ②。根据步骤2中的描述修改plugin.xml文件。

    ③。 运行 以下命令:

    ionic build

    npx cap sync

    npx cap open android

    ④。在 Android Studio

    中重新编译

  • 颤动

    您可以参考this answer

总结

以上插件均以开源方式使用,开发者可直接修改

但是Xamarin插件是以Nuget Package方式发布的。因此,您不能修改 SDK 版本。如果出现此问题,请随时与我们联系。