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
|