blob: d1822cf9681c44d47fac262a01d55e47be3e6972 [file] [log] [blame]
Nick Kralevichf3ef1272012-03-14 15:22:54 -07001# 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
Ying Wang5748ee92013-07-23 18:03:37 -07007import /init.environ.rc
Mike Lockwood4f5d5172012-04-04 11:26:59 -07008import /init.usb.rc
Mike Lockwood35ea5e42012-08-28 10:25:13 -07009import /init.${ro.hardware}.rc
Todd Poynorf1c50bf2012-09-20 20:10:53 -070010import /init.trace.rc
Dima Zavin7634bf82011-12-16 14:23:22 -080011
Colin Crossf83d0b92010-04-21 12:04:20 -070012on early-init
Dima Zavin4a253902011-11-04 12:45:52 -070013 # Set init and its forked children's oom_adj.
14 write /proc/1/oom_adj -16
15
Stephen Smalley1eee4192012-01-13 08:54:34 -050016 # Set the security context for the init process.
17 # This should occur before anything else (e.g. ueventd) is started.
18 setcon u:r:init:s0
19
Stephen Smalleydeb41e52013-10-01 09:21:47 -040020 # Set the security context of /adb_keys if present.
21 restorecon /adb_keys
22
Colin Crossf83d0b92010-04-21 12:04:20 -070023 start ueventd
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080024
Mike Lockwooda2dffa92010-06-15 20:57:59 -070025# create mountpoints
26 mkdir /mnt 0775 root system
27
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080028on init
29
30sysclktz 0
31
32loglevel 3
33
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080034# Backward compatibility
35 symlink /system/etc /etc
Brian Swetlandbb6f68c2009-09-18 15:31:23 -070036 symlink /sys/kernel/debug /d
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080037
Brian Swetland02863b92010-09-19 03:36:39 -070038# Right now vendor lives on the same filesystem as system,
39# but someday that may change.
40 symlink /system/vendor /vendor
San Mehat6ea3cc62010-02-19 18:25:22 -080041
Mike Chan89f235c2010-03-01 11:36:10 -080042# Create cgroup mount point for cpu accounting
43 mkdir /acct
44 mount cgroup none /acct cpuacct
45 mkdir /acct/uid
46
Rom Lemarchand435a52e2013-07-10 13:00:42 -070047# Create cgroup mount point for memory
Rom Lemarchand67b00d82013-09-10 17:39:30 -070048 mount tmpfs none /sys/fs/cgroup mode=0750,uid=0,gid=1000
49 mkdir /sys/fs/cgroup/memory 0750 root system
Rom Lemarchand435a52e2013-07-10 13:00:42 -070050 mount cgroup none /sys/fs/cgroup/memory memory
51 write /sys/fs/cgroup/memory/memory.move_charge_at_immigrate 1
52 chown root system /sys/fs/cgroup/memory/tasks
53 chmod 0660 /sys/fs/cgroup/memory/tasks
Rom Lemarchand67b00d82013-09-10 17:39:30 -070054 mkdir /sys/fs/cgroup/memory/sw 0750 root system
Rom Lemarchand435a52e2013-07-10 13:00:42 -070055 write /sys/fs/cgroup/memory/sw/memory.swappiness 100
56 write /sys/fs/cgroup/memory/sw/memory.move_charge_at_immigrate 1
57 chown root system /sys/fs/cgroup/memory/sw/tasks
58 chmod 0660 /sys/fs/cgroup/memory/sw/tasks
59
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080060 mkdir /system
61 mkdir /data 0771 system system
62 mkdir /cache 0770 system cache
Dmitry Shmidt720f08f2009-06-09 14:38:56 -070063 mkdir /config 0500 root root
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080064
Jeff Sharkeybfcd8102012-08-22 13:57:25 -070065 # See storage config details at http://source.android.com/tech/storage/
Jeff Sharkey5dd0f862012-08-17 16:01:16 -070066 mkdir /mnt/shell 0700 shell shell
Jeff Sharkeye93a0512013-10-08 10:14:24 -070067 mkdir /mnt/media_rw 0700 media_rw media_rw
Jeff Sharkey44d63422013-09-12 09:44:48 -070068 mkdir /storage 0751 root sdcard_r
Jeff Sharkey5dd0f862012-08-17 16:01:16 -070069
San Mehat6ea3cc62010-02-19 18:25:22 -080070 # Directory for putting things only root should see.
71 mkdir /mnt/secure 0700 root root
72
73 # Directory for staging bindmounts
74 mkdir /mnt/secure/staging 0700 root root
75
76 # Directory-target for where the secure container
77 # imagefile directory will be bind-mounted
78 mkdir /mnt/secure/asec 0700 root root
79
80 # Secure container public mount points.
81 mkdir /mnt/asec 0700 root system
82 mount tmpfs tmpfs /mnt/asec mode=0755,gid=1000
San Mehat900570e2010-01-06 10:38:49 -080083
Kenny Rootc7858a32010-07-15 12:14:44 -070084 # Filesystem image public mount points.
85 mkdir /mnt/obb 0700 root system
86 mount tmpfs tmpfs /mnt/obb mode=0755,gid=1000
87
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080088 write /proc/sys/kernel/panic_on_oops 1
89 write /proc/sys/kernel/hung_task_timeout_secs 0
90 write /proc/cpu/alignment 4
91 write /proc/sys/kernel/sched_latency_ns 10000000
92 write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000
San Mehat4322f2d2009-06-29 08:47:43 -070093 write /proc/sys/kernel/sched_compat_yield 1
San Mehat7baff712009-09-16 13:32:23 -070094 write /proc/sys/kernel/sched_child_runs_first 0
Nick Kralevichd707fb32011-10-06 11:47:11 -070095 write /proc/sys/kernel/randomize_va_space 2
Nick Kralevich2e7c8332011-11-02 08:51:37 -070096 write /proc/sys/kernel/kptr_restrict 2
Nick Kralevichf9557fb2011-11-08 14:38:53 -080097 write /proc/sys/kernel/dmesg_restrict 1
Nick Kralevich27cca212011-12-05 14:48:08 -080098 write /proc/sys/vm/mmap_min_addr 32768
Nick Kralevichbe341cc2013-02-21 18:36:43 -080099 write /proc/sys/net/ipv4/ping_group_range "0 2147483647"
Glenn Kastenb91bd9f2012-04-19 16:18:37 -0700100 write /proc/sys/kernel/sched_rt_runtime_us 950000
101 write /proc/sys/kernel/sched_rt_period_us 1000000
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800102
San Mehat529520e2009-10-06 11:22:55 -0700103# Create cgroup mount points for process groups
104 mkdir /dev/cpuctl
San Mehatb91bf4b2010-02-27 08:20:11 -0800105 mount cgroup none /dev/cpuctl cpu
San Mehat92175e02010-01-17 12:21:42 -0800106 chown system system /dev/cpuctl
San Mehat529520e2009-10-06 11:22:55 -0700107 chown system system /dev/cpuctl/tasks
Glenn Kastenb91bd9f2012-04-19 16:18:37 -0700108 chmod 0660 /dev/cpuctl/tasks
San Mehat529520e2009-10-06 11:22:55 -0700109 write /dev/cpuctl/cpu.shares 1024
Glenn Kastenb91bd9f2012-04-19 16:18:37 -0700110 write /dev/cpuctl/cpu.rt_runtime_us 950000
111 write /dev/cpuctl/cpu.rt_period_us 1000000
San Mehat529520e2009-10-06 11:22:55 -0700112
Dima Zavindf44b882012-06-04 10:45:15 -0700113 mkdir /dev/cpuctl/apps
114 chown system system /dev/cpuctl/apps/tasks
115 chmod 0666 /dev/cpuctl/apps/tasks
116 write /dev/cpuctl/apps/cpu.shares 1024
Dima Zavin5f2d00b2012-06-04 13:15:01 -0700117 write /dev/cpuctl/apps/cpu.rt_runtime_us 800000
Dima Zavindf44b882012-06-04 10:45:15 -0700118 write /dev/cpuctl/apps/cpu.rt_period_us 1000000
San Mehat529520e2009-10-06 11:22:55 -0700119
Dima Zavindf44b882012-06-04 10:45:15 -0700120 mkdir /dev/cpuctl/apps/bg_non_interactive
121 chown system system /dev/cpuctl/apps/bg_non_interactive/tasks
122 chmod 0666 /dev/cpuctl/apps/bg_non_interactive/tasks
San Mehat529520e2009-10-06 11:22:55 -0700123 # 5.0 %
Dima Zavindf44b882012-06-04 10:45:15 -0700124 write /dev/cpuctl/apps/bg_non_interactive/cpu.shares 52
Dima Zavin5f2d00b2012-06-04 13:15:01 -0700125 write /dev/cpuctl/apps/bg_non_interactive/cpu.rt_runtime_us 700000
Dima Zavindf44b882012-06-04 10:45:15 -0700126 write /dev/cpuctl/apps/bg_non_interactive/cpu.rt_period_us 1000000
Glenn Kastenb91bd9f2012-04-19 16:18:37 -0700127
JP Abgrall3e54aab2013-01-04 14:34:58 -0800128# qtaguid will limit access to specific data based on group memberships.
129# net_bw_acct grants impersonation of socket owners.
130# net_bw_stats grants access to other apps' detailed tagged-socket stats.
131 chown root net_bw_acct /proc/net/xt_qtaguid/ctrl
132 chown root net_bw_stats /proc/net/xt_qtaguid/stats
133
JP Abgrall8e3ff702011-09-11 16:12:27 -0700134# Allow everybody to read the xt_qtaguid resource tracking misc dev.
135# This is needed by any process that uses socket tagging.
136 chmod 0644 /dev/xt_qtaguid
137
Ken Sumrall4eaf9052013-09-18 17:49:21 -0700138# Create location for fs_mgr to store abbreviated output from filesystem
139# checker programs.
140 mkdir /dev/fscklogs 0770 root system
141
Colin Cross31712be2010-04-09 12:26:06 -0700142on post-fs
Brian Swetland56de7a12010-09-08 15:06:45 -0700143 # once everything is setup, no need to modify /
144 mount rootfs rootfs / ro remount
Jeff Sharkey885342a2012-08-14 21:00:22 -0700145 # mount shared so changes propagate into child namespaces
146 mount rootfs rootfs / shared rec
Brian Swetland56de7a12010-09-08 15:06:45 -0700147
Ken Sumrall752923c2010-12-03 16:33:31 -0800148 # We chown/chmod /cache again so because mount is run as root + defaults
149 chown system cache /cache
150 chmod 0770 /cache
Stephen Smalley1eee4192012-01-13 08:54:34 -0500151 # We restorecon /cache in case the cache partition has been reset.
152 restorecon /cache
Ken Sumrall752923c2010-12-03 16:33:31 -0800153
154 # This may have been created by the recovery system with odd permissions
155 chown system cache /cache/recovery
156 chmod 0770 /cache/recovery
Stephen Smalley1eee4192012-01-13 08:54:34 -0500157 # This may have been created by the recovery system with the wrong context.
158 restorecon /cache/recovery
Ken Sumrall752923c2010-12-03 16:33:31 -0800159
160 #change permissions on vmallocinfo so we can grab it from bugreports
161 chown root log /proc/vmallocinfo
162 chmod 0440 /proc/vmallocinfo
163
Dima Zavin94812662012-09-25 14:22:02 -0700164 chown root log /proc/slabinfo
165 chmod 0440 /proc/slabinfo
166
Ken Sumrall752923c2010-12-03 16:33:31 -0800167 #change permissions on kmsg & sysrq-trigger so bugreports can grab kthread stacks
168 chown root system /proc/kmsg
169 chmod 0440 /proc/kmsg
170 chown root system /proc/sysrq-trigger
171 chmod 0220 /proc/sysrq-trigger
Colin Crossb35e36e2012-08-02 18:14:33 -0700172 chown system log /proc/last_kmsg
173 chmod 0440 /proc/last_kmsg
Ken Sumrall752923c2010-12-03 16:33:31 -0800174
175 # create the lost+found directories, so as to enforce our permissions
Chia-chi Yehea744142011-07-08 16:52:18 -0700176 mkdir /cache/lost+found 0770 root root
Ken Sumrall752923c2010-12-03 16:33:31 -0800177
178on post-fs-data
Colin Cross31712be2010-04-09 12:26:06 -0700179 # We chown/chmod /data again so because mount is run as root + defaults
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800180 chown system system /data
181 chmod 0771 /data
Stephen Smalley1eee4192012-01-13 08:54:34 -0500182 # We restorecon /data in case the userdata partition has been reset.
183 restorecon /data
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800184
Nick Kralevichb410eb12013-09-17 16:18:23 -0700185 # Avoid predictable entropy pool. Carry over entropy from previous boot.
186 copy /data/system/entropy.dat /dev/urandom
187
San Mehatf26d6ce2009-09-01 09:11:04 -0700188 # Create dump dir and collect dumps.
189 # Do this before we mount cache so eventually we can use cache for
190 # storing dumps on platforms which do not have a dedicated dump partition.
Chia-chi Yehea744142011-07-08 16:52:18 -0700191 mkdir /data/dontpanic 0750 root log
San Mehatf26d6ce2009-09-01 09:11:04 -0700192
193 # Collect apanic data, free resources and re-arm trigger
194 copy /proc/apanic_console /data/dontpanic/apanic_console
Mike Lockwood25f1a5a2009-09-11 17:13:28 -0400195 chown root log /data/dontpanic/apanic_console
Mike Lockwood93324822009-09-08 22:55:59 -0400196 chmod 0640 /data/dontpanic/apanic_console
San Mehat020f35f2009-09-01 15:38:18 -0700197
San Mehatf26d6ce2009-09-01 09:11:04 -0700198 copy /proc/apanic_threads /data/dontpanic/apanic_threads
Mike Lockwood25f1a5a2009-09-11 17:13:28 -0400199 chown root log /data/dontpanic/apanic_threads
Mike Lockwood93324822009-09-08 22:55:59 -0400200 chmod 0640 /data/dontpanic/apanic_threads
San Mehat020f35f2009-09-01 15:38:18 -0700201
San Mehatf26d6ce2009-09-01 09:11:04 -0700202 write /proc/apanic_console 1
203
Ken Sumrall752923c2010-12-03 16:33:31 -0800204 # create basic filesystem structure
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800205 mkdir /data/misc 01771 system misc
Benoit Goby0245e152012-05-09 17:27:53 -0700206 mkdir /data/misc/adb 02750 system shell
Matthew Xie971153a2012-10-04 12:35:27 -0700207 mkdir /data/misc/bluedroid 0770 bluetooth net_bt_stack
Jaikumar Ganesheafdd862010-01-07 20:24:55 -0800208 mkdir /data/misc/bluetooth 0770 system system
Chia-chi Yeh9b4f1ff2009-09-18 10:35:26 +0800209 mkdir /data/misc/keystore 0700 keystore keystore
Brian Carlstrom04918932011-06-30 22:50:29 -0700210 mkdir /data/misc/keychain 0771 system system
Robert Greenwalt2aa33a32013-07-16 09:46:17 -0700211 mkdir /data/misc/radio 0770 system radio
Robert Greenwaltd6d47802012-09-26 16:04:27 -0700212 mkdir /data/misc/sms 0770 system radio
Elliott Hughesf820e852012-10-19 18:10:05 -0700213 mkdir /data/misc/zoneinfo 0775 system system
Chia-chi Yeh9bb4d412011-07-08 20:03:03 -0700214 mkdir /data/misc/vpn 0770 system vpn
Oscar Montemayord0aa32c2010-01-06 13:18:12 -0800215 mkdir /data/misc/systemkeys 0700 system system
Mike Lockwood48d116e2009-07-08 18:42:08 -0400216 # give system access to wpa_supplicant.conf for backup and restore
217 mkdir /data/misc/wifi 0770 wifi wifi
Amith Yamasanieefef322009-07-02 12:08:13 -0700218 chmod 0660 /data/misc/wifi/wpa_supplicant.conf
Chia-chi Yeh5ebced32012-03-07 14:52:10 -0800219 mkdir /data/local 0751 root root
Glenn Kastenb0f908a2013-02-22 14:54:45 -0800220 mkdir /data/misc/media 0700 media media
Nick Kralevichf3ef1272012-03-14 15:22:54 -0700221
Stephen Smalleydeb41e52013-10-01 09:21:47 -0400222 # Set security context of any pre-existing /data/misc/adb/adb_keys file.
223 restorecon /data/misc/adb
224 restorecon /data/misc/adb/adb_keys
225
Nick Kralevichf3ef1272012-03-14 15:22:54 -0700226 # For security reasons, /data/local/tmp should always be empty.
227 # Do not place files or directories in /data/local/tmp
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800228 mkdir /data/local/tmp 0771 shell shell
229 mkdir /data/data 0771 system system
230 mkdir /data/app-private 0771 system system
Kenny Rootf8bbaba2012-04-12 15:01:52 -0700231 mkdir /data/app-asec 0700 root root
Kenny Root50544172012-09-08 22:39:25 -0700232 mkdir /data/app-lib 0771 system system
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800233 mkdir /data/app 0771 system system
234 mkdir /data/property 0700 root root
Mike Lockwood9dd2eef2011-12-11 20:25:16 -0800235 mkdir /data/ssh 0750 root shell
236 mkdir /data/ssh/empty 0700 root root
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800237
Chia-chi Yehea744142011-07-08 16:52:18 -0700238 # create dalvik-cache, so as to enforce our permissions
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800239 mkdir /data/dalvik-cache 0771 system system
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800240
MÃ¥rten Kongstadb45280d2011-05-30 10:24:54 +0200241 # create resource-cache and double-check the perms
242 mkdir /data/resource-cache 0771 system system
243 chown system system /data/resource-cache
244 chmod 0771 /data/resource-cache
245
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800246 # create the lost+found directories, so as to enforce our permissions
Chia-chi Yehea744142011-07-08 16:52:18 -0700247 mkdir /data/lost+found 0770 root root
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800248
James Dong09cdc0e2012-01-06 15:19:26 -0800249 # create directory for DRM plug-ins - give drm the read/write access to
250 # the following directory.
251 mkdir /data/drm 0770 drm drm
aimitakeshie572d592010-07-27 08:38:35 +0900252
Jeff Tinker08d64302013-04-23 19:54:17 -0700253 # create directory for MediaDrm plug-ins - give drm the read/write access to
254 # the following directory.
255 mkdir /data/mediadrm 0770 mediadrm mediadrm
256
Jeff Sharkeyfb4f7ac2013-03-14 14:27:38 -0700257 # symlink to bugreport storage location
258 symlink /data/data/com.android.shell/files/bugreports /data/bugreports
259
William Robertsbfd71b42013-01-23 14:05:04 -0800260 # Separate location for storing security policy files on data
William Robertsd43bab72013-04-15 13:56:22 -0700261 mkdir /data/security 0711 system system
William Robertsbfd71b42013-01-23 14:05:04 -0800262
Stephen Smalley6552f682013-08-26 10:45:05 -0400263 # Reload policy from /data/security if present.
264 setprop selinux.reload_policy 1
265
Ken Sumrall752923c2010-12-03 16:33:31 -0800266 # If there is no fs-post-data action in the init.<device>.rc file, you
267 # must uncomment this line, otherwise encrypted filesystems
268 # won't work.
269 # Set indication (checked by vold) that we have finished this action
270 #setprop vold.post_fs_data_done 1
271
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800272on boot
273# basic network init
274 ifup lo
275 hostname localhost
276 domainname localdomain
277
278# set RLIMIT_NICE to allow priorities from 19 to -20
279 setrlimit 13 40 40
280
Dianne Hackborn06787f42011-08-07 16:30:24 -0700281# Memory management. Basic kernel parameters, and allow the high
282# level system server to be able to adjust the kernel OOM driver
Glenn Kastenb91bd9f2012-04-19 16:18:37 -0700283# parameters to match how it is managing things.
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800284 write /proc/sys/vm/overcommit_memory 1
The Android Open Source Projecte037fd72009-03-13 13:04:37 -0700285 write /proc/sys/vm/min_free_order_shift 4
Dianne Hackborn06787f42011-08-07 16:30:24 -0700286 chown root system /sys/module/lowmemorykiller/parameters/adj
287 chmod 0664 /sys/module/lowmemorykiller/parameters/adj
288 chown root system /sys/module/lowmemorykiller/parameters/minfree
289 chmod 0664 /sys/module/lowmemorykiller/parameters/minfree
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800290
San Mehat831d8e12009-10-13 12:24:47 -0700291 # Tweak background writeout
292 write /proc/sys/vm/dirty_expire_centisecs 200
293 write /proc/sys/vm/dirty_background_ratio 5
294
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800295 # Permissions for System Server and daemons.
296 chown radio system /sys/android_power/state
297 chown radio system /sys/android_power/request_state
298 chown radio system /sys/android_power/acquire_full_wake_lock
299 chown radio system /sys/android_power/acquire_partial_wake_lock
300 chown radio system /sys/android_power/release_wake_lock
Arve Hjønnevåg70a163f2012-05-02 17:57:50 -0700301 chown system system /sys/power/autosleep
Arve Hjønnevåg1670f832012-03-20 20:33:09 -0700302 chown system system /sys/power/state
303 chown system system /sys/power/wakeup_count
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800304 chown radio system /sys/power/wake_lock
305 chown radio system /sys/power/wake_unlock
306 chmod 0660 /sys/power/state
307 chmod 0660 /sys/power/wake_lock
308 chmod 0660 /sys/power/wake_unlock
Todd Poynor0653b972012-04-11 14:48:51 -0700309
310 chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_rate
311 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/timer_rate
Todd Poynor2b5b3bb2012-12-20 18:52:03 -0800312 chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_slack
313 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/timer_slack
Todd Poynor0653b972012-04-11 14:48:51 -0700314 chown system system /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
315 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
316 chown system system /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
317 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
Todd Poynor2b5b3bb2012-12-20 18:52:03 -0800318 chown system system /sys/devices/system/cpu/cpufreq/interactive/target_loads
319 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/target_loads
Todd Poynor0653b972012-04-11 14:48:51 -0700320 chown system system /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
321 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
Todd Poynorf35c2032012-04-19 13:17:24 -0700322 chown system system /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
323 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
Todd Poynor8d3ea1d2012-04-24 15:37:13 -0700324 chown system system /sys/devices/system/cpu/cpufreq/interactive/boost
325 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boost
Todd Poynor4ff10e62012-05-03 15:20:48 -0700326 chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse
Todd Poynor33045a62012-04-27 20:21:18 -0700327 chown system system /sys/devices/system/cpu/cpufreq/interactive/input_boost
328 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/input_boost
Todd Poynor4f247d72012-12-19 17:43:06 -0800329 chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration
330 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration
Todd Poynor6b5de1c2013-03-25 13:17:13 -0700331 chown system system /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
332 chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
Todd Poynor0653b972012-04-11 14:48:51 -0700333
334 # Assume SMP uses shared cpufreq policy for all CPUs
335 chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
336 chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
337
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800338 chown system system /sys/class/timed_output/vibrator/enable
339 chown system system /sys/class/leds/keyboard-backlight/brightness
340 chown system system /sys/class/leds/lcd-backlight/brightness
341 chown system system /sys/class/leds/button-backlight/brightness
The Android Open Source Projectf614d642009-03-18 17:39:49 -0700342 chown system system /sys/class/leds/jogball-backlight/brightness
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800343 chown system system /sys/class/leds/red/brightness
344 chown system system /sys/class/leds/green/brightness
345 chown system system /sys/class/leds/blue/brightness
346 chown system system /sys/class/leds/red/device/grpfreq
347 chown system system /sys/class/leds/red/device/grppwm
348 chown system system /sys/class/leds/red/device/blink
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800349 chown system system /sys/class/timed_output/vibrator/enable
350 chown system system /sys/module/sco/parameters/disable_esco
351 chown system system /sys/kernel/ipv4/tcp_wmem_min
352 chown system system /sys/kernel/ipv4/tcp_wmem_def
353 chown system system /sys/kernel/ipv4/tcp_wmem_max
354 chown system system /sys/kernel/ipv4/tcp_rmem_min
355 chown system system /sys/kernel/ipv4/tcp_rmem_def
356 chown system system /sys/kernel/ipv4/tcp_rmem_max
357 chown root radio /proc/cmdline
358
359# Define TCP buffer sizes for various networks
360# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
Jianzheng Zhou52ea5102013-11-15 13:44:00 +0800361 setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208
362 setprop net.tcp.buffersize.wifi 524288,1048576,2097152,262144,524288,1048576
363 setprop net.tcp.buffersize.ethernet 524288,1048576,3145728,524288,1048576,2097152
364 setprop net.tcp.buffersize.lte 524288,1048576,2097152,262144,524288,1048576
365 setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208
366 setprop net.tcp.buffersize.hspa 4094,87380,262144,4096,16384,262144
367 setprop net.tcp.buffersize.hsupa 4094,87380,262144,4096,16384,262144
368 setprop net.tcp.buffersize.hsdpa 4094,87380,262144,4096,16384,262144
369 setprop net.tcp.buffersize.hspap 4094,87380,1220608,4096,16384,1220608
370 setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040
371 setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680
372 setprop net.tcp.buffersize.evdo 4094,87380,262144,4096,16384,262144
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800373
Ken Sumrall752923c2010-12-03 16:33:31 -0800374 class_start core
375 class_start main
376
377on nonencrypted
378 class_start late_start
379
Dima Zavinca47cef2011-08-24 15:28:23 -0700380on charger
381 class_start charger
382
Ken Sumrall752923c2010-12-03 16:33:31 -0800383on property:vold.decrypt=trigger_reset_main
384 class_reset main
385
Ken Sumrallc5c51032011-03-08 17:01:29 -0800386on property:vold.decrypt=trigger_load_persist_props
387 load_persist_props
388
Ken Sumrall752923c2010-12-03 16:33:31 -0800389on property:vold.decrypt=trigger_post_fs_data
390 trigger post-fs-data
391
Ken Sumralle4349152011-01-17 14:26:34 -0800392on property:vold.decrypt=trigger_restart_min_framework
393 class_start main
394
Ken Sumrall752923c2010-12-03 16:33:31 -0800395on property:vold.decrypt=trigger_restart_framework
396 class_start main
397 class_start late_start
398
399on property:vold.decrypt=trigger_shutdown_framework
400 class_reset late_start
401 class_reset main
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800402
Nick Kralevichca8e66a2013-04-18 12:20:02 -0700403on property:sys.powerctl=*
404 powerctl ${sys.powerctl}
405
Colin Cross57fdb5c2013-07-25 10:34:30 -0700406# system server cannot write to /proc/sys files, so proxy it through init
407on property:sys.sysctl.extra_free_kbytes=*
408 write /proc/sys/vm/extra_free_kbytes ${sys.sysctl.extra_free_kbytes}
409
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800410## Daemon processes to be run by init.
411##
Colin Crossf83d0b92010-04-21 12:04:20 -0700412service ueventd /sbin/ueventd
Ken Sumrall752923c2010-12-03 16:33:31 -0800413 class core
Colin Crossf83d0b92010-04-21 12:04:20 -0700414 critical
Stephen Smalley1eee4192012-01-13 08:54:34 -0500415 seclabel u:r:ueventd:s0
Colin Crossf83d0b92010-04-21 12:04:20 -0700416
Todd Poynor13f4c9f2013-06-19 15:09:35 -0700417service healthd /sbin/healthd
418 class core
419 critical
420 seclabel u:r:healthd:s0
421
422service healthd-charger /sbin/healthd -n
423 class charger
424 critical
425 seclabel u:r:healthd:s0
426
Brian Swetlandb4d65392010-10-27 15:40:23 -0700427service console /system/bin/sh
Ken Sumrall752923c2010-12-03 16:33:31 -0800428 class core
Brian Swetlandb4d65392010-10-27 15:40:23 -0700429 console
430 disabled
431 user shell
432 group log
433
Mike Lockwoodd49b4ef2010-11-19 09:12:27 -0500434on property:ro.debuggable=1
Brian Swetlandb4d65392010-10-27 15:40:23 -0700435 start console
436
Mike Lockwood352dfdf2011-06-08 17:40:00 -0700437# adbd is controlled via property triggers in init.<platform>.usb.rc
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800438service adbd /sbin/adbd
Ken Sumrall752923c2010-12-03 16:33:31 -0800439 class core
Benoit Goby0574d6b2012-04-24 15:07:12 -0700440 socket adbd stream 660 system system
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800441 disabled
Stephen Smalley1eee4192012-01-13 08:54:34 -0500442 seclabel u:r:adbd:s0
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800443
444# adbd on at boot in emulator
445on property:ro.kernel.qemu=1
446 start adbd
447
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800448service servicemanager /system/bin/servicemanager
Ken Sumrall752923c2010-12-03 16:33:31 -0800449 class core
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800450 user system
Nick Kralevich333f24b2010-12-10 14:10:16 -0800451 group system
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800452 critical
Todd Poynor13f4c9f2013-06-19 15:09:35 -0700453 onrestart restart healthd
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800454 onrestart restart zygote
455 onrestart restart media
Mathias Agopian04a87592011-10-31 14:27:36 -0700456 onrestart restart surfaceflinger
457 onrestart restart drm
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800458
The Android Open Source Projecte4749f32009-03-09 11:52:15 -0700459service vold /system/bin/vold
Ken Sumrall752923c2010-12-03 16:33:31 -0800460 class core
The Android Open Source Projecte4749f32009-03-09 11:52:15 -0700461 socket vold stream 0660 root mount
San Mehatf0cb74e2010-02-26 10:01:14 -0800462 ioprio be 2
The Android Open Source Projecte4749f32009-03-09 11:52:15 -0700463
San Mehat192277c2010-01-15 07:48:35 -0800464service netd /system/bin/netd
Ken Sumrall752923c2010-12-03 16:33:31 -0800465 class main
San Mehat192277c2010-01-15 07:48:35 -0800466 socket netd stream 0660 root system
Brad Fitzpatrick8c5669f2010-10-27 10:23:16 -0700467 socket dnsproxyd stream 0660 root inet
Robert Greenwalt1d91fcf2012-03-27 16:59:27 -0700468 socket mdns stream 0660 root system
San Mehat192277c2010-01-15 07:48:35 -0800469
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800470service debuggerd /system/bin/debuggerd
Ken Sumrall752923c2010-12-03 16:33:31 -0800471 class main
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800472
473service ril-daemon /system/bin/rild
vidya rao04cf6292011-06-24 12:15:20 -0700474 class main
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800475 socket rild stream 660 root radio
476 socket rild-debug stream 660 radio system
477 user root
Jeff Sharkey61f13592012-08-20 14:31:47 -0700478 group radio cache inet misc audio log
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800479
Mathias Agopiana40481b2011-03-03 18:48:30 -0800480service surfaceflinger /system/bin/surfaceflinger
481 class main
482 user system
Dima Zavinece565c2012-10-04 17:02:26 -0700483 group graphics drmrpc
Mathias Agopiana40481b2011-03-03 18:48:30 -0800484 onrestart restart zygote
485
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800486service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
Ken Sumrall752923c2010-12-03 16:33:31 -0800487 class main
Nick Kraleviche7fd9112012-01-27 13:06:53 -0800488 socket zygote stream 660 root system
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800489 onrestart write /sys/android_power/request_state wake
490 onrestart write /sys/power/state on
Dan Bornstein1dec5032009-10-09 14:24:51 -0700491 onrestart restart media
Brad Fitzpatrick64902572010-09-21 15:49:06 -0700492 onrestart restart netd
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800493
aimitakeshie572d592010-07-27 08:38:35 +0900494service drm /system/bin/drmserver
Ken Sumrall752923c2010-12-03 16:33:31 -0800495 class main
aimitakeshie572d592010-07-27 08:38:35 +0900496 user drm
Jeff Sharkey61f13592012-08-20 14:31:47 -0700497 group drm system inet drmrpc
aimitakeshie572d592010-07-27 08:38:35 +0900498
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800499service media /system/bin/mediaserver
Ken Sumrall752923c2010-12-03 16:33:31 -0800500 class main
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800501 user media
Jeff Tinker08d64302013-04-23 19:54:17 -0700502 group audio camera inet net_bt net_bt_admin net_bw_acct drmrpc mediadrm
San Mehatf0cb74e2010-02-26 10:01:14 -0800503 ioprio rt 4
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800504
Mathias Agopian8b2cf9f2009-05-20 18:09:51 -0700505service bootanim /system/bin/bootanimation
Ken Sumrall752923c2010-12-03 16:33:31 -0800506 class main
Mathias Agopian8b2cf9f2009-05-20 18:09:51 -0700507 user graphics
508 group graphics
509 disabled
510 oneshot
511
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800512service installd /system/bin/installd
Ken Sumrall752923c2010-12-03 16:33:31 -0800513 class main
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800514 socket installd stream 600 system system
515
Doug Zongkerd52f54c2009-07-23 15:18:34 -0700516service flash_recovery /system/etc/install-recovery.sh
Ken Sumrall752923c2010-12-03 16:33:31 -0800517 class main
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -0800518 oneshot
Chung-yih Wang1f75d702009-06-01 19:04:05 +0800519
Chia-chi Yeh51afbf52009-07-01 07:06:47 +0800520service racoon /system/bin/racoon
Ken Sumrall752923c2010-12-03 16:33:31 -0800521 class main
Chung-yih Wang1f75d702009-06-01 19:04:05 +0800522 socket racoon stream 600 system system
Chia-chi Yeh9bb4d412011-07-08 20:03:03 -0700523 # IKE uses UDP port 500. Racoon will setuid to vpn after binding the port.
Chia-chi Yeha2468712011-08-08 10:11:40 -0700524 group vpn net_admin inet
Chung-yih Wang1f75d702009-06-01 19:04:05 +0800525 disabled
526 oneshot
527
528service mtpd /system/bin/mtpd
Ken Sumrall752923c2010-12-03 16:33:31 -0800529 class main
Chung-yih Wang1f75d702009-06-01 19:04:05 +0800530 socket mtpd stream 600 system system
Chia-chi Yeh51afbf52009-07-01 07:06:47 +0800531 user vpn
Chia-chi Yeha2468712011-08-08 10:11:40 -0700532 group vpn net_admin inet net_raw
Chung-yih Wang1f75d702009-06-01 19:04:05 +0800533 disabled
534 oneshot
535
Chia-chi Yeh9b4f1ff2009-09-18 10:35:26 +0800536service keystore /system/bin/keystore /data/misc/keystore
Ken Sumrall752923c2010-12-03 16:33:31 -0800537 class main
Chung-yih Wang1f75d702009-06-01 19:04:05 +0800538 user keystore
Kenny Rootad5b9c72012-02-23 16:31:10 -0800539 group keystore drmrpc
Chung-yih Wang1f75d702009-06-01 19:04:05 +0800540
Mike Lockwoodabe3a9c2009-09-02 18:09:26 -0400541service dumpstate /system/bin/dumpstate -s
Ken Sumrall752923c2010-12-03 16:33:31 -0800542 class main
Mike Lockwoodabe3a9c2009-09-02 18:09:26 -0400543 socket dumpstate stream 0660 shell log
544 disabled
545 oneshot
Mike Lockwood9dd2eef2011-12-11 20:25:16 -0800546
547service sshd /system/bin/start-ssh
548 class main
Mike Lockwood19155b52012-03-21 11:58:05 -0700549 disabled
Robert Greenwalt1d91fcf2012-03-27 16:59:27 -0700550
551service mdnsd /system/bin/mdnsd
552 class main
553 user mdnsr
554 group inet net_raw
555 socket mdnsd stream 0660 mdnsr inet
556 disabled
557 oneshot