import init.${ro.hardware}.usb.rc
import init.${ro.hardware}.power.rc

on fs
    mount_all /vendor/etc/fstab.${ro.hardware}
    swapon_all /vendor/etc/fstab.${ro.hardware}

on post-fs
    # set RLIMIT_MEMLOCK to 64MB
    setrlimit 8 67108864 67108864

on init
    # Initialize cpusets to boot-time values
    write /dev/cpuset/foreground/cpus 0-7
    write /dev/cpuset/background/cpus 0-7
    write /dev/cpuset/system-background/cpus 0-7
    write /dev/cpuset/top-app/cpus 0-7

on early-boot
    mount debugfs debugfs /sys/kernel/debug
    chmod 755 /sys/kernel/debug
    chmod 755 /sys/kernel/debug/sync
    chown graphics graphics /sys/kernel/debug/sync/sw_sync
    chmod 777 /sys/kernel/debug/sync/sw_sync
    chown graphics graphics /sys/kernel/debug/sync/info

    chown system system /sys/class/backlight/wled/brightness

on zygote-start
    mkdir /data/vendor/wifi 0770 wifi wifi
    mkdir /data/vendor/wifi/wpa 0770 wifi wifi
    mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi

on property:sys.boot_completed=1
    chmod 0755 /sys/kernel/debug/tracing

    # update cpuset now that processors are up
    # Foreground should contain most cores (7 is reserved for top-app)
    write /dev/cpuset/foreground/cpus 0-6

    # top-app gets all cpus (including reserved #7)
    write /dev/cpuset/top-app/cpus 0-7

    #background contains a small subset (generally one little core)
    write /dev/cpuset/background/cpus 0

    # add system-background cpuset, a new cpuset for system services
    # that should not run on larger cores
    # system-background is for system tasks that should only run on
    # little cores, not on bigs to be used only by init
    write /dev/cpuset/system-background/cpus 0-3

service wpa_supplicant /vendor/bin/hw/wpa_supplicant \
                       -Dnl80211 -g@android:wpa_wlan0
    interface android.hardware.wifi.supplicant@1.0::ISupplicant default
    interface android.hardware.wifi.supplicant@1.1::ISupplicant default
    socket wpa_wlan0 dgram 660 wifi wifi
    class main
    disabled
    oneshot
