Loading services/core/java/com/android/server/adb/AdbService.java +26 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.debug.IAdbTransport; import android.debug.PairDevice; import android.hardware.usb.UsbManager; import android.net.Uri; import android.net.wifi.WifiManager; import android.os.Binder; import android.os.IBinder; import android.os.ParcelFileDescriptor; Loading Loading @@ -192,6 +193,7 @@ public class AdbService extends IAdbManager.Stub { @Override public void onChange(boolean selfChange, @NonNull Uri uri, @UserIdInt int userId) { Slog.d("AdbSettingsObserver", "onChange " + uri.toString()); if (mAdbUsbUri.equals(uri)) { boolean shouldEnable = (Settings.Global.getInt(mContentResolver, Settings.Global.ADB_ENABLED, 0) > 0); Loading Loading @@ -417,6 +419,28 @@ public class AdbService extends IAdbManager.Stub { } } private WifiManager.MulticastLock mAdbMulticastLock = null; private void acquireMulticastLock() { if (mAdbMulticastLock == null) { WifiManager wifiManager = (WifiManager) mContext.getApplicationContext().getSystemService(Context.WIFI_SERVICE); mAdbMulticastLock = wifiManager.createMulticastLock("AdbMulticastLock"); } if (!mAdbMulticastLock.isHeld()) { mAdbMulticastLock.acquire(); Slog.d(TAG, "Acquired multicast lock"); } } private void releaseMulticastLock() { if (mAdbMulticastLock != null && mAdbMulticastLock.isHeld()) { mAdbMulticastLock.release(); Slog.d(TAG, "Released multicast lock"); } } private void setAdbEnabled(boolean enable, byte transportType) { Slog.d(TAG, "setAdbEnabled(" + enable + "), mIsAdbUsbEnabled=" + mIsAdbUsbEnabled + ", mIsAdbWifiEnabled=" + mIsAdbWifiEnabled + ", transportType=" + transportType); Loading @@ -428,9 +452,11 @@ public class AdbService extends IAdbManager.Stub { if (mIsAdbWifiEnabled) { // Start adb over WiFi. SystemProperties.set(WIFI_PERSISTENT_CONFIG_PROPERTY, "1"); acquireMulticastLock(); } else { // Stop adb over WiFi. SystemProperties.set(WIFI_PERSISTENT_CONFIG_PROPERTY, "0"); releaseMulticastLock(); } } else { // No change Loading Loading
services/core/java/com/android/server/adb/AdbService.java +26 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.debug.IAdbTransport; import android.debug.PairDevice; import android.hardware.usb.UsbManager; import android.net.Uri; import android.net.wifi.WifiManager; import android.os.Binder; import android.os.IBinder; import android.os.ParcelFileDescriptor; Loading Loading @@ -192,6 +193,7 @@ public class AdbService extends IAdbManager.Stub { @Override public void onChange(boolean selfChange, @NonNull Uri uri, @UserIdInt int userId) { Slog.d("AdbSettingsObserver", "onChange " + uri.toString()); if (mAdbUsbUri.equals(uri)) { boolean shouldEnable = (Settings.Global.getInt(mContentResolver, Settings.Global.ADB_ENABLED, 0) > 0); Loading Loading @@ -417,6 +419,28 @@ public class AdbService extends IAdbManager.Stub { } } private WifiManager.MulticastLock mAdbMulticastLock = null; private void acquireMulticastLock() { if (mAdbMulticastLock == null) { WifiManager wifiManager = (WifiManager) mContext.getApplicationContext().getSystemService(Context.WIFI_SERVICE); mAdbMulticastLock = wifiManager.createMulticastLock("AdbMulticastLock"); } if (!mAdbMulticastLock.isHeld()) { mAdbMulticastLock.acquire(); Slog.d(TAG, "Acquired multicast lock"); } } private void releaseMulticastLock() { if (mAdbMulticastLock != null && mAdbMulticastLock.isHeld()) { mAdbMulticastLock.release(); Slog.d(TAG, "Released multicast lock"); } } private void setAdbEnabled(boolean enable, byte transportType) { Slog.d(TAG, "setAdbEnabled(" + enable + "), mIsAdbUsbEnabled=" + mIsAdbUsbEnabled + ", mIsAdbWifiEnabled=" + mIsAdbWifiEnabled + ", transportType=" + transportType); Loading @@ -428,9 +452,11 @@ public class AdbService extends IAdbManager.Stub { if (mIsAdbWifiEnabled) { // Start adb over WiFi. SystemProperties.set(WIFI_PERSISTENT_CONFIG_PROPERTY, "1"); acquireMulticastLock(); } else { // Stop adb over WiFi. SystemProperties.set(WIFI_PERSISTENT_CONFIG_PROPERTY, "0"); releaseMulticastLock(); } } else { // No change Loading