summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/usb/java/com/android/server/usb/UsbDeviceManager.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/services/usb/java/com/android/server/usb/UsbDeviceManager.java b/services/usb/java/com/android/server/usb/UsbDeviceManager.java
index 15c8b135d2c4..c65f7844f201 100644
--- a/services/usb/java/com/android/server/usb/UsbDeviceManager.java
+++ b/services/usb/java/com/android/server/usb/UsbDeviceManager.java
@@ -70,6 +70,7 @@ import android.os.Looper;
import android.os.Message;
import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
+import android.os.SELinux;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.os.UEventObserver;
@@ -161,6 +162,11 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser
private static final String MIDI_ALSA_PATH =
"/sys/class/android_usb/android0/f_midi/alsa";
+ /**
+ * The minimum SELinux genfs labels version that supports udc sysfs genfs context.
+ */
+ private static final int MIN_SELINUX_GENFS_LABELS_VERSION = 202404;
+
private static final int MSG_UPDATE_STATE = 0;
private static final int MSG_ENABLE_ADB = 1;
private static final int MSG_SET_CURRENT_FUNCTIONS = 2;
@@ -445,7 +451,8 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser
mEnableUdcSysfsUsbStateUpdate =
android.hardware.usb.flags.Flags.enableUdcSysfsUsbStateUpdate()
- && context.getResources().getBoolean(R.bool.config_enableUdcSysfsUsbStateUpdate);
+ && context.getResources().getBoolean(R.bool.config_enableUdcSysfsUsbStateUpdate)
+ && SELinux.getGenfsLabelsVersion() > MIN_SELINUX_GENFS_LABELS_VERSION;
if (mEnableUdcSysfsUsbStateUpdate) {
mUEventObserver.startObserving(UDC_SUBSYS_MATCH);