blob: 8e18f3e4b91d0730a7890bdac31214b69ce81a7b [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"
Torsten Grote4e0fab12022-08-23 11:39:01 -03005 android:versionCode="33000301"
6 android:versionName="13-3.1">
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
flawedworldb2cd3c72021-08-26 20:58:44 +000057 <!-- Permission used to open settings -->
58 <permission
59 android:name="com.stevesoltys.seedvault.OPEN_SETTINGS"
60 android:protectionLevel="system|signature" />
61
62 <!-- Permission used to open backup gui -->
63 <permission
64 android:name="com.stevesoltys.seedvault.RESTORE_BACKUP"
65 android:protectionLevel="system|signature" />
66
Oliver Scottdd578282021-06-29 21:33:25 -040067 <!-- This is needed to query content providers in other users -->
68 <uses-permission
69 android:name="android.permission.INTERACT_ACROSS_USERS_FULL"
70 tools:ignore="ProtectedPermissions" />
71
Steve Soltys2497a942017-09-20 22:42:15 -040072 <application
Torsten Grote94c76632019-12-16 13:11:11 -030073 android:name=".App"
Torsten Grote66c09192019-07-05 12:35:45 +020074 android:allowBackup="false"
Steve Soltys2497a942017-09-20 22:42:15 -040075 android:icon="@mipmap/ic_launcher"
Steve Soltys22db4572018-11-13 18:15:21 -050076 android:label="@string/app_name"
Torsten Grotec9a29812019-09-23 16:36:31 -030077 android:roundIcon="@mipmap/ic_launcher_round"
Torsten Grote66c09192019-07-05 12:35:45 +020078 android:supportsRtl="true"
79 android:theme="@style/AppTheme"
Torsten Grote2434fe32019-06-03 12:23:09 -030080 tools:ignore="GoogleAppIndexingWarning">
Steve Soltys2497a942017-09-20 22:42:15 -040081
Torsten Grote2434fe32019-06-03 12:23:09 -030082 <activity
Torsten Groteb9834142019-06-18 17:39:46 -030083 android:name=".settings.SettingsActivity"
Torsten Grote579919d2021-10-07 17:54:35 -030084 android:exported="true"
85 android:permission="com.stevesoltys.seedvault.OPEN_SETTINGS" />
Torsten Groteb9834142019-06-18 17:39:46 -030086
87 <activity
Torsten Grote6d8178f2019-09-13 11:40:32 -030088 android:name=".ui.storage.StorageActivity"
89 android:theme="@style/AppTheme.NoActionBar" />
90
91 <activity
92 android:name=".ui.storage.PermissionGrantActivity"
93 android:exported="false"
94 android:permission="android.permission.MANAGE_DOCUMENTS" />
95
96 <activity
97 android:name=".ui.recoverycode.RecoveryCodeActivity"
98 android:label="@string/recovery_code_title"
99 android:theme="@style/AppTheme.NoActionBar" />
Torsten Grote66c09192019-07-05 12:35:45 +0200100
101 <activity
Torsten Grote491789e2019-09-05 17:42:39 -0300102 android:name=".restore.RestoreActivity"
103 android:exported="true"
104 android:label="@string/restore_title"
Torsten Grote579919d2021-10-07 17:54:35 -0300105 android:permission="com.stevesoltys.seedvault.RESTORE_BACKUP"
Torsten Grote491789e2019-09-05 17:42:39 -0300106 android:theme="@style/AppTheme.NoActionBar">
107 <intent-filter>
Torsten Grote88a250f2019-12-06 12:33:50 -0300108 <action android:name="com.stevesoltys.seedvault.RESTORE_BACKUP" />
Torsten Grote491789e2019-09-05 17:42:39 -0300109 <category android:name="android.intent.category.DEFAULT" />
110 </intent-filter>
111 </activity>
112
Steve Soltys22db4572018-11-13 18:15:21 -0500113 <service
Torsten Grote683268a2019-09-02 11:45:57 -0300114 android:name=".transport.ConfigurableBackupTransportService"
Steve Soltys22db4572018-11-13 18:15:21 -0500115 android:exported="false">
Steve Soltys2497a942017-09-20 22:42:15 -0400116 <intent-filter>
117 <action android:name="android.backup.TRANSPORT_HOST" />
118 </intent-filter>
119 </service>
120
Torsten Groteb0386c82019-09-18 09:23:46 -0300121 <receiver
122 android:name=".UsbIntentReceiver"
123 android:exported="true">
124 <intent-filter>
125 <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
126 </intent-filter>
127 <meta-data
128 android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
129 android:resource="@xml/device_filter" />
130 </receiver>
131
Torsten Grote2bcf82d2020-01-03 12:51:44 -0300132 <receiver
133 android:name=".restore.RestoreErrorBroadcastReceiver"
134 android:exported="false">
135 <intent-filter>
136 <action android:name="com.stevesoltys.seedvault.action.UNINSTALL" />
137 </intent-filter>
138 </receiver>
139
Chirayu Desai38f01762021-07-12 20:57:30 +0530140 <receiver
Torsten Grote7f4b5652021-10-07 13:44:55 -0300141 android:name=".SecretCodeReceiver"
142 android:exported="true">
Chirayu Desai38f01762021-07-12 20:57:30 +0530143 <intent-filter>
144 <action android:name="android.telephony.action.SECRET_CODE" />
145 <!-- *#*#RESTORE#*#* -->
Torsten Grote579919d2021-10-07 17:54:35 -0300146 <data
147 android:host="7378673"
148 android:scheme="android_secret_code" />
Chirayu Desai38f01762021-07-12 20:57:30 +0530149 </intent-filter>
150 </receiver>
151
Torsten Grote6c633b72021-01-19 09:14:52 -0300152 <!-- Used to start actual BackupService depending on scheduling criteria -->
153 <service
154 android:name=".storage.StorageBackupJobService"
155 android:exported="false"
156 android:label="BackupJobService"
157 android:permission="android.permission.BIND_JOB_SERVICE" />
158 <!-- Does the actual backup work as a foreground service -->
159 <service
160 android:name=".storage.StorageBackupService"
161 android:exported="false"
162 android:foregroundServiceType="dataSync"
163 android:label="BackupService" />
Torsten Grotebdefb042021-02-22 11:26:21 -0300164 <!-- Does restore as a foreground service -->
165 <service
166 android:name=".storage.StorageRestoreService"
167 android:exported="false"
168 android:foregroundServiceType="dataSync"
169 android:label="RestoreService" />
Torsten Grote6c633b72021-01-19 09:14:52 -0300170
Steve Soltys2497a942017-09-20 22:42:15 -0400171 </application>
172</manifest>