SDK 21+ and Unity’s Scary Android Permissions

If you have recently updated Unity, or updated your targetSdkVersion to 21 or greater, you may notice that your game is now asking for Android permissions that you never requested.

android phone state permission

Woah, what!?

Thankfully you can make it stop doing this.

READ_PHONE_STATE

The "make and manage phone calls" permission is the READ_PHONE_STATE permission. This can be removed using the Android tools XML namespace.

Add this to your AndroidManifest.xml :

<uses-permission android:name="android.permission.READ_PHONE_STATE"
                 tools:node="remove" />
Make sure that the <manifest> tag in your AndroidManifest.xml contains xmlns:tools="http://schemas.android.com/tools".

WRITE_EXTERNAL_STORAGE

The other permission is the WRITE_EXTERNAL_STORAGE permission.

If your game does require this permission, you will need to request it later in order to use it.

We suggest only asking for permissions when the user initiates an action that would require the permission. If you need help with this, contact us.

android photos permission

Can be suppressed by adding this to your AndroidManifest.xml inside your main <activity>:

<meta-data android:name="unityplayer.SkipPermissionsDialog"
           android:value="true" />