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