You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

227 lines
6.8 KiB

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.<platform>.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}