Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are the "appop" and "development" protection flags used for?

Tags:

I was writing some test code to verify the type and scope of the permissions that our apps request and I noticed two new protection levels were recently added to Android.

According to the official Android docs, the <permission> element in AndroidManifest.xml accepts one of the following four values:

android:protectionLevel=["normal" | "dangerous" | "signature" | "signatureOrSystem"]

but I noticed that the PermissionInfo class (see here) has flags for a total of six protection levels. It seems that these two levels were added in SDK 16 and 21, respectively, but they don't appear to be documented:

int PROTECTION_FLAG_DEVELOPMENT = 0x20
int PROTECTION_FLAG_APPOP       = 0x40

I was wondering what the different between these protection levels and the ones that can be defined in the manifest and if/when should they be used.