527 lines
17 KiB
Text
Executable file
527 lines
17 KiB
Text
Executable file
#
|
|
# Copyright 2015 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.angler.usb.rc
|
|
import init.angler.diag.rc
|
|
import init.angler.sensorhub.rc
|
|
|
|
on early-init
|
|
mount debugfs debugfs /sys/kernel/debug
|
|
chown system system /sys/kernel/debug/kgsl/proc
|
|
|
|
on init
|
|
# Load persistent dm-verity state
|
|
verity_load_state
|
|
|
|
# Set permissions for persist partition
|
|
mkdir /persist 0771 system system
|
|
mkdir /firmware 0771 system system
|
|
|
|
symlink /sdcard /storage/sdcard0
|
|
|
|
# Setup zram options
|
|
write /sys/block/zram0/comp_algorithm lz4
|
|
write /sys/block/zram0/max_comp_streams 4
|
|
|
|
write /proc/sys/vm/page-cluster 0
|
|
|
|
on fs
|
|
mount_all ./fstab.angler
|
|
swapon_all ./fstab.angler
|
|
|
|
restorecon_recursive /persist
|
|
mkdir /persist/data/sfs 0700 system system
|
|
mkdir /persist/data/tz 0700 system system
|
|
|
|
# Enable rmnet data and aggregation
|
|
setprop persist.rmnet.mux enabled
|
|
setprop persist.rmnet.data.enable true
|
|
setprop persist.data.wda.enable true
|
|
setprop persist.data.df.agg.dl_pkt 10
|
|
setprop persist.data.df.agg.dl_size 4096
|
|
|
|
on early-boot
|
|
# set RLIMIT_MEMLOCK to 64MB
|
|
setrlimit 8 67108864 67108864
|
|
|
|
# Update dm-verity state and set partition.*.verified properties
|
|
verity_update_state
|
|
|
|
# Busy loop to wait for devices booted by devstart_sh just in case device not ready
|
|
exec - root root system -- /system/bin/init.qcom.devwait.sh
|
|
|
|
on boot
|
|
# execute script to set initial CPU settings
|
|
# don't run as a service to avoid race conditions
|
|
exec - root system -- /system/bin/init.angler.power.sh
|
|
|
|
# Enable DEBUG_SUSPEND, DEBUG_EXIT_SUSPEND, and DEBUG_WAKEUP
|
|
write /sys/module/wakelock/parameters/debug_mask 7
|
|
|
|
# add a cpuset for the camera daemon
|
|
# we want all the little cores for camera
|
|
mkdir /dev/cpuset/camera-daemon
|
|
write /dev/cpuset/camera-daemon/cpus 0
|
|
write /dev/cpuset/camera-daemon/mems 0
|
|
chown system system /dev/cpuset/camera-daemon
|
|
chown system system /dev/cpuset/camera-daemon/tasks
|
|
chmod 0664 /dev/cpuset/camera-daemon/tasks
|
|
|
|
# update foreground cpuset now that processors are up
|
|
# reserve CPU 3 for the top app and camera daemon
|
|
write /dev/cpuset/foreground/cpus 0-2,4-7
|
|
write /dev/cpuset/foreground/boost/cpus 4-7
|
|
write /dev/cpuset/background/cpus 0
|
|
write /dev/cpuset/system-background/cpus 0-2
|
|
write /dev/cpuset/top-app/cpus 0-7
|
|
write /dev/cpuset/camera-daemon/cpus 0-3
|
|
|
|
# setup permissions for fb0 related nodes
|
|
chown radio radio /sys/class/graphics/fb0/dynamic_dsitiming
|
|
|
|
# create symlink for fb1 as HDMI
|
|
symlink /dev/graphics/fb1 /dev/graphics/hdmi
|
|
|
|
# setup permissions for fb1 related nodes
|
|
chown system graphics /sys/class/graphics/fb1/hpd
|
|
chown system graphics /sys/class/graphics/fb1/vendor_name
|
|
chown system graphics /sys/class/graphics/fb1/product_description
|
|
chmod 0664 /sys/devices/virtual/graphics/fb1/hpd
|
|
chmod 0664 /sys/devices/virtual/graphics/fb1/vendor_name
|
|
chmod 0664 /sys/devices/virtual/graphics/fb1/product_description
|
|
|
|
#Create QMUX deamon socket
|
|
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_gps 0770 gps gps
|
|
chmod 2770 /dev/socket/qmux_gps
|
|
|
|
setprop wifi.interface wlan0
|
|
|
|
#wifi sar
|
|
chown radio radio /sys/module/wifi_sar/parameters/wifi_tx_power_limit
|
|
|
|
#compass compensation
|
|
chown root system /sys/class/power_supply/battery/compass_compensation
|
|
|
|
write /sys/bus/platform/drivers/xhci_msm_hsic/unbind msm_hsic_host
|
|
write /sys/module/rmnet_usb/parameters/mux_enabled 1
|
|
write /sys/module/rmnet_usb/parameters/no_fwd_rmnet_links 8
|
|
write /sys/module/rmnet_usb/parameters/no_rmnet_insts_per_dev 17
|
|
write /sys/module/rmnet_usb/parameters/rmnet_data_init 1
|
|
chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait
|
|
|
|
# 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 8388608
|
|
write /proc/sys/net/core/wmem_max 8388608
|
|
|
|
# Leds
|
|
chown system system /sys/class/leds/red/on_off_ms
|
|
chown system system /sys/class/leds/green/on_off_ms
|
|
chown system system /sys/class/leds/blue/on_off_ms
|
|
chown system system /sys/class/leds/red/rgb_start
|
|
|
|
# GPU Tuning
|
|
chown root system /sys/class/kgsl/kgsl-3d0/dispatch/inflight
|
|
chmod 0660 /sys/class/kgsl/kgsl-3d0/dispatch/inflight
|
|
chown root system /sys/class/kgsl/kgsl-3d0/dispatch/inflight_low_latency
|
|
chmod 0660 /sys/class/kgsl/kgsl-3d0/dispatch/inflight_low_latency
|
|
|
|
# Wifi firmware reload path
|
|
chown wifi wifi /sys/module/bcmdhd/parameters/firmware_path
|
|
|
|
# Wifi firmware reload path
|
|
chown wifi wifi /sys/module/bcmdhd/parameters/firmware_path
|
|
|
|
on property:init.svc.per_mgr=running
|
|
start per_proxy
|
|
|
|
on property:sys.shutdown.requested=*
|
|
stop per_proxy
|
|
|
|
on post-fs
|
|
symlink /dev/block/platform/soc.0/f9824900.sdhci /dev/block/bootdevice
|
|
|
|
start qseecomd
|
|
# Busy loop to wait for qseecomd started
|
|
exec - root root system -- /system/bin/init.angler.qseecomd.sh
|
|
# Start devices by sysfs trigger
|
|
start devstart_sh
|
|
|
|
on post-fs-data
|
|
# boot time fs tune
|
|
write /sys/block/mmcblk0/queue/iostats 0
|
|
write /sys/block/mmcblk0/queue/scheduler cfq
|
|
write /sys/block/mmcblk0/queue/iosched/slice_idle 0
|
|
write /sys/block/mmcblk0/queue/read_ahead_kb 2048
|
|
write /sys/block/mmcblk0/queue/nr_requests 256
|
|
write /sys/block/dm-0/queue/read_ahead_kb 2048
|
|
write /sys/block/dm-1/queue/read_ahead_kb 2048
|
|
write /sys/block/dm-2/queue/read_ahead_kb 2048
|
|
|
|
# Ecc_Handler qcril.db
|
|
mkdir /data/misc/radio 0770 system radio
|
|
|
|
setprop vold.post_fs_data_done 1
|
|
|
|
mkdir /data/misc/qsee 0770 system system
|
|
mkdir /data/fpc 0700 system system
|
|
|
|
#Create folder for mm-qcamera-daemon
|
|
mkdir /data/misc/camera 0770 camera camera
|
|
|
|
#Create folder for display calibration data
|
|
mkdir /data/misc/display 0770 system graphics
|
|
|
|
# Create /data/time folder for time-services
|
|
mkdir /data/time/ 0700 system system
|
|
mkdir /data/audio/ 0770 media audio
|
|
|
|
# Create folder for perf daemon
|
|
mkdir /data/misc/perfd 0755 root system
|
|
chmod 2755 /data/misc/perfd
|
|
mkdir /data/system/perfd 0770 root system
|
|
rm /data/system/perfd/default_values
|
|
chmod 2770 /data/system/perfd
|
|
setprop ro.min_freq_0 384000
|
|
setprop ro.min_freq_4 384000
|
|
|
|
# Create the directories used by CnE subsystem
|
|
mkdir /data/connectivity 0771 system system
|
|
chown system system /data/connectivity
|
|
|
|
#Create directory from IMS services
|
|
mkdir /data/shared 0755
|
|
chown system system /data/shared
|
|
|
|
# Mark the copy complete flag to not completed
|
|
write /data/misc/radio/copy_complete 0
|
|
chown radio radio /data/misc/radio/copy_complete
|
|
chmod 0660 /data/misc/radio/copy_complete
|
|
|
|
# Configure bluetooth
|
|
chmod 0660 /proc/bluetooth/sleep/lpm
|
|
chmod 0660 /proc/bluetooth/sleep/btwrite
|
|
chmod 0660 /sys/class/rfkill/rfkill0/state
|
|
chmod 0660 /dev/ttyHS0
|
|
chown bluetooth bluetooth /proc/bluetooth/sleep/lpm
|
|
chown bluetooth bluetooth /proc/bluetooth/sleep/btwrite
|
|
chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
|
|
chown bluetooth bluetooth /dev/ttyHS0
|
|
|
|
# Create nfc local data
|
|
mkdir /data/nfc 0770 nfc nfc
|
|
mkdir /data/vendor/nfc 0770 nfc nfc
|
|
|
|
#modify access for speaker calibdata
|
|
chown system system /persist/audio/speaker_calibdata.bin
|
|
chmod 0444 /persist/audio/speaker_calibdata.bin
|
|
|
|
#modify access for laser calibration data
|
|
chmod 0710 /persist/data
|
|
chmod 0440 /persist/data/st_offset
|
|
chmod 0440 /persist/data/st_xtalk
|
|
|
|
# File flags for prebuilt ril db file
|
|
write /data/misc/radio/prebuilt_db_support 1
|
|
chown radio radio /data/misc/radio/prebuilt_db_support
|
|
chmod 0400 /data/misc/radio/prebuilt_db_support
|
|
write /data/misc/radio/db_check_done 0
|
|
chown radio radio /data/misc/radio/db_check_done
|
|
chmod 0660 /data/misc/radio/db_check_done
|
|
|
|
chown system system /sys/class/kgsl/kgsl-3d0/devfreq/max_freq
|
|
chmod 0660 /sys/class/kgsl/kgsl-3d0/devfreq/max_freq
|
|
chown system system /sys/class/kgsl/kgsl-3d0/devfreq/min_freq
|
|
chmod 0660 /sys/class/kgsl/kgsl-3d0/devfreq/min_freq
|
|
chown system system /sys/class/devfreq/qcom,gpubw.70/min_freq
|
|
chmod 0660 /sys/class/devfreq/qcom,gpubw.70/min_freq
|
|
chown system system /sys/devices/system/cpu/cpu4/online
|
|
chmod 0660 /sys/devices/system/cpu/cpu4/online
|
|
chown system system /sys/devices/system/cpu/cpu5/online
|
|
chmod 0660 /sys/devices/system/cpu/cpu5/online
|
|
chown system system /sys/devices/system/cpu/cpu6/online
|
|
chmod 0660 /sys/devices/system/cpu/cpu6/online
|
|
chown system system /sys/devices/system/cpu/cpu7/online
|
|
chmod 0660 /sys/devices/system/cpu/cpu7/online
|
|
on charger
|
|
#set cpu4,5 online first, or they can't get into low power consumption mode
|
|
write /sys/devices/system/cpu/cpu4/online 1
|
|
write /sys/devices/system/cpu/cpu5/online 1
|
|
#low power governing
|
|
write /sys/devices/soc.0/qcom,bcl.60/mode disable
|
|
write /sys/devices/soc.0/qcom,bcl.60/hotplug_mask 0
|
|
write /sys/devices/soc.0/qcom,bcl.60/hotplug_soc_mask 0
|
|
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor interactive
|
|
write /sys/devices/system/cpu/cpu1/online 0
|
|
write /sys/devices/system/cpu/cpu2/online 0
|
|
write /sys/devices/system/cpu/cpu3/online 0
|
|
write /sys/devices/system/cpu/cpu4/online 0
|
|
write /sys/devices/system/cpu/cpu5/online 0
|
|
write /sys/devices/system/cpu/cpu6/online 0
|
|
write /sys/devices/system/cpu/cpu7/online 0
|
|
|
|
on property:sys.boot_completed=1
|
|
#allow CPUs to go in deeper idle state than C0
|
|
write /sys/module/lpm_levels/parameters/sleep_disabled 0
|
|
#end boot time fs tune
|
|
write /sys/block/mmcblk0/queue/scheduler noop
|
|
write /sys/block/mmcblk0/queue/rq_affinity 0
|
|
write /sys/block/mmcblk0/queue/read_ahead_kb 128
|
|
write /sys/block/mmcblk0/queue/nr_requests 128
|
|
write /sys/block/dm-0/queue/read_ahead_kb 128
|
|
write /sys/block/dm-1/queue/read_ahead_kb 128
|
|
write /sys/block/dm-2/queue/read_ahead_kb 128
|
|
write /sys/block/mmcblk0/queue/iostats 1
|
|
|
|
# Search the laser device under /dev/input, then create symlink
|
|
service InputEventFind /vendor/bin/InputEventFind
|
|
class main
|
|
oneshot
|
|
|
|
service ssr_setup /system/bin/ssr_setup
|
|
oneshot
|
|
disabled
|
|
|
|
service ss_ramdump /system/bin/subsystem_ramdump
|
|
class main
|
|
user system
|
|
group system
|
|
disabled
|
|
|
|
on property:persist.sys.ssr.restart_level=*
|
|
start ssr_setup
|
|
|
|
on property:persist.sys.ssr.enable_ramdumps=1
|
|
write /sys/module/subsystem_restart/parameters/enable_ramdumps 1
|
|
start ss_ramdump
|
|
|
|
on property:persist.sys.ssr.enable_ramdumps=0
|
|
write /sys/module/subsystem_restart/parameters/enable_ramdumps 0
|
|
|
|
service charger /charger
|
|
class charger
|
|
group log
|
|
seclabel u:r:charger:s0
|
|
writepid /dev/cpuset/system-background/tasks
|
|
|
|
service per_mgr /vendor/bin/pm-service
|
|
class core
|
|
user root
|
|
group system net_raw
|
|
writepid /dev/cpuset/system-background/tasks
|
|
|
|
service per_proxy /vendor/bin/pm-proxy
|
|
class core
|
|
user root
|
|
group system net_raw
|
|
writepid /dev/cpuset/system-background/tasks
|
|
disabled
|
|
|
|
service rmt_storage /vendor/bin/rmt_storage
|
|
class core
|
|
user root
|
|
group system wakelock
|
|
writepid /dev/cpuset/system-background/tasks
|
|
shutdown critical
|
|
|
|
service qseecomd /vendor/bin/qseecomd
|
|
class core
|
|
user root
|
|
group root
|
|
writepid /dev/cpuset/system-background/tasks
|
|
|
|
service irsc_util /vendor/bin/irsc_util "/vendor/etc/sec_config"
|
|
class main
|
|
user root
|
|
oneshot
|
|
|
|
service thermal-engine /vendor/bin/thermal-engine
|
|
class main
|
|
user root
|
|
socket thermal-send-client stream 0660 system system
|
|
socket thermal-recv-client stream 0660 system system
|
|
socket thermal-recv-passive-client stream 0660 system system
|
|
group root radio system
|
|
writepid /dev/cpuset/system-background/tasks
|
|
|
|
# QMUX must be in multiple groups to support external process connections
|
|
service qmuxd /vendor/bin/qmuxd
|
|
class main
|
|
user radio
|
|
group radio audio bluetooth wakelock gps
|
|
writepid /dev/cpuset/system-background/tasks
|
|
|
|
service perfd /vendor/bin/perfd
|
|
class main
|
|
user root
|
|
group system
|
|
writepid /dev/cpuset/system-background/tasks
|
|
|
|
service netmgrd /vendor/bin/netmgrd
|
|
class main
|
|
group radio system wakelock
|
|
writepid /dev/cpuset/system-background/tasks
|
|
|
|
service qti /vendor/bin/qti
|
|
class main
|
|
user radio
|
|
group radio net_raw usb net_admin
|
|
writepid /dev/cpuset/system-background/tasks
|
|
|
|
service time_daemon /vendor/bin/time_daemon
|
|
class late_start
|
|
user root
|
|
group root
|
|
writepid /dev/cpuset/system-background/tasks
|
|
|
|
service loc_launcher /vendor/bin/loc_launcher
|
|
class late_start
|
|
group gps inet net_raw net_admin wifi
|
|
writepid /dev/cpuset/system-background/tasks
|
|
|
|
# bugreport is triggered by holding down volume down, volume up and power
|
|
service bugreport /system/bin/dumpstate -d -p -B -z \
|
|
-o /data/user_de/0/com.android.shell/files/bugreports/bugreport
|
|
class main
|
|
disabled
|
|
oneshot
|
|
keycodes 114 115 116
|
|
|
|
# start camera server as daemon
|
|
service qcamerasvr /vendor/bin/mm-qcamera-daemon
|
|
class late_start
|
|
user camera
|
|
group camera system inet input graphics
|
|
writepid /dev/cpuset/camera-daemon/tasks
|
|
|
|
service wpa_supplicant /vendor/bin/hw/wpa_supplicant \
|
|
-iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
|
|
-I/system/etc/wifi/p2p_supplicant_overlay.conf \
|
|
-O/data/misc/wifi/sockets \
|
|
-m/data/misc/wifi/p2p_supplicant.conf \
|
|
-puse_p2p_group_interface=1p2p_device=1 \
|
|
-e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
|
|
class main
|
|
socket wpa_wlan0 dgram 660 wifi wifi
|
|
disabled
|
|
oneshot
|
|
|
|
service imsqmidaemon /system/bin/imsqmidaemon
|
|
class main
|
|
user system
|
|
socket ims_qmid stream 0660 system radio
|
|
group radio net_raw log diag
|
|
writepid /dev/cpuset/system-background/tasks
|
|
|
|
service imsdatadaemon /system/bin/imsdatadaemon
|
|
class main
|
|
user system
|
|
socket ims_datad stream 0660 system radio
|
|
group system wifi radio inet net_raw log diag net_admin
|
|
writepid /dev/cpuset/system-background/tasks
|
|
disabled
|
|
|
|
on property:sys.ims.QMI_DAEMON_STATUS=1
|
|
start imsdatadaemon
|
|
|
|
service imscmservice /system/bin/imscmservice
|
|
class main
|
|
user system
|
|
group radio net_raw diag diag log
|
|
writepid /dev/cpuset/system-background/tasks
|
|
|
|
service cnd /vendor/bin/cnd
|
|
class late_start
|
|
socket cnd stream 660 root inet
|
|
group root wakelock
|
|
writepid /dev/cpuset/system-background/tasks
|
|
|
|
on property:ro.boot.hardware.revision=ANGLER-V1
|
|
write /sys/module/bcmdhd/parameters/nvram_path \
|
|
/system/etc/wifi/bcmdhd-pme.cal
|
|
|
|
on property:ro.boot.hardware.revision=ANGLER-V2
|
|
write /sys/module/bcmdhd/parameters/nvram_path \
|
|
/system/etc/wifi/bcmdhd-pme.cal
|
|
|
|
on property:ro.boot.wifi_cal=2
|
|
write /sys/module/bcmdhd/parameters/nvram_path \
|
|
/system/etc/wifi/bcmdhd-low.cal
|
|
|
|
on property:ro.boot.wifi_cal=3
|
|
write /sys/module/bcmdhd/parameters/nvram_path \
|
|
/system/etc/wifi/bcmdhd-high.cal
|
|
|
|
on property:ro.boot.hardware.sku=H1511
|
|
setprop ro.boot.wificountrycode US
|
|
|
|
service mcfg-sh /system/bin/init.mcfg.sh
|
|
class late_start
|
|
user radio
|
|
group radio system
|
|
oneshot
|
|
|
|
service radio-sh /system/bin/init.radio.sh
|
|
class main
|
|
user radio
|
|
group root radio
|
|
oneshot
|
|
|
|
service oem_qmi_server /vendor/bin/oem_qmi_server
|
|
class main
|
|
user root
|
|
group system radio
|
|
|
|
service msm_irqbalance /vendor/bin/msm_irqbalance -f /vendor/etc/msm_irqbalance.conf
|
|
socket msm_irqbalance seqpacket 660 root system
|
|
class core
|
|
user root
|
|
group root
|
|
writepid /dev/cpuset/system-background/tasks
|
|
|
|
#start atfwd as daemon
|
|
service atfwd /vendor/bin/ATFWD-daemon
|
|
class late_start
|
|
user system
|
|
group system radio
|
|
|
|
service ppd /system/bin/mm-pp-daemon
|
|
class late_start
|
|
user system
|
|
socket pps stream 0660 system system
|
|
group system graphics
|
|
|
|
on property:init.svc.surfaceflinger=stopped
|
|
stop ppd
|
|
|
|
service diag_test_server /vendor/bin/diag_test_server
|
|
class core
|
|
user root
|
|
disabled
|
|
|
|
on property:ro.boot.mode=hw-factory
|
|
start diag_test_server
|
|
|
|
service devstart_sh /system/bin/init.qcom.devstart.sh
|
|
class main
|
|
user root
|
|
group root system
|
|
disabled
|
|
oneshot
|