How to remove specific permission when build Andro

2019-01-13 18:02发布

问题:

Recently Google auto merge permission from Google Service to final release apk. Some one ask here Why are permissions being automatically added to my AndroidManifest when including Google Play Services library

My problem is some permission don't need and I don't want some sensitive permission in my app. So how to remove permission like android.permission.ACCESS_COARSE_LOCATION ? With gradle build, I don't want to disable Manifest Merger. I read some where that can config Merger to remove permission from external lib, but I can't find how to do it.

回答1:

Add attribute tools:node with a value of remove to your manifest:

<manifest ... xmlns:tools="http://schemas.android.com/tools">
    ...
    <uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove"/>
    ...
</manifest>

See http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC-tools:node-markers

Don't forget to add the tools namespace to the root element of your manifest.