| # Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved. |
| # |
| # Redistribution and use in source and binary forms, with or without |
| # modification, are permitted provided that the following conditions are met: |
| # * Redistributions of source code must retain the above copyright |
| # notice, this list of conditions and the following disclaimer. |
| # * Redistributions in binary form must reproduce the above copyright |
| # notice, this list of conditions and the following disclaimer in the |
| # documentation and/or other materials provided with the distribution. |
| # * Neither the name of Code Aurora nor |
| # the names of its contributors may be used to endorse or promote |
| # products derived from this software without specific prior written |
| # permission. |
| # |
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| # IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
| # NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
| # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
| # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
| # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; |
| # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
| # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |
| # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |
| # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| # |
| |
| import init.mako.usb.rc |
| |
| on early-init |
| # for backwards compatibility |
| export EXTERNAL_STORAGE /storage/sdcard0 |
| mkdir /storage 0050 system sdcard_r |
| mkdir /storage/sdcard0 0000 system system |
| symlink /storage/sdcard0 /sdcard |
| symlink /storage/sdcard0 /mnt/sdcard |
| |
| on init |
| # Set permissions for persist partition |
| mkdir /persist 0771 system system |
| |
| on fs |
| |
| mount_all ./fstab.mako |
| |
| # TODO: Move the following mount commands into the fstab. /system has |
| # been moved to the fstab but is probably missing some options |
| # to run a fsck. |
| # wait /dev/block/platform/msm_sdcc.1/by-name/system |
| # chmod 0777 /sbin/e2fsck_static |
| # exec /sbin/e2fsck_static -y /dev/block/platform/msm_sdcc.1/by-name/system |
| # mount ext4 /dev/block/platform/msm_sdcc.1/by-name/system /system ro barrier=1 |
| |
| #userdata |
| wait /dev/block/platform/msm_sdcc.1/by-name/userdata |
| exec /system/bin/e2fsck -y /dev/block/platform/msm_sdcc.1/by-name/userdata |
| mount ext4 /dev/block/platform/msm_sdcc.1/by-name/userdata /data nosuid nodev barrier=1 data=ordered noauto_da_alloc |
| |
| #persist |
| mkdir /persist 0771 system system |
| wait /dev/block/platform/msm_sdcc.1/by-name/persist |
| exec /system/bin/e2fsck -y /dev/block/platform/msm_sdcc.1/by-name/persist |
| mount ext4 /dev/block/platform/msm_sdcc.1/by-name/persist /persist nosuid nodev barrier=1 data=ordered nodelalloc |
| |
| #modem firmware files |
| mkdir /firmware 0771 system system |
| wait /dev/block/platform/msm_sdcc.1/by-name/modem |
| mount vfat /dev/block/platform/msm_sdcc.1/by-name/modem /firmware ro dmask=177 fmask=177 |
| |
| #cache |
| wait /dev/block/platform/msm_sdcc.1/by-name/cache |
| exec /system/bin/e2fsck -y /dev/block/platform/msm_sdcc.1/by-name/cache |
| mount ext4 /dev/block/platform/msm_sdcc.1/by-name/cache /cache nosuid nodev barrier=1 data=ordered |
| |
| #persist-lg |
| mkdir /persist-lg 0771 system system |
| wait /dev/block/platform/msm_sdcc.1/by-name/drm |
| exec /system/bin/e2fsck -y /dev/block/platform/msm_sdcc.1/by-name/drm |
| mount ext4 /dev/block/platform/msm_sdcc.1/by-name/drm /persist-lg nosuid nodev barrier=1 data=ordered |
| |
| #mpt |
| mkdir /mpt 0775 system system |
| wait /dev/block/platform/msm_sdcc.1/by-name/mpt |
| exec /system/bin/e2fsck -y /dev/block/platform/msm_sdcc.1/by-name/mpt |
| mount ext4 /dev/block/platform/msm_sdcc.1/by-name/mpt /mpt nosuid nodev barrier=1 data=ordered |
| |
| #factory |
| mkdir /factory 0775 system system |
| wait /dev/block/platform/msm_sdcc.1/by-name/factory |
| exec /system/bin/e2fsck -y /dev/block/platform/msm_sdcc.1/by-name/factory |
| mount ext4 /dev/block/platform/msm_sdcc.1/by-name/factory /factory nosuid nodev barrier=1 data=ordered |
| chmod 0775 /factory |
| chown system system /factory |
| |
| #sns |
| mkdir /sns 0775 system system |
| wait /dev/block/platform/msm_sdcc.1/by-name/sns |
| exec /system/bin/e2fsck -y /dev/block/platform/msm_sdcc.1/by-name/sns |
| mount ext4 /dev/block/platform/msm_sdcc.1/by-name/sns /sns nosuid nodev barrier=1 data=ordered |
| mkdir /sns/cal 0771 system system |
| |
| 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/bluetooth_power/parameters/power |
| chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type |
| chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state |
| chown bluetooth bluetooth /proc/bluetooth/sleep/proto |
| chown system system /sys/module/sco/parameters/disable_esco |
| chown bluetooth bluetooth /sys/module/hci_smd/parameters/hcismd_set |
| chmod 0660 /sys/module/bluetooth_power/parameters/power |
| chmod 0666 /sys/module/hci_smd/parameters/hcismd_set |
| chmod 0660 /sys/class/rfkill/rfkill0/state |
| chmod 0660 /proc/bluetooth/sleep/proto |
| chown bluetooth bluetooth /dev/ttyHS0 |
| chmod 0660 /dev/ttyHS0 |
| chown bluetooth bluetooth /sys/devices/platform/msm_serial_hs.0/clock |
| chmod 0660 /sys/devices/platform/msm_serial_hs.0/clock |
| |
| #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 |
| # Allow QMUX daemon to assign port open wait time |
| chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait |
| |
| setprop wifi.interface wlan0 |
| |
| # Enable Bluetooth 802.11 PAL when Bluetooth is turned on |
| setprop ro.config.bt.amp no |
| |
| #Set SUID bit for usbhub |
| chmod 4755 /system/bin/usbhub |
| chmod 755 /system/bin/usbhub_init |
| |
| #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 |
| |
| #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 |
| |
| write /sys/class/leds/lcd-backlight/brightness 255 |
| |
| # import cne init file |
| on post-fs |
| export_rc /persist/init.cne.rc |
| |
| # msm specific files that need to be created on /data |
| on post-fs-data |
| # we will remap this as /mnt/sdcard with the sdcard fuse tool |
| mkdir /data/media 0775 media_rw media_rw |
| chown media_rw media_rw /data/media |
| |
| 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 0771 /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 |
| |
| # Mobile DM Router |
| chmod 0660 /dev/lge_dm_tty0 |
| chown system system /dev/lge_dm_tty0 |
| |
| #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 directories for wiper services |
| mkdir /data/wpstiles/ 0755 shell |
| mkdir /data/wiper 0755 location qcom_oncrpc |
| |
| #Create directories for gpsone_daemon services |
| mkdir /data/misc/gpsone_d 0770 system gps |
| |
| #Create directories for QuIPS |
| mkdir /data/misc/quipc 0770 gps system |
| |
| #Create directories for Location services |
| mkdir /data/misc/location 0770 gps gps |
| mkdir /data/misc/location/mq 0770 gps gps |
| |
| #Create directory from IMS services |
| mkdir /data/shared 0755 |
| chown system system /data/shared |
| |
| #Create directory for FOTA |
| mkdir /data/fota 0771 |
| chown system system /data/fota |
| |
| #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/logger 0775 system system |
| exec /system/bin/smpl_count |
| |
| mkdir /data/qcks 0770 system system |
| setprop vold.post_fs_data_done 1 |
| |
| # Export GPIO56 for fusion targets to enable/disable hub |
| service usbhub_init /system/bin/usbhub_init |
| class late_start |
| user root |
| disabled |
| oneshot |
| |
| on property:ro.board.platform=msm7630_fusion |
| start usbhub_init |
| |
| on property:init.svc.wpa_supplicant=stopped |
| stop dhcpcd |
| |
| on property:bluetooth.isEnabled=true |
| start btwlancoex |
| start amp_load |
| write /sys/class/bluetooth/hci0/idle_timeout 7000 |
| |
| on property:bluetooth.isEnabled=false |
| start amp_unload |
| stop btwlancoex |
| |
| service cnd /system/bin/cnd |
| class late_start |
| socket cnd stream 666 root radio |
| |
| service rmt_storage /system/bin/rmt_storage |
| class main |
| user root |
| |
| service hciattach /system/bin/sh /system/etc/init.qcom.bt.sh |
| class late_start |
| user bluetooth |
| group qcom_oncrpc bluetooth net_bt_admin system |
| disabled |
| oneshot |
| |
| 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 |
| |
| 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 |
| disabled |
| |
| service amp_init /system/bin/amploader -i |
| class late_start |
| user root |
| disabled |
| oneshot |
| |
| service amp_load /system/bin/amploader -l 7000 |
| class late_start |
| user root |
| disabled |
| oneshot |
| |
| service amp_unload /system/bin/amploader -u |
| class late_start |
| user root |
| disabled |
| oneshot |
| |
| service wpa_supplicant /system/bin/wpa_supplicant \ |
| -Dnl80211 -iwlan0 -c/system/etc/wifi/wpa_supplicant.conf \ |
| -C/data/misc/wifi/sockets -ddd |
| class main |
| group wifi inet |
| socket wpa_wlan0 dgram 660 wifi wifi |
| disabled |
| oneshot |
| |
| service dhcpcd_wlan0 /system/bin/dhcpcd -ABKLG |
| class late_start |
| disabled |
| oneshot |
| |
| service dhcpcd_p2p /system/bin/dhcpcd -ABKLG |
| class late_start |
| disabled |
| oneshot |
| |
| service iprenew_wlan0 /system/bin/dhcpcd -n |
| class late_start |
| disabled |
| oneshot |
| |
| service iprenew_p2p /system/bin/dhcpcd -n p2p |
| class late_start |
| disabled |
| oneshot |
| |
| service dhcpcd_bnep0 /system/bin/dhcpcd -BKLG |
| disabled |
| oneshot |
| |
| service wiperiface /system/bin/wiperiface |
| user location |
| group qcom_oncrpc |
| oneshot |
| |
| service gpsone_daemon /system/bin/gpsone_daemon |
| class late_start |
| user gps |
| group gps qcom_oncrpc inet |
| disabled |
| |
| service quipc_igsn /system/bin/quipc_igsn |
| class late_start |
| user gps |
| group inet gps |
| disabled |
| |
| service quipc_main /system/bin/quipc_main |
| class late_start |
| user gps |
| group net_admin wifi inet gps |
| disabled |
| |
| service fm_dl /system/bin/sh /system/etc/init.qcom.fm.sh |
| class late_start |
| user root |
| group system qcom_oncrpc |
| disabled |
| oneshot |
| |
| on property:crypto.driver.load=1 |
| insmod /system/lib/modules/qce.ko |
| insmod /system/lib/modules/qcedev.ko |
| |
| on property:crypto.driver.load=0 |
| exec /system/bin/rmmod qcedev.ko |
| exec /system/bin/rmmod qce.ko |
| |
| service drmdiag /system/bin/drmdiagapp |
| class late_start |
| user root |
| disabled |
| oneshot |
| |
| on property:drmdiag.load=1 |
| start drmdiag |
| |
| on property:drmdiag.load=0 |
| stop drmdiag |
| |
| service qcom-sh /system/bin/sh /init.qcom.sh |
| class late_start |
| user root |
| oneshot |
| |
| service qcom-post-boot /system/bin/sh /system/etc/init.qcom.post_boot.sh |
| class late_start |
| user root |
| disabled |
| oneshot |
| |
| service qcom-wifi /system/bin/sh /system/etc/init.qcom.wifi.sh |
| class late_start |
| oneshot |
| |
| on property:sys.boot_completed=1 |
| start qcom-post-boot |
| |
| service atfwd /system/bin/ATFWD-daemon |
| class late_start |
| user system |
| group system radio |
| onrestart /system/bin/log -t RIL-ATFWD -p w "ATFWD daemon restarted" |
| |
| service hdmid /system/bin/hdmid |
| class late_start |
| socket hdmid stream 0660 root system graphics |
| disabled |
| |
| service ppd /system/bin/mm-pp-daemon |
| class late_start |
| user system |
| socket pps stream 0660 system system graphics |
| group system graphics |
| |
| service hostapd /system/bin/hostapd -dddd /data/hostapd/hostapd.conf |
| class late_start |
| user root |
| group root |
| oneshot |
| disabled |
| |
| service ds_fmc_appd /system/bin/ds_fmc_appd -p "rmnet0" -D |
| class late_start |
| group radio wifi inet |
| disabled |
| oneshot |
| |
| on property:persist.data.ds_fmc_app.mode=1 |
| start ds_fmc_appd |
| |
| service ims_regmanager /system/bin/exe-ims-regmanagerprocessnative |
| class late_start |
| user system |
| group qcom_oncrpc net_bt_admin inet radio wifi |
| disabled |
| |
| on property:persist.ims.regmanager.mode=1 |
| start ims_regmanager |
| |
| 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 |
| disabled |
| |
| on property:persist.timed.enable=true |
| start time_daemon |
| |
| service battery_monitor /system/bin/battery_monitor |
| user system |
| group system |
| disabled |
| |
| 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 sdcard_rw qcom_oncrpc diag |
| |
| service profiler_daemon /system/bin/profiler_daemon |
| class late_start |
| user root |
| group root |
| disabled |
| |
| service hcidump /system/bin/sh /system/etc/hcidump.sh |
| user bluetooth |
| group bluetooth system net_bt_admin net_admin |
| disabled |
| oneshot |
| |
| service charger /charger |
| class charger |
| |
| service wlan-on-off /system/bin/sh /system/etc/init.wlan-on-off.sh |
| class late_start |
| user root |
| disabled |
| oneshot |
| |
| # Workaround to resolve WCNSS power problem in Kernel Mode booting |
| on property:init.svc.qcom-wifi=stopped |
| start wlan-on-off |
| |
| on property:persist.service.fakebatt=1 |
| write /sys/devices/platform/msm_ssbi.0/pm8921-core/pm8921-charger/power_supply/battery/pseudo_batt "1 1 100 40 4100 80 1" |
| |
| on property:persist.service.fakebatt=0 |
| write /sys/devices/platform/msm_ssbi.0/pm8921-core/pm8921-charger/power_supply/battery/pseudo_batt "0 1 100 40 4100 80 1" |
| |
| # TouchSense Player Service |
| service immvibed /system/bin/immvibed |
| class main |
| user root |
| group root |
| oneshot |
| |
| # create virtual SD card at /storage/sdcard0, based on the /data/media directory |
| # daemon will drop to user/group system/media_rw after initializing |
| # underlying files in /data/media will be created with user and group media_rw (1023) |
| service sdcard /system/bin/sdcard /data/media 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 |
| class core |
| user root |
| group root |
| oneshot |