• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?xml version="1.0" encoding="utf-8"?>
2<!--
3  Copyright (C) 2018 The Android Open Source Project
4
5  Licensed under the Apache License, Version 2.0 (the "License");
6  you may not use this file except in compliance with the License.
7  You may obtain a copy of the License at
8
9       http://www.apache.org/licenses/LICENSE-2.0
10
11  Unless required by applicable law or agreed to in writing, software
12  distributed under the License is distributed on an "AS IS" BASIS,
13  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  See the License for the specific language governing permissions and
15  limitations under the License.
16  -->
17<manifest xmlns:android="http://schemas.android.com/apk/res/android"
18        xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
19        xmlns:tools="http://schemas.android.com/tools"
20        package="com.android.systemui"
21        android:sharedUserId="android.uid.systemui"
22        coreApp="true">
23    <!-- This permission is required to monitor car power state. -->
24    <uses-permission android:name="android.car.permission.CAR_POWER" />
25    <!-- This permission is required to get the trusted device list of a user. -->
26    <uses-permission android:name="android.car.permission.CAR_ENROLL_TRUST"/>
27    <!-- This permission is required to use EVS. -->
28    <uses-permission android:name="android.car.permission.CONTROL_CAR_EVS_ACTIVITY" />
29    <uses-permission android:name="android.car.permission.MONITOR_CAR_EVS_STATUS" />
30    <!-- This permission is required to use ClusterHomeManager. -->
31    <uses-permission android:name="android.car.permission.CAR_INSTRUMENT_CLUSTER_CONTROL" />
32    <!-- This permission is required to use CarOccupantZoneManager. -->
33    <uses-permission android:name="android.car.permission.CAR_CONTROL_AUDIO_SETTINGS" />
34    <uses-permission android:name="android.car.permission.CAR_IDENTIFICATION"/>
35    <!-- This permission is required to get bluetooth broadcast. -->
36    <uses-permission android:name="android.permission.BLUETOOTH" />
37    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
38    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
39    <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
40    <!-- This permission is required to access app information from other users. -->
41    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"/>
42    <!-- This permission is required to check the foreground user id. -->
43    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
44    <!-- System permission to use internal system windows -->
45    <uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW"/>
46    <!-- This permission is required to get the tasks from CarActivityService. -->
47    <uses-permission android:name="android.permission.MANAGE_ACTIVITY_TASKS" />
48    <!-- These permissions are required to implement icons based on role holders. -->
49    <uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS"/>
50    <uses-permission android:name="android.permission.OBSERVE_ROLE_HOLDERS"/>
51    <!-- This permission is required to observe microphone sensor privacy changes. -->
52    <uses-permission android:name="android.permission.OBSERVE_SENSOR_PRIVACY" />
53    <!-- Permission for read-only access to phone state, namely the status of any ongoing calls -->
54    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
55    <!-- This permission is required to register the car system ui proxy -->
56    <uses-permission android:name="android.car.permission.REGISTER_CAR_SYSTEM_UI_PROXY"/>
57    <!-- This permission is required to listen to the keyguard state -->
58    <uses-permission android:name="android.permission.SUBSCRIBE_TO_KEYGUARD_LOCKED_STATE" />
59    <!-- This permission is required to create a CarTaskViewController -->
60    <uses-permission android:name="android.car.permission.MANAGE_CAR_SYSTEM_UI"/>
61    <!-- use for ActivityBlockingActivity to tell whether it's on driver or passenger display -->
62    <uses-permission android:name="android.car.permission.ACCESS_PRIVATE_DISPLAY_ID"/>
63    <!-- use for querying DisplayCompat packages -->
64    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
65    <uses-permission android:name="android.car.permission.MANAGE_DISPLAY_COMPATIBILITY"/>
66    <!-- Permission to allow receiving broadcast events for the dock -->
67    <uses-permission android:name="com.android.car.docklib.permission.BROADCAST_RECEIVER" />
68    <!-- Permissions for the InCallController to bind the InCallService as non-ui -->
69    <uses-permission android:name="android.permission.CONTROL_INCALL_EXPERIENCE"/>
70    <uses-permission android:name="android.permission.MANAGE_ONGOING_CALLS"/>
71    <!-- System permission to control media playback of the active session -->
72    <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL"/>
73    <uses-permission android:name="android.car.permission.CONTROL_CAR_APP_LAUNCH"/>
74
75
76    <application
77        tools:replace="android:name,android:appComponentFactory"
78        android:name=".CarSystemUIApplication"
79        android:appComponentFactory="com.android.systemui.CarSystemUIAppComponentFactory">
80        <uses-library android:name="com.android.oem.tokens" android:required="false"/>
81        <activity
82            android:name=".car.wm.activity.ActivityBlockingActivity"
83            android:documentLaunchMode="always"
84            android:excludeFromRecents="true"
85            android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
86            android:exported="false"
87            android:showForAllUsers="true"
88            android:theme="@style/Theme.ActivityBlockingActivity">
89            <intent-filter>
90                <action android:name="android.intent.action.MAIN"/>
91            </intent-filter>
92        </activity>
93        <activity
94            android:name=".car.wm.activity.ContinuousBlankActivity"
95            android:excludeFromRecents="true"
96            android:theme="@style/Theme.ContinuousBlankActivity"
97            android:exported="false"
98            android:launchMode="singleTask">
99        </activity>
100        <activity
101            android:name=".car.wm.activity.LaunchOnPrivateDisplayRouterActivity"
102            android:excludeFromRecents="true"
103            android:exported="true"
104            android:label="LaunchOnPrivateDisplayRouterActivity"
105            android:launchMode="singleInstance"
106            android:noHistory="true"
107            android:permission="android.car.permission.ACCESS_PRIVATE_DISPLAY_ID"
108            android:theme="@style/Theme.LaunchOnPrivateDisplayRouterActivity"/>
109        <activity
110            android:name=".car.userpicker.UserPickerActivity"
111            android:label="UserPicker"
112            android:icon="@drawable/ic_user_picker"
113            android:launchMode="singleInstancePerTask"
114            android:documentLaunchMode="intoExisting"
115            android:showForAllUsers="true"
116            android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|locale|density|layoutDirection"
117            android:exported="true"
118            android:excludeFromRecents="true"
119            android:directBootAware="true"
120            android:enableOnBackInvokedCallback="true"
121            android:theme="@style/Theme.UserPicker">
122            <intent-filter>
123                <action android:name="android.intent.action.MAIN" />
124            </intent-filter>
125            <meta-data android:name="distractionOptimized" android:value="true"/>
126        </activity>
127
128        <!-- documentLaunchMode=always ensures that a new activity is launched in every display
129             area even when it already exists in some other DA.
130             Every DA will still have just one dag activity at a time because of noHistory=true -->
131        <activity android:name="com.android.systemui.car.wm.displayarea.DaHideActivity"
132            android:noHistory="true"
133            android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|locale|density|layoutDirection"
134            android:theme="@style/Theme.UserPicker"
135            android:showForAllUsers="true"
136            android:documentLaunchMode="always"
137            android:excludeFromRecents="true" >
138            <meta-data android:name="distractionOptimized" android:value="true"/>
139        </activity>
140
141        <!-- The service needs to be directBootAware so that it can reflect the correct call state
142         when the system boots up. -->
143        <service android:name=".car.telecom.InCallServiceImpl"
144            android:directBootAware="true"
145            android:permission="android.permission.BIND_INCALL_SERVICE"
146            android:exported="true"
147            android:singleUser="true"
148            android:enabled="@bool/config_enableAppBlockingActivities">
149            <!-- ABA does not display the in-call UI. This is handled by the
150            Dialer application.-->
151            <meta-data android:name="android.telecom.IN_CALL_SERVICE_UI" android:value="false"/>
152            <meta-data android:name="android.telecom.IN_CALL_SERVICE_CAR_MODE_UI"
153                android:value="false"/>
154            <meta-data android:name="android.telecom.INCLUDE_SELF_MANAGED_CALLS"
155                android:value="true"/>
156            <intent-filter>
157                <action android:name="android.telecom.InCallService"/>
158            </intent-filter>
159        </service>
160    </application>
161</manifest>
162