on early-init
#    loglevel 8

    setprop ro.hw_timeout_multiplier ${ro.boot.hw_timeout_multiplier}
    setprop hypervisor.memory_reclaim.supported ${ro.boot.hypervisor.vm.supported}

    start metrics_helper
    # start module load in the background
    start vendor.dlkm_loader

on init
    # ZRAM setup
    write /sys/block/zram0/comp_algorithm lz4

    # EAS uclamp interfaces
    mkdir /dev/cpuctl/foreground
    mkdir /dev/cpuctl/background
    mkdir /dev/cpuctl/top-app
    mkdir /dev/cpuctl/rt
    chown system system /dev/cpuctl
    chown system system /dev/cpuctl/foreground
    chown system system /dev/cpuctl/background
    chown system system /dev/cpuctl/top-app
    chown system system /dev/cpuctl/rt
    chown system system /dev/cpuctl/tasks
    chown system system /dev/cpuctl/foreground/tasks
    chown system system /dev/cpuctl/background/tasks
    chown system system /dev/cpuctl/top-app/tasks
    chown system system /dev/cpuctl/rt/tasks
    chmod 0664 /dev/cpuctl/tasks
    chmod 0664 /dev/cpuctl/foreground/tasks
    chmod 0664 /dev/cpuctl/background/tasks
    chmod 0664 /dev/cpuctl/top-app/tasks
    chmod 0664 /dev/cpuctl/rt/tasks

on fs
    mkdir /mnt/vendor/shared 0770 system system

    # Mount everything that does not require fsck
    mount_all --early

    # So GceBootReporter can print to kmsg
    chmod 622 /dev/kmsg

on post-fs-data && property:ro.vendor.disable_rename_eth0=
    # works around framework netiface enumeration issue
    # TODO(b/202731768): Add this `start rename_eth0` command to the init.rc for rename_netiface
    start rename_eth0

on post-fs-data && property:ro.vendor.wifi_impl=virt_wifi
    # TODO(b/202731768): Add this `start setup_wifi` command to the init.rc for setup_wifi
    start setup_wifi

on post-fs-data
    mkdir /data/vendor/modem_dump 0777 system system
    mkdir /data/vendor/radio 0777 system system

on late-fs
    # Mount RW partitions which need run fsck
    mount_all --late

    write /dev/kmsg "GUEST_BUILD_FINGERPRINT: ${ro.build.fingerprint}"

on post-fs-data && property:ro.vendor.wifi_impl=mac8011_hwsim_virtio
    mkdir /data/vendor/wifi 0770 wifi wifi
    mkdir /data/vendor/wifi/hostapd 0770 wifi wifi
    mkdir /data/vendor/wifi/hostapd/sockets 0770 wifi wifi
    start init_wifi_sh

on boot
    chmod 0770 /dev/cpuctl
    mkdir /data/vendor/wifi 0770 wifi wifi
    mkdir /data/vendor/wifi/wpa 0770 wifi wifi
    mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi
    start socket_vsock_proxy
    setprop ro.hardware.audio.primary goldfish
    symlink /dev/hvc6 /dev/gnss0
    symlink /dev/hvc7 /dev/gnss1

on property:sys.boot_completed=1
    trigger sys-boot-completed-set

# We want one opportunity per boot to enable zram, so we
# use a trigger we fire from the above stanza. If
# persist.sys.zram_enabled becomes true after boot,
# we don't want to run swapon_all at that time.
on sys-boot-completed-set && property:persist.sys.zram_enabled=1
    swapon_all

service vendor.dlkm_loader /vendor/bin/dlkm_loader
    class main
    user root
    group root system
    disabled
    oneshot

service metrics_helper /vendor/bin/metrics_helper
    group system
    user root

service socket_vsock_proxy /vendor/bin/socket_vsock_proxy -server_type=vsock -server_vsock_port=6520 -client_type=tcp -client_tcp_host=0.0.0.0 -client_tcp_port=5555
    user root

service seriallogging /system/bin/logcat -b all -v threadtime -f /dev/hvc2 *:V
    class main
    user logd
    group root logd

service vsoc_input_service /vendor/bin/vsoc_input_service -touch_port=${ro.boot.vsock_touch_port} -keyboard_port=${ro.boot.vsock_keyboard_port}
    group root uhid
    user root
    disabled

on early-boot && property:ro.boot.vsock_touch_port=*
   enable vsoc_input_service
   start vsoc_input_service

on early-boot && property:ro.boot.vsock_keyboard_port=*
   enable vsoc_input_service
   start vsoc_input_service

service bugreport /system/bin/dumpstate -d -p -z
    class main
    user root
    disabled
    oneshot
    keycodes 30 48

# TODO: disable this service once cuttlefish implements system suspend
service suspend_blocker /vendor/bin/suspend_blocker
    class early_hal # Start together with system_suspend HAL
    group system
    user root

on boot && property:ro.boot.enable_confirmationui=*
   enable vendor.confirmationui_default
   start vendor.confirmationui_default
