Home | History | Annotate | Download | only in angler
      1 #
      2 # Copyright 2015 The Android Open Source Project
      3 #
      4 # Licensed under the Apache License, Version 2.0 (the "License");
      5 # you may not use this file except in compliance with the License.
      6 # You may obtain a copy of the License at
      7 #
      8 #      http://www.apache.org/licenses/LICENSE-2.0
      9 #
     10 # Unless required by applicable law or agreed to in writing, software
     11 # distributed under the License is distributed on an "AS IS" BASIS,
     12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 # See the License for the specific language governing permissions and
     14 # limitations under the License.
     15 #
     16 
     17 import init.angler.usb.rc
     18 import init.angler.diag.rc
     19 import init.angler.sensorhub.rc
     20 
     21 on early-init
     22     mount debugfs debugfs /sys/kernel/debug
     23     chown system system /sys/kernel/debug/kgsl/proc
     24 
     25 on init
     26     # Load persistent dm-verity state
     27     verity_load_state
     28 
     29     # Set permissions for persist partition
     30     mkdir /persist 0771 system system
     31     mkdir /firmware 0771 system system
     32 
     33     symlink /sdcard /storage/sdcard0
     34 
     35     # Setup zram options
     36     write /sys/block/zram0/comp_algorithm lz4
     37     write /sys/block/zram0/max_comp_streams 4
     38 
     39     write /proc/sys/vm/page-cluster 0
     40 
     41 on fs
     42     mount_all ./fstab.angler
     43     swapon_all ./fstab.angler
     44 
     45     restorecon_recursive /persist
     46     mkdir /persist/data/sfs 0700 system system
     47     mkdir /persist/data/tz 0700 system system
     48 
     49     # Enable rmnet data and aggregation
     50     setprop persist.rmnet.mux enabled
     51     setprop persist.rmnet.data.enable true
     52     setprop persist.data.wda.enable true
     53     setprop persist.data.df.agg.dl_pkt 10
     54     setprop persist.data.df.agg.dl_size 4096
     55 
     56 on early-boot
     57     # set RLIMIT_MEMLOCK to 64MB
     58     setrlimit 8 67108864 67108864
     59 
     60     # Update dm-verity state and set partition.*.verified properties
     61     verity_update_state
     62 
     63 on boot
     64     # execute script to set initial CPU settings
     65     # don't run as a service to avoid race conditions
     66     exec - root system -- /system/bin/init.angler.power.sh
     67 
     68     # Enable DEBUG_SUSPEND, DEBUG_EXIT_SUSPEND, and DEBUG_WAKEUP
     69     write /sys/module/wakelock/parameters/debug_mask 7
     70 
     71     # add a cpuset for the camera daemon
     72     # we want all the little cores for camera
     73     mkdir /dev/cpuset/camera-daemon
     74     write /dev/cpuset/camera-daemon/cpus 0
     75     write /dev/cpuset/camera-daemon/mems 0
     76     chown system system /dev/cpuset/camera-daemon
     77     chown system system /dev/cpuset/camera-daemon/tasks
     78     chmod 0664 /dev/cpuset/camera-daemon/tasks
     79 
     80     # update foreground cpuset now that processors are up
     81     # reserve CPU 3 for the top app and camera daemon
     82     write /dev/cpuset/foreground/cpus 0-2,4-7
     83     write /dev/cpuset/foreground/boost/cpus 4-7
     84     write /dev/cpuset/background/cpus 0
     85     write /dev/cpuset/system-background/cpus 0-2
     86     write /dev/cpuset/top-app/cpus 0-7
     87     write /dev/cpuset/camera-daemon/cpus 0-3
     88 
     89     # setup permissions for fb0 related nodes
     90     chown radio radio /sys/class/graphics/fb0/dynamic_dsitiming
     91 
     92     # create symlink for fb1 as HDMI
     93     symlink /dev/graphics/fb1 /dev/graphics/hdmi
     94 
     95     # setup permissions for fb1 related nodes
     96     chown system graphics /sys/class/graphics/fb1/hpd
     97     chown system graphics /sys/class/graphics/fb1/vendor_name
     98     chown system graphics /sys/class/graphics/fb1/product_description
     99     chmod 0664 /sys/devices/virtual/graphics/fb1/hpd
    100     chmod 0664 /sys/devices/virtual/graphics/fb1/vendor_name
    101     chmod 0664 /sys/devices/virtual/graphics/fb1/product_description
    102 
    103     #Create QMUX deamon socket
    104     mkdir /dev/socket/qmux_radio 0770 radio radio
    105     chmod 2770 /dev/socket/qmux_radio
    106     mkdir /dev/socket/qmux_audio 0770 media audio
    107     chmod 2770 /dev/socket/qmux_audio
    108     mkdir /dev/socket/qmux_gps 0770 gps gps
    109     chmod 2770 /dev/socket/qmux_gps
    110 
    111     setprop wifi.interface wlan0
    112 
    113     #wifi sar
    114     chown radio radio /sys/module/wifi_sar/parameters/wifi_tx_power_limit
    115 
    116     #compass compensation
    117     chown root system /sys/class/power_supply/battery/compass_compensation
    118 
    119     write /sys/bus/platform/drivers/xhci_msm_hsic/unbind msm_hsic_host
    120     write /sys/module/rmnet_usb/parameters/mux_enabled 1
    121     write /sys/module/rmnet_usb/parameters/no_fwd_rmnet_links 8
    122     write /sys/module/rmnet_usb/parameters/no_rmnet_insts_per_dev 17
    123     write /sys/module/rmnet_usb/parameters/rmnet_data_init 1
    124     chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait
    125 
    126     # Assign TCP buffer thresholds to be ceiling value of technology maximums
    127     # Increased technology maximums should be reflected here.
    128     write /proc/sys/net/core/rmem_max  8388608
    129     write /proc/sys/net/core/wmem_max  8388608
    130 
    131     # Leds
    132     chown system system /sys/class/leds/red/on_off_ms
    133     chown system system /sys/class/leds/green/on_off_ms
    134     chown system system /sys/class/leds/blue/on_off_ms
    135     chown system system /sys/class/leds/red/rgb_start
    136 
    137     # GPU Tuning
    138     chown root system /sys/class/kgsl/kgsl-3d0/dispatch/inflight
    139     chmod 0660 /sys/class/kgsl/kgsl-3d0/dispatch/inflight
    140     chown root system /sys/class/kgsl/kgsl-3d0/dispatch/inflight_low_latency
    141     chmod 0660 /sys/class/kgsl/kgsl-3d0/dispatch/inflight_low_latency
    142 
    143     write /sys/block/mmcblk0/queue/rq_affinity 0
    144     write /sys/block/mmcblk0/queue/scheduler noop
    145 
    146 on property:init.svc.per_mgr=running
    147     start per_proxy
    148 
    149 on property:sys.shutdown.requested=*
    150     stop per_proxy
    151 
    152 on post-fs
    153     symlink /dev/block/platform/soc.0/f9824900.sdhci /dev/block/bootdevice
    154 
    155     start qseecomd
    156     exec - root root system -- /system/bin/init.angler.qseecomd.sh
    157 
    158 on post-fs-data
    159     write /sys/kernel/boot_adsp/boot 1
    160 
    161     # Ecc_Handler qcril.db
    162     mkdir /data/misc/radio 0770 system radio
    163 
    164     setprop vold.post_fs_data_done 1
    165 
    166     mkdir /data/misc/qsee 0770 system system
    167     mkdir /data/fpc 0700 system system
    168 
    169     #Create folder for mm-qcamera-daemon
    170     mkdir /data/misc/camera 0770 camera camera
    171 
    172     #Create folder for display calibration data
    173     mkdir /data/misc/display 0770 system graphics
    174 
    175     # Create /data/time folder for time-services
    176     mkdir /data/time/ 0700 system system
    177     mkdir /data/audio/ 0770 media audio
    178 
    179     # Create folder for perf daemon
    180     mkdir /data/misc/perfd 0755 root system
    181     chmod 2755 /data/misc/perfd
    182     mkdir /data/system/perfd 0770 root system
    183     rm /data/system/perfd/default_values
    184     chmod 2770 /data/system/perfd
    185     setprop ro.min_freq_0 384000
    186     setprop ro.min_freq_4 384000
    187 
    188     # Create the directories used by CnE subsystem
    189     mkdir /data/connectivity 0771 system system
    190     chown system system /data/connectivity
    191 
    192     #Create directory from IMS services
    193     mkdir /data/shared 0755
    194     chown system system /data/shared
    195 
    196     # Mark the copy complete flag to not completed
    197     write /data/misc/radio/copy_complete 0
    198     chown radio radio /data/misc/radio/copy_complete
    199     chmod 0660 /data/misc/radio/copy_complete
    200 
    201     # Configure bluetooth
    202     chmod 0660 /proc/bluetooth/sleep/lpm
    203     chmod 0660 /proc/bluetooth/sleep/btwrite
    204     chmod 0660 /sys/class/rfkill/rfkill0/state
    205     chmod 0660 /dev/ttyHS0
    206     chown bluetooth net_bt_stack /proc/bluetooth/sleep/lpm
    207     chown bluetooth net_bt_stack /proc/bluetooth/sleep/btwrite
    208     chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/state
    209     chown bluetooth net_bt_stack /dev/ttyHS0
    210 
    211     # Create nfc local data
    212     mkdir /data/nfc 0770 nfc nfc
    213 
    214     #modify access for speaker calibdata
    215     chown system system /persist/audio/speaker_calibdata.bin
    216     chmod 0444 /persist/audio/speaker_calibdata.bin
    217 
    218     #modify access for laser calibration data
    219     chmod 0710 /persist/data
    220     chmod 0440 /persist/data/st_offset
    221     chmod 0440 /persist/data/st_xtalk
    222 
    223     chown system system /sys/class/kgsl/kgsl-3d0/devfreq/max_freq
    224     chmod 0660 /sys/class/kgsl/kgsl-3d0/devfreq/max_freq
    225     chown system system /sys/class/kgsl/kgsl-3d0/devfreq/min_freq
    226     chmod 0660 /sys/class/kgsl/kgsl-3d0/devfreq/min_freq
    227     chown system system /sys/class/devfreq/qcom,gpubw.70/min_freq
    228     chmod 0660 /sys/class/devfreq/qcom,gpubw.70/min_freq
    229     chown system system /sys/devices/system/cpu/cpu4/online
    230     chmod 0660 /sys/devices/system/cpu/cpu4/online
    231     chown system system /sys/devices/system/cpu/cpu5/online
    232     chmod 0660 /sys/devices/system/cpu/cpu5/online
    233     chown system system /sys/devices/system/cpu/cpu6/online
    234     chmod 0660 /sys/devices/system/cpu/cpu6/online
    235     chown system system /sys/devices/system/cpu/cpu7/online
    236     chmod 0660 /sys/devices/system/cpu/cpu7/online
    237 on charger
    238    #set cpu4,5 online first, or they can't get into low power consumption mode
    239    write /sys/devices/system/cpu/cpu4/online 1
    240    write /sys/devices/system/cpu/cpu5/online 1
    241    #low power governing
    242    write /sys/devices/soc.0/qcom,bcl.60/mode disable
    243    write /sys/devices/soc.0/qcom,bcl.60/hotplug_mask 0
    244    write /sys/devices/soc.0/qcom,bcl.60/hotplug_soc_mask 0
    245    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor interactive
    246    write /sys/devices/system/cpu/cpu1/online 0
    247    write /sys/devices/system/cpu/cpu2/online 0
    248    write /sys/devices/system/cpu/cpu3/online 0
    249    write /sys/devices/system/cpu/cpu4/online 0
    250    write /sys/devices/system/cpu/cpu5/online 0
    251    write /sys/devices/system/cpu/cpu6/online 0
    252    write /sys/devices/system/cpu/cpu7/online 0
    253 
    254 on property:sys.boot_completed=1
    255      #allow CPUs to go in deeper idle state than C0
    256      write /sys/module/lpm_levels/parameters/sleep_disabled 0
    257 
    258 # Search the laser device under /dev/input, then create symlink
    259 service InputEventFind /vendor/bin/InputEventFind
    260     class main
    261     oneshot
    262 
    263 service ssr_setup /system/bin/ssr_setup
    264     oneshot
    265     disabled
    266 
    267 service ss_ramdump /system/bin/subsystem_ramdump
    268     class main
    269     user system
    270     group system
    271     disabled
    272 
    273 on property:persist.sys.ssr.restart_level=*
    274     start ssr_setup
    275 
    276 on property:persist.sys.ssr.enable_ramdumps=1
    277     write /sys/module/subsystem_restart/parameters/enable_ramdumps 1
    278     start ss_ramdump
    279 
    280 on property:persist.sys.ssr.enable_ramdumps=0
    281     write /sys/module/subsystem_restart/parameters/enable_ramdumps 0
    282 
    283 service charger /sbin/healthd -c
    284     class charger
    285     group log
    286     seclabel u:r:healthd:s0
    287     writepid /dev/cpuset/system-background/tasks
    288 
    289 service per_mgr /vendor/bin/pm-service
    290     class core
    291     user root
    292     group system net_raw
    293     writepid /dev/cpuset/system-background/tasks
    294 
    295 service per_proxy /vendor/bin/pm-proxy
    296     class core
    297     user root
    298     group system net_raw
    299     writepid /dev/cpuset/system-background/tasks
    300     disabled
    301 
    302 service rmt_storage /vendor/bin/rmt_storage
    303     class core
    304     user root
    305     group system wakelock
    306     writepid /dev/cpuset/system-background/tasks
    307 
    308 service qseecomd /vendor/bin/qseecomd
    309     class core
    310     user root
    311     group root
    312     writepid /dev/cpuset/system-background/tasks
    313 
    314 service irsc_util /vendor/bin/irsc_util "/vendor/etc/sec_config"
    315     class main
    316     user root
    317     oneshot
    318 
    319 service thermal-engine /vendor/bin/thermal-engine
    320     class main
    321     user root
    322     socket thermal-send-client stream 0660 system system
    323     socket thermal-recv-client stream 0660 system system
    324     socket thermal-recv-passive-client stream 0660 system system
    325     group root radio system
    326     writepid /dev/cpuset/system-background/tasks
    327 
    328 # QMUX must be in multiple groups to support external process connections
    329 service qmuxd /vendor/bin/qmuxd
    330     class main
    331     user radio
    332     group radio audio bluetooth wakelock gps
    333     writepid /dev/cpuset/system-background/tasks
    334 
    335 service perfd /vendor/bin/perfd
    336     class main
    337     user root
    338     group system
    339     writepid /dev/cpuset/system-background/tasks
    340 
    341 service netmgrd /vendor/bin/netmgrd
    342     class main
    343     group radio system wakelock
    344     writepid /dev/cpuset/system-background/tasks
    345 
    346 service qti /vendor/bin/qti
    347     class main
    348     user radio
    349     group radio net_raw usb net_admin
    350     writepid /dev/cpuset/system-background/tasks
    351 
    352 service time_daemon /vendor/bin/time_daemon
    353     class late_start
    354     user root
    355     group root
    356     writepid /dev/cpuset/system-background/tasks
    357 
    358 service loc_launcher /vendor/bin/loc_launcher
    359     class late_start
    360     group gps inet net_raw net_admin wifi
    361     writepid /dev/cpuset/system-background/tasks
    362 
    363 # bugreport is triggered by holding down volume down, volume up and power
    364 service bugreport /system/bin/dumpstate -d -p -B -z \
    365         -o /data/user_de/0/com.android.shell/files/bugreports/bugreport
    366     class main
    367     disabled
    368     oneshot
    369     keycodes 114 115 116
    370 
    371 # start camera server as daemon
    372 service qcamerasvr /vendor/bin/mm-qcamera-daemon
    373     class late_start
    374     user camera
    375     group camera system inet input graphics
    376     writepid /dev/cpuset/camera-daemon/tasks
    377 
    378 service fingerprintd /system/bin/fingerprintd
    379     class late_start
    380     user system
    381     group input
    382     writepid /dev/cpuset/system-background/tasks
    383 
    384 service p2p_supplicant /system/bin/wpa_supplicant \
    385         -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
    386         -I/system/etc/wifi/p2p_supplicant_overlay.conf \
    387         -O/data/misc/wifi/sockets \
    388         -m/data/misc/wifi/p2p_supplicant.conf \
    389         -puse_p2p_group_interface=1p2p_device=1 \
    390         -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
    391     class main
    392     socket wpa_wlan0 dgram 660 wifi wifi
    393     disabled
    394     oneshot
    395 
    396 service wpa_supplicant /system/bin/wpa_supplicant \
    397         -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
    398         -I/system/etc/wifi/wpa_supplicant_overlay.conf \
    399         -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
    400     class main
    401     socket wpa_wlan0 dgram 660 wifi wifi
    402     disabled
    403     oneshot
    404 
    405 service imsqmidaemon /system/bin/imsqmidaemon
    406     class main
    407     user system
    408     socket ims_qmid stream 0660 system radio
    409     group radio net_raw log diag
    410     writepid /dev/cpuset/system-background/tasks
    411 
    412 service imsdatadaemon /system/bin/imsdatadaemon
    413     class main
    414     user system
    415     socket ims_datad stream 0660 system radio
    416     group system wifi radio inet net_raw log diag net_admin
    417     writepid /dev/cpuset/system-background/tasks
    418     disabled
    419 
    420 on property:sys.ims.QMI_DAEMON_STATUS=1
    421     start imsdatadaemon
    422 
    423 service imscmservice /system/bin/imscmservice
    424     class main
    425     user system
    426     group radio net_raw diag diag log
    427     writepid /dev/cpuset/system-background/tasks
    428 
    429 service cnd /vendor/bin/cnd
    430     class late_start
    431     socket cnd stream 660 root inet
    432     group root wakelock
    433     writepid /dev/cpuset/system-background/tasks
    434 
    435 on property:ro.boot.hardware.revision=ANGLER-V1
    436     write /sys/module/bcmdhd/parameters/nvram_path \
    437 	      /system/etc/wifi/bcmdhd-pme.cal
    438 
    439 on property:ro.boot.hardware.revision=ANGLER-V2
    440     write /sys/module/bcmdhd/parameters/nvram_path \
    441 	      /system/etc/wifi/bcmdhd-pme.cal
    442 
    443 on property:ro.boot.wifi_cal=2
    444 	write /sys/module/bcmdhd/parameters/nvram_path \
    445 		  /system/etc/wifi/bcmdhd-low.cal
    446 
    447 on property:ro.boot.wifi_cal=3
    448 	write /sys/module/bcmdhd/parameters/nvram_path \
    449 		  /system/etc/wifi/bcmdhd-high.cal
    450 
    451 on property:ro.boot.hardware.sku=H1511
    452     setprop ro.boot.wificountrycode US
    453 
    454 service mcfg-sh /system/bin/init.mcfg.sh
    455    class late_start
    456    user radio
    457    group radio system
    458    oneshot
    459 
    460 service oem_qmi_server /vendor/bin/oem_qmi_server
    461     class main
    462     user root
    463     group system radio
    464 
    465 service msm_irqbalance /vendor/bin/msm_irqbalance -f /vendor/etc/msm_irqbalance.conf
    466     socket msm_irqbalance seqpacket 660 root system
    467     class core
    468     user root
    469     group root
    470     writepid /dev/cpuset/system-background/tasks
    471 
    472 #start atfwd as daemon
    473 service atfwd /vendor/bin/ATFWD-daemon
    474     class late_start
    475     user system
    476     group system radio
    477 
    478 service ppd /system/bin/mm-pp-daemon
    479     class late_start
    480     user system
    481     socket pps stream 0660 system system
    482     group system graphics
    483 
    484 on property:init.svc.surfaceflinger=stopped
    485     stop ppd
    486 
    487 service diag_test_server /vendor/bin/diag_test_server
    488     class core
    489     user root
    490     disabled
    491 
    492 on property:ro.boot.mode=hw-factory
    493     start diag_test_server
    494 
    495