import /system/etc/init/hw/init.custom.rc on early-init # Apply strict SELinux checking of PROT_EXEC on mmap/mprotect calls. write /sys/fs/selinux/checkreqprot 0 # disable bpf for BHI write /proc/sys/kernel/unprivileged_bpf_disabled 1 on init # Set log level loglevel 3 # Create cgroup mount point for process freezer mkdir /sys/fs/cgroup/freezer mode=0750,uid=0,gid=1000 mount cgroup none /sys/fs/cgroup/freezer freezer mkdir /sys/fs/cgroup/freezer/hibernate write /sys/fs/cgroup/freezer/hibernate/freezer.state "FROZEN" # Mount debugfs for debug mount debugfs debugfs /sys/kernel/debug mode=0711 on post-fs-data # Emmc config write /sys/block/mmcblk0/queue/iostats 0 write /sys/block/mmcblk0/queue/iosched/slice_idle 0 write /sys/block/mmcblk0/queue/read_ahead_kb 2048 write /sys/block/mmcblk0/queue/nr_requests 256 # Create dump dir and collect dumps. # Do this before we mount cache so eventually we can use cache for # storing dumps on platforms which do not have a dedicated dump partition. mkdir /data/dontpanic 0750 root log # Collect apanic data, free resources and re-arm trigger copy /proc/apanic_console /data/dontpanic/apanic_console chown root log /data/dontpanic/apanic_console chmod 0640 /data/dontpanic/apanic_console copy /proc/apanic_threads /data/dontpanic/apanic_threads chown root log /data/dontpanic/apanic_threads chmod 0640 /data/dontpanic/apanic_threads mkdir /data/user_de/0 0771 system system write /proc/apanic_console 1 # Adb mkdir /data/misc/adb 02750 system shell # Symlink to bugreport storage location rm /data/bugreports mkdir /data/user_de/0 0771 system system symlink /data/user_de/0/com.android.shell/files/bugreports /data/bugreports # Samba mkdir /data/data/samba 0777 system system mkdir /data/data/samba/var 0777 system system mkdir /data/data/samba/var/tmp 0777 system system mkdir /data/data/samba/var/locks 0777 system system mkdir /data/data/samba/private 0777 system system mkdir /data/data/samba/lib 0777 system system mkdir /data/data/samba/lib/codepages 0777 system system mkdir /data/data/samba/lib/charset 0777 system system # Create directory for dhcp mkdir /data/misc/dhcp 0770 dhcp dhcp chmod 0770 /data/misc/dhcp mkdir /data/ppp 0770 radio radio chmod 0770 /data/ppp chown system system /dev/ttyAMA1 # bbox file mkdir /data/bbox_logs chmod 0770 /data/bbox_logs chown root system /data/bbox_logs restorecon_recursive /data/bbox_logs on boot # Led chown system system /sys/class/leds/red/brightness chown system system /sys/class/leds/green/brightness chown system system /sys/class/leds/blue/brightness chown system system /sys/class/leds/red/device/grpfreq chown system system /sys/class/leds/red/device/grppwm chown system system /sys/class/leds/red/device/blink # Permissions chmod 444 /proc/cmdline chmod 660 /dev/block/mmcblk0 chmod 666 /dev/mtd/mtd0 # Set this property so surfaceflinger is not started by system_init setprop system_init.startsurfaceflinger 0 # Storage setprop service.vold.status Normal setprop service.mountservice.reset 0 # Connect config setprop ro.tether.denied false # Sdcard mkdir /data/media 0770 media_rw media_rw wait /data/media/0 # Init bootup flag setprop persist.sys.bootup 1 setprop persist.sys.suspend 0 setprop persist.sys.MHLstatus close # fault_around on property:ro.lr.fault_around=* write /sys/kernel/debug/fault_around_bytes ${ro.lr.fault_around} # zram enable on property:ro.lr.zram_enable=true write /sys/block/zram0/comp_algorithm lz4 write /proc/sys/vm/page-cluster 0 swapon_all /vendor/etc/fstab.${ro.hardware} # Storage on property:vold.decrypt=trigger_default_encryption start defaultcrypto on property:vold.decrypt=trigger_encryption start surfaceflinger start encrypt on property:sys.boot_completed=1 write /sys/block/mmcblk0/queue/read_ahead_kb 128 write /sys/block/mmcblk0/queue/nr_requests 128 write /sys/block/mmcblk0/queue/iostats 1 # CTS on property:service.media.ctsrunning=true write /proc/soc/msp/sys "cts 1 " write /proc/soc/msp/sys "gts 1 " on property:service.media.ctsrunning=false write /proc/soc/msp/sys "cts 0 " write /proc/soc/msp/sys "gts 1 " # STR on property:sys.str.drop_caches=* exec /system/bin/sync write /proc/sys/vm/drop_caches ${sys.str.drop_caches} on property:sys.boot_completed=1 write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "schedutil" write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor "schedutil" # adbd is controlled via property triggers in init..usb.rc service adbd /sbin/adbd --root_seclabel=u:r:su:s0 class core socket adbd stream 660 system system disabled seclabel u:r:adbd:s0 # Network ======================================================= # ipv6 start service dhclient_eth0 /system/bin/dhclient -6 -nw -d eth0 group system dhcp wifi disabled oneshot service dhclient_eth1 /system/bin/dhclient -6 -nw -d eth1 group system dhcp wifi disabled oneshot service dhclient_wlan0 /system/bin/dhclient -6 -nw -d wlan0 group system dhcp wifi disabled oneshot service release_eth0 /system/bin/dhclient -6 -r eth0 group system dhcp wifi disabled oneshot service release_eth1 /system/bin/dhclient -6 -r eth1 group system dhcp wifi disabled oneshot service release_wlan0 /system/bin/dhclient -6 -r wlan0 group system dhcp wifi disabled oneshot # ipv6 end # Network end ======================================================= # add storage symlink on property:sys.user.0.ce_available=true symlink /storage/emulated/0 /mnt/user/0/primary # Adbd on at boot in emulator on property:ro.kernel.qemu=1 start adbd # One shot invocation to deal with encrypted volume. service defaultcrypto /system/bin/vdc --wait cryptfs mountdefaultencrypted disabled oneshot # vold will set vold.decrypt to trigger_restart_framework (default # encryption) or trigger_restart_min_framework (other encryption) service sshd /system/bin/start-ssh class main disabled service pre-recovery /system/bin/uncrypt class main disabled oneshot # add zram swap on property:ro.sys_im.lowram.zram_enable=true write /sys/block/zram0/comp_algorithm lz4 write /proc/sys/vm/page-cluster 0 swapon_all /vendor/etc/fstab.swap # for kernel memory wartermark on property:sys.sysctl.min_free_kbytes=* write /proc/sys/vm/min_free_kbytes ${sys.sysctl.min_free_kbytes} on property:sys.sysctl.watermark_boost_factor=* write /proc/sys/vm/watermark_boost_factor ${sys.sysctl.watermark_boost_factor}