#
# Copyright 2012 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

import init.mako.usb.rc

on early-init
    mount debugfs debugfs /sys/kernel/debug

on init
    mkdir /mnt/shell/sdcard0 0700 shell shell

    # External storage path for apps
    export EXTERNAL_STORAGE /storage/sdcard0
    # External storage path for adb
    export ADB_EXTERNAL_STORAGE /mnt/shell/sdcard0/0

    mkdir /storage 0711 root root
    mkdir /storage/sdcard0 0000 root root
    symlink /storage/sdcard0 /sdcard
    symlink /storage/sdcard0 /mnt/sdcard

    # Save bugreports as owner
    export BUGREPORT_WRITE_PATH /mnt/shell/sdcard0/0
    export BUGREPORT_READ_PATH /storage/sdcard0

on init
    # Set permissions for persist partition
    mkdir /persist 0771 system system
    mkdir /tombstones 0771 system system
    mkdir /firmware 0771 system system

on fs
    mount_all ./fstab.mako
    setprop ro.crypto.fuse_sdcard true

on early-boot
    # set RLIMIT_MEMLOCK to 64MB
    setrlimit 8 67108864 67108864

on boot
    chown bluetooth bluetooth /sys/module/hci_smd/parameters/hcismd_set
    chmod 0660 /sys/module/hci_smd/parameters/hcismd_set

    #Create QMUX deamon socket area
    mkdir /dev/socket/qmux_radio 0770 radio radio
    chmod 2770 /dev/socket/qmux_radio
    mkdir /dev/socket/qmux_audio 0770 media audio
    chmod 2770 /dev/socket/qmux_audio
    mkdir /dev/socket/qmux_bluetooth 0770 bluetooth bluetooth
    chmod 2770 /dev/socket/qmux_bluetooth
    mkdir /dev/socket/qmux_gps 0770 gps gps
    chmod 2770 /dev/socket/qmux_gps

    # Allow QMUX daemon to assign port open wait time
    chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait

    #Remove SUID bit for iproute2 ip tool
    chmod 0755 /system/bin/ip

    #port-bridge
    chmod 0660 /dev/smd0
    chown system system /dev/smd0

    #BT DUN port-bridge
    chmod 0660 /dev/smd7
    chown bluetooth bluetooth /dev/smd7

    chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state

    # create symlink for fb1 as HDMI
    symlink /dev/graphics/fb1 /dev/graphics/hdmi

    # Remove write permissions to video related nodes
    chmod 0664 /sys/devices/virtual/graphics/fb1/hpd
    chmod 0664 /sys/devices/virtual/graphics/fb1/video_mode
    chmod 0664 /sys/devices/virtual/graphics/fb1/format_3d

    # Change owner and group for media server and surface flinger
    chown system system /sys/devices/virtual/graphics/fb1/format_3d
    chown system system /sys/devices/virtual/graphics/fb1/hpd

    #For bridgemgr daemon to inform the USB driver of the correct transport
    chown radio radio /sys/class/android_usb/f_rmnet_smd_sdio/transport

    chmod 660 /dev/rtc0
    chown system system /dev/rtc0

    chown root system /proc/net/ip_conntrack


    #To allow interfaces to get v6 address when tethering is enabled
    write /proc/sys/net/ipv6/conf/rmnet0/accept_ra 2
    write /proc/sys/net/ipv6/conf/rmnet1/accept_ra 2
    write /proc/sys/net/ipv6/conf/rmnet2/accept_ra 2
    write /proc/sys/net/ipv6/conf/rmnet3/accept_ra 2
    write /proc/sys/net/ipv6/conf/rmnet4/accept_ra 2
    write /proc/sys/net/ipv6/conf/rmnet5/accept_ra 2
    write /proc/sys/net/ipv6/conf/rmnet6/accept_ra 2
    write /proc/sys/net/ipv6/conf/rmnet7/accept_ra 2
    write /proc/sys/net/ipv6/conf/rmnet_sdio0/accept_ra 2
    write /proc/sys/net/ipv6/conf/rmnet_sdio1/accept_ra 2
    write /proc/sys/net/ipv6/conf/rmnet_sdio2/accept_ra 2
    write /proc/sys/net/ipv6/conf/rmnet_sdio3/accept_ra 2
    write /proc/sys/net/ipv6/conf/rmnet_sdio4/accept_ra 2
    write /proc/sys/net/ipv6/conf/rmnet_sdio5/accept_ra 2
    write /proc/sys/net/ipv6/conf/rmnet_sdio6/accept_ra 2
    write /proc/sys/net/ipv6/conf/rmnet_sdio7/accept_ra 2


# NFC: create data/nfc for nv storage
    mkdir /data/nfc 770 nfc nfc
    mkdir /data/nfc/param 770 nfc nfc

# Assign TCP buffer thresholds to be ceiling value of technology maximums
# Increased technology maximums should be reflected here.
    write /proc/sys/net/core/rmem_max  1220608
    write /proc/sys/net/core/wmem_max  1220608

# msm specific files that need to be created on /data
on post-fs-data
    mkdir /data/media 0775 media_rw media_rw

    mkdir /data/misc/bluetooth 0770 bluetooth bluetooth

    # Create the directories used by the Wireless subsystem
    mkdir /data/misc/wifi 0770 wifi wifi
    mkdir /data/misc/wifi/sockets 0770 wifi wifi
    mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi
    mkdir /data/misc/dhcp 0770 dhcp dhcp
# to observe dnsmasq.leases file for dhcp information of soft ap.
    chown dhcp system /data/misc/dhcp

    write /dev/wcnss_wlan 1

    # Create directory used by audio subsystem
    mkdir /data/misc/audio 0770 audio audio

    # Mounting of persist is moved to 'on emmc-fs' and 'on fs' sections
    # We chown/chmod /persist again so because mount is run as root + defaults
    chown system system /persist
    chmod 0664 /sys/devices/platform/msm_sdcc.1/polling
    chmod 0664 /sys/devices/platform/msm_sdcc.2/polling
    chmod 0664 /sys/devices/platform/msm_sdcc.3/polling
    chmod 0664 /sys/devices/platform/msm_sdcc.4/polling

    # Chown polling nodes as needed from UI running on system server
    chown system system /sys/devices/platform/msm_sdcc.1/polling
    chown system system /sys/devices/platform/msm_sdcc.2/polling
    chown system system /sys/devices/platform/msm_sdcc.3/polling
    chown system system /sys/devices/platform/msm_sdcc.4/polling

    #Create the symlink to qcn wpa_supplicant folder for ar6000 wpa_supplicant
    mkdir /data/system 0775 system system
    #symlink /data/misc/wifi/wpa_supplicant /data/system/wpa_supplicant

    #Create directory used by sensor subsystem(dsps)
    mkdir /data/system/sensors
    chmod 665 /data/system/sensors
    write /data/system/sensors/settings 1
    chmod 660 /data/system/sensors/settings

    mkdir /persist/sensors
    chmod 775 /persist/sensors

    #Create directories for gpsone_daemon services
    mkdir /data/misc/gpsone_d 0770 system gps

    #Create directories for Location services
    mkdir /data/misc/location 0770 gps gps
    mkdir /data/misc/location/mq 0770 gps gps

    #Provide the access to hostapd.conf only to root and group
    chmod 0660 /data/hostapd/hostapd.conf

    # Create /data/time folder for time-services
    mkdir /data/time/ 0700 system system

    mkdir /data/audio 0770 media audio
    # Enable the setgid bit on the directory
    chmod 2770 /data/audio

    mkdir /data/bluetooth 0770 bluetooth bluetooth
    # Enable the setgid bit on the directory
    chmod 2770 /data/bluetooth

    mkdir /data/qcks 0770 system system
    setprop vold.post_fs_data_done 1

    mkdir /data/local 0770 root root
    mkdir /data/local/tmp 0770 shell shell
    rm /data/local/tmp/adreno_config.txt
    write /data/local/tmp/adreno_config.txt "enableRotationShaderPatching=0
"
    chmod 0777 /data/local
    chmod 0777 /data/local/tmp
    chmod 0444 /data/local/tmp/adreno_config.txt

    # LED On/Off synchronization
    chown system system /sys/class/leds/red/device/lock

    # Enable Power modes and set the CPU Freq Sampling rates
    write /sys/module/rpm_resources/enable_low_power/L2_cache 1
    write /sys/module/rpm_resources/enable_low_power/pxo 1
    write /sys/module/rpm_resources/enable_low_power/vdd_dig 1
    write /sys/module/rpm_resources/enable_low_power/vdd_mem 1
    write /sys/module/pm_8x60/modes/cpu0/power_collapse/suspend_enabled 1
    write /sys/module/pm_8x60/modes/cpu1/power_collapse/suspend_enabled 1
    write /sys/module/pm_8x60/modes/cpu2/power_collapse/suspend_enabled 1
    write /sys/module/pm_8x60/modes/cpu3/power_collapse/suspend_enabled 1
    write /sys/module/pm_8x60/modes/cpu0/standalone_power_collapse/suspend_enabled 1
    write /sys/module/pm_8x60/modes/cpu1/standalone_power_collapse/suspend_enabled 1
    write /sys/module/pm_8x60/modes/cpu2/standalone_power_collapse/suspend_enabled 1
    write /sys/module/pm_8x60/modes/cpu3/standalone_power_collapse/suspend_enabled 1
    write /sys/module/pm_8x60/modes/cpu0/standalone_power_collapse/idle_enabled 1
    write /sys/module/pm_8x60/modes/cpu1/standalone_power_collapse/idle_enabled 1
    write /sys/module/pm_8x60/modes/cpu2/standalone_power_collapse/idle_enabled 1
    write /sys/module/pm_8x60/modes/cpu3/standalone_power_collapse/idle_enabled 1
    write /sys/module/pm_8x60/modes/cpu0/power_collapse/idle_enabled 1
    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "ondemand"
    write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor "ondemand"
    write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor "ondemand"
    write /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor "ondemand"
    write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold 90
    write /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate 50000
    write /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy 1
    write /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor 4
    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 384000
    write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 384000
    write /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 384000
    write /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq 384000
    chown system /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
    chown system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
    chown system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
    chown system /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
    chown system /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
    chown system /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
    chown system /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
    chown system /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
    chown system /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
    chown root.system /sys/devices/system/cpu/mfreq
    chmod 220 /sys/devices/system/cpu/mfreq
    chown root.system /sys/devices/system/cpu/cpu1/online
    chown root.system /sys/devices/system/cpu/cpu2/online
    chown root.system /sys/devices/system/cpu/cpu3/online
    chmod 664 /sys/devices/system/cpu/cpu1/online
    chmod 664 /sys/devices/system/cpu/cpu2/online
    chmod 664 /sys/devices/system/cpu/cpu3/online

on property:init.svc.wpa_supplicant=stopped
    stop dhcpcd
    
service rmt_storage /system/bin/rmt_storage
    class main
    user root

service hciattach /system/bin/sh /system/etc/init.mako.bt.sh
    class late_start
    user bluetooth
    group qcom_oncrpc bluetooth net_bt_admin system
    disabled
    oneshot

on property:bluetooth.hciattach=true
    start hciattach

on property:bluetooth.hciattach=false
    setprop bluetooth.status off

service bridgemgrd /system/bin/bridgemgrd
    class main
    user radio
    group radio

# QMUX must be in multiple groups to support external process connections
service qmuxd /system/bin/qmuxd
    class main
    user radio
    group radio audio bluetooth gps

service kickstart /system/bin/qcks -i /firmware/image/
    class main
    oneshot

service netmgrd /system/bin/netmgrd
    class main


service sensors /system/bin/sensors.qcom
    class late_start
    user root
    group root

service wpa_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant \
    -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
    -e/data/misc/wifi/entropy.bin
    #   we will start as root and wpa_supplicant will switch to user wifi
    #   after setting up the capabilities required for WEXT
    #   user wifi
    #   group wifi inet keystore
    class main
    socket wpa_wlan0 dgram 660 wifi wifi
    disabled
    oneshot

service p2p_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant \
    -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf -N \
    -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
    -e/data/misc/wifi/entropy.bin -puse_p2p_group_interface=1
#   we will start as root and wpa_supplicant will switch to user wifi
#   after setting up the capabilities required for WEXT
#   user wifi
#   group wifi inet keystore
    class main
    socket wpa_wlan0 dgram 660 wifi wifi
    disabled
    oneshot

service dhcpcd_wlan0 /system/bin/dhcpcd -aABKL
    class main
    disabled
    oneshot

service dhcpcd_p2p /system/bin/dhcpcd -aABKL
    class main
    disabled
    oneshot

service iprenew_wlan0 /system/bin/dhcpcd -n
    class main
    disabled
    oneshot

service iprenew_p2p /system/bin/dhcpcd -n
    class main
    disabled
    oneshot

service dhcpcd_bnep0 /system/bin/dhcpcd -BKLG
    disabled
    oneshot

on property:ro.data.large_tcp_window_size=true
    # Adjust socket buffer to enlarge TCP receive window for high bandwidth (e.g. DO-RevB)
    write /proc/sys/net/ipv4/tcp_adv_win_scale  1

service time_daemon /system/bin/time_daemon
    class late_start
    user root
    group root
    oneshot

service ril-daemon1 /system/bin/rild -c 1
    class late_start
    socket rild1 stream 660 root radio
    socket rild-debug1 stream 660 radio system
    user root
    disabled
    group radio cache inet misc audio qcom_oncrpc diag

service profiler_daemon /system/bin/profiler_daemon
    class late_start
    user root
    group root
    disabled

service charger /charger
    class charger

# virtual sdcard daemon running as media_rw (1023)
service sdcard /system/bin/sdcard /data/media /mnt/shell/sdcard0 1023 1023
    class late_start

# Create ext4 filesystems when the partitions are empty or corrupted.
service setup_fs /system/bin/setup_fs \
    /dev/block/platform/msm_sdcc.1/by-name/userdata \
    /dev/block/platform/msm_sdcc.1/by-name/cache \
    /dev/block/platform/msm_sdcc.1/by-name/tombstones
    class core
    user root
    group root
    oneshot

service thermald /system/bin/thermald
    class main

service mpdecision /system/bin/mpdecision --no_sleep --avg_comp
    class main

service qcamerasvr /system/bin/mm-qcamera-daemon
    class late_start
    user camera
    group camera system inet input

service conn_init /system/bin/logwrapper /system/bin/conn_init
    class main
    user system
    group system wifi
    oneshot

# bugreport is triggered by holding down volume down, volume up and power
service bugreport /system/bin/bugmailer.sh -v
    class main
    disabled
    oneshot
    keycodes 114 115 116

service qseecomd /system/bin/qseecomd
    class late_start
    user system
    group system
