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

Commit f1f2c8ed authored by Jeff Sharkey's avatar Jeff Sharkey Committed by Android (Google) Code Review
Browse files

Merge "Ensure privileged APIs require runtime permission." into sc-dev

parents 258a9eff b5922c05
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.bluetooth;

import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
@@ -33,6 +34,7 @@ import android.view.accessibility.AccessibilityEvent;
 * @see #mAlert
 * @see #setupAlert()
 */
@SuppressLint("AndroidFrameworkBluetoothPermission")
public abstract class AlertActivity extends Activity implements DialogInterface.OnDismissListener,
        DialogInterface.OnCancelListener {

+123 −81
Original line number Diff line number Diff line
@@ -939,10 +939,7 @@ public class AdapterService extends Service {
     * @param device            is the remote device we wish to connect to
     * @return true if the profile is supported by both the local and remote device, false otherwise
     */
    @RequiresPermission(allOf = {
            android.Manifest.permission.BLUETOOTH_CONNECT,
            android.Manifest.permission.BLUETOOTH_PRIVILEGED,
    })
    @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)
    private boolean isSupported(ParcelUuid[] localDeviceUuids, ParcelUuid[] remoteDeviceUuids,
            int profile, BluetoothDevice device) {
        if (remoteDeviceUuids == null || remoteDeviceUuids.length == 0) {
@@ -1011,10 +1008,7 @@ public class AdapterService extends Service {
     * @param device is the device for which we are checking if any profiles are enabled
     * @return true if any profile is enabled, false otherwise
     */
    @RequiresPermission(allOf = {
            android.Manifest.permission.BLUETOOTH_CONNECT,
            android.Manifest.permission.BLUETOOTH_PRIVILEGED,
    })
    @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)
    private boolean isAnyProfileEnabled(BluetoothDevice device) {

        if (mA2dpService != null && mA2dpService.getConnectionPolicy(device)
@@ -1065,7 +1059,6 @@ public class AdapterService extends Service {
     * @return true
     */
    @RequiresPermission(allOf = {
            android.Manifest.permission.BLUETOOTH_CONNECT,
            android.Manifest.permission.BLUETOOTH_PRIVILEGED,
            android.Manifest.permission.MODIFY_PHONE_STATE,
    })
@@ -1326,9 +1319,11 @@ public class AdapterService extends Service {
        }

        @Override
        public boolean setBluetoothClass(BluetoothClass bluetoothClass) {
        public boolean setBluetoothClass(BluetoothClass bluetoothClass, AttributionSource source) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "setBluetoothClass")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return false;
            }

@@ -1357,9 +1352,11 @@ public class AdapterService extends Service {
        }

        @Override
        public boolean setIoCapability(int capability) {
        public boolean setIoCapability(int capability, AttributionSource source) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "setIoCapability")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return false;
            }

@@ -1385,9 +1382,11 @@ public class AdapterService extends Service {
        }

        @Override
        public boolean setLeIoCapability(int capability) {
        public boolean setLeIoCapability(int capability, AttributionSource source) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "setLeIoCapability")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return false;
            }

@@ -1491,9 +1490,11 @@ public class AdapterService extends Service {
        }

        @Override
        public long getDiscoveryEndMillis() {
        public long getDiscoveryEndMillis(AttributionSource source) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "getDiscoveryEndMillis")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return -1;
            }

@@ -1640,10 +1641,12 @@ public class AdapterService extends Service {
        }

        @Override
        public void generateLocalOobData(int transport, IBluetoothOobDataCallback callback) {
        public void generateLocalOobData(int transport, IBluetoothOobDataCallback callback,
                AttributionSource source) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveOrManagedUser(service,
                    TAG, "generateLocalOobData")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveOrManagedUser(service, TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return;
            }
            enforceBluetoothPrivilegedPermission(service);
@@ -1677,9 +1680,10 @@ public class AdapterService extends Service {
        }

        @Override
        public boolean canBondWithoutDialog(BluetoothDevice device) {
        public boolean canBondWithoutDialog(BluetoothDevice device, AttributionSource source) {
            AdapterService service = getService();
            if (service == null) {
            if (service == null
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return false;
            }

@@ -1690,13 +1694,11 @@ public class AdapterService extends Service {

        @Override
        public boolean removeActiveDevice(@ActiveDeviceUse int profiles,
                AttributionSource attributionSource) {
            if (!Utils.callerIsSystemOrActiveUser(TAG, "removeActiveDevice")) {
                return false;
            }

                AttributionSource source) {
            AdapterService service = getService();
            if (service == null) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return false;
            }
            return service.setActiveDevice(null, profiles);
@@ -1704,13 +1706,11 @@ public class AdapterService extends Service {

        @Override
        public boolean setActiveDevice(BluetoothDevice device, @ActiveDeviceUse int profiles,
                AttributionSource attributionSource) {
            if (!Utils.callerIsSystemOrActiveUser(TAG, "setActiveDevice")) {
                return false;
            }

                AttributionSource source) {
            AdapterService service = getService();
            if (service == null) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return false;
            }
            return service.setActiveDevice(device, profiles);
@@ -1718,9 +1718,11 @@ public class AdapterService extends Service {

        @Override
        public boolean connectAllEnabledProfiles(BluetoothDevice device,
                AttributionSource attributionSource) {
                AttributionSource source) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "connectAllEnabledProfiles")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return false;
            }

@@ -1731,9 +1733,11 @@ public class AdapterService extends Service {

        @Override
        public boolean disconnectAllEnabledProfiles(BluetoothDevice device,
                AttributionSource attributionSource) {
                AttributionSource source) {
            AdapterService service = getService();
            if (service == null | !callerIsSystemOrActiveUser(TAG, "disconnectAllEnabledProfiles")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return false;
            }

@@ -1917,9 +1921,12 @@ public class AdapterService extends Service {
        }

        @Override
        public boolean setPairingConfirmation(BluetoothDevice device, boolean accept) {
        public boolean setPairingConfirmation(BluetoothDevice device, boolean accept,
                AttributionSource source) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "setPairingConfirmation")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return false;
            }

@@ -1938,9 +1945,11 @@ public class AdapterService extends Service {
        }

        @Override
        public boolean getSilenceMode(BluetoothDevice device) {
        public boolean getSilenceMode(BluetoothDevice device, AttributionSource source) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "getSilenceMode")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return false;
            }

@@ -1951,9 +1960,12 @@ public class AdapterService extends Service {


        @Override
        public boolean setSilenceMode(BluetoothDevice device, boolean silence) {
        public boolean setSilenceMode(BluetoothDevice device, boolean silence,
                AttributionSource source) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "setSilenceMode")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return false;
            }

@@ -1977,9 +1989,12 @@ public class AdapterService extends Service {
        }

        @Override
        public boolean setPhonebookAccessPermission(BluetoothDevice device, int value) {
        public boolean setPhonebookAccessPermission(BluetoothDevice device, int value,
                AttributionSource source) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "setPhonebookAccessPermission")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return false;
            }

@@ -2003,9 +2018,12 @@ public class AdapterService extends Service {
        }

        @Override
        public boolean setMessageAccessPermission(BluetoothDevice device, int value) {
        public boolean setMessageAccessPermission(BluetoothDevice device, int value,
                AttributionSource source) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "setMessageAccessPermission")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return false;
            }

@@ -2029,9 +2047,12 @@ public class AdapterService extends Service {
        }

        @Override
        public boolean setSimAccessPermission(BluetoothDevice device, int value) {
        public boolean setSimAccessPermission(BluetoothDevice device, int value,
                AttributionSource source) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "setSimAccessPermission")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return false;
            }

@@ -2110,9 +2131,10 @@ public class AdapterService extends Service {
        }

        @Override
        public boolean factoryReset() {
        public boolean factoryReset(AttributionSource source) {
            AdapterService service = getService();
            if (service == null) {
            if (service == null
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return false;
            }

@@ -2130,10 +2152,12 @@ public class AdapterService extends Service {
        }

        @Override
        public boolean registerBluetoothConnectionCallback(IBluetoothConnectionCallback callback) {
        public boolean registerBluetoothConnectionCallback(IBluetoothConnectionCallback callback,
                AttributionSource source) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG,
                    "registerBluetoothConnectionCallback")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return false;
            }
            enforceBluetoothPrivilegedPermission(service);
@@ -2142,11 +2166,12 @@ public class AdapterService extends Service {
        }

        @Override
        public boolean unregisterBluetoothConnectionCallback(
                IBluetoothConnectionCallback callback) {
        public boolean unregisterBluetoothConnectionCallback(IBluetoothConnectionCallback callback,
                AttributionSource source) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG,
                    "unregisterBluetoothConnectionCallback")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return false;
            }
            enforceBluetoothPrivilegedPermission(service);
@@ -2154,9 +2179,11 @@ public class AdapterService extends Service {
        }

        @Override
        public void registerCallback(IBluetoothCallback callback) {
        public void registerCallback(IBluetoothCallback callback, AttributionSource source) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "registerCallback")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return;
            }

@@ -2166,10 +2193,11 @@ public class AdapterService extends Service {
        }

        @Override
        public void unregisterCallback(IBluetoothCallback callback) {
        public void unregisterCallback(IBluetoothCallback callback, AttributionSource source) {
            AdapterService service = getService();
            if (service == null || service.mCallbacks == null
                    || !callerIsSystemOrActiveUser(TAG, "unregisterCallback")) {
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return;
            }

@@ -2276,9 +2304,10 @@ public class AdapterService extends Service {
        }

        @Override
        public BluetoothActivityEnergyInfo reportActivityInfo() {
        public BluetoothActivityEnergyInfo reportActivityInfo(AttributionSource source) {
            AdapterService service = getService();
            if (service == null) {
            if (service == null
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return null;
            }

@@ -2289,9 +2318,11 @@ public class AdapterService extends Service {

        @Override
        public boolean registerMetadataListener(IBluetoothMetadataListener listener,
                BluetoothDevice device) {
                BluetoothDevice device, AttributionSource source) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "registerMetadataListener")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return false;
            }

@@ -2313,10 +2344,12 @@ public class AdapterService extends Service {
        }

        @Override
        public boolean unregisterMetadataListener(BluetoothDevice device) {
        public boolean unregisterMetadataListener(BluetoothDevice device,
                AttributionSource source) {
            AdapterService service = getService();
            if (service == null
                    || !callerIsSystemOrActiveUser(TAG, "unregisterMetadataListener")) {
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return false;
            }

@@ -2332,9 +2365,12 @@ public class AdapterService extends Service {
        }

        @Override
        public boolean setMetadata(BluetoothDevice device, int key, byte[] value) {
        public boolean setMetadata(BluetoothDevice device, int key, byte[] value,
                AttributionSource source) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "setMetadata")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return false;
            }

@@ -2347,9 +2383,12 @@ public class AdapterService extends Service {
        }

        @Override
        public byte[] getMetadata(BluetoothDevice device, int key) {
        public byte[] getMetadata(BluetoothDevice device, int key,
                AttributionSource source) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "getMetadata")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return null;
            }

@@ -2359,16 +2398,19 @@ public class AdapterService extends Service {
        }

        @Override
        public void requestActivityInfo(ResultReceiver result) {
        public void requestActivityInfo(ResultReceiver result, AttributionSource source) {
            Bundle bundle = new Bundle();
            bundle.putParcelable(BatteryStats.RESULT_RECEIVER_CONTROLLER_KEY, reportActivityInfo());
            bundle.putParcelable(BatteryStats.RESULT_RECEIVER_CONTROLLER_KEY,
                    reportActivityInfo(source));
            result.send(0, bundle);
        }

        @Override
        public void onLeServiceUp() {
        public void onLeServiceUp(AttributionSource source) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "onLeServiceUp")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return;
            }

@@ -2378,9 +2420,11 @@ public class AdapterService extends Service {
        }

        @Override
        public void onBrEdrDown() {
        public void onBrEdrDown(AttributionSource source) {
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "onBrEdrDown")) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return;
            }

@@ -2691,7 +2735,6 @@ public class AdapterService extends Service {
     * @return false if profiles value is not one of the constants we accept, true otherwise
     */
    @RequiresPermission(allOf = {
            android.Manifest.permission.BLUETOOTH_CONNECT,
            android.Manifest.permission.BLUETOOTH_PRIVILEGED,
            android.Manifest.permission.MODIFY_PHONE_STATE,
    })
@@ -2749,7 +2792,6 @@ public class AdapterService extends Service {
     * @return true if all profiles successfully connected, false if an error occurred
     */
    @RequiresPermission(allOf = {
            android.Manifest.permission.BLUETOOTH_CONNECT,
            android.Manifest.permission.BLUETOOTH_PRIVILEGED,
            android.Manifest.permission.MODIFY_PHONE_STATE,
    })
+11 −4
Original line number Diff line number Diff line
@@ -942,12 +942,12 @@ public class GattService extends ProfileService {
        }

        @Override
        public void getOwnAddress(int advertiserId) {
        public void getOwnAddress(int advertiserId, AttributionSource attributionSource) {
            GattService service = getService();
            if (service == null) {
                return;
            }
            service.getOwnAddress(advertiserId);
            service.getOwnAddress(advertiserId, attributionSource);
        }

        @Override
@@ -2523,8 +2523,15 @@ public class GattService extends ProfileService {
        mAdvertiseManager.stopAdvertisingSet(callback);
    }

    @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)
    void getOwnAddress(int advertiserId) {
    @RequiresPermission(allOf = {
            android.Manifest.permission.BLUETOOTH_ADVERTISE,
            android.Manifest.permission.BLUETOOTH_PRIVILEGED,
    })
    void getOwnAddress(int advertiserId, AttributionSource attributionSource) {
        if (!Utils.checkAdvertisePermissionForDataDelivery(
                this, attributionSource, "GattService getOwnAddress")) {
            return;
        }
        enforcePrivilegedPermission();
        mAdvertiseManager.getOwnAddress(advertiserId);
    }
+9 −9
Original line number Diff line number Diff line
@@ -184,7 +184,7 @@ public class AdapterServiceTest {
        mAdapterService.attach(mMockContext, null, null, null, mApplication, null);

        mAdapterService.onCreate();
        mServiceBinder.registerCallback(mIBluetoothCallback);
        mServiceBinder.registerCallback(mIBluetoothCallback, mAttributionSource);

        Config.init(mMockContext);

@@ -194,7 +194,7 @@ public class AdapterServiceTest {

    @After
    public void tearDown() {
        mServiceBinder.unregisterCallback(mIBluetoothCallback);
        mServiceBinder.unregisterCallback(mIBluetoothCallback, mAttributionSource);
        mAdapterService.cleanup();
        Config.init(InstrumentationRegistry.getTargetContext());
    }
@@ -227,7 +227,7 @@ public class AdapterServiceTest {
        verifyStateChange(BluetoothAdapter.STATE_BLE_TURNING_ON, BluetoothAdapter.STATE_BLE_ON,
                invocationNumber + 1, NATIVE_INIT_MS);

        mServiceBinder.onLeServiceUp();
        mServiceBinder.onLeServiceUp(mAttributionSource);

        verifyStateChange(BluetoothAdapter.STATE_BLE_ON, BluetoothAdapter.STATE_TURNING_ON,
                invocationNumber + 1, CONTEXT_SWITCH_MS);
@@ -275,7 +275,7 @@ public class AdapterServiceTest {
        verifyStateChange(BluetoothAdapter.STATE_TURNING_OFF, BluetoothAdapter.STATE_BLE_ON,
                invocationNumber + 1, PROFILE_SERVICE_TOGGLE_TIME_MS);

        mServiceBinder.onBrEdrDown();
        mServiceBinder.onBrEdrDown(mAttributionSource);

        verifyStateChange(BluetoothAdapter.STATE_BLE_ON, BluetoothAdapter.STATE_BLE_TURNING_OFF,
                invocationNumber + 1, CONTEXT_SWITCH_MS);
@@ -389,7 +389,7 @@ public class AdapterServiceTest {
        verifyStateChange(BluetoothAdapter.STATE_TURNING_OFF, BluetoothAdapter.STATE_BLE_ON, 1,
                CONTEXT_SWITCH_MS);

        mServiceBinder.onBrEdrDown();
        mServiceBinder.onBrEdrDown(mAttributionSource);

        verifyStateChange(BluetoothAdapter.STATE_BLE_ON, BluetoothAdapter.STATE_BLE_TURNING_OFF, 1,
                CONTEXT_SWITCH_MS);
@@ -424,7 +424,7 @@ public class AdapterServiceTest {
        verifyStateChange(BluetoothAdapter.STATE_BLE_TURNING_ON, BluetoothAdapter.STATE_BLE_ON, 1,
                NATIVE_INIT_MS);

        mServiceBinder.onLeServiceUp();
        mServiceBinder.onLeServiceUp(mAttributionSource);

        verifyStateChange(BluetoothAdapter.STATE_BLE_ON, BluetoothAdapter.STATE_TURNING_ON, 1,
                CONTEXT_SWITCH_MS);
@@ -656,7 +656,7 @@ public class AdapterServiceTest {
        byte[] obfuscatedAddress1 = mAdapterService.obfuscateAddress(device);
        Assert.assertTrue(obfuscatedAddress1.length > 0);
        Assert.assertFalse(isByteArrayAllZero(obfuscatedAddress1));
        mServiceBinder.factoryReset();
        mServiceBinder.factoryReset(mAttributionSource);
        byte[] obfuscatedAddress2 = mAdapterService.obfuscateAddress(device);
        Assert.assertTrue(obfuscatedAddress2.length > 0);
        Assert.assertFalse(isByteArrayAllZero(obfuscatedAddress2));
@@ -668,7 +668,7 @@ public class AdapterServiceTest {
        Assert.assertFalse(isByteArrayAllZero(obfuscatedAddress3));
        Assert.assertArrayEquals(obfuscatedAddress3,
                obfuscatedAddress2);
        mServiceBinder.factoryReset();
        mServiceBinder.factoryReset(mAttributionSource);
        byte[] obfuscatedAddress4 = mAdapterService.obfuscateAddress(device);
        Assert.assertTrue(obfuscatedAddress4.length > 0);
        Assert.assertFalse(isByteArrayAllZero(obfuscatedAddress4));
@@ -692,7 +692,7 @@ public class AdapterServiceTest {
        Assert.assertFalse(isByteArrayAllZero(obfuscatedAddress1));
        Assert.assertArrayEquals(obfuscateInJava(metricsSalt1, device),
                obfuscatedAddress1);
        mServiceBinder.factoryReset();
        mServiceBinder.factoryReset(mAttributionSource);
        tearDown();
        setUp();
        // Cannot verify metrics salt since it is not written to disk until native cleanup