device_google_gs101/conf/init.gs101.rc
Peter Liu 7bb4e1f1b3 camera power hint: add prefer high cap in all modes
Prefer high cap will choose the mid / high cores when possible with
consideration of energy efficiency.

Running task on high cores with low clock is more efficient than running
at little core with high clock.

This hint also addresses CTS issues with keeping latency_sensitive = 1.
(equivalent to prefer idle)

This hint adds:
1) Enable prefer_high_cap of camera vendor group
2) Set high_capacity_start_cpu to 4
4) Set MemFreq floor
5) Change camera-daemon/cpu.uclamp.latency_sensitive owner to root

Bug: 186564130

Test:
android.hardware.camera2.cts.RobustnessTest#testAeAndAfCausality (5/5)
android.hardware.cts.CameraTest#testPreviewCallback (5/5)
android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceRepeatingBurst (5/5)
android.hardware.cts.CameraTest#testFocusDistances (3/6). (3/6) without CL.

*****************************************************************
              raven Camera CTS Test Results

*****************************************************************
Tests Passed: 217, Failed: 0, Not found: 0, Status unknown: 0

Change-Id: Ia2abb0eb9c57fa05c4db7bf1d02053e303301781
2021-05-20 03:24:07 +00:00

803 lines
32 KiB
Text

import init.gs101.usb.rc
import android.hardware.drm@1.2-service.widevine.rc
import init.exynos.sensorhub.rc
import /vendor/etc/init/hw/init.aoc.rc
service vendor.charger /system/bin/charger
class charger
seclabel u:r:charger:s0
user system
group system wakelock input
capabilities SYS_BOOT
file /dev/kmsg w
file /sys/fs/pstore/console-ramoops-0 r
file /sys/fs/pstore/console-ramoops r
file /proc/last_kmsg r
on early-init
mount_all /vendor/etc/fstab.persist --early
on init
# CPU0 cannot be offline
chmod 0444 /sys/devices/system/cpu/cpu0/online
# Boot time fs tuning
write /sys/block/sda/queue/iostats 0
write /sys/block/sda/queue/scheduler bfq
write /sys/block/sda/queue/iosched/slice_idle 0
write /sys/block/sda/queue/nr_requests 256
write /dev/sys/fs/by-name/userdata/data_io_flag 56
write /dev/sys/fs/by-name/userdata/node_io_flag 56
chown system system /sys/kernel/vendor_sched/set_task_group_bg
chown system system /sys/kernel/vendor_sched/set_task_group_cam
chown system system /sys/kernel/vendor_sched/set_task_group_fg
chown system system /sys/kernel/vendor_sched/set_task_group_nnapi
chown system system /sys/kernel/vendor_sched/set_task_group_sys
chown system system /sys/kernel/vendor_sched/set_task_group_sysbg
chown system system /sys/kernel/vendor_sched/set_task_group_ta
chown system system /sys/kernel/vendor_sched/clear_group
chmod 0220 /sys/kernel/vendor_sched/set_task_group_bg
chmod 0220 /sys/kernel/vendor_sched/set_task_group_cam
chmod 0220 /sys/kernel/vendor_sched/set_task_group_fg
chmod 0220 /sys/kernel/vendor_sched/set_task_group_nnapi
chmod 0220 /sys/kernel/vendor_sched/set_task_group_sys
chmod 0220 /sys/kernel/vendor_sched/set_task_group_sysbg
chmod 0220 /sys/kernel/vendor_sched/set_task_group_ta
chmod 0220 /sys/kernel/vendor_sched/clear_group
wait /dev/block/platform/${ro.boot.boot_devices}
symlink /dev/block/platform/${ro.boot.boot_devices} /dev/block/bootdevice
# to access UFS/eMMC sysfs directly
symlink /sys/devices/platform/${ro.boot.boot_devices} /dev/sys/block/bootdevice
# Disable UFS powersaving
write /dev/sys/block/bootdevice/clkgate_enable 0
start vendor.keymaster-3-0
# ZRAM setup
write /sys/block/zram0/comp_algorithm lz77eh
write /proc/sys/vm/page-cluster 0
# Page Pinner dumping at bugreport
chown system system /sys/kernel/debug/page_pinner/longterm_pinner
chown system system /sys/kernel/debug/page_pinner/alloc_contig_failed
# Some user code relies on ro.boot.hardware.revision
setprop ro.boot.hardware.revision ${ro.revision}
# Allow PAI targeting per hardware SKU
setprop ro.oem.key1 ${ro.boot.hardware.sku}
# Property used by vintf for sku specific manifests
# Property used by NFC for sku specific configurations
setprop ro.boot.product.hardware.sku ${ro.boot.hardware.sku}
# NFC streset tool name
setprop persist.vendor.nfc.streset libstreset21
setprop persist.vendor.se.streset libstreset21
# Support legacy paths
symlink /data/app /factory
# Apply network parameters for high data performance.
write /proc/sys/net/core/rmem_default 327680
write /proc/sys/net/core/rmem_max 8388608
write /proc/sys/net/core/wmem_default 327680
write /proc/sys/net/core/wmem_max 8388608
write /proc/sys/net/core/optmem_max 20480
write /proc/sys/net/core/netdev_max_backlog 10000
write /proc/sys/net/ipv4/tcp_rmem "2097152 4194304 8388608"
write /proc/sys/net/ipv4/tcp_wmem "262144 524288 1048576"
write /proc/sys/net/ipv4/tcp_mem "44259 59012 88518"
write /proc/sys/net/ipv4/udp_mem "88518 118025 177036"
write /sys/class/net/rmnet0/queues/rx-0/rps_cpus fe
write /sys/class/net/rmnet1/queues/rx-0/rps_cpus fe
write /sys/class/net/rmnet2/queues/rx-0/rps_cpus fe
write /sys/class/net/rmnet3/queues/rx-0/rps_cpus fe
write /sys/class/net/rmnet4/queues/rx-0/rps_cpus fe
write /sys/class/net/rmnet5/queues/rx-0/rps_cpus fe
write /sys/class/net/rmnet6/queues/rx-0/rps_cpus fe
write /sys/class/net/rmnet7/queues/rx-0/rps_cpus fe
# Create UDS structure for base VR services.
mkdir /dev/socket/pdx 0775 system system
mkdir /dev/socket/pdx/system 0775 system system
mkdir /dev/socket/pdx/system/buffer_hub 0775 system system
mkdir /dev/socket/pdx/system/performance 0775 system system
mkdir /dev/socket/pdx/system/vr 0775 system system
mkdir /dev/socket/pdx/system/vr/display 0775 system system
mkdir /dev/socket/pdx/system/vr/pose 0775 system system
mkdir /dev/socket/pdx/system/vr/sensors 0775 system system
# Boot time 183626384
write /sys/kernel/vendor_sched/ta_uclamp_min 308
write /sys/kernel/vendor_sched/ta_prefer_idle 1
write /sys/kernel/vendor_sched/fg_uclamp_min 308
write /sys/kernel/vendor_sched/fg_prefer_idle 1
# governor setting
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor sched_pixel
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/up_rate_limit_us 500
write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us 2000
write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor sched_pixel
write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/up_rate_limit_us 500
write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us 20000
write /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor sched_pixel
write /sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/up_rate_limit_us 500
write /sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/down_rate_limit_us 20000
# RT uclamp setting
write /proc/sys/kernel/sched_util_clamp_min_rt_default 0
# change permissions and default values for camera-daemon cpu controller
chown system system /dev/cpuctl/camera-daemon/cpu.uclamp.min
chown system system /dev/cpuctl/camera-daemon/cpu.uclamp.max
chown root root /dev/cpuctl/camera-daemon/cpu.uclamp.latency_sensitive
chown system system /dev/cpuctl/camera-daemon/cgroup.procs
write /sys/kernel/vendor_sched/cam_prefer_idle 1
write /sys/kernel/vendor_sched/cam_uclamp_min 10
chown system system /dev/cpuset/cgroup.procs
# nanohub sensor
chmod 0664 /dev/nanohub
chmod 0664 /dev/nanohub_comms
chown system system /dev/nanohub
chown system system /dev/nanohub_comms
# logbuffer
chown system system /dev/logbuffer_maxfg
chown system system /dev/logbuffer_maxfg_base
chown system system /dev/logbuffer_maxfg_flip
chown system system /dev/logbuffer_maxq
chown system system /dev/logbuffer_google,cpm
chown system system /dev/logbuffer_rtx
chown system system /dev/logbuffer_ssoc
chown system system /dev/logbuffer_ttf
chown system system /dev/logbuffer_usbpd
chown system system /dev/logbuffer_wireless
# Dump maxfg
chown system system /sys/class/power_supply/maxfg/m5_model_state
chown system system /sys/class/power_supply/maxfg_base/m5_model_state
chown system system /d/maxfg/fg_model
chown system system /d/maxfg_base/fg_model
# pca9468 : slider+77729: 6-0057; slider+MW A1: 5-0057
chown system system /d/regmap/5-0057-pca9468-mains/registers
chown system system /d/regmap/6-0057-pca9468-mains/registers
# Dump eeprom
chown system system /sys/devices/platform/10970000.hsi2c/i2c-5/5-0050/eeprom
chown system system /sys/devices/platform/10970000.hsi2c/i2c-4/4-0050/eeprom
# Modem temperature driver
chown radio system /sys/devices/platform/cp-tm1/cp_temp
# Loading common kernel modules in background
start insmod_sh_common
# Charge stats (write 0)
chown system system /sys/class/power_supply/battery/charge_stats
# Adaptive charge
chown system system /sys/class/power_supply/battery/charge_deadline
# Battery Defender
chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_cnt
chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_dry_run
chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_enable
chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_recharge_soc
chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_reset_sec
chown system system /sys/devices/platform/google,charger/bd_drainto_soc
chown system system /sys/devices/platform/google,charger/bd_recharge_soc
chown system system /sys/devices/platform/google,charger/bd_recharge_voltage
chown system system /sys/devices/platform/google,charger/bd_resume_abs_temp
chown system system /sys/devices/platform/google,charger/bd_resume_soc
chown system system /sys/devices/platform/google,charger/bd_resume_temp
chown system system /sys/devices/platform/google,charger/bd_resume_time
chown system system /sys/devices/platform/google,charger/bd_temp_dry_run
chown system system /sys/devices/platform/google,charger/bd_temp_enable
chown system system /sys/devices/platform/google,charger/bd_trigger_temp
chown system system /sys/devices/platform/google,charger/bd_trigger_time
chown system system /sys/devices/platform/google,charger/bd_trigger_voltage
chown system system /sys/devices/platform/google,charger/charge_start_level
chown system system /sys/devices/platform/google,charger/charge_stop_level
# Power Stats HAL
chown system system /dev/bbd_pwrstat
# start watchdogd
start watchdogd
# Add a boost for NNAPI HAL
write /sys/kernel/vendor_sched/nnapi_prefer_idle 1
write /sys/kernel/vendor_sched/nnapi_uclamp_min 154
# Add memlat governor settings
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cl0_memlat@17000010/polling_interval 10
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cl1_memlat@17000010/polling_interval 10
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cl2_memlat@17000010/polling_interval 10
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cl0_memlat@17000010/mem_latency/ratio_ceil 400
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cl1_memlat@17000010/mem_latency/ratio_ceil 400
write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cl2_memlat@17000010/mem_latency/ratio_ceil 800
# For GKI kernel, no device specific modules
on init
setprop vendor.device.modules.ready 1
on init && property:ro.boot.hw.soc.rev=0
setprop vendor.powerhal.config powerhint_a0.json
on init && property:ro.boot.hw.soc.rev=1
setprop vendor.powerhal.config powerhint_a1.json
on init && property:ro.boot.hw.soc.rev=0
# STOPSHIP b/177967147 disable SICD
write /sys/devices/platform/cpupm/cpupm/sicd 0
on init && property:ro.boot.hw.soc.rev=1
# STOPSHIP b/177967147 disable SICD
write /sys/devices/platform/cpupm/cpupm/sicd 0
on late-fs
# Wait for keymaster HALs
exec_start wait_for_keymaster
# Start bootanimation class before mount
class_start animation
# Mount RW partitions which need run fsck
mount_all /vendor/etc/fstab.gs101 --late
on post-fs-data
# Log data folder
mkdir /data/vendor 0771 radio system
mkdir /data/vendor/log 0771 radio system
mkdir /data/vendor/log/cbd 0771 radio system
mkdir /data/vendor/log/rfsd 0771 radio system
mkdir /data/exynos/log 0771 radio system
mkdir /data/vendor/rild 0771 radio system
mkdir /data/vendor/dump 0771 radio system
mkdir /data/vendor/slog 0771 system system
# PixelLogger log paths.
mkdir /data/vendor/radio 773 system radio
mkdir /data/vendor/radio/logs 773 system radio
mkdir /data/vendor/radio/logs/always-on 777 system radio
# Modem extended log folder
mkdir /data/vendor/radio/extended_logs 0770 radio system
# Modem MDS log folder
mkdir /data/vendor/radio/mds 0771 radio system
# Unzipped modem images folder
mkdir /data/vendor/radio/image 0771 radio system
# Modem stat folder
mkdir /data/vendor/modem_stat 0771 radio system
write /data/vendor/modem_stat/debug.txt ""
chown radio system /data/vendor/modem_stat/debug.txt
chmod 0664 /data/vendor/modem_stat/debug.txt
# Modem replay folder
mkdir /mnt/vendor/modem_userdata/replay 0775 radio system
# Write display MIPI frequency from Modem
chown system system /sys/devices/platform/1c2c0000.drmdsim/hs_clock
chown system system /sys/devices/platform/1c2d0000.drmdsim/hs_clock
chmod 0664 /sys/devices/platform/1c2c0000.drmdsim/hs_clock
chmod 0664 /sys/devices/platform/1c2d0000.drmdsim/hs_clock
setprop vold.post_fs_data_done 1
setprop wifi.direct.interface p2p-dev-wlan0
setprop wifi.aware.interface aware_nmi0
# IPSEC PIDDIR for VoWiFi
mkdir /data/vendor/misc 0771 root system
mkdir /data/vendor/misc/vpn 0771 root system
# Permissions Camera
mkdir /data/vendor/camera 0770 system camera
chmod 0755 /sys/kernel/debug/tracing
restorecon /sys/kernel/debug/tracing/trace_marker
# ranging sensor
chown system system /dev/stmvl53l1_ranging
chmod 0660 /dev/stmvl53l1_ranging
# Factory calibration files
chmod 0771 /mnt/vendor/persist/camera
chmod 0771 /mnt/vendor/persist/camera/OTP_calibration
chmod 0771 /mnt/vendor/persist/camera/pdaf_calibration_data
chmod 0771 /mnt/vendor/persist/camera/rear
# Audio dump and debug
mkdir /data/vendor/audio 0770 audio audio
# Create the directories for Darwinn HAL.
mkdir /data/vendor/hal_neuralnetworks_darwinn 0770 system system
mkdir /data/vendor/hal_neuralnetworks_darwinn/checksum_cache 0770 system system
mkdir /data/vendor/edgetpu 0770 system system
mkdir /data/vendor/edgetpu/cache 0770 system system
on zygote-start
# For PixelLogger configuration file.
chmod 0771 /data/vendor/wifi
on post-fs-data
# Create the directories used by the Wireless subsystem
mkdir /data/vendor/wifi 0771 wifi wifi
mkdir /data/vendor/wifi/wpa 0770 wifi wifi
mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi
# Gatekeeper data
mkdir /data/vendor/gk 0771 system system
# HWC data
mkdir /data/vendor/log/hwc 0771 system graphics
# Video data
mkdir /data/vendor/media 0700 mediacodec mediacodec
on post-fs-data
# GPS
mkdir /data/vendor/gps 0771 system system
chown system system /data/vendor/gps
rm /data/vendor/gps/gps_started
rm /data/vendor/gps/glonass_started
rm /data/vendor/gps/beidou_started
rm /data/vendor/gps/smd_started
rm /data/vendor/gps/sv_cno.info
chown gps system /sys/devices/platform/10940000.spi/spi_master/spi5/spi5.0/nstandby
chmod 0664 /dev/ttyBCM
chown gps system /dev/ttyBCM
chmod 0664 /dev/bbd_control
chown gps system /dev/bbd_control
chmod 0664 /dev/bbd_patch
chown gps system /dev/bbd_patch
chmod 0664 /dev/bbd_sensor
chown gps system /dev/bbd_sensor
on early-boot
# Wait for insmod_sh to finish all common modules
wait_for_prop vendor.common.modules.ready 1
# Wait for insmod_sh to finish all device specific modules
wait_for_prop vendor.device.modules.ready 1
# Other services depend on the properties
setprop vendor.all.modules.ready 1
setprop vendor.all.devices.ready 1
# Update dm-verity state and set partition.*.verified properties
verity_update_state
# Permission for Health Storage HAL
chown system system /dev/sys/block/bootdevice/manual_gc
# Permission for Pixelstats
chown system system /dev/sys/block/bootdevice/slowio_read_cnt
chown system system /dev/sys/block/bootdevice/slowio_write_cnt
chown system system /dev/sys/block/bootdevice/slowio_unmap_cnt
chown system system /dev/sys/block/bootdevice/slowio_sync_cnt
on boot
# Allow to access debugfs for system:system
chmod 0755 /sys/kernel/debug
chown system system /sys/kernel/debug
#setprop ro.radio.noril no
# default country code
setprop ro.boot.wificountrycode 00
# Set up kernel tracing, but disable it by default
chmod 0222 /sys/kernel/debug/tracing/trace_marker
write /sys/kernel/debug/tracing/tracing_on 0
# Change permission for A-Box firmware logs file & GPR dump
chown audioserver system /sys/devices/platform/17c50000.abox/reset
chown audioserver system /sys/devices/platform/17c50000.abox/service
chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/gpr
chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/calliope_sram
chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/calliope_dram
chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/calliope_iva
chown audioserver system /sys/kernel/debug/abox/log-00
# Permission for USB SELECT
chown system system /sys/class/android_usb/android0/enable
chmod 0660 /sys/class/android_usb/android0/enable
chown system system /sys/class/android_usb/android0/idVendor
chmod 0660 /sys/class/android_usb/android0/idVendor
chown system system /sys/class/android_usb/android0/idProduct
chmod 0660 /sys/class/android_usb/android0/idProduct
chown system system /sys/class/android_usb/android0/f_diag/clients
chmod 0660 /sys/class/android_usb/android0/f_diag/clients
chown system system /sys/class/android_usb/android0/functions
chmod 0660 /sys/class/android_usb/android0/functions
chown system system /sys/class/android_usb/android0/bDeviceClass
chmod 0660 /sys/class/android_usb/android0/bDeviceClass
# Permission for UART SWITCH
chmod 0660 /sys/class/sec/switch/uart_sel
chown system system /sys/class/sec/switch/uart_sel
# VTS sysfs file permission
chown audioserver system /sys/devices/platform/13810000.vts/vts_svoice_model
chown audioserver system /sys/devices/platform/13810000.vts/vts_google_model
chmod 0660 /sys/devices/platform/13810000.vts/vts_svoice_model
chmod 0660 /sys/devices/platform/13810000.vts/vts_google_model
# WLAN firmware/driver path
chown wifi wifi /sys/module/bcmdhd/parameters/nvram_path
chown wifi wifi /sys/module/bcmdhd/parameters/firmware_path
on property:persist.vendor.radio.no_modem_board=1
setprop ro.radio.noril yes
on fs
mount_all /vendor/etc/fstab.gs101 --early
restorecon_recursive /mnt/vendor/efs
chown radio system /mnt/vendor/efs
restorecon_recursive /mnt/vendor/efs_backup
chown radio system /mnt/vendor/efs_backup
restorecon_recursive /mnt/vendor/modem_userdata
chown radio system /mnt/vendor/modem_userdata
# for cycle count backup
mkdir /mnt/vendor/persist/battery 0700 system system
restorecon_recursive /mnt/vendor/persist
restorecon_recursive /mnt/vendor/persist/aoc
restorecon_recursive /mnt/vendor/persist/audio
restorecon_recursive /mnt/vendor/persist/sensors
restorecon_recursive /mnt/vendor/persist/battery
# Set up display-related directories and permissions
# Add restorecon_recursive command to make sure the restorecon label is persist_display_file.
restorecon_recursive /mnt/vendor/persist/display
mkdir /mnt/vendor/persist/data/sfs 0700 system system
mkdir /mnt/vendor/persist/data/tz 0700 system system
mkdir /mnt/vendor/persist/touch 0770 system system
# Permissions for ION
chmod 0660 /sys/class/ion_cma/ion_video_ext/isolated
chown system system /sys/class/ion_cma/ion_video_ext/isolated
# Permissions for hwcomposer
chown system system /sys/class/backlight/panel0-backlight/als_table
chown system system /sys/class/backlight/panel0-backlight/brightness
chown system system /sys/class/backlight/panel0-backlight/dimming_on
chown system system /sys/class/backlight/panel0-backlight/hbm_mode
chown system system /sys/devices/platform/exynos-drm/primary-panel/gamma
chown system system /sys/module/drm/parameters/vblankoffdelay
chown system system /sys/class/dqe/atc/ambient_light
chown system system /sys/class/dqe/atc/st
chown system system /sys/class/dqe/atc/en
chown system system /sys/class/dqe/atc/lt
chown system system /sys/class/dqe/atc/ns
chown system system /sys/class/dqe/atc/dither
chown system system /sys/class/dqe/atc/pl_w1
chown system system /sys/class/dqe/atc/pl_w2
chown system system /sys/class/dqe/atc/ctmode
chown system system /sys/class/dqe/atc/pp_en
chown system system /sys/class/dqe/atc/upgrade_on
chown system system /sys/class/dqe/atc/tdr_max
chown system system /sys/class/dqe/atc/tdr_min
chown system system /sys/class/dqe/atc/back_light
chown system system /sys/class/dqe/atc/dstep
chown system system /sys/class/dqe/atc/scale_mode
chown system system /sys/class/dqe/atc/threshold_1
chown system system /sys/class/dqe/atc/threshold_2
chown system system /sys/class/dqe/atc/threshold_3
chown system system /sys/class/dqe/atc/gain_limit
chown system system /sys/class/dqe/atc/lt_calc_ab_shift
# Copy DRM Key
# copy /system/app/wv.keys /factory/wv.keys
# Permission for DRM Key
# chmod 0644 /factory/wv.keys
# Permission for flashlight control for HAL3.3
# The Istor espresso board does not have the flash led h/w, So the below permission line are blocked.
# If you want to test the flashlight in board which have the flash led h/w, Enable the below blocked lines.
chmod 0660 /sys/class/camera/flash/rear_torch_flash
chown system camera /sys/class/camera/flash/rear_torch_flash
#load ecd firmware
write /proc/ecd/load_firmware 1
service abox /vendor/bin/main_abox 17c50000.abox
class late_start
user audioserver
group audioserver
seclabel u:r:abox:s0
service wpa_supplicant /vendor/bin/hw/wpa_supplicant \
-O/data/vendor/wifi/wpa/sockets -puse_p2p_group_interface=1p2p_device=1 \
-m/vendor/etc/wifi/p2p_supplicant.conf \
-g@android:wpa_wlan0 -dd
interface android.hardware.wifi.supplicant@1.0::ISupplicant default
interface android.hardware.wifi.supplicant@1.1::ISupplicant default
interface android.hardware.wifi.supplicant@1.2::ISupplicant default
interface android.hardware.wifi.supplicant@1.3::ISupplicant default
interface android.hardware.wifi.supplicant@1.4::ISupplicant default
socket wpa_wlan0 dgram 660 wifi wifi
class main
disabled
oneshot
# GPS
service lhd /vendor/bin/hw/lhd /vendor/etc/gnss/lhd.conf
class main
user gps
group system inet net_raw sdcard_rw
ioprio be 0
service gpsd /vendor/bin/hw/gpsd -c /vendor/etc/gnss/gps.xml
class main
user gps
group system gps radio inet wakelock sdcard_rw net_raw
ioprio be 0
service scd /vendor/bin/hw/scd /vendor/etc/gnss/scd.conf
class main
user gps
group system inet net_raw wakelock
ioprio be 0
service gnss_service /vendor/bin/hw/android.hardware.gnss@2.1-service-brcm
class hal
user gps
group system gps radio
# disable gps service if no gps h/w
on property:vendor.ril.cbd.svc=0
stop gpsd
stop lhd
stop scd
# on userdebug and eng builds, enable kgdb on the serial console
on property:ro.debuggable=1
write /sys/module/kgdboc/parameters/kgdboc ttyFIQ1
write /sys/module/fiq_debugger/parameters/kgdb_enable 1
# Touch
on property:vendor.device.modules.ready=1
chown system system /sys/class/spi_master/spi11/spi11.0/stm_fts_cmd
chown system system /sys/class/spi_master/spi11/spi11.0/glove_mode
chown system system /sys/class/spi_master/spi6/spi6.0/stm_fts_cmd
chown system system /sys/class/spi_master/spi6/spi6.0/glove_mode
chown system system /sys/devices/virtual/sec/tsp/fw_version
chown system system /sys/devices/virtual/sec/tsp/cmd
chown system system /sys/devices/virtual/sec/tsp/cmd_result
chown system system /sys/devices/virtual/sec/tsp/status
# Allow access to touch
chown system input /dev/touch_offload
chmod 660 /dev/touch_offload
# Route touch_sensitivity_mode to persist
on property:debug.touch_sensitivity_mode=0
setprop persist.vendor.touch_sensitivity_mode 0
on property:debug.touch_sensitivity_mode=1
setprop persist.vendor.touch_sensitivity_mode 1
on property:init.svc.vendor.charger=running
stop keymaster-4-0
setprop sys.usb.configfs 1
setprop vendor.setup.power 1
# keep one little and one big
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/cpu7/online 0
on property:sys.boot_completed=1
# Runtime fs tuning
write /sys/block/sda/queue/nr_requests 128
write /sys/block/sda/queue/iostats 1
write /sys/block/sda/queue/iosched/slice_idle 8
write /dev/sys/fs/by-name/userdata/data_io_flag 8
write /dev/sys/fs/by-name/userdata/node_io_flag 8
# Permission for Pixelstats
chown system system /dev/sys/fs/by-name/userdata/compr_written_block
chown system system /dev/sys/fs/by-name/userdata/compr_saved_block
chown system system /dev/sys/fs/by-name/userdata/compr_new_inode
# Block layer tuning: discard chunk size up to 128MB
# Otherwise, contiguous discards can be merged
write /sys/block/sda/queue/discard_max_bytes 134217728
# Enable ZRAM on boot_complete
swapon_all /vendor/etc/fstab.${ro.board.platform}
write /proc/sys/vm/swappiness 100
# Back to default VM settings
write /proc/sys/vm/dirty_expire_centisecs 3000
write /proc/sys/vm/dirty_background_ratio 10
# Enable UFS powersaving
write /dev/sys/block/bootdevice/clkgate_enable 1
# Setup final cpuset
write /dev/cpuset/top-app/cpus 0-7
write /dev/cpuset/foreground/cpus 0-3,4-5
write /dev/cpuset/background/cpus 0-1
write /dev/cpuset/system-background/cpus 0-3
write /dev/cpuset/restricted/cpus 0-3
write /dev/cpuset/camera-daemon/cpus 0-7
setprop vendor.powerhal.init 1
# Setup final cpu.uclamp
write /sys/kernel/vendor_sched/ta_uclamp_min 103
write /sys/kernel/vendor_sched/fg_uclamp_min 0
write /sys/kernel/vendor_sched/bg_uclamp_max 103
# cfs_rq clamp is using tg->uclamp setting
# align it with the vendor_group setting
write /dev/cpuctl/background/cpu.uclamp.max 10
# Setup cpu.shares to throttle background group at 5%
write /dev/cpuctl/background/cpu.shares 1024
write /dev/cpuctl/system/cpu.shares 20480
# We only have system and background groups holding tasks and the groups below are empty
write /dev/cpuctl/camera-daemon/cpu.shares 20480
write /dev/cpuctl/foreground/cpu.shares 20480
write /dev/cpuctl/nnapi-hal/cpu.shares 20480
write /dev/cpuctl/rt/cpu.shares 20480
write /dev/cpuctl/system-background/cpu.shares 20480
write /dev/cpuctl/top-app/cpu.shares 20480
# gvotables for dumpstate
chown system system /sys/kernel/debug/gvotables
# Permission for wireless charging
chown system system /sys/class/power_supply/wireless/capacity
chown system system /sys/class/power_supply/wireless/device/rtx
chown system system /sys/class/power_supply/wireless/device/rxdata
chown system system /sys/class/power_supply/wireless/device/txdata
chown system system /sys/class/power_supply/wireless/device/rxlen
chown system system /sys/class/power_supply/wireless/device/txlen
chown system system /sys/class/power_supply/wireless/device/ccreset
chown system system /sys/class/power_supply/wireless/device/status
chown system system /sys/class/power_supply/wireless/device/version
# AOC reset permission
chown root system /sys/devices/platform/19000000.aoc/reset
chmod 0220 /sys/devices/platform/19000000.aoc/reset
# IMS WiFi Calling
service charonservice /system/vendor/bin/charon
class main
user root
disabled
seclabel u:r:charonservice:s0
on property:vendor.charon.exec=1
rm /data/vendor/misc/vpn/charon.pid
chmod 0666 /dev/tun
start charonservice
on property:vendor.charon.exec=0
stop charonservice
rm /data/vendor/misc/vpn/charon.pid
# IMS packet router daemon
service pktrouter /system/vendor/bin/wfc-pkt-router
class main
user root
disabled
seclabel u:r:pktrouter:s0
on property:vendor.pktrouter=1
start pktrouter
on property:vendor.pktrouter=0
stop pktrouter
# charger driver exposes now finer grain control, map demo mode to those properties
# NOTE: demo mode can only be exit wiping data (which reset the persist properties)
on property:sys.retaildemo.enabled=1
setprop persist.vendor.charge.stop.level 35
setprop persist.vendor.charge.start.level 30
# Test Harness Mode default battery profile.
on property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=0
setprop persist.vendor.charge.stop.level 70
setprop persist.vendor.charge.start.level 35
setprop vendor.battery.defender.disable 1
# Extremely restricted battery profile.
on property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=1
setprop persist.vendor.charge.stop.level 50
setprop persist.vendor.charge.start.level 35
setprop vendor.battery.defender.disable 1
# Normal behavior (as if the device was a regular device)
on property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=2
setprop persist.vendor.charge.stop.level 100
setprop persist.vendor.charge.start.level 0
# Unrestricted, allows charging to 100%
on property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=3
setprop persist.vendor.charge.stop.level 100
setprop persist.vendor.charge.start.level 0
setprop vendor.battery.defender.disable 1
service insmod_sh_common /vendor/bin/init.insmod.sh /vendor/etc/init.insmod.gs101.cfg
class main
user root
group root system
disabled
oneshot
# Set watchdog timer to 30 seconds and pet it every 10 seconds to get a 20 second margin
service watchdogd /system/bin/watchdogd 10 20
class core
oneshot
seclabel u:r:watchdogd:s0
# bugreport is triggered by holding down volume down, volume up and power
service bugreport /system/bin/dumpstate -d -p -z
class main
disabled
oneshot
keycodes 114 115 116
# Proxy for Secure Storage
on post-fs-data
mkdir /data/vendor/rebootescrow 0770 hsm hsm
start vendor.rebootescrow-citadel
mkdir /data/vendor/ss 0770 root system
mkdir /mnt/vendor/persist/ss 0770 root system
restorecon_recursive /mnt/vendor/persist/ss
symlink /mnt/vendor/persist/ss /data/vendor/ss/persist
chown root system /data/vendor/ss/persist
chmod 0770 /data/vendor/ss/persist
chown system system /dev/sg1
start storageproxyd
service storageproxyd /vendor/bin/storageproxyd -d /dev/trusty-ipc-dev0 \
-r /dev/sg1 -p /data/vendor/ss -t ufs
class main
disabled
user root
# Write build info to kdebuginfo
on property:ro.build.fingerprint=*
write /sys/module/debug_kinfo/parameters/build_info ${ro.build.fingerprint}
# Bluetooth
on post-fs-data
chown bluetooth system /sys/devices/platform/175b0000.serial/serial0/serial0-0/bluetooth/hci0/rfkill0/state
chown bluetooth system /sys/devices/platform/odm/odm:btbcm/rfkill/rfkill0/state
chown bluetooth system /sys/devices/platform/odm/odm:btbcm/rfkill/rfkill2/state
chown bluetooth system /proc/bluetooth/sleep/btwake
chown bluetooth system /proc/bluetooth/sleep/lpm
chown bluetooth system /proc/bluetooth/sleep/btwrite
# ODPM
on fs
chown system system /sys/devices/platform/acpm_mfd_bus@17500000/i2c-6/i2c-s2mpg10mfd/s2mpg10-meter/s2mpg10-odpm/iio:device0/enabled_rails
chown system system /sys/devices/platform/acpm_mfd_bus@17510000/i2c-7/i2c-s2mpg11mfd/s2mpg11-meter/s2mpg11-odpm/iio:device1/enabled_rails
chown system system /sys/devices/platform/acpm_mfd_bus@17500000/i2c-7/i2c-s2mpg10mfd/s2mpg10-meter/s2mpg10-odpm/iio:device0/enabled_rails
chown system system /sys/devices/platform/acpm_mfd_bus@17510000/i2c-8/i2c-s2mpg11mfd/s2mpg11-meter/s2mpg11-odpm/iio:device1/enabled_rails