Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 1 | # |
| 2 | # Copyright (C) 2016 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 | |
Robb Glasser | 30ecafe | 2017-11-17 15:19:30 -0800 | [diff] [blame] | 17 | import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.power.rc |
Oleg Matcovschi | b32aa0f | 2017-10-23 15:15:16 -0500 | [diff] [blame] | 18 | import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.usb.rc |
Badhri Jagan Sridharan | 814c4f1 | 2017-11-22 14:16:33 -0800 | [diff] [blame] | 19 | import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.diag.rc |
Shawn Yang | 5f19889 | 2017-11-30 14:10:15 -0800 | [diff] [blame] | 20 | import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.logging.rc |
Shawn Yang | 3568354 | 2018-02-01 10:38:26 -0800 | [diff] [blame] | 21 | import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.mpssrfs.rc |
Shawn Yang | 5f19889 | 2017-11-30 14:10:15 -0800 | [diff] [blame] | 22 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 23 | |
Thierry Strudel | 9e51f27 | 2018-05-30 22:22:44 -0700 | [diff] [blame] | 24 | on property:init.svc.vendor.charger=running |
Thierry Strudel | 9e51f27 | 2018-05-30 22:22:44 -0700 | [diff] [blame] | 25 | # keep one LITTLE and one big |
Wei Wang | ee78ac9 | 2018-01-24 11:15:47 -0800 | [diff] [blame] | 26 | write /sys/devices/system/cpu/cpu1/online 0 |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 27 | write /sys/devices/system/cpu/cpu2/online 0 |
| 28 | write /sys/devices/system/cpu/cpu3/online 0 |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 29 | write /sys/devices/system/cpu/cpu5/online 0 |
| 30 | write /sys/devices/system/cpu/cpu6/online 0 |
| 31 | write /sys/devices/system/cpu/cpu7/online 0 |
| 32 | wait /dev/block/bootdevice |
Wei Wang | 90f3d65 | 2018-03-15 13:35:37 -0700 | [diff] [blame] | 33 | # Enable UFS powersaving |
Wei Wang | 90f3d65 | 2018-03-15 13:35:37 -0700 | [diff] [blame] | 34 | write /sys/devices/platform/soc/${ro.boot.bootdevice}/clkgate_enable 1 |
| 35 | write /sys/devices/platform/soc/${ro.boot.bootdevice}/hibern8_on_idle_enable 1 |
Kyle Tso | 643c6b1 | 2018-05-18 14:09:37 +0800 | [diff] [blame] | 36 | write /sys/class/typec/port0/port_type sink |
Robb Glasser | 30ecafe | 2017-11-17 15:19:30 -0800 | [diff] [blame] | 37 | write /sys/module/lpm_levels/parameters/sleep_disabled 0 |
Wei Wang | f46b495 | 2018-05-24 14:32:00 -0700 | [diff] [blame] | 38 | # Disable sched_boost |
| 39 | write /proc/sys/kernel/sched_boost 0 |
davidchao | 443ba67 | 2018-05-25 18:05:16 +0800 | [diff] [blame] | 40 | # Enable thermal mitigation |
| 41 | write /sys/devices/virtual/thermal/tz-by-name/backup-charge/mode enabled |
Thierry Strudel | 901f487 | 2018-06-25 22:42:21 -0700 | [diff] [blame] | 42 | # Ensure 100% reporting is sticky |
| 43 | write /sys/class/power_supply/maxfg/offmode_charger 1 |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 44 | |
Thierry Strudel | 9e51f27 | 2018-05-30 22:22:44 -0700 | [diff] [blame] | 45 | service vendor.charger /charger |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 46 | class charger |
| 47 | seclabel u:r:charger:s0 |
| 48 | |
| 49 | on early-init |
| 50 | mount debugfs debugfs /sys/kernel/debug |
| 51 | chmod 0755 /sys/kernel/debug |
Wei Wang | f46b495 | 2018-05-24 14:32:00 -0700 | [diff] [blame] | 52 | # Enable sched_boost |
| 53 | write /proc/sys/kernel/sched_boost 1 |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 54 | |
Wei Wang | 119118b | 2018-06-29 12:00:51 -0700 | [diff] [blame] | 55 | # Skip init trigger for charger mode |
| 56 | on early-init && property:ro.boot.mode=charger |
| 57 | setprop vendor.skip.init 1 |
| 58 | |
Paul Crowley | ca524db | 2018-02-01 15:53:31 -0800 | [diff] [blame] | 59 | # We need vold early for metadata encryption |
| 60 | on early-fs |
| 61 | start vold |
| 62 | |
Wei Wang | 119118b | 2018-06-29 12:00:51 -0700 | [diff] [blame] | 63 | on init && property:vendor.skip.init=0 |
Tom Cherry | 04db8fa | 2018-06-05 10:17:43 -0700 | [diff] [blame] | 64 | start logd |
| 65 | |
Wei Wang | 90f3d65 | 2018-03-15 13:35:37 -0700 | [diff] [blame] | 66 | # QSEE rpmb listener need symlink for bootdevice |
| 67 | wait /dev/block/platform/soc/${ro.boot.bootdevice} |
| 68 | symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice |
| 69 | |
| 70 | # start qseecomd early as we mount system/ vendor/ early |
| 71 | # vold needs keymaster that needs qseecomd |
Daniel Mentz | aab747b | 2018-05-17 19:13:51 -0700 | [diff] [blame] | 72 | start vendor.qseecomd |
Wei Wang | 1b0b010 | 2018-05-15 15:51:22 -0700 | [diff] [blame] | 73 | start keymaster-4-0 |
Wei Wang | 90f3d65 | 2018-03-15 13:35:37 -0700 | [diff] [blame] | 74 | |
Shawn Willden | 9ff2c61 | 2018-06-28 18:40:17 +0000 | [diff] [blame] | 75 | # start Citadel keymaster (StrongBox) early |
| 76 | start vndservicemanager |
| 77 | start citadeld |
| 78 | start vendor.keymaster-4-0-citadel |
| 79 | |
Wei Wang | 1185da1 | 2018-02-26 19:18:34 -0800 | [diff] [blame] | 80 | # Boot time fs tune |
| 81 | write /sys/block/sda/queue/iostats 0 |
| 82 | write /sys/block/sda/queue/scheduler cfq |
| 83 | write /sys/block/sda/queue/iosched/slice_idle 0 |
| 84 | write /sys/block/sda/queue/read_ahead_kb 2048 |
| 85 | write /sys/block/sda/queue/nr_requests 256 |
| 86 | write /sys/block/sdf/queue/iostats 0 |
| 87 | write /sys/block/sdf/queue/scheduler cfq |
| 88 | write /sys/block/sdf/queue/iosched/slice_idle 0 |
| 89 | write /sys/block/sdf/queue/read_ahead_kb 2048 |
| 90 | write /sys/block/sdf/queue/nr_requests 256 |
| 91 | write /sys/block/dm-0/queue/read_ahead_kb 2048 |
| 92 | write /sys/block/dm-1/queue/read_ahead_kb 2048 |
Wei Wang | cfcc754 | 2018-05-22 09:51:56 -0700 | [diff] [blame] | 93 | write /sys/block/dm-2/queue/read_ahead_kb 2048 |
Wei Wang | 1185da1 | 2018-02-26 19:18:34 -0800 | [diff] [blame] | 94 | |
Wei Wang | 90f3d65 | 2018-03-15 13:35:37 -0700 | [diff] [blame] | 95 | # Disable UFS powersaving |
Wei Wang | 90f3d65 | 2018-03-15 13:35:37 -0700 | [diff] [blame] | 96 | write /sys/devices/platform/soc/${ro.boot.bootdevice}/clkgate_enable 0 |
| 97 | write /sys/devices/platform/soc/${ro.boot.bootdevice}/hibern8_on_idle_enable 0 |
| 98 | |
Robb Glasser | 30ecafe | 2017-11-17 15:19:30 -0800 | [diff] [blame] | 99 | # Disable powersaving |
| 100 | write /sys/module/lpm_levels/parameters/sleep_disabled 1 |
| 101 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 102 | # Loading kernel modules in background |
| 103 | start insmod_sh |
| 104 | |
| 105 | # Support legacy paths |
| 106 | symlink /sdcard /mnt/sdcard |
| 107 | symlink /sdcard /storage/sdcard0 |
| 108 | |
Robb Glasser | 30ecafe | 2017-11-17 15:19:30 -0800 | [diff] [blame] | 109 | # bring back all cores |
| 110 | write /sys/devices/system/cpu/cpu0/online 1 |
| 111 | write /sys/devices/system/cpu/cpu1/online 1 |
| 112 | write /sys/devices/system/cpu/cpu2/online 1 |
| 113 | write /sys/devices/system/cpu/cpu3/online 1 |
| 114 | write /sys/devices/system/cpu/cpu4/online 1 |
| 115 | write /sys/devices/system/cpu/cpu5/online 1 |
| 116 | write /sys/devices/system/cpu/cpu6/online 1 |
| 117 | write /sys/devices/system/cpu/cpu7/online 1 |
| 118 | |
| 119 | # configure governor settings for little cluster |
| 120 | write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor schedutil |
Connor O'Brien | 5aa6fe0 | 2018-02-21 10:13:10 -0800 | [diff] [blame] | 121 | write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us 500 |
| 122 | write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us 20000 |
Robb Glasser | 30ecafe | 2017-11-17 15:19:30 -0800 | [diff] [blame] | 123 | |
| 124 | # configure governor settings for big cluster |
| 125 | write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor schedutil |
Connor O'Brien | 5aa6fe0 | 2018-02-21 10:13:10 -0800 | [diff] [blame] | 126 | write /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us 500 |
| 127 | write /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us 20000 |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 128 | |
| 129 | # set default schedTune value for foreground/top-app |
| 130 | write /dev/stune/foreground/schedtune.prefer_idle 1 |
| 131 | write /dev/stune/top-app/schedtune.boost 10 |
| 132 | write /dev/stune/top-app/schedtune.prefer_idle 1 |
| 133 | |
| 134 | # Setup cpusets used by the VR services. |
| 135 | mkdir /dev/cpuset/kernel 0750 root system |
| 136 | write /dev/cpuset/kernel/cpus 0 |
| 137 | write /dev/cpuset/kernel/mems 0 |
| 138 | chown system system /dev/cpuset/kernel/tasks |
Wei Wang | 5d1e47c | 2018-03-09 14:40:33 -0800 | [diff] [blame] | 139 | chown system system /dev/cpuset/kernel/cpus |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 140 | chmod 0660 /dev/cpuset/kernel/tasks |
Wei Wang | f46b495 | 2018-05-24 14:32:00 -0700 | [diff] [blame] | 141 | chmod 0660 /dev/cpuset/kernel/cpus |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 142 | |
Alexey Polyudov | 2efbcb9 | 2017-10-10 14:50:10 -0700 | [diff] [blame] | 143 | mkdir /dev/cpuset/camera-daemon |
| 144 | write /dev/cpuset/camera-daemon/cpus 0-7 |
| 145 | write /dev/cpuset/camera-daemon/mems 0 |
| 146 | chown system system /dev/cpuset/camera-daemon |
| 147 | chown system system /dev/cpuset/camera-daemon/tasks |
| 148 | chmod 0664 /dev/cpuset/camera-daemon/tasks |
| 149 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 150 | mkdir /dev/cpuset/system 0750 root system |
| 151 | write /dev/cpuset/system/cpus 0 |
| 152 | write /dev/cpuset/system/mems 0 |
| 153 | chown system system /dev/cpuset/system/tasks |
| 154 | chmod 0660 /dev/cpuset/system/tasks |
| 155 | |
| 156 | mkdir /dev/cpuset/system/performance 0750 root system |
| 157 | write /dev/cpuset/system/performance/cpus 0 |
| 158 | write /dev/cpuset/system/performance/mems 0 |
| 159 | chown system system /dev/cpuset/system/performance/tasks |
| 160 | chmod 0660 /dev/cpuset/system/performance/tasks |
| 161 | |
| 162 | mkdir /dev/cpuset/system/background 0750 root system |
| 163 | write /dev/cpuset/system/background/cpus 0 |
| 164 | write /dev/cpuset/system/background/mems 0 |
| 165 | chown system system /dev/cpuset/system/background/tasks |
| 166 | chmod 0660 /dev/cpuset/system/background/tasks |
| 167 | |
| 168 | mkdir /dev/cpuset/application 0750 root system |
| 169 | write /dev/cpuset/application/cpus 0 |
| 170 | write /dev/cpuset/application/mems 0 |
| 171 | chown system system /dev/cpuset/application/tasks |
| 172 | chmod 0660 /dev/cpuset/application/tasks |
| 173 | |
| 174 | mkdir /dev/cpuset/application/performance 0750 root system |
| 175 | write /dev/cpuset/application/performance/cpus 0 |
| 176 | write /dev/cpuset/application/performance/mems 0 |
| 177 | chown system system /dev/cpuset/application/performance/tasks |
| 178 | chmod 0660 /dev/cpuset/application/performance/tasks |
| 179 | |
| 180 | mkdir /dev/cpuset/application/background 0750 root system |
| 181 | write /dev/cpuset/application/background/cpus 0 |
| 182 | write /dev/cpuset/application/background/mems 0 |
| 183 | chown system system /dev/cpuset/application/background/tasks |
| 184 | chmod 0660 /dev/cpuset/application/background/tasks |
| 185 | |
| 186 | # Create UDS structure for base VR services. |
| 187 | mkdir /dev/socket/pdx 0775 system system |
| 188 | mkdir /dev/socket/pdx/system 0775 system system |
| 189 | mkdir /dev/socket/pdx/system/buffer_hub 0775 system system |
| 190 | mkdir /dev/socket/pdx/system/performance 0775 system system |
| 191 | mkdir /dev/socket/pdx/system/vr 0775 system system |
| 192 | mkdir /dev/socket/pdx/system/vr/display 0775 system system |
| 193 | mkdir /dev/socket/pdx/system/vr/pose 0775 system system |
| 194 | mkdir /dev/socket/pdx/system/vr/sensors 0775 system system |
| 195 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 196 | # b/37682684 Enable suspend clock reporting |
| 197 | write /sys/kernel/debug/clk/debug_suspend 1 |
| 198 | |
| 199 | # ZRAM setup |
| 200 | write /sys/block/zram0/comp_algorithm lz4 |
| 201 | write /proc/sys/vm/page-cluster 0 |
| 202 | |
| 203 | # Some user code relies on ro.boot.hardware.revision |
| 204 | setprop ro.boot.hardware.revision ${ro.revision} |
| 205 | |
Andrew Sapperstein | b50c88c | 2018-04-27 12:19:30 -0700 | [diff] [blame] | 206 | # Allow PAI targeting per hardware SKU |
| 207 | setprop ro.oem.key1 ${ro.boot.hardware.sku} |
| 208 | |
Ruchi Kandoi | c78d86c | 2018-06-04 13:40:46 -0700 | [diff] [blame] | 209 | # Property used by vintf for sku specific manifests |
| 210 | setprop ro.boot.product.hardware.sku ${ro.boot.hardware.sku} |
| 211 | |
Wei Wang | 15201c6 | 2018-06-06 14:11:24 -0700 | [diff] [blame] | 212 | # Property used by pointing to thermal-engine config file |
| 213 | setprop vendor.thermal.vr_mode -novr |
| 214 | setprop vendor.thermal.hw_mode -prod |
| 215 | |
TeYuan Wang | e27e39d | 2018-05-15 03:09:11 +0800 | [diff] [blame] | 216 | on late-init |
Miguel de Dios | c93aea8 | 2018-06-25 12:36:58 -0700 | [diff] [blame] | 217 | write /sys/devices/virtual/thermal/tz-by-name/fps-therm-adc/mode enabled |
TeYuan Wang | e27e39d | 2018-05-15 03:09:11 +0800 | [diff] [blame] | 218 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 219 | on fs |
Wei Wang | aad43c9 | 2018-04-04 14:26:23 -0700 | [diff] [blame] | 220 | # Start HW service manager early |
| 221 | start hwservicemanager |
Oleg Matcovschi | b32aa0f | 2017-10-23 15:15:16 -0500 | [diff] [blame] | 222 | mount_all /vendor/etc/fstab.${ro.boot.hardware.platform} --early |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 223 | |
| 224 | mkdir /persist/data 0700 system system |
| 225 | mkdir /persist/display 0770 system graphics |
| 226 | mkdir /persist/rfs 0770 root system |
| 227 | mkdir /persist/hlos_rfs 0770 root system |
| 228 | chmod 0770 /persist/rfs |
Joel Galenson | b716ec3 | 2018-02-26 14:40:47 -0800 | [diff] [blame] | 229 | chmod 0770 /persist/rfs/shared |
| 230 | chmod 0770 /persist/rfs/msm |
| 231 | chmod 0770 /persist/rfs/msm/adsp |
| 232 | chmod 0770 /persist/rfs/msm/mpss |
| 233 | chmod 0770 /persist/rfs/msm/slpi |
| 234 | chmod 0770 /persist/rfs/mdm |
| 235 | chmod 0770 /persist/rfs/mdm/adsp |
| 236 | chmod 0770 /persist/rfs/mdm/mpss |
| 237 | chmod 0770 /persist/rfs/mdm/slpi |
| 238 | chmod 0770 /persist/rfs/mdm/tn |
| 239 | chmod 0770 /persist/rfs/apq |
| 240 | chmod 0770 /persist/rfs/apq/gnss |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 241 | chmod 0770 /persist/hlos_rfs |
| 242 | restorecon_recursive /persist |
| 243 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 244 | on late-fs |
Erik Staats | aecb61a | 2018-04-19 12:09:24 -0700 | [diff] [blame] | 245 | # Start devices by sysfs trigger, including SLPI. SLPI waits for sscrpcd to |
| 246 | # read /persist, so to prevent SLPI startup delays, start both here. |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 247 | start devstart_sh |
Erik Staats | aecb61a | 2018-04-19 12:09:24 -0700 | [diff] [blame] | 248 | start vendor.sscrpcd |
| 249 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 250 | # Start services for bootanim |
| 251 | start surfaceflinger |
| 252 | start bootanim |
Chia-I Wu | 68f14b9 | 2018-04-30 13:17:02 -0700 | [diff] [blame] | 253 | start vendor.hwcomposer-2-2 |
Hung-ying Tyan | 19d02fd | 2018-05-24 00:10:36 +0800 | [diff] [blame] | 254 | start vendor.configstore-hal |
Wei Wang | 0f8b630 | 2018-06-20 11:07:09 -0700 | [diff] [blame] | 255 | start vendor.qti.hardware.display.allocator |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 256 | |
Wei Wang | aad43c9 | 2018-04-04 14:26:23 -0700 | [diff] [blame] | 257 | # Wait for hwservicemanager ready since fsck might be triggered in mount_all --late |
| 258 | # In such case, init won't responce the property_set from hwservicemanager and then |
| 259 | # cause services for bootanim not running. |
| 260 | wait_for_prop hwservicemanager.ready true |
Wei Wang | 19a550e | 2018-05-15 16:14:30 -0700 | [diff] [blame] | 261 | |
Shawn Willden | 9ff2c61 | 2018-06-28 18:40:17 +0000 | [diff] [blame] | 262 | # Wait for keymaster HALs (TEE and StrongBox) |
| 263 | exec_start wait_for_strongbox |
Wei Wang | 19a550e | 2018-05-15 16:14:30 -0700 | [diff] [blame] | 264 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 265 | # Mount RW partitions which need run fsck |
Oleg Matcovschi | b32aa0f | 2017-10-23 15:15:16 -0500 | [diff] [blame] | 266 | mount_all /vendor/etc/fstab.${ro.boot.hardware.platform} --late |
Wei Wang | cfcc754 | 2018-05-22 09:51:56 -0700 | [diff] [blame] | 267 | # Boot time fs tune |
| 268 | write /sys/block/dm-3/queue/read_ahead_kb 2048 |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 269 | |
Wei Wang | 0b75d94 | 2017-06-30 09:49:45 -0700 | [diff] [blame] | 270 | # Required for time_daemon |
| 271 | mkdir /persist/time 0770 system system |
| 272 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 273 | # Start time daemon early so that the system time can be set early |
| 274 | start time_daemon |
| 275 | |
| 276 | on post-fs |
Wei Wang | b6fdf0b | 2018-04-24 22:56:02 -0700 | [diff] [blame] | 277 | # Disable sched autogroup |
| 278 | write /proc/sys/kernel/sched_autogroup_enabled 0 |
| 279 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 280 | # set RLIMIT_MEMLOCK to 64MB |
| 281 | setrlimit 8 67108864 67108864 |
| 282 | |
| 283 | chmod 0664 /sys/devices/virtual/graphics/fb0/idle_time |
| 284 | chown system graphics /sys/devices/virtual/graphics/fb0/idle_time |
| 285 | write /sys/devices/virtual/graphics/fb0/idle_time 100 |
| 286 | |
Adrian Salido | a28dc2a | 2018-05-02 13:26:37 -0700 | [diff] [blame] | 287 | # turn off vblank irq immediately after turning off |
| 288 | write /sys/module/drm/parameters/vblankoffdelay -1 |
| 289 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 290 | on post-fs-data |
| 291 | # We can start netd here before in is launched in common init.rc on zygote-start |
| 292 | start netd |
| 293 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 294 | # b/38048356 Setup debug folders for camera |
| 295 | mkdir /data/vendor/camera 0770 camera camera |
| 296 | |
| 297 | # b/38496103 Setup debug folders for display |
| 298 | mkdir /data/vendor/display 0770 system graphics |
| 299 | |
SalmaxChang | 08328d3 | 2018-05-09 13:14:34 +0800 | [diff] [blame] | 300 | # Setup folder for modem fdr |
| 301 | mkdir /data/vendor/modem_fdr 0700 root system |
| 302 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 303 | # keep that at the end of on post-fs-data |
| 304 | # Set indication (checked by vold) that we have finished this action |
| 305 | setprop vold.post_fs_data_done 1 |
| 306 | |
| 307 | # Wait until the system time is set |
Wei Wang | 0b75d94 | 2017-06-30 09:49:45 -0700 | [diff] [blame] | 308 | wait_for_prop vendor.qcom.time.set true |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 309 | |
Wei Wang | 90f3d65 | 2018-03-15 13:35:37 -0700 | [diff] [blame] | 310 | # Wait qseecomd started |
Daniel Mentz | aab747b | 2018-05-17 19:13:51 -0700 | [diff] [blame] | 311 | wait_for_prop vendor.sys.listeners.registered true |
Wei Wang | 90f3d65 | 2018-03-15 13:35:37 -0700 | [diff] [blame] | 312 | |
Jaekyun Seok | 0497eb5 | 2018-04-06 07:42:23 +0900 | [diff] [blame] | 313 | # load IPA FWs |
Daniel Mentz | aab747b | 2018-05-17 19:13:51 -0700 | [diff] [blame] | 314 | # This must be started when vendor.sys.listeners.registered is true |
Jaekyun Seok | 0497eb5 | 2018-04-06 07:42:23 +0900 | [diff] [blame] | 315 | start ipastart_sh |
| 316 | |
ChengYou Ho | a0d9997 | 2018-06-05 20:02:27 +0800 | [diff] [blame] | 317 | mkdir /data/vendor/nnhal 0700 system system |
| 318 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 319 | # zygote need to be started after otapreopt which will be done on post-fs-data |
| 320 | on zygote-start |
| 321 | # zygote is started in common init.rc |
| 322 | # and now we can continue initialize /data/ |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 323 | mkdir /data/vendor/ipa 0770 radio radio |
| 324 | chown radio radio /data/vendor/ipa |
| 325 | |
| 326 | # Create the directories used by the Wireless subsystem |
Ecco Park | 6d557a6 | 2018-02-20 14:32:20 -0800 | [diff] [blame] | 327 | mkdir /data/vendor/wifi 0771 wifi wifi |
Jeff Vander Stoep | d25aa40 | 2018-01-24 08:57:13 -0800 | [diff] [blame] | 328 | mkdir /data/vendor/wifi/wpa 0770 wifi wifi |
| 329 | mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 330 | |
| 331 | # Mounting of persist is moved to 'on emmc-fs' and 'on fs' sections |
| 332 | # We chown/chmod /persist again so because mount is run as root + defaults |
| 333 | chown root system /persist |
| 334 | chmod 0771 /persist |
| 335 | chown system system /persist/WCNSS_qcom_wlan_nv.bin |
| 336 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 337 | # Trigger WLAN driver load |
| 338 | write /sys/kernel/boot_wlan/boot_wlan 1 |
| 339 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 340 | #create netmgr log dir |
| 341 | mkdir /data/vendor/netmgr 0771 radio radio |
| 342 | chmod 0771 /data/vendor/netmgr |
| 343 | |
Cyan_Hsieh | 831e4df | 2018-05-18 17:44:50 +0800 | [diff] [blame] | 344 | # Create netmgr recovery folder |
| 345 | mkdir /data/vendor/netmgr/recovery 0700 radio radio |
| 346 | chmod 0770 /data/vendor/netmgr/recovery |
| 347 | write /data/vendor/netmgr/recovery/recovery_info "" |
| 348 | chown radio radio /data/vendor/netmgr/recovery/recovery_info |
| 349 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 350 | # Create directory used by audio subsystem |
Jasmine Cha | 3f9a485 | 2018-04-27 17:20:50 +0800 | [diff] [blame] | 351 | mkdir /data/vendor/audio 0770 audio audio |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 352 | |
| 353 | # Create directory for audio delta files |
Jasmine Cha | 3f9a485 | 2018-04-27 17:20:50 +0800 | [diff] [blame] | 354 | mkdir /data/vendor/audio/acdbdata 0770 media audio |
| 355 | mkdir /data/vendor/audio/acdbdata/delta 0770 media audio |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 356 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 357 | # Create directory for radio |
| 358 | mkdir /data/vendor/radio 0771 system radio |
Jie Song | 15d7bf9 | 2018-05-13 14:41:11 -0700 | [diff] [blame] | 359 | mkdir /data/vendor/modem_stat 0771 system radio |
| 360 | write /data/vendor/modem_stat/debug.txt "" |
| 361 | chown system radio /data/vendor/modem_stat/debug.txt |
| 362 | chmod 0664 /data/vendor/modem_stat/debug.txt |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 363 | |
Erik Staats | 4d855e9 | 2018-03-29 12:56:17 -0700 | [diff] [blame] | 364 | # Set up sensors-related directories and permissions |
Andrew Lehmer | 464f7ab | 2018-02-20 15:44:07 -0800 | [diff] [blame] | 365 | chmod 775 /persist/sensors |
| 366 | chmod 664 /persist/sensors/sensors_settings |
Erik Staats | 4d855e9 | 2018-03-29 12:56:17 -0700 | [diff] [blame] | 367 | chown root system /persist/sensors/registry |
| 368 | chmod 775 /persist/sensors/registry |
| 369 | chown root system /persist/sensors/registry/registry |
| 370 | chmod 775 /persist/sensors/registry/registry |
| 371 | |
Andrew Lehmer | 464f7ab | 2018-02-20 15:44:07 -0800 | [diff] [blame] | 372 | chown system root /persist/sensors/sensors_settings |
Joel Galenson | b716ec3 | 2018-02-26 14:40:47 -0800 | [diff] [blame] | 373 | chown root root /persist/sensors/registry/registry/sensors_settings |
Andrew Lehmer | 464f7ab | 2018-02-20 15:44:07 -0800 | [diff] [blame] | 374 | |
Meng-hsuan Chung | 103da64 | 2018-02-14 15:38:44 -0800 | [diff] [blame] | 375 | mkdir /data/vendor/sensors 0770 |
| 376 | chown system system /data/vendor/sensors |
| 377 | |
David Lin | 23c2dd7 | 2018-03-21 18:05:54 -0700 | [diff] [blame] | 378 | chmod 770 /persist/audio |
| 379 | chmod 660 /persist/audio/audio.cal |
| 380 | chown media audio /persist/audio |
| 381 | chown audioserver audio /persist/audio/audio.cal |
| 382 | |
| 383 | chmod 770 /persist/haptics |
| 384 | chmod 440 /persist/haptics/cs40l20.cal |
| 385 | chown system system /persist/haptics |
| 386 | chown system system /persist/haptics/cs40l20.cal |
| 387 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 388 | # Mark the copy complete flag to not completed |
| 389 | write /data/vendor/radio/copy_complete 0 |
| 390 | chown radio radio /data/vendor/radio/copy_complete |
| 391 | chmod 0660 /data/vendor/radio/copy_complete |
| 392 | |
| 393 | # File flags for prebuilt ril db file |
| 394 | write /data/vendor/radio/prebuilt_db_support 1 |
| 395 | chown radio radio /data/vendor/radio/prebuilt_db_support |
| 396 | chmod 0400 /data/vendor/radio/prebuilt_db_support |
| 397 | write /data/vendor/radio/db_check_done 0 |
| 398 | chown radio radio /data/vendor/radio/db_check_done |
| 399 | chmod 0660 /data/vendor/radio/db_check_done |
| 400 | |
| 401 | # Create directories for Location services |
| 402 | mkdir /data/vendor/location 0770 gps gps |
| 403 | mkdir /data/vendor/location/mq 0770 gps gps |
| 404 | mkdir /data/vendor/location/xtwifi 0770 gps gps |
Edwin Tung | f146e86 | 2018-04-17 09:34:04 +0800 | [diff] [blame] | 405 | mkdir /dev/socket/location 0770 gps gps |
| 406 | mkdir /dev/socket/location/mq 0770 gps gps |
| 407 | mkdir /dev/socket/location/xtra 0770 gps gps |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 408 | |
| 409 | # NFC local data and nfcee xml storage |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 410 | mkdir /data/vendor/nfc 0770 nfc nfc |
| 411 | |
Ruchi Kandoi | 776c7b6 | 2018-03-08 12:49:27 -0800 | [diff] [blame] | 412 | # Secure Element directory for loader service functionality |
| 413 | mkdir /data/vendor/secure_element 0770 secure_element secure_element |
| 414 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 415 | on early-boot |
| 416 | # wait for devices |
Wei Wang | 90f3d65 | 2018-03-15 13:35:37 -0700 | [diff] [blame] | 417 | wait_for_prop vendor.qcom.devup 1 |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 418 | |
Wei Wang | f54009f | 2018-03-16 13:29:08 -0700 | [diff] [blame] | 419 | # wait for insmod_sh to finish all modules |
| 420 | wait_for_prop vendor.all.modules.ready 1 |
| 421 | |
David Lin | 5de1faa | 2018-02-23 16:39:14 -0800 | [diff] [blame] | 422 | write /sys/kernel/boot_adsp/boot 1 |
Chris Fries | 256600f | 2018-04-03 17:01:47 -0500 | [diff] [blame] | 423 | write /sys/kernel/boot_cdsp/boot 1 |
David Lin | 5de1faa | 2018-02-23 16:39:14 -0800 | [diff] [blame] | 424 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 425 | # Update dm-verity state and set partition.*.verified properties |
| 426 | verity_update_state |
| 427 | |
Xu Han | 52588a1 | 2017-11-06 10:09:03 -0800 | [diff] [blame] | 428 | # Permission for rainbow sensor |
Xu Han | c1bf504 | 2018-03-05 15:31:08 -0800 | [diff] [blame] | 429 | chown cameraserver camera /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,rainbow@20/rainbow_enable |
| 430 | chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,rainbow@20/rainbow_enable |
| 431 | chown cameraserver camera /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,rainbow@20/rainbow_read_byte |
| 432 | chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,rainbow@20/rainbow_read_byte |
| 433 | chown cameraserver camera /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,rainbow@20/rainbow_write_byte |
| 434 | chmod 0660 /sys/devices/platform/soc/ac4a000.qcom,cci/ac4a000.qcom,cci:qcom,rainbow@20/rainbow_write_byte |
Xu Han | 7f6bc0c | 2018-03-16 13:48:40 -0700 | [diff] [blame] | 435 | chown cameraserver camera /dev/vd6281 |
| 436 | chmod 0660 /dev/vd6281 |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 437 | |
| 438 | # Permission for Vibrator |
David Lin | c2521e2 | 2018-03-06 19:58:13 -0800 | [diff] [blame] | 439 | chown system system /sys/class/leds/vibrator/device/cp_trigger_index |
David Lin | 31f8767 | 2018-05-23 16:09:20 -0700 | [diff] [blame] | 440 | chown system system /sys/class/leds/vibrator/device/cp_trigger_queue |
David Lin | 8c3b301 | 2018-03-20 16:28:15 -0700 | [diff] [blame] | 441 | chown system system /sys/class/leds/vibrator/device/dig_scale |
David Lin | 90af3c7 | 2018-03-21 16:18:25 -0700 | [diff] [blame] | 442 | chown system system /sys/class/leds/vibrator/device/f0_stored |
| 443 | chown system system /sys/class/leds/vibrator/device/redc_stored |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 444 | |
| 445 | # Permission for LED driver |
| 446 | chown system system /sys/class/leds/red/on_off_ms |
| 447 | chown system system /sys/class/leds/green/on_off_ms |
| 448 | chown system system /sys/class/leds/blue/on_off_ms |
| 449 | chown system system /sys/class/leds/red/rgb_start |
| 450 | chown system system /sys/class/leds/green/rgb_start |
| 451 | chown system system /sys/class/leds/blue/rgb_start |
Chris Fries | a9094da | 2017-07-18 11:16:46 -0500 | [diff] [blame] | 452 | chown system system /sys/class/backlight/panel0-backlight/brightness |
Sean Callanan | a77bd42 | 2018-04-09 12:17:31 -0700 | [diff] [blame] | 453 | chown system system /sys/class/backlight/panel0-backlight/vr_mode |
linpeter | 32c1d1e | 2018-06-27 23:02:16 +0800 | [diff] [blame^] | 454 | chown system system /sys/class/backlight/panel0-backlight/hbm_mode |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 455 | |
Patrick Tjin | a710d80 | 2018-04-28 23:15:01 -0700 | [diff] [blame] | 456 | # Permission for Wireless charger |
| 457 | chown system system /sys/devices/platform/soc/a88000.i2c/i2c-0/0-0061/rxdata |
| 458 | chown system system /sys/devices/platform/soc/a88000.i2c/i2c-0/0-0061/txdata |
| 459 | chown system system /sys/devices/platform/soc/a88000.i2c/i2c-0/0-0061/txlen |
| 460 | chown system system /sys/devices/platform/soc/a88000.i2c/i2c-0/0-0061/ccreset |
Patrick Tjin | 9e33c9b | 2018-06-27 12:10:08 -0700 | [diff] [blame] | 461 | chown system system /sys/devices/platform/soc/a88000.i2c/i2c-0/0-0061/status |
| 462 | chown system system /sys/devices/platform/soc/a88000.i2c/i2c-0/0-0061/version |
Patrick Tjin | a710d80 | 2018-04-28 23:15:01 -0700 | [diff] [blame] | 463 | |
Andrew Chant | 5d40a8f | 2018-06-21 17:30:13 -0700 | [diff] [blame] | 464 | # Permission for Pixelstats |
| 465 | chown system system /sys/class/power_supply/maxfg/cycle_counts_bins |
| 466 | chown system system /sys/class/misc/msm_cirrus_playback/resistance_left_right |
| 467 | chown system system /sys/devices/platform/soc/1d84000.ufshc/slowio_read_cnt |
| 468 | chown system system /sys/devices/platform/soc/1d84000.ufshc/slowio_write_cnt |
| 469 | chown system system /sys/devices/platform/soc/1d84000.ufshc/slowio_unmap_cnt |
| 470 | chown system system /sys/devices/platform/soc/1d84000.ufshc/slowio_sync_cnt |
| 471 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 472 | on boot |
| 473 | mkdir /dev/socket/qmux_radio 0770 radio radio |
| 474 | chmod 2770 /dev/socket/qmux_radio |
| 475 | mkdir /dev/socket/qmux_audio 0770 media audio |
| 476 | chmod 2770 /dev/socket/qmux_audio |
| 477 | mkdir /dev/socket/qmux_bluetooth 0770 bluetooth bluetooth |
| 478 | chmod 2770 /dev/socket/qmux_bluetooth |
| 479 | mkdir /dev/socket/qmux_gps 0770 gps gps |
| 480 | chmod 2770 /dev/socket/qmux_gps |
| 481 | |
| 482 | # Create NETMGR daemon socket area |
| 483 | mkdir /dev/socket/netmgr 0750 radio radio |
| 484 | |
| 485 | setprop wifi.interface wlan0 |
| 486 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 487 | # Assign TCP buffer thresholds to be ceiling value of technology maximums |
| 488 | # Increased technology maximums should be reflected here. |
| 489 | write /proc/sys/net/core/rmem_max 8388608 |
Ahmed ElArabawy | 59c798f | 2018-03-29 13:10:41 -0700 | [diff] [blame] | 490 | write /proc/sys/net/core/wmem_max 8388608 |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 491 | |
| 492 | # Update DVR cpusets to boot-time values. |
Wei Wang | 5d1e47c | 2018-03-09 14:40:33 -0800 | [diff] [blame] | 493 | write /dev/cpuset/kernel/cpus 0-7 |
| 494 | write /dev/cpuset/system/cpus 0-7 |
| 495 | write /dev/cpuset/system/performance/cpus 0-7 |
| 496 | write /dev/cpuset/system/background/cpus 0-7 |
| 497 | write /dev/cpuset/system/cpus 0-7 |
| 498 | write /dev/cpuset/application/cpus 0-7 |
| 499 | write /dev/cpuset/application/performance/cpus 0-7 |
| 500 | write /dev/cpuset/application/background/cpus 0-7 |
| 501 | write /dev/cpuset/application/cpus 0-7 |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 502 | |
| 503 | # Bluetooth |
| 504 | chown bluetooth net_bt /sys/class/rfkill/rfkill0/type |
| 505 | chown bluetooth net_bt /sys/class/rfkill/rfkill0/state |
| 506 | chmod 0660 /sys/class/rfkill/rfkill0/state |
| 507 | chown bluetooth net_bt /sys/class/rfkill/rfkill0/device/extldo |
| 508 | chmod 0660 /sys/class/rfkill/rfkill0/device/extldo |
| 509 | |
| 510 | # Wifi firmware reload path |
| 511 | chown wifi wifi /sys/module/wlan/parameters/fwpath |
| 512 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 513 | # default country code |
| 514 | setprop ro.boot.wificountrycode 00 |
| 515 | |
Maggie White | 518d187 | 2018-03-14 19:08:18 -0700 | [diff] [blame] | 516 | # WLAN debug access |
| 517 | chown system system /d/icnss/stats |
| 518 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 519 | service init-radio-sh /vendor/bin/init.radio.sh |
| 520 | class late_start |
| 521 | user radio |
| 522 | group root radio |
| 523 | oneshot |
| 524 | |
Wei Wang | 15201c6 | 2018-06-06 14:11:24 -0700 | [diff] [blame] | 525 | service vendor.thermal-engine /vendor/bin/thermal-engine -c /vendor/etc/thermal-engine-${ro.hardware}${vendor.thermal.vr_mode}${vendor.thermal.hw_mode}.conf |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 526 | class main |
| 527 | user root |
| 528 | group root system |
| 529 | socket thermal-send-client stream 0666 system system |
| 530 | socket thermal-recv-client stream 0660 system system |
| 531 | socket thermal-recv-passive-client stream 0666 system system |
| 532 | |
Shawn Yang | 286d470 | 2018-03-20 16:28:12 -0700 | [diff] [blame] | 533 | on property:persist.vendor.sys.ssr.restart_level=* |
Shawn Yang | e0ba3f4 | 2017-11-21 18:46:53 -0800 | [diff] [blame] | 534 | start vendor.ssr_setup |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 535 | |
Shawn Yang | e0ba3f4 | 2017-11-21 18:46:53 -0800 | [diff] [blame] | 536 | service vendor.ssr_setup /vendor/bin/ssr_setup |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 537 | oneshot |
| 538 | disabled |
| 539 | |
Shawn Yang | e0ba3f4 | 2017-11-21 18:46:53 -0800 | [diff] [blame] | 540 | service vendor.ssr_diag /vendor/bin/ssr_diag |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 541 | class late_start |
| 542 | user system |
| 543 | group system |
| 544 | disabled |
| 545 | |
Jaekyun Seok | b809e8c | 2018-03-12 10:42:44 +0900 | [diff] [blame] | 546 | service vendor.per_mgr /vendor/bin/pm-service |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 547 | class core |
| 548 | user system |
| 549 | group system |
| 550 | ioprio rt 4 |
| 551 | |
| 552 | service per_proxy /vendor/bin/pm-proxy |
| 553 | class core |
| 554 | user system |
| 555 | group system |
| 556 | disabled |
| 557 | |
| 558 | on property:sys.boot_completed=1 |
Wei Wang | 92118bc | 2018-05-08 13:53:12 -0700 | [diff] [blame] | 559 | # Set the default IRQ affinity to the silver cluster. |
| 560 | write /proc/irq/default_smp_affinity f |
| 561 | |
Wei Wang | e828bc6 | 2017-12-31 22:14:16 -0800 | [diff] [blame] | 562 | # Enable UFS powersaving |
Wei Wang | 90f3d65 | 2018-03-15 13:35:37 -0700 | [diff] [blame] | 563 | write /sys/devices/platform/soc/${ro.boot.bootdevice}/clkgate_enable 1 |
| 564 | write /sys/devices/platform/soc/${ro.boot.bootdevice}/hibern8_on_idle_enable 1 |
Wei Wang | e828bc6 | 2017-12-31 22:14:16 -0800 | [diff] [blame] | 565 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 566 | # Enable ZRAM on boot_complete |
Oleg Matcovschi | b32aa0f | 2017-10-23 15:15:16 -0500 | [diff] [blame] | 567 | swapon_all /vendor/etc/fstab.${ro.boot.hardware.platform} |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 568 | |
| 569 | # Setup final cpuset |
| 570 | write /dev/cpuset/top-app/cpus 0-7 |
| 571 | write /dev/cpuset/foreground/boost/cpus 0-3,6-7 |
| 572 | write /dev/cpuset/foreground/cpus 0-3,6-7 |
| 573 | write /dev/cpuset/background/cpus 0-1 |
| 574 | write /dev/cpuset/system-background/cpus 0-3 |
Tim Murray | 0c30c36 | 2018-04-13 11:09:04 -0700 | [diff] [blame] | 575 | write /dev/cpuset/restricted/cpus 0-3 |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 576 | |
| 577 | # Update DVR cpusets to runtime values. |
Wei Wang | 5d1e47c | 2018-03-09 14:40:33 -0800 | [diff] [blame] | 578 | # Kernel cpuset will be apply on PowerHAL |
| 579 | write /dev/cpuset/system/performance/cpus 6-7 |
| 580 | write /dev/cpuset/system/background/cpus 0-1 |
| 581 | write /dev/cpuset/system/cpus 0-1,6-7 |
| 582 | write /dev/cpuset/application/performance/cpus 4-5 |
| 583 | write /dev/cpuset/application/background/cpus 0-1 |
| 584 | write /dev/cpuset/application/cpus 0-1,4-5 |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 585 | |
Wei Wang | cfcc754 | 2018-05-22 09:51:56 -0700 | [diff] [blame] | 586 | # Runtime fs tuning: as we have init boottime setting and kernel patch setting |
| 587 | # default readahead to 2048KB. We should adjust the setting upon boot_complete |
| 588 | # for runtime performance |
Wei Wang | 1185da1 | 2018-02-26 19:18:34 -0800 | [diff] [blame] | 589 | write /sys/block/sda/queue/read_ahead_kb 1024 |
| 590 | write /sys/block/sda/queue/nr_requests 128 |
| 591 | write /sys/block/sda/queue/iostats 1 |
| 592 | write /sys/block/sdf/queue/read_ahead_kb 1024 |
| 593 | write /sys/block/sdf/queue/nr_requests 128 |
| 594 | write /sys/block/sdf/queue/iostats 1 |
| 595 | write /sys/block/dm-0/queue/read_ahead_kb 512 |
| 596 | write /sys/block/dm-1/queue/read_ahead_kb 512 |
Wei Wang | cfcc754 | 2018-05-22 09:51:56 -0700 | [diff] [blame] | 597 | write /sys/block/dm-2/queue/read_ahead_kb 512 |
| 598 | write /sys/block/dm-3/queue/read_ahead_kb 512 |
Wei Wang | 1185da1 | 2018-02-26 19:18:34 -0800 | [diff] [blame] | 599 | |
Thierry Strudel | e8c77d0 | 2018-04-10 17:17:01 -0700 | [diff] [blame] | 600 | # QCOM FG SRAM dump for dumpstate |
| 601 | chown system system /d/fg/sram/data |
| 602 | chown system system /d/fg/sram/count |
| 603 | chown system system /d/fg/sram/address |
| 604 | |
| 605 | # Maxim FG dump for dumpstate |
| 606 | chown system system /d/regmap/4-0036/registers |
| 607 | chown system system /d/regmap/4-000b/registers |
| 608 | |
| 609 | # Dump QCOM FG cycle counts for dumpstate |
| 610 | chown system system /sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pmi8998@2:qpnp,fg/cycle_counts_bins |
Thierry Strudel | b84f137 | 2018-06-21 19:02:56 -0700 | [diff] [blame] | 611 | chown system system /sys/devices/platform/soc/a90000.i2c/i2c-4/4-0036/power_supply/maxfg/cycle_counts_bins |
Thierry Strudel | e8c77d0 | 2018-04-10 17:17:01 -0700 | [diff] [blame] | 612 | |
| 613 | # HardwareInfo needs to be able to read CC bins |
| 614 | chmod 644 /sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pmi8998@2:qpnp,fg/cycle_counts_bins |
Thierry Strudel | b84f137 | 2018-06-21 19:02:56 -0700 | [diff] [blame] | 615 | chmod 644 /sys/devices/platform/soc/a90000.i2c/i2c-4/4-0036/power_supply/maxfg/cycle_counts_bins |
Thierry Strudel | e8c77d0 | 2018-04-10 17:17:01 -0700 | [diff] [blame] | 616 | |
Wei Wang | 14b4ed4 | 2017-10-02 14:48:46 -0700 | [diff] [blame] | 617 | # UFS health |
| 618 | chmod 755 /sys/kernel/debug/ufshcd0 |
| 619 | chmod 644 /sys/kernel/debug/ufshcd0/show_hba |
| 620 | chmod 644 /sys/kernel/debug/ufshcd0/stats/err_stats |
| 621 | chmod 644 /sys/kernel/debug/ufshcd0/stats/io_stats |
| 622 | chmod 644 /sys/kernel/debug/ufshcd0/stats/req_stats |
| 623 | |
Wei Wang | f46b495 | 2018-05-24 14:32:00 -0700 | [diff] [blame] | 624 | # Disable sched_boost |
| 625 | write /proc/sys/kernel/sched_boost 0 |
| 626 | |
Wei Wang | 7070637 | 2018-05-25 18:22:35 -0700 | [diff] [blame] | 627 | # Enable PowerHAL hint processing |
| 628 | setprop vendor.powerhal.init 1 |
| 629 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 630 | start per_proxy |
| 631 | |
| 632 | on property:sys.shutdown.requested=* |
| 633 | stop per_proxy |
| 634 | |
Daniel Mentz | aab747b | 2018-05-17 19:13:51 -0700 | [diff] [blame] | 635 | service vendor.qseecomd /vendor/bin/qseecomd |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 636 | class core |
| 637 | user root |
| 638 | group root |
| 639 | |
| 640 | service time_daemon /vendor/bin/time_daemon |
| 641 | class core |
| 642 | user root |
| 643 | group root |
| 644 | |
| 645 | service ss_ramdump /vendor/bin/subsystem_ramdump |
| 646 | class main |
| 647 | user root |
Shawn Yang | 5af0177 | 2018-02-24 17:36:33 -0800 | [diff] [blame] | 648 | group system |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 649 | disabled |
| 650 | |
Jaekyun Seok | b809e8c | 2018-03-12 10:42:44 +0900 | [diff] [blame] | 651 | on property:persist.vendor.sys.ssr.enable_ramdumps=1 |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 652 | write /sys/module/subsystem_restart/parameters/enable_ramdumps 1 |
Ecco Park | 03c6d8a | 2018-02-26 14:56:04 -0800 | [diff] [blame] | 653 | mkdir /data/vendor/wifidump 771 root system |
Petri Gynther | a14b526 | 2018-01-23 16:55:00 -0800 | [diff] [blame] | 654 | mkdir /data/vendor/ramdump 771 root system |
| 655 | mkdir /data/vendor/ssrdump 771 root system |
Shawn Yang | 5af0177 | 2018-02-24 17:36:33 -0800 | [diff] [blame] | 656 | mkdir /data/vendor/ssrlog 771 root system |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 657 | start ss_ramdump |
| 658 | |
Jaekyun Seok | b809e8c | 2018-03-12 10:42:44 +0900 | [diff] [blame] | 659 | on property:persist.vendor.sys.ssr.enable_ramdumps=0 |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 660 | write /sys/module/subsystem_restart/parameters/enable_ramdumps 0 |
| 661 | |
Daniel Mentz | b4e889d | 2018-03-09 12:03:53 -0800 | [diff] [blame] | 662 | service sensors.qti /vendor/bin/sensors.qti |
| 663 | class core |
Erik Staats | 4d855e9 | 2018-03-29 12:56:17 -0700 | [diff] [blame] | 664 | user system |
| 665 | group system |
| 666 | # Grants the ability for this daemon to bind IPC router ports so it can |
| 667 | # register QMI services |
| 668 | capabilities NET_BIND_SERVICE |
Daniel Mentz | b4e889d | 2018-03-09 12:03:53 -0800 | [diff] [blame] | 669 | |
Erik Staats | aecb61a | 2018-04-19 12:09:24 -0700 | [diff] [blame] | 670 | service vendor.sscrpcd /vendor/bin/sscrpcd |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 671 | class core |
Erik Staats | 4d855e9 | 2018-03-29 12:56:17 -0700 | [diff] [blame] | 672 | user system |
| 673 | group system |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 674 | |
| 675 | service adsprpcd /vendor/bin/adsprpcd |
| 676 | class main |
| 677 | user media |
| 678 | group media |
| 679 | |
c_mtharu | c683b8b | 2017-11-14 12:12:14 +0530 | [diff] [blame] | 680 | service cdsprpcd /vendor/bin/cdsprpcd |
| 681 | class main |
| 682 | user system |
| 683 | group system |
| 684 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 685 | service irsc_util /vendor/bin/irsc_util "/vendor/etc/sec_config" |
| 686 | class core |
| 687 | user root |
| 688 | oneshot |
| 689 | |
| 690 | service rmt_storage /vendor/bin/rmt_storage |
| 691 | class core |
| 692 | user root |
SalmaxChang | 7f883b8 | 2018-05-25 17:36:16 +0800 | [diff] [blame] | 693 | ioprio rt 0 |
| 694 | shutdown critical |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 695 | |
| 696 | service tftp_server /vendor/bin/tftp_server |
| 697 | class core |
| 698 | user root |
| 699 | group root system |
| 700 | |
| 701 | service wpa_supplicant /vendor/bin/hw/wpa_supplicant \ |
Jeff Vander Stoep | d25aa40 | 2018-01-24 08:57:13 -0800 | [diff] [blame] | 702 | -O/data/vendor/wifi/wpa/sockets -puse_p2p_group_interface=1 -dd \ |
Jeff Vander Stoep | d8283bc | 2017-11-30 11:02:28 -0800 | [diff] [blame] | 703 | -g@android:wpa_wlan0 |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 704 | # we will start as root and wpa_supplicant will switch to user wifi |
| 705 | # after setting up the capabilities required for WEXT |
| 706 | # user wifi |
| 707 | # group wifi inet keystore |
Roshan Pius | 6beae4e | 2018-02-05 16:21:46 -0800 | [diff] [blame] | 708 | interface android.hardware.wifi.supplicant@1.0::ISupplicant default |
| 709 | interface android.hardware.wifi.supplicant@1.1::ISupplicant default |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 710 | class main |
| 711 | socket wpa_wlan0 dgram 660 wifi wifi |
| 712 | disabled |
| 713 | oneshot |
| 714 | |
| 715 | service cnss-daemon /vendor/bin/cnss-daemon -n -l |
| 716 | class late_start |
| 717 | user system |
| 718 | group system inet wifi |
| 719 | |
| 720 | service imsqmidaemon /vendor/bin/imsqmidaemon |
| 721 | class main |
| 722 | user system |
| 723 | socket ims_qmid stream 0660 system radio |
| 724 | group radio log diag |
| 725 | |
| 726 | service imsdatadaemon /vendor/bin/imsdatadaemon |
| 727 | class main |
| 728 | user system |
| 729 | socket ims_datad stream 0660 system radio |
| 730 | group system wifi radio inet log |
| 731 | disabled |
| 732 | |
Jayachandran C | 5e2ce41 | 2018-01-02 18:30:31 -0800 | [diff] [blame] | 733 | on property:vendor.ims.QMI_DAEMON_STATUS=1 |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 734 | start imsdatadaemon |
| 735 | |
| 736 | service ims_rtp_daemon /vendor/bin/ims_rtp_daemon |
| 737 | class main |
| 738 | user system |
| 739 | group radio diag inet log |
| 740 | disabled |
| 741 | |
Jayachandran C | 5e2ce41 | 2018-01-02 18:30:31 -0800 | [diff] [blame] | 742 | service imsrcsservice /vendor/bin/imsrcsd |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 743 | class main |
| 744 | user system |
| 745 | group radio diag inet log |
| 746 | disabled |
| 747 | |
Jayachandran C | 5e2ce41 | 2018-01-02 18:30:31 -0800 | [diff] [blame] | 748 | on property:vendor.ims.DATA_DAEMON_STATUS=1 |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 749 | start ims_rtp_daemon |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 750 | start imsrcsservice |
| 751 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 752 | service cnd /vendor/bin/cnd |
| 753 | class main |
Jayachandran C | c7707a7 | 2018-05-21 14:19:51 -0700 | [diff] [blame] | 754 | user radio |
Sooraj Sasindran | 41628e6 | 2018-05-18 16:51:51 -0700 | [diff] [blame] | 755 | group system wifi inet radio wakelock |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 756 | |
| 757 | service netmgrd /vendor/bin/netmgrd |
| 758 | class main |
| 759 | user root |
| 760 | group root wifi wakelock radio inet |
| 761 | |
| 762 | service port-bridge /vendor/bin/port-bridge |
| 763 | class main |
| 764 | user radio |
| 765 | group radio system inet |
| 766 | oneshot |
| 767 | |
| 768 | service ipacm /vendor/bin/ipacm |
| 769 | class main |
| 770 | user radio |
| 771 | group radio inet |
| 772 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 773 | service loc_launcher /vendor/bin/loc_launcher |
| 774 | class late_start |
| 775 | group gps inet diag wifi |
| 776 | |
| 777 | service pd_mapper /vendor/bin/pd-mapper |
| 778 | class core |
| 779 | |
| 780 | # bugreport is triggered by holding down volume down, volume up and power |
| 781 | service bugreport /system/bin/dumpstate -d -p -B -z \ |
| 782 | -o /data/user_de/0/com.android.shell/files/bugreports/bugreport |
| 783 | class main |
| 784 | disabled |
| 785 | oneshot |
| 786 | keycodes 114 115 116 |
| 787 | |
Brian Duddie | 28fc8a8 | 2017-10-26 16:27:30 -0700 | [diff] [blame] | 788 | service vendor.chre /vendor/bin/chre |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 789 | class late_start |
Brian Duddie | 28fc8a8 | 2017-10-26 16:27:30 -0700 | [diff] [blame] | 790 | user system |
Andrew Rossignol | 6267d22 | 2018-06-01 14:11:25 -0700 | [diff] [blame] | 791 | group system wakelock |
| 792 | capabilities BLOCK_SUSPEND |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 793 | socket chre seqpacket 0660 root system |
Brian Duddie | 28fc8a8 | 2017-10-26 16:27:30 -0700 | [diff] [blame] | 794 | shutdown critical |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 795 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 796 | service devstart_sh /vendor/bin/init.qcom.devstart.sh |
| 797 | class main |
| 798 | user root |
| 799 | group root system |
| 800 | disabled |
| 801 | oneshot |
| 802 | |
Ecco Park | 03c6d8a | 2018-02-26 14:56:04 -0800 | [diff] [blame] | 803 | service vendor.wlan_sh /vendor/bin/init.qcom.wlan.sh |
| 804 | class main |
| 805 | user root |
| 806 | group root |
| 807 | disabled |
| 808 | oneshot |
| 809 | |
Chris Fries | dc2b50d | 2017-06-27 12:02:00 -0500 | [diff] [blame] | 810 | service ipastart_sh /vendor/bin/init.qcom.ipastart.sh |
| 811 | class main |
| 812 | user system |
| 813 | group net_admin |
| 814 | disabled |
| 815 | oneshot |
| 816 | |
| 817 | service insmod_sh /vendor/bin/init.insmod.sh |
| 818 | class main |
| 819 | user root |
| 820 | group root system |
| 821 | disabled |
| 822 | oneshot |
Mark Salyzyn | 4371f92 | 2018-01-16 09:50:05 -0800 | [diff] [blame] | 823 | |
Wei Wang | 0a5e1e7 | 2018-03-12 11:59:55 -0700 | [diff] [blame] | 824 | service msm_irqbalance /vendor/bin/msm_irqbalance -f /vendor/etc/msm_irqbalance.conf |
| 825 | socket msm_irqbalance seqpacket 660 root system |
| 826 | class core |
| 827 | user root |
| 828 | group root |
| 829 | writepid /dev/cpuset/system-background/tasks |
| 830 | |
Naseer Ahmed | 2e3d63d | 2018-03-16 09:30:55 -0400 | [diff] [blame] | 831 | service ppd /vendor/bin/mm-pp-dpps |
| 832 | class late_start |
| 833 | user graphics |
| 834 | group graphics |
| 835 | socket pps stream 0660 system system |
| 836 | disabled |
| 837 | |
Shawn Willden | 9ff2c61 | 2018-06-28 18:40:17 +0000 | [diff] [blame] | 838 | service wait_for_strongbox /vendor/bin/hw/wait_for_strongbox |
| 839 | user root |
| 840 | group root system |
| 841 | priority -20 |
| 842 | ioprio rt 0 |
| 843 | |
Ajay Dudani | 462b57b | 2018-05-03 12:13:56 -0700 | [diff] [blame] | 844 | on property:init.svc.vendor.hwcomposer-2-2=stopped |
Naseer Ahmed | 2e3d63d | 2018-03-16 09:30:55 -0400 | [diff] [blame] | 845 | stop ppd |
| 846 | |
Ajay Dudani | 462b57b | 2018-05-03 12:13:56 -0700 | [diff] [blame] | 847 | on property:init.svc.vendor.hwcomposer-2-2=running |
Naseer Ahmed | 2e3d63d | 2018-03-16 09:30:55 -0400 | [diff] [blame] | 848 | start ppd |
| 849 | |
Mark Salyzyn | 4371f92 | 2018-01-16 09:50:05 -0800 | [diff] [blame] | 850 | # b/70518189 vDSO experiments |
| 851 | on property:sys.vdso=* |
| 852 | write /sys/module/vdso/parameters/enable_32 1 |
| 853 | write /sys/module/vdso/parameters/enable_64 1 |
| 854 | |
| 855 | on property:sys.vdso=false |
| 856 | write /sys/module/vdso/parameters/enable_32 0 |
| 857 | write /sys/module/vdso/parameters/enable_64 0 |
| 858 | |
| 859 | on property:sys.vdso=64 |
| 860 | write /sys/module/vdso/parameters/enable_32 0 |
| 861 | |
| 862 | on property:sys.vdso=32 |
| 863 | write /sys/module/vdso/parameters/enable_64 0 |
Ecco Park | 0e37dfa | 2018-03-26 13:27:05 -0700 | [diff] [blame] | 864 | |
| 865 | on property:wlan.driver.status=ok |
| 866 | # Get the wlan driver/fw version |
| 867 | start vendor.wlan_sh |
Stuart Scott | 7aef2c2 | 2018-05-07 11:22:21 -0700 | [diff] [blame] | 868 | |
| 869 | on property:ro.boot.mode=sota |
| 870 | setprop ro.boot.sota enabled |
Ruchi Kandoi | ab31fbc | 2018-05-08 10:25:36 -0700 | [diff] [blame] | 871 | |
| 872 | on property:ro.boot.hardware.sku=G013A |
| 873 | setprop persist.nfc.uicc_enabled true |
| 874 | on property:ro.boot.hardware.sku=G013B |
| 875 | setprop persist.nfc.uicc_enabled false |
Ruchi Kandoi | 9acfd69 | 2018-06-26 09:43:06 -0700 | [diff] [blame] | 876 | setprop persist.vendor.radio.uicc_se_enabled false |
Ruchi Kandoi | 66300ea | 2018-06-13 17:09:49 -0700 | [diff] [blame] | 877 | interface_start android.hardware.secure_element@1.0::ISecureElement/eSE1 |
Ruchi Kandoi | ab31fbc | 2018-05-08 10:25:36 -0700 | [diff] [blame] | 878 | on property:ro.boot.hardware.sku=G013C |
| 879 | setprop persist.nfc.uicc_enabled true |
| 880 | on property:ro.boot.hardware.sku=G013D |
| 881 | setprop persist.nfc.uicc_enabled false |
Ruchi Kandoi | 9acfd69 | 2018-06-26 09:43:06 -0700 | [diff] [blame] | 882 | setprop persist.vendor.radio.uicc_se_enabled false |
Ruchi Kandoi | 66300ea | 2018-06-13 17:09:49 -0700 | [diff] [blame] | 883 | interface_start android.hardware.secure_element@1.0::ISecureElement/eSE1 |
Jack Wu | 093f89f | 2018-05-09 13:52:57 +0800 | [diff] [blame] | 884 | |
| 885 | # charger driver exposes now finer grain control, map demo mode to those properties |
| 886 | # demo mode can only be exit wipping data which will also reset the persist properties |
| 887 | on property:sys.retaildemo.enabled=1 |
| 888 | setprop persist.vendor.charge.stop.level 35 |
| 889 | setprop persist.vendor.charge.start.level 30 |
| 890 | |
| 891 | # system will not set the sys.retaildemo.enabled to 0 but this is used to set back to default charging |
| 892 | on property:sys.retaildemo.enabled=0 |
| 893 | setprop persist.vendor.charge.stop.level 100 |
| 894 | setprop persist.vendor.charge.start.level 0 |
| 895 | |
| 896 | on property:persist.vendor.charge.stop.level=* |
| 897 | write /sys/devices/platform/soc/soc:google,charger/charge_stop_level ${persist.vendor.charge.stop.level} |
| 898 | |
| 899 | on property:persist.vendor.charge.start.level=* |
| 900 | write /sys/devices/platform/soc/soc:google,charger/charge_start_level ${persist.vendor.charge.start.level} |
Eino-Ville Talvala | 6005e32 | 2018-06-15 15:26:56 -0700 | [diff] [blame] | 901 | |
| 902 | # For Japan radio builds, always enforce camera shutter sound |
| 903 | # Since this property is read by the audio server in system service, |
| 904 | # it should be written by the system init. |
| 905 | on property:ro.boot.hardware.radio.subtype=1 |
| 906 | setprop audio.camerasound.force true |