1<?xml version="1.0" encoding="utf-8"?>
2<!--
3/*
4 * Copyright (C) 2011 The Android Open Source Project
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 *      http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18-->
19<manifest xmlns:android="http://schemas.android.com/apk/res/android"
20    package="com.android.cellbroadcastreceiver">
21
22  <original-package android:name="com.android.cellbroadcastreceiver" />
23
24  <uses-permission android:name="android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS" />
25  <uses-permission android:name="android.permission.RECEIVE_SMS" />
26  <uses-permission android:name="android.permission.RECEIVE_EMERGENCY_BROADCAST" />
27  <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
28  <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
29  <uses-permission android:name="android.permission.MODIFY_CELL_BROADCASTS" />
30  <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
31  <uses-permission android:name="android.permission.VIBRATE" />
32  <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
33  <uses-permission android:name="android.permission.MANAGE_USERS" />
34  <uses-permission android:name="android.permission.DEVICE_POWER" />
35  <uses-permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
36  <uses-permission android:name="android.permission.READ_CELL_BROADCASTS" />
37  <uses-permission android:name="android.permission.READ_SMS" />
38  <uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS"/>
39  <uses-permission android:name="com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY" />
40  <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
41  <uses-permission android:name="android.permission.BLUETOOTH" />
42  <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
43
44  <uses-sdk android:minSdkVersion="21"/>
45
46  <application android:name="CellBroadcastReceiverApp"
47      android:label="@string/app_label"
48      android:icon="@mipmap/ic_launcher_cell_broadcast"
49      android:backupAgent="CellBroadcastBackupAgent"
50      android:defaultToDeviceProtectedStorage="true"
51      android:supportsRtl="true"
52      android:directBootAware="true">
53
54  <meta-data android:name="com.google.android.backup.api_key"
55          android:value="AEdPqrEAAAAI2_Lb4sDI0e0twL-kf6GIqXpZIfrR0OhnM1pNJQ" />
56
57  <service android:name="CellBroadcastAlertAudio"
58        android:exported="false" />
59
60    <service android:name="CellBroadcastAlertService"
61        android:exported="false" />
62
63    <service android:name="CellBroadcastConfigService"
64        android:exported="false" />
65
66    <service android:name="CellBroadcastAlertReminder"
67        android:exported="false" />
68
69    <provider android:name="CellBroadcastContentProvider"
70        android:authorities="cellbroadcasts-app"
71        android:readPermission="android.permission.READ_CELL_BROADCASTS" />
72
73    <activity android:name="CellBroadcastListActivity"
74        android:label="@string/app_label"
75        android:theme="@style/CellBroadcastListActivityTheme"
76        android:exported="true"
77        android:configChanges="orientation|keyboardHidden" >
78      <intent-filter>
79        <action android:name="android.intent.action.MAIN" />
80        <!-- Uncomment this category to show the Cell Broadcasts launcher icon.
81             Otherwise, set "config_cellBroadcastAppLinks" to true in a config.xml overlay
82             to add links to Cell Broadcast activities via Settings and MMS menu items.
83                        <category android:name="android.intent.category.LAUNCHER" />
84         -->
85        <category android:name="android.intent.category.DEFAULT" />
86      </intent-filter>
87      <intent-filter>
88        <action android:name="android.cellbroadcastreceiver.UPDATE_LIST_VIEW" />
89        <category android:name="android.intent.category.DEFAULT" />
90      </intent-filter>
91    </activity>
92
93    <!-- Alias activity for CellBroadcastListActivity. Once enabled, it will appear in the launcher -->
94    <activity-alias android:name="CellBroadcastListLauncherActivity"
95        android:targetActivity="CellBroadcastListActivity"
96        android:enabled="false"
97        android:exported="true">
98      <intent-filter>
99        <action android:name="android.intent.action.MAIN" />
100        <category android:name="android.intent.category.LAUNCHER" />
101        <category android:name="android.intent.category.DEFAULT" />
102      </intent-filter>
103    </activity-alias>
104
105    <!-- Settings opened by ListActivity menu, Settings app link or opt-out dialog. -->
106    <activity android:name="CellBroadcastSettings"
107        android:theme="@style/CellBroadcastSettingsTheme"
108        android:label="@string/sms_cb_settings"
109        android:exported="true" />
110
111    <activity android:name="CellBroadcastAlertDialog"
112        android:theme="@style/CellBroadcastAlertTheme"
113        android:launchMode="singleTask"
114        android:exported="false"
115        android:excludeFromRecents="true"
116        android:configChanges="orientation|keyboardHidden|screenSize|keyboard|navigation">
117      <intent-filter>
118        <action android:name="android.provider.Telephony.SMS_CB_RECEIVED" />
119      </intent-filter>
120    </activity>
121
122    <!-- Container activity for CMAS opt-in/opt-out dialog. -->
123    <activity android:name="CellBroadcastOptOutActivity"
124        android:exported="false" />
125
126    <receiver android:name="CellBroadcastReceiver"
127        android:exported="true">
128      <intent-filter>
129        <action android:name="android.provider.action.SMS_EMERGENCY_CB_RECEIVED" />
130        <action android:name="android.provider.Telephony.SMS_CB_RECEIVED" />
131        <action android:name="android.provider.Telephony.SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED" />
132        <action android:name="android.intent.action.LOCALE_CHANGED" />
133        <action android:name="android.telephony.action.DEFAULT_SMS_SUBSCRIPTION_CHANGED" />
134        <action android:name="android.telephony.action.CARRIER_CONFIG_CHANGED" />
135        <action android:name="android.intent.action.SERVICE_STATE" />
136        <action android:name="android.intent.action.BOOT_COMPLETED" />
137        <action android:name="android.telephony.action.SIM_CARD_STATE_CHANGED" />
138      </intent-filter>
139      <intent-filter>
140        <action android:name="android.telephony.action.SECRET_CODE" />
141        <!-- CMAS: To toggle test mode for cell broadcast testing on userdebug build -->
142        <data android:scheme="android_secret_code" android:host="2627" />
143      </intent-filter>
144    </receiver>
145
146    <receiver android:name="com.android.cellbroadcastreceiver.CellBroadcastInternalReceiver"
147              android:exported="false">
148      <!-- No intent filter on purpose: this should only receive explicit intents -->
149    </receiver>
150
151    <provider
152        android:name="CellBroadcastSearchIndexableProvider"
153        android:authorities="com.android.cellbroadcastreceiver"
154        android:multiprocess="false"
155        android:grantUriPermissions="true"
156        android:permission="android.permission.READ_SEARCH_INDEXABLES"
157        android:exported="true">
158      <intent-filter>
159        <action android:name="android.content.action.SEARCH_INDEXABLES_PROVIDER" />
160      </intent-filter>
161    </provider>
162
163  </application>
164</manifest>
165