blob: c9210aca46c2cbc9a019503d278c0de41086d230 [file] [log] [blame]
Steve Soltys2497a942017-09-20 22:42:15 -04001<?xml version="1.0" encoding="utf-8"?>
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 xmlns:tools="http://schemas.android.com/tools"
Steve Soltys32f558f2019-10-28 21:57:47 -04004 package="com.stevesoltys.seedvault"
Chirayu Desaieebeff92023-01-06 02:55:50 +05305 android:versionCode="33030030"
6 android:versionName="13-3.3">
Torsten Grote7694eb32020-10-23 10:25:44 -03007 <!--
8 The version code is the targeted SDK_VERSION plus 6 digits for our own version code.
9 The version name is the targeted Android version followed by - and our own version name.
10 -->
Steve Soltys2497a942017-09-20 22:42:15 -040011
Torsten Grote2434fe32019-06-03 12:23:09 -030012 <uses-permission
13 android:name="android.permission.BACKUP"
14 tools:ignore="ProtectedPermissions" />
15
Torsten Grote7401ead2020-10-19 15:44:36 -030016 <!-- This is needed to check for internet access when backup is stored on network storage -->
17 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
18
Alexander Martinz0106c192022-10-06 09:45:49 +020019 <!-- This is needed to inform users about backup status and errors -->
Torsten Grote46e19512022-08-23 10:59:37 -030020 <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
21
Alexander Martinz7799ad12022-10-06 09:38:29 +020022 <!-- (Optional) This is needed to retrieve the available storage roots.
23 The user needs to manually select a storage root, if not granted. -->
Torsten Grote6d8178f2019-09-13 11:40:32 -030024 <uses-permission
25 android:name="android.permission.MANAGE_DOCUMENTS"
26 tools:ignore="ProtectedPermissions" />
27
Torsten Grote2c4d44c2019-09-19 15:21:48 -030028 <!-- This is needed to access the serial number of USB mass storage devices -->
29 <uses-permission
30 android:name="android.permission.MANAGE_USB"
31 tools:ignore="ProtectedPermissions" />
Robin Schneidera51fcfc2020-03-08 22:13:35 +010032
Torsten Grote26f23e92019-09-19 16:29:53 -030033 <!-- This is needed to change system backup settings -->
34 <uses-permission
35 android:name="android.permission.WRITE_SECURE_SETTINGS"
36 tools:ignore="ProtectedPermissions" />
37
Torsten Grote76057622019-12-20 13:55:38 -030038 <!-- This is needed to re-install backed-up packages when restoring from backup -->
39 <uses-permission
40 android:name="android.permission.INSTALL_PACKAGES"
41 tools:ignore="ProtectedPermissions" />
42
Torsten Grote2bcf82d2020-01-03 12:51:44 -030043 <!-- This is needed when using auto-restore with removable storage
44 to allow the user to uninstall an app when storage was not plugged in during install -->
45 <uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
46
Torsten Grote918d7a72020-09-10 09:26:55 -030047 <!-- Getting info about installed packages via PackageManager is restricted since Android 11
48 We need to know what is installed, with what signatures, etc. for APK backup,
49 triggering manual backup and other tasks -->
Torsten Grotee6723092020-10-15 14:14:55 -030050 <uses-permission
51 android:name="android.permission.QUERY_ALL_PACKAGES"
52 tools:ignore="QueryAllPackagesPermission" />
Torsten Grote918d7a72020-09-10 09:26:55 -030053
Torsten Grote6e838972021-08-11 11:54:28 +020054 <!-- Used to authenticate saving a new recovery code -->
55 <uses-permission android:name="android.permission.USE_BIOMETRIC" />
56
Torsten Grote1a7fc5f2022-11-11 17:32:03 -030057 <!-- This is needed to query content providers in other users -->
58 <uses-permission
59 android:name="android.permission.INTERACT_ACROSS_USERS_FULL"
60 tools:ignore="ProtectedPermissions" />
61
62 <!-- Used to get logcat for system part of backup API, gets permission dialog -->
63 <uses-permission
64 android:name="android.permission.READ_LOGS"
65 tools:ignore="ProtectedPermissions" />
66
flawedworldb2cd3c72021-08-26 20:58:44 +000067 <!-- Permission used to open settings -->
68 <permission
69 android:name="com.stevesoltys.seedvault.OPEN_SETTINGS"
70 android:protectionLevel="system|signature" />
71
72 <!-- Permission used to open backup gui -->
73 <permission
74 android:name="com.stevesoltys.seedvault.RESTORE_BACKUP"
75 android:protectionLevel="system|signature" />
76
Steve Soltys2497a942017-09-20 22:42:15 -040077 <application
Torsten Grote94c76632019-12-16 13:11:11 -030078 android:name=".App"
Torsten Grote66c09192019-07-05 12:35:45 +020079 android:allowBackup="false"
Steve Soltys2497a942017-09-20 22:42:15 -040080 android:icon="@mipmap/ic_launcher"
Steve Soltys22db4572018-11-13 18:15:21 -050081 android:label="@string/app_name"
Torsten Grotec9a29812019-09-23 16:36:31 -030082 android:roundIcon="@mipmap/ic_launcher_round"
Torsten Grote66c09192019-07-05 12:35:45 +020083 android:supportsRtl="true"
84 android:theme="@style/AppTheme"
Torsten Grote2434fe32019-06-03 12:23:09 -030085 tools:ignore="GoogleAppIndexingWarning">
Steve Soltys2497a942017-09-20 22:42:15 -040086
Torsten Grote2434fe32019-06-03 12:23:09 -030087 <activity
Torsten Groteb9834142019-06-18 17:39:46 -030088 android:name=".settings.SettingsActivity"
Torsten Grote579919d2021-10-07 17:54:35 -030089 android:exported="true"
90 android:permission="com.stevesoltys.seedvault.OPEN_SETTINGS" />
Torsten Groteb9834142019-06-18 17:39:46 -030091
92 <activity
Torsten Grote6d8178f2019-09-13 11:40:32 -030093 android:name=".ui.storage.StorageActivity"
94 android:theme="@style/AppTheme.NoActionBar" />
95
96 <activity
97 android:name=".ui.storage.PermissionGrantActivity"
98 android:exported="false"
99 android:permission="android.permission.MANAGE_DOCUMENTS" />
100
101 <activity
102 android:name=".ui.recoverycode.RecoveryCodeActivity"
103 android:label="@string/recovery_code_title"
104 android:theme="@style/AppTheme.NoActionBar" />
Torsten Grote66c09192019-07-05 12:35:45 +0200105
106 <activity
Torsten Grote491789e2019-09-05 17:42:39 -0300107 android:name=".restore.RestoreActivity"
108 android:exported="true"
109 android:label="@string/restore_title"
Torsten Grote579919d2021-10-07 17:54:35 -0300110 android:permission="com.stevesoltys.seedvault.RESTORE_BACKUP"
Torsten Grote491789e2019-09-05 17:42:39 -0300111 android:theme="@style/AppTheme.NoActionBar">
112 <intent-filter>
Torsten Grote88a250f2019-12-06 12:33:50 -0300113 <action android:name="com.stevesoltys.seedvault.RESTORE_BACKUP" />
Torsten Grote491789e2019-09-05 17:42:39 -0300114 <category android:name="android.intent.category.DEFAULT" />
115 </intent-filter>
116 </activity>
117
Steve Soltys22db4572018-11-13 18:15:21 -0500118 <service
Torsten Grote683268a2019-09-02 11:45:57 -0300119 android:name=".transport.ConfigurableBackupTransportService"
Steve Soltys22db4572018-11-13 18:15:21 -0500120 android:exported="false">
Steve Soltys2497a942017-09-20 22:42:15 -0400121 <intent-filter>
122 <action android:name="android.backup.TRANSPORT_HOST" />
123 </intent-filter>
124 </service>
125
Torsten Groteb0386c82019-09-18 09:23:46 -0300126 <receiver
127 android:name=".UsbIntentReceiver"
128 android:exported="true">
129 <intent-filter>
130 <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
131 </intent-filter>
132 <meta-data
133 android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
134 android:resource="@xml/device_filter" />
135 </receiver>
136
Torsten Grote2bcf82d2020-01-03 12:51:44 -0300137 <receiver
138 android:name=".restore.RestoreErrorBroadcastReceiver"
139 android:exported="false">
140 <intent-filter>
141 <action android:name="com.stevesoltys.seedvault.action.UNINSTALL" />
142 </intent-filter>
143 </receiver>
144
Chirayu Desai38f01762021-07-12 20:57:30 +0530145 <receiver
Torsten Grote7f4b5652021-10-07 13:44:55 -0300146 android:name=".SecretCodeReceiver"
147 android:exported="true">
Chirayu Desai38f01762021-07-12 20:57:30 +0530148 <intent-filter>
149 <action android:name="android.telephony.action.SECRET_CODE" />
150 <!-- *#*#RESTORE#*#* -->
Torsten Grote579919d2021-10-07 17:54:35 -0300151 <data
152 android:host="7378673"
153 android:scheme="android_secret_code" />
Chirayu Desai38f01762021-07-12 20:57:30 +0530154 </intent-filter>
155 </receiver>
156
Torsten Grote6c633b72021-01-19 09:14:52 -0300157 <!-- Used to start actual BackupService depending on scheduling criteria -->
158 <service
159 android:name=".storage.StorageBackupJobService"
160 android:exported="false"
161 android:label="BackupJobService"
162 android:permission="android.permission.BIND_JOB_SERVICE" />
163 <!-- Does the actual backup work as a foreground service -->
164 <service
165 android:name=".storage.StorageBackupService"
166 android:exported="false"
167 android:foregroundServiceType="dataSync"
168 android:label="BackupService" />
Torsten Grotebdefb042021-02-22 11:26:21 -0300169 <!-- Does restore as a foreground service -->
170 <service
171 android:name=".storage.StorageRestoreService"
172 android:exported="false"
173 android:foregroundServiceType="dataSync"
174 android:label="RestoreService" />
Torsten Grote6c633b72021-01-19 09:14:52 -0300175
Steve Soltys2497a942017-09-20 22:42:15 -0400176 </application>
177</manifest>