Restore app data in smaller batches when performing a full restoration
from a backup set, to prevent a Binder exception that causes the
process to fail entirely.
Android may encounter this exception when trying to call the
transport.startRestore() method if too many packages are involved; in
testing, 300 is an example of too many. Instead of using
IRestoreSession.restoreAll(), use restorePackages() and provide the
package names in batches of 100.
This issue reveals itself when using SeedVault with the D2D patch and
with an OS, such as stock Pixel OS, that includes an abundance of
packages. (Prior to this patch, the call to restoreAll() meant that the
framework would request data restoration for all packages installed,
even if they were not in the metadata.)
In logs, this issue appears as follows:
```
I BackupManagerService: Full restore; asking about 300 apps
W BpBinder: Large outgoing transaction of 528540 bytes, interface descriptor <uncached descriptor>, code 14
E JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 528540)
E BackupManagerService: Unable to contact transport for restore: data parcel size 528540 bytes
```
Change-Id: Ibb5bb4572d9e873beccd6056da5fe3ae4dce71c2
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Korean)
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (Korean)
Currently translated at 100.0% (179 of 179 strings)
Co-authored-by: 이정희 <daemul72@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ko/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/ko/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault storage backup
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (Galician)
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (Galician)
Currently translated at 100.0% (1 of 1 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (179 of 179 strings)
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/es/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_contactsbackup/gl/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/es/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/gl/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault contacts backup
Translation: CalyxOS/Seedvault storage backup
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (French)
Currently translated at 100.0% (170 of 170 strings)
Co-authored-by: Maxime Leroy <lisacintosh@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/fr/
Translation: CalyxOS/Seedvault
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (170 of 170 strings)
Co-authored-by: kbci_wcn <kbci_wcn@aleeas.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ca/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/ca/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault storage backup
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (Russian)
Currently translated at 98.8% (177 of 179 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (170 of 170 strings)
Co-authored-by: Егор Ермаков <eg.ermakov2016@yandex.ru>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/ru/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/ru/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault storage backup
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (Czech)
Currently translated at 97.2% (174 of 179 strings)
Translated using Weblate (Czech)
Currently translated at 96.6% (173 of 179 strings)
Translated using Weblate (Czech)
Currently translated at 99.4% (169 of 170 strings)
Co-authored-by: Micovec <jiri.vokrinek@email.cz>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/cs/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/cs/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault storage backup
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (170 of 170 strings)
Co-authored-by: Michael Bestas <mkbestas@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/el/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/el/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault storage backup
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (170 of 170 strings)
Co-authored-by: Óscar Fernández Díaz <oscfdezdz@tuta.io>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/es/
Translation: CalyxOS/Seedvault
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (170 of 170 strings)
Co-authored-by: Eric <alchemillatruth@purelymail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/zh_Hans/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault storage backup
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (170 of 170 strings)
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/he/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/he/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault storage backup
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (German)
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (German)
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (German)
Currently translated at 100.0% (170 of 170 strings)
Co-authored-by: nautilusx <translate@disroot.org>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/de/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/de/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault storage backup
Currently translated at 100.0% (17 of 17 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (179 of 179 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (170 of 170 strings)
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault/tr/
Translate-URL: https://hosted.weblate.org/projects/calyxos/seedvault_storage/tr/
Translation: CalyxOS/Seedvault
Translation: CalyxOS/Seedvault storage backup
Update the bundled privileged permissions allowlist to include the
newly-added READ_LOGS permission. Otherwise, Android will not boot
with the latest version of Seedvault bundled.
Change-Id: I10fd397c2c1b03201165d70a7e43d18642d1d236
* We already pre-fill the code on debug builds to make testing easier
* Allow screenshots too so we don't have to note down the code right away
when testing
Change-Id: Ie9cc3080616b78a6e5f9b427c080f10c146a036d
MR #151 implemented a fallback if MANAGE_DOCUMENTS is not granted,
which falls back to show a file chooser to the user to manually
select the storage root.
Document this behavior in the manifest as well, as the permission
causes some certification tests to fail (#453).
Change-Id: I3271b7969aacc014349766a022f13a00bea9ff85
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>