[Help] Unity adds "Device ID & Call information" permission even though there are no extra permissions in the edited AndroidManifest.

I’ve been working on publishing an app to the android market, it is basically finished but I have a problem.

When I publish the app to Google Play there are two new permissions: “Device ID & Call information” and “Full network access”. My game contains no reference to device ID and doesn’t require network access.

I found a few other people online that have had this problem, they suggested editing the android manifest to remove the two permissions, I have done this, republished my game and the permissions are still as before.

I’m not sure whether I edited the manifest correctly, I copied the manifest which was in: projectname\Temp\StageFiles\AndroidManifest.xml. Then put that manifest in projectname\Assets\Plugins\Android. Then I removed these two permissions tags:

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

Now Unity has deleted the StageFiles folder from Temp, my edited manifest with the removed permissions is still there. But after publishing to Google Play the permissions are unchanged.

This is my android manifest, as you can see there are no references to any special permissions:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.Nagrom.ReactionGames" android:versionName="1.0" android:versionCode="1" android:installLocation="auto">
  <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
  <application android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:icon="@drawable/app_icon" android:label="@string/app_name" android:debuggable="false" android:isGame="true" android:banner="@drawable/app_banner">
    <activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name" android:screenOrientation="portrait" android:launchMode="singleTask" android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
    </activity>
  </application>
  <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" />
  <uses-feature android:glEsVersion="0x00020000" />
  <supports-gl-texture android:name="GL_OES_compressed_ETC1_RGB8_texture" />
  <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
  <uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" />
  <uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="false" />
</manifest>

I would love any kind of suggestions, thanks in advance!

Image of permissions

I have solved the issue. For anyone having a similar problem, that doesn’t know how to edit the manifest this is how I did it (probably isn’t the most efficient way).

  1. Use APKTool to decode the APK.
  2. Use Notepad++ (Admin) to remove the permissions I needed to.
  3. Build the APK back to it’s original (but without unwanted permissions) using APKTool.
  4. Generate a KeyStore and manually sign the APK by using Google’s guide here(Scroll to bottom of page, final title).
  5. Use ZipAlign from the Android SDK to re align the file.
  6. Publish to Google Play.