¿Por qué los permisos se agregan automáticamente a mi AndroidManifest al incluir la biblioteca de servicios de Google Play?

Noté que los siguientes permisos se agregaron automáticamente cuando uso lo siguiente en mi archivo build.gradle

compile 'com.google.android.gms:play-services:7.5.0' 

Esto no ocurrió con las versiones anteriores de los servicios de juego. ¿Alguien tiene una solución para eliminar estos permisos no deseados?

Solo estoy usando la función de anuncios (INTERNET y ACCESSNETWORK_STATE). No tuve la necesidad de los permisos LOCATION y USE_CREDENTIALS. ¿Cómo se eliminan estos permisos no deseados?

Noté que el archivo ‘manifest-merger-xxx-debug-report.txt’ contiene lo siguiente

  ... MERGED from com.google.android.gms:play-services-maps:7.5.0:22:5 android:name ADDED from com.google.android.gms:play-services-maps:7.5.0:22:22 uses-permission#android.permission.ACCESS_COARSE_LOCATION ADDED from com.google.android.gms:play-services-maps:7.5.0:23:5 MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5 MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5 MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5 android:name ADDED from com.google.android.gms:play-services-maps:7.5.0:23:22 uses-feature#0x00020000 ADDED from com.google.android.gms:play-services-maps:7.5.0:24:5 MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5 MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5 MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5 android:glEsVersion ADDED from com.google.android.gms:play-services-maps:7.5.0:25:8 android:required ADDED from com.google.android.gms:play-services-maps:7.5.0:26:8 android:uses-permission#android.permission.READ_EXTERNAL_STORAGE IMPLIED from AndroidManifest.xml:2:1 reason: com.google.android.gms.maps requested WRITE_EXTERNAL_STORAGE uses-permission#android.permission.GET_ACCOUNTS ADDED from com.google.android.gms:play-services-wallet:7.5.0:21:5 android:name ADDED from com.google.android.gms:play-services-wallet:7.5.0:21:22 uses-permission#android.permission.USE_CREDENTIALS ADDED from com.google.android.gms:play-services-wallet:7.5.0:22:5 android:name ADDED from com.google.android.gms:play-services-wallet:7.5.0:22:22 meta-data#com.google.android.gms.wallet.api.enabled ... 

Cuando usas

 compile 'com.google.android.gms:play-services:7.5.0' 

Esto implica que está utilizando todas las características de los servicios de Google Play, incluidos los servicios de ubicación. Si solo necesita una API particular, debe usar las API selectivas .

En el caso de los anuncios, puede usar únicamente:

 compile 'com.google.android.gms:play-services-ads:7.5.0' 

Puede excluir esos permisos agregados automáticamente si la función de su aplicación no lo requiere.

En mi caso estoy usando el servicio de Google wallet GET_ACCOUNTS USE_CREDENTIALS 8.3 que agrega GET_ACCOUNTS y USE_CREDENTIALS . No es necesario que el usuario seleccione la cuenta de google para seleccionar la billetera de Google.

   

tools:node="remove" hace el truco al crear el manifiesto completo.

Mire la /build/intermediates/manifest/full/debug completa de AndroidManifest.xml en /build/intermediates/manifest/full/debug