AndroidManifest.xml revision 7d259626d009a45195ec341646ce06658b842e40
1<?xml version="1.0" encoding="utf-8"?>
2<!--
3/* //device/apps/common/AndroidManifest.xml
4**
5** Copyright 2006, The Android Open Source Project
6**
7** Licensed under the Apache License, Version 2.0 (the "License");
8** you may not use this file except in compliance with the License.
9** You may obtain a copy of the License at
10**
11**     http://www.apache.org/licenses/LICENSE-2.0
12**
13** Unless required by applicable law or agreed to in writing, software
14** distributed under the License is distributed on an "AS IS" BASIS,
15** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16** See the License for the specific language governing permissions and
17** limitations under the License.
18*/
19-->
20<manifest xmlns:android="http://schemas.android.com/apk/res/android"
21    package="android" android:sharedUserId="android.uid.system"
22    android:sharedUserLabel="@string/android_system_label">
23
24    <!-- ================================================ -->
25    <!-- Special broadcasts that only the system can send -->
26    <!-- ================================================ -->
27    <eat-comment />
28
29    <protected-broadcast android:name="android.intent.action.SCREEN_OFF" />
30    <protected-broadcast android:name="android.intent.action.SCREEN_ON" />
31    <protected-broadcast android:name="android.intent.action.USER_PRESENT" />
32    <protected-broadcast android:name="android.intent.action.TIME_TICK" />
33    <protected-broadcast android:name="android.intent.action.TIMEZONE_CHANGED" />
34    <protected-broadcast android:name="android.intent.action.BOOT_COMPLETED" />
35    <protected-broadcast android:name="android.intent.action.PACKAGE_INSTALL" />
36    <protected-broadcast android:name="android.intent.action.PACKAGE_ADDED" />
37    <protected-broadcast android:name="android.intent.action.PACKAGE_REPLACED" />
38    <protected-broadcast android:name="android.intent.action.MY_PACKAGE_REPLACED" />
39    <protected-broadcast android:name="android.intent.action.PACKAGE_REMOVED" />
40    <protected-broadcast android:name="android.intent.action.PACKAGE_CHANGED" />
41    <protected-broadcast android:name="android.intent.action.PACKAGE_RESTARTED" />
42    <protected-broadcast android:name="android.intent.action.PACKAGE_DATA_CLEARED" />
43    <protected-broadcast android:name="android.intent.action.PACKAGE_FIRST_LAUNCH" />
44    <protected-broadcast android:name="android.intent.action.UID_REMOVED" />
45    <protected-broadcast android:name="android.intent.action.CONFIGURATION_CHANGED" />
46    <protected-broadcast android:name="android.intent.action.LOCALE_CHANGED" />
47    <protected-broadcast android:name="android.intent.action.BATTERY_CHANGED" />
48    <protected-broadcast android:name="android.intent.action.BATTERY_LOW" />
49    <protected-broadcast android:name="android.intent.action.BATTERY_OKAY" />
50    <protected-broadcast android:name="android.intent.action.ACTION_POWER_CONNECTED" />
51    <protected-broadcast android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
52    <protected-broadcast android:name="android.intent.action.ACTION_SHUTDOWN" />
53    <protected-broadcast android:name="android.intent.action.DEVICE_STORAGE_LOW" />
54    <protected-broadcast android:name="android.intent.action.DEVICE_STORAGE_OK" />
55    <protected-broadcast android:name="android.intent.action.DEVICE_STORAGE_FULL" />
56    <protected-broadcast android:name="android.intent.action.DEVICE_STORAGE_NOT_FULL" />
57    <protected-broadcast android:name="android.intent.action.NEW_OUTGOING_CALL" />
58    <protected-broadcast android:name="android.intent.action.REBOOT" />
59    <protected-broadcast android:name="android.intent.action.DOCK_EVENT" />
60    <protected-broadcast android:name="android.intent.action.MASTER_CLEAR_NOTIFICATION" />
61
62    <protected-broadcast android:name="android.app.action.ENTER_CAR_MODE" />
63    <protected-broadcast android:name="android.app.action.EXIT_CAR_MODE" />
64    <protected-broadcast android:name="android.app.action.ENTER_DESK_MODE" />
65    <protected-broadcast android:name="android.app.action.EXIT_DESK_MODE" />
66    
67    <protected-broadcast android:name="android.backup.intent.RUN" />
68    <protected-broadcast android:name="android.backup.intent.CLEAR" />
69    <protected-broadcast android:name="android.backup.intent.INIT" />
70
71    <protected-broadcast android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
72    <protected-broadcast android:name="android.bluetooth.adapter.action.SCAN_MODE_CHANGED" />
73    <protected-broadcast android:name="android.bluetooth.adapter.action.DISCOVERY_STARTED" />
74    <protected-broadcast android:name="android.bluetooth.adapter.action.DISCOVERY_FINISHED" />
75    <protected-broadcast android:name="android.bluetooth.adapter.action.LOCAL_NAME_CHANGED" />
76    <protected-broadcast android:name="android.bluetooth.device.action.FOUND" />
77    <protected-broadcast android:name="android.bluetooth.device.action.DISAPPEARED" />
78    <protected-broadcast android:name="android.bluetooth.device.action.CLASS_CHANGED" />
79    <protected-broadcast android:name="android.bluetooth.device.action.ACL_CONNECTED" />
80    <protected-broadcast android:name="android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED" />
81    <protected-broadcast android:name="android.bluetooth.device.action.ACL_DISCONNECTED" />
82    <protected-broadcast android:name="android.bluetooth.device.action.NAME_CHANGED" />
83    <protected-broadcast android:name="android.bluetooth.device.action.BOND_STATE_CHANGED" />
84    <protected-broadcast android:name="android.bluetooth.device.action.NAME_FAILED" />
85    <protected-broadcast android:name="android.bluetooth.device.action.PAIRING_REQUEST" />
86    <protected-broadcast android:name="android.bluetooth.device.action.PAIRING_CANCEL" />
87
88    <protected-broadcast android:name="android.hardware.usb.action.USB_STATE" />
89    <protected-broadcast android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" />
90    <protected-broadcast android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" />
91    <protected-broadcast android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
92    <protected-broadcast android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
93
94    <protected-broadcast android:name="android.nfc.action.LLCP_LINK_STATE_CHANGED" />
95    <protected-broadcast android:name="com.android.nfc_extras.action.RF_FIELD_ON_DETECTED" />
96    <protected-broadcast android:name="com.android.nfc_extras.action.RF_FIELD_OFF_DETECTED" />
97    <protected-broadcast android:name="com.android.nfc_extras.action.AID_SELECTED" />
98
99    <protected-broadcast android:name="android.nfc.action.TRANSACTION_DETECTED" />
100    <protected-broadcast android:name="android.intent.action.CLEAR_DNS_CACHE" />
101    <protected-broadcast android:name="android.intent.action.PROXY_CHANGE" />
102
103
104    <!-- ====================================== -->
105    <!-- Permissions for things that cost money -->
106    <!-- ====================================== -->
107    <eat-comment />
108
109    <!-- Used for permissions that can be used to make the user spend money
110         without their direct involvement.  For example, this is the group
111         for permissions that allow you to directly place phone calls,
112         directly send SMS messages, etc. -->
113    <permission-group android:name="android.permission-group.COST_MONEY"
114        android:label="@string/permgrouplab_costMoney"
115        android:description="@string/permgroupdesc_costMoney" />
116
117    <!-- Allows an application to send SMS messages. -->
118    <permission android:name="android.permission.SEND_SMS"
119        android:permissionGroup="android.permission-group.COST_MONEY"
120        android:protectionLevel="dangerous"
121        android:label="@string/permlab_sendSms"
122        android:description="@string/permdesc_sendSms" />
123
124    <!-- Allows an application to initiate a phone call without going through
125         the Dialer user interface for the user to confirm the call
126         being placed. -->
127    <permission android:name="android.permission.CALL_PHONE"
128        android:permissionGroup="android.permission-group.COST_MONEY"
129        android:protectionLevel="dangerous"
130        android:label="@string/permlab_callPhone"
131        android:description="@string/permdesc_callPhone" />
132
133    <!-- ================================== -->
134    <!-- Permissions for accessing messages -->
135    <!-- ================================== -->
136    <eat-comment />
137
138    <!-- Used for permissions that allow an application to send messages
139         on behalf of the user or intercept messages being received by the
140         user.  This is primarily intended for SMS/MMS messaging, such as
141         receiving or reading an MMS. -->
142    <permission-group android:name="android.permission-group.MESSAGES"
143        android:label="@string/permgrouplab_messages"
144        android:description="@string/permgroupdesc_messages" />
145
146    <!-- Allows an application to monitor incoming SMS messages, to record
147         or perform processing on them. -->
148    <permission android:name="android.permission.RECEIVE_SMS"
149        android:permissionGroup="android.permission-group.MESSAGES"
150        android:protectionLevel="dangerous"
151        android:label="@string/permlab_receiveSms"
152        android:description="@string/permdesc_receiveSms" />
153
154    <!-- Allows an application to monitor incoming MMS messages, to record
155         or perform processing on them. -->
156    <permission android:name="android.permission.RECEIVE_MMS"
157        android:permissionGroup="android.permission-group.MESSAGES"
158        android:protectionLevel="dangerous"
159        android:label="@string/permlab_receiveMms"
160        android:description="@string/permdesc_receiveMms" />
161
162    <!-- Allows an application to receive emergency cell broadcast messages,
163         to record or display them to the user. Reserved for system apps.
164         @hide Pending API council approval -->
165    <permission android:name="android.permission.RECEIVE_EMERGENCY_BROADCAST"
166        android:permissionGroup="android.permission-group.MESSAGES"
167        android:protectionLevel="signatureOrSystem"
168        android:label="@string/permlab_receiveEmergencyBroadcast"
169        android:description="@string/permdesc_receiveEmergencyBroadcast" />
170
171    <!-- Allows an application to read SMS messages. -->
172    <permission android:name="android.permission.READ_SMS"
173        android:permissionGroup="android.permission-group.MESSAGES"
174        android:protectionLevel="dangerous"
175        android:label="@string/permlab_readSms"
176        android:description="@string/permdesc_readSms" />
177
178    <!-- Allows an application to write SMS messages. -->
179    <permission android:name="android.permission.WRITE_SMS"
180        android:permissionGroup="android.permission-group.MESSAGES"
181        android:protectionLevel="dangerous"
182        android:label="@string/permlab_writeSms"
183        android:description="@string/permdesc_writeSms" />
184
185    <!-- Allows an application to monitor incoming WAP push messages. -->
186    <permission android:name="android.permission.RECEIVE_WAP_PUSH"
187        android:permissionGroup="android.permission-group.MESSAGES"
188        android:protectionLevel="dangerous"
189        android:label="@string/permlab_receiveWapPush"
190        android:description="@string/permdesc_receiveWapPush" />
191
192    <!-- =============================================================== -->
193    <!-- Permissions for accessing personal info (contacts and calendar) -->
194    <!-- =============================================================== -->
195    <eat-comment />
196
197    <!-- Used for permissions that provide access to the user's private data,
198         such as contacts, calendar events, e-mail messages, etc.  This includes
199         both reading and writing of this data (which should generally be
200         expressed as two distinct permissions). -->
201    <permission-group android:name="android.permission-group.PERSONAL_INFO"
202        android:label="@string/permgrouplab_personalInfo"
203        android:description="@string/permgroupdesc_personalInfo" />
204
205    <!-- Allows an application to read the user's contacts data. -->
206    <permission android:name="android.permission.READ_CONTACTS"
207        android:permissionGroup="android.permission-group.PERSONAL_INFO"
208        android:protectionLevel="dangerous"
209        android:label="@string/permlab_readContacts"
210        android:description="@string/permdesc_readContacts" />
211
212    <!-- Allows an application to write (but not read) the user's
213         contacts data. -->
214    <permission android:name="android.permission.WRITE_CONTACTS"
215        android:permissionGroup="android.permission-group.PERSONAL_INFO"
216        android:protectionLevel="dangerous"
217        android:label="@string/permlab_writeContacts"
218        android:description="@string/permdesc_writeContacts" />
219
220    <!-- Allows an application to read the user's calendar data. -->
221    <permission android:name="android.permission.READ_CALENDAR"
222        android:permissionGroup="android.permission-group.PERSONAL_INFO"
223        android:protectionLevel="dangerous"
224        android:label="@string/permlab_readCalendar"
225        android:description="@string/permdesc_readCalendar" />
226
227    <!-- Allows an application to write (but not read) the user's
228         calendar data. -->
229    <permission android:name="android.permission.WRITE_CALENDAR"
230        android:permissionGroup="android.permission-group.PERSONAL_INFO"
231        android:protectionLevel="dangerous"
232        android:label="@string/permlab_writeCalendar"
233        android:description="@string/permdesc_writeCalendar" />
234
235    <!-- Allows an application to read the user dictionary. This should
236         really only be required by an IME, or a dictionary editor like
237         the Settings app.
238         @hide Pending API council approval -->
239    <permission android:name="android.permission.READ_USER_DICTIONARY"
240        android:permissionGroup="android.permission-group.PERSONAL_INFO"
241        android:protectionLevel="dangerous"
242        android:label="@string/permlab_readDictionary"
243        android:description="@string/permdesc_readDictionary" />
244
245    <!-- Allows an application to write to the user dictionary.
246         @hide Pending API council approval -->
247    <permission android:name="android.permission.WRITE_USER_DICTIONARY"
248        android:permissionGroup="android.permission-group.PERSONAL_INFO"
249        android:protectionLevel="normal"
250        android:label="@string/permlab_writeDictionary"
251        android:description="@string/permdesc_writeDictionary" />
252
253    <!-- Allows an application to read (but not write) the user's
254        browsing history and bookmarks. -->
255    <permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"
256        android:permissionGroup="android.permission-group.PERSONAL_INFO"
257        android:label="@string/permlab_readHistoryBookmarks"
258        android:description="@string/permdesc_readHistoryBookmarks"
259        android:protectionLevel="dangerous" />
260
261    <!-- Allows an application to write (but not read) the user's
262        browsing history and bookmarks. -->
263    <permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"
264        android:permissionGroup="android.permission-group.PERSONAL_INFO"
265        android:label="@string/permlab_writeHistoryBookmarks"
266        android:description="@string/permdesc_writeHistoryBookmarks"
267        android:protectionLevel="dangerous" />
268
269    <!-- Allows an application to broadcast an Intent to set an alarm for the
270         user. -->
271    <permission android:name="com.android.alarm.permission.SET_ALARM"
272        android:permissionGroup="android.permission-group.PERSONAL_INFO"
273        android:label="@string/permlab_setAlarm"
274        android:description="@string/permdesc_setAlarm"
275        android:protectionLevel="normal" />
276
277    <!-- ======================================= -->
278    <!-- Permissions for accessing location info -->
279    <!-- ======================================= -->
280    <eat-comment />
281
282    <!-- Used for permissions that allow access to the user's current
283         location. -->
284    <permission-group android:name="android.permission-group.LOCATION"
285        android:label="@string/permgrouplab_location"
286        android:description="@string/permgroupdesc_location" />
287
288    <!-- Allows an application to access fine (e.g., GPS) location -->
289    <permission android:name="android.permission.ACCESS_FINE_LOCATION"
290        android:permissionGroup="android.permission-group.LOCATION"
291        android:protectionLevel="dangerous"
292        android:label="@string/permlab_accessFineLocation"
293        android:description="@string/permdesc_accessFineLocation" />
294
295    <!-- Allows an application to access coarse (e.g., Cell-ID, WiFi) location -->
296    <permission android:name="android.permission.ACCESS_COARSE_LOCATION"
297        android:permissionGroup="android.permission-group.LOCATION"
298        android:protectionLevel="dangerous"
299        android:label="@string/permlab_accessCoarseLocation"
300        android:description="@string/permdesc_accessCoarseLocation" />
301
302    <!-- Allows an application to create mock location providers for testing -->
303    <permission android:name="android.permission.ACCESS_MOCK_LOCATION"
304        android:permissionGroup="android.permission-group.LOCATION"
305        android:protectionLevel="dangerous"
306        android:label="@string/permlab_accessMockLocation"
307        android:description="@string/permdesc_accessMockLocation" />
308
309    <!-- Allows an application to access extra location provider commands -->
310    <permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"
311        android:permissionGroup="android.permission-group.LOCATION"
312        android:protectionLevel="normal"
313        android:label="@string/permlab_accessLocationExtraCommands"
314        android:description="@string/permdesc_accessLocationExtraCommands" />
315
316    <!-- Allows an application to install a location provider into the Location Manager -->
317    <permission android:name="android.permission.INSTALL_LOCATION_PROVIDER"
318        android:protectionLevel="signatureOrSystem"
319        android:label="@string/permlab_installLocationProvider"
320        android:description="@string/permdesc_installLocationProvider" />
321
322    <!-- ======================================= -->
323    <!-- Permissions for accessing networks -->
324    <!-- ======================================= -->
325    <eat-comment />
326
327    <!-- Used for permissions that provide access to networking services.  The
328         main permission here is internet access, but this is also an
329         appropriate group for accessing or modifying any network configuration
330         or other related network operations. -->
331    <permission-group android:name="android.permission-group.NETWORK"
332        android:label="@string/permgrouplab_network"
333        android:description="@string/permgroupdesc_network" />
334
335    <!-- Allows applications to open network sockets. -->
336    <permission android:name="android.permission.INTERNET"
337        android:permissionGroup="android.permission-group.NETWORK"
338        android:protectionLevel="dangerous"
339        android:description="@string/permdesc_createNetworkSockets"
340        android:label="@string/permlab_createNetworkSockets" />
341
342    <!-- Allows applications to access information about networks -->
343    <permission android:name="android.permission.ACCESS_NETWORK_STATE"
344        android:permissionGroup="android.permission-group.NETWORK"
345        android:protectionLevel="normal"
346        android:description="@string/permdesc_accessNetworkState"
347        android:label="@string/permlab_accessNetworkState" />
348
349    <!-- Allows applications to access information about Wi-Fi networks -->
350    <permission android:name="android.permission.ACCESS_WIFI_STATE"
351        android:permissionGroup="android.permission-group.NETWORK"
352        android:protectionLevel="normal"
353        android:description="@string/permdesc_accessWifiState"
354        android:label="@string/permlab_accessWifiState" />
355
356    <!-- Allows applications to connect to paired bluetooth devices -->
357    <permission android:name="android.permission.BLUETOOTH"
358        android:permissionGroup="android.permission-group.NETWORK"
359        android:protectionLevel="dangerous"
360        android:description="@string/permdesc_bluetooth"
361        android:label="@string/permlab_bluetooth" />
362
363    <!-- Allows applications to perform I/O operations over NFC -->
364    <permission android:name="android.permission.NFC"
365        android:permissionGroup="android.permission-group.NETWORK"
366        android:protectionLevel="dangerous"
367        android:description="@string/permdesc_nfc"
368        android:label="@string/permlab_nfc" />
369
370    <!-- Allows an application to use SIP service -->
371    <permission android:name="android.permission.USE_SIP"
372        android:permissionGroup="android.permission-group.NETWORK"
373        android:protectionLevel="dangerous"
374        android:description="@string/permdesc_use_sip"
375        android:label="@string/permlab_use_sip" />
376
377    <!-- Allows applications to call into AccountAuthenticators. Only
378    the system can get this permission. -->
379    <permission android:name="android.permission.ACCOUNT_MANAGER"
380        android:permissionGroup="android.permission-group.ACCOUNTS"
381        android:protectionLevel="signature"
382        android:description="@string/permdesc_accountManagerService"
383        android:label="@string/permlab_accountManagerService" />
384
385    <!-- Allows an internal user to use privaledged ConnectivityManager
386    APIs.
387        @hide -->
388    <permission android:name="android.permission.CONNECTIVITY_INTERNAL"
389        android:permissionGroup="android.permission-group.NETWORK"
390        android:protectionLevel="signatureOrSystem" />
391
392    <!-- ================================== -->
393    <!-- Permissions for accessing accounts -->
394    <!-- ================================== -->
395    <eat-comment />
396
397    <!-- Permissions for direct access to the accounts managed
398         by the Account Manager. -->
399    <permission-group android:name="android.permission-group.ACCOUNTS"
400        android:label="@string/permgrouplab_accounts"
401        android:description="@string/permgroupdesc_accounts" />
402
403    <!-- Allows access to the list of accounts in the Accounts Service -->
404    <permission android:name="android.permission.GET_ACCOUNTS"
405        android:permissionGroup="android.permission-group.ACCOUNTS"
406        android:protectionLevel="normal"
407        android:description="@string/permdesc_getAccounts"
408        android:label="@string/permlab_getAccounts" />
409
410    <!-- Allows an application to act as an AccountAuthenticator for
411         the AccountManager -->
412    <permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"
413        android:permissionGroup="android.permission-group.ACCOUNTS"
414        android:protectionLevel="dangerous"
415        android:label="@string/permlab_authenticateAccounts"
416        android:description="@string/permdesc_authenticateAccounts" />
417
418    <!-- Allows an application to request authtokens from the AccountManager -->
419    <permission android:name="android.permission.USE_CREDENTIALS"
420        android:permissionGroup="android.permission-group.ACCOUNTS"
421        android:protectionLevel="dangerous"
422        android:label="@string/permlab_useCredentials"
423        android:description="@string/permdesc_useCredentials" />
424
425    <!-- Allows an application to manage the list of accounts in the AccountManager -->
426    <permission android:name="android.permission.MANAGE_ACCOUNTS"
427        android:permissionGroup="android.permission-group.ACCOUNTS"
428        android:protectionLevel="dangerous"
429        android:label="@string/permlab_manageAccounts"
430        android:description="@string/permdesc_manageAccounts" />
431
432    <!-- ================================== -->
433    <!-- Permissions for accessing hardware -->
434    <!-- ================================== -->
435    <eat-comment />
436
437    <!-- Used for permissions that provide direct access to the hardware on
438         the device.  This includes audio, the camera, vibrator, etc. -->
439    <permission-group android:name="android.permission-group.HARDWARE_CONTROLS"
440        android:label="@string/permgrouplab_hardwareControls"
441        android:description="@string/permgroupdesc_hardwareControls" />
442
443    <!-- Allows an application to modify global audio settings -->
444    <permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"
445        android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
446        android:protectionLevel="dangerous"
447        android:label="@string/permlab_modifyAudioSettings"
448        android:description="@string/permdesc_modifyAudioSettings" />
449
450    <!-- Allows an application to record audio -->
451    <permission android:name="android.permission.RECORD_AUDIO"
452        android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
453        android:protectionLevel="dangerous"
454        android:label="@string/permlab_recordAudio"
455        android:description="@string/permdesc_recordAudio" />
456
457    <!-- Required to be able to access the camera device.
458         <p>This will automatically enforce the <a
459         href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code
460         &lt;uses-feature&gt;}</a> manifest element for <em>all</em> camera features.
461         If you do not require all camera features or can properly operate if a camera
462         is not available, then you must modify your manifest as appropriate in order to
463         install on devices that don't support all camera features.</p> -->
464    <permission android:name="android.permission.CAMERA"
465        android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
466        android:protectionLevel="dangerous"
467        android:label="@string/permlab_camera"
468        android:description="@string/permdesc_camera" />
469
470    <!-- Allows access to the vibrator -->
471    <permission android:name="android.permission.VIBRATE"
472        android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
473        android:protectionLevel="normal"
474        android:label="@string/permlab_vibrate"
475        android:description="@string/permdesc_vibrate" />
476
477    <!-- Allows access to the flashlight -->
478    <permission android:name="android.permission.FLASHLIGHT"
479        android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
480        android:protectionLevel="normal"
481        android:label="@string/permlab_flashlight"
482        android:description="@string/permdesc_flashlight" />
483
484    <!-- Allows an application to manage preferences and permissions for USB devices
485         @hide -->
486    <permission android:name="android.permission.MANAGE_USB"
487        android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
488        android:protectionLevel="signatureOrSystem"
489        android:label="@string/permlab_manageUsb"
490        android:description="@string/permdesc_manageUsb" />
491
492    <!-- Allows an application to access the MTP USB kernel driver.
493         For use only by the device side MTP implementation.
494         @hide -->
495    <permission android:name="android.permission.ACCESS_MTP"
496        android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
497        android:protectionLevel="signatureOrSystem"
498        android:label="@string/permlab_accessMtp"
499        android:description="@string/permdesc_accessMtp" />
500
501    <!-- Allows access to hardware peripherals.  Intended only for hardware testing -->
502    <permission android:name="android.permission.HARDWARE_TEST"
503        android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
504        android:protectionLevel="signature"
505        android:label="@string/permlab_hardware_test"
506        android:description="@string/permdesc_hardware_test" />
507
508    <!-- Allows access to configure network interfaces, configure/use IPSec, etc.
509         @hide -->
510    <permission android:name="android.permission.NET_ADMIN"
511        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
512        android:protectionLevel="signature" />
513
514    <!-- =========================================== -->
515    <!-- Permissions associated with telephony state -->
516    <!-- =========================================== -->
517    <eat-comment />
518
519    <!-- Used for permissions that are associated with accessing and modifyign
520         telephony state: intercepting outgoing calls, reading
521         and modifying the phone state.  Note that
522         placing phone calls is not in this group, since that is in the
523         more important "takin' yer moneys" group. -->
524    <permission-group android:name="android.permission-group.PHONE_CALLS"
525        android:label="@string/permgrouplab_phoneCalls"
526        android:description="@string/permgroupdesc_phoneCalls" />
527
528    <!-- Allows an application to monitor, modify, or abort outgoing
529         calls. -->
530    <permission android:name="android.permission.PROCESS_OUTGOING_CALLS"
531        android:permissionGroup="android.permission-group.PHONE_CALLS"
532        android:protectionLevel="dangerous"
533        android:label="@string/permlab_processOutgoingCalls"
534        android:description="@string/permdesc_processOutgoingCalls" />
535
536    <!-- Allows modification of the telephony state - power on, mmi, etc.
537         Does not include placing calls. -->
538    <permission android:name="android.permission.MODIFY_PHONE_STATE"
539        android:permissionGroup="android.permission-group.PHONE_CALLS"
540        android:protectionLevel="signatureOrSystem"
541        android:label="@string/permlab_modifyPhoneState"
542        android:description="@string/permdesc_modifyPhoneState" />
543
544    <!-- Allows read only access to phone state. -->
545    <permission android:name="android.permission.READ_PHONE_STATE"
546        android:permissionGroup="android.permission-group.PHONE_CALLS"
547        android:protectionLevel="dangerous"
548        android:label="@string/permlab_readPhoneState"
549        android:description="@string/permdesc_readPhoneState" />
550
551    <!-- ================================== -->
552    <!-- Permissions for sdcard interaction -->
553    <!-- ================================== -->
554    <eat-comment />
555
556    <!-- Group of permissions that are related to SD card access. -->
557    <permission-group android:name="android.permission-group.STORAGE"
558        android:label="@string/permgrouplab_storage"
559        android:description="@string/permgroupdesc_storage" />
560
561    <!-- Allows an application to write to external storage -->
562    <permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
563        android:permissionGroup="android.permission-group.STORAGE"
564        android:label="@string/permlab_sdcardWrite"
565        android:description="@string/permdesc_sdcardWrite"
566        android:protectionLevel="dangerous" />
567
568    <!-- Allows an application to write to internal media storage
569         @hide  -->
570    <permission android:name="android.permission.WRITE_MEDIA_STORAGE"
571        android:permissionGroup="android.permission-group.STORAGE"
572        android:label="@string/permlab_mediaStorageWrite"
573        android:description="@string/permdesc_mediaStorageWrite"
574        android:protectionLevel="signatureOrSystem" />
575
576    <!-- ============================================ -->
577    <!-- Permissions for low-level system interaction -->
578    <!-- ============================================ -->
579    <eat-comment />
580
581    <!-- Group of permissions that are related to system APIs.  Many
582         of these are not permissions the user will be expected to understand,
583         and such permissions should generally be marked as "normal" protection
584         level so they don't get displayed.  This can also, however, be used
585         for miscellaneous features that provide access to the operating system,
586         such as writing the global system settings. -->
587    <permission-group android:name="android.permission-group.SYSTEM_TOOLS"
588        android:label="@string/permgrouplab_systemTools"
589        android:description="@string/permgroupdesc_systemTools" />
590
591    <!-- Allows an application to read or write the system settings. -->
592    <permission android:name="android.permission.WRITE_SETTINGS"
593        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
594        android:protectionLevel="dangerous"
595        android:label="@string/permlab_writeSettings"
596        android:description="@string/permdesc_writeSettings" />
597
598    <!-- Allows an application to read or write the secure system settings. -->
599    <permission android:name="android.permission.WRITE_SECURE_SETTINGS"
600        android:protectionLevel="signatureOrSystem"
601        android:label="@string/permlab_writeSecureSettings"
602        android:description="@string/permdesc_writeSecureSettings" />
603
604    <!-- Allows an application to modify the Google service map. -->
605    <permission android:name="android.permission.WRITE_GSERVICES"
606        android:protectionLevel="signatureOrSystem"
607        android:label="@string/permlab_writeGservices"
608        android:description="@string/permdesc_writeGservices" />
609
610    <!-- Allows an application to expand or collapse the status bar. -->
611    <permission android:name="android.permission.EXPAND_STATUS_BAR"
612        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
613        android:protectionLevel="normal"
614        android:label="@string/permlab_expandStatusBar"
615        android:description="@string/permdesc_expandStatusBar" />
616
617    <!-- Allows an application to get information about the currently
618         or recently running tasks: a thumbnail representation of the tasks,
619         what activities are running in it, etc. -->
620    <permission android:name="android.permission.GET_TASKS"
621        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
622        android:protectionLevel="dangerous"
623        android:label="@string/permlab_getTasks"
624        android:description="@string/permdesc_getTasks" />
625
626    <!-- Allows an application to change the Z-order of tasks -->
627    <permission android:name="android.permission.REORDER_TASKS"
628        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
629        android:protectionLevel="dangerous"
630        android:label="@string/permlab_reorderTasks"
631        android:description="@string/permdesc_reorderTasks" />
632
633    <!-- Allows an application to modify the current configuration, such
634         as locale. -->
635    <permission android:name="android.permission.CHANGE_CONFIGURATION"
636        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
637        android:protectionLevel="dangerous"
638        android:label="@string/permlab_changeConfiguration"
639        android:description="@string/permdesc_changeConfiguration" />
640
641    <!-- @deprecated The {@link android.app.ActivityManager#restartPackage}
642        API is no longer supported. -->
643    <permission android:name="android.permission.RESTART_PACKAGES"
644        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
645        android:protectionLevel="normal"
646        android:label="@string/permlab_killBackgroundProcesses"
647        android:description="@string/permdesc_killBackgroundProcesses" />
648
649    <!-- Allows an application to call
650        {@link android.app.ActivityManager#killBackgroundProcesses}. -->
651    <permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"
652        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
653        android:protectionLevel="normal"
654        android:label="@string/permlab_killBackgroundProcesses"
655        android:description="@string/permdesc_killBackgroundProcesses" />
656
657    <!-- Allows an application to call
658        {@link android.app.ActivityManager#forceStopPackage}.
659        @hide -->
660    <permission android:name="android.permission.FORCE_STOP_PACKAGES"
661        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
662        android:protectionLevel="signature"
663        android:label="@string/permlab_forceStopPackages"
664        android:description="@string/permdesc_forceStopPackages" />
665
666    <!-- Allows an application to retrieve state dump information from system
667         services. -->
668    <permission android:name="android.permission.DUMP"
669        android:permissionGroup="android.permission-group.PERSONAL_INFO"
670        android:protectionLevel="signatureOrSystem"
671        android:label="@string/permlab_dump"
672        android:description="@string/permdesc_dump" />
673
674    <!-- Allows an application to open windows using the type
675         {@link android.view.WindowManager.LayoutParams#TYPE_SYSTEM_ALERT},
676         shown on top of all other applications.  Very few applications
677         should use this permission; these windows are intended for
678         system-level interaction with the user. -->
679    <permission android:name="android.permission.SYSTEM_ALERT_WINDOW"
680        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
681        android:protectionLevel="dangerous"
682        android:label="@string/permlab_systemAlertWindow"
683        android:description="@string/permdesc_systemAlertWindow" />
684
685    <!-- Modify the global animation scaling factor. -->
686    <permission android:name="android.permission.SET_ANIMATION_SCALE"
687        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
688        android:protectionLevel="dangerous"
689        android:label="@string/permlab_setAnimationScale"
690        android:description="@string/permdesc_setAnimationScale" />
691
692    <!-- @deprecated This functionality will be removed in the future; please do
693         not use.
694
695         Allow an application to make its activities persistent. -->
696    <permission android:name="android.permission.PERSISTENT_ACTIVITY"
697        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
698        android:protectionLevel="dangerous"
699        android:label="@string/permlab_persistentActivity"
700        android:description="@string/permdesc_persistentActivity" />
701
702    <!-- Allows an application to find out the space used by any package. -->
703    <permission android:name="android.permission.GET_PACKAGE_SIZE"
704        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
705        android:protectionLevel="normal"
706        android:label="@string/permlab_getPackageSize"
707        android:description="@string/permdesc_getPackageSize" />
708
709    <!-- @deprecated No longer useful, see
710         {@link android.content.pm.PackageManager#addPackageToPreferred}
711         for details. -->
712    <permission android:name="android.permission.SET_PREFERRED_APPLICATIONS"
713        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
714        android:protectionLevel="signature"
715        android:label="@string/permlab_setPreferredApplications"
716        android:description="@string/permdesc_setPreferredApplications" />
717
718    <!-- Allows an application to receive the
719         {@link android.content.Intent#ACTION_BOOT_COMPLETED} that is
720         broadcast after the system finishes booting.  If you don't
721         request this permission, you will not receive the broadcast at
722         that time.  Though holding this permission does not have any
723         security implications, it can have a negative impact on the
724         user experience by increasing the amount of time it takes the
725         system to start and allowing applications to have themselves
726         running without the user being aware of them.  As such, you must
727         explicitly declare your use of this facility to make that visible
728         to the user. -->
729    <permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"
730        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
731        android:protectionLevel="normal"
732        android:label="@string/permlab_receiveBootCompleted"
733        android:description="@string/permdesc_receiveBootCompleted" />
734
735    <!-- Allows an application to broadcast sticky intents.  These are
736         broadcasts whose data is held by the system after being finished,
737         so that clients can quickly retrieve that data without having
738         to wait for the next broadcast. -->
739    <permission android:name="android.permission.BROADCAST_STICKY"
740        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
741        android:protectionLevel="normal"
742        android:label="@string/permlab_broadcastSticky"
743        android:description="@string/permdesc_broadcastSticky" />
744
745    <!-- Allows using PowerManager WakeLocks to keep processor from sleeping or screen
746         from dimming -->
747    <permission android:name="android.permission.WAKE_LOCK"
748        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
749        android:protectionLevel="dangerous"
750        android:label="@string/permlab_wakeLock"
751        android:description="@string/permdesc_wakeLock" />
752
753    <!-- Allows applications to set the wallpaper -->
754    <permission android:name="android.permission.SET_WALLPAPER"
755        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
756        android:protectionLevel="normal"
757        android:label="@string/permlab_setWallpaper"
758        android:description="@string/permdesc_setWallpaper" />
759
760    <!-- Allows applications to set the wallpaper hints -->
761    <permission android:name="android.permission.SET_WALLPAPER_HINTS"
762        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
763        android:protectionLevel="normal"
764        android:label="@string/permlab_setWallpaperHints"
765        android:description="@string/permdesc_setWallpaperHints" />
766
767    <!-- Allows applications to set the system time -->
768    <permission android:name="android.permission.SET_TIME"
769        android:protectionLevel="signatureOrSystem"
770        android:label="@string/permlab_setTime"
771        android:description="@string/permdesc_setTime" />
772
773    <!-- Allows applications to set the system time zone -->
774    <permission android:name="android.permission.SET_TIME_ZONE"
775        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
776        android:protectionLevel="dangerous"
777        android:label="@string/permlab_setTimeZone"
778        android:description="@string/permdesc_setTimeZone" />
779
780    <!-- Allows mounting and unmounting file systems for removable storage. -->
781    <permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
782        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
783        android:protectionLevel="dangerous"
784        android:label="@string/permlab_mount_unmount_filesystems"
785        android:description="@string/permdesc_mount_unmount_filesystems" />
786
787    <!-- Allows formatting file systems for removable storage. -->
788    <permission android:name="android.permission.MOUNT_FORMAT_FILESYSTEMS"
789        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
790        android:protectionLevel="dangerous"
791        android:label="@string/permlab_mount_format_filesystems"
792        android:description="@string/permdesc_mount_format_filesystems" />
793
794    <!-- Allows access to ASEC non-destructive API calls
795         @hide  -->
796    <permission android:name="android.permission.ASEC_ACCESS"
797        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
798        android:protectionLevel="signature"
799        android:label="@string/permlab_asec_access"
800        android:description="@string/permdesc_asec_access" />
801
802    <!-- Allows creation of ASEC volumes
803         @hide  -->
804    <permission android:name="android.permission.ASEC_CREATE"
805        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
806        android:protectionLevel="signature"
807        android:label="@string/permlab_asec_create"
808        android:description="@string/permdesc_asec_create" />
809
810    <!-- Allows destruction of ASEC volumes
811         @hide  -->
812    <permission android:name="android.permission.ASEC_DESTROY"
813        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
814        android:protectionLevel="signature"
815        android:label="@string/permlab_asec_destroy"
816        android:description="@string/permdesc_asec_destroy" />
817
818    <!-- Allows mount / unmount of ASEC volumes
819         @hide  -->
820    <permission android:name="android.permission.ASEC_MOUNT_UNMOUNT"
821        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
822        android:protectionLevel="signature"
823        android:label="@string/permlab_asec_mount_unmount"
824        android:description="@string/permdesc_asec_mount_unmount" />
825
826    <!-- Allows rename of ASEC volumes
827         @hide  -->
828    <permission android:name="android.permission.ASEC_RENAME"
829        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
830        android:protectionLevel="signature"
831        android:label="@string/permlab_asec_rename"
832        android:description="@string/permdesc_asec_rename" />
833
834    <!-- Allows applications to disable the keyguard -->
835    <permission android:name="android.permission.DISABLE_KEYGUARD"
836        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
837        android:protectionLevel="dangerous"
838        android:description="@string/permdesc_disableKeyguard"
839        android:label="@string/permlab_disableKeyguard" />
840
841    <!-- Allows applications to read the sync settings -->
842    <permission android:name="android.permission.READ_SYNC_SETTINGS"
843        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
844        android:protectionLevel="normal"
845        android:description="@string/permdesc_readSyncSettings"
846        android:label="@string/permlab_readSyncSettings" />
847
848    <!-- Allows applications to write the sync settings -->
849    <permission android:name="android.permission.WRITE_SYNC_SETTINGS"
850        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
851        android:protectionLevel="dangerous"
852        android:description="@string/permdesc_writeSyncSettings"
853        android:label="@string/permlab_writeSyncSettings" />
854
855    <!-- Allows applications to read the sync stats -->
856    <permission android:name="android.permission.READ_SYNC_STATS"
857        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
858        android:protectionLevel="normal"
859        android:description="@string/permdesc_readSyncStats"
860        android:label="@string/permlab_readSyncStats" />
861
862    <!-- Allows applications to write the apn settings -->
863    <permission android:name="android.permission.WRITE_APN_SETTINGS"
864                android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
865                android:protectionLevel="dangerous"
866                android:description="@string/permdesc_writeApnSettings"
867                android:label="@string/permlab_writeApnSettings" />
868
869    <!-- Allows an application to allow access the subscribed feeds
870         ContentProvider. -->
871    <permission android:name="android.permission.SUBSCRIBED_FEEDS_READ"
872        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
873        android:label="@string/permlab_subscribedFeedsRead"
874        android:description="@string/permdesc_subscribedFeedsRead"
875        android:protectionLevel="normal" />
876    <permission android:name="android.permission.SUBSCRIBED_FEEDS_WRITE"
877        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
878        android:label="@string/permlab_subscribedFeedsWrite"
879        android:description="@string/permdesc_subscribedFeedsWrite"
880        android:protectionLevel="dangerous" />
881
882    <!-- Allows applications to change network connectivity state -->
883    <permission android:name="android.permission.CHANGE_NETWORK_STATE"
884        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
885        android:protectionLevel="dangerous"
886        android:description="@string/permdesc_changeNetworkState"
887        android:label="@string/permlab_changeNetworkState" />
888
889    <!-- Allows applications to change Wi-Fi connectivity state -->
890    <permission android:name="android.permission.CHANGE_WIFI_STATE"
891        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
892        android:protectionLevel="dangerous"
893        android:description="@string/permdesc_changeWifiState"
894        android:label="@string/permlab_changeWifiState" />
895
896    <!-- Allows applications to enter Wi-Fi Multicast mode -->
897    <permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"
898        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
899        android:protectionLevel="dangerous"
900        android:description="@string/permdesc_changeWifiMulticastState"
901        android:label="@string/permlab_changeWifiMulticastState" />
902
903    <!-- Allows applications to discover and pair bluetooth devices -->
904    <permission android:name="android.permission.BLUETOOTH_ADMIN"
905        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
906        android:protectionLevel="dangerous"
907        android:description="@string/permdesc_bluetoothAdmin"
908        android:label="@string/permlab_bluetoothAdmin" />
909
910    <!-- Allows an application to clear the caches of all installed
911         applications on the device.  -->
912    <permission android:name="android.permission.CLEAR_APP_CACHE"
913        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
914        android:protectionLevel="dangerous"
915        android:label="@string/permlab_clearAppCache"
916        android:description="@string/permdesc_clearAppCache" />
917
918    <!-- Allows an application to read the low-level system log files.
919         Log entries can contain the user's private information,
920         which is why this permission is 'dangerous'. -->
921    <permission android:name="android.permission.READ_LOGS"
922        android:permissionGroup="android.permission-group.PERSONAL_INFO"
923        android:protectionLevel="dangerous"
924        android:label="@string/permlab_readLogs"
925        android:description="@string/permdesc_readLogs" />
926
927    <!-- ========================================= -->
928    <!-- Permissions for special development tools -->
929    <!-- ========================================= -->
930    <eat-comment />
931
932    <!-- Group of permissions that are related to development features.  These
933         are not permissions that should appear in normal applications; they
934         protect APIs that are intended only to be used for development
935         purposes. -->
936    <permission-group android:name="android.permission-group.DEVELOPMENT_TOOLS"
937        android:label="@string/permgrouplab_developmentTools"
938        android:description="@string/permgroupdesc_developmentTools" />
939
940    <!-- Configure an application for debugging. -->
941    <permission android:name="android.permission.SET_DEBUG_APP"
942        android:permissionGroup="android.permission-group.DEVELOPMENT_TOOLS"
943        android:protectionLevel="dangerous"
944        android:label="@string/permlab_setDebugApp"
945        android:description="@string/permdesc_setDebugApp" />
946
947    <!-- Allows an application to set the maximum number of (not needed)
948         application processes that can be running. -->
949    <permission android:name="android.permission.SET_PROCESS_LIMIT"
950        android:permissionGroup="android.permission-group.DEVELOPMENT_TOOLS"
951        android:protectionLevel="dangerous"
952        android:label="@string/permlab_setProcessLimit"
953        android:description="@string/permdesc_setProcessLimit" />
954
955    <!-- Allows an application to control whether activities are immediately
956         finished when put in the background. -->
957    <permission android:name="android.permission.SET_ALWAYS_FINISH"
958        android:permissionGroup="android.permission-group.DEVELOPMENT_TOOLS"
959        android:protectionLevel="dangerous"
960        android:label="@string/permlab_setAlwaysFinish"
961        android:description="@string/permdesc_setAlwaysFinish" />
962
963    <!-- Allow an application to request that a signal be sent to all persistent processes -->
964    <permission android:name="android.permission.SIGNAL_PERSISTENT_PROCESSES"
965        android:permissionGroup="android.permission-group.DEVELOPMENT_TOOLS"
966        android:protectionLevel="dangerous"
967        android:label="@string/permlab_signalPersistentProcesses"
968        android:description="@string/permdesc_signalPersistentProcesses" />
969
970    <!-- ==================================== -->
971    <!-- Private (signature-only) permissions -->
972    <!-- ==================================== -->
973    <eat-comment />
974
975    <!-- Allows applications to RW to diagnostic resources. -->
976    <permission android:name="android.permission.DIAGNOSTIC"
977        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
978        android:protectionLevel="signature"
979        android:description="@string/permdesc_diagnostic"
980        android:label="@string/permlab_diagnostic" />
981
982    <!-- Allows an application to open, close, or disable the status bar
983         and its icons. -->
984    <permission android:name="android.permission.STATUS_BAR"
985        android:label="@string/permlab_statusBar"
986        android:description="@string/permdesc_statusBar"
987        android:protectionLevel="signatureOrSystem" />
988
989    <!-- Allows an application to be the status bar.  Currently used only by SystemUI.apk
990    @hide -->
991    <permission android:name="android.permission.STATUS_BAR_SERVICE"
992        android:label="@string/permlab_statusBarService"
993        android:description="@string/permdesc_statusBarService"
994        android:protectionLevel="signature" />
995
996    <!-- Allows an application to force a BACK operation on whatever is the
997         top activity. -->
998    <permission android:name="android.permission.FORCE_BACK"
999        android:label="@string/permlab_forceBack"
1000        android:description="@string/permdesc_forceBack"
1001        android:protectionLevel="signature" />
1002
1003    <!-- Allows an application to update device statistics. Not for
1004         use by third party apps. -->
1005    <permission android:name="android.permission.UPDATE_DEVICE_STATS"
1006        android:label="@string/permlab_batteryStats"
1007        android:description="@string/permdesc_batteryStats"
1008        android:protectionLevel="signatureOrSystem" />
1009
1010    <!-- Allows an application to open windows that are for use by parts
1011         of the system user interface.  Not for use by third party apps. -->
1012    <permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW"
1013        android:label="@string/permlab_internalSystemWindow"
1014        android:description="@string/permdesc_internalSystemWindow"
1015        android:protectionLevel="signature" />
1016
1017    <!-- Allows an application to manage (create, destroy,
1018         Z-order) application tokens in the window manager.  This is only
1019         for use by the system. -->
1020    <permission android:name="android.permission.MANAGE_APP_TOKENS"
1021        android:label="@string/permlab_manageAppTokens"
1022        android:description="@string/permdesc_manageAppTokens"
1023        android:protectionLevel="signature" />
1024
1025    <!-- Allows an application to inject user events (keys, touch, trackball)
1026         into the event stream and deliver them to ANY window.  Without this
1027         permission, you can only deliver events to windows in your own process.
1028         Very few applications should need to use this permission. -->
1029    <permission android:name="android.permission.INJECT_EVENTS"
1030        android:label="@string/permlab_injectEvents"
1031        android:description="@string/permdesc_injectEvents"
1032        android:protectionLevel="signature" />
1033
1034    <!-- Allows an application to watch and control how activities are
1035         started globally in the system.  Only for is in debugging
1036         (usually the monkey command). -->
1037    <permission android:name="android.permission.SET_ACTIVITY_WATCHER"
1038        android:label="@string/permlab_runSetActivityWatcher"
1039        android:description="@string/permdesc_runSetActivityWatcher"
1040        android:protectionLevel="signature" />
1041
1042    <!-- Allows an application to call the activity manager shutdown() API
1043         to put the higher-level system there into a shutdown state.
1044         @hide -->
1045    <permission android:name="android.permission.SHUTDOWN"
1046        android:label="@string/permlab_shutdown"
1047        android:description="@string/permdesc_shutdown"
1048        android:protectionLevel="signatureOrSystem" />
1049
1050    <!-- Allows an application to tell the activity manager to temporarily
1051         stop application switches, putting it into a special mode that
1052         prevents applications from immediately switching away from some
1053         critical UI such as the home screen.
1054         @hide -->
1055    <permission android:name="android.permission.STOP_APP_SWITCHES"
1056        android:label="@string/permlab_stopAppSwitches"
1057        android:description="@string/permdesc_stopAppSwitches"
1058        android:protectionLevel="signatureOrSystem" />
1059
1060    <!-- Allows an application to retrieve the current state of keys and
1061         switches.  This is only for use by the system.-->
1062    <permission android:name="android.permission.READ_INPUT_STATE"
1063        android:label="@string/permlab_readInputState"
1064        android:description="@string/permdesc_readInputState"
1065        android:protectionLevel="signature" />
1066
1067    <!-- Must be required by an {@link android.inputmethodservice.InputMethodService},
1068         to ensure that only the system can bind to it. -->
1069    <permission android:name="android.permission.BIND_INPUT_METHOD"
1070        android:label="@string/permlab_bindInputMethod"
1071        android:description="@string/permdesc_bindInputMethod"
1072        android:protectionLevel="signature" />
1073
1074    <!-- Must be required by a {@link android.service.wallpaper.WallpaperService},
1075         to ensure that only the system can bind to it. -->
1076    <permission android:name="android.permission.BIND_WALLPAPER"
1077        android:label="@string/permlab_bindWallpaper"
1078        android:description="@string/permdesc_bindWallpaper"
1079        android:protectionLevel="signatureOrSystem" />
1080
1081    <!-- Must be required by device administration receiver, to ensure that only the
1082         system can interact with it. -->
1083    <permission android:name="android.permission.BIND_DEVICE_ADMIN"
1084        android:label="@string/permlab_bindDeviceAdmin"
1085        android:description="@string/permdesc_bindDeviceAdmin"
1086        android:protectionLevel="signature" />
1087
1088    <!-- Allows low-level access to setting the orientation (actually
1089         rotation) of the screen.  Not for use by normal applications. -->
1090    <permission android:name="android.permission.SET_ORIENTATION"
1091        android:label="@string/permlab_setOrientation"
1092        android:description="@string/permdesc_setOrientation"
1093        android:protectionLevel="signature" />
1094
1095    <!-- Allows low-level access to setting the pointer speed.
1096         Not for use by normal applications. -->
1097    <permission android:name="android.permission.SET_POINTER_SPEED"
1098        android:label="@string/permlab_setPointerSpeed"
1099        android:description="@string/permdesc_setPointerSpeed"
1100        android:protectionLevel="signature" />
1101
1102    <!-- Allows an application to install packages. -->
1103    <permission android:name="android.permission.INSTALL_PACKAGES"
1104        android:label="@string/permlab_installPackages"
1105        android:description="@string/permdesc_installPackages"
1106        android:protectionLevel="signatureOrSystem" />
1107
1108    <!-- Allows an application to clear user data -->
1109    <permission android:name="android.permission.CLEAR_APP_USER_DATA"
1110        android:label="@string/permlab_clearAppUserData"
1111        android:description="@string/permdesc_clearAppUserData"
1112        android:protectionLevel="signature" />
1113
1114    <!-- Allows an application to delete cache files. -->
1115    <permission android:name="android.permission.DELETE_CACHE_FILES"
1116        android:label="@string/permlab_deleteCacheFiles"
1117        android:description="@string/permdesc_deleteCacheFiles"
1118        android:protectionLevel="signatureOrSystem" />
1119
1120    <!-- Allows an application to delete packages. -->
1121    <permission android:name="android.permission.DELETE_PACKAGES"
1122        android:label="@string/permlab_deletePackages"
1123        android:description="@string/permdesc_deletePackages"
1124        android:protectionLevel="signatureOrSystem" />
1125
1126    <!-- Allows an application to move location of installed package.
1127         @hide -->
1128    <permission android:name="android.permission.MOVE_PACKAGE"
1129        android:label="@string/permlab_movePackage"
1130        android:description="@string/permdesc_movePackage"
1131        android:protectionLevel="signatureOrSystem" />
1132
1133    <!-- Allows an application to change whether an application component (other than its own) is
1134         enabled or not. -->
1135    <permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"
1136        android:label="@string/permlab_changeComponentState"
1137        android:description="@string/permdesc_changeComponentState"
1138        android:protectionLevel="signatureOrSystem" />
1139
1140    <!-- Allows an application to use SurfaceFlinger's low level features -->
1141    <permission android:name="android.permission.ACCESS_SURFACE_FLINGER"
1142        android:label="@string/permlab_accessSurfaceFlinger"
1143        android:description="@string/permdesc_accessSurfaceFlinger"
1144        android:protectionLevel="signature" />
1145
1146    <!-- Allows an application to take screen shots and more generally
1147         get access to the frame buffer data -->
1148    <permission android:name="android.permission.READ_FRAME_BUFFER"
1149        android:label="@string/permlab_readFrameBuffer"
1150        android:description="@string/permdesc_readFrameBuffer"
1151        android:protectionLevel="signature" />
1152
1153    <!-- Required to be able to disable the device (very dangerous!). -->
1154    <permission android:name="android.permission.BRICK"
1155        android:label="@string/permlab_brick"
1156        android:description="@string/permdesc_brick"
1157        android:protectionLevel="signature" />
1158
1159    <!-- Required to be able to reboot the device. -->
1160    <permission android:name="android.permission.REBOOT"
1161        android:label="@string/permlab_reboot"
1162        android:description="@string/permdesc_reboot"
1163        android:protectionLevel="signatureOrSystem" />
1164
1165   <!-- Allows low-level access to power management -->
1166    <permission android:name="android.permission.DEVICE_POWER"
1167        android:label="@string/permlab_devicePower"
1168        android:description="@string/permdesc_devicePower"
1169        android:protectionLevel="signature" />
1170
1171    <!-- Run as a manufacturer test application, running as the root user.
1172         Only available when the device is running in manufacturer test mode. -->
1173    <permission android:name="android.permission.FACTORY_TEST"
1174        android:label="@string/permlab_factoryTest"
1175        android:description="@string/permdesc_factoryTest"
1176        android:protectionLevel="signature" />
1177
1178    <!-- Allows an application to broadcast a notification that an application
1179         package has been removed. -->
1180    <permission android:name="android.permission.BROADCAST_PACKAGE_REMOVED"
1181        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
1182        android:label="@string/permlab_broadcastPackageRemoved"
1183        android:description="@string/permdesc_broadcastPackageRemoved"
1184        android:protectionLevel="signature" />
1185
1186    <!-- Allows an application to broadcast an SMS receipt notification -->
1187    <permission android:name="android.permission.BROADCAST_SMS"
1188        android:permissionGroup="android.permission-group.MESSAGES"
1189        android:label="@string/permlab_broadcastSmsReceived"
1190        android:description="@string/permdesc_broadcastSmsReceived"
1191        android:protectionLevel="signature" />
1192
1193    <!-- Allows an application to broadcast a WAP PUSH receipt notification -->
1194    <permission android:name="android.permission.BROADCAST_WAP_PUSH"
1195        android:permissionGroup="android.permission-group.MESSAGES"
1196        android:label="@string/permlab_broadcastWapPush"
1197        android:description="@string/permdesc_broadcastWapPush"
1198        android:protectionLevel="signature" />
1199
1200    <permission android:name="android.permission.MASTER_CLEAR"
1201        android:label="@string/permlab_masterClear"
1202        android:description="@string/permdesc_masterClear"
1203        android:protectionLevel="signatureOrSystem" />
1204
1205    <!-- Allows an application to call any phone number, including emergency
1206         numbers, without going through the Dialer user interface for the user
1207         to confirm the call being placed. -->
1208    <permission android:name="android.permission.CALL_PRIVILEGED"
1209        android:label="@string/permlab_callPrivileged"
1210        android:description="@string/permdesc_callPrivileged"
1211        android:protectionLevel="signatureOrSystem" />
1212
1213    <!-- Allows an application to perform CDMA OTA provisioning @hide -->
1214    <permission android:name="android.permission.PERFORM_CDMA_PROVISIONING"
1215        android:label="@string/permlab_performCdmaProvisioning"
1216        android:description="@string/permdesc_performCdmaProvisioning"
1217        android:protectionLevel="signatureOrSystem" />
1218
1219    <!-- Allows enabling/disabling location update notifications from
1220         the radio. Not for use by normal applications. -->
1221    <permission android:name="android.permission.CONTROL_LOCATION_UPDATES"
1222        android:label="@string/permlab_locationUpdates"
1223        android:description="@string/permdesc_locationUpdates"
1224        android:protectionLevel="signatureOrSystem" />
1225
1226    <!-- Allows read/write access to the "properties" table in the checkin
1227         database, to change values that get uploaded. -->
1228    <permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES"
1229        android:label="@string/permlab_checkinProperties"
1230        android:description="@string/permdesc_checkinProperties"
1231        android:protectionLevel="signatureOrSystem" />
1232
1233    <!-- Allows an application to collect component usage
1234         statistics @hide -->
1235    <permission android:name="android.permission.PACKAGE_USAGE_STATS"
1236        android:label="@string/permlab_pkgUsageStats"
1237        android:description="@string/permdesc_pkgUsageStats"
1238        android:protectionLevel="signatureOrSystem" />
1239
1240    <!-- Allows an application to collect battery statistics -->
1241    <permission android:name="android.permission.BATTERY_STATS"
1242        android:label="@string/permlab_batteryStats"
1243        android:description="@string/permdesc_batteryStats"
1244        android:protectionLevel="normal" />
1245
1246    <!-- Allows an application to control the backup and restore process
1247         @hide pending API council -->
1248    <permission android:name="android.permission.BACKUP"
1249        android:label="@string/permlab_backup"
1250        android:description="@string/permdesc_backup"
1251        android:protectionLevel="signatureOrSystem" />
1252
1253    <!-- Must be required by a {@link android.widget.RemoteViewsService},
1254         to ensure that only the system can bind to it. -->
1255    <permission android:name="android.permission.BIND_REMOTEVIEWS"
1256        android:label="@string/permlab_bindRemoteViews"
1257        android:description="@string/permdesc_bindRemoteViews"
1258        android:protectionLevel="signatureOrSystem" />
1259
1260    <!-- Allows an application to tell the AppWidget service which application
1261         can access AppWidget's data.  The normal user flow is that a user
1262         picks an AppWidget to go into a particular host, thereby giving that
1263         host application access to the private data from the AppWidget app.
1264         An application that has this permission should honor that contract.
1265         Very few applications should need to use this permission. -->
1266    <permission android:name="android.permission.BIND_APPWIDGET"
1267        android:permissionGroup="android.permission-group.PERSONAL_INFO"
1268        android:label="@string/permlab_bindGadget"
1269        android:description="@string/permdesc_bindGadget"
1270        android:protectionLevel="signatureOrSystem" />
1271
1272    <!-- Allows applications to change the background data setting
1273         @hide pending API council -->
1274    <permission android:name="android.permission.CHANGE_BACKGROUND_DATA_SETTING"
1275        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
1276        android:protectionLevel="signature"
1277        android:description="@string/permdesc_changeBackgroundDataSetting"
1278        android:label="@string/permlab_changeBackgroundDataSetting" />
1279
1280    <!-- This permission can be used on content providers to allow the global
1281         search system to access their data.  Typically it used when the
1282         provider has some permissions protecting it (which global search
1283         would not be expected to hold), and added as a read-only permission
1284         to the path in the provider where global search queries are
1285         performed.  This permission can not be held by regular applications;
1286         it is used by applications to protect themselves from everyone else
1287         besides global search. -->
1288    <permission android:name="android.permission.GLOBAL_SEARCH"
1289        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
1290        android:protectionLevel="signatureOrSystem" />
1291
1292    <!-- Internal permission protecting access to the global search
1293         system: ensures that only the system can access the provider
1294         to perform queries (since this otherwise provides unrestricted
1295         access to a variety of content providers), and to write the
1296         search statistics (to keep applications from gaming the source
1297         ranking).
1298         @hide -->
1299    <permission android:name="android.permission.GLOBAL_SEARCH_CONTROL"
1300        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
1301        android:protectionLevel="signature" />
1302
1303    <!-- Allows applications to set a live wallpaper.
1304         @hide XXX Change to signature once the picker is moved to its
1305         own apk as Ghod Intended. -->
1306    <permission android:name="android.permission.SET_WALLPAPER_COMPONENT"
1307        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
1308        android:protectionLevel="signatureOrSystem" />
1309
1310    <!-- Allow an application to read and write the cache partition.
1311         @hide -->
1312    <permission android:name="android.permission.ACCESS_CACHE_FILESYSTEM"
1313        android:label="@string/permlab_cache_filesystem"
1314        android:description="@string/permdesc_cache_filesystem"
1315        android:protectionLevel="signatureOrSystem" />
1316
1317    <!-- Must be required by default container service so that only
1318         the system can bind to it and use it to copy
1319         protected data to secure containers or files
1320         accessible to the system.
1321         @hide -->
1322    <permission android:name="android.permission.COPY_PROTECTED_DATA"
1323        android:label="@string/permlab_copyProtectedData"
1324        android:description="@string/permlab_copyProtectedData"
1325        android:protectionLevel="signature" />
1326
1327    <!-- Internal permission protecting access to the encryption methods
1328        @hide
1329    -->
1330    <permission android:name="android.permission.CRYPT_KEEPER"
1331        android:protectionLevel="signatureOrSystem" />
1332
1333
1334    <!-- C2DM permission. 
1335         @hide Used internally.
1336     -->
1337    <permission android:name="android.intent.category.MASTER_CLEAR.permission.C2D_MESSAGE"
1338          android:protectionLevel="signature" />
1339    <uses-permission android:name="android.intent.category.MASTER_CLEAR.permission.C2D_MESSAGE"/>
1340
1341    <application android:process="system"
1342                 android:persistent="true"
1343                 android:hasCode="false"
1344                 android:label="@string/android_system_label"
1345                 android:allowClearUserData="false"
1346                 android:backupAgent="com.android.server.SystemBackupAgent"
1347                 android:killAfterRestore="false"
1348                 android:icon="@drawable/ic_launcher_android">
1349        <activity android:name="com.android.internal.app.ChooserActivity"
1350                android:theme="@style/Theme.Holo.Dialog.Alert"
1351                android:finishOnCloseSystemDialogs="true"
1352                android:excludeFromRecents="true"
1353                android:multiprocess="true">
1354            <intent-filter>
1355                <action android:name="android.intent.action.CHOOSER" />
1356                <category android:name="android.intent.category.DEFAULT" />
1357            </intent-filter>
1358        </activity>
1359        <activity android:name="com.android.internal.app.HeavyWeightSwitcherActivity"
1360                android:theme="@style/Theme.Holo.Dialog"
1361                android:label="@string/heavy_weight_switcher_title"
1362                android:finishOnCloseSystemDialogs="true"
1363                android:excludeFromRecents="true">
1364        </activity>
1365        <activity android:name="com.android.internal.app.PlatLogoActivity"
1366                android:theme="@style/Theme.Wallpaper.NoTitleBar.Fullscreen">
1367        </activity>
1368        <activity android:name="com.android.internal.app.DisableCarModeActivity"
1369                android:theme="@style/Theme.NoDisplay"
1370                android:excludeFromRecents="true">
1371        </activity>
1372        <activity android:name="com.android.internal.app.RingtonePickerActivity"
1373                android:theme="@style/Theme.Holo.Dialog.Alert"
1374                android:excludeFromRecents="true"
1375                android:multiprocess="true">
1376            <intent-filter>
1377                <action android:name="android.intent.action.RINGTONE_PICKER" />
1378                <category android:name="android.intent.category.DEFAULT" />
1379            </intent-filter>
1380        </activity>
1381
1382        <activity android:name="android.accounts.ChooseAccountActivity"
1383                android:excludeFromRecents="true"
1384                android:exported="true"
1385                android:theme="@android:style/Theme.Holo.Dialog"
1386                android:label="@string/choose_account_label">
1387        </activity>
1388
1389        <activity android:name="android.accounts.GrantCredentialsPermissionActivity"
1390                android:excludeFromRecents="true"
1391                android:exported="true"
1392                android:theme="@android:style/Theme.Holo.DialogWhenLarge">
1393        </activity>
1394
1395        <activity android:name="android.content.SyncActivityTooManyDeletes"
1396               android:theme="@android:style/Theme.Holo.Dialog"
1397               android:label="@string/sync_too_many_deletes">
1398        </activity>
1399
1400        <activity android:name="com.android.server.ShutdownActivity"
1401            android:permission="android.permission.SHUTDOWN"
1402            android:excludeFromRecents="true">
1403            <intent-filter>
1404                <action android:name="android.intent.action.ACTION_REQUEST_SHUTDOWN" />
1405                <category android:name="android.intent.category.DEFAULT" />
1406            </intent-filter>
1407            <intent-filter>
1408                <action android:name="android.intent.action.REBOOT" />
1409                <category android:name="android.intent.category.DEFAULT" />
1410            </intent-filter>
1411        </activity>
1412
1413        <activity android:name="com.android.internal.app.NetInitiatedActivity"
1414                android:theme="@style/Theme.Holo.Dialog.Alert"
1415                android:excludeFromRecents="true">
1416        </activity>
1417
1418        <service android:name="com.android.server.LoadAverageService"
1419                android:exported="true" />
1420
1421        <service android:name="com.android.internal.service.wallpaper.ImageWallpaper"
1422                android:permission="android.permission.BIND_WALLPAPER">
1423        </service>
1424
1425        <receiver android:name="com.android.server.BootReceiver" >
1426            <intent-filter>
1427                <action android:name="android.intent.action.BOOT_COMPLETED" />
1428            </intent-filter>
1429        </receiver>
1430
1431        <receiver android:name="com.android.server.MasterClearReceiver"
1432            android:permission="android.permission.MASTER_CLEAR"
1433            android:priority="100" >
1434            <intent-filter>
1435                <!-- For Checkin, Settings, etc.: action=MASTER_CLEAR -->
1436                <action android:name="android.intent.action.MASTER_CLEAR" />
1437
1438                <!-- MCS always uses REMOTE_INTENT: category=MASTER_CLEAR -->
1439                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
1440                <category android:name="android.intent.category.MASTER_CLEAR" />
1441            </intent-filter>
1442        </receiver>
1443
1444        <service android:name="com.android.internal.os.storage.ExternalStorageFormatter"
1445            android:permission="android.permission.MASTER_CLEAR"
1446            android:exported="true" />
1447
1448    </application>
1449
1450</manifest>
1451