Reza_Rg
Reza_Rg

Reputation: 3374

Permission is only granted to system app, in Manifest

I want to add this permission to my Android manifest:

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

But after I paste this permission in my manifest, it tests red underline and says:

permission is only granted to system apps

What can I do?

Upvotes: 26

Views: 64918

Answers (7)

Ajay Pandya
Ajay Pandya

Reputation: 2457

Because this is the system level permission device developer not grant this so application development tools also warn against this so you have to

Simply Clean project & Rebuild this is it

Upvotes: 1

Xar-e-ahmer Khan
Xar-e-ahmer Khan

Reputation: 1334

There are four types of Permission

Regular
Dangerous
Signed
Signed or System

The first two can be used by Simple Apps Other two can only be used by the app which is build in framework

Upvotes: 1

Khan
Khan

Reputation: 149

Find ProtectedPermission from the list in

Window -> Preferences -> Android -> Lint Error Checking.

and set the severity to something other than error(info for example). This way your project will still compile.

Upvotes: 0

ROR
ROR

Reputation: 271

just clean your project it will be fine like this :

project > Clean...

Upvotes: 2

ThatsAllFoks
ThatsAllFoks

Reputation: 61

This error appears in SDK 19 onwards, when you change the manifest. Do Project Clean and Build. It should clear this error.

Upvotes: 4

Caner
Caner

Reputation: 59168

MODIFY_PHONE_STATE permission is granted to system apps only.

For your information, there are 2 types of Android apps: system & user

User apps are just all your normal app installations through the Google Play Store, Amazon Appstore or sideloading. These go into the /data partition of your Android phone, which is the part of the internal memory made available for user data and apps.

System apps are basically the apps that come pre-installed with your ROM. In a standard Android user environment, the user doesn’t have write access to the /system partition and thus, installing or uninstalling system apps directly isn’t possible.

In order to install an app as a system app on your Android device, your device must either be rooted or have a custom recovery installed (or both).

That being said, that error is actually wrong because you have a valid code and compilation should work. It would be better if it gave a warning instead. In Eclipse you can easily fix it. Just go to:

Window -> Preferences -> Android -> Lint Error Checking.

Find ProtectedPermission from the list and set the severity to something other than error(info for example). This way your project will still compile.

Upvotes: 65

gsb
gsb

Reputation: 5640

MODIFY_PHONE_STATE is a system-only permission. System Apps are either pre-installed into a system folder or compiled by a manufacturer using their security certificate.

Hence, if you are trying to do this you are trying to use API which are no longer supported. With Android versions 2.3+ you can monitor incoming calls, but blocking is not allowed (i think from the link you posted thats what you're trying to do).

Android issues if you need to follow: Issue 15022 and Issue 14789

Upvotes: 6

Related Questions