346 lines
13 KiB
Plaintext
346 lines
13 KiB
Plaintext
# Copyright (c) 2013-2014,2018, 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 "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 /vendor/etc/init/hw/init.mmi.rc
|
|
import /vendor/etc/init/hw/init.${ro.boot.device}.rc
|
|
|
|
on early-init
|
|
exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules audio_apr audio_adsp_loader audio_q6_notifier audio_q6 audio_usf audio_native audio_pinctrl_wcd audio_swr audio_platform audio_swr_ctrl audio_hdmi audio_wcd9xxx audio_wcd_core audio_wsa881x_analog audio_wsa881x audio_mbhc audio_stub audio_digital_cdc audio_analog_cdc audio_wcd_cpe audio_cpe_lsm audio_wcd9335 audio_machine_sdm450 audio_machine_ext_sdm450
|
|
write /proc/sys/kernel/sched_boost 1
|
|
mkdir /firmware 0771 system system
|
|
symlink /data/tombstones /tombstones
|
|
|
|
on init
|
|
setprop ro.vendor.fsg-id ${ro.boot.fsg-id}
|
|
setprop ro.vendor.hw.dualsim ${ro.boot.dualsim}
|
|
setprop ro.vendor.hw.device ${ro.boot.device}
|
|
setprop ro.vendor.hw.radio ${ro.boot.radio}
|
|
setprop ro.vendor.hw.revision ${ro.boot.revision}
|
|
setprop ro.vendor.carrier ${ro.boot.carrier}
|
|
setprop ro.vendor.boot.cid ${ro.boot.cid}
|
|
setprop ro.vendor.boot.radio ${ro.boot.radio}
|
|
setprop ro.vendor.boot.powerup_reason ${ro.boot.powerup_reason}
|
|
setprop ro.vendor.boot.bl_state ${ro.boot.bl_state}
|
|
setprop ro.vendor.boot.serialno ${ro.boot.serialno}
|
|
setprop ro.vendor.zygote ${ro.zygote}
|
|
setprop ro.vendor.hw.hwrev 99999
|
|
setprop ro.vendor.boot.hwrev 99999
|
|
|
|
# Translate MMI property in order to keep consistent with QCOM
|
|
on property:ro.vendor.hw.dualsim=true
|
|
setprop persist.radio.multisim.config dsds
|
|
|
|
on property:ro.vendor.hw.dualsim=false
|
|
setprop persist.radio.multisim.config ""
|
|
|
|
on fs
|
|
wait /dev/block/platform/soc/${ro.boot.bootdevice}
|
|
symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice
|
|
mount_all /vendor/etc/fstab.qcom --early
|
|
write /proc/sys/vm/swappiness 100
|
|
chown root system /mnt/vendor/persist
|
|
chmod 0771 /mnt/vendor/persist
|
|
mkdir /mnt/vendor/persist/data 0700 system system
|
|
mkdir /mnt/vendor/persist/bms 0700 root system
|
|
# Reloading context for NPI uses /mnt/vendor/persist
|
|
exec u:r:vendor_toolbox:s0 root audio bluetooth graphics media net_raw system vendor_rfs vendor_rfs_shared -- /vendor/bin/toybox_vendor find /mnt/vendor/persist -type d -exec /vendor/bin/toybox_vendor setfattr -x security.sehash {} \;
|
|
restorecon_recursive /mnt/vendor/persist
|
|
|
|
write /proc/sys/vm/swappiness 100
|
|
#write /sys/kernel/boot_adsp/boot 1
|
|
|
|
#wait /dev/block/bootdevice/by-name/oem
|
|
#mount ext4 /dev/block/bootdevice/by-name/oem /oem ro nosuid nodev barrier=1
|
|
|
|
on late-fs
|
|
# Start services for bootanim
|
|
start servicemanager
|
|
start surfaceflinger
|
|
start bootanim
|
|
|
|
start vendor.configstore-hal
|
|
start vendor.gralloc-2-0
|
|
|
|
# Wait for hwservicemanager ready since fsck might be triggered in mount_all --late
|
|
# In such case, init won't responce the property_set from hwservicemanager and then
|
|
# cause services for bootanim not running.
|
|
wait_for_prop hwservicemanager.ready true
|
|
|
|
# mount RW partitions which need run fsck
|
|
mount_all /vendor/etc/fstab.qcom --late
|
|
|
|
on post-fs
|
|
# set RLIMIT_MEMLOCK to 64MB
|
|
setrlimit 8 67108864 67108864
|
|
|
|
start vendor.qseecomd
|
|
exec - system system -- /vendor/bin/init.qti.qseecomd.sh
|
|
|
|
on post-fs-data
|
|
mkdir /data/tombstones 0771 system system
|
|
mkdir /tombstones/modem 0771 system system
|
|
mkdir /tombstones/lpass 0771 system system
|
|
mkdir /tombstones/wcnss 0771 system system
|
|
mkdir /tombstones/dsps 0771 system system
|
|
mkdir /persist/data/sfs 0700 system system
|
|
mkdir /persist/data/tz 0700 system system
|
|
mkdir /data/misc/dts 0770 media audio
|
|
mkdir /data/vendor/hbtp 0750 system system
|
|
mkdir /data/vendor/tloc 0700 system drmrpc
|
|
|
|
|
|
#Create folder for mm-qcamera-daemon
|
|
mkdir /data/vendor/camera 0770 camera camera
|
|
|
|
#start camera server as daemon
|
|
service qcamerasvr /system/vendor/bin/mm-qcamera-daemon
|
|
class main
|
|
user camera
|
|
group camera system inet input graphics
|
|
|
|
on init
|
|
write /dev/stune/foreground/schedtune.sched_boost_no_override 1
|
|
write /dev/stune/top-app/schedtune.sched_boost_no_override 1
|
|
write /dev/stune/schedtune.colocate 0
|
|
write /dev/stune/background/schedtune.colocate 0
|
|
write /dev/stune/foreground/schedtune.colocate 0
|
|
write /dev/stune/top-app/schedtune.colocate 1
|
|
write /sys/module/qpnp_rtc/parameters/poweron_alarm 1
|
|
|
|
# Allow usb charging to be disabled peristently
|
|
on property:persist.usb.chgdisabled=1
|
|
write /sys/class/power_supply/battery/charging_enabled 0
|
|
|
|
on property:persist.usb.chgdisabled=0
|
|
write /sys/class/power_supply/battery/charging_enabled 1
|
|
|
|
# FM
|
|
on property:hw.fm.init=0
|
|
write /sys/module/radio_iris_transport/parameters/fmsmd_set 0
|
|
|
|
on property:hw.fm.init=1
|
|
write /sys/module/radio_iris_transport/parameters/fmsmd_set 1
|
|
|
|
service vendor.qseecomd /vendor/bin/qseecomd
|
|
class core
|
|
user root
|
|
group root
|
|
|
|
service perfd /system/vendor/bin/perfd
|
|
class main
|
|
user root
|
|
disabled
|
|
|
|
service thermal-engine /system/vendor/bin/thermal-engine
|
|
class main
|
|
user root
|
|
socket thermal-send-client stream 0666 system system
|
|
socket thermal-recv-client stream 0660 system system
|
|
socket thermal-recv-passive-client stream 0666 system system
|
|
socket thermal-send-rule stream 0660 system system
|
|
group root system
|
|
|
|
service audiod /system/vendor/bin/audiod
|
|
class late_start
|
|
user system
|
|
group system
|
|
|
|
on boot
|
|
start rmt_storage
|
|
insmod /system/lib/modules/adsprpc.ko
|
|
# access permission for secure touch
|
|
chmod 0660 /sys/devices/soc.0/78b7000.i2c/i2c-3/3-0020/input/input0/secure_touch_enable
|
|
chmod 0440 /sys/devices/soc.0/78b7000.i2c/i2c-3/3-0020/input/input0/secure_touch
|
|
chmod 0660 /sys/devices/soc.0/78b8000.i2c/i2c-4/4-0020/input/input0/secure_touch_enable
|
|
chmod 0440 /sys/devices/soc.0/78b8000.i2c/i2c-4/4-0020/input/input0/secure_touch
|
|
chown system drmrpc /sys/devices/soc.0/78b7000.i2c/i2c-3/3-0020/input/input0/secure_touch_enable
|
|
chown system drmrpc /sys/devices/soc.0/78b7000.i2c/i2c-3/3-0020/input/input0/secure_touch
|
|
chown system drmrpc /sys/devices/soc.0/78b8000.i2c/i2c-4/4-0020/input/input0/secure_touch_enable
|
|
chown system drmrpc /sys/devices/soc.0/78b8000.i2c/i2c-4/4-0020/input/input0/secure_touch
|
|
|
|
# Add a cpuset for the camera daemon
|
|
# We want all cores for camera
|
|
mkdir /dev/cpuset/camera-daemon
|
|
write /dev/cpuset/camera-daemon/cpus 0-3
|
|
write /dev/cpuset/camera-daemon/mems 0
|
|
chown cameraserver cameraserver /dev/cpuset/camera-daemon
|
|
chown cameraserver cameraserver /dev/cpuset/camera-daemon/tasks
|
|
chmod 0660 /dev/cpuset/camera-daemon/tasks
|
|
|
|
####Regionalization config and prop files####
|
|
chmod 0644 /persist/speccfg/spec
|
|
chmod 0644 /persist/speccfg/devicetype
|
|
chmod 0644 /persist/speccfg/mbnversion
|
|
chmod 0644 /persist/speccfg/.not_triggered
|
|
chmod 0644 /persist/speccfg/vendor_ro.prop
|
|
chmod 0644 /persist/speccfg/vendor_persist.prop
|
|
chmod 0644 /persist/speccfg/submask
|
|
chmod 0644 /persist/speccfg/partition
|
|
chown system system /persist/speccfg/spec
|
|
chown system system /persist/speccfg/devicetype
|
|
chown system system /persist/speccfg/mbnversion
|
|
chown system system /persist/speccfg/.not_triggered
|
|
chown system system /persist/speccfg/vendor_ro.prop
|
|
chown system system /persist/speccfg/vendor_persist.prop
|
|
chown system system /persist/speccfg/submask
|
|
chown system system /persist/speccfg/partition
|
|
|
|
# access permission for wlan
|
|
chown system system /mnt/vendor/persist/WCNSS_qcom_wlan_nv.bin
|
|
|
|
#USB controller configuration
|
|
write /sys/module/g_android/parameters/mtp_tx_req_len 131072
|
|
write /sys/module/g_android/parameters/mtp_rx_req_len 131072
|
|
write /sys/class/android_usb/android0/f_rndis_qc/rndis_transports BAM2BAM_IPA
|
|
setprop vendor.usb.rndis.func.name "rndis_bam"
|
|
setprop vendor.usb.rmnet.func.name "rmnet_bam"
|
|
setprop vendor.usb.rmnet.inst.name "rmnet"
|
|
setprop vendor.usb.dpl.inst.name "dpl"
|
|
|
|
#Turn on GPU rate stats through gcc_oxili_gfx3d_clk
|
|
chown system system /sys/kernel/debug/clk/gcc_oxili_gfx3d_clk/rate_stats
|
|
chmod 0664 /sys/kernel/debug/clk/gcc_oxili_gfx3d_clk/rate_stats
|
|
write /sys/kernel/debug/clk/gcc_oxili_gfx3d_clk/rate_stats 1
|
|
|
|
on property:init.svc.surfaceflinger=stopped
|
|
stop ppd
|
|
|
|
on property:init.svc.surfaceflinger=running
|
|
start ppd
|
|
|
|
on property:init.svc.surfaceflinger=restarting
|
|
stop ppd
|
|
|
|
on property:init.svc.zygote=stopped
|
|
stop ppd
|
|
|
|
on property:init.svc.zygote=running
|
|
start ppd
|
|
|
|
on property:init.svc.zygote=restarting
|
|
stop ppd
|
|
|
|
service wcnss-service /system/vendor/bin/wcnss_service
|
|
class late_start
|
|
user system
|
|
group system wifi radio
|
|
oneshot
|
|
|
|
on charger
|
|
wait /dev/block/bootdevice/by-name/system
|
|
mount ext4 /dev/block/bootdevice/by-name/system /system ro barrier=1
|
|
load_system_props
|
|
setprop persist.sys.usb.config mass_storage
|
|
start qcom-post-boot
|
|
setprop persist.sys.usb.config mass_storage
|
|
|
|
on charger && property:ro.boot.usbconfigfs=true
|
|
setprop sys.usb.configfs 1
|
|
|
|
on charger && property:ro.boot.usbconfigfs=false
|
|
setprop sys.usb.configfs 0
|
|
|
|
## imsdatadaemon starts with root and UID will be downgraded to SYSTEM.
|
|
service vendor.imsqmidaemon /system/vendor/bin/imsqmidaemon
|
|
class main
|
|
user radio
|
|
socket ims_qmid stream 0660 system radio
|
|
group radio log diag
|
|
|
|
# imsdatadaemon starts with root and UID will be downgraded to SYSTEM.
|
|
service vendor.imsdatadaemon /system/vendor/bin/imsdatadaemon
|
|
class main
|
|
user radio
|
|
socket ims_datad stream 0660 system radio
|
|
group radio wifi inet log diag
|
|
disabled
|
|
|
|
on property:vendor.ims.QMI_DAEMON_STATUS=1
|
|
start vendor.imsdatadaemon
|
|
|
|
service vendor.ims_rtp_daemon /vendor/bin/ims_rtp_daemon
|
|
class main
|
|
user radio
|
|
group radio vendor_qti_diag inet log
|
|
|
|
service vendor.imsrcsservice /system/vendor/bin/imsrcsd
|
|
class main
|
|
user system
|
|
group radio diag inet log wakelock
|
|
|
|
on property:vendor.ims.DATA_DAEMON_STATUS=1
|
|
restart vendor.ims_rtp_daemon
|
|
|
|
service adsprpcd /system/vendor/bin/adsprpcd
|
|
class main
|
|
user media
|
|
group media
|
|
|
|
service vendor.per_mgr /system/vendor/bin/pm-service
|
|
class core
|
|
user system
|
|
group system net_raw
|
|
|
|
service vendor.per_proxy /system/vendor/bin/pm-proxy
|
|
class core
|
|
user system
|
|
group system
|
|
disabled
|
|
|
|
on property:init.svc.vendor.per_mgr=running
|
|
start vendor.per_proxy
|
|
|
|
on property:sys.shutdown.requested=*
|
|
stop vendor.per_proxy
|
|
stop vendor.ims_rtp_daemon
|
|
|
|
service energy-awareness /system/vendor/bin/energy-awareness
|
|
class main
|
|
user root
|
|
group system
|
|
oneshot
|
|
|
|
on boot
|
|
write /sys/devices/soc/78b8000.i2c/i2c-4/4-0020/input/input0/fw_name PR1702898-s3528t_00260005_00380008.img
|
|
write /sys/devices/soc/78b8000.i2c/i2c-4/4-0020/input/input0/update_fw 1
|
|
|
|
on boot
|
|
chown system iystem /sys/class/leds/red/blink
|
|
chown system system /sys/class/leds/red/breath
|
|
chown system system /sys/class/leds/red/delay_on
|
|
chown system system /sys/class/leds/red/delay_off
|
|
chown system system /sys/class/leds/green/blink
|
|
chown system system /sys/class/leds/green/breath
|
|
chown system system /sys/class/leds/green/delay_on
|
|
chown system system /sys/class/leds/green/delay_off
|
|
chown system system /sys/class/leds/blue/blink
|
|
chown system system /sys/class/leds/blue/breath
|
|
chown system system /sys/class/leds/blue/delay_on
|
|
chown system system /sys/class/leds/blue/delay_off
|