-
Notifications
You must be signed in to change notification settings - Fork 389
/
Copy pathAndroidManifest.xml
116 lines (116 loc) · 6 KB
/
AndroidManifest.xml
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
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<!-- https://developer.android.com/guide/components/fg-service-types#system-exempted -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED" />
<uses-feature android:name="android.hardware.touchscreen"
android:required="false" />
<uses-feature android:name="android.hardware.faketouch"
android:required="false" />
<uses-feature android:name="android.hardware.screen.portrait"
android:required="false" />
<uses-feature android:name="android.hardware.screen.landscape"
android:required="false" />
<uses-feature android:name="android.software.leanback"
android:required="false" />
<uses-feature android:glEsVersion="0x00020000"
android:required="false" />
<application android:name=".MullvadApplication"
android:allowBackup="false"
android:banner="@drawable/banner"
android:extractNativeLibs="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher"
android:theme="@style/Theme.App.Starting"
tools:ignore="GoogleAppIndexingWarning">
<!--
MainActivity
Must be exported in order to be launchable.
Launch mode should singleInstance to avoid this vulnerability;
https://developer.android.com/privacy-and-security/risks/strandhogg
This can be disregarded when the minimum supported version is 28 or higher
since after that it has been patched on a OS level.
-->
<activity android:name="net.mullvad.mullvadvpn.ui.MainActivity"
android:configChanges="orientation|screenSize|screenLayout"
android:exported="true"
android:launchMode="singleInstance"
android:screenOrientation="fullUser"
android:windowSoftInputMode="adjustResize"
android:enableOnBackInvokedCallback="true"
tools:ignore="DiscouragedApi,UnusedAttribute">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.service.quicksettings.action.QS_TILE_PREFERENCES" />
</intent-filter>
<intent-filter>
<action android:name="net.mullvad.mullvadvpn.request_vpn_permission" />
</intent-filter>
</activity>
<!--
MullvadVpnService
It's unclear in the documentation whether the service must/should be exported or not,
however as it's protected by the bind vpn permission
(android.permission.BIND_VPN_SERVICE) it's protected against third party apps/services.
-->
<!--
foregroundServiceType="systemExempted" is required in Android 14+
https://developer.android.com/guide/components/fg-service-types#system-exempted
-->
<service android:name="net.mullvad.mullvadvpn.service.MullvadVpnService"
android:exported="true"
android:foregroundServiceType="systemExempted"
android:permission="android.permission.BIND_VPN_SERVICE"
android:stopWithTask="false"
tools:ignore="ForegroundServicePermission">
<intent-filter>
<action android:name="android.net.VpnService" />
</intent-filter>
<intent-filter>
<action android:name="net.mullvad.mullvadvpn.connect_action" />
</intent-filter>
<intent-filter>
<action android:name="net.mullvad.mullvadvpn.disconnect_action" />
</intent-filter>
<intent-filter>
<action android:name="net.mullvad.mullvadvpn.quit_action" />
</intent-filter>
</service>
<!--
MullvadTileService
Tile services must be exported and protected by the bind tile permission
(android.permission.BIND_QUICK_SETTINGS_TILE).
-->
<service android:name="net.mullvad.mullvadvpn.tile.MullvadTileService"
android:exported="true"
android:icon="@drawable/small_logo_black"
android:label="@string/toggle_vpn"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
<intent-filter>
<action android:name="android.service.quicksettings.action.QS_TILE" />
</intent-filter>
</service>
<provider android:name="net.mullvad.mullvadvpn.provider.MullvadFileProvider"
android:authorities="${applicationId}.FileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths" />
</provider>
<receiver android:name=".receiver.LocaleChangedBroadcastReceiver"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.LOCALE_CHANGED" />
</intent-filter>
</receiver>
</application>
</manifest>