aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaner Aydın <punisher_caner@windowslive.com>2016-09-26 12:55:49 +0300
committerGitHub <noreply@github.com>2016-09-26 12:55:49 +0300
commit15fa8f7e7b7bc3c0ac7663e0a90862dcdec494f8 (patch)
tree91d4cf304657a664c14fc524388eb30bd7c8c248
parent1028ef0bfc0424f95b1f640dc71b68ff4b96bd49 (diff)
Changes for Nougat support
-rw-r--r--rootdir/etc/init.qcom.sh398
1 files changed, 389 insertions, 9 deletions
diff --git a/rootdir/etc/init.qcom.sh b/rootdir/etc/init.qcom.sh
index 6664b25..aace3ba 100644
--- a/rootdir/etc/init.qcom.sh
+++ b/rootdir/etc/init.qcom.sh
@@ -1,14 +1,37 @@
+#!/system/bin/sh
+# Copyright (c) 2009-2015, The Linux Foundation. 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 The Linux Foundation 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.
+#
-export PATH=/system/bin
-
-# Set platform variables
target=`getprop ro.board.platform`
if [ -f /sys/devices/soc0/soc_id ]; then
platformid=`cat /sys/devices/soc0/soc_id`
else
platformid=`cat /sys/devices/system/soc/soc0/id`
fi
-
#
# Function to start sensors for DSPS enabled platforms
#
@@ -26,6 +49,50 @@ start_sensors()
fi
}
+start_battery_monitor()
+{
+ if ls /sys/bus/spmi/devices/qpnp-bms-*/fcc_data ; then
+ chown -h root.system /sys/module/pm8921_bms/parameters/*
+ chown -h root.system /sys/module/qpnp_bms/parameters/*
+ chown -h root.system /sys/bus/spmi/devices/qpnp-bms-*/fcc_data
+ chown -h root.system /sys/bus/spmi/devices/qpnp-bms-*/fcc_temp
+ chown -h root.system /sys/bus/spmi/devices/qpnp-bms-*/fcc_chgcyl
+ chmod 0660 /sys/module/qpnp_bms/parameters/*
+ chmod 0660 /sys/module/pm8921_bms/parameters/*
+ mkdir -p /data/bms
+ chown -h root.system /data/bms
+ chmod 0770 /data/bms
+ start battery_monitor
+ fi
+}
+
+start_charger_monitor()
+{
+ if ls /sys/module/qpnp_charger/parameters/charger_monitor; then
+ chown -h root.system /sys/module/qpnp_charger/parameters/*
+ chown -h root.system /sys/class/power_supply/battery/input_current_max
+ chown -h root.system /sys/class/power_supply/battery/input_current_trim
+ chown -h root.system /sys/class/power_supply/battery/input_current_settled
+ chown -h root.system /sys/class/power_supply/battery/voltage_min
+ chmod 0664 /sys/class/power_supply/battery/input_current_max
+ chmod 0664 /sys/class/power_supply/battery/input_current_trim
+ chmod 0664 /sys/class/power_supply/battery/input_current_settled
+ chmod 0664 /sys/class/power_supply/battery/voltage_min
+ chmod 0664 /sys/module/qpnp_charger/parameters/charger_monitor
+ start charger_monitor
+ fi
+}
+
+start_msm_irqbalance_8939()
+{
+ if [ -f /system/bin/msm_irqbalance ]; then
+ case "$platformid" in
+ "239" | "241" | "263" | "264" | "268" | "269" | "270" | "271")
+ start msm_irqbalance;;
+ esac
+ fi
+}
+
start_msm_irqbalance_8952()
{
if [ -f /system/bin/msm_irqbalance ]; then
@@ -40,10 +107,17 @@ start_msm_irqbalance_8952()
fi
}
+start_msm_irqbalance()
+{
+ if [ -f /system/bin/msm_irqbalance ]; then
+ start msm_irqbalance
+ fi
+}
+
start_copying_prebuilt_qcril_db()
{
- if [ -f /vendor/qcril.db -a ! -f /data/misc/radio/qcril.db ]; then
- cp /vendor/qcril.db /data/misc/radio/qcril.db
+ if [ -f /system/vendor/qcril.db -a ! -f /data/misc/radio/qcril.db ]; then
+ cp /system/vendor/qcril.db /data/misc/radio/qcril.db
chown -h radio.radio /data/misc/radio/qcril.db
fi
}
@@ -51,9 +125,14 @@ start_copying_prebuilt_qcril_db()
baseband=`getprop ro.baseband`
echo 1 > /proc/sys/net/ipv6/conf/default/accept_ra_defrtr
+case "$baseband" in
+ "svlte2a")
+ start bridgemgrd
+ ;;
+esac
+
start_sensors
start_copying_prebuilt_qcril_db
-start_msm_irqbalance_8952
if [ -f /sys/class/graphics/fb0/modes ]; then
panel_res=`cat /sys/class/graphics/fb0/modes`
@@ -64,6 +143,305 @@ if [ -f /sys/class/graphics/fb0/modes ]; then
fi
fi
+case "$target" in
+ "msm7630_surf" | "msm7630_1x" | "msm7630_fusion")
+ if [ -f /sys/devices/soc0/hw_platform ]; then
+ value=`cat /sys/devices/soc0/hw_platform`
+ else
+ value=`cat /sys/devices/system/soc/soc0/hw_platform`
+ fi
+ case "$value" in
+ "Fluid")
+ start profiler_daemon;;
+ esac
+ ;;
+ "msm8660" )
+ if [ -f /sys/devices/soc0/hw_platform ]; then
+ platformvalue=`cat /sys/devices/soc0/hw_platform`
+ else
+ platformvalue=`cat /sys/devices/system/soc/soc0/hw_platform`
+ fi
+ case "$platformvalue" in
+ "Fluid")
+ start profiler_daemon;;
+ esac
+ ;;
+ "msm8960")
+ case "$baseband" in
+ "msm")
+ start_battery_monitor;;
+ esac
+
+ if [ -f /sys/devices/soc0/hw_platform ]; then
+ platformvalue=`cat /sys/devices/soc0/hw_platform`
+ else
+ platformvalue=`cat /sys/devices/system/soc/soc0/hw_platform`
+ fi
+ case "$platformvalue" in
+ "Fluid")
+ start profiler_daemon;;
+ "Liquid")
+ start profiler_daemon;;
+ esac
+ ;;
+ "msm8974")
+ platformvalue=`cat /sys/devices/soc0/hw_platform`
+ case "$platformvalue" in
+ "Fluid")
+ start profiler_daemon;;
+ "Liquid")
+ start profiler_daemon;;
+ esac
+ case "$baseband" in
+ "msm")
+ start_battery_monitor
+ ;;
+ esac
+ start_charger_monitor
+ ;;
+ "apq8084")
+ platformvalue=`cat /sys/devices/soc0/hw_platform`
+ case "$platformvalue" in
+ "Fluid")
+ start profiler_daemon;;
+ "Liquid")
+ start profiler_daemon;;
+ esac
+ ;;
+ "msm8226")
+ start_charger_monitor
+ ;;
+ "msm8610")
+ start_charger_monitor
+ ;;
+ "msm8916")
+ start_msm_irqbalance_8939
+ if [ -f /sys/devices/soc0/soc_id ]; then
+ soc_id=`cat /sys/devices/soc0/soc_id`
+ else
+ soc_id=`cat /sys/devices/system/soc/soc0/id`
+ fi
+
+ if [ -f /sys/devices/soc0/platform_subtype_id ]; then
+ platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
+ fi
+ if [ -f /sys/devices/soc0/hw_platform ]; then
+ hw_platform=`cat /sys/devices/soc0/hw_platform`
+ fi
+ case "$soc_id" in
+ "239")
+ case "$hw_platform" in
+ "Surf")
+ case "$platform_subtype_id" in
+ "1" | "2")
+ setprop qemu.hw.mainkeys 0
+ ;;
+ esac
+ ;;
+ "MTP")
+ case "$platform_subtype_id" in
+ "3")
+ setprop qemu.hw.mainkeys 0
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ "msm8952")
+ start_msm_irqbalance_8952
+ if [ -f /sys/devices/soc0/soc_id ]; then
+ soc_id=`cat /sys/devices/soc0/soc_id`
+ else
+ soc_id=`cat /sys/devices/system/soc/soc0/id`
+ fi
+
+ if [ -f /sys/devices/soc0/platform_subtype_id ]; then
+ platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
+ fi
+ if [ -f /sys/devices/soc0/hw_platform ]; then
+ hw_platform=`cat /sys/devices/soc0/hw_platform`
+ fi
+ case "$soc_id" in
+ "264")
+ case "$hw_platform" in
+ "Surf")
+ case "$platform_subtype_id" in
+ "1" | "2")
+ setprop qemu.hw.mainkeys 0
+ ;;
+ esac
+ ;;
+ "MTP")
+ case "$platform_subtype_id" in
+ "3")
+ setprop qemu.hw.mainkeys 0
+ ;;
+ esac
+ ;;
+ "QRD")
+ case "$platform_subtype_id" in
+ "0" | "1")
+ setprop qemu.hw.mainkeys 0
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ "278")
+ case "$hw_platform" in
+ "Surf")
+ case "$platform_subtype_id" in
+ "0")
+ if [ $panel_xres -eq 1440 ]; then
+ setprop qemu.hw.mainkeys 0
+ fi
+ ;;
+ esac
+ ;;
+ "MTP")
+ case "$platform_subtype_id" in
+ "0" | "1")
+ setprop qemu.hw.mainkeys 0
+ ;;
+ esac
+ ;;
+ "QRD")
+ case "$platform_subtype_id" in
+ "0" | "64")
+ setprop qemu.hw.mainkeys 0
+ ;;
+ esac
+ ;;
+ "RCM")
+ case "$platform_subtype_id" in
+ "0")
+ if [ $panel_xres -eq 1440 ]; then
+ setprop qemu.hw.mainkeys 0
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ "266")
+ case "$hw_platform" in
+ "Surf")
+ case "$platform_subtype_id" in
+ "0")
+ if [ $panel_xres -eq 1440 ]; then
+ setprop qemu.hw.mainkeys 0
+ fi
+ ;;
+ esac
+ ;;
+ "MTP")
+ case "$platform_subtype_id" in
+ "0" | "1")
+ setprop qemu.hw.mainkeys 0
+ ;;
+ esac
+ ;;
+ "QRD")
+ case "$platform_subtype_id" in
+ "0")
+ setprop qemu.hw.mainkeys 0
+ ;;
+ esac
+ ;;
+ "RCM")
+ case "$platform_subtype_id" in
+ "0")
+ if [ $panel_xres -eq 1440 ]; then
+ setprop qemu.hw.mainkeys 0
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ "277")
+ case "$hw_platform" in
+ "Surf")
+ case "$platform_subtype_id" in
+ "0")
+ if [ $panel_xres -eq 1440 ]; then
+ setprop qemu.hw.mainkeys 0
+ fi
+ ;;
+ esac
+ ;;
+ "MTP")
+ case "$platform_subtype_id" in
+ "0" | "1")
+ setprop qemu.hw.mainkeys 0
+ ;;
+ esac
+ ;;
+ "QRD")
+ case "$platform_subtype_id" in
+ "0")
+ setprop qemu.hw.mainkeys 0
+ ;;
+ esac
+ ;;
+ "RCM")
+ case "$platform_subtype_id" in
+ "0")
+ if [ $panel_xres -eq 1440 ]; then
+ setprop qemu.hw.mainkeys 0
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ "274")
+ case "$hw_platform" in
+ "Surf")
+ case "$platform_subtype_id" in
+ "0")
+ if [ $panel_xres -eq 1440 ]; then
+ setprop qemu.hw.mainkeys 0
+ fi
+ ;;
+ esac
+ ;;
+ "MTP")
+ case "$platform_subtype_id" in
+ "0" | "1")
+ setprop qemu.hw.mainkeys 0
+ ;;
+ esac
+ ;;
+ "QRD")
+ case "$platform_subtype_id" in
+ "0")
+ setprop qemu.hw.mainkeys 0
+ ;;
+ esac
+ ;;
+ "RCM")
+ case "$platform_subtype_id" in
+ "0")
+ if [ $panel_xres -eq 1440 ]; then
+ setprop qemu.hw.mainkeys 0
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ "msm8994")
+ start_msm_irqbalance
+ ;;
+ "msm8909")
+ ;;
+esac
+
bootmode=`getprop ro.bootmode`
emmc_boot=`getprop ro.boot.emmc`
case "$emmc_boot"
@@ -81,7 +459,9 @@ esac
rm -rf /data/misc/radio/modem_config
mkdir /data/misc/radio/modem_config
chmod 770 /data/misc/radio/modem_config
-cp -r /firmware/image/modem_pr/mcfg/configs/* /data/misc/radio/modem_config
+cp -r /firmware/image/modem_pr/mcfg/configs/* /data/misc/radio/modem_config
chown -hR radio.radio /data/misc/radio/modem_config
+cp /system/etc/mbn_ota.txt /data/misc/radio/modem_config
+chown radio.radio /data/misc/radio/modem_config/mbn_ota.txt
echo 1 > /data/misc/radio/copy_complete
-chown radio:radio /data/misc/radio/copy_complete
+chown radio.radio /data/misc/radio/copy_complete