1<?xml version="1.0" encoding="utf-8"?>
2<!--
3/*
4**
5** Copyright 2021, 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
21    xmlns:android="http://schemas.android.com/apk/res/android"
22    package="com.android.fakesystemapp">
23    <uses-sdk android:targetSdkVersion="30" android:minSdkVersion="30"/>
24
25    <!-- WindowManager -->
26    <uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" />
27    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
28    <!-- Screen Capturing -->
29    <uses-permission android:name="android.permission.MANAGE_MEDIA_PROJECTION" />
30
31    <!-- Application needs SMS/MMS permissions -->
32    <uses-permission android:name="android.permission.READ_SMS"/>
33    <uses-permission android:name="android.permission.WRITE_SMS"/>
34    <uses-permission android:name="android.permission.RECEIVE_SMS"/>
35    <uses-permission android:name="android.permission.RECEIVE_MMS"/>
36    <uses-permission android:name="android.permission.SEND_SMS"/>
37
38    <application
39        android:label="Fake System App"
40        android:supportsRtl="true"
41        >
42
43        <!--
44        FallbackHome activity is used when default launcher activity is not encryption aware.
45        Effectively replaces Settings:FallbackHome, which is needed to allow device to boot when
46        Settings is removed
47        -->
48        <activity android:name=".launcher.FallbackHome"
49                  android:excludeFromRecents="true"
50                  android:label=""
51                  android:screenOrientation="nosensor"
52                  android:directBootAware="true">
53            <intent-filter android:priority="-1000">
54                <action android:name="android.intent.action.MAIN"/>
55                <category android:name="android.intent.category.HOME"/>
56                <category android:name="android.intent.category.DEFAULT"/>
57            </intent-filter>
58        </activity>
59
60        <activity android:name=".launcher.EmptyHomeActivity"
61                  android:excludeFromRecents="true"
62                  android:label=""
63                  android:screenOrientation="nosensor"
64                  android:enabled="true">
65            <intent-filter>
66                <action android:name="android.intent.action.MAIN"/>
67                <category android:name="android.intent.category.HOME"/>
68                <category android:name="android.intent.category.DEFAULT"/>
69            </intent-filter>
70        </activity>
71
72        <!-- started from MediaProjectionManager -->
73        <activity android:name=".systemui.SlimMediaProjectionPermissionActivity"
74                  android:exported="true"
75                  android:finishOnCloseSystemDialogs="true"
76                  android:launchMode="singleTop"
77                  android:excludeFromRecents="true"/>
78
79        <!-- appease the framework/CTS TelephonyProvider tests which wants a default SMS app -->
80        <!-- copy the required components from packages/apps/PermissionController/res/xml/roles.xml -->
81        <receiver android:name=".messaging.StubSmsDeliverReceiver"
82            android:permission="android.permission.BROADCAST_SMS"
83            android:enabled="true" >
84            <intent-filter>
85                <action android:name="android.provider.Telephony.SMS_DELIVER" />
86            </intent-filter>
87        </receiver>
88        <receiver android:name=".messaging.StubMmsWapPushDeliverReceiver"
89            android:permission="android.permission.BROADCAST_WAP_PUSH"
90            android:enabled="true">
91            <intent-filter>
92                <action android:name="android.provider.Telephony.WAP_PUSH_DELIVER" />
93                <data android:mimeType="application/vnd.wap.mms-message" />
94            </intent-filter>
95        </receiver>
96        <service
97            android:name=".messaging.StubNoConfirmationSmsSendService"
98            android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE"
99        android:exported="true">
100            <intent-filter>
101                <action android:name="android.intent.action.RESPOND_VIA_MESSAGE" />
102                <data android:scheme="smsto" />
103            </intent-filter>
104        </service>
105        <activity android:name=".messaging.StubLaunchConversationActivity"
106                  android:configChanges="orientation|screenSize|keyboardHidden"
107                  android:screenOrientation="user"
108                  android:noHistory="true"
109                  android:documentLaunchMode="always">
110            <intent-filter>
111                <action android:name="android.intent.action.VIEW" />
112                <action android:name="android.intent.action.SENDTO" />
113                <category android:name="android.intent.category.DEFAULT" />
114                <category android:name="android.intent.category.BROWSABLE" />
115                <data android:scheme="sms" />
116                <data android:scheme="smsto" />
117            </intent-filter>
118            <intent-filter>
119                <action android:name="android.intent.action.VIEW" />
120                <action android:name="android.intent.action.SENDTO" />
121                <category android:name="android.intent.category.DEFAULT" />
122                <category android:name="android.intent.category.BROWSABLE" />
123                <data android:scheme="mms" />
124                <data android:scheme="mmsto" />
125            </intent-filter>
126        </activity>
127        <activity android:name=".browser.StubBrowserActivity"
128                  android:exported="true" >
129            <!-- Catch intents which do not specify a MIME type -->
130            <intent-filter>
131                <action android:name="android.intent.action.VIEW" />
132                <category android:name="android.intent.category.DEFAULT" />
133                <category android:name="android.intent.category.BROWSABLE" />
134                <data android:scheme="http" />
135                <data android:scheme="https" />
136            </intent-filter>
137            <!-- Catch intents which do specify a MIME type -->
138            <intent-filter>
139                <action android:name="android.intent.action.VIEW" />
140                <category android:name="android.intent.category.DEFAULT" />
141                <category android:name="android.intent.category.BROWSABLE" />
142                <data android:scheme="http" />
143                <data android:scheme="https" />
144                <data android:mimeType="text/html"/>
145                <data android:mimeType="text/plain"/>
146                <data android:mimeType="application/xhtml+xml"/>
147                <data android:mimeType="application/vnd.wap.xhtml+xml"/> <!-- XHTML MP -->
148            </intent-filter>
149        </activity>
150
151    </application>
152</manifest>
153