summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etc/init.rc30
1 files changed, 27 insertions, 3 deletions
diff --git a/etc/init.rc b/etc/init.rc
index a675a4b0c..e2b4236dd 100644
--- a/etc/init.rc
+++ b/etc/init.rc
@@ -31,8 +31,32 @@ service recovery /sbin/recovery
service adbd /sbin/adbd recovery
disabled
-on property:persist.service.adb.enable=1
+on property:persist.sys.usb.config=*
+ setprop sys.usb.config $persist.sys.usb.config
+
+#one of the following property triggers will enable adb if it is enabled in regular operation
+
+on property:sys.usb.config=mass_storage,adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 18d1
+ write /sys/class/android_usb/android0/idProduct Fec0
+ write /sys/class/android_usb/android0/functions $sys.usb.config
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+
+on property:sys.usb.config=mtp,adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 18d1
+ write /sys/class/android_usb/android0/idProduct Fec0
+ write /sys/class/android_usb/android0/functions $sys.usb.config
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+
+on property:sys.usb.config=ptp,adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 18d1
+ write /sys/class/android_usb/android0/idProduct Fec0
+ write /sys/class/android_usb/android0/functions $sys.usb.config
+ write /sys/class/android_usb/android0/enable 1
start adbd
-on property:persist.service.adb.enable=0
- stop adbd