blob: 100cc091cea9648d56d80d9319112a3e87b8766b [file] [log] [blame]
Bruce Beareba366c42011-02-15 16:46:08 -08001on early-init
2 start ueventd
3
4on init
5
6sysclktz 0
7
8loglevel 3
9
10# setup the global environment
11 export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
12 export LD_LIBRARY_PATH /vendor/lib:/system/lib
13 export ANDROID_BOOTLOGO 1
14 export ANDROID_ROOT /system
15 export ANDROID_ASSETS /system/app
16 export ANDROID_DATA /data
17 export EXTERNAL_STORAGE /mnt/sdcard
18 export ASEC_MOUNTPOINT /mnt/asec
19 export LOOP_MOUNTPOINT /mnt/obb
20 export BOOTCLASSPATH /system/framework/core.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/core-junit.jar
21
22# Backward compatibility
23 symlink /system/etc /etc
24 symlink /sys/kernel/debug /d
25
26# Right now vendor lives on the same filesystem as system,
27# but someday that may change.
28 symlink /system/vendor /vendor
29
30# create mountpoints
31 mkdir /mnt 0775 root system
32 mkdir /mnt/sdcard 0000 system system
33
34# Create cgroup mount point for cpu accounting
35 mkdir /acct
36 mount cgroup none /acct cpuacct
37 mkdir /acct/uid
38
39# Backwards Compat - XXX: Going away in G*
40 symlink /mnt/sdcard /sdcard
41
42 mkdir /system
43 mkdir /data 0771 system system
44 mkdir /cache 0770 system cache
45 mkdir /config 0500 root root
46
47 # Directory for putting things only root should see.
48 mkdir /mnt/secure 0700 root root
49
50 # Directory for staging bindmounts
51 mkdir /mnt/secure/staging 0700 root root
52
53 # Directory-target for where the secure container
54 # imagefile directory will be bind-mounted
55 mkdir /mnt/secure/asec 0700 root root
56
57 # Secure container public mount points.
58 mkdir /mnt/asec 0700 root system
59 mount tmpfs tmpfs /mnt/asec mode=0755,gid=1000
60
61 # Filesystem image public mount points.
62 mkdir /mnt/obb 0700 root system
63 mount tmpfs tmpfs /mnt/obb mode=0755,gid=1000
64
65 write /proc/sys/kernel/panic_on_oops 1
66 write /proc/sys/kernel/hung_task_timeout_secs 0
67 write /proc/cpu/alignment 4
68 write /proc/sys/kernel/sched_latency_ns 10000000
69 write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000
70 write /proc/sys/kernel/sched_compat_yield 1
71 write /proc/sys/kernel/sched_child_runs_first 0
72
73# Create cgroup mount points for process groups
74 mkdir /dev/cpuctl
75 mount cgroup none /dev/cpuctl cpu
76 chown system system /dev/cpuctl
77 chown system system /dev/cpuctl/tasks
78 chmod 0777 /dev/cpuctl/tasks
79 write /dev/cpuctl/cpu.shares 1024
80
81 mkdir /dev/cpuctl/fg_boost
82 chown system system /dev/cpuctl/fg_boost/tasks
83 chmod 0777 /dev/cpuctl/fg_boost/tasks
84 write /dev/cpuctl/fg_boost/cpu.shares 1024
85
86 mkdir /dev/cpuctl/bg_non_interactive
87 chown system system /dev/cpuctl/bg_non_interactive/tasks
88 chmod 0777 /dev/cpuctl/bg_non_interactive/tasks
89 # 5.0 %
90 write /dev/cpuctl/bg_non_interactive/cpu.shares 52
91
92on fs
93# mount sda partitions
94 mount ext4 /dev/block/sda6 /system
95 mount ext4 /dev/block/sda6 /system ro remount
96 mount ext4 /dev/block/sda7 /data nosuid nodev
97 mount ext4 /dev/block/sda8 /cache nosuid nodev
98
99on post-fs
100 # once everything is setup, no need to modify /
101 mount rootfs rootfs / ro remount
102
103 # We chown/chmod /data again so because mount is run as root + defaults
104 chown system system /data
105 chmod 0771 /data
106
107 # Create dump dir and collect dumps.
108 # Do this before we mount cache so eventually we can use cache for
109 # storing dumps on platforms which do not have a dedicated dump partition.
110
111 mkdir /data/dontpanic
112 chown root log /data/dontpanic
113 chmod 0750 /data/dontpanic
114
115 # Collect apanic data, free resources and re-arm trigger
116 copy /proc/apanic_console /data/dontpanic/apanic_console
117 chown root log /data/dontpanic/apanic_console
118 chmod 0640 /data/dontpanic/apanic_console
119
120 copy /proc/apanic_threads /data/dontpanic/apanic_threads
121 chown root log /data/dontpanic/apanic_threads
122 chmod 0640 /data/dontpanic/apanic_threads
123
124 write /proc/apanic_console 1
125
126 # Same reason as /data above
127 chown system cache /cache
128 chmod 0770 /cache
129
130 # This may have been created by the recovery system with odd permissions
131 chown system cache /cache/recovery
132 chmod 0770 /cache/recovery
133
134 #change permissions on vmallocinfo so we can grab it from bugreports
135 chown root log /proc/vmallocinfo
136 chmod 0440 /proc/vmallocinfo
137
138 #change permissions on kmsg & sysrq-trigger so bugreports can grab kthread stacks
139 chown root system /proc/kmsg
140 chmod 0440 /proc/kmsg
141 chown root system /proc/sysrq-trigger
142 chmod 0220 /proc/sysrq-trigger
143
144# create basic filesystem structure
145 mkdir /data/misc 01771 system misc
146 mkdir /data/misc/bluetoothd 0770 bluetooth bluetooth
147 mkdir /data/misc/bluetooth 0770 system system
148 mkdir /data/misc/keystore 0700 keystore keystore
149 mkdir /data/misc/vpn 0770 system system
150 mkdir /data/misc/systemkeys 0700 system system
151 mkdir /data/misc/vpn/profiles 0770 system system
152 # give system access to wpa_supplicant.conf for backup and restore
153 mkdir /data/misc/wifi 0770 wifi wifi
154 chmod 0770 /data/misc/wifi
155 chmod 0660 /data/misc/wifi/wpa_supplicant.conf
156 mkdir /data/local 0771 shell shell
157 mkdir /data/local/tmp 0771 shell shell
158 mkdir /data/data 0771 system system
159 mkdir /data/app-private 0771 system system
160 mkdir /data/app 0771 system system
161 mkdir /data/property 0700 root root
162
163 # create dalvik-cache and double-check the perms
164 mkdir /data/dalvik-cache 0771 system system
165 chown system system /data/dalvik-cache
166 chmod 0771 /data/dalvik-cache
167
168 # create the lost+found directories, so as to enforce our permissions
169 mkdir /data/lost+found 0770
170 mkdir /cache/lost+found 0770
171
172 # double check the perms, in case lost+found already exists, and set owner
173 chown root root /data/lost+found
174 chmod 0770 /data/lost+found
175 chown root root /cache/lost+found
176 chmod 0770 /cache/lost+found
177
178 # create data/drm directory
179 mkdir /data/drm 0774 drm drm
180 chown drm drm /data/drm
181 chmod 0774 /data/drm
182
183on boot
184# basic network init
185 ifup lo
186 hostname localhost
187 domainname localdomain
188
189# set RLIMIT_NICE to allow priorities from 19 to -20
190 setrlimit 13 40 40
191
192# Define the oom_adj values for the classes of processes that can be
193# killed by the kernel. These are used in ActivityManagerService.
194 setprop ro.FOREGROUND_APP_ADJ 0
195 setprop ro.VISIBLE_APP_ADJ 1
196 setprop ro.PERCEPTIBLE_APP_ADJ 2
197 setprop ro.HEAVY_WEIGHT_APP_ADJ 3
198 setprop ro.SECONDARY_SERVER_ADJ 4
199 setprop ro.BACKUP_APP_ADJ 5
200 setprop ro.HOME_APP_ADJ 6
201 setprop ro.HIDDEN_APP_MIN_ADJ 7
202 setprop ro.EMPTY_APP_ADJ 15
203
204# Define the memory thresholds at which the above process classes will
205# be killed. These numbers are in pages (4k).
206 setprop ro.FOREGROUND_APP_MEM 2048
207 setprop ro.VISIBLE_APP_MEM 3072
208 setprop ro.PERCEPTIBLE_APP_MEM 4096
209 setprop ro.HEAVY_WEIGHT_APP_MEM 4096
210 setprop ro.SECONDARY_SERVER_MEM 6144
211 setprop ro.BACKUP_APP_MEM 6144
212 setprop ro.HOME_APP_MEM 6144
213 setprop ro.HIDDEN_APP_MEM 7168
214 setprop ro.EMPTY_APP_MEM 8192
215
216# Write value must be consistent with the above properties.
217# Note that the driver only supports 6 slots, so we have combined some of
218# the classes into the same memory level; the associated processes of higher
219# classes will still be killed first.
220 write /sys/module/lowmemorykiller/parameters/adj 0,1,2,4,7,15
221
222 write /proc/sys/vm/overcommit_memory 1
223 write /proc/sys/vm/min_free_order_shift 4
224 write /sys/module/lowmemorykiller/parameters/minfree 2048,3072,4096,6144,7168,8192
225
226 # Set init its forked children's oom_adj.
227 write /proc/1/oom_adj -16
228
229 # Tweak background writeout
230 write /proc/sys/vm/dirty_expire_centisecs 200
231 write /proc/sys/vm/dirty_background_ratio 5
232
233 # Permissions for System Server and daemons.
234 chown radio system /sys/android_power/state
235 chown radio system /sys/android_power/request_state
236 chown radio system /sys/android_power/acquire_full_wake_lock
237 chown radio system /sys/android_power/acquire_partial_wake_lock
238 chown radio system /sys/android_power/release_wake_lock
239 chown radio system /sys/power/state
240 chown radio system /sys/power/wake_lock
241 chown radio system /sys/power/wake_unlock
242 chmod 0660 /sys/power/state
243 chmod 0660 /sys/power/wake_lock
244 chmod 0660 /sys/power/wake_unlock
245 chown system system /sys/class/timed_output/vibrator/enable
246 chown system system /sys/class/leds/keyboard-backlight/brightness
247 chown system system /sys/class/leds/lcd-backlight/brightness
248 chown system system /sys/class/leds/button-backlight/brightness
249 chown system system /sys/class/leds/jogball-backlight/brightness
250 chown system system /sys/class/leds/red/brightness
251 chown system system /sys/class/leds/green/brightness
252 chown system system /sys/class/leds/blue/brightness
253 chown system system /sys/class/leds/red/device/grpfreq
254 chown system system /sys/class/leds/red/device/grppwm
255 chown system system /sys/class/leds/red/device/blink
256 chown system system /sys/class/leds/red/brightness
257 chown system system /sys/class/leds/green/brightness
258 chown system system /sys/class/leds/blue/brightness
259 chown system system /sys/class/leds/red/device/grpfreq
260 chown system system /sys/class/leds/red/device/grppwm
261 chown system system /sys/class/leds/red/device/blink
262 chown system system /sys/class/timed_output/vibrator/enable
263 chown system system /sys/module/sco/parameters/disable_esco
264 chown system system /sys/kernel/ipv4/tcp_wmem_min
265 chown system system /sys/kernel/ipv4/tcp_wmem_def
266 chown system system /sys/kernel/ipv4/tcp_wmem_max
267 chown system system /sys/kernel/ipv4/tcp_rmem_min
268 chown system system /sys/kernel/ipv4/tcp_rmem_def
269 chown system system /sys/kernel/ipv4/tcp_rmem_max
270 chown root radio /proc/cmdline
271
272# Define TCP buffer sizes for various networks
273# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
274 setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208
275 setprop net.tcp.buffersize.wifi 4095,87380,110208,4096,16384,110208
276 setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208
277 setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040
278 setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680
279
280 class_start default
281
282## Daemon processes to be run by init.
283##
284service ueventd /sbin/ueventd
285 critical
286
287service console /system/bin/sh
288 console
289 disabled
290 user shell
291 group log
292
293on property:ro.secure=0
294 start console
295
296# adbd is controlled by the persist.service.adb.enable system property
297service adbd /sbin/adbd
298 disabled
299
300# adbd on at boot in emulator
301on property:ro.kernel.qemu=1
302 start adbd
303
304on property:persist.service.adb.enable=1
305 start adbd
306
307on property:persist.service.adb.enable=0
308 stop adbd
309
310service servicemanager /system/bin/servicemanager
311 user system
312 critical
313 onrestart restart zygote
314 onrestart restart media
315
316service vold /system/bin/vold
317 socket vold stream 0660 root mount
318 ioprio be 2
319
320service netd /system/bin/netd
321 socket netd stream 0660 root system
322 socket dnsproxyd stream 0660 root inet
323
324service debuggerd /system/bin/debuggerd
325
326service ril-daemon /system/bin/rild
327 socket rild stream 660 root radio
328 socket rild-debug stream 660 radio system
329 user root
330 group radio cache inet misc audio sdcard_rw
331
332service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
333 socket zygote stream 666
334 onrestart write /sys/android_power/request_state wake
335 onrestart write /sys/power/state on
336 onrestart restart media
337 onrestart restart netd
338
339service drm /system/bin/drmserver
340 user drm
341 group system root inet
342
343service drmio /system/bin/drmioserver
344 user drmio
345
346service media /system/bin/mediaserver
347 user media
348 group system audio camera graphics inet net_bt net_bt_admin net_raw
349 ioprio rt 4
350
351service bootanim /system/bin/bootanimation
352 user graphics
353 group graphics
354 disabled
355 oneshot
356
357service dbus /system/bin/dbus-daemon --system --nofork
358 socket dbus stream 660 bluetooth bluetooth
359 user bluetooth
360 group bluetooth net_bt_admin
361
362service bluetoothd /system/bin/bluetoothd -n
363 socket bluetooth stream 660 bluetooth bluetooth
364 socket dbus_bluetooth stream 660 bluetooth bluetooth
365 # init.rc does not yet support applying capabilities, so run as root and
366 # let bluetoothd drop uid to bluetooth with the right linux capabilities
367 group bluetooth net_bt_admin misc
368 disabled
369
370service hfag /system/bin/sdptool add --channel=10 HFAG
371 user bluetooth
372 group bluetooth net_bt_admin
373 disabled
374 oneshot
375
376service hsag /system/bin/sdptool add --channel=11 HSAG
377 user bluetooth
378 group bluetooth net_bt_admin
379 disabled
380 oneshot
381
382service opush /system/bin/sdptool add --channel=12 OPUSH
383 user bluetooth
384 group bluetooth net_bt_admin
385 disabled
386 oneshot
387
388service pbap /system/bin/sdptool add --channel=19 PBAP
389 user bluetooth
390 group bluetooth net_bt_admin
391 disabled
392 oneshot
393
394service installd /system/bin/installd
395 socket installd stream 600 system system
396
397service flash_recovery /system/etc/install-recovery.sh
398 oneshot
399
400service racoon /system/bin/racoon
401 socket racoon stream 600 system system
402 # racoon will setuid to vpn after getting necessary resources.
403 group net_admin
404 disabled
405 oneshot
406
407service mtpd /system/bin/mtpd
408 socket mtpd stream 600 system system
409 user vpn
410 group vpn net_admin net_raw
411 disabled
412 oneshot
413
414service keystore /system/bin/keystore /data/misc/keystore
415 user keystore
416 group keystore
417 socket keystore stream 666
418
419service dumpstate /system/bin/dumpstate -s
420 socket dumpstate stream 0660 shell log
421 disabled
422 oneshot
423
424# Enable networking so that adb can connect
425service netcfg /system/bin/netcfg eth0 dhcp
426 oneshot