import init.flounder.usb.rc
import init.flounder_svelte.rc

on early-init
    mount debugfs /sys/kernel/debug /sys/kernel/debug mode=755

on init
    # Load persistent dm-verity state
    verity_load_state

    start watchdogd

    symlink /sdcard /storage/sdcard0

    write /sys/block/zram0/comp_algorithm lz4
    write /sys/block/zram0/max_comp_streams 2

    # Swap in only 1 page at a time
    write /proc/sys/vm/page-cluster 0

on post-fs
    # turn off nvmap page pool b/29389829
    write /sys/module/nvmap_pp/parameters/pool_size 0
    write /sys/module/nvmap_pp/parameters/enable_page_pools 0

    write /sys/power/gpu_power_on 1
    write /sys/module/input_cfboost/parameters/gpu_wakeup 1
    # Turn on swap
    swapon_all /fstab.flounder

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

    # Previously files in /data/nvcam are owned by media, change the owner to cameraserver so it
    # can be accessed by Camera HAL in cameraserver.
    chown cameraserver camera /data/nvcam/factory_copy_0.bin
    chown cameraserver camera /data/nvcam/nvcam_cache_0.bin
    chown cameraserver camera /data/nvcam/nvcam_cache_1.bin
    mkdir /data/nvcam 0700 cameraserver 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

    # for GPS files
    mkdir /data/gps 0770 gps system

    # modem init
    mkdir /data/qcks 0770 system system
    mkdir /data/efs 0771 system system
    mkdir /data/qcks/mdm 0770 system system

    setprop vold.post_fs_data_done 1

on boot
  # bluetooth
    # change back to bluetooth from system
    chown bluetooth net_bt_stack /data/misc/bluetooth

    # power down interface
    write /sys/class/rfkill/rfkill0/state 0

    # keep verity metadata in cache a lot longer (tablet profile)
    write /sys/module/dm_bufio/parameters/max_age_seconds 86400

    write /sys/module/tegra3_emc/parameters/emc_enable 0
    #write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 1000000
    #write /sys/module/cpu_tegra/parameters/cpu_user_cap 700000
    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/cpu0/cpufreq/scaling_min_freq 510000
    write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 510000
    #write /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed 700000
    #write /sys/devices/system/cpu/cpu1/cpufreq/scaling_setspeed 700000
    #write /sys/devices/system/cpu/cpufreq/interactive/boost_factor 2
    #write /sys/devices/system/cpu/cpufreq/interactive/sustain_load 80
    write /sys/devices/system/cpu/cpuquiet/tegra_cpuquiet/enable 0

    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

    # Enable CC4
    write /sys/devices/system/cpu/cpu0/cpuidle/state1/disabled 0
    write /sys/devices/system/cpu/cpu1/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

on fs
    mount_all /fstab.flounder
    # Update dm-verity state and set partition.*.verified properties
    verity_update_state

on verity-logging
    exec u:r:slideshow:s0 -- /sbin/slideshow warning/verity_red_1 warning/verity_red_2

service battery_charger /charger
    class charger
    seclabel u:r:healthd:s0

# 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
    disabled
    seclabel u:r:watchdogd: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

# for loading correct gps hal share libraries
on property:ro.boot.baseband=N/A
    setprop ro.hardware.gps bcm47521
    enable gpsd

on property:ro.boot.baseband=US
    write /sys/module/bcmdhd/parameters/nvram_path /system/etc/wifi/bcmdhd_lte.cal

on property:ro.boot.baseband=ROW
    write /sys/module/bcmdhd/parameters/nvram_path /system/etc/wifi/bcmdhd_lte.cal

on property:ro.baseband=unknown
    setprop ro.hardware.gps bcm47521
    enable gpsd

# for telephony function
on property:ro.boot.baseband=N/A
    setprop ro.radio.noril true
    stop ril-daemon

on property:ro.hw.ks.ready=1
    start ril-daemon

on property:ro.boot.baseband=ROW
    stop ril-daemon
    setprop persist.radio.apm_sim_not_pwdn 1
    enable kickstart
    mkdir /dev/socket/qmux_radio 0770 radio radio
    chmod 2770 /dev/socket/qmux_radio
    setprop ro.baseband.arch mdm
    enable qmuxd
    enable netmgrd
    setprop rild.libpath /vendor/lib64/libril-qc-qmi-1.so
    setprop rild.libargs "-e wwan0"
    setprop persist.radio.snapshot_enabled 1

on property:ro.boot.baseband=US
    stop ril-daemon
    setprop persist.radio.apm_sim_not_pwdn 1
    enable kickstart
    mkdir /dev/socket/qmux_radio 0770 radio radio
    chmod 2770 /dev/socket/qmux_radio
    setprop ro.baseband.arch mdm
    enable qmuxd
    enable netmgrd
    setprop rild.libpath /vendor/lib64/libril-qc-qmi-1.so
    setprop rild.libargs "-e wwan0"
    setprop persist.radio.snapshot_enabled 1

on property:audio_hal.period_size=128
    write /sys/devices/system/cpu/cpufreq/interactive/rt_priority 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 p2p_supplicant /system/bin/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 gpsd /system/bin/glgps -c /system/etc/gpsconfig.xml
    class late_start
    disabled
    user gps
    socket gps seqpacket 0660 gps system
    group system wakelock inet sdcard_rw sdcard_r

service wpa_supplicant /system/bin/wpa_supplicant \
    -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
    -I/system/etc/wifi/wpa_supplicant_overlay.conf \
    -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
    class late_start
    socket wpa_wlan0 dgram 660 wifi wifi
    disabled
    oneshot

service kickstart /vendor/bin/qcks -i /vendor/firmware/mdm/image/ -r /data/qcks/mdm/
    class late_start
    disabled
    user system
    group system wakelock
    oneshot

service qmuxd /vendor/bin/qmuxd
    class late_start
    disabled
    user system
    group system wakelock radio

service netmgrd /vendor/bin/netmgrd
    class late_start
    disabled
    group system radio

service tlk_daemon /vendor/bin/tlk_daemon --storagedir /data/ss
    class main
    group system
