I noticed that the following permissions were automatically added when i use the following in my build.gradle file
compile 'com.google.android.gms:play-services:7.5.0'
This did not occur with the earlier versions of the play-services. does anyone have a solution to remove these unwanted permissions?
I am only using the ads function (INTERNET and ACCESSNETWORK_STATE). I got no need for the LOCATION and USE_CREDENTIALS permissions. How do you remove these unwanted permissions?
I noticed that the 'manifest-merger-xxx-debug-report.txt' file contains the following
...<snipped bunch of other merges> 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 ...<snips more lines away>
The simple way to remove this type of permission, is by deleting its xml code line from the original Android Manifest file in android/app/src/main .
The Android manifest file helps to declare the permissions that an app must have to access data from other apps. The Android manifest file also specifies the app's package name that helps the Android SDK while building the app.
permission. RECEIVE_BOOT_COMPLETED. run at startup. Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
When you use
compile 'com.google.android.gms:play-services:7.5.0'
This implies you are using every feature of Google Play Services, including location services. If you only need a particular API, you should be using the selective APIs.
In the case of ads, you can use solely:
compile 'com.google.android.gms:play-services-ads:7.5.0'
You can exclude those auto added permissions if your app feature doesn't require.
In my case i'm using Google wallet
play service 8.3 which adds GET_ACCOUNTS
and USE_CREDENTIALS
. We don't required user to pick the google account for selecting google wallet.
<uses-permission android:name="android.permission.GET_ACCOUNTS" tools:node="remove"/> <uses-permission android:name="android.permission.USE_CREDENTIALS" tools:node="remove" />
tools:node="remove"
does the trick when creating the full manifest.
Look at the Full final AndroidManifest.xml
at /build/intermediates/manifest/full/debug
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With