In most cases MTP is enabled so it is better to start our init.rc with MTP enabled and try not to toggle USB IDs during TWRP boot so that we can keep adb running to make debugging easier. Change-Id: Idf122c5ad4deeef7e1ed775d495989c502ddfb19
137 lines
3.8 KiB
Plaintext
137 lines
3.8 KiB
Plaintext
import /init.recovery.${ro.hardware}.rc
|
|
|
|
on early-init
|
|
# Apply strict SELinux checking of PROT_EXEC on mmap/mprotect calls.
|
|
write /sys/fs/selinux/checkreqprot 0
|
|
|
|
# Set the security context for the init process.
|
|
# This should occur before anything else (e.g. ueventd) is started.
|
|
setcon u:r:init:s0
|
|
|
|
start ueventd
|
|
start healthd
|
|
|
|
service set_permissive /sbin/toolbox setenforce 0
|
|
oneshot
|
|
seclabel u:r:recovery:s0
|
|
|
|
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
|
|
mkdir /sideload
|
|
mount tmpfs tmpfs /tmp
|
|
|
|
chown root shell /tmp
|
|
chmod 0775 /tmp
|
|
|
|
write /proc/sys/kernel/panic_on_oops 1
|
|
|
|
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 4EE2
|
|
write /sys/class/android_usb/android0/f_ffs/aliases adb
|
|
write /sys/class/android_usb/android0/functions mtp,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
|
|
|
|
# Load properties from /system/ + /factory after fs mount.
|
|
on load_all_props_action
|
|
load_all_props
|
|
|
|
# Mount filesystems and start core system services.
|
|
on late-init
|
|
trigger early-fs
|
|
trigger fs
|
|
trigger post-fs
|
|
trigger post-fs-data
|
|
|
|
# Load properties from /system/ + /factory after fs mount. Place
|
|
# this in another action so that the load will be scheduled after the prior
|
|
# issued fs triggers have completed.
|
|
trigger load_all_props_action
|
|
|
|
trigger early-boot
|
|
trigger boot
|
|
|
|
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 ${sys.usb.config}
|
|
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
|
|
seclabel u:r:ueventd:s0
|
|
|
|
service healthd /sbin/healthd -r
|
|
critical
|
|
seclabel u:r:healthd:s0
|
|
|
|
service recovery /sbin/recovery
|
|
|
|
service adbd /sbin/adbd --root_seclabel=u:r:su:s0 --device_banner=recovery
|
|
disabled
|
|
socket adbd stream 660 system system
|
|
seclabel u:r:adbd:s0
|
|
|
|
# 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
|