Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e794ceea authored by Ruslan Tkhakokhov's avatar Ruslan Tkhakokhov
Browse files

Add a System API to block keys in KV restore

BackupManager#excludeKeysFromRestore can be used to pass a
list of keys that will be excluded from restore for the given package.
It is useful in situations when a key being restored can cause bad UX on
certain devices.

Bug: 145126096
Test: atest KeyValueRestoreExclusionHostSideTest
Change-Id: Ibbfd5e9196122c9bc3d31a3f0cc9430e433b9fd8
parent 9e111f19
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -828,6 +828,7 @@ package android.app.backup {
    method @RequiresPermission(android.Manifest.permission.BACKUP) public void backupNow();
    method @RequiresPermission(android.Manifest.permission.BACKUP) public void backupNow();
    method @RequiresPermission(android.Manifest.permission.BACKUP) public android.app.backup.RestoreSession beginRestoreSession();
    method @RequiresPermission(android.Manifest.permission.BACKUP) public android.app.backup.RestoreSession beginRestoreSession();
    method @RequiresPermission(android.Manifest.permission.BACKUP) public void cancelBackups();
    method @RequiresPermission(android.Manifest.permission.BACKUP) public void cancelBackups();
    method @RequiresPermission(android.Manifest.permission.BACKUP) public void excludeKeysFromRestore(@NonNull String, @NonNull java.util.List<java.lang.String>);
    method @RequiresPermission(android.Manifest.permission.BACKUP) public long getAvailableRestoreToken(String);
    method @RequiresPermission(android.Manifest.permission.BACKUP) public long getAvailableRestoreToken(String);
    method @RequiresPermission(android.Manifest.permission.BACKUP) public android.content.Intent getConfigurationIntent(String);
    method @RequiresPermission(android.Manifest.permission.BACKUP) public android.content.Intent getConfigurationIntent(String);
    method @RequiresPermission(android.Manifest.permission.BACKUP) public String getCurrentTransport();
    method @RequiresPermission(android.Manifest.permission.BACKUP) public String getCurrentTransport();
+3 −1
Original line number Original line Diff line number Diff line
@@ -960,7 +960,9 @@ public class BackupManager {
     *
     *
     * @hide
     * @hide
     */
     */
    public void excludeKeysFromRestore(String packageName, List<String> keys) {
    @SystemApi
    @RequiresPermission(android.Manifest.permission.BACKUP)
    public void excludeKeysFromRestore(@NonNull String packageName, @NonNull List<String> keys) {
        checkServiceBinder();
        checkServiceBinder();
        if (sService != null) {
        if (sService != null) {
            try {
            try {