on init sysclktz 0 loglevel 0 # Backward compatibility symlink /system/etc /etc symlink /sys/kernel/debug /d # Temp Backward compatibility symlink /dev/block/platform/mtk-msdc.0/by-name/boot /dev/bootimg symlink /dev/block/platform/mtk-msdc.0/by-name/recovery /dev/recovery symlink /dev/block/platform/mtk-msdc.0/by-name/secro /dev/sec_ro symlink /dev/block/platform/mtk-msdc.0/by-name/kb /dev/kb symlink /dev/block/platform/mtk-msdc.0/by-name/dkb /dev/dkb symlink /dev/block/platform/mtk-msdc.0/by-name/seccfg /dev/seccfg symlink /dev/block/platform/mtk-msdc.0/by-name/proinfo /dev/pro_info symlink /dev/block/platform/mtk-msdc.0/by-name/nvram /dev/nvram symlink /dev/block/platform/mtk-msdc.0/by-name/para /dev/misc symlink /dev/block/platform/mtk-msdc.0/by-name/logo /dev/logo # Right now vendor lives on the same filesystem as system, # but someday that may change. symlink /system/vendor /vendor # Create cgroup mount point for cpu accounting mkdir /acct mount cgroup none /acct cpuacct mkdir /acct/uid # Backwards Compat - XXX: Going away in G* symlink /mnt/sdcard /sdcard mkdir /system mkdir /data 0771 system system mkdir /cache 0770 system cache mkdir /config 0500 root root mkdir /protect_f 0771 system system mkdir /protect_s 0771 system system #create mountpoint for persist partition mkdir /persist 0771 system system #Create nvdata mount point mkdir /nvdata 0771 system system # See storage config details at http://source.android.com/tech/storage/ mkdir /mnt/shell 0700 shell shell mkdir /mnt/media_rw 0700 media_rw media_rw mkdir /storage 0751 root sdcard_r # Filesystem image public mount points. mkdir /mnt/obb 0700 root system mount tmpfs tmpfs /mnt/obb mode=0755,gid=1000 write /proc/sys/kernel/panic_on_oops 1 write /proc/sys/kernel/hung_task_timeout_secs 0 write /proc/cpu/alignment 4 write /proc/sys/kernel/sched_latency_ns 10000000 write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000 write /proc/sys/kernel/sched_compat_yield 1 write /proc/sys/kernel/sched_child_runs_first 0 # Healthd can trigger a full boot from charger mode by signaling this # property when the power button is held. on property:sys.boot_from_charger_mode=1 class_stop charger trigger late-init # Load properties from /system/ + /factory after fs mount. on load_all_props_action load_all_props # Mount filesystems and start core system services. on late-init trigger early-fs trigger fs trigger post-fs trigger post-fs-data # Load properties from /system/ + /factory after fs mount. Place # this in another action so that the load will be scheduled after the prior # issued fs triggers have completed. trigger load_all_props_action trigger early-boot trigger boot on fs write /proc/bootprof "INIT:Mount_START" mount_all /fstab.mt6735 #change partition permissions exec /system/bin/chmod 0640 /dev/block/platform/mtk-msdc.0/by-name/boot exec /system/bin/chown root:system /dev/block/platform/mtk-msdc.0/by-name/boot exec /system/bin/chmod 0640 /dev/block/platform/mtk-msdc.0/by-name/recovery exec /system/bin/chown root:system /dev/block/platform/mtk-msdc.0/by-name/recovery exec /system/bin/chmod 0640 /dev/block/platform/mtk-msdc.0/by-name/secro exec /system/bin/chown root:system /dev/block/platform/mtk-msdc.0/by-name/secro exec /system/bin/chmod 0660 /dev/block/platform/mtk-msdc.0/by-name/seccfg exec /system/bin/chown root:system /dev/block/platform/mtk-msdc.0/by-name/seccfg exec /system/bin/chmod 0660 /dev/block/platform/mtk-msdc.0/by-name/proinfo exec /system/bin/chown root:system /dev/block/platform/mtk-msdc.0/by-name/proinfo exec /system/bin/chmod 0660 /dev/block/platform/mtk-msdc.0/by-name/otp exec /system/bin/chown root:system /dev/block/platform/mtk-msdc.0/by-name/otp exec /system/bin/chmod 0660 /dev/block/platform/mtk-msdc.0/by-name/nvram exec /system/bin/chown root:system /dev/block/platform/mtk-msdc.0/by-name/nvram exec /system/bin/chmod 0660 /dev/block/platform/mtk-msdc.0/by-name/para exec /system/bin/chown root:system /dev/block/platform/mtk-msdc.0/by-name/para exec /system/bin/chmod 0660 /dev/block/platform/mtk-msdc.0/by-name/logo exec /system/bin/chown root:system /dev/block/platform/mtk-msdc.0/by-name/logo exec /system/bin/chown root:system /dev/block/platform/mtk-msdc.0/by-name/para write /proc/bootprof "INIT:Mount_END" on post-fs # once everything is setup, no need to modify / mount rootfs rootfs / ro remount chown system system /system/data mkdir /system/cache 0770 system cache # We restorecon /cache in case the cache partition has been reset. restorecon_recursive /cache # We chown/chmod /data again so because mount is run as root + defaults chown system system /system/data chmod 0777 /system/data # We chown/chmod /data again so because mount is run as root + defaults chown system system /data chmod 0771 /data # We restorecon /data in case the userdata partition has been reset. restorecon /data # Same reason as /data above chown system cache /cache chmod 0770 /cache mkdir /cache/recovery 0770 system system chown system system /protect_f chmod 0770 /protect_f chown system system /protect_s chmod 0770 /protect_s # This may have been created by the recovery system with odd permissions chown system cache /cache/recovery chmod 0770 /cache/recovery #change permissions on vmallocinfo so we can grab it from bugreports chown root log /proc/vmallocinfo chmod 0440 /proc/vmallocinfo #change permissions on kmsg & sysrq-trigger so bugreports can grab kthread stacks chown root system /proc/kmsg chmod 0440 /proc/kmsg # make the selinux kernel policy world-readable chmod 0444 /sys/fs/selinux/policy # create the lost+found directories, so as to enforce our permissions mkdir /cache/lost+found 0770 root root on post-fs-data #SeLinux mkdir /data/ccci_cfg 0770 system radio restorecon /data/ccci_cfg restorecon_recursive /protect_f restorecon_recursive /protect_s # We chown/chmod /data again so because mount is run as root + defaults chown root system /proc/sysrq-trigger chmod 0220 /proc/sysrq-trigger chown system system /persist chmod 0771 /persist # create basic filesystem structure #mkdir /data/nvram 2770 root system # We chown/chmod /nvdata again so because mount is run as root + defaults chown root system /nvdata chmod 2770 /nvdata symlink /nvdata /data/nvram # Set SELinux security contexts on upgrade or policy update. restorecon_recursive /nvdata mkdir /data/misc 01771 system misc mkdir /data/misc/bluetoothd 0770 bluetooth bluetooth mkdir /data/misc/bluetooth 0770 system system mkdir /data/misc/keystore 0700 keystore keystore mkdir /data/misc/keychain 0771 system system mkdir /data/misc/vpn 0770 system vpn mkdir /data/misc/systemkeys 0700 system system # give system access to wpa_supplicant.conf for backup and restore mkdir /data/misc/wifi 0770 wifi wifi chmod 0660 /data/misc/wifi/wpa_supplicant.conf mkdir /data/local 0771 shell shell mkdir /data/local/tmp 0771 shell shell mkdir /data/data 0771 system system mkdir /data/app-private 0771 system system mkdir /data/app 0771 system system mkdir /data/property 0700 root root # create the lost+found directories, so as to enforce our permissions mkdir /data/lost+found 0770 mkdir /cache/lost+found 0770 # double check the perms, in case lost+found already exists, and set owner chown root root /data/lost+found chmod 0770 /data/lost+found chown root root /cache/lost+found chmod 0770 /cache/lost+found # VIA flashlessd service mkdir /data/flashless 0770 radio nvram mkdir /data/nvram/md_via 0770 root nvram chmod 0660 /dev/ttyMT4 chown radio radio /dev/ttyMT4 chmod 0660 /dev/vmodem chown radio radio /dev/vmodem #VIA pppd service mkdir /data/pppd_via 0770 radio system # md32 boot chown root system /dev/md32 chmod 0440 /dev/md32 chown root system /sys/class/misc/md32/md32_mobile_log chmod 0660 /sys/class/misc/md32/md32_mobile_log write /sys/class/misc/md32/md32_boot 1 # dhcp server mkdir /data/misc/dhcp 0770 dhcp dhcp chown dhcp dhcp /data/misc/dhcp # device info interface chmod 0440 /dev/devmap chown root system /dev/devmap #change partition permission exec /system/etc/partition_permission.sh ## Custom pos-fs area (START) # Please add custom fs operation below # Touch Panel chown root diag /sys/module/tpd_setting/parameters/tpd_calmat chown root diag /sys/module/tpd_setting/parameters/tpd_em_debounce_time chown root diag /sys/module/tpd_debug/parameters/tpd_em_log chown root diag /sys/module/tpd_debug/parameters/tpd_em_log_to_fs chmod 0777 /dev/pmem_multimedia chmod 0777 /dev/mt6516-isp chmod 0777 /dev/mt6516-IDP chmod 0777 /dev/mt9p012 chmod 0777 /dev/mt6516_jpeg chmod 0777 /dev/FM50AF # RTC mkdir /data/misc/rtc 0770 system system # Modem related device nodes mkdir /data/nvram/md 0770 root system mkdir /data/nvram/md2 0770 root system # Build-in Modified - S # insmod /system/lib/modules/ccci_plat.ko # insmod /system/lib/modules/ccci.ko # Build-in Modified - E # chown ccci ccci /sys/class/BOOT/BOOT/boot/md chown radio radio /sys/kernel/ccci/boot # M4U #insmod /system/lib/modules/m4u.ko #mknod /dev/M4U_device c 188 0 chmod 0444 /dev/M4U_device #set mlock limit to infinate (for m4u operation) setrlimit 8 -1 -1 # Sensor chmod 0666 /dev/hwmsensor chmod 0666 /dev/gyroscope chmod 0666 /dev/msensor chmod 0666 /dev/gsensor chmod 0666 /dev/alsps #VideoCodec chmod 0666 /dev/Vcodec mkdir /data/amit/ # GPIO chmod 0666 /dev/mtgpio chmod 0666 /dev/exm0 # TTY # For ATCID chmod 0660 /dev/ttyGS0 chown system radio /dev/ttyGS0 chmod 0660 /dev/ttyGS1 chown system /dev/ttyGS1 # For BT relayer chown bluetooth radio /dev/ttyGS2 chmod 0660 /dev/ttyGS2 # For MD Logger chown system radio /dev/ttyGS3 chmod 0660 /dev/ttyGS3 #NFC rm /data/mtknfc_server ## Custom pos_fs area (END) # Separate location for storing security policy files on data mkdir /data/security 0711 system system # Reload policy from /data/security if present. setprop selinux.reload_policy 1 # Set SELinux security contexts on upgrade or policy update. restorecon_recursive /data # If there is no fs-post-data action in the init..rc file, you # must uncomment this line, otherwise encrypted filesystems # won't work. # Set indication (checked by vold) that we have finished this action setprop vold.post_fs_data_done 1 on boot #VIA device property setprop viatel.device.asci uart.4.ttyMT setprop viatel.device.fls sdio.3.ttySDIO setprop viatel.device.at sdio.4.ttySDIO setprop viatel.device.data sdio.1.ttySDIO # basic network init ifup lo hostname localhost domainname localdomain # Start default class, this line is very important!! class_start default class_start core on nonencrypted class_start main class_start late_start on property:vold.decrypt=trigger_default_encryption start defaultcrypto on property:vold.decrypt=trigger_encryption start surfaceflinger start encrypt on property:vold.decrypt=trigger_reset_main class_reset main on property:vold.decrypt=trigger_load_persist_props load_persist_props on property:vold.decrypt=trigger_post_fs_data trigger post-fs-data on property:vold.decrypt=trigger_restart_min_framework class_start main on property:vold.decrypt=trigger_restart_framework start nvram_daemon class_start main class_start late_start start permission_check on property:vold.decrypt=trigger_shutdown_framework class_reset late_start class_reset main ## Daemon processes to be run by init. ## # Update the second boot logo # service bootlogoupdater /system/bin/boot_logo_updater # oneshot service ueventd /sbin/ueventd class core critical seclabel u:r:ueventd:s0 service logd /system/bin/logd class core socket logd stream 0666 logd logd socket logdr seqpacket 0666 logd logd socket logdw dgram 0222 logd logd seclabel u:r:logd:s0 service console /system/bin/sh class core console disabled user shell group shell log seclabel u:r:shell:s0 on property:sys.powerctl=* powerctl ${sys.powerctl} on property:ro.debuggable=1 start console # adbd is controlled via property triggers in init..usb.rc service adbd /sbin/adbd --root_seclabel=u:r:su:s0 class core socket adbd stream 660 system system disabled seclabel u:r:adbd:s0 service vold /system/bin/vold class core socket vold stream 0660 root mount ioprio be 2 # One shot invocation to deal with encrypted volume. service defaultcrypto /system/bin/vdc --wait cryptfs mountdefaultencrypted disabled oneshot # vold will set vold.decrypt to trigger_restart_framework (default # encryption) or trigger_restart_min_framework (other encryption) # One shot invocation to encrypt unencrypted volumes service encrypt /system/bin/vdc --wait cryptfs enablecrypto inplace default disabled oneshot # vold will set vold.decrypt to trigger_restart_framework (default # encryption) ## Custom service area (START) # Please add custom service below service thermal_manager /system/bin/thermal_manager user root oneshot service permission_check /system/bin/permission_check user root group system radio oneshot service ccci_fsd /system/bin/ccci_fsd 0 user radio group radio system oneshot service ccci_mdinit /system/bin/ccci_mdinit 0 user system group radio system oneshot service ccci_rpcd /system/bin/ccci_rpcd 0 user radio group radio system oneshot service nvram_daemon /system/bin/nvram_daemon class main user root group system oneshot service installd /system/bin/installd class main socket installd stream 600 system system service factory_no_image /system/bin/logwrapper /system/bin/factory disabled oneshot service factory_with_image /system/bin/logwrapper /sbin/factory disabled oneshot service mobile_log_d /system/bin/mobile_log_d class main #service hald /system/bin/hald # class main # socket hald stream 0660 root system #service wpa_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant # group wifi # disabled # oneshot # # Connectivity related services (End) # # ## Custom service area (END) #statusd service service statusd /system/bin/statusd -f [/system/bin/flashlessd -l -m 0] socket statusd stream 660 radio radio user radio group radio cache inet misc system on property:sys.mtk.no.factoryimage=1 start factory_no_image on property:sys.mtk.no.factoryimage=0 start factory_with_image #mass_storage,adb,acm on property:ro.boot.usbconfig=0 write /sys/class/android_usb/android0/iSerial $ro.serialno write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 0e8d write /sys/class/android_usb/android0/idProduct 2006 write /sys/class/android_usb/android0/f_acm/instances 1 write /sys/class/android_usb/android0/functions mass_storage,adb,acm write /sys/class/android_usb/android0/enable 1 start adbd setprop sys.usb.acm_idx 1 #acm on property:ro.boot.usbconfig=1 write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/iSerial " " write /sys/class/android_usb/android0/idVendor 0e8d write /sys/class/android_usb/android0/idProduct 2007 write /sys/class/android_usb/android0/f_acm/instances 1 write /sys/class/android_usb/android0/functions acm write /sys/class/android_usb/android0/bDeviceClass 02 write /sys/class/android_usb/android0/enable 1 #singloe modem comport for factory mode on property:sys.usb.config=gs3,dual_acm write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor $sys.usb.vid write /sys/class/android_usb/android0/idProduct 202E write /sys/class/android_usb/android0/f_acm/port_index 1,4 write /sys/devices/platform/mt_usb/saving 1 write /sys/class/android_usb/android0/functions mass_storage,adb,acm write /sys/class/android_usb/android0/enable 1 chown system radio /dev/ttyGS3 chmod 0660 /dev/ttyGS3 start adbd setprop sys.usb.state $sys.usb.config setprop sys.usb.acm_idx 1,4 #dual modem comport for factory mode on property:sys.usb.config=gs1gs3,dual_acm write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor $sys.usb.vid write /sys/class/android_usb/android0/idProduct 202F write /sys/class/android_usb/android0/f_acm/port_index 1,2,4 write /sys/devices/platform/mt_usb/saving 1 write /sys/class/android_usb/android0/functions adb,acm write /sys/class/android_usb/android0/enable 1 chown system radio /dev/ttyGS3 chmod 0660 /dev/ttyGS3 chown system radio /dev/ttyGS1 chmod 0660 /dev/ttyGS1 start adbd setprop sys.usb.state $sys.usb.config setprop sys.usb.acm_idx 1,2,4