Ad

Android Permission RECEIVE_BOOT_COMPLETED Vs Firebase Remote Push Notifications Vs Google Play Policy

I've recently built a react native (web) app that uses firebase to receive push notifications. There are two different react libraries for this and both tutorials contains in manifest

   <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

I wonder if this is needed or not and if it is save to have it in the app. Is it needed for remote push notifications function? And second question if it is save from view of Google Play Policy. I am asking because recently my app got removed from store for some violation of "Violation of Usage of Android Advertising ID policy and section 4.8 of the Developer Distribution Agreement". It's not related to this, but i am asking about this permission anyway to not make angry google play again, because it sounds bit sneaky this permission in manifest.

I can mention both libraries / tutorials.

First one is this https://github.com/zo0r/react-native-push-notification

Second one is this https://medium.com/@yangnana11/how-to-set-up-firebase-notification-in-react-native-app-android-only-4920eb875eae

Btw i dont have any receiver like this in the manifest anyway. (Don't know how some library like firebase)

<receiver android:name=".Broadcast" android:exported="true" android:enabled="true">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>
    </receiver>
Ad

Answer

RECEIVE_BOOT_COMPLETED is normal permission. It is alright to have it in the app.

Though holding this permission does not have any security implications, it can have a negative impact on the user experience by increasing the amount of time it takes the system to start and allowing applications to have themselves running without the user being aware of them.

Protection level: normal

This permission is required to set the alarms and other background stuff when the device is rebooted since all the alarms are removed after the reboot. More info here.

Ad
source: stackoverflow.com
Ad