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