# # 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/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/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 \ -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