You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
460 lines
15 KiB
460 lines
15 KiB
# |
|
# 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.bullhead.usb.rc |
|
import init.bullhead.diag.rc |
|
import init.bullhead.fp.rc |
|
import init.bullhead.sensorhub.rc |
|
import init.bullhead.ramdump.rc |
|
import init.bullhead.misc.rc |
|
|
|
on early-init |
|
mount debugfs debugfs /sys/kernel/debug |
|
chown system system /sys/kernel/debug/kgsl/proc |
|
|
|
on charger |
|
# disable FPS clk |
|
write /sys/bus/spi/drivers/fpc1020/spi1.2/clk_enable 0 |
|
|
|
# low power governing |
|
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/cpu0/cpufreq/scaling_governor powersave |
|
|
|
# Disable CPU retention |
|
write /sys/module/lpm_levels/system/a53/cpu0/retention/idle_enabled 0 |
|
write /sys/module/lpm_levels/system/a53/cpu1/retention/idle_enabled 0 |
|
write /sys/module/lpm_levels/system/a53/cpu2/retention/idle_enabled 0 |
|
write /sys/module/lpm_levels/system/a53/cpu3/retention/idle_enabled 0 |
|
write /sys/module/lpm_levels/system/a57/cpu4/retention/idle_enabled 0 |
|
write /sys/module/lpm_levels/system/a57/cpu5/retention/idle_enabled 0 |
|
# Disable L2 retention |
|
write /sys/module/lpm_levels/system/a53/a53-l2-retention/idle_enabled 0 |
|
write /sys/module/lpm_levels/system/a57/a57-l2-retention/idle_enabled 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/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 |
|
|
|
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 |
|
|
|
# NXP HAL expects /dev/pn54x |
|
symlink /dev/pn548 /dev/pn54x |
|
|
|
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.bullhead |
|
swapon_all ./fstab.bullhead |
|
|
|
restorecon_recursive /persist |
|
|
|
on early-boot |
|
# set RLIMIT_MEMLOCK to 64MB |
|
setrlimit 8 67108864 67108864 |
|
|
|
# Allow subsystem (modem etc) debugging |
|
write /sys/module/subsystem_restart/parameters/enable_debug ${persist.sys.ssr.enable_debug} |
|
write /sys/module/pil_msa/parameters/pbl_mba_boot_timeout_ms ${persist.sys.mba_boot_timeout} |
|
write /sys/module/pil_msa/parameters/modem_auth_timeout_ms ${persist.sys.modem_auth_timeout} |
|
write /sys/module/peripheral_loader/parameters/proxy_timeout_ms ${persist.sys.pil_proxy_timeout} |
|
|
|
# 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 root system -- /system/bin/init.bullhead.power.sh |
|
|
|
# update foreground cpuset now that processors are up |
|
# foreground gets all CPUs except CPU 3 |
|
# CPU 3 is reserved for the top app |
|
write /dev/cpuset/foreground/cpus 0-2,4-5 |
|
write /dev/cpuset/foreground/boost/cpus 4-5 |
|
write /dev/cpuset/background/cpus 0 |
|
write /dev/cpuset/system-background/cpus 0-2 |
|
write /dev/cpuset/top-app/cpus 0-5 |
|
|
|
# Bluetooth |
|
chown bluetooth net_bt /sys/class/rfkill/rfkill0/type |
|
chown bluetooth net_bt /sys/class/rfkill/rfkill0/state |
|
chmod 0660 /sys/class/rfkill/rfkill0/state |
|
chown bluetooth net_bt /dev/ttyHS0 |
|
chmod 0660 /dev/ttyHS0 |
|
chown bluetooth net_bt /sys/class/rfkill/rfkill0/device/extldo |
|
chmod 0660 /sys/class/rfkill/rfkill0/device/extldo |
|
|
|
# Fingerprint |
|
chown system system /sys/bus/spi/drivers/fpc1020/spi1.2/clk_enable |
|
chown system system /sys/bus/spi/drivers/fpc1020/spi1.2/wakeup_enable |
|
chown system system /sys/bus/spi/drivers/fpc1020/spi1.2/irq |
|
|
|
# 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 |
|
|
|
# Grant permission to modify the color_temp setting |
|
chown system graphics /sys/class/graphics/fb0/color_temp |
|
chmod 0664 /sys/class/graphics/fb0/color_temp |
|
|
|
# Allow QMUX daemon to assign port open wait time |
|
chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait |
|
|
|
#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 |
|
|
|
# Subsytem Restart |
|
write /sys/bus/msm_subsys/devices/subsys0/restart_level "related" |
|
write /sys/bus/msm_subsys/devices/subsys1/restart_level "related" |
|
write /sys/bus/msm_subsys/devices/subsys2/restart_level "related" |
|
write /sys/bus/msm_subsys/devices/subsys3/restart_level "related" |
|
|
|
# Subsytem Ramdump collection |
|
write /sys/module/subsystem_restart/parameters/enable_ramdumps 1 |
|
write /sys/module/msm_poweroff/parameters/download_mode 0 |
|
|
|
# Adjust socket buffer to enlarge TCP receive window for high bandwidth |
|
write /proc/sys/net/ipv4/tcp_adv_win_scale 1 |
|
|
|
# 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 |
|
|
|
# Wifi firmware reload path |
|
chown wifi wifi /sys/module/wlan/parameters/fwpath |
|
|
|
# Wifi firmware reload path |
|
chown wifi wifi /sys/module/wlan/parameters/fwpath |
|
|
|
on post-fs |
|
symlink /dev/block/platform/soc.0/f9824900.sdhci /dev/block/bootdevice |
|
|
|
mkdir /persist/data 0700 system system |
|
mkdir /persist/data/sfs 0700 system system |
|
mkdir /persist/data/tz 0700 system system |
|
mkdir /persist/data/app_g 0700 system system |
|
mkdir /persist/widevine 0770 drm system |
|
|
|
start qseecomd |
|
# Busy loop to wait for qseecomd started |
|
exec - root root system -- /system/bin/init.bullhead.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/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 |
|
|
|
# Mark the copy complete flag to not completed |
|
mkdir /data/misc/radio 0770 radio radio |
|
write /data/misc/radio/copy_complete 0 |
|
chown radio radio /data/misc/radio/copy_complete |
|
chmod 0660 /data/misc/radio/copy_complete |
|
|
|
#Update touch firmware if required |
|
write /sys/bus/i2c/devices/2-0020/check_fw 1 |
|
write /sys/devices/soc.0/f9924000.i2c/power/control on |
|
|
|
# Create /data/time folder for time-services |
|
mkdir /data/time/ 0700 system system |
|
|
|
# Create the directories used by CnE subsystem |
|
mkdir /data/connectivity 0771 system system |
|
|
|
# NFC: create data/nfc for nv storage |
|
mkdir /data/nfc 0770 nfc nfc |
|
mkdir /data/vendor/nfc 0770 nfc nfc |
|
mkdir /data/nfc/param 0770 nfc nfc |
|
|
|
# use qcril.db to handle Ecc and load MBN |
|
copy /system/etc/qcril.db /data/misc/radio/qcril.db |
|
chown radio radio /data/misc/radio/qcril.db |
|
chmod 0600 /data/misc/radio/qcril.db |
|
|
|
# Create folder for mm-qcamera-daemon |
|
mkdir /data/misc/camera 0770 camera camera |
|
|
|
# change permission for ldaf |
|
chown input system /persist/calibration |
|
chmod 0650 /persist/calibration |
|
chown input system /persist/calibration/offset |
|
chmod 0640 /persist/calibration/offset |
|
chown input system /persist/calibration/xtalk |
|
chmod 0640 /persist/calibration/xtalk |
|
|
|
#Create directories for Location services |
|
mkdir /data/misc/location 0770 gps gps |
|
mkdir /data/misc/location/mq 0770 gps gps |
|
mkdir /data/misc/location/xtwifi 0770 gps gps |
|
mkdir /data/misc/location/gpsone_d 0770 system gps |
|
|
|
# Audio |
|
mkdir /data/misc/audio 0770 audio audio |
|
|
|
# perf daemon |
|
mkdir /data/misc/perfd 0755 root system |
|
chmod 2755 /data/misc/perfd |
|
rm /data/misc/perfd/default_values |
|
|
|
# Subsytem Ramdump collection |
|
mkdir /data/ramdump 0700 root root |
|
|
|
setprop vold.post_fs_data_done 1 |
|
|
|
service irsc_util /system/bin/irsc_util "/etc/sec_config" |
|
class main |
|
user root |
|
oneshot |
|
|
|
service rmt_storage /system/bin/rmt_storage |
|
class core |
|
user root |
|
group system wakelock |
|
shutdown critical |
|
|
|
service start_hci_filter /vendor/bin/wcnss_filter |
|
class late_start |
|
user bluetooth |
|
group bluetooth system |
|
disabled |
|
|
|
on property:wc_transport.start_hci=true |
|
start start_hci_filter |
|
|
|
on property:wc_transport.start_hci=false |
|
stop start_hci_filter |
|
|
|
# QMUX must be in multiple groups to support external process connections |
|
service qmuxd /system/bin/qmuxd |
|
class main |
|
user radio |
|
group radio audio bluetooth wakelock gps |
|
|
|
service perfd /system/bin/perfd |
|
class main |
|
user root |
|
group system |
|
writepid /dev/cpuset/system-background/tasks |
|
|
|
service qti /system/vendor/bin/qti |
|
class main |
|
user radio |
|
group radio net_raw diag usb net_admin |
|
|
|
service netmgrd /system/bin/netmgrd |
|
class main |
|
group radio system wakelock |
|
|
|
service per_mgr /system/bin/pm-service |
|
class core |
|
user system |
|
group system net_raw |
|
|
|
service per_proxy /system/bin/pm-proxy |
|
class core |
|
user system |
|
group system net_raw |
|
disabled |
|
|
|
on property:init.svc.per_mgr=running |
|
start per_proxy |
|
|
|
on property:sys.shutdown.requested=* |
|
stop per_proxy |
|
|
|
on property:ro.boot.hardware.sku=LGH790 |
|
setprop ro.boot.wificountrycode US |
|
|
|
on property:ro.boot.hardware.sku=LGH791 |
|
setprop ro.boot.wificountrycode 00 |
|
|
|
on property:ro.boot.hardware.sku=LGH791F |
|
setprop ro.boot.wificountrycode 00 |
|
|
|
on property:ro.boot.hardware.sku=LGH798 |
|
setprop ro.boot.wificountrycode 00 |
|
|
|
service thermal-engine /system/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 |
|
group root |
|
|
|
service wpa_supplicant /vendor/bin/hw/wpa_supplicant \ |
|
-ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \ |
|
-I/system/etc/wifi/p2p_supplicant_overlay.conf -N \ |
|
-iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ |
|
-I/system/etc/wifi/wpa_supplicant_overlay.conf \ |
|
-puse_p2p_group_interface=1 \ |
|
-e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0 |
|
# 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 loc_launcher /system/bin/loc_launcher |
|
#loc_launcher will start as root and set its uid to gps |
|
class late_start |
|
group gps inet net_raw diag net_admin wifi |
|
|
|
service cnss-daemon /system/bin/cnss-daemon -n -l |
|
class late_start |
|
|
|
service qseecomd /vendor/bin/qseecomd |
|
class core |
|
user root |
|
group root |
|
|
|
service msm_irqbalance /system/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 |
|
|
|
service time_daemon /system/bin/time_daemon |
|
class late_start |
|
user root |
|
group root |
|
|
|
service charger /charger |
|
class charger |
|
critical |
|
seclabel u:r:charger:s0 |
|
|
|
service qcamerasvr /vendor/bin/mm-qcamera-daemon |
|
class late_start |
|
user camera |
|
group camera system inet input graphics |
|
writepid /dev/cpuset/system-background/tasks |
|
|
|
on property:persist.radio.atfwd.start=false |
|
stop atfwd |
|
|
|
service atfwd /system/bin/ATFWD-daemon |
|
class late_start |
|
user system |
|
group system radio |
|
|
|
on property:ro.debuggable=1 |
|
start ss_ramdump |
|
|
|
service ss_ramdump /system/bin/subsystem_ramdump |
|
class main |
|
user root |
|
group root system |
|
disabled |
|
|
|
service cnd /system/bin/cnd |
|
class late_start |
|
socket cnd stream 660 root inet |
|
group root wakelock |
|
|
|
service imsqmidaemon /system/bin/imsqmidaemon |
|
class main |
|
user system |
|
socket ims_qmid stream 0660 system radio |
|
group radio net_raw log diag |
|
|
|
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 |
|
disabled |
|
|
|
on property:sys.ims.QMI_DAEMON_STATUS=1 |
|
start imsdatadaemon |
|
|
|
service bullhead-sh /system/bin/init.bullhead.sh |
|
class late_start |
|
user radio |
|
group system |
|
oneshot |
|
|
|
# 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 |
|
|
|
service devstart_sh /system/bin/init.qcom.devstart.sh |
|
class main |
|
user root |
|
group root system |
|
disabled |
|
oneshot
|
|
|