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.module"
21        android:versionCode="300000000"
22        android:versionName="R-initial">
23
24    <!-- Needed for TTS when targetSdkVersion is 30 -->
25    <queries>
26        <intent>
27            <action android:name="android.intent.action.TTS_SERVICE" />
28        </intent>
29    </queries>
30
31    <!-- Needed for TTS when targetSdkVersion is 30 -->
32    <queries>
33        <intent>
34            <action android:name="android.intent.action.TTS_SERVICE" />
35        </intent>
36    </queries>
37
38    <uses-permission android:name="android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS" />
39    <uses-permission android:name="android.permission.RECEIVE_SMS" />
40    <uses-permission android:name="android.permission.RECEIVE_EMERGENCY_BROADCAST" />
41    <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
42    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
43    <uses-permission android:name="android.permission.MODIFY_CELL_BROADCASTS" />
44    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
45    <uses-permission android:name="android.permission.STATUS_BAR" />
46    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
47    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED" />
48    <uses-permission android:name="android.permission.VIBRATE" />
49    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
50    <uses-permission android:name="android.permission.MANAGE_USERS" />
51    <uses-permission android:name="android.permission.DEVICE_POWER" />
52    <uses-permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
53    <uses-permission android:name="android.permission.READ_CELL_BROADCASTS" />
54    <uses-permission android:name="android.permission.READ_SMS" />
55    <uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS"/>
56    <uses-permission android:name="com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY" />
57    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
58    <uses-permission android:name="android.permission.BLUETOOTH" />
59    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
60    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
61    <uses-permission android:name="android.permission.WAKE_LOCK" />
62
63    <uses-sdk android:minSdkVersion="30" />
64
65    <application android:name="com.android.cellbroadcastreceiver.CellBroadcastReceiverApp"
66            android:label="@string/app_label"
67            android:icon="@mipmap/ic_launcher_cell_broadcast"
68            android:backupAgent="com.android.cellbroadcastreceiver.CellBroadcastBackupAgent"
69            android:defaultToDeviceProtectedStorage="true"
70            android:supportsRtl="true"
71            android:directBootAware="true">
72
73        <meta-data android:name="com.google.android.backup.api_key"
74                android:value="AEdPqrEAAAAI2_Lb4sDI0e0twL-kf6GIqXpZIfrR0OhnM1pNJQ" />
75
76        <service android:name="com.android.cellbroadcastreceiver.CellBroadcastAlertAudio"
77                 android:exported="false" />
78
79        <service android:name="com.android.cellbroadcastreceiver.CellBroadcastAlertService"
80                 android:foregroundServiceType="systemExempted"
81                 android:exported="false">
82            <property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
83                      android:value="keep cell broadcast receiver process alive in case of an emergency alert received during the call"/>
84        </service>
85
86        <service android:name="com.android.cellbroadcastreceiver.CellBroadcastConfigService"
87                 android:exported="false" />
88
89        <service android:name="com.android.cellbroadcastreceiver.CellBroadcastAlertReminder"
90                 android:exported="false" />
91
92        <!-- Export provider for AT&T Device and Network Reset-->
93        <provider android:name="com.android.cellbroadcastreceiver.CellBroadcastContentProvider"
94                  android:authorities="cellbroadcasts-app"
95                  android:exported="true"
96                  android:readPermission="android.permission.READ_CELL_BROADCASTS" />
97
98        <activity android:name="com.android.cellbroadcastreceiver.CellBroadcastListActivity"
99                  android:label="@string/app_label"
100                  android:theme="@style/CellBroadcastListActivityTheme"
101                  android:exported="true"
102                  android:configChanges="orientation|keyboardHidden" >
103            <intent-filter>
104                <action android:name="android.intent.action.MAIN" />
105<!-- Uncomment this category to show the Cell Broadcasts launcher icon.
106     Otherwise, set "config_cellBroadcastAppLinks" to true in a config.xml overlay
107     to add links to Cell Broadcast activities via Settings and MMS menu items.
108                <category android:name="android.intent.category.LAUNCHER" />
109 -->
110                <category android:name="android.intent.category.DEFAULT" />
111            </intent-filter>
112            <intent-filter>
113                <action android:name="android.cellbroadcastreceiver.UPDATE_LIST_VIEW" />
114                <category android:name="android.intent.category.DEFAULT" />
115            </intent-filter>
116        </activity>
117
118        <!-- Alias activity for CellBroadcastListActivity. Once enabled, it will appear in the launcher -->
119        <activity-alias android:name="com.android.cellbroadcastreceiver.CellBroadcastListLauncherActivity"
120            android:targetActivity="com.android.cellbroadcastreceiver.CellBroadcastListActivity"
121            android:enabled="false"
122            android:exported="true">
123            <intent-filter>
124                <action android:name="android.intent.action.MAIN" />
125                <category android:name="android.intent.category.LAUNCHER" />
126                <category android:name="android.intent.category.DEFAULT" />
127            </intent-filter>
128        </activity-alias>
129
130        <!-- Settings opened by ListActivity menu, Settings app link or opt-out dialog. -->
131        <activity android:name="com.android.cellbroadcastreceiver.CellBroadcastSettings"
132                  android:theme="@style/CellBroadcastSettingsTheme"
133                  android:label="@string/sms_cb_settings"
134                  android:exported="true" />
135
136        <activity android:name="com.android.cellbroadcastreceiver.CellBroadcastAlertDialog"
137                  android:theme="@style/CellBroadcastAlertTheme"
138                  android:launchMode="singleInstance"
139                  android:exported="false"
140                  android:excludeFromRecents="true"
141                  android:configChanges="orientation|keyboardHidden|screenSize|keyboard|navigation">
142            <intent-filter>
143                <action android:name="android.provider.Telephony.SMS_CB_RECEIVED" />
144            </intent-filter>
145        </activity>
146
147        <!-- Container activity for CMAS opt-in/opt-out dialog. -->
148        <activity android:name="com.android.cellbroadcastreceiver.CellBroadcastOptOutActivity"
149                  android:launchMode="singleInstance"
150                  android:theme="@style/CellBroadcastOptOutTheme"
151                  android:excludeFromRecents="true"
152                  android:exported="false" />
153
154        <receiver android:name="com.android.cellbroadcastreceiver.CellBroadcastReceiver"
155            android:exported="true">
156            <intent-filter>
157                <action android:name="android.telephony.action.DEFAULT_SMS_SUBSCRIPTION_CHANGED" />
158                <action android:name="android.telephony.action.CARRIER_CONFIG_CHANGED" />
159                <action android:name="android.provider.action.SMS_EMERGENCY_CB_RECEIVED" />
160                <action android:name="android.provider.Telephony.SMS_CB_RECEIVED" />
161                <action android:name="android.provider.Telephony.SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED" />
162                <action android:name="android.intent.action.LOCALE_CHANGED" />
163                <action android:name="android.intent.action.SERVICE_STATE" />
164                <action android:name="android.intent.action.BOOT_COMPLETED" />
165            </intent-filter>
166            <intent-filter>
167                <action android:name="android.telephony.action.SECRET_CODE" />
168                <!-- CMAS: To toggle test mode for cell broadcast testing on userdebug build -->
169                <data android:scheme="android_secret_code" android:host="2627" />
170            </intent-filter>
171        </receiver>
172
173        <receiver android:name="com.android.cellbroadcastreceiver.CellBroadcastInternalReceiver"
174                  android:exported="false">
175            <!-- No intent filter on purpose: this should only receive explicit intents -->
176        </receiver>
177
178        <provider
179                android:name="com.android.cellbroadcastreceiver.CellBroadcastSearchIndexableProvider"
180                android:authorities="com.android.cellbroadcastreceiver"
181                android:multiprocess="false"
182                android:grantUriPermissions="true"
183                android:permission="android.permission.READ_SEARCH_INDEXABLES"
184                android:exported="true">
185            <intent-filter>
186                <action android:name="android.content.action.SEARCH_INDEXABLES_PROVIDER" />
187            </intent-filter>
188        </provider>
189
190    </application>
191</manifest>
192