Merge f580273735c0b9b9d4893e9d93bb4ca44a4aebaa on remote branch
Change-Id: I099f7cc6a6ec85023388de9f1bdd09375c26f027
diff --git a/etc/Android.bp b/etc/Android.bp
index e90b151..fbb2503 100644
--- a/etc/Android.bp
+++ b/etc/Android.bp
@@ -23,3 +23,10 @@
src: "init.qti.usb.debug.sh",
vendor: true,
}
+
+prebuilt_etc {
+ name: "init.qti.usb.qmaa.rc",
+ src: "init.qti.usb.qmaa.rc",
+ vendor: true,
+ sub_dir: "init",
+}
diff --git a/etc/init.qti.usb.qmaa.rc b/etc/init.qti.usb.qmaa.rc
new file mode 100644
index 0000000..c56dee4
--- /dev/null
+++ b/etc/init.qti.usb.qmaa.rc
@@ -0,0 +1,32 @@
+# Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+# SPDX-License-Identifier: BSD-3-Clause-Clear
+
+on init
+ mount configfs none /config
+ mkdir /config/usb_gadget/g1 0770
+ mkdir /config/usb_gadget/g1/strings/0x409 0770
+ write /config/usb_gadget/g1/bcdUSB 0x0200
+ write /config/usb_gadget/g1/os_desc/use 1
+ write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
+ write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
+ write /config/usb_gadget/g1/strings/0x409/product ${ro.product.name}
+ mkdir /config/usb_gadget/g1/functions/ffs.adb
+ mkdir /config/usb_gadget/g1/configs/b.1 0770
+ mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770
+ write /config/usb_gadget/g1/configs/b.1/MaxPower 900
+ write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
+ write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
+ mkdir /dev/usb-ffs 0775 shell system
+ mkdir /dev/usb-ffs/adb 0770 shell system
+ mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=1000,rmode=0770,fmode=0660
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb"
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1
+ write /config/usb_gadget/g1/idVendor 0x18d1
+ write /config/usb_gadget/g1/idProduct 0x4ee7
+ symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
+ start adbd
+ setprop sys.usb.configfs -1
+
+on property:sys.usb.ffs.ready=1
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state adb
diff --git a/vendor_product.mk b/vendor_product.mk
index 82df4e2..e3ced91 100644
--- a/vendor_product.mk
+++ b/vendor_product.mk
@@ -1,24 +1,3 @@
-# USB init scripts
-PRODUCT_PACKAGES += init.qcom.usb.rc init.qcom.usb.sh
-
-# additional debugging on userdebug/eng builds
-ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
- PRODUCT_PACKAGES += init.qti.usb.debug.sh
- PRODUCT_PACKAGES += init.qti.usb.debug.rc
-endif
-
-ifneq ($(TARGET_KERNEL_VERSION),$(filter $(TARGET_KERNEL_VERSION),4.9 4.14))
- PRODUCT_PACKAGES += android.hardware.usb@1.2-service-qti
-endif
-
-ifneq ($(filter taro kalama,$(TARGET_BOARD_PLATFORM)),)
- PRODUCT_PROPERTY_OVERRIDES += vendor.usb.use_gadget_hal=1
- PRODUCT_PACKAGES += android.hardware.usb.gadget@1.1-service-qti
- PRODUCT_PACKAGES += usb_compositions.conf
-else
- PRODUCT_PROPERTY_OVERRIDES += vendor.usb.use_gadget_hal=0
-endif
-
#
# Default property overrides for various function configurations
# These can be further overridden at runtime in init*.rc files as needed
@@ -49,3 +28,37 @@
PRODUCT_PROPERTY_OVERRIDES += vendor.usb.use_ffs_mtp=0
endif
+ifneq ($(TARGET_KERNEL_VERSION),$(filter $(TARGET_KERNEL_VERSION),4.9 4.14))
+ PRODUCT_PACKAGES += android.hardware.usb@1.2-service-qti
+endif
+
+USB_USES_QMAA = $(TARGET_USES_QMAA)
+ifeq ($(TARGET_USES_QMAA_OVERRIDE_USB),true)
+ USB_USES_QMAA = false
+endif
+
+# USB init scripts
+ifeq ($(USB_USES_QMAA),true)
+ PRODUCT_PACKAGES += init.qti.usb.qmaa.rc
+else
+ PRODUCT_PACKAGES += init.qcom.usb.rc init.qcom.usb.sh
+
+ #
+ # USB Gadget HAL is enabled on newer targets and takes the place
+ # of the init-based configfs rules for setting USB compositions
+ #
+ ifneq ($(filter taro kalama,$(TARGET_BOARD_PLATFORM)),)
+ PRODUCT_PROPERTY_OVERRIDES += vendor.usb.use_gadget_hal=1
+ PRODUCT_PACKAGES += android.hardware.usb.gadget@1.1-service-qti
+ PRODUCT_PACKAGES += usb_compositions.conf
+ else
+ PRODUCT_PROPERTY_OVERRIDES += vendor.usb.use_gadget_hal=0
+ endif
+
+endif
+
+# additional debugging on userdebug/eng builds
+ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
+ PRODUCT_PACKAGES += init.qti.usb.debug.sh
+ PRODUCT_PACKAGES += init.qti.usb.debug.rc
+endif