# # 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 # Support legacy paths symlink /sdcard /mnt/sdcard symlink /sdcard /storage/sdcard0 on fs symlink /dev/block/platform/soc.0/f9824900.sdhci /dev/block/bootdevice mount_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 # Adjust parameters for dm-verity device write /sys/block/dm-0/queue/read_ahead_kb 2048 # Update dm-verity state and set partition.*.verified properties verity_update_state 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 # update foreground cpuset now that processors are up write /dev/cpuset/foreground/cpus 0-7 write /dev/cpuset/foreground/boost/cpus 4-7 write /dev/cpuset/background/cpus 0 # 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 #config fingerprint chown system system /sys/bus/spi/devices/spi12.0/spi_prepare chown system system /sys/bus/spi/devices/spi12.0/wakeup_enable chown system system /sys/bus/spi/devices/spi12.0/do_wakeup #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 # 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 on property:init.svc.per_mgr=running start per_proxy on property:sys.shutdown.requested=* stop per_proxy on post-fs-data write /sys/kernel/boot_adsp/boot 1 # 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 net_bt_stack /proc/bluetooth/sleep/lpm chown bluetooth net_bt_stack /proc/bluetooth/sleep/btwrite chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/state chown bluetooth net_bt_stack /dev/ttyHS0 # Create nfc local data mkdir /data/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 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 # Search the laser device under /dev/input, then create symlink service InputEventFind /system/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 /sbin/healthd -c class charger group log seclabel u:r:healthd:s0 service per_mgr /system/bin/pm-service class core user root group system net_raw service per_proxy /system/bin/pm-proxy class core user root group system net_raw disabled service rmt_storage /system/bin/rmt_storage class core user root group system service qseecomd /system/bin/qseecomd class core user root group root service irsc_util /system/bin/irsc_util "/etc/sec_config" class main user root oneshot service thermal-engine /system/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 # QMUX must be in multiple groups to support external process connections service qmuxd /system/bin/qmuxd class main user radio group radio audio bluetooth gps service perfd /system/bin/perfd class main user root service netmgrd /system/bin/netmgrd class main group radio service qti /system/vendor/bin/qti class main user radio group radio net_raw usb net_admin service time_daemon /system/bin/time_daemon class late_start user root group root service loc_launcher /system/bin/loc_launcher class late_start group gps inet net_raw net_admin wifi # bugreport is triggered by holding down volume down, volume up and power service bugreport /system/bin/dumpstate -d -p -B \ -o /data/data/com.android.shell/files/bugreports/bugreport class main disabled oneshot keycodes 114 115 116 # start camera server as daemon service qcamerasvr /system/bin/mm-qcamera-daemon class late_start user camera group camera system inet input graphics service fingerprintd /system/bin/fingerprintd class late_start user system group input service p2p_supplicant /system/bin/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 wpa_supplicant /system/bin/wpa_supplicant \ -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ -I/system/etc/wifi/wpa_supplicant_overlay.conf \ -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0 class main socket wpa_wlan0 dgram 660 wifi wifi disabled oneshot service dhcpcd_wlan0 /system/bin/dhcpcd -aABKL class main disabled oneshot service dhcpcd_p2p /system/bin/dhcpcd -aABKL class main disabled oneshot service iprenew_wlan0 /system/bin/dhcpcd -n class main disabled oneshot service iprenew_p2p /system/bin/dhcpcd -n class main disabled oneshot service dhcpcd_bt-pan /system/bin/dhcpcd -BKLG class main disabled oneshot service iprenew_bt-pan /system/bin/dhcpcd -n class main disabled oneshot 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 ims_rtp_daemon /system/bin/ims_rtp_daemon class main user system socket ims_rtpd stream 0660 system radio group radio net_raw diag diag log disabled on property:sys.ims.DATA_DAEMON_STATUS=1 start ims_rtp_daemon service imscmservice /system/bin/imscmservice class main user system group radio net_raw diag diag log service cnd /system/bin/cnd class late_start socket cnd stream 660 root inet 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 oem_qmi_server /vendor/bin/oem_qmi_server class main user root group system radio service msm_irqbalance /system/bin/msm_irqbalance -f /system/etc/msm_irqbalance.conf socket msm_irqbalance seqpacket 660 root system class core user root group root #start atfwd as daemon service atfwd /system/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