aboutsummaryrefslogtreecommitdiffstats
path: root/rootdir/init.espresso.rc
blob: cca42ebe4503435b7ff5b49672b15c69549e887b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
import init.espresso.usb.rc

on init
    mkdir /mnt/shell/emulated 0700 shell shell
    mkdir /storage 0751 root sdcard_r
    mkdir /storage/emulated 0555 root root
    mkdir /storage/sdcard1 0700 root root
    mkdir /storage/usbdisk0 0700 root root
    mkdir /mnt/media_rw/sdcard1 0700 media_rw media_rw
    mkdir /mnt/media_rw/usbdisk0 0700 media_rw media_rw

    export EXTERNAL_STORAGE /storage/emulated/legacy
    export SECONDARY_STORAGE /storage/sdcard1
    export EMULATED_STORAGE_SOURCE /mnt/shell/emulated
    export EMULATED_STORAGE_TARGET /storage/emulated

    # for backwards compatibility
    symlink /storage/emulated/legacy /sdcard
    symlink /storage/emulated/legacy /mnt/sdcard
    symlink /storage/emulated/legacy /storage/sdcard0
    symlink /mnt/shell/emulated/0 /storage/emulated/legacy
    symlink /storage/sdcard1 /extSdCard
    symlink /storage/sdcard1 /mnt/extSdCard
    symlink /storage/usbdisk0 /usbdisk0
    symlink /storage/usbdisk0 /mnt/usbdisk0

# Vibetonz
    export VIBE_PIPE_PATH /dev/pipes
    mkdir /dev/pipes 0771 shell shell

# Vibetonz
    chmod 0660 /dev/tspdrv
    chown root shell /dev/tspdrv

# change permissions for ION driver
    chmod 0777 /dev/ion

# PVR
    chmod 0666 /dev/pvrsrvkm

loglevel 7

on fs
    mkdir /efs
    mount_all /fstab.espresso

 # We chown/chmod /efs because mount is run as root + defaults
    chown radio system /efs
    chmod 0775 /efs

    setprop ro.crypto.fuse_sdcard true

    mount debugfs /sys/kernel/debug /sys/kernel/debug

# Restorecon
    restorecon /efs/nv_data.bin
    restorecon /efs/nv_data.bin.md5
    restorecon /efs/.nv_core.bak
    restorecon /efs/.nv_core.bak.md5
    restorecon /efs/.nv_data.bak
    restorecon /efs/.nv_data.bak.md5
    restorecon /efs/.nv_state
    restorecon /efs/bluetooth/bt_addr
    restorecon /efs/FactoryApp/factorymode
    restorecon /efs/FactoryApp/hw_ver
    restorecon /efs/FactoryApp/keystr
    restorecon /efs/FactoryApp/serial_no
    restorecon /efs/imei/mps_code.dat
    restorecon /efs/wifi/.mac.info

# pvr module
    insmod /system/lib/modules/pvrsrvkm_sgx540_120.ko

on post-fs-data
    # we will remap this as /storage/sdcard0 with the sdcard fuse tool
    mkdir /data/media 0770 media_rw media_rw
    chown media_rw media_rw /data/media
    mkdir /data/misc/wifi 0770 wifi system
    mkdir /data/misc/wifi/sockets 0770 wifi wifi

# dmrpc
    mkdir /data/smc 0770 drmrpc drmrpc
    chown drmrpc drmrpc /data/smc/counter.bin
    chown drmrpc drmrpc /data/smc/storage.bin
    chown drmrpc drmrpc /data/smc/system.bin

# radio
    mkdir /data/misc/dhcp 0775 dhcp dhcp
    mkdir /data/misc/radio 0771 radio system
    mkdir /data/misc/radio/hatp 0771 radio system
    chown radio radio /data/misc/radio

    chown dhcp dhcp /data/misc/dhcp

    write /sys/devices/system/cpu/cpu0/cpufreq/screen_off_max_freq 800000
    chmod 0664 /sys/devices/system/cpu/cpu0/cpufreq/screen_off_max_freq

#DVFS Lock
    chown radio system /sys/power/cpufreq_min_limit
    chown radio system /sys/power/cpufreq_max_limit
    chown radio system /sys/power/cpufreq_table
    chmod 0664  /sys/power/cpufreq_min_limit
    chmod 0664  /sys/power/cpufreq_max_limit
    chmod 0664  /sys/power/cpufreq_table

# permissions for bluetooth.
    setprop ro.bt.bdaddr_path "/efs/bluetooth/bt_addr"
    chown bluetooth bluetooth ro.bt.bdaddr_path
    chown bluetooth bluetooth /dev/ttyO1
    chmod 0660 /dev/ttyO1
    chmod 0660 /sys/class/rfkill/rfkill0/state
    chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
    chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type
    restorecon /sys/class/rfkill/rfkill0/state
    restorecon /sys/class/rfkill/rfkill0/type

# for samsung factory.
    chown radio radio /efs/bluetooth
    chmod 0755 /efs/bluetooth
    chmod 0644 /efs/bluetooth/bt_addr

# Change permission for sensor rev00
    chmod 755 /system/bin/geomagneticd

    chown system input /sys/class/input/input2/enable
    chown system input /sys/class/input/input2/poll_delay

    chown system input /sys/class/input/input3/enable
    chown system input /sys/class/input/input3/poll_delay

    chown system input /sys/class/input/input2/enable
    chown system input /sys/class/input/input2/delay
    chown system input /sys/class/input/input2/wake

    chown system input /sys/class/input/input3/enable
    chown system input /sys/class/input/input3/delay
    chown system input /sys/class/input/input3/filter_enable
    chown system input /sys/class/input/input3/filter_len
    chown system input /sys/class/input/input3/data
    chown system input /sys/class/input/input3/status
    chown system input /sys/class/input/input3/wake
    chown system input /sys/class/input/input3/position

    chown compass input /sys/class/input/input3/offsets
    chown compass input /sys/class/input/input3/dynamic_matrix
    chown system input /sys/class/input/input3/threshold
    chown system input /sys/class/input/input3/distortion
    chown system input /sys/class/input/input3/shape
    write /sys/class/input/input3/distortion "500 350 15"

    chown system input /sys/class/input/input4/enable
    chown system input /sys/class/input/input4/delay
    chown system input /sys/class/input/input4/filter_enable
    chown system input /sys/class/input/input4/filter_len
    chown system input /sys/class/input/input4/data
    chown system input /sys/class/input/input4/status
    chown system input /sys/class/input/input4/wake
    chown system input /sys/class/input/input4/position

    chown compass input /sys/class/input/input4/offsets
    chown compass input /sys/class/input/input4/dynamic_matrix
    chown system input /sys/class/input/input4/threshold
    chown system input /sys/class/input/input4/distortion
    chown system input /sys/class/input/input4/shape
    write /sys/class/input/input4/distortion "500 350 15"

    chown system input /sys/class/input/input5/enable
    chown system input /sys/class/input/input5/delay
    chown system input /sys/class/input/input5/filter_enable
    chown system input /sys/class/input/input5/filter_len
    chown system input /sys/class/input/input5/data
    chown system input /sys/class/input/input5/status
    chown system input /sys/class/input/input5/wake
    chown system input /sys/class/input/input5/position

    chown compass input /sys/class/input/input5/offsets
    chown compass input /sys/class/input/input5/dynamic_matrix
    chown system input /sys/class/input/input5/threshold
    chown system input /sys/class/input/input5/distortion
    chown system input /sys/class/input/input5/shape
    write /sys/class/input/input5/distortion "500 350 15"

    chown system input /sys/class/input/input6/enable
    chown system input /sys/class/input/input6/delay
    chown system input /sys/class/input/input6/filter_enable
    chown system input /sys/class/input/input6/filter_len
    chown system input /sys/class/input/input6/data
    chown system input /sys/class/input/input6/status
    chown system input /sys/class/input/input6/wake
    chown system input /sys/class/input/input6/position

    chown compass input /sys/class/input/input6/offsets
    chown compass input /sys/class/input/input6/dynamic_matrix
    chown system input /sys/class/input/input6/threshold
    chown system input /sys/class/input/input6/distortion
    chown system input /sys/class/input/input6/shape
    write /sys/class/input/input6/distortion "500 350 15"

    chown system input /sys/class/input/input7/enable
    chown system input /sys/class/input/input7/delay
    chown system input /sys/class/input/input7/filter_enable
    chown system input /sys/class/input/input7/filter_len
    chown system input /sys/class/input/input7/data
    chown system input /sys/class/input/input7/status
    chown system input /sys/class/input/input7/wake
    chown system input /sys/class/input/input7/position

    chown system radio /sys/class/sensors/accelerometer_sensor/raw_data
    chown system radio /sys/class/sensors/accelerometer_sensor/calibration
    chown system radio /sys/class/sensors/accelerometer_sensor/vendor
    chown system radio /sys/class/sensors/accelerometer_sensor/name

    chown system radio /sys/class/sensors/magnetic_sensor/vendor
    chown system radio /sys/class/sensors/magnetic_sensor/name

    chown system radio /sys/class/sensors/proximity_sensor/state
    chown system radio /sys/class/sensors/proximity_sensor/raw_data
    chown system radio /sys/class/sensors/proximity_sensor/vendor
    chown system radio /sys/class/sensors/proximity_sensor/name

    chown system radio /sys/class/sensors/light_sensor/lux
    chown system radio /sys/class/sensors/light_sensor/raw_data
    chown system radio /sys/class/sensors/light_sensor/vendor
    chown system radio /sys/class/sensors/light_sensor/name

# Change permission for TSP
    chown system radio /sys/class/sec/tsp/cmd
    chown system radio /sys/class/sec/tsp/cmd_status
    chown system radio /sys/class/sec/tsp/cmd_result
    chown media_rw media_rw /sys/class/sec/tsp/set_jitter

# Change permission for switch
    chmod 0660 /sys/class/sec/switch/uart_sel
    chmod 0660 /sys/class/sec/switch/usb_sel
    chmod 0600 /sys/class/sec/switch/jig_on

    chown system radio /sys/class/sec/switch/uart_sel
    chown system radio /sys/class/sec/switch/usb_sel
    chown radio radio /sys/class/sec/switch/jig_on
    chown system radio /sys/class/sec/switch/adc

# create data/gps for GPS demon
    chown root system /dev/ttyO0
    chmod 0660 /dev/ttyO0
    chown root system /sys/class/sec/gps/GPS_PWR_EN/value
    chmod 0664 /sys/class/sec/gps/GPS_PWR_EN/value
    chown root system /sys/class/sec/gps/GPS_nRST/value
    chmod 0664 /sys/class/sec/gps/GPS_nRST/value
    mkdir /data/gps 771 system system
    chown system system /data/gps

#Change permission for backlight and lcd
    chown system system /sys/class/backlight/panel/brightness
    chown system radio /sys/class/lcd/panel/lcd_type
    chown system radio /sys/class/lcd/panel/lcd_power

# IrLED
    chown system system /sys/class/sec/sec_ir/ir_send
    chown system system /sys/class/sec/sec_ir/check_ir

# Battery
    chown system radio /sys/class/power_supply/battery/batt_reset_soc
    chmod 0664 /sys/class/power_supply/battery/batt_reset_soc

# for wifi
    mkdir /efs/wifi 0775 system radio

# for hdcp, amwbr
    mkdir /data/misc/radio 0775 radio system

# for hdmi factory test
    chown radio system /sys/devices/platform/omapdss/display1/sec_timing

    setprop vold.post_fs_data_done 1

on boot

# initialize the SGX driver
service pvrsrvinit /system/vendor/bin/pvrsrvinit
    class core
    user root
    group root
    oneshot

service pvrsrvctl /system/vendor/bin/pvrsrvctl_SGX540_120 --start --no-module
    class core
    user root
    group root
    oneshot

# SMC Service
service tf_daemon /system/bin/tf_daemon \
    -d -c /system/bin/smc.ini
    class main
    user root
    group root
    oneshot
    disabled

service smc_pa /system/bin/smc_pa_ctrl \
    -c /system/bin/smc.ini \
    start /system/bin/smc_pa.ift
    class core
    user root
    group root
    oneshot

service orientationd /system/bin/orientationd
    class main
    user compass
    group input

service geomagneticd /system/bin/geomagneticd
    class main
    user compass
    group system input

# create virtual SD card at /storage/sdcard0, based on the /data/media directory
# daemon will drop to user/group system/media_rw after initializing
# underlying files in /data/media will be created with user and group media_rw (1023)
service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emulated
    class late_start
    oneshot

# FUSE sdcard daemon for rich permissions (runs as media_rw)
service fuse_sdcard1 /system/bin/sdcard -u 1023 -g 1023 -d /mnt/media_rw/sdcard1 /storage/sdcard1
    class late_start
    disabled

service fuse_usbdisk0 /system/bin/sdcard -u 1023 -g 1023 -d /mnt/media_rw/usbdisk0 /storage/usbdisk0
    class late_start
    disabled

service p2p_supplicant /system/bin/wpa_supplicant \
    -iwlan0 -Dnl80211 -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf \
    -I/system/etc/wifi/wpa_supplicant_overlay.conf \
    -O/data/misc/wifi/sockets -N \
    -ip2p0 -Dnl80211 -c /data/misc/wifi/p2p_supplicant.conf \
    -I/system/etc/wifi/p2p_supplicant_overlay.conf \
    -puse_p2p_group_interface=1 -e/data/misc/wifi/entropy.bin \
    -g@android:wpa_wlan0
    #   we will start as root and wpa_supplicant will switch to user wifi
    #   after setting up the capabilities required for WEXT
    #   user wifi
    #   group wifi inet keystore
    class main
    socket wpa_wlan0 dgram 660 wifi wifi
    disabled
    oneshot

service wpa_supplicant /system/bin/wpa_supplicant \
    -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
    -I/system/etc/wifi/wpa_supplicant_overlay.conf \
    -O/data/misc/wifi/sockets \
    -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
    #   we will start as root and wpa_supplicant will switch to user wifi
    #   after setting up the capabilities required for WEXT
    #   user wifi
    #   group wifi inet keystore
    class main
    socket wpa_wlan0 dgram 660 wifi wifi
    disabled
    oneshot

service dhcpcd_wlan0 /system/bin/dhcpcd -ABKL
    class main
    disabled
    oneshot

service dhcpcd_p2p /system/bin/dhcpcd -aABKL
    class main
    disabled
    oneshot

service dhcpcd_bt-pan /system/bin/dhcpcd -ABKL
    class main
    disabled
    oneshot

service iprenew_wlan0 /system/bin/dhcpcd -n
    class main
    disabled
    oneshot

service iprenew_p2p /system/bin/dhcpcd -n
    class main
    disabled
    oneshot

service iprenew_bt-pan /system/bin/dhcpcd -n
    class main
    disabled
    oneshot

service cpboot-daemon /sbin/cbd -d -p 8
    class main
    user root
    group radio cache inet misc audio sdcard_rw log sdcard_r
    disabled

on property:init.svc.pvrsrvinit=stopped
    start cpboot-daemon

# GPS
service gpsd /system/bin/gpsd -c /system/etc/gps.xml
    class main
    socket gps seqpacket 0660 gps system
    user gps
    group system inet sdcard_rw

# Keyboard
service dock_kbd_attach /system/bin/dock_kbd_attach /dev/ttyO3
        class main
        user root
        oneshot

# LPM
on property:ro.bootmode=charger
    mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/FACTORYFS /system wait ro

on property:ro.bootmode=charger
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 04e8
    write /sys/class/android_usb/android0/idProduct 6860
    write /sys/class/android_usb/android0/functions adb
    write /sys/class/android_usb/android0/enable 1
    write /sys/class/android_usb/android0/iManufacturer samsung
    write /sys/class/android_usb/android0/iProduct $(ro.product.model)
    start adbd

on property:ro.bootmode=charger
    start pvrsrvinit

on property:ro.bootmode=charger
    class_start charger

service charger /charger
    class charger
    user root