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">&lt;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"] /&gt;</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">&lt;manifest&gt;</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 &mdash; 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 &mdash; for example, in a 
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">&lt;uses-permission&gt;</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 &mdash; 
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">&lt;permission-group&gt;</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">&lt;uses-permission&gt;</a></code>
1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<br/><code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html">&lt;permission-tree&gt;</a></code>
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project<br/><code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html">&lt;permission-group&gt;</a></code></dd>
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</dd>
1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project</dl>
138