Loading services/usb/java/com/android/server/usb/UsbDeviceManager.java +12 −1 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import android.os.SystemClock; import android.os.SystemProperties; import android.os.UEventObserver; import android.os.UserHandle; import android.os.UserManager; import android.os.storage.StorageManager; import android.os.storage.StorageVolume; import android.provider.Settings; Loading Loading @@ -655,6 +656,17 @@ public class UsbDeviceManager { } break; case MSG_USER_SWITCHED: { mCurrentUser = msg.arg1; UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE); if (userManager.hasUserRestriction(UserManager.DISALLOW_USB_FILE_TRANSFER)) { Slog.v(TAG, "Switched to user with DISALLOW_USB_FILE_TRANSFER restriction;" + " disabling USB."); setUsbConfig("none"); break; } final boolean mtpActive = containsFunction(mCurrentFunctions, UsbManager.USB_FUNCTION_MTP) || containsFunction(mCurrentFunctions, UsbManager.USB_FUNCTION_PTP); Loading @@ -663,7 +675,6 @@ public class UsbDeviceManager { setUsbConfig("none"); setUsbConfig(mCurrentFunctions); } mCurrentUser = msg.arg1; break; } } Loading services/usb/java/com/android/server/usb/UsbService.java +10 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import android.hardware.usb.UsbDevice; import android.os.Bundle; import android.os.ParcelFileDescriptor; import android.os.UserHandle; import android.os.UserManager; import android.util.SparseArray; import com.android.internal.annotations.GuardedBy; Loading Loading @@ -248,6 +249,15 @@ public class UsbService extends IUsbManager.Stub { @Override public void setCurrentFunction(String function, boolean makeDefault) { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.MANAGE_USB, null); // If attempt to change USB function while file transfer is restricted, ensure that // the current function is set to "none", and return. UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE); if (userManager.hasUserRestriction(UserManager.DISALLOW_USB_FILE_TRANSFER)) { if (mDeviceManager != null) mDeviceManager.setCurrentFunctions("none", false); return; } if (mDeviceManager != null) { mDeviceManager.setCurrentFunctions(function, makeDefault); } else { Loading Loading
services/usb/java/com/android/server/usb/UsbDeviceManager.java +12 −1 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import android.os.SystemClock; import android.os.SystemProperties; import android.os.UEventObserver; import android.os.UserHandle; import android.os.UserManager; import android.os.storage.StorageManager; import android.os.storage.StorageVolume; import android.provider.Settings; Loading Loading @@ -655,6 +656,17 @@ public class UsbDeviceManager { } break; case MSG_USER_SWITCHED: { mCurrentUser = msg.arg1; UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE); if (userManager.hasUserRestriction(UserManager.DISALLOW_USB_FILE_TRANSFER)) { Slog.v(TAG, "Switched to user with DISALLOW_USB_FILE_TRANSFER restriction;" + " disabling USB."); setUsbConfig("none"); break; } final boolean mtpActive = containsFunction(mCurrentFunctions, UsbManager.USB_FUNCTION_MTP) || containsFunction(mCurrentFunctions, UsbManager.USB_FUNCTION_PTP); Loading @@ -663,7 +675,6 @@ public class UsbDeviceManager { setUsbConfig("none"); setUsbConfig(mCurrentFunctions); } mCurrentUser = msg.arg1; break; } } Loading
services/usb/java/com/android/server/usb/UsbService.java +10 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import android.hardware.usb.UsbDevice; import android.os.Bundle; import android.os.ParcelFileDescriptor; import android.os.UserHandle; import android.os.UserManager; import android.util.SparseArray; import com.android.internal.annotations.GuardedBy; Loading Loading @@ -248,6 +249,15 @@ public class UsbService extends IUsbManager.Stub { @Override public void setCurrentFunction(String function, boolean makeDefault) { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.MANAGE_USB, null); // If attempt to change USB function while file transfer is restricted, ensure that // the current function is set to "none", and return. UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE); if (userManager.hasUserRestriction(UserManager.DISALLOW_USB_FILE_TRANSFER)) { if (mDeviceManager != null) mDeviceManager.setCurrentFunctions("none", false); return; } if (mDeviceManager != null) { mDeviceManager.setCurrentFunctions(function, makeDefault); } else { Loading