import /init.recovery.${ro.hardware}.rc on early-init start ueventd start healthd on init export ANDROID_ROOT /system export ANDROID_DATA /data export EXTERNAL_STORAGE /sdcard symlink /system/etc /etc mkdir /sdcard mkdir /system mkdir /data mkdir /cache mkdir /sideload mount tmpfs tmpfs /tmp chown root shell /tmp chmod 0775 /tmp mkdir /mnt 0775 root system mkdir /storage 0050 root sdcard_r mount tmpfs tmpfs /storage mode=0050,uid=0,gid=1028 # See storage config details at http://source.android.com/tech/storage/ mkdir /mnt/shell 0700 shell shell # Directory for putting things only root should see. mkdir /mnt/secure 0700 root root # Create private mountpoint so we can MS_MOVE from staging mount tmpfs tmpfs /mnt/secure mode=0700,uid=0,gid=0 # Directory for staging bindmounts mkdir /mnt/secure/staging 0700 root root # Fuse public mount points. mkdir /mnt/fuse 0700 root system mount tmpfs tmpfs /mnt/fuse mode=0775,gid=1000 write /proc/sys/kernel/panic_on_oops 1 write /proc/sys/vm/max_map_count 1000000 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 D001 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 # Load properties from /system/ + /factory after fs mount. on load_system_props_action load_system_props on load_persist_props_action load_persist_props on firmware_mounts_complete rm /dev/.booting # 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_system_props_action # Vendor init lives here trigger load_persist_props_action # Remove a file to wake up anything waiting for firmware trigger firmware_mounts_complete trigger early-boot trigger boot on property:sys.powerctl=* powerctl ${sys.powerctl} 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 seclabel u:r:recovery:s0 service setup_adbd /sbin/setup_adbd oneshot seclabel u:r:recovery:s0 disabled 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 service vold /sbin/minivold \ --blkid_context=u:r:blkid:s0 --blkid_untrusted_context=u:r:blkid_untrusted:s0 \ --fsck_context=u:r:fsck:s0 --fsck_untrusted_context=u:r:fsck_untrusted:s0 socket vold stream 0660 root mount socket cryptd stream 0660 root mount ioprio be 2 setenv BLKID_FILE /tmp/vold_blkid.tab # setup_adbd will start adb once it has checked the keys on property:ro.debuggable=1 start setup_adbd on property:service.adb.root=1 write /sys/class/android_usb/android0/enable 0 restart adbd write /sys/class/android_usb/android0/enable 1 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}