init.deb.rc revision d5e825388f86ac3a27c749d6a27be35e6a1a8e0d
1#
2# Copyright 2012 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17import init.flo.usb.rc
18
19on early-init
20    mount debugfs debugfs /sys/kernel/debug
21    chown system system /sys/kernel/debug/kgsl/proc
22    symlink /data/tombstones /tombstones
23
24on init
25    # See storage config details at http://source.android.com/tech/storage/
26    mkdir /mnt/shell/emulated 0700 shell shell
27    mkdir /storage/emulated 0555 root root
28    mkdir /storage/emulated/legacy 0555 root root
29
30    export EXTERNAL_STORAGE /storage/emulated/legacy
31    export EMULATED_STORAGE_SOURCE /mnt/shell/emulated
32    export EMULATED_STORAGE_TARGET /storage/emulated
33
34    # Support legacy paths
35    symlink /storage/emulated/legacy /sdcard
36    symlink /storage/emulated/legacy /mnt/sdcard
37    symlink /storage/emulated/legacy /storage/sdcard0
38
39on init
40    # Set permissions for persist partition
41    mkdir /persist 0771 system system
42    mkdir /firmware 0771 system system
43
44on fs
45    mount_all ./fstab.flo
46    restorecon_recursive /persist
47    setprop ro.crypto.fuse_sdcard true
48    write /sys/kernel/boot_adsp/boot 1
49
50on early-boot
51    # set RLIMIT_MEMLOCK to 64MB
52    setrlimit 8 67108864 67108864
53
54on boot
55    #Create QMUX deamon socket area
56    mkdir /dev/socket/qmux_radio 0770 radio radio
57    chmod 2770 /dev/socket/qmux_radio
58    mkdir /dev/socket/qmux_audio 0770 media audio
59    chmod 2770 /dev/socket/qmux_audio
60    mkdir /dev/socket/qmux_bluetooth 0770 bluetooth net_bt_stack
61    chmod 2770 /dev/socket/qmux_bluetooth
62    mkdir /dev/socket/qmux_gps 0770 gps gps
63    chmod 2770 /dev/socket/qmux_gps
64
65    # Allow QMUX daemon to assign port open wait time
66    chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait
67
68    #Remove SUID bit for iproute2 ip tool
69    chmod 0755 /system/bin/ip
70
71    #port-bridge
72    chmod 0660 /dev/smd0
73    chown system system /dev/smd0
74
75    chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state
76
77    # create symlink for fb1 as HDMI
78    symlink /dev/graphics/fb1 /dev/graphics/hdmi
79
80    # Remove write permissions to video related nodes
81    chmod 0664 /sys/devices/virtual/graphics/fb1/hpd
82    chmod 0664 /sys/devices/virtual/graphics/fb1/video_mode
83    chmod 0664 /sys/devices/virtual/graphics/fb1/format_3d
84
85    # Change owner and group for media server and surface flinger
86    chown system system /sys/devices/virtual/graphics/fb1/format_3d
87    chown system system /sys/devices/virtual/graphics/fb1/hpd
88
89    #For bridgemgr daemon to inform the USB driver of the correct transport
90    chown radio radio /sys/class/android_usb/f_rmnet_smd_sdio/transport
91
92    chmod 660 /dev/rtc0
93    chown system system /dev/rtc0
94
95    chown root system /proc/net/ip_conntrack
96
97    # Enable DEBUG_SUSPEND, DEBUG_EXIT_SUSPEND, and DEBUG_WAKEUP
98    write /sys/module/wakelock/parameters/debug_mask 7
99
100    write /proc/sys/vm/swappiness 0
101
102    #To allow interfaces to get v6 address when tethering is enabled
103    write /proc/sys/net/ipv6/conf/rmnet0/accept_ra 2
104    write /proc/sys/net/ipv6/conf/rmnet1/accept_ra 2
105    write /proc/sys/net/ipv6/conf/rmnet2/accept_ra 2
106    write /proc/sys/net/ipv6/conf/rmnet3/accept_ra 2
107    write /proc/sys/net/ipv6/conf/rmnet4/accept_ra 2
108    write /proc/sys/net/ipv6/conf/rmnet5/accept_ra 2
109    write /proc/sys/net/ipv6/conf/rmnet6/accept_ra 2
110    write /proc/sys/net/ipv6/conf/rmnet7/accept_ra 2
111    write /proc/sys/net/ipv6/conf/rmnet_sdio0/accept_ra 2
112    write /proc/sys/net/ipv6/conf/rmnet_sdio1/accept_ra 2
113    write /proc/sys/net/ipv6/conf/rmnet_sdio2/accept_ra 2
114    write /proc/sys/net/ipv6/conf/rmnet_sdio3/accept_ra 2
115    write /proc/sys/net/ipv6/conf/rmnet_sdio4/accept_ra 2
116    write /proc/sys/net/ipv6/conf/rmnet_sdio5/accept_ra 2
117    write /proc/sys/net/ipv6/conf/rmnet_sdio6/accept_ra 2
118    write /proc/sys/net/ipv6/conf/rmnet_sdio7/accept_ra 2
119
120
121# NFC: create data/nfc for nv storage
122    mkdir /data/nfc 770 nfc nfc
123    mkdir /data/nfc/param 770 nfc nfc
124
125# Assign TCP buffer thresholds to be ceiling value of technology maximums
126# Increased technology maximums should be reflected here.
127    write /proc/sys/net/core/rmem_max  1220608
128    write /proc/sys/net/core/wmem_max  1220608
129
130#Modify windows size to meet ATT requirement
131    setprop net.tcp.buffersize.hspa    4094,87380,704512,4096,16384,262144
132    setprop net.tcp.buffersize.lte     524288,1048576,2560000,262144,524288,1048576
133
134# msm specific files that need to be created on /data
135on post-fs-data
136    mkdir /data/media 0770 media_rw media_rw
137
138    chown system system /dev/wcnss_wlan
139    write /sys/module/wcnss_ssr_8960/parameters/enable_riva_ssr 1
140
141    mkdir /data/tombstones 0771 system system
142    mkdir /tombstones/modem 0771 system system
143    mkdir /tombstones/lpass 0771 system system
144    mkdir /tombstones/wcnss 0771 system system
145    mkdir /tombstones/dsps 0771 system system
146    mkdir /tombstones/mdm 0771 system system
147
148# to observe dnsmasq.leases file for dhcp information of soft ap.
149    chown dhcp system /data/misc/dhcp
150
151    # Create directory used by audio subsystem
152    mkdir /data/misc/audio 0770 audio audio
153
154    # Mounting of persist is moved to 'on emmc-fs' and 'on fs' sections
155    # We chown/chmod /persist again so because mount is run as root + defaults
156    chown system system /persist
157    chmod 0664 /sys/devices/platform/msm_sdcc.1/polling
158    chmod 0664 /sys/devices/platform/msm_sdcc.2/polling
159    chmod 0664 /sys/devices/platform/msm_sdcc.3/polling
160    chmod 0664 /sys/devices/platform/msm_sdcc.4/polling
161
162    # Chown polling nodes as needed from UI running on system server
163    chown system system /sys/devices/platform/msm_sdcc.1/polling
164    chown system system /sys/devices/platform/msm_sdcc.2/polling
165    chown system system /sys/devices/platform/msm_sdcc.3/polling
166    chown system system /sys/devices/platform/msm_sdcc.4/polling
167
168    #Create the symlink to qcn wpa_supplicant folder for ar6000 wpa_supplicant
169    mkdir /data/system 0775 system system
170    #symlink /data/misc/wifi/wpa_supplicant /data/system/wpa_supplicant
171
172    #Create directory used by sensor subsystem(dsps)
173    mkdir /data/system/sensors
174    chmod 775 /data/system/sensors
175    write /data/system/sensors/settings 1
176    chmod 660 /data/system/sensors/settings
177
178    # AKM setting data
179    mkdir /data/misc/sensors
180    chmod 775 /data/misc/sensors
181
182    mkdir /persist/sensors
183    chmod 775 /persist/sensors
184
185    # Modify from 777 (for camera calibration) to 775
186    chmod 775 /persist/camera_calibration
187
188    chmod 664 /persist/ssn
189    chmod 664 /persist/60isn
190
191    #Provide the access to hostapd.conf only to root and group
192    chmod 0660 /data/hostapd/hostapd.conf
193
194    # Enable the setgid bit on the directory
195    mkdir /data/audio 0770 media audio
196    chmod 2770 /data/audio
197
198    # kickstart
199    mkdir /data/qcks 0770 system system
200    chown system /dev/block/platform/msm_sdcc.1/by-name
201
202    setprop vold.post_fs_data_done 1
203
204    rm /data/local/tmp/adreno_config.txt
205
206    # White LED
207    chown system system /sys/class/leds/white/device/lock
208    chown system system /sys/class/leds/white/brightness
209    chown system system /sys/class/leds/white/device/grpfreq
210    chown system system /sys/class/leds/white/device/grppwm
211    chown system system /sys/class/leds/white/device/blink
212
213    # communicate with mpdecision and thermald
214    mkdir /dev/socket/mpdecision 2770 root system
215
216    # adjust vibrator amplitude
217    write /sys/class/timed_output/vibrator/amp 70
218
219    # Enable Power modes and set the CPU Freq Sampling rates
220    write /sys/module/rpm_resources/enable_low_power/L2_cache 1
221    write /sys/module/rpm_resources/enable_low_power/pxo 1
222    write /sys/module/rpm_resources/enable_low_power/vdd_dig 1
223    write /sys/module/rpm_resources/enable_low_power/vdd_mem 1
224    write /sys/module/pm_8x60/modes/cpu0/power_collapse/suspend_enabled 1
225    write /sys/module/pm_8x60/modes/cpu1/power_collapse/suspend_enabled 1
226    write /sys/module/pm_8x60/modes/cpu2/power_collapse/suspend_enabled 1
227    write /sys/module/pm_8x60/modes/cpu3/power_collapse/suspend_enabled 1
228    write /sys/module/pm_8x60/modes/cpu0/power_collapse/idle_enabled 1
229    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "ondemand"
230    write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor "ondemand"
231    write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor "ondemand"
232    write /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor "ondemand"
233    write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold 90
234    write /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate 50000
235    write /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy 1
236    write /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor 4
237    write /sys/devices/system/cpu/cpufreq/ondemand/down_differential 10
238    write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core 60
239    write /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core 3
240    write /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq 918000
241    write /sys/devices/system/cpu/cpufreq/ondemand/sync_freq 1026000
242    write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load 80
243    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 384000
244    write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 384000
245    write /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 384000
246    write /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq 384000
247    write /sys/devices/system/cpu/cpu1/online 1
248    write /sys/devices/system/cpu/cpu2/online 1
249    write /sys/devices/system/cpu/cpu3/online 1
250    write /dev/cpuctl/apps/cpu.notify_on_migrate 1
251
252on charger
253    # Enable Power modes and set the CPU Freq Sampling rates
254    write /sys/module/rpm_resources/enable_low_power/L2_cache 1
255    write /sys/module/rpm_resources/enable_low_power/pxo 1
256    write /sys/module/rpm_resources/enable_low_power/vdd_dig 1
257    write /sys/module/rpm_resources/enable_low_power/vdd_mem 1
258    write /sys/module/pm_8x60/modes/cpu0/power_collapse/suspend_enabled 1
259    write /sys/module/pm_8x60/modes/cpu1/power_collapse/suspend_enabled 1
260    write /sys/module/pm_8x60/modes/cpu2/power_collapse/suspend_enabled 1
261    write /sys/module/pm_8x60/modes/cpu3/power_collapse/suspend_enabled 1
262    write /sys/module/pm_8x60/modes/cpu0/power_collapse/idle_enabled 1
263    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "powersave"
264    write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor "powersave"
265    write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor "powersave"
266    write /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor "powersave"
267    write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold 90
268    write /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate 50000
269    write /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy 1
270    write /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor 4
271    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 384000
272    write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 384000
273    write /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 384000
274    write /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq 384000
275
276on property:init.svc.wpa_supplicant=stopped
277    stop dhcpcd
278
279service irsc_util /system/bin/irsc_util "/etc/sec_config"
280    class main
281    user root
282    oneshot
283
284service rmt_storage /system/bin/rmt_storage
285    class main
286    user root
287    group system
288
289service hciattach /system/bin/sh /system/etc/init.flo.bt.sh
290    class late_start
291    user bluetooth
292    group qcom_oncrpc bluetooth net_bt_admin system net_bt_stack
293    seclabel u:r:bluetooth_loader:s0
294    disabled
295    oneshot
296
297on property:bluetooth.hciattach=true
298    start hciattach
299
300on property:bluetooth.hciattach=false
301    setprop bluetooth.status off
302
303service bridgemgrd /system/bin/bridgemgrd
304    class main
305    user radio
306    group radio
307
308# QMUX must be in multiple groups to support external process connections
309service qmuxd /system/bin/qmuxd
310    class main
311    user radio
312    group radio audio bluetooth gps net_bt_stack
313
314service ks_checker /system/bin/sh /system/etc/kickstart_checker.sh
315    class core
316    group system
317    seclabel u:r:kickstart:s0
318    oneshot
319
320service kickstart /system/bin/qcks -i /firmware/image/ -r /data/tombstones/mdm/
321    class core
322    user system
323    group system
324    disabled
325    oneshot
326
327service asus-dbug-d /data/data/com.asus.debugger/files/asus-debugger-d
328    class late_start
329    disabled
330
331on property:gsm.radio.kickstart=on
332    start kickstart
333    setprop gsm.radio.kickstart running
334
335on property:gsm.radio.kickstart=off
336    stop kickstart
337
338on property:ril.asus_debugger_running=1
339    start asus-dbug-d
340
341service netmgrd /system/bin/netmgrd
342    class main
343    group radio
344
345service sensors /system/bin/sensors.qcom
346    class late_start
347    user root
348    group root
349
350service wpa_supplicant /system/bin/wpa_supplicant \
351    -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
352    -I/system/etc/wifi/wpa_supplicant_overlay.conf \
353    -O/data/misc/wifi/sockets \
354    -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
355    #   we will start as root and wpa_supplicant will switch to user wifi
356    #   after setting up the capabilities required for WEXT
357    #   user wifi
358    #   group wifi inet keystore
359    class main
360    socket wpa_wlan0 dgram 660 wifi wifi
361    disabled
362    oneshot
363
364service p2p_supplicant /system/bin/wpa_supplicant \
365    -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \
366    -I/system/etc/wifi/p2p_supplicant_overlay.conf -N \
367    -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
368    -I/system/etc/wifi/wpa_supplicant_overlay.conf \
369    -O/data/misc/wifi/sockets -puse_p2p_group_interface=1 \
370    -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
371#   we will start as root and wpa_supplicant will switch to user wifi
372#   after setting up the capabilities required for WEXT
373#   user wifi
374#   group wifi inet keystore
375    class main
376    socket wpa_wlan0 dgram 660 wifi wifi
377    disabled
378    oneshot
379
380service dhcpcd_wlan0 /system/bin/dhcpcd -aABDKL
381    class main
382    disabled
383    oneshot
384
385service dhcpcd_p2p /system/bin/dhcpcd -aABKL
386    class main
387    disabled
388    oneshot
389
390service iprenew_wlan0 /system/bin/dhcpcd -n
391    class main
392    disabled
393    oneshot
394
395service iprenew_p2p /system/bin/dhcpcd -n
396    class main
397    disabled
398    oneshot
399
400service dhcpcd_bt-pan /system/bin/dhcpcd -ABKL
401    class main
402    disabled
403    oneshot
404
405service iprenew_bt-pan /system/bin/dhcpcd -n
406    class main
407    disabled
408    oneshot
409
410on property:ro.data.large_tcp_window_size=true
411    # Adjust socket buffer to enlarge TCP receive window for high bandwidth (e.g. DO-RevB)
412    write /proc/sys/net/ipv4/tcp_adv_win_scale  1
413
414service charger /charger
415    class charger
416
417# virtual sdcard daemon running as media_rw (1023)
418service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emulated
419    class late_start
420
421# Binding fuse mount point to /storage/emulated/legacy
422on property:init.svc.sdcard=running
423    wait /mnt/shell/emulated/0
424    mount none /mnt/shell/emulated/0 /storage/emulated/legacy bind
425
426service thermald /system/bin/thermald
427    class main
428    group radio
429
430service mpdecision /system/bin/mpdecision --no_sleep --avg_comp
431    class main
432    user root
433    group root system
434
435service ppd /system/bin/mm-pp-daemon
436    class late_start
437    disabled
438    user system
439    socket pps stream 0660 system system
440    group system graphics
441
442service qcamerasvr /system/bin/mm-qcamera-daemon
443    class late_start
444    user camera
445    group camera system inet input
446
447service wcnss_init /system/bin/sh /system/etc/init.flo.wifi.sh
448    class main
449    user system
450    group system wifi
451    seclabel u:r:conn_init:s0
452    oneshot
453
454service bdAddrLoader /system/bin/bdAddrLoader -f /persist/bluetooth/.bdaddr -h -x
455    class main
456    user bluetooth
457    group system bluetooth net_bt_stack
458    oneshot
459
460# bugreport is triggered by holding down volume down, volume up and power
461service bugreport /system/bin/dumpstate -d -p -B \
462        -o /data/data/com.android.shell/files/bugreports/bugreport
463    class main
464    disabled
465    oneshot
466    keycodes 114 115 116
467
468service qseecomd /system/bin/qseecomd
469    class late_start
470    user system
471    group system
472
473service diag_mdlog /system/bin/diag_mdlog -s 100
474    class late_start
475    disabled
476
477on property:init.svc.surfaceflinger=running
478    start ppd
479
480on property:init.svc.surfaceflinger=stopped
481    stop ppd
482