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

Commit ec213cab authored by Joël Stemmer's avatar Joël Stemmer
Browse files

Add cross-platform transfer transport flag support to LocalTransport

To enable the cross-platform transfer transport flag on the
LocalTransport, add `is_cross_platform_transfer_ios=true` to the secure
setting `backup_local_transport_parameters`.

Bug: 403956528
Test: manually tested on device
Flag: com.android.server.backup.enable_cross_platform_transfer
Change-Id: If8f651c9dd0b6553df138542d41b085c22860473
parent ebf81196
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import android.util.Base64;
import android.util.Dumpable;
import android.util.Log;

import com.android.server.backup.Flags;
import com.android.tools.r8.keepanno.annotations.KeepTarget;
import com.android.tools.r8.keepanno.annotations.UsesReflection;

@@ -197,6 +198,9 @@ public class LocalTransport extends BackupTransport {
        if (mParameters.isEncrypted()) {
            flags |= BackupAgent.FLAG_CLIENT_SIDE_ENCRYPTION_ENABLED;
        }
        if (Flags.enableCrossPlatformTransfer() && mParameters.isCrossPlatformTransferIos()) {
            flags |= BackupAgent.FLAG_CROSS_PLATFORM_DATA_TRANSFER_IOS;
        }
        return flags;
    }

+11 −0
Original line number Diff line number Diff line
@@ -35,6 +35,8 @@ public class LocalTransportParameters extends KeyValueSettingObserver {
    private static final String KEY_NON_INCREMENTAL_ONLY = "non_incremental_only";
    private static final String KEY_IS_DEVICE_TRANSFER = "is_device_transfer";
    private static final String KEY_IS_ENCRYPTED = "is_encrypted";
    private static final String KEY_IS_CROSS_PLATFORM_TRANSFER_IOS =
            "is_cross_platform_transfer_ios";
    private static final String KEY_LOG_AGENT_RESULTS = "log_agent_results";
    // This needs to be a list of package names separated by semicolons. For example:
    // "com.package1;com.package2;com.package3". We can't use commas because the base class uses
@@ -45,6 +47,7 @@ public class LocalTransportParameters extends KeyValueSettingObserver {
    private boolean mIsNonIncrementalOnly;
    private boolean mIsDeviceTransfer;
    private boolean mIsEncrypted;
    private boolean mIsCrossPlatformTransferIos;
    private boolean mLogAgentResults;
    private String mNoRestrictedModePackages;

@@ -68,6 +71,10 @@ public class LocalTransportParameters extends KeyValueSettingObserver {
        return mIsEncrypted;
    }

    boolean isCrossPlatformTransferIos() {
        return mIsCrossPlatformTransferIos;
    }

    boolean logAgentResults() {
        return mLogAgentResults;
    }
@@ -92,6 +99,8 @@ public class LocalTransportParameters extends KeyValueSettingObserver {
        mIsNonIncrementalOnly = parser.getBoolean(KEY_NON_INCREMENTAL_ONLY, /* def= */ false);
        mIsDeviceTransfer = parser.getBoolean(KEY_IS_DEVICE_TRANSFER, /* def= */ false);
        mIsEncrypted = parser.getBoolean(KEY_IS_ENCRYPTED, /* def= */ false);
        mIsCrossPlatformTransferIos =
                parser.getBoolean(KEY_IS_CROSS_PLATFORM_TRANSFER_IOS, /* def= */ false);
        mLogAgentResults = parser.getBoolean(KEY_LOG_AGENT_RESULTS, /* def= */ false);
        mNoRestrictedModePackages = parser.getString(KEY_NO_RESTRICTED_MODE_PACKAGES, /* def */ "");
    }
@@ -106,6 +115,8 @@ public class LocalTransportParameters extends KeyValueSettingObserver {
                + mIsDeviceTransfer
                + ", mIsEncrypted="
                + mIsEncrypted
                + ", mIsCrossPlatformTransferIos="
                + mIsCrossPlatformTransferIos
                + ", mLogAgentResults="
                + mLogAgentResults
                + ", noRestrictedModePackages()="