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

Commit 482900c1 authored by William Hester's avatar William Hester
Browse files

Ensure that adbd is stopped explicitly before re-enabling it

Simply putting the Global setting and waiting for the ContentObserver
created a race condition, where reading the updated setting may skip
reading the value that triggered the change. In this case, it meant that
we never toggled off ADB. This explicitly disables and kills ADB before
re-enabling it.

Bug: 150721793
Test: Manually, running adb shell cmd testharness enable on user and
userdebug builds

Change-Id: Ic2b3aadbadc2bfe52440066aa98f9a2238ae3bb9
parent 7c33cc55
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.pm.UserInfo;
import android.debug.AdbManagerInternal;
import android.debug.AdbTransportType;
import android.location.LocationManager;
import android.os.BatteryManager;
import android.os.Binder;
@@ -164,6 +165,10 @@ public class TestHarnessModeService extends SystemService {
        // Stop ADB before we enable it, otherwise on userdebug/eng builds, the keys won't have
        // registered with adbd, and it will prompt the user to confirm the keys.
        Settings.Global.putInt(cr, Settings.Global.ADB_ENABLED, 0);
        AdbManagerInternal adbManager = LocalServices.getService(AdbManagerInternal.class);
        if (adbManager.isAdbEnabled(AdbTransportType.USB)) {
            adbManager.stopAdbdForTransport(AdbTransportType.USB);
        }

        // Disable the TTL for ADB keys before enabling ADB
        Settings.Global.putLong(cr, Settings.Global.ADB_ALLOWED_CONNECTION_TIME, 0);