/**@class android.content.pm.PermissionInfo
 implements android.os.Parcelable

@extends android.content.pm.PackageItemInfo

 Information you can retrieve about a particular security permission
 known to the system.  This corresponds to information collected from the
 AndroidManifest.xml's <permission> tags.
*/
var PermissionInfo = {

/** A normal application value for {@link #protectionLevel}, corresponding
 to the <code>normal</code> value of
 {@link android.R.attr#protectionLevel}.
*/
PROTECTION_NORMAL : "0",
/** Dangerous value for {@link #protectionLevel}, corresponding
 to the <code>dangerous</code> value of
 {@link android.R.attr#protectionLevel}.
*/
PROTECTION_DANGEROUS : "1",
/** System-level value for {@link #protectionLevel}, corresponding
 to the <code>signature</code> value of
 {@link android.R.attr#protectionLevel}.
*/
PROTECTION_SIGNATURE : "2",
/** @deprecated Use {@link #PROTECTION_SIGNATURE}|{@link #PROTECTION_FLAG_PRIVILEGED}
 instead.
*/
PROTECTION_SIGNATURE_OR_SYSTEM : "3",
/** Additional flag for {@link #protectionLevel}, corresponding
 to the <code>privileged</code> value of
 {@link android.R.attr#protectionLevel}.
*/
PROTECTION_FLAG_PRIVILEGED : "16",
/** @deprecated Old name for {@link #PROTECTION_FLAG_PRIVILEGED}, which
 is now very confusing because it only applies to privileged apps, not all
 apps on the system image.
*/
PROTECTION_FLAG_SYSTEM : "16",
/** Additional flag for {@link #protectionLevel}, corresponding
 to the <code>development</code> value of
 {@link android.R.attr#protectionLevel}.
*/
PROTECTION_FLAG_DEVELOPMENT : "32",
/** Additional flag for {@link #protectionLevel}, corresponding
 to the <code>appop</code> value of
 {@link android.R.attr#protectionLevel}.
*/
PROTECTION_FLAG_APPOP : "64",
/** Additional flag for {@link #protectionLevel}, corresponding
 to the <code>pre23</code> value of
 {@link android.R.attr#protectionLevel}.
*/
PROTECTION_FLAG_PRE23 : "128",
/** Additional flag for {@link #protectionLevel}, corresponding
 to the <code>installer</code> value of
 {@link android.R.attr#protectionLevel}.
*/
PROTECTION_FLAG_INSTALLER : "256",
/** Additional flag for {@link #protectionLevel}, corresponding
 to the <code>verifier</code> value of
 {@link android.R.attr#protectionLevel}.
*/
PROTECTION_FLAG_VERIFIER : "512",
/** Additional flag for {@link #protectionLevel}, corresponding
 to the <code>preinstalled</code> value of
 {@link android.R.attr#protectionLevel}.
*/
PROTECTION_FLAG_PREINSTALLED : "1024",
/** Additional flag for {@link #protectionLevel}, corresponding
 to the <code>setup</code> value of
 {@link android.R.attr#protectionLevel}.
*/
PROTECTION_FLAG_SETUP : "2048",
/** Additional flag for {@link #protectionLevel}, corresponding
 to the <code>instant</code> value of
 {@link android.R.attr#protectionLevel}.
*/
PROTECTION_FLAG_INSTANT : "4096",
/** Additional flag for {@link #protectionLevel}, corresponding
 to the <code>runtime</code> value of
 {@link android.R.attr#protectionLevel}.
*/
PROTECTION_FLAG_RUNTIME_ONLY : "8192",
/** Additional flag for {@link #protectionLevel}, corresponding
 to the <code>oem</code> value of
 {@link android.R.attr#protectionLevel}.

 @hide
*/
PROTECTION_FLAG_OEM : "16384",
/** Additional flag for {${link #protectionLevel}, corresponding
 to the <code>vendorPrivileged</code> value of
 {@link android.R.attr#protectionLevel}.

 @hide
*/
PROTECTION_FLAG_VENDOR_PRIVILEGED : "32768",
/** Additional flag for {@link #protectionLevel}, corresponding
 to the <code>text_classifier</code> value of
 {@link android.R.attr#protectionLevel}.

 @hide
*/
PROTECTION_FLAG_SYSTEM_TEXT_CLASSIFIER : "65536",
/** Additional flag for {${link #protectionLevel}, corresponding
 to the <code>wellbeing</code> value of
 {@link android.R.attr#protectionLevel}.

 @hide
*/
PROTECTION_FLAG_WELLBEING : "131072",
/** Additional flag for {@link #protectionLevel}, corresponding to the
 {@code documenter} value of {@link android.R.attr#protectionLevel}.

 @hide
*/
PROTECTION_FLAG_DOCUMENTER : "262144",
/** Additional flag for {@link #protectionLevel}, corresponding to the
 {@code configurator} value of {@link android.R.attr#protectionLevel}.

 @hide
*/
PROTECTION_FLAG_CONFIGURATOR : "524288",
/** Additional flag for {${link #protectionLevel}, corresponding
 to the <code>incident_report_approver</code> value of
 {@link android.R.attr#protectionLevel}.

 @hide
*/
PROTECTION_FLAG_INCIDENT_REPORT_APPROVER : "1048576",
/** Additional flag for {@link #protectionLevel}, corresponding
 to the <code>app_predictor</code> value of
 {@link android.R.attr#protectionLevel}.

 @hide
*/
PROTECTION_FLAG_APP_PREDICTOR : "2097152",
/** Mask for {@link #protectionLevel}: the basic protection type.

 @deprecated Use #getProtection() instead.
*/
PROTECTION_MASK_BASE : "15",
/** Mask for {@link #protectionLevel}: additional flag bits.

 @deprecated Use #getProtectionFlags() instead.
*/
PROTECTION_MASK_FLAGS : "65520",
/** The level of access this permission is protecting, as per
 {@link android.R.attr#protectionLevel}. Consists of
 a base permission type and zero or more flags. Use the following functions
 to extract them.

 <pre>
 int basePermissionType = permissionInfo.getProtection();
 int permissionFlags = permissionInfo.getProtectionFlags();
 </pre>

 <p></p>Base permission types are {@link #PROTECTION_NORMAL},
 {@link #PROTECTION_DANGEROUS}, {@link #PROTECTION_SIGNATURE}
 and the deprecated {@link #PROTECTION_SIGNATURE_OR_SYSTEM}.
 Flags are listed under {@link android.R.attr#protectionLevel}.

 @deprecated Use #getProtection() and #getProtectionFlags() instead.
*/
protectionLevel : "null",
/** The group this permission is a part of, as per
 {@link android.R.attr#permissionGroup}.
*/
group : "null",
/** Flag for {@link #flags}, corresponding to <code>costsMoney</code>
 value of {@link android.R.attr#permissionFlags}.
*/
FLAG_COSTS_MONEY : "1",
/** Flag for {@link #flags}, corresponding to <code>removed</code>
 value of {@link android.R.attr#permissionFlags}.
 @hide
*/
FLAG_REMOVED : "2",
/** Flag for {@link #flags}, corresponding to <code>hardRestricted</code>
 value of {@link android.R.attr#permissionFlags}.

 <p> This permission is restricted by the platform and it would be
 grantable only to apps that meet special criteria per platform
 policy.
*/
FLAG_HARD_RESTRICTED : "4",
/** Flag for {@link #flags}, corresponding to <code>softRestricted</code>
 value of {@link android.R.attr#permissionFlags}.

 <p>This permission is restricted by the platform and it would be
 grantable in its full form to apps that meet special criteria
 per platform policy. Otherwise, a weaker form of the permission
 would be granted. The weak grant depends on the permission.
*/
FLAG_SOFT_RESTRICTED : "8",
/** Flag for {@link #flags}, corresponding to <code>immutablyRestricted</code>
 value of {@link android.R.attr#permissionFlags}.

 <p>This permission is restricted immutably which means that its
 restriction state may be specified only on the first install of
 the app and will stay in this initial whitelist state until
 the app is uninstalled.
*/
FLAG_IMMUTABLY_RESTRICTED : "16",
/** Flag for {@link #flags}, indicating that this permission has been
 installed into the system's globally defined permissions.
*/
FLAG_INSTALLED : "1073741824",
/** Additional flags about this permission as given by
 {@link android.R.attr#permissionFlags}.
*/
flags : "null",
/** A string resource identifier (in the package's resources) of this
 permission's description.  From the "description" attribute or,
 if not set, 0.
*/
descriptionRes : "null",
/** A string resource identifier (in the package's resources) used to request the permissions.
 From the "request" attribute or, if not set, 0.

 @hide
*/
requestRes : "null",
/** Some permissions only grant access while the app is in foreground. Some of these permissions
 allow to add background capabilities by adding another permission.

 If this is such a permission, this is the name of the permission adding the background
 access.

 From the "backgroundPermission" attribute or, if not set null

 @hide
*/
backgroundPermission : "null",
/** The description string provided in the AndroidManifest file, if any.  You
 probably don't want to use this, since it will be null if the description
 is in a resource.  You probably want
 {@link android.content.pm.PackageParser.PermissionInfo#loadDescription} instead.
*/
nonLocalizedDescription : "null",
/***/
CREATOR : "null",
/**
@hide 
*/
fixProtectionLevel : function(  ) {},

/**
@hide 
*/
protectionToString : function(  ) {},

/**Retrieve the textual description of this permission.  This
 will call back on the given PackageManager to load the description from
 the application.
@param {Object {PackageManager}} pm A PackageManager from which the label can be loaded; usually
 the PackageManager from which you originally retrieved this item.
@return {Object {java.lang.CharSequence}} Returns a CharSequence containing the permission's description.
 If there is no description, null is returned.
*/
loadDescription : function(  ) {},

/**Return the base permission type.
*/
getProtection : function(  ) {},

/**Return the additional flags in {@link #protectionLevel}.
*/
getProtectionFlags : function(  ) {},

/**
*/
toString : function(  ) {},

/**
*/
describeContents : function(  ) {},

/**
*/
writeToParcel : function(  ) {},

/**
@hide 
*/
calculateFootprint : function(  ) {},

/**
@hide 
*/
isHardRestricted : function(  ) {},

/**
@hide 
*/
isSoftRestricted : function(  ) {},

/**
@hide 
*/
isRestricted : function(  ) {},

/**
@hide 
*/
isAppOp : function(  ) {},

/**
@hide 
*/
isRuntime : function(  ) {},


};