| import factory_init.connectivity.rc |
| import /init.environ.rc |
| import init.fon.rc |
| import init.trustonic.rc |
| import init.nvdata.rc |
| import init.microtrust.rc |
| |
| on early-init |
| # Set init and its forked children's oom_adj. |
| write /proc/1/oom_score_adj -1000 |
| |
| # Set the security context of /adb_keys if present. |
| restorecon /adb_keys |
| |
| mount debugfs debugfs /sys/kernel/debug |
| chmod 0755 /sys/kernel/debug |
| |
| start ueventd |
| |
| write /proc/bootprof "INIT: usr/eng build setting" |
| |
| 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/11230000.msdc0/by-name/boot /dev/bootimg |
| symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/recovery /dev/recovery |
| symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/secro /dev/sec_ro |
| symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/kb /dev/kb |
| symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/dkb /dev/dkb |
| symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/seccfg /dev/seccfg |
| symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/proinfo /dev/pro_info |
| symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/nvram /dev/nvram |
| symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/para /dev/misc |
| symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/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 |
| |
| 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 |
| mkdir /nvcfg 0771 system system |
| |
| # Mount staging areas for devices managed by vold |
| # See storage config details at http://source.android.com/tech/storage/ |
| mkdir /mnt 0755 root system |
| mount tmpfs tmpfs /mnt mode=0755,uid=0,gid=1000 |
| restorecon_recursive /mnt |
| # Support legacy paths |
| symlink /sdcard /mnt/sdcard |
| |
| mkdir /mnt/secure 0700 root root |
| mkdir /mnt/secure/asec 0700 root root |
| mkdir /mnt/asec 0755 root system |
| mkdir /mnt/obb 0755 root system |
| mkdir /mnt/media_rw 0750 root media_rw |
| mkdir /mnt/user 0755 root root |
| mkdir /mnt/user/0 0755 root root |
| mkdir /mnt/expand 0771 system system |
| |
| # Storage views to support runtime permissions |
| mkdir /storage 0755 root root |
| mkdir /mnt/runtime 0700 root root |
| mkdir /mnt/runtime/default 0755 root root |
| mkdir /mnt/runtime/default/self 0755 root root |
| mkdir /mnt/runtime/read 0755 root root |
| mkdir /mnt/runtime/read/self 0755 root root |
| mkdir /mnt/runtime/write 0755 root root |
| mkdir /mnt/runtime/write/self 0755 root root |
| |
| # Symlink to keep legacy apps working in multi-user world |
| symlink /storage/self/primary /sdcard |
| symlink /mnt/user/0/primary /mnt/runtime/default/self/primary |
| |
| 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 |
| mkdir /dev/usb-ffs 0770 shell shell |
| mkdir /dev/usb-ffs/adb 0770 shell shell |
| mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000 |
| write /sys/class/android_usb/android0/f_ffs/aliases adb |
| |
| #INTERNAL_START |
| write /proc/bootprof "INIT:Mount_START" |
| mount_all /fstab.mt6797 |
| write /proc/bootprof "INIT:Mount_END" |
| #INTERNAL_END |
| |
| on post-fs |
| |
| start logd |
| # once everything is setup, no need to modify / |
| mount rootfs rootfs / ro remount |
| # Mount shared so changes propagate into child namespaces |
| mount rootfs rootfs / shared rec |
| # Mount default storage into root namespace |
| mount none /mnt/runtime/default /storage slave bind rec |
| # Support legacy paths |
| symlink /sdcard /storage/sdcard0 |
| |
| 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 |
| |
| # Same reason as /data above |
| chown system cache /cache |
| chmod 0770 /cache |
| |
| # 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 |
| chown root system /proc/sysrq-trigger |
| chmod 0220 /proc/sysrq-trigger |
| chown system log /proc/last_kmsg |
| chmod 0440 /proc/last_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 |
| |
| #INTERNAL_START |
| mkdir /cache/recovery 0770 system system |
| chown system system /protect_f |
| chmod 0770 /protect_f |
| |
| chown system system /protect_s |
| chmod 0770 /protect_s |
| #INTERNAL_END |
| |
| on post-fs-data |
| #Thermal |
| mkdir /data/.tp/ 0775 system system |
| |
| # 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 |
| |
| # 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 /nvcfg |
| chmod 0771 /nvcfg |
| restorecon_recursive /nvcfg |
| |
| # 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 |
| |
| #Create cct mount point |
| mkdir /data/cct |
| chown root system /data/cct |
| chmod 0771 /data/cct |
| |
| # Set SELinux security contexts on upgrade or policy update. |
| restorecon_recursive /nvdata |
| |
| # Emulated internal storage area |
| mkdir /data/media 0770 media_rw media_rw |
| |
| # Make sure we have the device encryption key |
| start logd |
| start vold |
| installkey /data |
| |
| # create basic filesystem structure |
| mkdir /data/misc 01771 system misc |
| mkdir /data/misc/adb 02750 system shell |
| mkdir /data/misc/bluedroid 02770 bluetooth net_bt_stack |
| # Fix the access permissions and group ownership for 'bt_config.conf' |
| chmod 0660 /data/misc/bluedroid/bt_config.conf |
| chown bluetooth net_bt_stack /data/misc/bluedroid/bt_config.conf |
| 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/property 0700 root root |
| mkdir /data/tombstones 0771 system system |
| mkdir /data/misc/media 0700 media media |
| mkdir /data/misc/vold 0700 root root |
| |
| # create the lost+found directories, so as to enforce our permissions |
| mkdir /data/lost+found 0770 root root |
| mkdir /data/adb 0770 root root |
| |
| # Create all remaining /data root dirs so that they are made through init |
| # and get proper encryption policy installed |
| mkdir /data/backup 0700 system system |
| mkdir /data/media 0770 media_rw media_rw |
| mkdir /data/ss 0700 system system |
| mkdir /data/system 0775 system system |
| mkdir /data/system/heapdump 0700 system system |
| mkdir /data/user 0711 system system |
| |
| # 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 |
| #INTERNAL_START |
| #SeLinux |
| mkdir /data/ccci_cfg 0770 system radio |
| restorecon /data/ccci_cfg |
| restorecon_recursive /protect_f |
| restorecon_recursive /protect_s |
| |
| ## 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 |
| |
| # 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 |
| mkdir /data/nvram/md3 0770 root system |
| mkdir /data/md3 0770 root system |
| |
| chown radio radio /sys/kernel/ccci/boot |
| |
| #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 |
| chmod 0666 /dev/humidity |
| chmod 0666 /dev/barometer |
| |
| chown system system /dev/hwmsensor |
| chown system system /dev/msensor |
| chown system system /dev/gsensor |
| chown radio system /dev/als_ps |
| chown system system /dev/gyroscope |
| chown system system /dev/barometer |
| chown system system /dev/humidity |
| #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) |
| #INTERNAL_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 |
| |
| #INTERNAL_START |
| # Start default class, this line is very important!! |
| class_start default |
| class_start core |
| #INTERNAL_END |
| |
| 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:sys.init_log_level=* |
| loglevel ${sys.init_log_level} |
| |
| on property:vold.decrypt=trigger_reset_main |
| class_reset main |
| |
| on property:vold.decrypt=trigger_load_persist_props |
| load_persist_props |
| start logd |
| start logd-reinit |
| |
| 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 |
| |
| 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 |
| service logd-reinit /system/bin/logd --reinit |
| oneshot |
| disabled |
| |
| service console /system/bin/sh |
| class core |
| console |
| disabled |
| user shell |
| 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 \ |
| --blkid_context=u:r:blkid:s0 --blkid_untrusted_context=u:r:blkid_untrusted:s0 \ |
| --fsck_context=u:r:fsck:s0 --fsck_untrusted_context=u:r:fsck_untrusted:s0 |
| class core |
| socket vold stream 0660 root mount |
| socket cryptd stream 0660 root mount |
| ioprio be 2 |
| |
| service debuggerd /system/bin/debuggerd |
| class main |
| |
| service debuggerd64 /system/bin/debuggerd64 |
| class main |
| |
| # 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) |
| |
| on property:persist.logd.logpersistd=logcatd |
| # all exec/services are called with umask(077), so no gain beyond 0700 |
| mkdir /data/misc/logd 0700 logd log |
| # logd for write to /data/misc/logd, log group for read from pstore (-L) |
| exec - logd log -- /system/bin/logcat -L -b all -v threadtime -v usec -v printable -D -f /data/misc/logd/logcat -r 64 -n 256 |
| start logcatd |
| |
| service logcatd /system/bin/logcat -b all -v threadtime -v usec -v printable -D -f /data/misc/logd/logcat -r 64 -n 256 |
| class late_start |
| disabled |
| # logd for write to /data/misc/logd, log group for read from log daemon |
| user logd |
| group log |
| |
| #INTERNAL_START |
| ## 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 ccci3_fsd /system/bin/ccci_fsd 2 |
| user radio |
| group radio system |
| oneshot |
| |
| service ccci3_mdinit /system/bin/ccci_mdinit 2 |
| 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 mdlogger /system/bin/mdlogger |
| class main |
| user shell |
| group shell system radio sdcard_rw inet |
| disabled |
| oneshot |
| |
| service dualmdlogger /system/bin/dualmdlogger |
| class main |
| user shell |
| group shell system radio sdcard_rw inet |
| disabled |
| oneshot |
| |
| service factory_no_image /system/bin/factory |
| |
| service mobile_log_d /system/bin/mobile_log_d |
| class main |
| |
| ## 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 |
| |
| #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 |
| #INTERNAL_END |