You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改com.google.firebase.iid.FirebaseInstanceIdReceiver权限

解决MobSF上报com.google.firebase.iid.FirebaseInstanceIdReceiver权限异常问题

该异常的触发原因是你集成的Firebase Messaging组件中,内置的FirebaseInstanceIdReceiver广播接收器未配置正确的权限限制,存在被恶意应用伪造广播触发应用逻辑的风险,因此被MobSF判定为安全问题。

修复步骤

  • 优先升级Firebase Messaging依赖到最新稳定版
    谷歌在Firebase BOM 28.0.0及以上版本已经正式废弃FirebaseInstanceIdReceiver,改用默认配置合规的FirebaseMessagingReceiver替代,无需手动修改清单配置即可解决该异常。你可以直接修改Gradle依赖,将com.google.firebase:firebase-messaging升级到23.0.0及以上版本,或者更新Firebase BOM版本即可。
  • 若必须使用旧版Firebase Messaging,手动修改AndroidManifest.xml配置
    如果业务兼容原因无法升级依赖,可以在AndroidManifest.xml中添加如下配置,覆盖SDK默认的接收器声明:
<manifest ...
    xmlns:tools="http://schemas.android.com/tools">
    ...
    <application ...>
        <receiver
            android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver"
            android:exported="false"
            android:permission="com.google.android.c2dm.permission.SEND"
            tools:replace="android:exported,android:permission">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <category android:name="${applicationId}" />
            </intent-filter>
        </receiver>
    </application>
</manifest>

配置说明:

  • 添加android:permission="com.google.android.c2dm.permission.SEND"限制后,只有系统FCM服务有权限向该接收器发送广播,拦截第三方应用的恶意调用
  • 明确设置android:exported="false",禁止第三方应用访问该组件,适配Android 12及以上版本的组件导出规则
  • 加上tools:replace属性避免清单合并时你的配置被SDK默认值覆盖
  • 验证修复结果
    打包APK后用Android Studio自带的Apk Analyzer打开APK,检查AndroidManifest.xml中的FirebaseInstanceIdReceiver配置是否符合上述要求,确认配置生效后重新运行MobSF扫描即可消除该异常上报。

内容的提问来源于stack exchange,提问作者Eleonora Rocchi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 08:30:01