diff options
Diffstat (limited to 'rootdir/factory_init.rc')
| -rw-r--r-- | rootdir/factory_init.rc | 604 |
1 files changed, 604 insertions, 0 deletions
diff --git a/rootdir/factory_init.rc b/rootdir/factory_init.rc new file mode 100644 index 0000000..898f043 --- /dev/null +++ b/rootdir/factory_init.rc @@ -0,0 +1,604 @@ +import /init.environ.rc +import init.ssd.rc +import init.no_ssd.rc +import init.ssd_nomuser.rc +import init.fon.rc +import init.trustonic.rc + +on early-init + # Set init and its forked children's oom_adj. + write /proc/1/oom_score_adj -1000 + + # Apply strict SELinux checking of PROT_EXEC on mmap/mprotect calls. + write /sys/fs/selinux/checkreqprot 0 + + # Set the security context for the init process. + # This should occur before anything else (e.g. ueventd) is started. + setcon u:r:init:s0 + + # Set the security context of /adb_keys if present. + restorecon /adb_keys + + start ueventd + + write /proc/bootprof "INIT: usr/eng build setting" +# create mountpoints + mkdir /mnt 0775 root system + +on init + +sysclktz 0 + +loglevel 5 + +# 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 + + +# Link /vendor to /system/vendor for devices without a vendor partition. + 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_system_props + load_persist_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 0771 /nvdata + symlink /nvdata /data/nvram + mkdir /nvdata/media 0771 media audio + + # 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 + mkdir /data/misc/wifi/sockets 0770 wifi wifi + mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi + mkdir /data/misc/ethernet 0770 system system + mkdir /data/misc/dhcp 0770 dhcp dhcp + mkdir /data/misc/user 0771 root root + mkdir /data/misc/perfprofd 0775 root root + # give system access to wpa_supplicant.conf for backup and restore + chmod 0660 /data/misc/wifi/wpa_supplicant.conf + mkdir /data/local 0751 root root + mkdir /data/misc/media 0700 media media + mkdir /data/misc/vold 0700 root root + 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 + mkdir /data/tombstones 0771 system system + + # create the lost+found directories, so as to enforce our permissions + mkdir /data/lost+found 0770 + mkdir /cache/lost+found 0770 + mkdir /data/adb 0700 root root + + # 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.<device>.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.<platform>.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 + socket cryptd 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/factory + disabled + oneshot + +service factory_with_image /sbin/factory + disabled + oneshot + +service mobile_log_d /system/bin/mobile_log_d + class main + +# +# 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 + +#single 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 + |
