Steve Soltys | 2497a94 | 2017-09-20 22:42:15 -0400 | [diff] [blame] | 1 | <?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 Soltys | 32f558f | 2019-10-28 21:57:47 -0400 | [diff] [blame] | 4 | package="com.stevesoltys.seedvault" |
Chirayu Desai | eebeff9 | 2023-01-06 02:55:50 +0530 | [diff] [blame] | 5 | android:versionCode="33030030" |
| 6 | android:versionName="13-3.3"> |
Torsten Grote | 7694eb3 | 2020-10-23 10:25:44 -0300 | [diff] [blame] | 7 | <!-- |
| 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 Soltys | 2497a94 | 2017-09-20 22:42:15 -0400 | [diff] [blame] | 11 | |
Torsten Grote | 2434fe3 | 2019-06-03 12:23:09 -0300 | [diff] [blame] | 12 | <uses-permission |
| 13 | android:name="android.permission.BACKUP" |
| 14 | tools:ignore="ProtectedPermissions" /> |
| 15 | |
Torsten Grote | 7401ead | 2020-10-19 15:44:36 -0300 | [diff] [blame] | 16 | <!-- 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 Martinz | 0106c19 | 2022-10-06 09:45:49 +0200 | [diff] [blame] | 19 | <!-- This is needed to inform users about backup status and errors --> |
Torsten Grote | 46e1951 | 2022-08-23 10:59:37 -0300 | [diff] [blame] | 20 | <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> |
| 21 | |
Alexander Martinz | 7799ad1 | 2022-10-06 09:38:29 +0200 | [diff] [blame] | 22 | <!-- (Optional) This is needed to retrieve the available storage roots. |
| 23 | The user needs to manually select a storage root, if not granted. --> |
Torsten Grote | 6d8178f | 2019-09-13 11:40:32 -0300 | [diff] [blame] | 24 | <uses-permission |
| 25 | android:name="android.permission.MANAGE_DOCUMENTS" |
| 26 | tools:ignore="ProtectedPermissions" /> |
| 27 | |
Torsten Grote | 2c4d44c | 2019-09-19 15:21:48 -0300 | [diff] [blame] | 28 | <!-- 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 Schneider | a51fcfc | 2020-03-08 22:13:35 +0100 | [diff] [blame] | 32 | |
Torsten Grote | 26f23e9 | 2019-09-19 16:29:53 -0300 | [diff] [blame] | 33 | <!-- 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 Grote | 7605762 | 2019-12-20 13:55:38 -0300 | [diff] [blame] | 38 | <!-- 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 Grote | 2bcf82d | 2020-01-03 12:51:44 -0300 | [diff] [blame] | 43 | <!-- 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 Grote | 918d7a7 | 2020-09-10 09:26:55 -0300 | [diff] [blame] | 47 | <!-- 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 Grote | e672309 | 2020-10-15 14:14:55 -0300 | [diff] [blame] | 50 | <uses-permission |
| 51 | android:name="android.permission.QUERY_ALL_PACKAGES" |
| 52 | tools:ignore="QueryAllPackagesPermission" /> |
Torsten Grote | 918d7a7 | 2020-09-10 09:26:55 -0300 | [diff] [blame] | 53 | |
Torsten Grote | 6e83897 | 2021-08-11 11:54:28 +0200 | [diff] [blame] | 54 | <!-- Used to authenticate saving a new recovery code --> |
| 55 | <uses-permission android:name="android.permission.USE_BIOMETRIC" /> |
| 56 | |
Torsten Grote | 1a7fc5f | 2022-11-11 17:32:03 -0300 | [diff] [blame] | 57 | <!-- 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 | |
flawedworld | b2cd3c7 | 2021-08-26 20:58:44 +0000 | [diff] [blame] | 67 | <!-- 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 Soltys | 2497a94 | 2017-09-20 22:42:15 -0400 | [diff] [blame] | 77 | <application |
Torsten Grote | 94c7663 | 2019-12-16 13:11:11 -0300 | [diff] [blame] | 78 | android:name=".App" |
Torsten Grote | 66c0919 | 2019-07-05 12:35:45 +0200 | [diff] [blame] | 79 | android:allowBackup="false" |
Steve Soltys | 2497a94 | 2017-09-20 22:42:15 -0400 | [diff] [blame] | 80 | android:icon="@mipmap/ic_launcher" |
Steve Soltys | 22db457 | 2018-11-13 18:15:21 -0500 | [diff] [blame] | 81 | android:label="@string/app_name" |
Torsten Grote | c9a2981 | 2019-09-23 16:36:31 -0300 | [diff] [blame] | 82 | android:roundIcon="@mipmap/ic_launcher_round" |
Torsten Grote | 66c0919 | 2019-07-05 12:35:45 +0200 | [diff] [blame] | 83 | android:supportsRtl="true" |
| 84 | android:theme="@style/AppTheme" |
Torsten Grote | 2434fe3 | 2019-06-03 12:23:09 -0300 | [diff] [blame] | 85 | tools:ignore="GoogleAppIndexingWarning"> |
Steve Soltys | 2497a94 | 2017-09-20 22:42:15 -0400 | [diff] [blame] | 86 | |
Torsten Grote | 2434fe3 | 2019-06-03 12:23:09 -0300 | [diff] [blame] | 87 | <activity |
Torsten Grote | b983414 | 2019-06-18 17:39:46 -0300 | [diff] [blame] | 88 | android:name=".settings.SettingsActivity" |
Torsten Grote | 579919d | 2021-10-07 17:54:35 -0300 | [diff] [blame] | 89 | android:exported="true" |
| 90 | android:permission="com.stevesoltys.seedvault.OPEN_SETTINGS" /> |
Torsten Grote | b983414 | 2019-06-18 17:39:46 -0300 | [diff] [blame] | 91 | |
| 92 | <activity |
Torsten Grote | 6d8178f | 2019-09-13 11:40:32 -0300 | [diff] [blame] | 93 | 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 Grote | 66c0919 | 2019-07-05 12:35:45 +0200 | [diff] [blame] | 105 | |
| 106 | <activity |
Torsten Grote | 491789e | 2019-09-05 17:42:39 -0300 | [diff] [blame] | 107 | android:name=".restore.RestoreActivity" |
| 108 | android:exported="true" |
| 109 | android:label="@string/restore_title" |
Torsten Grote | 579919d | 2021-10-07 17:54:35 -0300 | [diff] [blame] | 110 | android:permission="com.stevesoltys.seedvault.RESTORE_BACKUP" |
Torsten Grote | 491789e | 2019-09-05 17:42:39 -0300 | [diff] [blame] | 111 | android:theme="@style/AppTheme.NoActionBar"> |
| 112 | <intent-filter> |
Torsten Grote | 88a250f | 2019-12-06 12:33:50 -0300 | [diff] [blame] | 113 | <action android:name="com.stevesoltys.seedvault.RESTORE_BACKUP" /> |
Torsten Grote | 491789e | 2019-09-05 17:42:39 -0300 | [diff] [blame] | 114 | <category android:name="android.intent.category.DEFAULT" /> |
| 115 | </intent-filter> |
| 116 | </activity> |
| 117 | |
Steve Soltys | 22db457 | 2018-11-13 18:15:21 -0500 | [diff] [blame] | 118 | <service |
Torsten Grote | 683268a | 2019-09-02 11:45:57 -0300 | [diff] [blame] | 119 | android:name=".transport.ConfigurableBackupTransportService" |
Steve Soltys | 22db457 | 2018-11-13 18:15:21 -0500 | [diff] [blame] | 120 | android:exported="false"> |
Steve Soltys | 2497a94 | 2017-09-20 22:42:15 -0400 | [diff] [blame] | 121 | <intent-filter> |
| 122 | <action android:name="android.backup.TRANSPORT_HOST" /> |
| 123 | </intent-filter> |
| 124 | </service> |
| 125 | |
Torsten Grote | b0386c8 | 2019-09-18 09:23:46 -0300 | [diff] [blame] | 126 | <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 Grote | 2bcf82d | 2020-01-03 12:51:44 -0300 | [diff] [blame] | 137 | <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 Desai | 38f0176 | 2021-07-12 20:57:30 +0530 | [diff] [blame] | 145 | <receiver |
Torsten Grote | 7f4b565 | 2021-10-07 13:44:55 -0300 | [diff] [blame] | 146 | android:name=".SecretCodeReceiver" |
| 147 | android:exported="true"> |
Chirayu Desai | 38f0176 | 2021-07-12 20:57:30 +0530 | [diff] [blame] | 148 | <intent-filter> |
| 149 | <action android:name="android.telephony.action.SECRET_CODE" /> |
| 150 | <!-- *#*#RESTORE#*#* --> |
Torsten Grote | 579919d | 2021-10-07 17:54:35 -0300 | [diff] [blame] | 151 | <data |
| 152 | android:host="7378673" |
| 153 | android:scheme="android_secret_code" /> |
Chirayu Desai | 38f0176 | 2021-07-12 20:57:30 +0530 | [diff] [blame] | 154 | </intent-filter> |
| 155 | </receiver> |
| 156 | |
Torsten Grote | 6c633b7 | 2021-01-19 09:14:52 -0300 | [diff] [blame] | 157 | <!-- 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 Grote | bdefb04 | 2021-02-22 11:26:21 -0300 | [diff] [blame] | 169 | <!-- 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 Grote | 6c633b7 | 2021-01-19 09:14:52 -0300 | [diff] [blame] | 175 | |
Steve Soltys | 2497a94 | 2017-09-20 22:42:15 -0400 | [diff] [blame] | 176 | </application> |
| 177 | </manifest> |