init.rc revision c2ea70ae6ebcf98bd067e06b3e33894ef5c260c8
1# Copyright (C) 2012 The Android Open Source Project 2# 3# IMPORTANT: Do not create world writable files or directories. 4# This is a common source of Android security bugs. 5# 6 7import /init.environ.rc 8import /init.usb.rc 9import /init.${ro.hardware}.rc 10import /init.${ro.zygote}.rc 11import /init.trace.rc 12 13on early-init 14 # Set init and its forked children's oom_adj. 15 write /proc/1/oom_score_adj -1000 16 17 # Set the security context of /adb_keys if present. 18 restorecon /adb_keys 19 20 # Shouldn't be necessary, but sdcard won't start without it. http://b/22568628. 21 mkdir /mnt 0775 root system 22 23 start ueventd 24 25on init 26 sysclktz 0 27 28 # Backward compatibility. 29 symlink /system/etc /etc 30 symlink /sys/kernel/debug /d 31 32 # Link /vendor to /system/vendor for devices without a vendor partition. 33 symlink /system/vendor /vendor 34 35 # Mount cgroup mount point for cpu accounting 36 mount cgroup none /acct cpuacct 37 mkdir /acct/uid 38 39 # Create cgroup mount point for memory 40 mount tmpfs none /sys/fs/cgroup mode=0750,uid=0,gid=1000 41 mkdir /sys/fs/cgroup/memory 0750 root system 42 mount cgroup none /sys/fs/cgroup/memory memory 43 write /sys/fs/cgroup/memory/memory.move_charge_at_immigrate 1 44 chown root system /sys/fs/cgroup/memory/tasks 45 chmod 0660 /sys/fs/cgroup/memory/tasks 46 mkdir /sys/fs/cgroup/memory/sw 0750 root system 47 write /sys/fs/cgroup/memory/sw/memory.swappiness 100 48 write /sys/fs/cgroup/memory/sw/memory.move_charge_at_immigrate 1 49 chown root system /sys/fs/cgroup/memory/sw/tasks 50 chmod 0660 /sys/fs/cgroup/memory/sw/tasks 51 52 # See storage config details at http://source.android.com/tech/storage/ 53 mkdir /mnt/shell 0700 shell shell 54 mkdir /mnt/media_rw 0700 media_rw media_rw 55 mkdir /storage 0751 root sdcard_r 56 57 # Directory for putting things only root should see. 58 mkdir /mnt/secure 0700 root root 59 60 # Directory for staging bindmounts 61 mkdir /mnt/secure/staging 0700 root root 62 63 # Directory-target for where the secure container 64 # imagefile directory will be bind-mounted 65 mkdir /mnt/secure/asec 0700 root root 66 67 # Secure container public mount points. 68 mkdir /mnt/asec 0700 root system 69 mount tmpfs tmpfs /mnt/asec mode=0755,gid=1000 70 71 # Filesystem image public mount points. 72 mkdir /mnt/obb 0700 root system 73 mount tmpfs tmpfs /mnt/obb mode=0755,gid=1000 74 75 # memory control cgroup 76 mkdir /dev/memcg 0700 root system 77 mount cgroup none /dev/memcg memory 78 79 write /proc/sys/kernel/panic_on_oops 1 80 write /proc/sys/kernel/hung_task_timeout_secs 0 81 write /proc/cpu/alignment 4 82 write /proc/sys/kernel/sched_latency_ns 10000000 83 write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000 84 write /proc/sys/kernel/sched_compat_yield 1 85 write /proc/sys/kernel/sched_child_runs_first 0 86 write /proc/sys/kernel/randomize_va_space 2 87 write /proc/sys/kernel/kptr_restrict 2 88 write /proc/sys/vm/mmap_min_addr 32768 89 write /proc/sys/net/ipv4/ping_group_range "0 2147483647" 90 write /proc/sys/net/unix/max_dgram_qlen 300 91 write /proc/sys/kernel/sched_rt_runtime_us 950000 92 write /proc/sys/kernel/sched_rt_period_us 1000000 93 94 # reflect fwmark from incoming packets onto generated replies 95 write /proc/sys/net/ipv4/fwmark_reflect 1 96 write /proc/sys/net/ipv6/fwmark_reflect 1 97 98 # set fwmark on accepted sockets 99 write /proc/sys/net/ipv4/tcp_fwmark_accept 1 100 101 # Create cgroup mount points for process groups 102 mkdir /dev/cpuctl 103 mount cgroup none /dev/cpuctl cpu 104 chown system system /dev/cpuctl 105 chown system system /dev/cpuctl/tasks 106 chmod 0666 /dev/cpuctl/tasks 107 write /dev/cpuctl/cpu.shares 1024 108 write /dev/cpuctl/cpu.rt_runtime_us 800000 109 write /dev/cpuctl/cpu.rt_period_us 1000000 110 111 mkdir /dev/cpuctl/bg_non_interactive 112 chown system system /dev/cpuctl/bg_non_interactive/tasks 113 chmod 0666 /dev/cpuctl/bg_non_interactive/tasks 114 # 5.0 % 115 write /dev/cpuctl/bg_non_interactive/cpu.shares 52 116 write /dev/cpuctl/bg_non_interactive/cpu.rt_runtime_us 700000 117 write /dev/cpuctl/bg_non_interactive/cpu.rt_period_us 1000000 118 119 # qtaguid will limit access to specific data based on group memberships. 120 # net_bw_acct grants impersonation of socket owners. 121 # net_bw_stats grants access to other apps' detailed tagged-socket stats. 122 chown root net_bw_acct /proc/net/xt_qtaguid/ctrl 123 chown root net_bw_stats /proc/net/xt_qtaguid/stats 124 125 # Allow everybody to read the xt_qtaguid resource tracking misc dev. 126 # This is needed by any process that uses socket tagging. 127 chmod 0644 /dev/xt_qtaguid 128 129 # Create location for fs_mgr to store abbreviated output from filesystem 130 # checker programs. 131 mkdir /dev/fscklogs 0770 root system 132 133 # pstore/ramoops previous console log 134 mount pstore pstore /sys/fs/pstore 135 chown system log /sys/fs/pstore/console-ramoops 136 chmod 0440 /sys/fs/pstore/console-ramoops 137 chown system log /sys/fs/pstore/pmsg-ramoops-0 138 chmod 0440 /sys/fs/pstore/pmsg-ramoops-0 139 140 # enable armv8_deprecated instruction hooks 141 write /proc/sys/abi/swp 1 142 143# Healthd can trigger a full boot from charger mode by signaling this 144# property when the power button is held. 145on property:sys.boot_from_charger_mode=1 146 class_stop charger 147 trigger late-init 148 149# Load properties from /system/ + /factory after fs mount. 150on load_all_props_action 151 load_all_props 152 start logd 153 start logd-reinit 154 155# Indicate to fw loaders that the relevant mounts are up. 156on firmware_mounts_complete 157 rm /dev/.booting 158 159# Mount filesystems and start core system services. 160on late-init 161 trigger early-fs 162 trigger fs 163 trigger post-fs 164 trigger post-fs-data 165 166 # Load properties from /system/ + /factory after fs mount. Place 167 # this in another action so that the load will be scheduled after the prior 168 # issued fs triggers have completed. 169 trigger load_all_props_action 170 171 # Remove a file to wake up anything waiting for firmware. 172 trigger firmware_mounts_complete 173 174 trigger early-boot 175 trigger boot 176 177 178on post-fs 179 start logd 180 # once everything is setup, no need to modify / 181 mount rootfs rootfs / ro remount 182 # mount shared so changes propagate into child namespaces 183 mount rootfs rootfs / shared rec 184 185 # We chown/chmod /cache again so because mount is run as root + defaults 186 chown system cache /cache 187 chmod 0770 /cache 188 # We restorecon /cache in case the cache partition has been reset. 189 restorecon_recursive /cache 190 191 # Create /cache/recovery in case it's not there. It'll also fix the odd 192 # permissions if created by the recovery system. 193 mkdir /cache/recovery 0770 system cache 194 195 #change permissions on vmallocinfo so we can grab it from bugreports 196 chown root log /proc/vmallocinfo 197 chmod 0440 /proc/vmallocinfo 198 199 chown root log /proc/slabinfo 200 chmod 0440 /proc/slabinfo 201 202 #change permissions on kmsg & sysrq-trigger so bugreports can grab kthread stacks 203 chown root system /proc/kmsg 204 chmod 0440 /proc/kmsg 205 chown root system /proc/sysrq-trigger 206 chmod 0220 /proc/sysrq-trigger 207 chown system log /proc/last_kmsg 208 chmod 0440 /proc/last_kmsg 209 210 # make the selinux kernel policy world-readable 211 chmod 0444 /sys/fs/selinux/policy 212 213 # create the lost+found directories, so as to enforce our permissions 214 mkdir /cache/lost+found 0770 root root 215 216on post-fs-data 217 # We chown/chmod /data again so because mount is run as root + defaults 218 chown system system /data 219 chmod 0771 /data 220 # We restorecon /data in case the userdata partition has been reset. 221 restorecon /data 222 223 # Make sure we have the device encryption key 224 start logd 225 start vold 226 installkey /data 227 228 # Start bootcharting as soon as possible after the data partition is 229 # mounted to collect more data. 230 mkdir /data/bootchart 0755 shell shell 231 bootchart_init 232 233 # Avoid predictable entropy pool. Carry over entropy from previous boot. 234 copy /data/system/entropy.dat /dev/urandom 235 236 # create basic filesystem structure 237 mkdir /data/misc 01771 system misc 238 mkdir /data/misc/adb 02750 system shell 239 mkdir /data/misc/bluedroid 0770 bluetooth net_bt_stack 240 mkdir /data/misc/bluetooth 0770 system system 241 mkdir /data/misc/keystore 0700 keystore keystore 242 mkdir /data/misc/gatekeeper 0700 system system 243 mkdir /data/misc/keychain 0771 system system 244 mkdir /data/misc/net 0750 root shell 245 mkdir /data/misc/radio 0770 system radio 246 mkdir /data/misc/sms 0770 system radio 247 mkdir /data/misc/zoneinfo 0775 system system 248 mkdir /data/misc/vpn 0770 system vpn 249 mkdir /data/misc/shared_relro 0771 shared_relro shared_relro 250 mkdir /data/misc/systemkeys 0700 system system 251 mkdir /data/misc/wifi 0770 wifi wifi 252 mkdir /data/misc/wifi/sockets 0770 wifi wifi 253 mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi 254 mkdir /data/misc/ethernet 0770 system system 255 mkdir /data/misc/dhcp 0770 dhcp dhcp 256 mkdir /data/misc/user 0771 root root 257 mkdir /data/misc/perfprofd 0775 root root 258 # give system access to wpa_supplicant.conf for backup and restore 259 chmod 0660 /data/misc/wifi/wpa_supplicant.conf 260 mkdir /data/local 0751 root root 261 mkdir /data/misc/media 0700 media media 262 263 # For security reasons, /data/local/tmp should always be empty. 264 # Do not place files or directories in /data/local/tmp 265 mkdir /data/local/tmp 0771 shell shell 266 mkdir /data/data 0771 system system 267 mkdir /data/app-private 0771 system system 268 mkdir /data/app-asec 0700 root root 269 mkdir /data/app-lib 0771 system system 270 mkdir /data/app 0771 system system 271 mkdir /data/property 0700 root root 272 mkdir /data/tombstones 0771 system system 273 274 # create dalvik-cache, so as to enforce our permissions 275 mkdir /data/dalvik-cache 0771 root root 276 mkdir /data/dalvik-cache/profiles 0711 system system 277 278 # create resource-cache and double-check the perms 279 mkdir /data/resource-cache 0771 system system 280 chown system system /data/resource-cache 281 chmod 0771 /data/resource-cache 282 283 # create the lost+found directories, so as to enforce our permissions 284 mkdir /data/lost+found 0770 root root 285 286 # create directory for DRM plug-ins - give drm the read/write access to 287 # the following directory. 288 mkdir /data/drm 0770 drm drm 289 290 # create directory for MediaDrm plug-ins - give drm the read/write access to 291 # the following directory. 292 mkdir /data/mediadrm 0770 mediadrm mediadrm 293 294 mkdir /data/adb 0700 root root 295 mkdir /data/anr 0775 system system 296 297 # symlink to bugreport storage location 298 symlink /data/data/com.android.shell/files/bugreports /data/bugreports 299 300 # Separate location for storing security policy files on data 301 mkdir /data/security 0711 system system 302 303 # Create all remaining /data root dirs so that they are made through init 304 # and get proper encryption policy installed 305 mkdir /data/backup 0700 system system 306 mkdir /data/media 0770 media_rw media_rw 307 mkdir /data/ss 0700 system system 308 mkdir /data/system 0775 system system 309 mkdir /data/system/heapdump 0700 system system 310 mkdir /data/user 0711 system system 311 312 # Reload policy from /data/security if present. 313 setprop selinux.reload_policy 1 314 315 # Set SELinux security contexts on upgrade or policy update. 316 restorecon_recursive /data 317 318 # Check any timezone data in /data is newer than the copy in /system, delete if not. 319 exec - system system -- /system/bin/tzdatacheck /system/usr/share/zoneinfo /data/misc/zoneinfo 320 321 # If there is no fs-post-data action in the init.<device>.rc file, you 322 # must uncomment this line, otherwise encrypted filesystems 323 # won't work. 324 # Set indication (checked by vold) that we have finished this action 325 #setprop vold.post_fs_data_done 1 326 327on boot 328 # basic network init 329 ifup lo 330 hostname localhost 331 domainname localdomain 332 333 # set RLIMIT_NICE to allow priorities from 19 to -20 334 setrlimit 13 40 40 335 336 # Memory management. Basic kernel parameters, and allow the high 337 # level system server to be able to adjust the kernel OOM driver 338 # parameters to match how it is managing things. 339 write /proc/sys/vm/overcommit_memory 1 340 write /proc/sys/vm/min_free_order_shift 4 341 chown root system /sys/module/lowmemorykiller/parameters/adj 342 chmod 0220 /sys/module/lowmemorykiller/parameters/adj 343 chown root system /sys/module/lowmemorykiller/parameters/minfree 344 chmod 0220 /sys/module/lowmemorykiller/parameters/minfree 345 346 # Tweak background writeout 347 write /proc/sys/vm/dirty_expire_centisecs 200 348 write /proc/sys/vm/dirty_background_ratio 5 349 350 # Permissions for System Server and daemons. 351 chown radio system /sys/android_power/state 352 chown radio system /sys/android_power/request_state 353 chown radio system /sys/android_power/acquire_full_wake_lock 354 chown radio system /sys/android_power/acquire_partial_wake_lock 355 chown radio system /sys/android_power/release_wake_lock 356 chown system system /sys/power/autosleep 357 chown system system /sys/power/state 358 chown system system /sys/power/wakeup_count 359 chown radio system /sys/power/wake_lock 360 chown radio system /sys/power/wake_unlock 361 chmod 0660 /sys/power/state 362 chmod 0660 /sys/power/wake_lock 363 chmod 0660 /sys/power/wake_unlock 364 365 chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_rate 366 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/timer_rate 367 chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_slack 368 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/timer_slack 369 chown system system /sys/devices/system/cpu/cpufreq/interactive/min_sample_time 370 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/min_sample_time 371 chown system system /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq 372 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq 373 chown system system /sys/devices/system/cpu/cpufreq/interactive/target_loads 374 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/target_loads 375 chown system system /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load 376 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load 377 chown system system /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay 378 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay 379 chown system system /sys/devices/system/cpu/cpufreq/interactive/boost 380 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boost 381 chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse 382 chown system system /sys/devices/system/cpu/cpufreq/interactive/input_boost 383 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/input_boost 384 chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration 385 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration 386 chown system system /sys/devices/system/cpu/cpufreq/interactive/io_is_busy 387 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/io_is_busy 388 389 # Assume SMP uses shared cpufreq policy for all CPUs 390 chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 391 chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 392 393 chown system system /sys/class/timed_output/vibrator/enable 394 chown system system /sys/class/leds/keyboard-backlight/brightness 395 chown system system /sys/class/leds/lcd-backlight/brightness 396 chown system system /sys/class/leds/button-backlight/brightness 397 chown system system /sys/class/leds/jogball-backlight/brightness 398 chown system system /sys/class/leds/red/brightness 399 chown system system /sys/class/leds/green/brightness 400 chown system system /sys/class/leds/blue/brightness 401 chown system system /sys/class/leds/red/device/grpfreq 402 chown system system /sys/class/leds/red/device/grppwm 403 chown system system /sys/class/leds/red/device/blink 404 chown system system /sys/class/timed_output/vibrator/enable 405 chown system system /sys/module/sco/parameters/disable_esco 406 chown system system /sys/kernel/ipv4/tcp_wmem_min 407 chown system system /sys/kernel/ipv4/tcp_wmem_def 408 chown system system /sys/kernel/ipv4/tcp_wmem_max 409 chown system system /sys/kernel/ipv4/tcp_rmem_min 410 chown system system /sys/kernel/ipv4/tcp_rmem_def 411 chown system system /sys/kernel/ipv4/tcp_rmem_max 412 chown root radio /proc/cmdline 413 414 # Define default initial receive window size in segments. 415 setprop net.tcp.default_init_rwnd 60 416 417 class_start core 418 419on nonencrypted 420 class_start main 421 class_start late_start 422 423on property:vold.decrypt=trigger_default_encryption 424 start defaultcrypto 425 426on property:vold.decrypt=trigger_encryption 427 start surfaceflinger 428 start encrypt 429 430on property:sys.init_log_level=* 431 loglevel ${sys.init_log_level} 432 433on charger 434 class_start charger 435 436on property:vold.decrypt=trigger_reset_main 437 class_reset main 438 439on property:vold.decrypt=trigger_load_persist_props 440 load_persist_props 441 start logd 442 start logd-reinit 443 444on property:vold.decrypt=trigger_post_fs_data 445 trigger post-fs-data 446 447on property:vold.decrypt=trigger_restart_min_framework 448 class_start main 449 450on property:vold.decrypt=trigger_restart_framework 451 class_start main 452 class_start late_start 453 454on property:vold.decrypt=trigger_shutdown_framework 455 class_reset late_start 456 class_reset main 457 458on property:sys.powerctl=* 459 powerctl ${sys.powerctl} 460 461# system server cannot write to /proc/sys files, 462# and chown/chmod does not work for /proc/sys/ entries. 463# So proxy writes through init. 464on property:sys.sysctl.extra_free_kbytes=* 465 write /proc/sys/vm/extra_free_kbytes ${sys.sysctl.extra_free_kbytes} 466 467# "tcp_default_init_rwnd" Is too long! 468on property:sys.sysctl.tcp_def_init_rwnd=* 469 write /proc/sys/net/ipv4/tcp_default_init_rwnd ${sys.sysctl.tcp_def_init_rwnd} 470 471 472## Daemon processes to be run by init. 473## 474service ueventd /sbin/ueventd 475 class core 476 critical 477 seclabel u:r:ueventd:s0 478 479service logd /system/bin/logd 480 class core 481 socket logd stream 0666 logd logd 482 socket logdr seqpacket 0666 logd logd 483 socket logdw dgram 0222 logd logd 484 485service logd-reinit /system/bin/logd --reinit 486 oneshot 487 disabled 488 489service healthd /sbin/healthd 490 class core 491 critical 492 seclabel u:r:healthd:s0 493 494service console /system/bin/sh 495 class core 496 console 497 disabled 498 user shell 499 group shell log 500 seclabel u:r:shell:s0 501 502on property:ro.debuggable=1 503 start console 504 505# adbd is controlled via property triggers in init.<platform>.usb.rc 506service adbd /sbin/adbd --root_seclabel=u:r:su:s0 507 class core 508 socket adbd stream 660 system system 509 disabled 510 seclabel u:r:adbd:s0 511 512# adbd on at boot in emulator 513on property:ro.kernel.qemu=1 514 start adbd 515 516service lmkd /system/bin/lmkd 517 class core 518 critical 519 socket lmkd seqpacket 0660 system system 520 521service servicemanager /system/bin/servicemanager 522 class core 523 user system 524 group system 525 critical 526 onrestart restart healthd 527 onrestart restart zygote 528 onrestart restart media 529 onrestart restart surfaceflinger 530 onrestart restart drm 531 532service vold /system/bin/vold 533 class core 534 socket vold stream 0660 root mount 535 ioprio be 2 536 537service netd /system/bin/netd 538 class main 539 socket netd stream 0660 root system 540 socket dnsproxyd stream 0660 root inet 541 socket mdns stream 0660 root system 542 socket fwmarkd stream 0660 root inet 543 544service debuggerd /system/bin/debuggerd 545 class main 546 547service debuggerd64 /system/bin/debuggerd64 548 class main 549 550service ril-daemon /system/bin/rild 551 class main 552 socket rild stream 660 root radio 553 socket rild-debug stream 660 radio system 554 user root 555 group radio cache inet misc audio log 556 557service surfaceflinger /system/bin/surfaceflinger 558 class core 559 user system 560 group graphics drmrpc 561 onrestart restart zygote 562 563service drm /system/bin/drmserver 564 class main 565 user drm 566 group drm system inet drmrpc 567 568service media /system/bin/mediaserver 569 class main 570 user media 571 group audio camera inet net_bt net_bt_admin net_bw_acct drmrpc mediadrm 572 ioprio rt 4 573 574# One shot invocation to deal with encrypted volume. 575service defaultcrypto /system/bin/vdc --wait cryptfs mountdefaultencrypted 576 disabled 577 oneshot 578 # vold will set vold.decrypt to trigger_restart_framework (default 579 # encryption) or trigger_restart_min_framework (other encryption) 580 581# One shot invocation to encrypt unencrypted volumes 582service encrypt /system/bin/vdc --wait cryptfs enablecrypto inplace default 583 disabled 584 oneshot 585 # vold will set vold.decrypt to trigger_restart_framework (default 586 # encryption) 587 588service bootanim /system/bin/bootanimation 589 class core 590 user graphics 591 group graphics audio 592 disabled 593 oneshot 594 595service installd /system/bin/installd 596 class main 597 socket installd stream 600 system system 598 599service flash_recovery /system/bin/install-recovery.sh 600 class main 601 oneshot 602 603service racoon /system/bin/racoon 604 class main 605 socket racoon stream 600 system system 606 # IKE uses UDP port 500. Racoon will setuid to vpn after binding the port. 607 group vpn net_admin inet 608 disabled 609 oneshot 610 611service mtpd /system/bin/mtpd 612 class main 613 socket mtpd stream 600 system system 614 user vpn 615 group vpn net_admin inet net_raw 616 disabled 617 oneshot 618 619service keystore /system/bin/keystore /data/misc/keystore 620 class main 621 user keystore 622 group keystore drmrpc 623 624service dumpstate /system/bin/dumpstate -s 625 class main 626 socket dumpstate stream 0660 shell log 627 disabled 628 oneshot 629 630service mdnsd /system/bin/mdnsd 631 class main 632 user mdnsr 633 group inet net_raw 634 socket mdnsd stream 0660 mdnsr inet 635 disabled 636 oneshot 637 638service uncrypt /system/bin/uncrypt 639 class main 640 disabled 641 oneshot 642 643service pre-recovery /system/bin/uncrypt --reboot 644 class main 645 disabled 646 oneshot 647 648service perfprofd /system/xbin/perfprofd 649 class late_start 650 user root 651 oneshot 652 653on property:persist.logd.logpersistd=logcatd 654 # all exec/services are called with umask(077), so no gain beyond 0700 655 mkdir /data/misc/logd 0700 logd log 656 # logd for write to /data/misc/logd, log group for read from pstore (-L) 657 exec - logd log -- /system/bin/logcat -L -b all -v threadtime -v usec -v printable -D -f /data/misc/logd/logcat -r 64 -n 256 658 start logcatd 659 660service logcatd /system/bin/logcat -b all -v threadtime -v usec -v printable -D -f /data/misc/logd/logcat -r 64 -n 256 661 class late_start 662 disabled 663 # logd for write to /data/misc/logd, log group for read from log daemon 664 user logd 665 group log 666