diff --git a/rootdir/Android.mk b/rootdir/Android.mk index 6b87cee..e2c4b37 100644 --- a/rootdir/Android.mk +++ b/rootdir/Android.mk @@ -8,6 +8,14 @@ LOCAL_SRC_FILES := etc/init.universal7904.rc LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/init include $(BUILD_PREBUILT) +include $(CLEAR_VARS) +LOCAL_MODULE := init.usb_accessory.rc +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/init.usb_accessory.rc +LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/init +include $(BUILD_PREBUILT) + include $(CLEAR_VARS) LOCAL_MODULE := fstab.enableswap LOCAL_MODULE_TAGS := optional diff --git a/rootdir/etc/init.usb_accessory.rc b/rootdir/etc/init.usb_accessory.rc new file mode 100644 index 0000000..d66207e --- /dev/null +++ b/rootdir/etc/init.usb_accessory.rc @@ -0,0 +1,113 @@ +on early-fs + setprop sys.usb.controller 13600000.dwc3 + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && property:sys.usb.configfs=1 + write /sys/kernel/config/usb_gadget/g1/idVendor 0x04e8 + +# USB accessory configuration +on property:sys.usb.config=accessory && property:sys.usb.configfs=1 + write /sys/class/android_usb/android0/enable 0 + write /sys/kernel/config/usb_gadget/g1/idProduct 0x2d00 + write /sys/kernel/config/usb_gadget/g1/idVendor 0x18d1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/kernel/config/usb_gadget/g1/UDC ${sys.usb.controller} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +# USB accessory configuration, with adb +on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=1 + start adbd +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=accessory,adb && property:sys.usb.configfs=1 + write /sys/class/android_usb/android0/enable 0 + write /sys/kernel/config/usb_gadget/g1/idProduct 0x2d01 + write /sys/kernel/config/usb_gadget/g1/idVendor 0x18d1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/kernel/config/usb_gadget/g1/UDC ${sys.usb.controller} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +# audio accessory configuration +on property:sys.usb.config=audio_source && property:sys.usb.configfs=1 + write /sys/class/android_usb/android0/enable 0 + write /sys/kernel/config/usb_gadget/g1/idProduct 0x2d02 + write /sys/kernel/config/usb_gadget/g1/idVendor 0x18d1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/kernel/config/usb_gadget/g1/UDC ${sys.usb.controller} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +# audio accessory configuration, with adb +on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=1 + start adbd +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=1 + write /sys/class/android_usb/android0/enable 0 + write /sys/kernel/config/usb_gadget/g1/idProduct 0x2d03 + write /sys/kernel/config/usb_gadget/g1/idVendor 0x18d1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/kernel/config/usb_gadget/g1/UDC ${sys.usb.controller} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +# USB and audio accessory configuration +on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=1 + write /sys/class/android_usb/android0/enable 0 + write /sys/kernel/config/usb_gadget/g1/idProduct 0x2d04 + write /sys/kernel/config/usb_gadget/g1/idVendor 0x18d1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/kernel/config/usb_gadget/g1/UDC ${sys.usb.controller} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +# USB and audio accessory configuration, with adb +on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=1 + start adbd +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=1 + write /sys/class/android_usb/android0/enable 0 + write /sys/kernel/config/usb_gadget/g1/idProduct 0x2d05 + write /sys/kernel/config/usb_gadget/g1/idVendor 0x18d1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/kernel/config/usb_gadget/g1/UDC ${sys.usb.controller} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=midi && property:sys.usb.configfs=1 + write /sys/class/android_usb/android0/enable 0 + write /sys/kernel/config/usb_gadget/g1/idProduct 0x686C + write /sys/kernel/config/usb_gadget/g1/idVendor 0x04e8 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/kernel/config/usb_gadget/g1/UDC ${sys.usb.controller} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=midi,adb && property:sys.usb.configfs=1 + start adbd +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=midi,adb && property:sys.usb.configfs=1 + write /sys/class/android_usb/android0/enable 0 + write /sys/kernel/config/usb_gadget/g1/idProduct 0x686C + write /sys/kernel/config/usb_gadget/g1/idVendor 0x04e8 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/kernel/config/usb_gadget/g1/UDC ${sys.usb.controller} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + + on property:sys.usb.config=ncm && property:sys.usb.configfs=1 + write /sys/class/android_usb/android0/enable 0 + write /sys/kernel/config/usb_gadget/g1/idProduct 0x685d + write /sys/kernel/config/usb_gadget/g1/idVendor 0x04e8 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/kernel/config/usb_gadget/g1/bDeviceClass 2 + write /sys/kernel/config/usb_gadget/g1/UDC ${sys.usb.controller} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=ncm,adb && property:sys.usb.configfs=1 + start adbd +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ncm,adb && property:sys.usb.configfs=1 + write /sys/class/android_usb/android0/enable 0 + write /sys/kernel/config/usb_gadget/g1/idProduct 0x685d + write /sys/kernel/config/usb_gadget/g1/idVendor 0x04e8 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/kernel/config/usb_gadget/g1/bDeviceClass 2 + write /sys/kernel/config/usb_gadget/g1/UDC ${sys.usb.controller} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} diff --git a/universal7904-common.mk b/universal7904-common.mk index b28f27b..d80f3c5 100644 --- a/universal7904-common.mk +++ b/universal7904-common.mk @@ -20,6 +20,7 @@ TARGET_SCREEN_WIDTH := 1080 # Init PRODUCT_PACKAGES += \ init.universal7904.rc \ + init.usb_accessory.rc \ fstab.enableswap # Net