From 810915add51ae2e7d853aa04d3fc4b538ed09835 Mon Sep 17 00:00:00 2001 From: Jimmy Hu Date: Wed, 30 Jun 2021 10:18:04 +0800 Subject: [PATCH] Update USB HAL version early USB API could be used before USB HAL version is updated. Update USB HAL version early and log it. Bug: 180711938 Test: USB HAL version updated normally Signed-off-by: Jimmy Hu Change-Id: If63c848e9643e9144662f031c981fad16d0a0fd6 --- .../DevicePolicyManagerService.java | 4 +-- .../android/server/usb/UsbPortManager.java | 28 +++++-------------- 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index e553075580c4b..fd71d1bc1c382 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -17557,9 +17557,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { } final boolean usbEnabled; synchronized (getLockObject()) { - final ActiveAdmin admin = getDeviceOwnerOrProfileOwnerOfOrganizationOwnedDeviceLocked( - UserHandle.USER_SYSTEM); - usbEnabled = admin != null && admin.mUsbDataSignalingEnabled; + usbEnabled = isUsbDataSignalingEnabledInternalLocked(); } if (!mInjector.binderWithCleanCallingIdentity( () -> mInjector.getUsbManager().enableUsbDataSignal(usbEnabled))) { diff --git a/services/usb/java/com/android/server/usb/UsbPortManager.java b/services/usb/java/com/android/server/usb/UsbPortManager.java index d6c046921c57f..ec28040f82d8c 100644 --- a/services/usb/java/com/android/server/usb/UsbPortManager.java +++ b/services/usb/java/com/android/server/usb/UsbPortManager.java @@ -385,29 +385,16 @@ public class UsbPortManager { * @param none */ private void updateUsbHalVersion() { - android.hardware.usb.V1_3.IUsb usbProxy_V1_3 = - android.hardware.usb.V1_3.IUsb.castFrom(mProxy); - if (usbProxy_V1_3 != null) { + if (android.hardware.usb.V1_3.IUsb.castFrom(mProxy) != null) { mCurrentUsbHalVersion = UsbManager.USB_HAL_V1_3; - return; - } - - android.hardware.usb.V1_2.IUsb usbProxy_V1_2 = - android.hardware.usb.V1_2.IUsb.castFrom(mProxy); - if (usbProxy_V1_2 != null) { + } else if (android.hardware.usb.V1_2.IUsb.castFrom(mProxy) != null) { mCurrentUsbHalVersion = UsbManager.USB_HAL_V1_2; - return; - } - - android.hardware.usb.V1_1.IUsb usbProxy_V1_1 = - android.hardware.usb.V1_1.IUsb.castFrom(mProxy); - if (usbProxy_V1_1 != null) { + } else if (android.hardware.usb.V1_1.IUsb.castFrom(mProxy) != null) { mCurrentUsbHalVersion = UsbManager.USB_HAL_V1_1; - return; + } else { + mCurrentUsbHalVersion = UsbManager.USB_HAL_V1_0; } - - mCurrentUsbHalVersion = UsbManager.USB_HAL_V1_0; - return; + logAndPrint(Log.INFO, null, "USB HAL version: " + mCurrentUsbHalVersion); } public void setPortRoles(String portId, int newPowerRole, int newDataRole, @@ -850,7 +837,7 @@ public class UsbPortManager { mProxy.linkToDeath(new DeathRecipient(pw), USB_HAL_DEATH_COOKIE); mProxy.setCallback(mHALCallback); mProxy.queryPortStatus(); - mCurrentUsbHalVersion = UsbManager.USB_HAL_V1_0; + updateUsbHalVersion(); } catch (NoSuchElementException e) { logAndPrintException(pw, "connectToProxy: usb hal service not found." + " Did the service fail to start?", e); @@ -1183,7 +1170,6 @@ public class UsbPortManager { case MSG_SYSTEM_READY: { mNotificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); - updateUsbHalVersion(); break; } }