import init.dragon.usb.rc
on early-init
mount debugfs /sys/kernel/debug /sys/kernel/debug mode=755
on init
symlink /sdcard /storage/sdcard0
# Setup zram options
write /sys/block/zram0/comp_algorithm lz4
write /sys/block/zram0/max_comp_streams 4
setprop ro.hardware.gralloc tegra
setprop ro.hardware.hwcomposer drm
setprop hwc.drm.device /dev/dri/card1
setprop persist.tegra.compression off
setprop persist.tegra.decompression disabled
setprop ro.radio.noril yes
setprop persist.tegra.nvblit.engine gpu
# GL driver parameters for tiled cache size and efficient tex fetch
setprop persist.tegra.0x523dc5 0x3f000000
setprop persist.tegra.58027529 0x00000002
setprop persist.tegra.a3456abe 0x087f6080
# fix navigation bar not showing
setprop qemu.hw.mainkeys 0
start watchdogd
on late-init
# Setting slice_idle to 0 for CFQ, so make sure the scheduler is CFQ.
write /sys/block/mmcblk0/queue/scheduler cfq
write /sys/block/mmcblk0/queue/iosched/slice_idle 0
# enable rcu_expedited
write /sys/kernel/rcu_expedited 1
on early-boot
# Update dm-verity state and set partition.*.verified properties
verity_update_state
# Set watchdog timer to 30 seconds and pet it every 10 seconds to get a 20 second margin
service watchdogd /sbin/watchdogd 10 20
class core
seclabel u:r:watchdogd:s0
on post-fs
# Turn on swap
swapon_all /fstab.dragon
# Swap in only 1 page at a time
write /proc/sys/vm/page-cluster 0
on post-fs-data
# Now that are booted all the way and out of mount panics, ensure that we panic on later errors.
# This is a hack to work around the fact that we can't recover from all errors that would lead to a panic
# during the initial mount (http://b/17382778), yet we need to panic on emmc errors (http://b/17640053)
# For a remount only the flags and the target mount point are relevant.
mount dummy dummy /data remount nosuid nodev noatime rw seclabel,background_gc=on,user_xattr,acl,errors=panic
mkdir /data/nvcam 0700 media camera
mkdir /data/misc/camera 0700 media camera
# NFC: create data/nfc for nv storage
mkdir /data/nfc 0770 nfc nfc
mkdir /data/nfc/param 0770 nfc nfc
# secure os storage
mkdir /data/ss 0700 system system
mkdir /data/ss/tlk 0700 system system
# secure os storage
mkdir /data/ss 0700 system system
# modem init
mkdir /data/qcks 0770 system system
mkdir /data/efs 0771 system system
mkdir /data/qcks/mdm 0770 system system
# crash_collector
mkdir /data/system/crash_reports 0700 system system
# EC/charger logs
mkdir /data/misc/fw_logs 0755 root root
# touch firmware updater logs
mkdir /data/misc/touchfwup 0755 root log
# initialize region info
exec -- /system/bin/init_regions.sh
setprop vold.post_fs_data_done 1
on boot
# power down interface
write /sys/class/rfkill/rfkill0/state 0
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor interactive
write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor interactive
write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor interactive
write /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor interactive
# (crosbug.com/p/46057) : Limit min frequency to 204Mhz for audio latency
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 204000
write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 204000
write /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 204000
write /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq 204000
restorecon_recursive /sys/devices/system/cpu/cpufreq/interactive
chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_rate
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/timer_rate
chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_slack
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/timer_slack
chown system system /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
chown system system /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
chown system system /sys/devices/system/cpu/cpufreq/interactive/target_loads
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/target_loads
chown system system /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
chown system system /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
chown system system /sys/devices/system/cpu/cpufreq/interactive/boost
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boost
chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse
chown system system /sys/devices/system/cpu/cpufreq/interactive/input_boost
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/input_boost
chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration
chown system system /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
chown system system /sys/devices/57000000.gpu/pstate
# update foreground cpuset now that processors are up
# reserve CPU 3 for the top app
write /dev/cpuset/foreground/cpus 0-2
write /dev/cpuset/foreground/boost/cpus 0-2
write /dev/cpuset/background/cpus 0
write /dev/cpuset/system-background/cpus 0-1
write /dev/cpuset/top-app/cpus 0-3
# for gpu cap in battery saver mode
chown system system /sys/kernel/debug/system_edp/capping/force_gpu
chmod 0660 /sys/kernel/debug/system_edp/capping/force_gpu
# for lightbar
chown system system /sys/class/chromeos/cros_ec/lightbar/userspace_control
chmod 0660 /sys/class/chromeos/cros_ec/lightbar/userspace_control
chown system system /sys/class/chromeos/cros_ec/lightbar/sequence
chmod 0660 /sys/class/chromeos/cros_ec/lightbar/sequence
# for external power limits
chown system system /sys/class/chromeos/cros_ec/usb-pd-charger/ext_voltage_lim
chmod 0660 /sys/class/chromeos/cros_ec/usb-pd-charger/ext_voltage_lim
# Enable CC4
write /sys/devices/system/cpu/cpu0/cpuidle/state1/disabled 0
write /sys/devices/system/cpu/cpu1/cpuidle/state1/disabled 0
write /sys/devices/system/cpu/cpu2/cpuidle/state1/disabled 0
write /sys/devices/system/cpu/cpu3/cpuidle/state1/disabled 0
# b/13568411: make lazy vfree flush thresholds match flush_tlb_range
write /proc/sys/vm/lazy_vfree_tlb_flush_all_threshold 524288
chmod 0444 /sys/kernel/debug/bq2419x-regs
write /proc/sys/net/core/rmem_max 1048576
write /proc/sys/net/core/wmem_max 1048576
# Execute crash_collector when a process is crashing.
write /proc/sys/kernel/core_pattern "|/system/bin/crash_dispatcher %p %u %g %s %t %e"
write /proc/sys/kernel/core_pipe_limit 4
write /proc/self/coredump_filter 0x1
# enable GPU dvfs
write /sys/class/drm/card0/device/pstate auto
# set GPU auto suspend
write /sys/devices/57000000.gpu/power/autosuspend_delay_ms 520
# Raise RLIMIT_NOFILE softlimit to workaround b/28277319. This is intended
# to go away at some point, do not copy it to new devices! This makes fd
# leaks much harder to notice and debug.
setrlimit 7 2048 4096
# Wifi firmware reload path
chown wifi wifi /sys/module/bcmdhd/parameters/firmware_path
on fs
# Enable verity notification
write /sys/module/dm_verity/parameters/error_behavior notify
mount_all /fstab.dragon
# run the touch firmware update script as soon as non-tmpfs /data is ready
on property:vold.decrypt=trigger_restart_framework
exec -- /system/bin/touchfwup.sh
# tune thermal governor
service tune_therm_gov /system/bin/tune-thermal-gov.sh skin-therm pd_thermal_gov \
max_err_temp 5000
class main
oneshot
service battery_charger /charger
class charger
seclabel u:r:healthd:s0
# on userdebug and eng builds, enable kgdb on the serial console
on property:ro.debuggable=1
write /sys/module/kgdboc/parameters/kgdboc ttyFIQ0
write /sys/module/fiq_debugger/parameters/kgdb_enable 1
# bugreport is triggered by holding down volume down, volume up and power
service bugreport /system/bin/dumpstate -d -p -B -z \
-o /data/user_de/0/com.android.shell/files/bugreports/bugreport
class late_start
disabled
oneshot
keycodes 114 115 116
service wpa_supplicant /vendor/bin/hw/wpa_supplicant \
-iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
-I/system/etc/wifi/p2p_supplicant_overlay.conf \
-puse_p2p_group_interface=1p2p_device=1 \
-m/data/misc/wifi/p2p_supplicant.conf \
-e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
class late_start
socket wpa_wlan0 dgram 660 wifi wifi
disabled
oneshot
service fwtool /system/bin/fwtool mark_boot success
class late_start
user root
oneshot
service kickstart /vendor/bin/qcks -i /vendor/firmware/mdm/image/ -r /data/qcks/mdm/
class late_start
disabled
user system
group system
oneshot
service qmuxd /vendor/bin/qmuxd
class late_start
disabled
user system
group system radio
service netmgrd /vendor/bin/netmgrd
class late_start
disabled
group system radio
service tlk_daemon /vendor/bin/tlk_daemon --storagedir /data/ss --rpmbdev /dev/block/mmcblk0rpmb
class main
group system
on property:debug.bq25892=dump
exec - root root system -- /system/bin/dump_bq25892.sh