summaryrefslogtreecommitdiffstats
path: root/AndroidManifest.xml
blob: 4d4ddb309882395b137ec597399a08417c7d6ee5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<!--
  ~ Copyright (C) 2019 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.android.car.companiondevicesupport"
          android:sharedUserId="android.uid.system">

    <!--  Needed for BLE scanning/advertising -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

    <!--  Needed for detecting foreground user -->
    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"/>

    <!-- Needed for the calendar sync feature -->
    <uses-permission android:name="android.permission.WRITE_CALENDAR"/>

    <application
        android:label="@string/app_name"
        android:theme="@style/CompanionDeviceSupportTheme"
        android:directBootAware="true"
        xmlns:tools="http://schemas.android.com/tools">
        <service
            android:name=".service.CompanionDeviceSupportService"
            android:singleUser="true"
            android:exported="false">
            <intent-filter>
                <action android:name="com.android.car.companiondevicesupport.BIND_ASSOCIATION" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.android.car.companiondevicesupport.BIND_CONNECTED_DEVICE_MANAGER" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </service>
        <activity android:name=".activity.AssociationActivity"
                  android:exported="true">
            <intent-filter>
                <action android:name="com.android.car.companiondevicesupport.ASSOCIATION_ACTIVITY" />
                <action android:name="com.android.settings.action.EXTRA_SETTINGS" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <meta-data android:name="com.android.settings.icon"
                       android:resource="@drawable/ic_smartphone" android:value="true"/>
            <meta-data android:name="com.android.settings.title"
                       android:value="@string/app_name" />
            <meta-data android:name="com.android.settings.category"
                       android:value="com.android.settings.category.personal" />
        </activity>

        <!-- Feature specific elements below here -->

        <!-- calendarsync -->
        <service
            android:name=".feature.calendarsync.CalendarSyncService"
            android:exported="false" />

        <!-- notificationmsg -->
        <service
            android:name=".feature.notificationmsg.NotificationMsgService"
            android:exported="true">
        </service>

        <!-- trust -->
        <service
            android:name=".feature.trust.TrustedDeviceManagerService"
            android:singleUser="true"
            android:exported="false">
            <intent-filter>
                <action android:name="com.android.car.companiondevicesupport.trust.BIND_ENROLLMENT_MANAGER" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.android.car.companiondevicesupport.trust.BIND_TRUST_MANAGER" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </service>
        <service
            android:name=".feature.trust.TrustedDeviceAgentService"
            android:permission="android.permission.BIND_TRUST_AGENT"
            android:singleUser="true">
            <intent-filter>
                <action android:name="android.service.trust.TrustAgentService" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <meta-data android:name="android.service.trust.trustagent"
                       android:resource="@xml/car_trust_agent"/>
        </service>
        <activity
            android:name=".feature.trust.ui.TrustedDeviceActivity"
            android:exported="true"
            android:launchMode="singleTask">
            <intent-filter>
                <action android:name="com.android.car.companiondevicesupport.feature.trust.TRUSTED_DEVICE_ACTIVITY" />
                <action android:name="com.android.settings.action.EXTRA_SETTINGS" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <meta-data android:name="com.android.settings.icon"
                       android:resource="@drawable/ic_lock" android:value="true"/>
            <meta-data android:name="com.android.settings.title"
                       android:value="@string/trusted_device_feature_title" />
            <meta-data android:name="com.android.settings.category"
                       android:value="com.android.settings.category.ia.security" />
        </activity>

        <!-- Workaround for b/113294940 -->
        <provider
            android:name="androidx.lifecycle.ProcessLifecycleOwnerInitializer"
            tools:replace="android:authorities"
            android:authorities="${applicationId}.lifecycle"
            android:exported="false"
            android:multiprocess="true" />
    </application>
</manifest>