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