In kernel 3.10, f_adb has been removed and adbd can use functionfs instead. Mount functionfs on boot for adbd. On older kernels, mount will fail silently and adbd will revert to f_adb. Change-Id: I5db57aaf35b35859ea88c7d0e0661d8c553e5811
102 lines
2.8 KiB
Plaintext
102 lines
2.8 KiB
Plaintext
import /init.recovery.${ro.hardware}.rc
|
|
|
|
on early-init
|
|
start ueventd
|
|
start healthd
|
|
|
|
on init
|
|
export PATH /sbin:/system/bin
|
|
export LD_LIBRARY_PATH .:/sbin
|
|
export ANDROID_ROOT /system
|
|
export ANDROID_DATA /data
|
|
export EXTERNAL_STORAGE /sdcard
|
|
|
|
mkdir /boot
|
|
mkdir /recovery
|
|
mkdir /system
|
|
mkdir /data
|
|
mkdir /cache
|
|
mount tmpfs tmpfs /tmp
|
|
|
|
chown root shell /tmp
|
|
chmod 0775 /tmp
|
|
|
|
on fs
|
|
mkdir /dev/usb-ffs 0770 shell shell
|
|
mkdir /dev/usb-ffs/adb 0770 shell shell
|
|
mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
|
|
|
|
write /sys/class/android_usb/android0/enable 0
|
|
write /sys/class/android_usb/android0/idVendor 18D1
|
|
write /sys/class/android_usb/android0/idProduct D002
|
|
write /sys/class/android_usb/android0/f_ffs/aliases adb
|
|
write /sys/class/android_usb/android0/functions adb
|
|
write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer}
|
|
write /sys/class/android_usb/android0/iProduct ${ro.product.model}
|
|
write /sys/class/android_usb/android0/iSerial ${ro.serialno}
|
|
|
|
|
|
on boot
|
|
|
|
ifup lo
|
|
hostname localhost
|
|
domainname localdomain
|
|
|
|
class_start default
|
|
|
|
on property:sys.powerctl=*
|
|
powerctl ${sys.powerctl}
|
|
|
|
on property:sys.storage.ums_enabled=1
|
|
write /sys/class/android_usb/android0/enable 0
|
|
write /sys/class/android_usb/android0/functions adb,mass_storage
|
|
write /sys/class/android_usb/android0/enable 1
|
|
|
|
on property:sys.storage.ums_enabled=0
|
|
write /sys/class/android_usb/android0/enable 0
|
|
write /sys/class/android_usb/android0/functions adb
|
|
write /sys/class/android_usb/android0/enable ${service.adb.root}
|
|
|
|
on property:sys.usb.config=none
|
|
stop adbd
|
|
write /sys/class/android_usb/android0/enable 0
|
|
write /sys/class/android_usb/android0/bDeviceClass 0
|
|
|
|
on property:sys.usb.config=mtp,adb
|
|
stop adbd
|
|
write /sys/class/android_usb/android0/enable 0
|
|
write /sys/class/android_usb/android0/functions mtp,adb
|
|
write /sys/class/android_usb/android0/enable 1
|
|
start adbd
|
|
|
|
on property:sys.usb.config=adb
|
|
stop adbd
|
|
write /sys/class/android_usb/android0/enable 0
|
|
write /sys/class/android_usb/android0/functions adb
|
|
write /sys/class/android_usb/android0/enable ${service.adb.root}
|
|
start adbd
|
|
|
|
service ueventd /sbin/ueventd
|
|
critical
|
|
|
|
service healthd /sbin/healthd -n
|
|
critical
|
|
|
|
service recovery /sbin/recovery
|
|
|
|
service adbd /sbin/adbd recovery
|
|
disabled
|
|
socket adbd stream 660 system system
|
|
|
|
# Always start adbd on userdebug and eng builds
|
|
on property:ro.debuggable=1
|
|
#write /sys/class/android_usb/android0/enable 1
|
|
#start adbd
|
|
setprop service.adb.root 1
|
|
|
|
# Restart adbd so it can run as root
|
|
on property:service.adb.root=1
|
|
write /sys/class/android_usb/android0/enable 0
|
|
restart adbd
|
|
write /sys/class/android_usb/android0/enable 1
|