Egor
Egor

Reputation: 485

How to delete unnecessary permissions in Android?

Some additional permissions, not coded in Manifest, show up while installing my application on a real device, e.g. I have coded:

<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />

While installing I see also Storage(Modify/delete USB storage contents) and Phone Calls(Read phone status and ID) permissions.

(Activities don't use any additional permissions.)

I would like to know, how can they be deleted.

Upvotes: 2

Views: 4621

Answers (1)

Sherif elKhatib
Sherif elKhatib

Reputation: 45942

Android 1.6 changelog: http://developer.android.com/sdk/android-1.6.html#api

WRITE_EXTERNAL_STORAGE: Allows an application to write to external storage. Applications using API Level 3 and lower will be implicitly granted this permission (and this will be visible to the user); Applications using API Level 4 or higher must explicitly request this permission.

But that is only one of them. For some reason the official change log is missing the info about READ_PHONE_STATE. The full story is cleared up here: http://blogs.zdnet.com/Burnette/?p=1369&page=3

New permissions. 1.6 programs must explicitly request the WRITE_EXTERNAL_STORAGE permission to be able to modify the contents of the SD card, and they must explicitly request the READ_PHONE_STATE permission to be able to be able to retrieve phone state info. Apps targeting earlier versions will always request these permissions implicitly.

So as you can see, there is no way to publish an app targeted at 1.5 or earlier without requesting those permissions when installed on phones running 1.6 or higher.

Quoting from Android permissions: Phone Calls: read phone state and identity

Upvotes: 4

Related Questions