19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpage.title=<permission> 22a1b706ec11e53689a2f86cc8e558e74591b462aScott Mainparent.title=The AndroidManifest.xml File 32a1b706ec11e53689a2f86cc8e558e74591b462aScott Mainparent.link=manifest-intro.html 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project@jd:body 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dl class="xml"> 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dt>syntax:</dt></dt> 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dd><pre class="stx"><permission android:<a href="#desc">description</a>="<i>string resource</i>" 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project android:<a href="#icon">icon</a>="<i>drawable resource</i>" 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project android:<a href="#label">label</a>="<i>string resource</i>" 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project android:<a href="#nm">name</a>="<i>string</i>" 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project android:<a href="#pgroup">permissionGroup</a>="<i>string</i>" 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project android:<a href="#plevel">protectionLevel</a>=["normal" | "dangerous" | 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project "signature" | "signatureOrSystem"] /></pre></dd> 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dt>contained in:</dt> 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dd><code><a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code></dd> 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dt>description:</dt> 203155825c256b150cfa635ad27ac7a2bab76371b0Dirk Dougherty<dd itemprop="description">Declares a security permission that can be used to limit access 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectto specific components or features of this or other applications. 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectSee the <a href="{@docRoot}guide/topics/manifest/manifest-intro.html#perms">Permissions</a> 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectsection in the introduction, 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectand the <a href="{@docRoot}guide/topics/security/security.html">Security and Permissions</a> 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectdocument for more information on how permissions work.</dd> 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dt>attributes:</dt> 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dd><dl class="attr"> 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dt><a name="desc"></a>{@code android:description}</dt> 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dd>A user-readable description of the permission, longer and more 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinformative than the label. It may be displayed to explain the 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpermission to the user — for example, when the user is asked 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectwhether to grant the permission to another application. 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<p> 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectThis attribute must be set as a reference to a string resource; 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectunlike the {@code label} attribute, it cannot be a raw string. 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</p></dd> 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dt><a name="icon"></a>{@code android:icon}</dt> 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dd>A reference to a drawable resource for an icon that represents the 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpermission.</dd> 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dt><a name="label"></a>{@code android:label}</dt> 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dd>A name for the permission, one that can be displayed to users. 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<p> 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectAs a convenience, the label can be directly set 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectas a raw string while you're developing the application. However, 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectwhen the application is ready to be published, it should be set as a 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectreference to a string resource, so that it can be localized like other 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstrings in the user interface. 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</p></dd> 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dt><a name="nm"></a>{@code android:name}</dt> 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dd>The name of the permission. This is the name that will be used in 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectcode to refer to the permission — for example, in a 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code> element and the 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{@code permission} attributes of application components. 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<p> 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectThe name must be unique, so it should use Java-style scoping — 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectfor example, "{@code com.example.project.PERMITTED_ACTION}". 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</p></dd> 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dt><a name="pgroup"></a>{@code android:permissionGroup}</dt> 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dd>Assigns this permission to a group. The value of this attribute is 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectthe name of the group, which must be declared with the 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html"><permission-group></a></code> element in this 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projector another application. If this attribute is not set, the permission 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectdoes not belong to a group.</dd> 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dt><a name="plevel"></a>{@code android:protectionLevel}</dt> 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dd>Characterizes the potential risk implied in the permission and 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectindicates the procedure the system should follow when determining 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectwhether or not to grant the permission to an application requesting it. 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectThe value can be set to one of the following strings: 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<table> 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<tr> 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project <th>Value</th> 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project <th>Meaning</th> 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</tr><tr> 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project <td>"{@code normal}"</td> 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project <td>The default value. A lower-risk permission that gives requesting 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project applications access to isolated application-level features, with 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project minimal risk to other applications, the system, or the user. 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project The system automatically grants this type 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project of permission to a requesting application at installation, without 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project asking for the user's explicit approval (though the user always 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project has the option to review these permissions before installing). 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</tr><tr> 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project <td>"{@code dangerous}"</td> 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project <td>A higher-risk permission that would give a requesting application 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project access to private user data or control over the device that can 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project negatively impact the user. Because this type of permission 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project introduces potential risk, the system may not automatically 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project grant it to the requesting application. For example, any dangerous 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project permissions requested by an application may be displayed to the 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project user and require confirmation before proceeding, or some other 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project approach may be taken to avoid the user automatically allowing 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project the use of such facilities. 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</tr><tr> 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project <td>"{@code signature}"</td> 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project <td>A permission that the system grants only if the requesting 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project application is signed with the same certificate as the application 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project that declared the permission. If the certificates match, the system 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project automatically grants the permission without notifying the user or 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project asking for the user's explicit approval. 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</tr><tr> 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project <td>"{@code signatureOrSystem}"</td> 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project <td>A permission that the system grants only to applications that are 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project in the Android system image <em>or</em> that are signed with the same 11422d17c984ae91e85a67d3fc03c092538c5080b0fScott Main certificate as the application that declared the permission. Please avoid using this 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project option, as the {@code signature} protection level should be sufficient 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for most needs and works regardless of exactly where applications are 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project installed. The "{@code signatureOrSystem}" 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project permission is used for certain special situations where multiple 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project vendors have applications built into a system image and need 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project to share specific features explicitly because they are being built 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project together. 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</tr> 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</table> 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</dd> 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</dl></dd> 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1279c3209db78bf171f5055baae376f7bdfdfba4a9fDirk Dougherty<!-- ##api level indication## --> 1289c3209db78bf171f5055baae376f7bdfdfba4a9fDirk Dougherty<dt>introduced in:</dt> 1299c3209db78bf171f5055baae376f7bdfdfba4a9fDirk Dougherty<dd>API Level 1</dd> 1309c3209db78bf171f5055baae376f7bdfdfba4a9fDirk Dougherty 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dt>see also:</dt> 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<dd><code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code> 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<br/><code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html"><permission-tree></a></code> 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<br/><code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html"><permission-group></a></code></dd> 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</dd> 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</dl> 138