commit da7bb29bf749160ba450a4ea27f352490bc1f7a3
Author: PROPGSP <148640805+PROPGSP@users.noreply.github.com>
Date: Sun Jun 22 13:42:34 2025 +0530
initializing tree with aospdtgen just fr skeleton
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..dfe0770
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+# Auto detect text files and perform LF normalization
+* text=auto
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..cdaa513
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,8 @@
+//
+// Copyright (C) 2025 The LineageOS Project
+//
+// SPDX-License-Identifier: Apache-2.0
+//
+
+soong_namespace {
+}
diff --git a/Android.mk b/Android.mk
new file mode 100644
index 0000000..fea5c77
--- /dev/null
+++ b/Android.mk
@@ -0,0 +1,11 @@
+#
+# Copyright (C) 2025 The LineageOS Project
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+LOCAL_PATH := $(call my-dir)
+
+ifeq ($(TARGET_DEVICE),cancunf)
+include $(call all-subdir-makefiles,$(LOCAL_PATH))
+endif
diff --git a/AndroidProducts.mk b/AndroidProducts.mk
new file mode 100644
index 0000000..0c35851
--- /dev/null
+++ b/AndroidProducts.mk
@@ -0,0 +1,13 @@
+#
+# Copyright (C) 2025 The LineageOS Project
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+PRODUCT_MAKEFILES := \
+ $(LOCAL_DIR)/lineage_cancunf.mk
+
+COMMON_LUNCH_CHOICES := \
+ lineage_cancunf-user \
+ lineage_cancunf-userdebug \
+ lineage_cancunf-eng
diff --git a/BoardConfig.mk b/BoardConfig.mk
new file mode 100644
index 0000000..bb1f5aa
--- /dev/null
+++ b/BoardConfig.mk
@@ -0,0 +1,102 @@
+#
+# Copyright (C) 2025 The LineageOS Project
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+DEVICE_PATH := device/motorola/cancunf
+
+# A/B
+AB_OTA_UPDATER := true
+AB_OTA_PARTITIONS +=
+BOARD_USES_RECOVERY_AS_BOOT := true
+
+# Architecture
+TARGET_ARCH := arm64
+TARGET_ARCH_VARIANT := armv8-a
+TARGET_CPU_ABI := arm64-v8a
+TARGET_CPU_ABI2 :=
+TARGET_CPU_VARIANT := generic
+TARGET_CPU_VARIANT_RUNTIME := cortex-a55
+
+TARGET_2ND_ARCH := arm
+TARGET_2ND_ARCH_VARIANT := armv7-a-neon
+TARGET_2ND_CPU_ABI := armeabi-v7a
+TARGET_2ND_CPU_ABI2 := armeabi
+TARGET_2ND_CPU_VARIANT := generic
+TARGET_2ND_CPU_VARIANT_RUNTIME := cortex-a55
+
+# Bootloader
+TARGET_BOOTLOADER_BOARD_NAME := cancunf
+TARGET_NO_BOOTLOADER := true
+
+# Display
+TARGET_SCREEN_DENSITY := 400
+
+# Kernel
+BOARD_BOOTIMG_HEADER_VERSION := 4
+BOARD_KERNEL_BASE := 0x3fff8000
+BOARD_KERNEL_CMDLINE := bootopt=64S3,32N2,64N2 loglevel=4 initcall_debug=0
+BOARD_KERNEL_PAGESIZE := 4096
+BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOTIMG_HEADER_VERSION)
+BOARD_KERNEL_IMAGE_NAME := Image
+BOARD_INCLUDE_DTB_IN_BOOTIMG := true
+BOARD_KERNEL_SEPARATED_DTBO := true
+TARGET_KERNEL_CONFIG := cancunf_defconfig
+TARGET_KERNEL_SOURCE := kernel/motorola/cancunf
+
+# Kernel - prebuilt
+TARGET_FORCE_PREBUILT_KERNEL := true
+ifeq ($(TARGET_FORCE_PREBUILT_KERNEL),true)
+TARGET_PREBUILT_KERNEL := $(DEVICE_PATH)/prebuilts/kernel
+TARGET_PREBUILT_DTB := $(DEVICE_PATH)/prebuilts/dtb.img
+BOARD_MKBOOTIMG_ARGS += --dtb $(TARGET_PREBUILT_DTB)
+BOARD_INCLUDE_DTB_IN_BOOTIMG :=
+BOARD_PREBUILT_DTBOIMAGE := $(DEVICE_PATH)/prebuilts/dtbo.img
+BOARD_KERNEL_SEPARATED_DTBO :=
+endif
+
+# Partitions
+BOARD_FLASH_BLOCK_SIZE := 262144 # (BOARD_KERNEL_PAGESIZE * 64)
+BOARD_BOOTIMAGE_PARTITION_SIZE := 67108864
+BOARD_DTBOIMG_PARTITION_SIZE := 8388608
+BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 67108864
+BOARD_SUPER_PARTITION_SIZE := 9126805504 # TODO: Fix hardcoded value
+BOARD_SUPER_PARTITION_GROUPS := motorola_dynamic_partitions
+BOARD_MOTOROLA_DYNAMIC_PARTITIONS_PARTITION_LIST :=
+BOARD_MOTOROLA_DYNAMIC_PARTITIONS_SIZE := 9122611200 # TODO: Fix hardcoded value
+
+# Platform
+TARGET_BOARD_PLATFORM := mt6855
+
+# Properties
+TARGET_SYSTEM_PROP += $(DEVICE_PATH)/system.prop
+TARGET_VENDOR_PROP += $(DEVICE_PATH)/vendor.prop
+TARGET_PRODUCT_PROP += $(DEVICE_PATH)/product.prop
+TARGET_SYSTEM_EXT_PROP += $(DEVICE_PATH)/system_ext.prop
+TARGET_ODM_PROP += $(DEVICE_PATH)/odm.prop
+TARGET_ODM_DLKM_PROP += $(DEVICE_PATH)/odm_dlkm.prop
+TARGET_VENDOR_DLKM_PROP += $(DEVICE_PATH)/vendor_dlkm.prop
+
+# Recovery
+TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/rootdir/etc/fstab.enablezramwb
+TARGET_RECOVERY_PIXEL_FORMAT := BGRA_8888
+TARGET_USERIMAGES_USE_EXT4 := true
+TARGET_USERIMAGES_USE_F2FS := true
+
+# Security patch level
+VENDOR_SECURITY_PATCH := 2025-03-01
+
+# Verified Boot
+BOARD_AVB_ENABLE := true
+BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --flags 3
+BOARD_AVB_VENDOR_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem
+BOARD_AVB_VENDOR_BOOT_ALGORITHM := SHA256_RSA4096
+BOARD_AVB_VENDOR_BOOT_ROLLBACK_INDEX := 1
+BOARD_AVB_VENDOR_BOOT_ROLLBACK_INDEX_LOCATION := 1
+
+# VINTF
+DEVICE_MANIFEST_FILE += $(DEVICE_PATH)/manifest.xml
+
+# Inherit the proprietary files
+include vendor/motorola/cancunf/BoardConfigVendor.mk
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..75708f9
--- /dev/null
+++ b/README.md
@@ -0,0 +1,14 @@
+# Android device tree for motorola moto g54 5G (cancunf)
+
+```
+#
+# Copyright (C) 2025 The LineageOS Project
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+```
+
+
+# Motorola G64 (cancunf) Linage OS compaitable device tree
+Linage OS compaitable device tree for Motorola G64 Cancunf made with dumpyara from Android 15 Build V1TDS35H.83-20-5-2
+kernel => Stock
diff --git a/aospdtg.log b/aospdtg.log
new file mode 100644
index 0000000..ec15081
Binary files /dev/null and b/aospdtg.log differ
diff --git a/device.mk b/device.mk
new file mode 100644
index 0000000..3ced604
--- /dev/null
+++ b/device.mk
@@ -0,0 +1,110 @@
+#
+# Copyright (C) 2025 The LineageOS Project
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+# Enable updating of APEXes
+$(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk)
+
+# A/B
+$(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota.mk)
+
+PRODUCT_PACKAGES += \
+ android.hardware.boot@1.2-impl \
+ android.hardware.boot@1.2-impl.recovery \
+ android.hardware.boot@1.2-service
+
+PRODUCT_PACKAGES += \
+ update_engine \
+ update_engine_sideload \
+ update_verifier
+
+PRODUCT_PACKAGES += \
+ checkpoint_gc \
+ otapreopt_script
+
+# API levels
+PRODUCT_SHIPPING_API_LEVEL := 33
+
+# fastbootd
+PRODUCT_PACKAGES += \
+ android.hardware.fastboot@1.1-impl-mock \
+ fastbootd
+
+# Health
+PRODUCT_PACKAGES += \
+ android.hardware.health@2.1-impl \
+ android.hardware.health@2.1-service
+
+# Overlays
+PRODUCT_ENFORCE_RRO_TARGETS := *
+
+# Partitions
+PRODUCT_USE_DYNAMIC_PARTITIONS := true
+
+# Product characteristics
+PRODUCT_CHARACTERISTICS := default
+
+# Rootdir
+PRODUCT_PACKAGES += \
+ apanic_annotate.sh \
+ apanic_copy.sh \
+ apanic_mtk.sh \
+ apanic_save.sh \
+ hardware_revisions.sh \
+ init.insmod.sh \
+ init.mmi.backup.trustlet.sh \
+ init.mmi.block_perm.sh \
+ init.mmi.boot.sh \
+ init.mmi.modem-rfs.sh \
+ init.mmi.modules.sh \
+ init.mmi.shutdown.sh \
+ init.mmi.touch.sh \
+ init.mmi.usb.sh \
+ init.oem.fingerprint2.sh \
+ init.oem.hw.sh \
+ pstore_annotate.sh \
+ vendor.mmi.cxp.sh \
+
+PRODUCT_PACKAGES += \
+ fstab.enablezramwb \
+ apanic.rc \
+ factory_init.connectivity.common.rc \
+ factory_init.connectivity.rc \
+ factory_init.project.rc \
+ factory_init.rc \
+ init.aee.rc \
+ init.cgroup.rc \
+ init.connectivity.common.rc \
+ init.connectivity.rc \
+ init.mmi.backup.trustlet.rc \
+ init.mmi.chipset.rc \
+ init.mmi.overlay.rc \
+ init.mmi.rc \
+ init.mmi.tcmd.rc \
+ init.mmi.usb.configfs.rc \
+ init.modem.rc \
+ init.mt6855.rc \
+ init.mt6855.usb.rc \
+ init.mtkgki.rc \
+ init.project.rc \
+ init.sensor_2_0.rc \
+ init_connectivity.rc \
+ meta_init.connectivity.common.rc \
+ meta_init.connectivity.rc \
+ meta_init.modem.rc \
+ meta_init.project.rc \
+ meta_init.rc \
+ meta_init.vendor.rc \
+ multi_init.rc \
+
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/rootdir/etc/fstab.enablezramwb:$(TARGET_VENDOR_RAMDISK_OUT)/first_stage_ramdisk/fstab.enablezramwb
+
+# Soong namespaces
+PRODUCT_SOONG_NAMESPACES += \
+ $(LOCAL_PATH)
+
+# Inherit the proprietary files
+$(call inherit-product, vendor/motorola/cancunf/cancunf-vendor.mk)
diff --git a/extract-files.sh b/extract-files.sh
new file mode 100644
index 0000000..b4e682f
--- /dev/null
+++ b/extract-files.sh
@@ -0,0 +1,61 @@
+#!/bin/bash
+#
+# Copyright (C) 2016 The CyanogenMod Project
+# Copyright (C) 2017-2020 The LineageOS Project
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+set -e
+
+DEVICE=cancunf
+VENDOR=motorola
+
+# Load extract_utils and do some sanity checks
+MY_DIR="${BASH_SOURCE%/*}"
+if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi
+
+ANDROID_ROOT="${MY_DIR}/../../.."
+
+HELPER="${ANDROID_ROOT}/tools/extract-utils/extract_utils.sh"
+if [ ! -f "${HELPER}" ]; then
+ echo "Unable to find helper script at ${HELPER}"
+ exit 1
+fi
+source "${HELPER}"
+
+# Default to sanitizing the vendor folder before extraction
+CLEAN_VENDOR=true
+
+KANG=
+SECTION=
+
+while [ "${#}" -gt 0 ]; do
+ case "${1}" in
+ -n | --no-cleanup )
+ CLEAN_VENDOR=false
+ ;;
+ -k | --kang )
+ KANG="--kang"
+ ;;
+ -s | --section )
+ SECTION="${2}"; shift
+ CLEAN_VENDOR=false
+ ;;
+ * )
+ SRC="${1}"
+ ;;
+ esac
+ shift
+done
+
+if [ -z "${SRC}" ]; then
+ SRC="adb"
+fi
+
+# Initialize the helper
+setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" false "${CLEAN_VENDOR}"
+
+extract "${MY_DIR}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}"
+
+"${MY_DIR}/setup-makefiles.sh"
diff --git a/lineage_cancunf.mk b/lineage_cancunf.mk
new file mode 100644
index 0000000..1081d17
--- /dev/null
+++ b/lineage_cancunf.mk
@@ -0,0 +1,28 @@
+#
+# Copyright (C) 2025 The LineageOS Project
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+# Inherit from those products. Most specific first.
+$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
+
+# Inherit some common Lineage stuff.
+$(call inherit-product, vendor/lineage/config/common_full_phone.mk)
+
+# Inherit from cancunf device
+$(call inherit-product, device/motorola/cancunf/device.mk)
+
+PRODUCT_DEVICE := cancunf
+PRODUCT_NAME := lineage_cancunf
+PRODUCT_BRAND := motorola
+PRODUCT_MODEL := moto g54 5G
+PRODUCT_MANUFACTURER := motorola
+
+PRODUCT_GMS_CLIENTID_BASE := android-motorola
+
+PRODUCT_BUILD_PROP_OVERRIDES += \
+ PRIVATE_BUILD_DESC="cancunf_g_sys-user 15 V1TDS35M.83-20-5-2 6562e release-keys"
+
+BUILD_FINGERPRINT := motorola/cancunf_g_sys/cancunf:15/V1TDS35M.83-20-5-2/6562e:user/release-keys
diff --git a/manifest.xml b/manifest.xml
new file mode 100644
index 0000000..00a8c2b
--- /dev/null
+++ b/manifest.xml
@@ -0,0 +1,278 @@
+
+
+ android.hardware.audio
+ hwbinder
+ @7.0::IDevicesFactory/default
+
+
+ android.hardware.audio.effect
+ hwbinder
+ @7.0::IEffectsFactory/default
+
+
+ android.hardware.bluetooth
+ hwbinder
+ @1.1::IBluetoothHci/default
+
+
+ android.hardware.bluetooth.audio
+ hwbinder
+ @2.1::IBluetoothAudioProvidersFactory/default
+
+
+ android.hardware.boot
+ hwbinder
+ @1.0::IBootControl/default
+
+
+ android.hardware.gatekeeper
+ hwbinder
+ @1.0::IGatekeeper/default
+
+
+ android.hardware.graphics.allocator
+ hwbinder
+ @4.0::IAllocator/default
+
+
+ android.hardware.graphics.composer
+ hwbinder
+ @2.1::IComposer/default
+
+
+ android.hardware.graphics.mapper
+ passthrough
+ @4.0::IMapper/default
+
+
+ android.hardware.media.omx
+ hwbinder
+ @1.0::IOmx/default
+ @1.0::IOmxStore/default
+
+
+ android.hardware.radio
+ hwbinder
+ @1.2::IRadio/em1
+ @1.2::IRadio/em2
+ @1.2::IRadio/imsAospSlot1
+ @1.2::IRadio/imsAospSlot2
+ @1.2::IRadio/se1
+ @1.2::IRadio/se2
+ @1.2::IRadio/slot1
+ @1.2::IRadio/slot2
+ @1.2::ISap/slot1
+ @1.2::ISap/slot2
+ @1.6::IRadio/em1
+ @1.6::IRadio/em2
+ @1.6::IRadio/imsAospSlot1
+ @1.6::IRadio/imsAospSlot2
+ @1.6::IRadio/se1
+ @1.6::IRadio/se2
+ @1.6::IRadio/slot1
+ @1.6::IRadio/slot2
+
+
+ android.hardware.radio.config
+ hwbinder
+ @1.3::IRadioConfig/default
+
+
+ android.hardware.renderscript
+ passthrough
+ @1.0::IDevice/default
+
+
+ android.hardware.secure_element
+ hwbinder
+ @1.2::ISecureElement/SIM1
+ @1.2::ISecureElement/SIM2
+
+
+ android.hardware.sensors
+ hwbinder
+ @2.0::ISensors/default
+
+
+ android.hardware.soundtrigger
+ hwbinder
+ @2.3::ISoundTriggerHw/default
+
+
+ android.hardware.tetheroffload.config
+ hwbinder
+ @1.0::IOffloadConfig/default
+
+
+ android.hardware.tetheroffload.control
+ hwbinder
+ @1.1::IOffloadControl/default
+
+
+ android.hardware.thermal
+ hwbinder
+ @1.0::IThermal/default
+ @2.0::IThermal/default
+
+
+ com.motorola.hardware.display.touch
+ hwbinder
+ @1.2::IMotTouch/default
+
+
+ motorola.hardware.health
+ hwbinder
+ @2.0::IMotHealth/default
+
+
+ motorola.hardware.health.storage
+ hwbinder
+ @1.0::IMotStorage/default
+
+
+ motorola.hardware.sensorscalibrate
+ hwbinder
+ @1.0::ISensorsCalibrate/default
+
+
+ motorola.hardware.wifi.hostapd
+ hwbinder
+ @1.0::IHostapdMot/default
+
+
+ motorola.hardware.wifi.supplicant
+ hwbinder
+ @1.0::ISupplicantMot/default
+
+
+ vendor.mediatek.hardware.apmonitor
+ hwbinder
+ @2.0::IApmService/apm_hidl_service
+
+
+ vendor.mediatek.hardware.atci
+ hwbinder
+ @1.0::IAtcid/default
+
+
+ vendor.mediatek.hardware.bluetooth.audio
+ hwbinder
+ @2.2::IBluetoothAudioProvidersFactory/default
+
+
+ vendor.mediatek.hardware.camera.atms
+ hwbinder
+ @1.0::IATMs/default
+
+
+ vendor.mediatek.hardware.camera.bgservice
+ hwbinder
+ @1.1::IBGService/internal/0
+
+
+ vendor.mediatek.hardware.camera.isphal
+ hwbinder
+ @1.1::IISPModule/internal/0
+
+
+ vendor.mediatek.hardware.composer_ext
+ hwbinder
+ @1.0::IComposerExt/default
+
+
+ vendor.mediatek.hardware.dmc
+ hwbinder
+ @1.2::IDmcService/dmc_hidl_service
+
+
+ vendor.mediatek.hardware.keymaster_attestation
+ hwbinder
+ @1.1::IKeymasterDevice/default
+
+
+ vendor.mediatek.hardware.mmagent
+ hwbinder
+ @1.1::IMMAgent/default
+
+
+ vendor.mediatek.hardware.mms
+ hwbinder
+ @1.6::IMms/default
+
+
+ vendor.mediatek.hardware.mtkpower
+ hwbinder
+ @1.2::IMtkPerf/default
+ @1.2::IMtkPower/default
+
+
+ vendor.mediatek.hardware.mtkradioex
+ hwbinder
+ @3.0::IMtkRadioEx/imsSlot1
+ @3.0::IMtkRadioEx/imsSlot2
+ @3.0::IMtkRadioEx/mtkAssist1
+ @3.0::IMtkRadioEx/mtkAssist2
+ @3.0::IMtkRadioEx/mtkCap1
+ @3.0::IMtkRadioEx/mtkCap2
+ @3.0::IMtkRadioEx/mtkEm1
+ @3.0::IMtkRadioEx/mtkEm2
+ @3.0::IMtkRadioEx/mtkRcs1
+ @3.0::IMtkRadioEx/mtkRcs2
+ @3.0::IMtkRadioEx/mtkRsu1
+ @3.0::IMtkRadioEx/mtkRsu2
+ @3.0::IMtkRadioEx/mtkSe1
+ @3.0::IMtkRadioEx/mtkSe2
+ @3.0::IMtkRadioEx/mtkSlot1
+ @3.0::IMtkRadioEx/mtkSlot2
+ @3.0::IMtkRadioEx/mtkSmartRatSwitch1
+ @3.0::IMtkRadioEx/mtkSmartRatSwitch2
+
+
+ vendor.mediatek.hardware.netdagent
+ hwbinder
+ @1.0::INetdagent/default
+
+
+ vendor.mediatek.hardware.nvram
+ hwbinder
+ @1.1::INvram/default
+
+
+ vendor.mediatek.hardware.nwk_opt
+ hwbinder
+ @1.0::INwkOpt/default
+
+
+ vendor.mediatek.hardware.pq
+ hwbinder
+ @2.15::IPictureQuality/default
+
+
+ vendor.mediatek.hardware.radio_op
+ hwbinder
+ @3.0::IRadioOp/OpImsRILd1
+ @3.0::IRadioOp/OpImsRILd2
+ @3.0::IRadioOp/slot1
+ @3.0::IRadioOp/slot2
+
+
+ vendor.mediatek.hardware.videotelephony
+ hwbinder
+ @1.0::IVideoTelephony/default
+
+
+ vendor.trustonic.alps.alps_device
+ hwbinder
+ @1.1::IAlps/default
+
+
+ vendor.trustonic.tee
+ hwbinder
+ @1.1::ITee/default
+
+
+ vendor.trustonic.tee.tui
+ hwbinder
+ @1.0::ITui/default
+
+
diff --git a/odm.prop b/odm.prop
new file mode 100644
index 0000000..de64c40
--- /dev/null
+++ b/odm.prop
@@ -0,0 +1 @@
+ro.vendor.qti.va_odm.support=1
diff --git a/odm_dlkm.prop b/odm_dlkm.prop
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/odm_dlkm.prop
@@ -0,0 +1 @@
+
diff --git a/prebuilts/dtb.img b/prebuilts/dtb.img
new file mode 100644
index 0000000..0c29117
Binary files /dev/null and b/prebuilts/dtb.img differ
diff --git a/prebuilts/dtbo.img b/prebuilts/dtbo.img
new file mode 100644
index 0000000..7861673
Binary files /dev/null and b/prebuilts/dtbo.img differ
diff --git a/prebuilts/kernel b/prebuilts/kernel
new file mode 100644
index 0000000..1245835
Binary files /dev/null and b/prebuilts/kernel differ
diff --git a/product.prop b/product.prop
new file mode 100644
index 0000000..4b200f3
--- /dev/null
+++ b/product.prop
@@ -0,0 +1,46 @@
+bluetooth.profile.hid.device.enabled=true
+esim.enable_esim_system_ui_by_default=true
+masterclear.allow_retain_esim_profiles_after_fdr=true
+persist.mot_bt.aptx_cert=true
+persist.rcs.supported=0
+persist.sys.battery_care_dynamic_support=true
+persist.sys.carrier_config_controller_support=true
+persist.vendor.mtk_rcs_ua_support=0
+persist.vendor.mtk_uce_support=0
+persist.vendor.vt.RTPInfo=1
+persist.vendor.vt.supported=1
+persist.wm.extensions.enabled=true
+remote_provisioning.hostname=remoteprovisioning.googleapis.com
+ril.subscription.types=RUIM
+ro.boot.vendor.overlay.theme=com.android.internal.systemui.navbar.threebutton
+ro.com.google.gmsversion=15_202411
+ro.com.google.ime.system_lm_dir=/product/usr/share/ime/google/d3_lms/
+ro.config.alarm_alert=Helium.ogg
+ro.config.notification_sound=Hello.ogg
+ro.config.ringtone=Moto.ogg
+ro.config.ringtone_2=Moto.ogg
+ro.config.support_moto_idle_args_override=true
+ro.config.wallpaper=product/media/wallpapers/default_moto_wallpaper.jpg
+ro.dalvik.vm.enable_uffd_gc=true
+ro.gwfcactivation.disabled_carriers=1187,1779,2119,2120,10000,10013,10021,10022,2525,2526,2527,10029,2024,2025,2027,2028,2029,2031,2534,2538,2539,10012,10028,1492,28,1839
+ro.lenovo.single_hand=1
+ro.mot.build.customerid=global
+ro.mot.data_stall.lowest_time=0
+ro.mot.ota.reserved.space=1024
+ro.opa.eligible_device=true
+ro.postinstall.fstab.prefix=/product
+ro.product.ab_ota_partitions=boot,product,system,system_ext,vendor
+ro.product.build.16k_page.enabled=false
+ro.product.build.no_bionic_page_size_macro=true
+ro.product.cpu.pagesize.max=4096
+ro.product.gms_premier_tier=true
+ro.product.hid_ui=true
+ro.product.property_source_order=product,odm,vendor,system_ext,system
+ro.setupwizard.rotation_locked=true
+ro.support_one_handed_mode=true
+ro.surface_flinger.enable_frame_rate_override=true
+ro.telephony.default_network=26,26
+ro.telephony.esim_slot_id=1
+ro.vendor.audio.call.handsfree.mic.builtin=1
+ro.vendor.radio.imei.sv=25
+setupwizard.theme=glif_v3_light
diff --git a/proprietary-files.txt b/proprietary-files.txt
new file mode 100644
index 0000000..f46e480
--- /dev/null
+++ b/proprietary-files.txt
@@ -0,0 +1,4026 @@
+# Unpinned blobs from cancunf_g_sys-user 15 V1TDS35M.83-20-5-2 6562e release-keys
+
+# Audio
+system_ext/bin/hw/android.hardware.audio.parameter_parser.service
+system_ext/etc/init/android.hardware.audio.parameter_parser.service.rc
+vendor/bin/hw/android.hardware.audio.service.mediatek
+vendor/etc/init/android.hardware.audio.service.mediatek.rc
+vendor/lib/hw/android.hardware.audio.effect@6.0-impl.so
+vendor/lib/hw/android.hardware.audio.effect@7.0-impl.so
+vendor/lib/hw/audio.primary.default.so
+vendor/lib/hw/audio.primary.mediatek.so
+vendor/lib/hw/audio.primary.mt6855.so
+vendor/lib/hw/audio.r_submix.default.so
+vendor/lib/hw/audio.r_submix.mediatek.so
+vendor/lib/hw/audio.r_submix.mt6855.so
+vendor/lib/hw/audio.usb.default.so
+vendor/lib/audio_common-aidl-cpp.so
+vendor/lib/audioclient-types-aidl-cpp.so
+vendor/lib/framework-permission-aidl-cpp.so
+vendor/lib/libalsautils.so
+vendor/lib/libaualgo_azp_wrapper.so
+vendor/lib/libaualgo_foundation.so
+vendor/lib/libaudioclient_aidl_conversion.so
+vendor/lib/libaudiofoundation.so
+vendor/lib/libaudiotoolkit_vendor.so
+vendor/lib/libbwc.so
+vendor/lib/libladder.so
+vendor/lib/libsensorndkbridge.so
+vendor/lib/libshmemcompat.so
+vendor/lib/libshmemutil.so
+vendor/lib/shared-file-region-aidl-cpp.so
+vendor/lib/vendor.mediatek.hardware.audio@6.1.so
+vendor/lib/vendor.mediatek.hardware.audio@7.1.so
+vendor/lib64/hw/android.hardware.audio.effect@6.0-impl.so
+vendor/lib64/hw/android.hardware.audio.effect@7.0-impl.so
+vendor/lib64/hw/audio.primary.default.so
+vendor/lib64/hw/audio.primary.mediatek.so
+vendor/lib64/hw/audio.primary.mt6855.so
+vendor/lib64/hw/audio.r_submix.default.so
+vendor/lib64/hw/audio.r_submix.mediatek.so
+vendor/lib64/hw/audio.r_submix.mt6855.so
+vendor/lib64/hw/audio.usb.default.so
+vendor/lib64/audio_common-aidl-cpp.so
+vendor/lib64/audioclient-types-aidl-cpp.so
+vendor/lib64/framework-permission-aidl-cpp.so
+vendor/lib64/libalsautils.so
+vendor/lib64/libaualgo_azp_wrapper.so
+vendor/lib64/libaualgo_foundation.so
+vendor/lib64/libaudioclient_aidl_conversion.so
+vendor/lib64/libaudiofoundation.so
+vendor/lib64/libaudiotoolkit_vendor.so
+vendor/lib64/libbwc.so
+vendor/lib64/libladder.so
+vendor/lib64/libsensorndkbridge.so
+vendor/lib64/libshmemcompat.so
+vendor/lib64/libshmemutil.so
+vendor/lib64/shared-file-region-aidl-cpp.so
+vendor/lib64/vendor.mediatek.hardware.audio@6.1.so
+vendor/lib64/vendor.mediatek.hardware.audio@7.1.so
+
+# Audio (FX modules)
+vendor/lib/soundfx/libaudiopreprocessing_mtk.so
+vendor/lib/soundfx/libdlbvol.so
+vendor/lib/soundfx/libdynproc.so
+vendor/lib/soundfx/libhapticgenerator.so
+vendor/lib/soundfx/libmsstwrapper.so
+vendor/lib/soundfx/libswdap.so
+vendor/lib/soundfx/libswgamedap.so
+vendor/lib/libdlbpreg.so
+vendor/lib/libdmshal.so
+vendor/lib/libvibrator.so
+vendor/lib64/soundfx/libaudiopreprocessing_mtk.so
+vendor/lib64/soundfx/libdlbvol.so
+vendor/lib64/soundfx/libdynproc.so
+vendor/lib64/soundfx/libhapticgenerator.so
+vendor/lib64/soundfx/libmsstwrapper.so
+vendor/lib64/soundfx/libswdap.so
+vendor/lib64/soundfx/libswgamedap.so
+vendor/lib64/libdlbpreg.so
+vendor/lib64/libdmshal.so
+vendor/lib64/libvibrator.so
+
+# Audio configs
+etc/audio_effects.conf
+etc/audio_effects.xml
+system_ext/etc/a2dp_audio_policy_configuration.xml
+system_ext/etc/a2dp_in_audio_policy_configuration.xml
+system_ext/etc/audio_policy_configuration.xml
+system_ext/etc/audio_policy_configuration_bluetooth_legacy_hal.xml
+system_ext/etc/audio_policy_configuration_stub.xml
+system_ext/etc/audio_policy_engine_configuration.xml
+system_ext/etc/audio_policy_engine_default_stream_volumes.xml
+system_ext/etc/audio_policy_engine_product_strategies.xml
+system_ext/etc/audio_policy_engine_stream_volumes.xml
+system_ext/etc/audio_policy_volumes.xml
+system_ext/etc/bluetooth_audio_policy_configuration.xml
+system_ext/etc/default_volume_tables.xml
+system_ext/etc/hearing_aid_audio_policy_configuration.xml
+system_ext/etc/r_submix_audio_policy_configuration.xml
+system_ext/etc/usb_audio_policy_configuration.xml
+vendor/etc/a2dp_audio_policy_configuration.xml
+vendor/etc/a2dp_in_audio_policy_configuration.xml
+vendor/etc/audio_effects.xml
+vendor/etc/audio_policy_configuration.xml
+vendor/etc/audio_policy_configuration_bluetooth_legacy_hal.xml
+vendor/etc/audio_policy_volumes.xml
+vendor/etc/bluetooth_audio_policy_configuration.xml
+vendor/etc/bluetooth_offload_audio_policy_configuration.xml
+vendor/etc/default_volume_tables.xml
+vendor/etc/r_submix_audio_policy_configuration.xml
+vendor/etc/usb_audio_policy_configuration.xml
+
+# Audio calibration
+vendor/etc/audio_param/AudioParamOptions_mgvi.xml
+vendor/etc/audio_param/AudioParamOptions_vext.xml
+vendor/etc/audio_param/BtInfo_AudioParam.xml
+vendor/etc/audio_param/BtInfo_ParamUnitDesc.xml
+vendor/etc/audio_param/CRSVolUI_AudioParam.xml
+vendor/etc/audio_param/CRSVolUI_ParamUnitDesc.xml
+vendor/etc/audio_param/CRSVol_AudioParam.xml
+vendor/etc/audio_param/CRSVol_ParamUnitDesc.xml
+vendor/etc/audio_param/HpImpedance_AudioParam.xml
+vendor/etc/audio_param/HpImpedance_ParamUnitDesc.xml
+vendor/etc/audio_param/MicInfo_AudioParam.xml
+vendor/etc/audio_param/MicInfo_ParamUnitDesc.xml
+vendor/etc/audio_param/PlaybackACF_AudioParam.xml
+vendor/etc/audio_param/PlaybackACF_ParamUnitDesc.xml
+vendor/etc/audio_param/PlaybackDRC_AudioParam.xml
+vendor/etc/audio_param/PlaybackDRC_ParamUnitDesc.xml
+vendor/etc/audio_param/PlaybackHCF_AudioParam.xml
+vendor/etc/audio_param/PlaybackHCF_ParamUnitDesc.xml
+vendor/etc/audio_param/PlaybackVolAna_AudioParam.xml
+vendor/etc/audio_param/PlaybackVolAna_ParamUnitDesc.xml
+vendor/etc/audio_param/PlaybackVolDigi_AudioParam.xml
+vendor/etc/audio_param/PlaybackVolDigi_ParamUnitDesc.xml
+vendor/etc/audio_param/PlaybackVolUI_AudioParam.xml
+vendor/etc/audio_param/PlaybackVolUI_ParamUnitDesc.xml
+vendor/etc/audio_param/Playback_AudioParam.xml
+vendor/etc/audio_param/Playback_ParamTreeView.xml
+vendor/etc/audio_param/Playback_ParamUnitDesc.xml
+vendor/etc/audio_param/RecordDMNR_AudioParam.xml
+vendor/etc/audio_param/RecordDMNR_ParamUnitDesc.xml
+vendor/etc/audio_param/RecordFIR_AudioParam.xml
+vendor/etc/audio_param/RecordFIR_ParamUnitDesc.xml
+vendor/etc/audio_param/RecordUI_AudioParam.xml
+vendor/etc/audio_param/RecordUI_ParamUnitDesc.xml
+vendor/etc/audio_param/RecordVolUI_AudioParam.xml
+vendor/etc/audio_param/RecordVolUI_ParamUnitDesc.xml
+vendor/etc/audio_param/RecordVol_AudioParam.xml
+vendor/etc/audio_param/RecordVol_ParamUnitDesc.xml
+vendor/etc/audio_param/Record_AudioParam.xml
+vendor/etc/audio_param/Record_ParamTreeView.xml
+vendor/etc/audio_param/Record_ParamUnitDesc.xml
+vendor/etc/audio_param/RingbackVolUI_AudioParam.xml
+vendor/etc/audio_param/RingbackVolUI_ParamUnitDesc.xml
+vendor/etc/audio_param/RingbackVol_AudioParam.xml
+vendor/etc/audio_param/RingbackVol_ParamUnitDesc.xml
+vendor/etc/audio_param/SoundEnhancement_AudioParam.xml
+vendor/etc/audio_param/SoundEnhancement_ParamUnitDesc.xml
+vendor/etc/audio_param/SpeechAcousticShock_AudioParam.xml
+vendor/etc/audio_param/SpeechAcousticShock_ParamUnitDesc.xml
+vendor/etc/audio_param/SpeechDMNR_AudioParam.xml
+vendor/etc/audio_param/SpeechDMNR_ParamUnitDesc.xml
+vendor/etc/audio_param/SpeechEchoRef_AudioParam.xml
+vendor/etc/audio_param/SpeechEchoRef_ParamUnitDesc.xml
+vendor/etc/audio_param/SpeechGeneral_AudioParam.xml
+vendor/etc/audio_param/SpeechGeneral_ParamUnitDesc.xml
+vendor/etc/audio_param/SpeechMagiClarity_AudioParam.xml
+vendor/etc/audio_param/SpeechMagiClarity_ParamUnitDesc.xml
+vendor/etc/audio_param/SpeechNetwork_AudioParam.xml
+vendor/etc/audio_param/SpeechNetwork_ParamUnitDesc.xml
+vendor/etc/audio_param/SpeechUI_AudioParam.xml
+vendor/etc/audio_param/SpeechUI_ParamUnitDesc.xml
+vendor/etc/audio_param/SpeechVolUI_AudioParam.xml
+vendor/etc/audio_param/SpeechVolUI_ParamUnitDesc.xml
+vendor/etc/audio_param/SpeechVol_AudioParam.xml
+vendor/etc/audio_param/SpeechVol_ParamUnitDesc.xml
+vendor/etc/audio_param/Speech_AudioParam.xml
+vendor/etc/audio_param/Speech_ParamTreeView.xml
+vendor/etc/audio_param/Speech_ParamUnitDesc.xml
+vendor/etc/audio_param/USBCall_AudioParam.xml
+vendor/etc/audio_param/USBCall_ParamUnitDesc.xml
+vendor/etc/audio_param/USBDevice_AudioParam.xml
+vendor/etc/audio_param/USBDevice_ParamUnitDesc.xml
+vendor/etc/audio_param/Ultrasound_AudioParam.xml
+vendor/etc/audio_param/Ultrasound_ParamUnitDesc.xml
+vendor/etc/audio_param/UplinkConfiguration_AudioParam.xml
+vendor/etc/audio_param/UplinkConfiguration_ParamUnitDesc.xml
+vendor/etc/audio_param/VoIPDMNR_AudioParam.xml
+vendor/etc/audio_param/VoIPDMNR_ParamUnitDesc.xml
+vendor/etc/audio_param/VoIPGeneral_AudioParam.xml
+vendor/etc/audio_param/VoIPGeneral_ParamUnitDesc.xml
+vendor/etc/audio_param/VoIPUI_AudioParam.xml
+vendor/etc/audio_param/VoIPUI_ParamUnitDesc.xml
+vendor/etc/audio_param/VoIPVolUI_AudioParam.xml
+vendor/etc/audio_param/VoIPVolUI_ParamUnitDesc.xml
+vendor/etc/audio_param/VoIPVol_AudioParam.xml
+vendor/etc/audio_param/VoIPVol_ParamUnitDesc.xml
+vendor/etc/audio_param/VoIP_AudioParam.xml
+vendor/etc/audio_param/VoIP_ParamTreeView.xml
+vendor/etc/audio_param/VoIP_ParamUnitDesc.xml
+vendor/etc/audio_param/VoIPv2DMNR_AudioParam.xml
+vendor/etc/audio_param/VoIPv2DMNR_ParamUnitDesc.xml
+vendor/etc/audio_param/VoIPv2General_AudioParam.xml
+vendor/etc/audio_param/VoIPv2General_ParamUnitDesc.xml
+vendor/etc/audio_param/VoIPv2UI_AudioParam.xml
+vendor/etc/audio_param/VoIPv2UI_ParamUnitDesc.xml
+vendor/etc/audio_param/VoIPv2_AudioParam.xml
+vendor/etc/audio_param/VoIPv2_ParamTreeView.xml
+vendor/etc/audio_param/VoIPv2_ParamUnitDesc.xml
+vendor/etc/audio_param/VoWCommonSetting_AudioParam.xml
+vendor/etc/audio_param/VoWCommonSetting_ParamUnitDesc.xml
+vendor/etc/audio_param/VoWCompatibilityCode_AudioParam.xml
+vendor/etc/audio_param/VoWCompatibilityCode_ParamUnitDesc.xml
+vendor/etc/audio_param/VoWDspAec_AudioParam.xml
+vendor/etc/audio_param/VoWDspAec_ParamUnitDesc.xml
+vendor/etc/audio_param/VoWEngineFeature_AudioParam.xml
+vendor/etc/audio_param/VoWEngineFeature_ParamUnitDesc.xml
+vendor/etc/audio_param/VoWHwVad_AudioParam.xml
+vendor/etc/audio_param/VoWHwVad_ParamUnitDesc.xml
+vendor/etc/audio_param/VoWMicSetting_AudioParam.xml
+vendor/etc/audio_param/VoWMicSetting_ParamUnitDesc.xml
+vendor/etc/audio_param/VoWVoiceCommand_AudioParam.xml
+vendor/etc/audio_param/VoWVoiceCommand_ParamUnitDesc.xml
+vendor/etc/audio_param/VolumeGainMapUL_AudioParam.xml
+vendor/etc/audio_param/VolumeGainMapUL_ParamUnitDesc.xml
+vendor/etc/audio_param/VolumeGainMap_AudioParam.xml
+vendor/etc/audio_param/VolumeGainMap_ParamUnitDesc.xml
+vendor/etc/audio_param/Volume_AudioParam.xml
+vendor/etc/audio_param/Volume_ParamUnitDesc.xml
+
+# Bluetooth
+vendor/bin/hw/android.hardware.bluetooth@1.1-service-mediatek
+vendor/etc/init/android.hardware.bluetooth@1.1-service-mediatek.rc
+vendor/lib/libbluetooth_mtk.so
+vendor/lib/libbt-vendor.so
+vendor/lib/libnvram.so
+vendor/lib/libnvram_sec.so
+vendor/lib64/libbluetooth_mtk.so
+vendor/lib64/libbt-vendor.so
+vendor/lib64/libnvram.so
+vendor/lib64/libnvram_sec.so
+
+# Bluetooth (A2DP)
+vendor/lib/hw/android.hardware.bluetooth.audio@2.0-impl.so
+vendor/lib/hw/android.hardware.bluetooth.audio@2.1-impl.so
+vendor/lib/hw/audio.bluetooth.default.so
+vendor/lib/hw/vendor.mediatek.hardware.bluetooth.audio@2.1-impl.so
+vendor/lib/hw/vendor.mediatek.hardware.bluetooth.audio@2.2-impl.so
+vendor/lib/libbluetooth_audio_session.so
+vendor/lib/libbluetooth_audio_session_mediatek.so
+vendor/lib/vendor.mediatek.hardware.bluetooth.audio@2.1.so
+vendor/lib/vendor.mediatek.hardware.bluetooth.audio@2.2.so
+vendor/lib64/hw/android.hardware.bluetooth.audio@2.0-impl.so
+vendor/lib64/hw/android.hardware.bluetooth.audio@2.1-impl.so
+vendor/lib64/hw/audio.bluetooth.default.so
+vendor/lib64/hw/vendor.mediatek.hardware.bluetooth.audio@2.1-impl.so
+vendor/lib64/hw/vendor.mediatek.hardware.bluetooth.audio@2.2-impl.so
+vendor/lib64/libbluetooth_audio_session.so
+vendor/lib64/libbluetooth_audio_session_mediatek.so
+vendor/lib64/vendor.mediatek.hardware.bluetooth.audio@2.1.so
+vendor/lib64/vendor.mediatek.hardware.bluetooth.audio@2.2.so
+
+# Boot
+vendor/bin/hw/android.hardware.boot@1.2-service
+vendor/etc/init/android.hardware.boot@1.2-service.rc
+vendor/etc/vintf/manifest/android.hardware.boot@1.2.xml
+
+# Camera
+vendor/bin/hw/motorola.hardware.camera.imgtuner.aidl-service
+vendor/etc/init/motorola.hardware.camera.imgtuner.aidl-service.rc
+vendor/etc/vintf/manifest/motorola.hardware.camera.imgtuner.aidl.xml
+vendor/lib/hw/mt6855/vendor.mediatek.hardware.camera.atms@1.0-impl.so
+vendor/lib/hw/mt6855/vendor.mediatek.hardware.camera.bgservice@1.1-impl.so
+vendor/lib/hw/vendor.mediatek.hardware.camera.atms@1.0-impl.so
+vendor/lib/hw/vendor.mediatek.hardware.camera.bgservice@1.1-impl.so
+vendor/lib/mt6855/lib3a.ae.core.so
+vendor/lib/mt6855/lib3a.ae.so
+vendor/lib/mt6855/lib3a.awb.core.so
+vendor/lib/mt6855/lib3a.log.so
+vendor/lib/mt6855/libaiselector.so
+vendor/lib/mt6855/libcam.hal3a.log.so
+vendor/lib/mt6855/libcam.halsensor.hwintegration.so
+vendor/lib/mt6855/libcamalgo.platform2.so
+vendor/lib/mt6855/libcameracustom.lens.so
+vendor/lib/mt6855/libcameracustom.so
+vendor/lib/mt6855/libdpframework.so
+vendor/lib/mt6855/libmtk_drvb.so
+vendor/lib/mt6855/libmtkcam.atmseventmgr.so
+vendor/lib/mt6855/libmtkcam.eventcallback.so
+vendor/lib/mt6855/libmtkcam_debugutils.so
+vendor/lib/mt6855/libmtkcam_metadata.so
+vendor/lib/mt6855/libmtkcam_modulehelper.so
+vendor/lib/mt6855/libmtkcam_stdutils.so
+vendor/lib/mt6855/libmtkcam_sysutils.so
+vendor/lib/mt6855/libmtkcam_tuning_utils.so
+vendor/lib/mt6855/libmtkcam_ulog.so
+vendor/lib/mt6855/libpq_prot.so
+vendor/lib/mt6855/mot_cancunf_hi1634q_mipi_raw_IdxMgr.so
+vendor/lib/mt6855/mot_cancunf_hi1634q_mipi_raw_row_IdxMgr.so
+vendor/lib/mt6855/mot_cancunf_jns_yova_mipi_raw_IdxMgr.so
+vendor/lib/mt6855/mot_cancunf_jns_yova_mipi_raw_row_IdxMgr.so
+vendor/lib/mt6855/mot_cancunf_ov50d_mipi_raw_IdxMgr.so
+vendor/lib/mt6855/mot_cancunf_ov50d_mipi_raw_row_IdxMgr.so
+vendor/lib/mt6855/mot_cancunf_s5k3p9sp04_mipi_raw_IdxMgr.so
+vendor/lib/mt6855/mot_cancunf_s5k3p9sp04_mipi_raw_row_IdxMgr.so
+vendor/lib/mt6855/mot_cancunf_s5k4h7_mipi_raw_IdxMgr.so
+vendor/lib/mt6855/mot_cancunf_s5k4h7_mipi_raw_row_IdxMgr.so
+vendor/lib/mt6855/mot_cancunf_s5kjns_mipi_raw_IdxMgr.so
+vendor/lib/mt6855/mot_cancunf_s5kjns_mipi_raw_row_IdxMgr.so
+vendor/lib/mt6855/mot_cancunf_sc202_mipi_raw_IdxMgr.so
+vendor/lib/mt6855/mot_cancunf_sc202_mipi_raw_row_IdxMgr.so
+vendor/lib/mt6855/mtk000_mipi_raw_IdxMgr.so
+vendor/lib/lib3a.ae.core.so
+vendor/lib/lib3a.ae.so
+vendor/lib/lib3a.awb.core.so
+vendor/lib/lib3a.log.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_ArcSoft_Raw_NV_Capture.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_ArcSoft_Raw_NV_Capture_flash.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_ArcSoft_Raw_NV_Preview.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_ArcSoft_Raw_NV_Preview_flash.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Display_Flash_Capture.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_E2EHDR_Preview.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_E2EHDR_Video.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_EIS_Slow_Motion.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_EIS_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_EIS_Video_1080.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_EIS_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_EIS_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_EIS_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Face_Capture.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Face_Capture_4cell.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Face_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_ITS_Capture.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_LLHDR_Capture.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_LLHDR_Face_Capture.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_P1_YUV.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Panorama.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Scene_3rd_party_Capture.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Scene_3rd_party_Capture_HDR.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Scene_3rd_party_Preview.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Scene_3rd_party_Videocall.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Scene_Capture.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Scene_Capture_4cell.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Scene_Preview.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Scene_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Scene_YUV_Reprocess.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Slow_Motion.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Video_1080.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Video_Capture.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Video_Capture_2X.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Video_Capture_4X.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Video_Capture_8X.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Zoom_Capture_2X.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Zoom_Capture_4X.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Zoom_Capture_8X.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Zoom_Preview_2X.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Zoom_Preview_4X.so
+vendor/lib/libCamera_motcancunfhi1634qmipiraw_Zoom_Preview_8X.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_ArcSoft_Raw_NV_Capture.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_ArcSoft_Raw_NV_Capture_flash.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_ArcSoft_Raw_NV_Preview.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_ArcSoft_Raw_NV_Preview_flash.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Display_Flash_Capture.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_E2EHDR_Preview.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_E2EHDR_Video.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_EIS_Slow_Motion.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_EIS_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_EIS_Video_1080.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_EIS_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_EIS_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_EIS_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Face_Capture.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Face_Capture_4cell.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Face_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_ITS_Capture.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_LLHDR_Capture.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_LLHDR_Face_Capture.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_P1_YUV.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Panorama.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Scene_3rd_party_Capture.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Scene_3rd_party_Capture_HDR.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Scene_3rd_party_Preview.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Scene_3rd_party_Videocall.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Scene_Capture.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Scene_Capture_4cell.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Scene_Preview.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Scene_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Scene_YUV_Reprocess.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Slow_Motion.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Video_1080.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Video_Capture.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Video_Capture_2X.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Video_Capture_4X.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Video_Capture_8X.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Zoom_Capture_2X.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Zoom_Capture_4X.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Zoom_Capture_8X.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Zoom_Preview_2X.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Zoom_Preview_4X.so
+vendor/lib/libCamera_motcancunfhi1634qmipirawrow_Zoom_Preview_8X.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_ArcSoft_Raw_NV_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_ArcSoft_Raw_NV_FaceCapture.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_ArcSoft_Raw_NV_Preview.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Bokeh_Capture_Face_HDR.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Bokeh_Capture_HDR.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_E2EHDR_Preview.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_E2EHDR_Video.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_EIS_Slow_Motion.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_EIS_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_EIS_Video_1080.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_EIS_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_EIS_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_EIS_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Face_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Face_Capture_4cell.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Face_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Flash_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_ITS_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_LLHDR_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_LLHDR_Face_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Night_Vision_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Night_Vision_FaceCapture.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Night_Vision_FacePreview.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Night_Vision_Preview.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_P1_YUV.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Panorama.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_SR_Zoom_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Scene_3rd_party_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Scene_3rd_party_Capture_HDR.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Scene_3rd_party_Preview.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Scene_3rd_party_ZOOM.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Scene_3rd_party_videocall.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Scene_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Scene_Capture_4cell.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Scene_Preview.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Scene_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Scene_YUV_Reprocess.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Slow_Motion.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Video_1080.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Video_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Video_Capture_2X.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Video_Capture_4X.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Video_Capture_8X.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Zoom_Capture_2X.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Zoom_Capture_4X.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Zoom_Capture_8X.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Zoom_Preview_2X.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Zoom_Preview_4X.so
+vendor/lib/libCamera_motcancunfjnsyovamipiraw_Zoom_Preview_8X.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_ArcSoft_Raw_NV_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_ArcSoft_Raw_NV_FaceCapture.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_ArcSoft_Raw_NV_Preview.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Bokeh_Capture_Face_HDR.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Bokeh_Capture_HDR.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_E2EHDR_Preview.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_E2EHDR_Video.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_EIS_Slow_Motion.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_EIS_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_EIS_Video_1080.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_EIS_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_EIS_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_EIS_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Face_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Face_Capture_4cell.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Face_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Flash_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_ITS_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_LLHDR_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_LLHDR_Face_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Night_Vision_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Night_Vision_FaceCapture.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Night_Vision_FacePreview.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Night_Vision_Preview.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_P1_YUV.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Panorama.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_SR_Zoom_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Scene_3rd_party_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Scene_3rd_party_Capture_HDR.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Scene_3rd_party_Preview.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Scene_3rd_party_ZOOM.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Scene_3rd_party_videocall.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Scene_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Scene_Capture_4cell.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Scene_Preview.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Scene_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Scene_YUV_Reprocess.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Slow_Motion.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Video_1080.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Video_Capture.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Video_Capture_2X.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Video_Capture_4X.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Video_Capture_8X.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Zoom_Capture_2X.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Zoom_Capture_4X.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Zoom_Capture_8X.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Zoom_Preview_2X.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Zoom_Preview_4X.so
+vendor/lib/libCamera_motcancunfjnsyovamipirawrow_Zoom_Preview_8X.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_ArcSoft_Raw_NV_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_ArcSoft_Raw_NV_FaceCapture.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_ArcSoft_Raw_NV_Preview.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Bokeh_Capture_Face_HDR.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Bokeh_Capture_HDR.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_E2EHDR_Preview.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_E2EHDR_Video.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_EIS_Slow_Motion.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_EIS_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_EIS_Video_1080.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_EIS_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_EIS_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_EIS_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Face_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Face_Capture_4cell.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Face_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Flash_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_ITS_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_LLHDR_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_LLHDR_Face_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Night_Vision_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Night_Vision_FaceCapture.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Night_Vision_Preview.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_P1_YUV.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Panorama.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_SR_Zoom_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Scene_3rd_party_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Scene_3rd_party_Capture_HDR.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Scene_3rd_party_Capture_SlimVideo2.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Scene_3rd_party_Preview.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Scene_3rd_party_ZOOM.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Scene_3rd_party_videocall.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Scene_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Scene_Capture_4cell.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Scene_Preview.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Scene_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Scene_YUV_Reprocess.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Slow_Motion.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Video_1080.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Video_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Video_Capture_2X.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Video_Capture_4X.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Video_Capture_8X.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Zoom_Capture_2X.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Zoom_Capture_4X.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Zoom_Capture_8X.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Zoom_Preview_2X.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Zoom_Preview_4X.so
+vendor/lib/libCamera_motcancunfov50dmipiraw_Zoom_Preview_8X.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_ArcSoft_Raw_NV_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_ArcSoft_Raw_NV_FaceCapture.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_ArcSoft_Raw_NV_Preview.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Bokeh_Capture_Face_HDR.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Bokeh_Capture_HDR.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_E2EHDR_Preview.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_E2EHDR_Video.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_EIS_Slow_Motion.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_EIS_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_EIS_Video_1080.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_EIS_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_EIS_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_EIS_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Face_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Face_Capture_4cell.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Face_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Flash_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_ITS_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_LLHDR_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_LLHDR_Face_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Night_Vision_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Night_Vision_FaceCapture.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Night_Vision_Preview.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_P1_YUV.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Panorama.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_SR_Zoom_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Scene_3rd_party_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Scene_3rd_party_Capture_HDR.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Scene_3rd_party_Capture_SlimVideo2.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Scene_3rd_party_Preview.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Scene_3rd_party_ZOOM.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Scene_3rd_party_videocall.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Scene_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Scene_Capture_4cell.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Scene_Preview.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Scene_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Scene_YUV_Reprocess.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Slow_Motion.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Video_1080.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Video_Capture.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Video_Capture_2X.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Video_Capture_4X.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Video_Capture_8X.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Zoom_Capture_2X.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Zoom_Capture_4X.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Zoom_Capture_8X.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Zoom_Preview_2X.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Zoom_Preview_4X.so
+vendor/lib/libCamera_motcancunfov50dmipirawrow_Zoom_Preview_8X.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_ArcSoft_Raw_NV_Capture.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_ArcSoft_Raw_NV_Capture_flash.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_ArcSoft_Raw_NV_Preview.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_ArcSoft_Raw_NV_Preview_flash.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Bokeh_Capture_HDR.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Display_Flash_Big_Face_Capture.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Display_Flash_Capture.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_E2EHDR_Preview.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_E2EHDR_Video.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_EIS_Slow_Motion.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_EIS_Video_1080.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_EIS_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_EIS_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_EIS_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Face_Capture.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Face_Capture_4cell.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Face_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_ITS_Capture.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_LLHDR_Capture.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_LLHDR_Face_Capture.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_P1_YUV.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Panorama.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Scene_3rd_party_Capture.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Scene_3rd_party_Capture_HDR.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Scene_3rd_party_Preview.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Scene_3rd_party_Videocall.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Scene_Capture.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Scene_Capture_4cell.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Scene_Preview.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Scene_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Scene_YUV_Reprocess.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Slow_Motion.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Video_1080.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Video_Capture.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Video_Capture_2X.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Video_Capture_4X.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Video_Capture_8X.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipiraw_Zoom_Capture_2X.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_ArcSoft_Raw_NV_Capture.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_ArcSoft_Raw_NV_Capture_flash.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_ArcSoft_Raw_NV_Preview.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_ArcSoft_Raw_NV_Preview_flash.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Bokeh_Capture_HDR.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Display_Flash_Big_Face_Capture.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Display_Flash_Capture.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_E2EHDR_Preview.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_E2EHDR_Video.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_EIS_Slow_Motion.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_EIS_Video_1080.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_EIS_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_EIS_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_EIS_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Face_Capture.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Face_Capture_4cell.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Face_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_ITS_Capture.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_LLHDR_Capture.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_LLHDR_Face_Capture.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_P1_YUV.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Panorama.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Scene_3rd_party_Capture.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Scene_3rd_party_Capture_HDR.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Scene_3rd_party_Preview.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Scene_3rd_party_Videocall.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Scene_Capture.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Scene_Capture_4cell.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Scene_Preview.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Scene_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Scene_YUV_Reprocess.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Slow_Motion.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Video_1080.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Video_Capture.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Video_Capture_2X.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Video_Capture_4X.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Video_Capture_8X.so
+vendor/lib/libCamera_motcancunfs5k3p9sp04mipirawrow_Zoom_Capture_2X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_ArcSoft_Raw_NV_Capture.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_ArcSoft_Raw_NV_FaceCapture.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_ArcSoft_Raw_NV_Preview.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Bokeh_Capture.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_E2EHDR_Preview.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_E2EHDR_Video.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_EIS_Slow_Motion.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_EIS_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_EIS_Video_1080.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_EIS_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_EIS_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_EIS_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Face_Capture.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Face_Capture_4cell.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Flash_Capture.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Flash_Face_Preview.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_LLHDR_Capture.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_LLHDR_Face_Capture.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_P1_YUV.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Panorama.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Scene_Capture.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Scene_Capture_4cell.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Scene_Preview.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Scene_YUV_Reprocess.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Slow_Motion.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Video_1080.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Video_Capture.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Video_Capture_2X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Video_Capture_4X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Video_Capture_8X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Zoom_Capture_2X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Zoom_Capture_4X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Zoom_Capture_8X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Zoom_Preview_2X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Zoom_Preview_4X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipiraw_Zoom_Preview_8X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_ArcSoft_Raw_NV_Capture.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_ArcSoft_Raw_NV_FaceCapture.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_ArcSoft_Raw_NV_Preview.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Bokeh_Capture.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_E2EHDR_Preview.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_E2EHDR_Video.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_EIS_Slow_Motion.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_EIS_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_EIS_Video_1080.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_EIS_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_EIS_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_EIS_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Face_Capture.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Face_Capture_4cell.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Flash_Capture.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Flash_Face_Preview.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_LLHDR_Capture.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_LLHDR_Face_Capture.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_P1_YUV.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Panorama.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Scene_Capture.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Scene_Capture_4cell.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Scene_Preview.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Scene_YUV_Reprocess.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Slow_Motion.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Video_1080.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Video_Capture.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Video_Capture_2X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Video_Capture_4X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Video_Capture_8X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Zoom_Capture_2X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Zoom_Capture_4X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Zoom_Capture_8X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Zoom_Preview_2X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Zoom_Preview_4X.so
+vendor/lib/libCamera_motcancunfs5k4h7mipirawrow_Zoom_Preview_8X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_ArcSoft_Raw_NV_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_ArcSoft_Raw_NV_FaceCapture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_ArcSoft_Raw_NV_Preview.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Bokeh_Capture_Face_HDR.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Bokeh_Capture_HDR.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_E2EHDR_Preview.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_E2EHDR_Video.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_EIS_Slow_Motion.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_EIS_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_EIS_Video_1080.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_EIS_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_EIS_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_EIS_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Face_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Face_Capture_4cell.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Face_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Flash_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_ITS_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_LLHDR_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_LLHDR_Face_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Night_Vision_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Night_Vision_FaceCapture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Night_Vision_FacePreview.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Night_Vision_Preview.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_P1_YUV.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Panorama.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_SR_Zoom_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Scene_3rd_party_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Scene_3rd_party_Capture_HDR.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Scene_3rd_party_Preview.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Scene_3rd_party_ZOOM.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Scene_3rd_party_videocall.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Scene_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Scene_Capture_4cell.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Scene_Preview.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Scene_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Scene_YUV_Reprocess.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Slow_Motion.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Video_1080.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Video_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Video_Capture_2X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Video_Capture_4X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Video_Capture_8X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Zoom_Capture_2X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Zoom_Capture_4X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Zoom_Capture_8X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Zoom_Preview_2X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Zoom_Preview_4X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipiraw_Zoom_Preview_8X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_ArcSoft_Raw_NV_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_ArcSoft_Raw_NV_FaceCapture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_ArcSoft_Raw_NV_Preview.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Bokeh_Capture_Face_HDR.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Bokeh_Capture_HDR.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_E2EHDR_Preview.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_E2EHDR_Video.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_EIS_Slow_Motion.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_EIS_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_EIS_Video_1080.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_EIS_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_EIS_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_EIS_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Face_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Face_Capture_4cell.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Face_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Flash_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_ITS_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_LLHDR_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_LLHDR_Face_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Night_Vision_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Night_Vision_FaceCapture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Night_Vision_FacePreview.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Night_Vision_Preview.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_P1_YUV.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Panorama.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_SR_Zoom_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Scene_3rd_party_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Scene_3rd_party_Capture_HDR.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Scene_3rd_party_Preview.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Scene_3rd_party_ZOOM.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Scene_3rd_party_videocall.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Scene_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Scene_Capture_4cell.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Scene_Preview.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Scene_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Scene_YUV_Reprocess.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Slow_Motion.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Video_1080.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Video_Capture.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Video_Capture_2X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Video_Capture_4X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Video_Capture_8X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Zoom_Capture_2X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Zoom_Capture_4X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Zoom_Capture_8X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Zoom_Preview_2X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Zoom_Preview_4X.so
+vendor/lib/libCamera_motcancunfs5kjnsmipirawrow_Zoom_Preview_8X.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_50_Capture.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_ArcSoft_Raw_NV_Capture.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_ArcSoft_Raw_NV_Preview.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Bokeh_Capture.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_E2EHDR_Preview.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_E2EHDR_Video.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_EIS_Slow_Motion.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_EIS_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_EIS_Video_1080.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_EIS_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_EIS_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_EIS_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Face_Capture.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Face_Capture_4cell.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Face_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Flash_Capture.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_LLHDR_Capture.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_LLHDR_Face_Capture.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Moto_Spot_Video.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Night_Vision_Capture.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_P1_YUV.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Panorama.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Scene_3rd_party_Preview.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Scene_Capture.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Scene_Capture_4cell.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Scene_Preview.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Scene_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Scene_YUV_Reprocess.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Slow_Motion.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Video_1080.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Video_Capture.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Video_Capture_2X.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Video_Capture_4X.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Video_Capture_8X.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Zoom_Capture_2X.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Zoom_Capture_4X.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Zoom_Capture_8X.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Zoom_Preview_2X.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Zoom_Preview_4X.so
+vendor/lib/libCamera_motcancunfsc202mipiraw_Zoom_Preview_8X.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_50_Capture.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_ArcSoft_Raw_NV_Capture.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_ArcSoft_Raw_NV_Preview.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Bokeh_Capture.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_E2EHDR_Preview.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_E2EHDR_Video.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_EIS_Slow_Motion.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_EIS_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_EIS_Video_1080.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_EIS_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_EIS_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_EIS_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Face_Capture.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Face_Capture_4cell.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Face_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Flash_Capture.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_LLHDR_Capture.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_LLHDR_Face_Capture.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Moto_Spot_Video.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Night_Vision_Capture.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_P1_YUV.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Panorama.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Scene_3rd_party_Preview.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Scene_Capture.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Scene_Capture_4cell.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Scene_Preview.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Scene_Preview_ZSD.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Scene_YUV_Reprocess.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Slow_Motion.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Slow_Motion_2X.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Video_1080.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Video_1080_2X.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Video_1080_4X.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Video_1080_8X.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Video_Capture.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Video_Capture_2X.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Video_Capture_4X.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Video_Capture_8X.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Zoom_Capture_2X.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Zoom_Capture_4X.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Zoom_Capture_8X.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Zoom_Preview_2X.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Zoom_Preview_4X.so
+vendor/lib/libCamera_motcancunfsc202mipirawrow_Zoom_Preview_8X.so
+vendor/lib/libCamera_mtk000mipiraw_E2EHDR_Preview.so
+vendor/lib/libCamera_mtk000mipiraw_E2EHDR_Video.so
+vendor/lib/libCamera_mtk000mipiraw_Face_Capture.so
+vendor/lib/libCamera_mtk000mipiraw_Flash_Capture.so
+vendor/lib/libCamera_mtk000mipiraw_HDR_Capture.so
+vendor/lib/libCamera_mtk000mipiraw_HDR_Preview.so
+vendor/lib/libCamera_mtk000mipiraw_HDR_Reconfig_Preview.so
+vendor/lib/libCamera_mtk000mipiraw_HDR_Reconfig_Video.so
+vendor/lib/libCamera_mtk000mipiraw_HDR_Video.so
+vendor/lib/libCamera_mtk000mipiraw_N3D_Capture.so
+vendor/lib/libCamera_mtk000mipiraw_N3D_Preview.so
+vendor/lib/libCamera_mtk000mipiraw_N3D_Video.so
+vendor/lib/libCamera_mtk000mipiraw_P1_YUV.so
+vendor/lib/libCamera_mtk000mipiraw_Scene_Capture.so
+vendor/lib/libCamera_mtk000mipiraw_Scene_Capture_4cell.so
+vendor/lib/libCamera_mtk000mipiraw_Scene_Preview.so
+vendor/lib/libCamera_mtk000mipiraw_Scene_Preview_4k.so
+vendor/lib/libCamera_mtk000mipiraw_Scene_Preview_ZSD_Flash.so
+vendor/lib/libCamera_mtk000mipiraw_Video_1080.so
+vendor/lib/libCamera_mtk000mipiraw_Video_4k.so
+vendor/lib/libJpgEncPipe.so
+vendor/lib/libOpenCL.so
+vendor/lib/libSQLiteModule_VER_ALL.so
+vendor/lib/libaedv.so
+vendor/lib/libaiselector.so
+vendor/lib/libcam.hal3a.log.so
+vendor/lib/libcam.halsensor.hwintegration.so
+vendor/lib/libcamalgo.platform2.so
+vendor/lib/libcamalgo.utility.so
+vendor/lib/libcameracustom.lens.so
+vendor/lib/libcameracustom.so
+vendor/lib/libdpframework.so
+vendor/lib/libged.so
+vendor/lib/libgralloc_extra.so
+vendor/lib/libion_mtk.so
+vendor/lib/libion_ulit.so
+vendor/lib/libjpeg-alpha-oal_vendor.so
+vendor/lib/libjpeg-alpha_vendor.so
+vendor/lib/libmtk_drvb.so
+vendor/lib/libmtkcam.atmseventmgr.so
+vendor/lib/libmtkcam.eventcallback.so
+vendor/lib/libmtkcam_debugutils.so
+vendor/lib/libmtkcam_metadata.so
+vendor/lib/libmtkcam_modulehelper.so
+vendor/lib/libmtkcam_stdutils.so
+vendor/lib/libmtkcam_sysutils.so
+vendor/lib/libmtkcam_tuning_utils.so
+vendor/lib/libmtkcam_ulog.so
+vendor/lib/libpq_prot.so
+vendor/lib/mot_cancunf_hi1634q_mipi_raw_IdxMgr.so
+vendor/lib/mot_cancunf_hi1634q_mipi_raw_row_IdxMgr.so
+vendor/lib/mot_cancunf_jns_yova_mipi_raw_IdxMgr.so
+vendor/lib/mot_cancunf_jns_yova_mipi_raw_row_IdxMgr.so
+vendor/lib/mot_cancunf_ov50d_mipi_raw_IdxMgr.so
+vendor/lib/mot_cancunf_ov50d_mipi_raw_row_IdxMgr.so
+vendor/lib/mot_cancunf_s5k3p9sp04_mipi_raw_IdxMgr.so
+vendor/lib/mot_cancunf_s5k3p9sp04_mipi_raw_row_IdxMgr.so
+vendor/lib/mot_cancunf_s5k4h7_mipi_raw_IdxMgr.so
+vendor/lib/mot_cancunf_s5k4h7_mipi_raw_row_IdxMgr.so
+vendor/lib/mot_cancunf_s5kjns_mipi_raw_IdxMgr.so
+vendor/lib/mot_cancunf_s5kjns_mipi_raw_row_IdxMgr.so
+vendor/lib/mot_cancunf_sc202_mipi_raw_IdxMgr.so
+vendor/lib/mot_cancunf_sc202_mipi_raw_row_IdxMgr.so
+vendor/lib/mtk000_mipi_raw_IdxMgr.so
+vendor/lib/vendor.mediatek.hardware.camera.atms@1.0.so
+vendor/lib/vendor.mediatek.hardware.camera.bgservice@1.0.so
+vendor/lib/vendor.mediatek.hardware.camera.bgservice@1.1.so
+vendor/lib/vendor.mediatek.hardware.mmagent@1.0.so
+vendor/lib64/hw/mt6855/android.hardware.camera.provider@2.6-impl-mediatek.so
+vendor/lib64/hw/mt6855/vendor.mediatek.hardware.camera.atms@1.0-impl.so
+vendor/lib64/hw/mt6855/vendor.mediatek.hardware.camera.bgservice@1.1-impl.so
+vendor/lib64/hw/mt6855/vendor.mediatek.hardware.camera.isphal@1.0-impl.so
+vendor/lib64/hw/mt6855/vendor.mediatek.hardware.camera.isphal@1.1-impl.so
+vendor/lib64/hw/mt6855/vendor.mediatek.hardware.camera.lomoeffect@1.0-impl.so
+vendor/lib64/hw/vendor.mediatek.hardware.camera.atms@1.0-impl.so
+vendor/lib64/hw/vendor.mediatek.hardware.camera.bgservice@1.1-impl.so
+vendor/lib64/hw/vendor.mediatek.hardware.camera.isphal@1.0-impl.so
+vendor/lib64/hw/vendor.mediatek.hardware.camera.isphal@1.1-impl.so
+vendor/lib64/hw/vendor.mediatek.hardware.camera.lomoeffect@1.0-impl.so
+vendor/lib64/mt6855/lib3a.ae.core.so
+vendor/lib64/mt6855/lib3a.ae.so
+vendor/lib64/mt6855/lib3a.ae.stat.so
+vendor/lib64/mt6855/lib3a.af.assist.so
+vendor/lib64/mt6855/lib3a.af.assist.utils.so
+vendor/lib64/mt6855/lib3a.af.core.so
+vendor/lib64/mt6855/lib3a.af.so
+vendor/lib64/mt6855/lib3a.alsflicker.so
+vendor/lib64/mt6855/lib3a.awb.core.so
+vendor/lib64/mt6855/lib3a.ccudrv.so
+vendor/lib64/mt6855/lib3a.ccuif.so
+vendor/lib64/mt6855/lib3a.custom.ae.so
+vendor/lib64/mt6855/lib3a.flash.so
+vendor/lib64/mt6855/lib3a.flicker.so
+vendor/lib64/mt6855/lib3a.gma.so
+vendor/lib64/mt6855/lib3a.lce.so
+vendor/lib64/mt6855/lib3a.log.so
+vendor/lib64/mt6855/lib3a.n3d3a.so
+vendor/lib64/mt6855/lib3a.sensors.color.so
+vendor/lib64/mt6855/lib3a.sensors.flicker.so
+vendor/lib64/mt6855/libSonyIMX230PdafLibrary.so
+vendor/lib64/mt6855/libSonyIMX230PdafLibraryWrapper.so
+vendor/lib64/mt6855/libSonyIMX338PdafLibrary.so
+vendor/lib64/mt6855/libSonyIMX338PdafLibraryWrapper.so
+vendor/lib64/mt6855/libSonyIMX386PdafLibrary.so
+vendor/lib64/mt6855/libSonyIMX386PdafLibraryWrapper.so
+vendor/lib64/mt6855/libSonyIMX519PdafLibrary.so
+vendor/lib64/mt6855/libSonyIMX519PdafLibraryWrapper.so
+vendor/lib64/mt6855/lib_bsscore.so
+vendor/lib64/mt6855/libaiawb_moon.so
+vendor/lib64/mt6855/libaiawb_p1ggm.so
+vendor/lib64/mt6855/libaiawb_sun.so
+vendor/lib64/mt6855/libaiselector.so
+vendor/lib64/mt6855/libcam.afhal.so
+vendor/lib64/mt6855/libcam.chdr.so
+vendor/lib64/mt6855/libcam.feature_utils.so
+vendor/lib64/mt6855/libcam.hal3a.log.so
+vendor/lib64/mt6855/libcam.hal3a.v3.ae.so
+vendor/lib64/mt6855/libcam.hal3a.v3.ai3a.so
+vendor/lib64/mt6855/libcam.hal3a.v3.awb.so
+vendor/lib64/mt6855/libcam.hal3a.v3.fsmgr.so
+vendor/lib64/mt6855/libcam.hal3a.v3.lscMgr.so
+vendor/lib64/mt6855/libcam.hal3a.v3.lsctbl.50.so
+vendor/lib64/mt6855/libcam.hal3a.v3.nvram.50.so
+vendor/lib64/mt6855/libcam.hal3a.v3.platform.so
+vendor/lib64/mt6855/libcam.hal3a.v3.resultpool.so
+vendor/lib64/mt6855/libcam.hal3a.v3.so
+vendor/lib64/mt6855/libcam.halisp.buf.so
+vendor/lib64/mt6855/libcam.halsensor.hwintegration.so
+vendor/lib64/mt6855/libcam.halsensor.so
+vendor/lib64/mt6855/libcam.iopipe.so
+vendor/lib64/mt6855/libcam.pdtblgen.so
+vendor/lib64/mt6855/libcam.tuning.cache.so
+vendor/lib64/mt6855/libcam.utils.sensorprovider.so
+vendor/lib64/mt6855/libcam.vhdr.so
+vendor/lib64/mt6855/libcamalgo.ispfeature.so
+vendor/lib64/mt6855/libcamalgo.lsc.so
+vendor/lib64/mt6855/libcamalgo.mfnr.so
+vendor/lib64/mt6855/libcamalgo.platform2.so
+vendor/lib64/mt6855/libcamdrv_isp.so
+vendor/lib64/mt6855/libcamdrv_tuning_mgr.so
+vendor/lib64/mt6855/libcamdrv_twin.so
+vendor/lib64/mt6855/libcamera.custom.pd_buf_mgr.so
+vendor/lib64/mt6855/libcamera.customae.so
+vendor/lib64/mt6855/libcamera.customaf.so
+vendor/lib64/mt6855/libcamera.customawb.so
+vendor/lib64/mt6855/libcamera.customflk.so
+vendor/lib64/mt6855/libcameracustom.camera.3a.so
+vendor/lib64/mt6855/libcameracustom.camera.isp.so
+vendor/lib64/mt6855/libcameracustom.camera.sensors.so
+vendor/lib64/mt6855/libcameracustom.eis.so
+vendor/lib64/mt6855/libcameracustom.flashlight.so
+vendor/lib64/mt6855/libcameracustom.lens.so
+vendor/lib64/mt6855/libcameracustom.so
+vendor/lib64/mt6855/libdip_drv.so
+vendor/lib64/mt6855/libdip_postproc.so
+vendor/lib64/mt6855/libdpframework.so
+vendor/lib64/mt6855/libeffecthal.base.so
+vendor/lib64/mt6855/libfeature.face.so
+vendor/lib64/mt6855/libfeature.stereo.provider.so
+vendor/lib64/mt6855/libfeature_3dnr.so
+vendor/lib64/mt6855/libfeature_eis.so
+vendor/lib64/mt6855/libfeature_fsc.so
+vendor/lib64/mt6855/libfeature_lmv.so
+vendor/lib64/mt6855/libfeature_rss.so
+vendor/lib64/mt6855/libfeatureiodrv_mem.so
+vendor/lib64/mt6855/libimageio.so
+vendor/lib64/mt6855/libimageio_plat_drv.so
+vendor/lib64/mt6855/libimageio_plat_pipe.so
+vendor/lib64/mt6855/liblpcnr.so
+vendor/lib64/mt6855/libmfllcore.so
+vendor/lib64/mt6855/libmsnr.so
+vendor/lib64/mt6855/libmtk_drvb.so
+vendor/lib64/mt6855/libmtkcam.atmseventmgr.so
+vendor/lib64/mt6855/libmtkcam.debugwrapper.so
+vendor/lib64/mt6855/libmtkcam.eventcallback.so
+vendor/lib64/mt6855/libmtkcam.featurepipe.capture.so
+vendor/lib64/mt6855/libmtkcam.featurepipe.streaming.so
+vendor/lib64/mt6855/libmtkcam.featurepipe.vsdof_util.so
+vendor/lib64/mt6855/libmtkcam.logicalmodule.so
+vendor/lib64/mt6855/libmtkcam_3rdparty.core.so
+vendor/lib64/mt6855/libmtkcam_3rdparty.customer.so
+vendor/lib64/mt6855/libmtkcam_3rdparty.mtk.so
+vendor/lib64/mt6855/libmtkcam_3rdparty.so
+vendor/lib64/mt6855/libmtkcam_calibration_convertor.so
+vendor/lib64/mt6855/libmtkcam_calibration_provider.so
+vendor/lib64/mt6855/libmtkcam_debugutils.so
+vendor/lib64/mt6855/libmtkcam_device3_app.so
+vendor/lib64/mt6855/libmtkcam_device3_hal.so
+vendor/lib64/mt6855/libmtkcam_device3_hidl.so
+vendor/lib64/mt6855/libmtkcam_device3_hidlutils.so
+vendor/lib64/mt6855/libmtkcam_device3_utils.so
+vendor/lib64/mt6855/libmtkcam_devicesessionpolicy.so
+vendor/lib64/mt6855/libmtkcam_diputils.so
+vendor/lib64/mt6855/libmtkcam_exif.so
+vendor/lib64/mt6855/libmtkcam_fdvt.so
+vendor/lib64/mt6855/libmtkcam_featurepolicy.so
+vendor/lib64/mt6855/libmtkcam_featureutils.so
+vendor/lib64/mt6855/libmtkcam_grallocutils.so
+vendor/lib64/mt6855/libmtkcam_hwnode.so
+vendor/lib64/mt6855/libmtkcam_hwutils.so
+vendor/lib64/mt6855/libmtkcam_imem.so
+vendor/lib64/mt6855/libmtkcam_imgbuf.so
+vendor/lib64/mt6855/libmtkcam_mapping_mgr.so
+vendor/lib64/mt6855/libmtkcam_metadata.so
+vendor/lib64/mt6855/libmtkcam_metastore.so
+vendor/lib64/mt6855/libmtkcam_mfb.so
+vendor/lib64/mt6855/libmtkcam_modulehelper.so
+vendor/lib64/mt6855/libmtkcam_pipeline.so
+vendor/lib64/mt6855/libmtkcam_pipeline_fbm.so
+vendor/lib64/mt6855/libmtkcam_pipelinemodel.so
+vendor/lib64/mt6855/libmtkcam_pipelinemodel_adapter.so
+vendor/lib64/mt6855/libmtkcam_pipelinemodel_capture.so
+vendor/lib64/mt6855/libmtkcam_pipelinemodel_isp.so
+vendor/lib64/mt6855/libmtkcam_pipelinemodel_session.so
+vendor/lib64/mt6855/libmtkcam_pipelinemodel_utils.so
+vendor/lib64/mt6855/libmtkcam_pipelinemodel_zsl.so
+vendor/lib64/mt6855/libmtkcam_pipelinepolicy-security.so
+vendor/lib64/mt6855/libmtkcam_pipelinepolicy-smvr.so
+vendor/lib64/mt6855/libmtkcam_pipelinepolicy.so
+vendor/lib64/mt6855/libmtkcam_pipelinepolicy_factory.so
+vendor/lib64/mt6855/libmtkcam_prerelease.so
+vendor/lib64/mt6855/libmtkcam_rsc.so
+vendor/lib64/mt6855/libmtkcam_scenariorecorder.so
+vendor/lib64/mt6855/libmtkcam_stdutils.so
+vendor/lib64/mt6855/libmtkcam_streamutils.so
+vendor/lib64/mt6855/libmtkcam_synchelper.so
+vendor/lib64/mt6855/libmtkcam_sysutils.so
+vendor/lib64/mt6855/libmtkcam_tuning_utils.so
+vendor/lib64/mt6855/libmtkcam_ulog.so
+vendor/lib64/mt6855/libpda_usdriver.so
+vendor/lib64/mt6855/libpq_prot.so
+vendor/lib64/mt6855/libstereoinfoaccessor_vsdof.so
+vendor/lib64/mt6855/mot_cancunf_hi1634q_mipi_raw_IdxMgr.so
+vendor/lib64/mt6855/mot_cancunf_hi1634q_mipi_raw_row_IdxMgr.so
+vendor/lib64/mt6855/mot_cancunf_jns_yova_mipi_raw_IdxMgr.so
+vendor/lib64/mt6855/mot_cancunf_jns_yova_mipi_raw_row_IdxMgr.so
+vendor/lib64/mt6855/mot_cancunf_ov50d_mipi_raw_IdxMgr.so
+vendor/lib64/mt6855/mot_cancunf_ov50d_mipi_raw_row_IdxMgr.so
+vendor/lib64/mt6855/mot_cancunf_s5k3p9sp04_mipi_raw_IdxMgr.so
+vendor/lib64/mt6855/mot_cancunf_s5k3p9sp04_mipi_raw_row_IdxMgr.so
+vendor/lib64/mt6855/mot_cancunf_s5k4h7_mipi_raw_IdxMgr.so
+vendor/lib64/mt6855/mot_cancunf_s5k4h7_mipi_raw_row_IdxMgr.so
+vendor/lib64/mt6855/mot_cancunf_s5kjns_mipi_raw_IdxMgr.so
+vendor/lib64/mt6855/mot_cancunf_s5kjns_mipi_raw_row_IdxMgr.so
+vendor/lib64/mt6855/mot_cancunf_sc202_mipi_raw_IdxMgr.so
+vendor/lib64/mt6855/mot_cancunf_sc202_mipi_raw_row_IdxMgr.so
+vendor/lib64/mt6855/mtk000_mipi_raw_IdxMgr.so
+vendor/lib64/lib3a.ae.core.so
+vendor/lib64/lib3a.ae.so
+vendor/lib64/lib3a.ae.stat.so
+vendor/lib64/lib3a.af.assist.so
+vendor/lib64/lib3a.af.assist.utils.so
+vendor/lib64/lib3a.af.core.so
+vendor/lib64/lib3a.af.so
+vendor/lib64/lib3a.alsflicker.so
+vendor/lib64/lib3a.awb.core.so
+vendor/lib64/lib3a.ccudrv.so
+vendor/lib64/lib3a.ccuif.so
+vendor/lib64/lib3a.custom.ae.so
+vendor/lib64/lib3a.flash.so
+vendor/lib64/lib3a.flicker.so
+vendor/lib64/lib3a.gma.so
+vendor/lib64/lib3a.lce.so
+vendor/lib64/lib3a.log.so
+vendor/lib64/lib3a.n3d3a.so
+vendor/lib64/lib3a.sensors.color.so
+vendor/lib64/lib3a.sensors.flicker.so
+vendor/lib64/libBSTSWAD.so
+vendor/lib64/libBSTbase_share.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_ArcSoft_Raw_NV_Capture.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_ArcSoft_Raw_NV_Capture_flash.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_ArcSoft_Raw_NV_Preview.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_ArcSoft_Raw_NV_Preview_flash.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Display_Flash_Capture.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_E2EHDR_Preview.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_E2EHDR_Video.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_EIS_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_EIS_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_EIS_Video_1080.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_EIS_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_EIS_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_EIS_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Face_Capture.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Face_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Face_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_ITS_Capture.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_LLHDR_Capture.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_LLHDR_Face_Capture.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_P1_YUV.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Panorama.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Scene_3rd_party_Capture.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Scene_3rd_party_Capture_HDR.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Scene_3rd_party_Preview.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Scene_3rd_party_Videocall.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Scene_Capture.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Scene_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Scene_Preview.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Scene_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Scene_YUV_Reprocess.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Video_1080.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Video_Capture.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Video_Capture_2X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Video_Capture_4X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Video_Capture_8X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Zoom_Capture_2X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Zoom_Capture_4X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Zoom_Capture_8X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Zoom_Preview_2X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Zoom_Preview_4X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipiraw_Zoom_Preview_8X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_ArcSoft_Raw_NV_Capture.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_ArcSoft_Raw_NV_Capture_flash.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_ArcSoft_Raw_NV_Preview.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_ArcSoft_Raw_NV_Preview_flash.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Display_Flash_Capture.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_E2EHDR_Preview.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_E2EHDR_Video.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_EIS_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_EIS_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_EIS_Video_1080.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_EIS_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_EIS_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_EIS_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Face_Capture.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Face_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Face_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_ITS_Capture.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_LLHDR_Capture.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_LLHDR_Face_Capture.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_P1_YUV.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Panorama.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Scene_3rd_party_Capture.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Scene_3rd_party_Capture_HDR.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Scene_3rd_party_Preview.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Scene_3rd_party_Videocall.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Scene_Capture.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Scene_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Scene_Preview.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Scene_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Scene_YUV_Reprocess.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Video_1080.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Video_Capture.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Video_Capture_2X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Video_Capture_4X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Video_Capture_8X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Zoom_Capture_2X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Zoom_Capture_4X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Zoom_Capture_8X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Zoom_Preview_2X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Zoom_Preview_4X.so
+vendor/lib64/libCamera_motcancunfhi1634qmipirawrow_Zoom_Preview_8X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_ArcSoft_Raw_NV_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_ArcSoft_Raw_NV_FaceCapture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_ArcSoft_Raw_NV_Preview.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Bokeh_Capture_Face_HDR.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Bokeh_Capture_HDR.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_E2EHDR_Preview.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_E2EHDR_Video.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_EIS_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_EIS_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_EIS_Video_1080.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_EIS_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_EIS_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_EIS_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Face_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Face_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Face_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Flash_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_ITS_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_LLHDR_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_LLHDR_Face_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Night_Vision_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Night_Vision_FaceCapture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Night_Vision_FacePreview.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Night_Vision_Preview.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_P1_YUV.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Panorama.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_SR_Zoom_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Scene_3rd_party_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Scene_3rd_party_Capture_HDR.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Scene_3rd_party_Preview.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Scene_3rd_party_ZOOM.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Scene_3rd_party_videocall.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Scene_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Scene_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Scene_Preview.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Scene_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Scene_YUV_Reprocess.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Video_1080.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Video_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Video_Capture_2X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Video_Capture_4X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Video_Capture_8X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Zoom_Capture_2X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Zoom_Capture_4X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Zoom_Capture_8X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Zoom_Preview_2X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Zoom_Preview_4X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipiraw_Zoom_Preview_8X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_ArcSoft_Raw_NV_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_ArcSoft_Raw_NV_FaceCapture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_ArcSoft_Raw_NV_Preview.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Bokeh_Capture_Face_HDR.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Bokeh_Capture_HDR.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_E2EHDR_Preview.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_E2EHDR_Video.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_EIS_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_EIS_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_EIS_Video_1080.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_EIS_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_EIS_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_EIS_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Face_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Face_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Face_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Flash_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_ITS_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_LLHDR_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_LLHDR_Face_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Night_Vision_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Night_Vision_FaceCapture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Night_Vision_FacePreview.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Night_Vision_Preview.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_P1_YUV.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Panorama.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_SR_Zoom_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Scene_3rd_party_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Scene_3rd_party_Capture_HDR.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Scene_3rd_party_Preview.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Scene_3rd_party_ZOOM.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Scene_3rd_party_videocall.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Scene_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Scene_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Scene_Preview.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Scene_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Scene_YUV_Reprocess.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Video_1080.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Video_Capture.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Video_Capture_2X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Video_Capture_4X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Video_Capture_8X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Zoom_Capture_2X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Zoom_Capture_4X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Zoom_Capture_8X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Zoom_Preview_2X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Zoom_Preview_4X.so
+vendor/lib64/libCamera_motcancunfjnsyovamipirawrow_Zoom_Preview_8X.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_ArcSoft_Raw_NV_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_ArcSoft_Raw_NV_FaceCapture.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_ArcSoft_Raw_NV_Preview.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Bokeh_Capture_Face_HDR.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Bokeh_Capture_HDR.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_E2EHDR_Preview.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_E2EHDR_Video.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_EIS_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_EIS_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_EIS_Video_1080.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_EIS_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_EIS_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_EIS_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Face_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Face_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Face_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Flash_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_ITS_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_LLHDR_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_LLHDR_Face_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Night_Vision_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Night_Vision_FaceCapture.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Night_Vision_Preview.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_P1_YUV.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Panorama.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_SR_Zoom_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Scene_3rd_party_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Scene_3rd_party_Capture_HDR.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Scene_3rd_party_Capture_SlimVideo2.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Scene_3rd_party_Preview.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Scene_3rd_party_ZOOM.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Scene_3rd_party_videocall.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Scene_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Scene_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Scene_Preview.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Scene_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Scene_YUV_Reprocess.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Video_1080.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Video_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Video_Capture_2X.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Video_Capture_4X.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Video_Capture_8X.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Zoom_Capture_2X.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Zoom_Capture_4X.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Zoom_Capture_8X.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Zoom_Preview_2X.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Zoom_Preview_4X.so
+vendor/lib64/libCamera_motcancunfov50dmipiraw_Zoom_Preview_8X.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_ArcSoft_Raw_NV_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_ArcSoft_Raw_NV_FaceCapture.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_ArcSoft_Raw_NV_Preview.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Bokeh_Capture_Face_HDR.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Bokeh_Capture_HDR.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_E2EHDR_Preview.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_E2EHDR_Video.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_EIS_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_EIS_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_EIS_Video_1080.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_EIS_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_EIS_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_EIS_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Face_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Face_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Face_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Flash_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_ITS_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_LLHDR_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_LLHDR_Face_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Night_Vision_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Night_Vision_FaceCapture.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Night_Vision_Preview.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_P1_YUV.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Panorama.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_SR_Zoom_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Scene_3rd_party_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Scene_3rd_party_Capture_HDR.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Scene_3rd_party_Capture_SlimVideo2.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Scene_3rd_party_Preview.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Scene_3rd_party_ZOOM.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Scene_3rd_party_videocall.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Scene_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Scene_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Scene_Preview.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Scene_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Scene_YUV_Reprocess.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Video_1080.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Video_Capture.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Video_Capture_2X.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Video_Capture_4X.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Video_Capture_8X.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Zoom_Capture_2X.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Zoom_Capture_4X.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Zoom_Capture_8X.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Zoom_Preview_2X.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Zoom_Preview_4X.so
+vendor/lib64/libCamera_motcancunfov50dmipirawrow_Zoom_Preview_8X.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_ArcSoft_Raw_NV_Capture.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_ArcSoft_Raw_NV_Capture_flash.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_ArcSoft_Raw_NV_Preview.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_ArcSoft_Raw_NV_Preview_flash.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Bokeh_Capture_HDR.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Display_Flash_Big_Face_Capture.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Display_Flash_Capture.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_E2EHDR_Preview.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_E2EHDR_Video.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_EIS_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_EIS_Video_1080.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_EIS_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_EIS_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_EIS_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Face_Capture.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Face_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Face_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_ITS_Capture.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_LLHDR_Capture.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_LLHDR_Face_Capture.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_P1_YUV.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Panorama.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Scene_3rd_party_Capture.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Scene_3rd_party_Capture_HDR.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Scene_3rd_party_Preview.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Scene_3rd_party_Videocall.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Scene_Capture.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Scene_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Scene_Preview.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Scene_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Scene_YUV_Reprocess.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Video_1080.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Video_Capture.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Video_Capture_2X.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Video_Capture_4X.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Video_Capture_8X.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipiraw_Zoom_Capture_2X.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_ArcSoft_Raw_NV_Capture.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_ArcSoft_Raw_NV_Capture_flash.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_ArcSoft_Raw_NV_Preview.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_ArcSoft_Raw_NV_Preview_flash.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Bokeh_Capture_HDR.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Display_Flash_Big_Face_Capture.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Display_Flash_Capture.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_E2EHDR_Preview.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_E2EHDR_Video.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_EIS_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_EIS_Video_1080.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_EIS_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_EIS_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_EIS_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Face_Capture.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Face_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Face_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_ITS_Capture.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_LLHDR_Capture.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_LLHDR_Face_Capture.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_P1_YUV.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Panorama.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Scene_3rd_party_Capture.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Scene_3rd_party_Capture_HDR.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Scene_3rd_party_Preview.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Scene_3rd_party_Videocall.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Scene_Capture.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Scene_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Scene_Preview.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Scene_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Scene_YUV_Reprocess.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Video_1080.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Video_Capture.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Video_Capture_2X.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Video_Capture_4X.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Video_Capture_8X.so
+vendor/lib64/libCamera_motcancunfs5k3p9sp04mipirawrow_Zoom_Capture_2X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_ArcSoft_Raw_NV_Capture.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_ArcSoft_Raw_NV_FaceCapture.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_ArcSoft_Raw_NV_Preview.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Bokeh_Capture.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_E2EHDR_Preview.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_E2EHDR_Video.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_EIS_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_EIS_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_EIS_Video_1080.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_EIS_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_EIS_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_EIS_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Face_Capture.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Face_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Flash_Capture.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Flash_Face_Preview.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_LLHDR_Capture.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_LLHDR_Face_Capture.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_P1_YUV.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Panorama.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Scene_Capture.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Scene_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Scene_Preview.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Scene_YUV_Reprocess.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Video_1080.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Video_Capture.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Video_Capture_2X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Video_Capture_4X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Video_Capture_8X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Zoom_Capture_2X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Zoom_Capture_4X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Zoom_Capture_8X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Zoom_Preview_2X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Zoom_Preview_4X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipiraw_Zoom_Preview_8X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_ArcSoft_Raw_NV_Capture.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_ArcSoft_Raw_NV_FaceCapture.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_ArcSoft_Raw_NV_Preview.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Bokeh_Capture.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_E2EHDR_Preview.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_E2EHDR_Video.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_EIS_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_EIS_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_EIS_Video_1080.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_EIS_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_EIS_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_EIS_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Face_Capture.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Face_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Flash_Capture.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Flash_Face_Preview.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_LLHDR_Capture.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_LLHDR_Face_Capture.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_P1_YUV.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Panorama.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Scene_Capture.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Scene_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Scene_Preview.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Scene_YUV_Reprocess.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Video_1080.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Video_Capture.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Video_Capture_2X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Video_Capture_4X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Video_Capture_8X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Zoom_Capture_2X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Zoom_Capture_4X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Zoom_Capture_8X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Zoom_Preview_2X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Zoom_Preview_4X.so
+vendor/lib64/libCamera_motcancunfs5k4h7mipirawrow_Zoom_Preview_8X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_ArcSoft_Raw_NV_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_ArcSoft_Raw_NV_FaceCapture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_ArcSoft_Raw_NV_Preview.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Bokeh_Capture_Face_HDR.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Bokeh_Capture_HDR.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_E2EHDR_Preview.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_E2EHDR_Video.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_EIS_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_EIS_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_EIS_Video_1080.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_EIS_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_EIS_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_EIS_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Face_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Face_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Face_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Flash_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_ITS_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_LLHDR_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_LLHDR_Face_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Night_Vision_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Night_Vision_FaceCapture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Night_Vision_FacePreview.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Night_Vision_Preview.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_P1_YUV.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Panorama.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_SR_Zoom_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Scene_3rd_party_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Scene_3rd_party_Capture_HDR.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Scene_3rd_party_Preview.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Scene_3rd_party_ZOOM.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Scene_3rd_party_videocall.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Scene_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Scene_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Scene_Preview.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Scene_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Scene_YUV_Reprocess.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Video_1080.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Video_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Video_Capture_2X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Video_Capture_4X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Video_Capture_8X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Zoom_Capture_2X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Zoom_Capture_4X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Zoom_Capture_8X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Zoom_Preview_2X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Zoom_Preview_4X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipiraw_Zoom_Preview_8X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_ArcSoft_Raw_NV_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_ArcSoft_Raw_NV_FaceCapture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_ArcSoft_Raw_NV_Preview.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Bokeh_Capture_Face_HDR.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Bokeh_Capture_HDR.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_E2EHDR_Preview.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_E2EHDR_Video.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_EIS_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_EIS_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_EIS_Video_1080.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_EIS_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_EIS_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_EIS_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Face_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Face_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Face_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Flash_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_ITS_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_LLHDR_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_LLHDR_Face_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Night_Vision_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Night_Vision_FaceCapture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Night_Vision_FacePreview.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Night_Vision_Preview.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_P1_YUV.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Panorama.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_SR_Zoom_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Scene_3rd_party_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Scene_3rd_party_Capture_HDR.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Scene_3rd_party_Preview.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Scene_3rd_party_ZOOM.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Scene_3rd_party_videocall.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Scene_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Scene_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Scene_Preview.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Scene_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Scene_YUV_Reprocess.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Video_1080.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Video_Capture.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Video_Capture_2X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Video_Capture_4X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Video_Capture_8X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Zoom_Capture_2X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Zoom_Capture_4X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Zoom_Capture_8X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Zoom_Preview_2X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Zoom_Preview_4X.so
+vendor/lib64/libCamera_motcancunfs5kjnsmipirawrow_Zoom_Preview_8X.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_50_Capture.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_ArcSoft_Raw_NV_Capture.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_ArcSoft_Raw_NV_Preview.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Bokeh_Capture.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_E2EHDR_Preview.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_E2EHDR_Video.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_EIS_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_EIS_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_EIS_Video_1080.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_EIS_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_EIS_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_EIS_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Face_Capture.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Face_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Face_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Flash_Capture.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_LLHDR_Capture.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_LLHDR_Face_Capture.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Moto_Spot_Video.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Night_Vision_Capture.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_P1_YUV.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Panorama.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Scene_3rd_party_Preview.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Scene_Capture.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Scene_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Scene_Preview.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Scene_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Scene_YUV_Reprocess.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Video_1080.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Video_Capture.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Video_Capture_2X.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Video_Capture_4X.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Video_Capture_8X.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Zoom_Capture_2X.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Zoom_Capture_4X.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Zoom_Capture_8X.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Zoom_Preview_2X.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Zoom_Preview_4X.so
+vendor/lib64/libCamera_motcancunfsc202mipiraw_Zoom_Preview_8X.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_50_Capture.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_ArcSoft_Raw_NV_Capture.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_ArcSoft_Raw_NV_Preview.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Bokeh_Capture.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_E2EHDR_Preview.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_E2EHDR_Video.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_EIS_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_EIS_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_EIS_Video_1080.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_EIS_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_EIS_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_EIS_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Face_Capture.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Face_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Face_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Flash_Capture.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_LLHDR_Capture.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_LLHDR_Face_Capture.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Moto_Spot_Video.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Night_Vision_Capture.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_P1_YUV.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Panorama.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Scene_3rd_party_Preview.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Scene_Capture.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Scene_Capture_4cell.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Scene_Preview.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Scene_Preview_ZSD.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Scene_YUV_Reprocess.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Slow_Motion.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Slow_Motion_2X.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Video_1080.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Video_1080_2X.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Video_1080_4X.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Video_1080_8X.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Video_Capture.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Video_Capture_2X.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Video_Capture_4X.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Video_Capture_8X.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Zoom_Capture_2X.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Zoom_Capture_4X.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Zoom_Capture_8X.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Zoom_Preview_2X.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Zoom_Preview_4X.so
+vendor/lib64/libCamera_motcancunfsc202mipirawrow_Zoom_Preview_8X.so
+vendor/lib64/libCamera_mtk000mipiraw_E2EHDR_Preview.so
+vendor/lib64/libCamera_mtk000mipiraw_E2EHDR_Video.so
+vendor/lib64/libCamera_mtk000mipiraw_Face_Capture.so
+vendor/lib64/libCamera_mtk000mipiraw_Flash_Capture.so
+vendor/lib64/libCamera_mtk000mipiraw_HDR_Capture.so
+vendor/lib64/libCamera_mtk000mipiraw_HDR_Preview.so
+vendor/lib64/libCamera_mtk000mipiraw_HDR_Reconfig_Preview.so
+vendor/lib64/libCamera_mtk000mipiraw_HDR_Reconfig_Video.so
+vendor/lib64/libCamera_mtk000mipiraw_HDR_Video.so
+vendor/lib64/libCamera_mtk000mipiraw_N3D_Capture.so
+vendor/lib64/libCamera_mtk000mipiraw_N3D_Preview.so
+vendor/lib64/libCamera_mtk000mipiraw_N3D_Video.so
+vendor/lib64/libCamera_mtk000mipiraw_P1_YUV.so
+vendor/lib64/libCamera_mtk000mipiraw_Scene_Capture.so
+vendor/lib64/libCamera_mtk000mipiraw_Scene_Capture_4cell.so
+vendor/lib64/libCamera_mtk000mipiraw_Scene_Preview.so
+vendor/lib64/libCamera_mtk000mipiraw_Scene_Preview_4k.so
+vendor/lib64/libCamera_mtk000mipiraw_Scene_Preview_ZSD_Flash.so
+vendor/lib64/libCamera_mtk000mipiraw_Video_1080.so
+vendor/lib64/libCamera_mtk000mipiraw_Video_4k.so
+vendor/lib64/libJpgEncPipe.so
+vendor/lib64/libOpenCL.so
+vendor/lib64/libSQLiteModule_VER_ALL.so
+vendor/lib64/libSonyIMX230PdafLibrary.so
+vendor/lib64/libSonyIMX230PdafLibraryWrapper.so
+vendor/lib64/libSonyIMX338PdafLibrary.so
+vendor/lib64/libSonyIMX338PdafLibraryWrapper.so
+vendor/lib64/libSonyIMX386PdafLibrary.so
+vendor/lib64/libSonyIMX386PdafLibraryWrapper.so
+vendor/lib64/libSonyIMX519PdafLibrary.so
+vendor/lib64/libSonyIMX519PdafLibraryWrapper.so
+vendor/lib64/lib_bsscore.so
+vendor/lib64/libaedv.so
+vendor/lib64/libaiawb_moon.so
+vendor/lib64/libaiawb_p1ggm.so
+vendor/lib64/libaiawb_sun.so
+vendor/lib64/libaiselector.so
+vendor/lib64/libarcsoft_hdr_detection.so
+vendor/lib64/libarcsoft_high_dynamic_range_v2.so
+vendor/lib64/libarcsoft_portrait_distortion_correction.so
+vendor/lib64/libarcsoft_portrait_super_night_se_raw.so
+vendor/lib64/libarcsoft_portrait_super_night_se_raw_lite.so
+vendor/lib64/libarcsoft_super_night_se_raw.so
+vendor/lib64/libarcsoft_super_night_se_raw_lite.so
+vendor/lib64/libcam.afhal.so
+vendor/lib64/libcam.chdr.so
+vendor/lib64/libcam.feature_utils.so
+vendor/lib64/libcam.hal3a.log.so
+vendor/lib64/libcam.hal3a.v3.ae.so
+vendor/lib64/libcam.hal3a.v3.ai3a.so
+vendor/lib64/libcam.hal3a.v3.awb.so
+vendor/lib64/libcam.hal3a.v3.fsmgr.so
+vendor/lib64/libcam.hal3a.v3.lscMgr.so
+vendor/lib64/libcam.hal3a.v3.lsctbl.50.so
+vendor/lib64/libcam.hal3a.v3.nvram.50.so
+vendor/lib64/libcam.hal3a.v3.platform.so
+vendor/lib64/libcam.hal3a.v3.resultpool.so
+vendor/lib64/libcam.hal3a.v3.so
+vendor/lib64/libcam.halisp.buf.so
+vendor/lib64/libcam.halsensor.hwintegration.so
+vendor/lib64/libcam.halsensor.so
+vendor/lib64/libcam.iopipe.so
+vendor/lib64/libcam.pdtblgen.so
+vendor/lib64/libcam.seninfn3d.so
+vendor/lib64/libcam.tuning.cache.so
+vendor/lib64/libcam.utils.sensorprovider.so
+vendor/lib64/libcam.vhdr.so
+vendor/lib64/libcamalgo.3dnr.so
+vendor/lib64/libcamalgo.dngop.so
+vendor/lib64/libcamalgo.eis.so
+vendor/lib64/libcamalgo.fdft.so
+vendor/lib64/libcamalgo.fsc.so
+vendor/lib64/libcamalgo.gyro.so
+vendor/lib64/libcamalgo.ispfeature.so
+vendor/lib64/libcamalgo.lmv.so
+vendor/lib64/libcamalgo.lsc.so
+vendor/lib64/libcamalgo.mfnr.so
+vendor/lib64/libcamalgo.nr.so
+vendor/lib64/libcamalgo.platform.so
+vendor/lib64/libcamalgo.platform2.so
+vendor/lib64/libcamalgo.utility.so
+vendor/lib64/libcamalgo.warp.so
+vendor/lib64/libcamdrv_isp.so
+vendor/lib64/libcamdrv_tuning_mgr.so
+vendor/lib64/libcamdrv_twin.so
+vendor/lib64/libcamera.custom.pd_buf_mgr.so
+vendor/lib64/libcamera.customae.so
+vendor/lib64/libcamera.customaf.so
+vendor/lib64/libcamera.customawb.so
+vendor/lib64/libcamera.customflk.so
+vendor/lib64/libcameracustom.camera.3a.so
+vendor/lib64/libcameracustom.camera.isp.so
+vendor/lib64/libcameracustom.camera.sensors.so
+vendor/lib64/libcameracustom.eis.so
+vendor/lib64/libcameracustom.flashlight.so
+vendor/lib64/libcameracustom.lens.so
+vendor/lib64/libcameracustom.so
+vendor/lib64/libdip_drv.so
+vendor/lib64/libdip_postproc.so
+vendor/lib64/libdpframework.so
+vendor/lib64/libeffecthal.base.so
+vendor/lib64/libfeature.face.so
+vendor/lib64/libfeature.stereo.provider.so
+vendor/lib64/libfeature_3dnr.so
+vendor/lib64/libfeature_eis.so
+vendor/lib64/libfeature_fsc.so
+vendor/lib64/libfeature_lmv.so
+vendor/lib64/libfeature_rss.so
+vendor/lib64/libfeatureiodrv_mem.so
+vendor/lib64/libged.so
+vendor/lib64/libgralloc_extra.so
+vendor/lib64/libheichal.so
+vendor/lib64/libimagebuffer_wrapper.so
+vendor/lib64/libimageio.so
+vendor/lib64/libimageio_plat_drv.so
+vendor/lib64/libimageio_plat_pipe.so
+vendor/lib64/libion_mtk.so
+vendor/lib64/libion_ulit.so
+vendor/lib64/libjpeg-alpha-oal_vendor.so
+vendor/lib64/libjpeg-alpha_vendor.so
+vendor/lib64/liblpcnr.so
+vendor/lib64/libmfllcore.so
+vendor/lib64/libmpbase.so
+vendor/lib64/libmsnr.so
+vendor/lib64/libmtk_drvb.so
+vendor/lib64/libmtkcam.atmseventmgr.so
+vendor/lib64/libmtkcam.debugwrapper.so
+vendor/lib64/libmtkcam.eventcallback.so
+vendor/lib64/libmtkcam.featurepipe.capture.so
+vendor/lib64/libmtkcam.featurepipe.streaming.so
+vendor/lib64/libmtkcam.featurepipe.vsdof_util.so
+vendor/lib64/libmtkcam.logicalmodule.so
+vendor/lib64/libmtkcam.plugin.tp_supernightraw.so
+vendor/lib64/libmtkcam_3rdparty.core.so
+vendor/lib64/libmtkcam_3rdparty.customer.so
+vendor/lib64/libmtkcam_3rdparty.mtk.so
+vendor/lib64/libmtkcam_3rdparty.so
+vendor/lib64/libmtkcam_calibration_convertor.so
+vendor/lib64/libmtkcam_calibration_provider.so
+vendor/lib64/libmtkcam_cpuctrl_customer.so
+vendor/lib64/libmtkcam_debugutils.so
+vendor/lib64/libmtkcam_device3_app.so
+vendor/lib64/libmtkcam_device3_hal.so
+vendor/lib64/libmtkcam_device3_hidl.so
+vendor/lib64/libmtkcam_device3_hidlutils.so
+vendor/lib64/libmtkcam_device3_utils.so
+vendor/lib64/libmtkcam_devicesessionpolicy.so
+vendor/lib64/libmtkcam_diputils.so
+vendor/lib64/libmtkcam_exif.so
+vendor/lib64/libmtkcam_fdvt.so
+vendor/lib64/libmtkcam_featurepolicy.so
+vendor/lib64/libmtkcam_featureutils.so
+vendor/lib64/libmtkcam_grallocutils.so
+vendor/lib64/libmtkcam_hwnode.so
+vendor/lib64/libmtkcam_hwutils.so
+vendor/lib64/libmtkcam_imem.so
+vendor/lib64/libmtkcam_imgbuf.so
+vendor/lib64/libmtkcam_mapping_mgr.so
+vendor/lib64/libmtkcam_metadata.so
+vendor/lib64/libmtkcam_metastore.so
+vendor/lib64/libmtkcam_mfb.so
+vendor/lib64/libmtkcam_modulehelper.so
+vendor/lib64/libmtkcam_pipeline.so
+vendor/lib64/libmtkcam_pipeline_fbm.so
+vendor/lib64/libmtkcam_pipelinemodel.so
+vendor/lib64/libmtkcam_pipelinemodel_adapter.so
+vendor/lib64/libmtkcam_pipelinemodel_capture.so
+vendor/lib64/libmtkcam_pipelinemodel_isp.so
+vendor/lib64/libmtkcam_pipelinemodel_session.so
+vendor/lib64/libmtkcam_pipelinemodel_utils.so
+vendor/lib64/libmtkcam_pipelinemodel_zsl.so
+vendor/lib64/libmtkcam_pipelinepolicy-aov.so
+vendor/lib64/libmtkcam_pipelinepolicy-security.so
+vendor/lib64/libmtkcam_pipelinepolicy-smvr.so
+vendor/lib64/libmtkcam_pipelinepolicy.so
+vendor/lib64/libmtkcam_pipelinepolicy_factory.so
+vendor/lib64/libmtkcam_prerelease.so
+vendor/lib64/libmtkcam_rsc.so
+vendor/lib64/libmtkcam_scenariorecorder.so
+vendor/lib64/libmtkcam_stdutils.so
+vendor/lib64/libmtkcam_streamutils.so
+vendor/lib64/libmtkcam_synchelper.so
+vendor/lib64/libmtkcam_sysutils.so
+vendor/lib64/libmtkcam_tuning_utils.so
+vendor/lib64/libmtkcam_ulog.so
+vendor/lib64/libmtkisp_metadata.so
+vendor/lib64/libpda_usdriver.so
+vendor/lib64/libpq_prot.so
+vendor/lib64/libstereoinfoaccessor_vsdof.so
+vendor/lib64/libundistort_impl.so
+vendor/lib64/mot_cancunf_hi1634q_mipi_raw_IdxMgr.so
+vendor/lib64/mot_cancunf_hi1634q_mipi_raw_row_IdxMgr.so
+vendor/lib64/mot_cancunf_jns_yova_mipi_raw_IdxMgr.so
+vendor/lib64/mot_cancunf_jns_yova_mipi_raw_row_IdxMgr.so
+vendor/lib64/mot_cancunf_ov50d_mipi_raw_IdxMgr.so
+vendor/lib64/mot_cancunf_ov50d_mipi_raw_row_IdxMgr.so
+vendor/lib64/mot_cancunf_s5k3p9sp04_mipi_raw_IdxMgr.so
+vendor/lib64/mot_cancunf_s5k3p9sp04_mipi_raw_row_IdxMgr.so
+vendor/lib64/mot_cancunf_s5k4h7_mipi_raw_IdxMgr.so
+vendor/lib64/mot_cancunf_s5k4h7_mipi_raw_row_IdxMgr.so
+vendor/lib64/mot_cancunf_s5kjns_mipi_raw_IdxMgr.so
+vendor/lib64/mot_cancunf_s5kjns_mipi_raw_row_IdxMgr.so
+vendor/lib64/mot_cancunf_sc202_mipi_raw_IdxMgr.so
+vendor/lib64/mot_cancunf_sc202_mipi_raw_row_IdxMgr.so
+vendor/lib64/motorola.hardware.camera.imgtuner.aidl-V1-ndk_platform.so
+vendor/lib64/mtk000_mipi_raw_IdxMgr.so
+vendor/lib64/vendor.mediatek.hardware.camera.atms@1.0.so
+vendor/lib64/vendor.mediatek.hardware.camera.bgservice@1.0.so
+vendor/lib64/vendor.mediatek.hardware.camera.bgservice@1.1.so
+vendor/lib64/vendor.mediatek.hardware.camera.frhandler@1.0.so
+vendor/lib64/vendor.mediatek.hardware.camera.isphal@1.0.so
+vendor/lib64/vendor.mediatek.hardware.camera.isphal@1.1.so
+vendor/lib64/vendor.mediatek.hardware.camera.lomoeffect@1.0.so
+vendor/lib64/vendor.mediatek.hardware.camera.postproc@1.0.so
+vendor/lib64/vendor.mediatek.hardware.camera.security@1.0.so
+vendor/lib64/vendor.mediatek.hardware.mmagent@1.0.so
+vendor/lib64/vendor.mediatek.hardware.power@1.1.so
+vendor/lib64/vendor.mediatek.hardware.power@2.0.so
+
+# CAS
+vendor/bin/hw/android.hardware.cas@1.2-service-lazy
+vendor/etc/init/android.hardware.cas@1.2-service-lazy.rc
+vendor/etc/vintf/manifest/android.hardware.cas@1.2-service-lazy.xml
+
+# Display
+lib/com.motorola.hardware.display.panel-V1-ndk.so
+lib/com.motorola.hardware.display.panel@1.0.so
+lib/com.motorola.hardware.display.panel@1.1.so
+lib64/com.motorola.hardware.display.panel-V1-ndk.so
+lib64/com.motorola.hardware.display.panel@1.0.so
+lib64/com.motorola.hardware.display.panel@1.1.so
+system_ext/lib/vendor.mediatek.hardware.pq@2.0.so
+system_ext/lib/vendor.mediatek.hardware.pq@2.1.so
+system_ext/lib/vendor.mediatek.hardware.pq@2.2.so
+system_ext/lib/vendor.mediatek.hardware.pq@2.3.so
+system_ext/lib64/vendor.mediatek.hardware.composer_ext-V1-ndk.so
+system_ext/lib64/vendor.mediatek.hardware.composer_ext@1.0.so
+system_ext/lib64/vendor.mediatek.hardware.pq@2.0.so
+system_ext/lib64/vendor.mediatek.hardware.pq@2.1.so
+system_ext/lib64/vendor.mediatek.hardware.pq@2.2.so
+system_ext/lib64/vendor.mediatek.hardware.pq@2.3.so
+vendor/bin/hw/mt6855/android.hardware.graphics.allocator@4.0-service-mediatek.mt6855
+vendor/bin/hw/android.hardware.graphics.allocator@4.0-service-mediatek.mt6855
+vendor/bin/hw/android.hardware.graphics.composer@2.1-service
+vendor/bin/hw/android.hardware.graphics.composer@2.3-service
+vendor/bin/hw/android.hardware.memtrack-service.mediatek
+vendor/bin/hw/com.motorola.hardware.display.panel@1.2-service
+vendor/bin/hw/com.motorola.hardware.display.touch@1.2-service
+vendor/bin/hw/vendor.mediatek.hardware.mms@1.6-service
+vendor/bin/hw/vendor.mediatek.hardware.pq@2.2-service
+vendor/etc/init/android.hardware.graphics.allocator@4.0-service-mediatek.rc
+vendor/etc/init/android.hardware.graphics.composer@2.1-service.rc
+vendor/etc/init/android.hardware.graphics.composer@2.2-service.rc
+vendor/etc/init/android.hardware.graphics.composer@2.3-service.rc
+vendor/etc/init/android.hardware.graphics.composer@2.4-service.rc
+vendor/etc/init/com.motorola.hardware.display.panel@1.2-service.rc
+vendor/etc/init/com.motorola.hardware.display.touch@1.2-service.rc
+vendor/etc/init/vendor.mediatek.hardware.mms@1.6-service.rc
+vendor/etc/init/vendor.mediatek.hardware.pq@2.2-service.rc
+vendor/etc/vintf/manifest/com.motorola.hardware.display.panel@1.2-service.xml
+vendor/lib/egl/mt6855/libEGL_mtk.so
+vendor/lib/egl/mt6855/libGLESv1_CM_mtk.so
+vendor/lib/egl/mt6855/libGLESv2_mtk.so
+vendor/lib/egl/egl.cfg
+vendor/lib/egl/libEGL_mtk.so
+vendor/lib/egl/libGLES_meow.so
+vendor/lib/egl/libGLESv1_CM_mtk.so
+vendor/lib/egl/libGLESv2_mtk.so
+vendor/lib/egl/libMEOW_data.so
+vendor/lib/egl/libMEOW_gift.so
+vendor/lib/egl/libMEOW_qt.so
+vendor/lib/egl/libMEOW_trace.so
+vendor/lib/hw/mt6855/android.hardware.graphics.mapper@4.0-impl-mediatek.so
+vendor/lib/hw/mt6855/gralloc.rogue.so
+vendor/lib/hw/mt6855/vendor.mediatek.hardware.pq@2.15-impl.so
+vendor/lib/hw/mt6855/vulkan.mtk.so
+vendor/lib/hw/displaypanel.default.so
+vendor/lib/hw/gralloc.default.so
+vendor/lib/hw/gralloc.rogue.so
+vendor/lib/hw/vendor.mediatek.hardware.mms@1.6-impl.so
+vendor/lib/hw/vendor.mediatek.hardware.pq@2.15-impl.so
+vendor/lib/hw/vulkan.mtk.so
+vendor/lib/mt6855/libIMGegl.so
+vendor/lib/mt6855/libPVRMtkutils.so
+vendor/lib/mt6855/libpqparamparser.so
+vendor/lib/mt6855/libpqpconfig.so
+vendor/lib/mt6855/libsrv_um.so
+vendor/lib/mt6855/libufwriter.so
+vendor/lib/mt6855/libusc.so
+vendor/lib/com.motorola.hardware.display.panel@1.0.so
+vendor/lib/libDefaultFpsActor.so
+vendor/lib/libFrameRecord.so
+vendor/lib/libIMGegl.so
+vendor/lib/libNoFpsActor.so
+vendor/lib/libPVRMtkutils.so
+vendor/lib/libgpu_aux.so
+vendor/lib/libgpud.so
+vendor/lib/libgralloc_metadata.so
+vendor/lib/libmml.so
+vendor/lib/libpqframework.so
+vendor/lib/libpqparamparser.so
+vendor/lib/libpqpconfig.so
+vendor/lib/libsrv_um.so
+vendor/lib/libufwriter.so
+vendor/lib/libusc.so
+vendor/lib/vendor.mediatek.hardware.mmagent@1.1.so
+vendor/lib/vendor.mediatek.hardware.mms@1.0.so
+vendor/lib/vendor.mediatek.hardware.mms@1.1.so
+vendor/lib/vendor.mediatek.hardware.mms@1.2.so
+vendor/lib/vendor.mediatek.hardware.mms@1.3.so
+vendor/lib/vendor.mediatek.hardware.mms@1.4.so
+vendor/lib/vendor.mediatek.hardware.mms@1.5.so
+vendor/lib/vendor.mediatek.hardware.mms@1.6.so
+vendor/lib/vendor.mediatek.hardware.pq@2.0.so
+vendor/lib/vendor.mediatek.hardware.pq@2.1.so
+vendor/lib/vendor.mediatek.hardware.pq@2.10.so
+vendor/lib/vendor.mediatek.hardware.pq@2.11.so
+vendor/lib/vendor.mediatek.hardware.pq@2.12.so
+vendor/lib/vendor.mediatek.hardware.pq@2.13.so
+vendor/lib/vendor.mediatek.hardware.pq@2.14.so
+vendor/lib/vendor.mediatek.hardware.pq@2.15.so
+vendor/lib/vendor.mediatek.hardware.pq@2.2.so
+vendor/lib/vendor.mediatek.hardware.pq@2.3.so
+vendor/lib/vendor.mediatek.hardware.pq@2.4.so
+vendor/lib/vendor.mediatek.hardware.pq@2.5.so
+vendor/lib/vendor.mediatek.hardware.pq@2.6.so
+vendor/lib/vendor.mediatek.hardware.pq@2.7.so
+vendor/lib/vendor.mediatek.hardware.pq@2.8.so
+vendor/lib/vendor.mediatek.hardware.pq@2.9.so
+vendor/lib64/egl/mt6855/libEGL_mtk.so
+vendor/lib64/egl/mt6855/libGLESv1_CM_mtk.so
+vendor/lib64/egl/mt6855/libGLESv2_mtk.so
+vendor/lib64/egl/libEGL_mtk.so
+vendor/lib64/egl/libGLES_meow.so
+vendor/lib64/egl/libGLESv1_CM_mtk.so
+vendor/lib64/egl/libGLESv2_mtk.so
+vendor/lib64/egl/libMEOW_data.so
+vendor/lib64/egl/libMEOW_gift.so
+vendor/lib64/egl/libMEOW_qt.so
+vendor/lib64/egl/libMEOW_trace.so
+vendor/lib64/hw/mt6855/android.hardware.graphics.mapper@4.0-impl-mediatek.so
+vendor/lib64/hw/mt6855/gralloc.rogue.so
+vendor/lib64/hw/mt6855/vendor.mediatek.hardware.pq@2.15-impl.so
+vendor/lib64/hw/mt6855/vulkan.mtk.so
+vendor/lib64/hw/displaypanel.default.so
+vendor/lib64/hw/gralloc.default.so
+vendor/lib64/hw/gralloc.rogue.so
+vendor/lib64/hw/hwcomposer.mtk_common.so
+vendor/lib64/hw/vendor.mediatek.hardware.mms@1.6-impl.so
+vendor/lib64/hw/vendor.mediatek.hardware.pq@2.15-impl.so
+vendor/lib64/hw/vulkan.mtk.so
+vendor/lib64/mt6855/libIMGegl.so
+vendor/lib64/mt6855/libPVRMtkutils.so
+vendor/lib64/mt6855/libpqparamparser.so
+vendor/lib64/mt6855/libpqpconfig.so
+vendor/lib64/mt6855/libsrv_um.so
+vendor/lib64/mt6855/libufwriter.so
+vendor/lib64/mt6855/libusc.so
+vendor/lib64/com.motorola.hardware.display.panel@1.0.so
+vendor/lib64/com.motorola.hardware.display.panel@1.1.so
+vendor/lib64/com.motorola.hardware.display.panel@1.2.so
+vendor/lib64/com.motorola.hardware.display.touch@1.0.so
+vendor/lib64/com.motorola.hardware.display.touch@1.1.so
+vendor/lib64/com.motorola.hardware.display.touch@1.2.so
+vendor/lib64/libDefaultFpsActor.so
+vendor/lib64/libFrameRecord.so
+vendor/lib64/libIMGegl.so
+vendor/lib64/libNoFpsActor.so
+vendor/lib64/libPVRMtkutils.so
+vendor/lib64/libcomposer_ext.so
+vendor/lib64/libgpu_aux.so
+vendor/lib64/libgpud.so
+vendor/lib64/libgralloc_metadata.so
+vendor/lib64/libhwc2onfbadapter.so
+vendor/lib64/libmml.so
+vendor/lib64/libpqframework.so
+vendor/lib64/libpqparamparser.so
+vendor/lib64/libpqpconfig.so
+vendor/lib64/libsrv_um.so
+vendor/lib64/libufwriter.so
+vendor/lib64/libusc.so
+vendor/lib64/vendor.mediatek.hardware.composer_ext@1.0.so
+vendor/lib64/vendor.mediatek.hardware.mmagent@1.1.so
+vendor/lib64/vendor.mediatek.hardware.mms@1.0.so
+vendor/lib64/vendor.mediatek.hardware.mms@1.1.so
+vendor/lib64/vendor.mediatek.hardware.mms@1.2.so
+vendor/lib64/vendor.mediatek.hardware.mms@1.3.so
+vendor/lib64/vendor.mediatek.hardware.mms@1.4.so
+vendor/lib64/vendor.mediatek.hardware.mms@1.5.so
+vendor/lib64/vendor.mediatek.hardware.mms@1.6.so
+vendor/lib64/vendor.mediatek.hardware.pq@2.0.so
+vendor/lib64/vendor.mediatek.hardware.pq@2.1.so
+vendor/lib64/vendor.mediatek.hardware.pq@2.10.so
+vendor/lib64/vendor.mediatek.hardware.pq@2.11.so
+vendor/lib64/vendor.mediatek.hardware.pq@2.12.so
+vendor/lib64/vendor.mediatek.hardware.pq@2.13.so
+vendor/lib64/vendor.mediatek.hardware.pq@2.14.so
+vendor/lib64/vendor.mediatek.hardware.pq@2.15.so
+vendor/lib64/vendor.mediatek.hardware.pq@2.2.so
+vendor/lib64/vendor.mediatek.hardware.pq@2.3.so
+vendor/lib64/vendor.mediatek.hardware.pq@2.4.so
+vendor/lib64/vendor.mediatek.hardware.pq@2.5.so
+vendor/lib64/vendor.mediatek.hardware.pq@2.6.so
+vendor/lib64/vendor.mediatek.hardware.pq@2.7.so
+vendor/lib64/vendor.mediatek.hardware.pq@2.8.so
+vendor/lib64/vendor.mediatek.hardware.pq@2.9.so
+
+# DRM
+vendor/bin/hw/android.hardware.drm@1.4-service.clearkey
+vendor/bin/hw/android.hardware.drm@1.4-service.widevine
+vendor/etc/init/android.hardware.drm@1.4-service.clearkey.rc
+vendor/etc/init/android.hardware.drm@1.4-service.widevine.rc
+vendor/etc/vintf/manifest/manifest_android.hardware.drm@1.4-service.clearkey.xml
+vendor/etc/vintf/manifest/manifest_android.hardware.drm@1.4-service.widevine.xml
+vendor/lib/mediacas/libclearkeycasplugin.so
+vendor/lib/mediadrm/libdrmclearkeyplugin.so
+vendor/lib/mediadrm/libmockdrmcryptoplugin.so
+vendor/lib/mediadrm/libwvdrmengine.so
+vendor/lib/liboemcrypto.so
+vendor/lib/libwvhidl.so
+vendor/lib64/mediacas/libclearkeycasplugin.so
+vendor/lib64/mediadrm/libdrmclearkeyplugin.so
+vendor/lib64/mediadrm/libmockdrmcryptoplugin.so
+vendor/lib64/mediadrm/libwvdrmengine.so
+vendor/lib64/liboemcrypto.so
+vendor/lib64/libwvhidl.so
+
+# Fingerprint
+vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-goodixservice
+vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service-chipone
+vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service-fpc
+vendor/etc/init/android.hardware.biometrics.fingerprint@2.1-goodixservice.rc
+vendor/etc/init/android.hardware.biometrics.fingerprint@2.1-service-chipone2.rc
+vendor/etc/init/android.hardware.biometrics.fingerprint@2.1-service-fpc2.rc
+vendor/lib/hw/fingerprint.goodix.default.so
+vendor/lib/com.motorola.hardware.biometric.fingerprint@1.0.so
+vendor/lib/libMcClient.so
+vendor/lib/libgf_ca.so
+vendor/lib/libgf_hal.so
+vendor/lib/libgoodixhwfingerprint.so
+vendor/lib/vendor.goodix.hardware.biometrics.fingerprint@3.0.so
+vendor/lib64/hw/fingerprint.goodix.default.so
+vendor/lib64/com.motorola.hardware.biometric.fingerprint@1.0.so
+vendor/lib64/libMcClient.so
+vendor/lib64/libgf_ca.so
+vendor/lib64/libgf_hal.so
+vendor/lib64/libgoodixhwfingerprint.so
+vendor/lib64/vendor.goodix.hardware.biometrics.fingerprint@3.0.so
+
+# Gatekeeper
+system_ext/lib/vendor.trustonic.tee-V1-ndk.so
+system_ext/lib/vendor.trustonic.tee@1.0.so
+system_ext/lib/vendor.trustonic.tee@1.1.so
+system_ext/lib64/vendor.trustonic.tee-V1-ndk.so
+system_ext/lib64/vendor.trustonic.tee@1.0.so
+system_ext/lib64/vendor.trustonic.tee@1.1.so
+vendor/bin/hw/android.hardware.gatekeeper@1.0-service
+vendor/bin/hw/vendor.trustonic.tee@1.1-service
+vendor/etc/init/android.hardware.gatekeeper@1.0-service.rc
+vendor/etc/init/vendor.trustonic.tee@1.1-service.rc
+vendor/lib/hw/android.hardware.gatekeeper@1.0-impl.so
+vendor/lib/hw/gatekeeper.default.so
+vendor/lib/hw/gatekeeper.trustonic.so
+vendor/lib64/hw/android.hardware.gatekeeper@1.0-impl.so
+vendor/lib64/hw/gatekeeper.default.so
+vendor/lib64/hw/gatekeeper.trustonic.so
+vendor/lib64/vendor.trustonic.tee@1.0.so
+vendor/lib64/vendor.trustonic.tee@1.1.so
+
+# GNSS
+vendor/bin/hw/android.hardware.gnss-service.mediatek
+vendor/etc/init/android.hardware.gnss-service.mediatek.rc
+vendor/lib/hw/gps.default.so
+vendor/lib64/hw/gps.default.so
+
+# GNSS configs
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_ATnT_Mexico.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_ATnT_US.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_Bell_Mobility.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_Blue_Wireless.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_Boost_Mobile.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_C_Spire_NL.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_C_Spire_US.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_Carolina_West_Wireless.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_Claro_Peru.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_Dish.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_Entel_Peru.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_FirstNet.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_Inland_Cellular.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_KDDI.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_MobileNation.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_Movistar_Argentina.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_Movistar_Peru.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_NexTech_Ota.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_Nextel_Communications.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_No_Carrier_ID_LPP_Profile_11.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_No_Carrier_ID_LPP_Profile_7.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_PTCI.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_Pine_Belt.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_SK_Telecom.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_SoftBank.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_Sprint.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_T-Mobile_US.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_TELUS_Mobility.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_Test_SIM1.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_Test_SIM2.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_USC.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_Verizon_Wireless.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_Virgin_Mobile.xml
+vendor/etc/gnss/carrier/agps_profiles_conf2_carrier_nTelos.xml
+vendor/etc/gnss/agps_profiles_conf2.xml
+
+# Health
+lib64/motorola.hardware.health.storage@1.0.so
+vendor/bin/hw/android.hardware.health@2.1-service
+vendor/bin/hw/motorola.hardware.health.storage@1.0-service
+vendor/bin/hw/motorola.hardware.health@2.0-service
+vendor/etc/init/android.hardware.health@2.1-service.rc
+vendor/etc/init/motorola.hardware.health.storage@1.0-service.rc
+vendor/etc/init/motorola.hardware.health@2.0-service.rc
+vendor/etc/vintf/manifest/android.hardware.health@2.1.xml
+vendor/lib64/libmotohid.so
+vendor/lib64/motorola.hardware.health.storage@1.0.so
+vendor/lib64/motorola.hardware.health@2.0.so
+
+# Input (Motorola)
+vendor/bin/hw/motorola.hardware.input@1.1-service
+vendor/etc/init/motorola.hardware.input@1.1-service.rc
+vendor/etc/vintf/manifest/motorola.hardware.input@1.1-service.xml
+vendor/lib64/motorola.hardware.input@1.0.so
+vendor/lib64/motorola.hardware.input@1.1.so
+
+# Keymaster
+vendor/bin/hw/vendor.mediatek.hardware.keymaster_attestation@1.1-service
+vendor/etc/init/vendor.mediatek.hardware.keymaster_attestation@1.1-service.rc
+vendor/lib/hw/kmsetkey.default.so
+vendor/lib/hw/kmsetkey.trustonic.so
+vendor/lib/hw/vendor.mediatek.hardware.keymaster_attestation@1.1-impl.so
+vendor/lib/vendor.mediatek.hardware.keymaster_attestation@1.0.so
+vendor/lib/vendor.mediatek.hardware.keymaster_attestation@1.1.so
+vendor/lib64/hw/kmsetkey.default.so
+vendor/lib64/hw/kmsetkey.trustonic.so
+vendor/lib64/hw/vendor.mediatek.hardware.keymaster_attestation@1.1-impl.so
+vendor/lib64/vendor.mediatek.hardware.keymaster_attestation@1.0.so
+vendor/lib64/vendor.mediatek.hardware.keymaster_attestation@1.1.so
+
+# Light
+vendor/bin/hw/android.hardware.lights-service.mediatek
+
+# Local time
+vendor/lib/hw/local_time.default.so
+vendor/lib64/hw/local_time.default.so
+
+# Media
+etc/seccomp_policy/mediacodec.policy
+lib/graphicbuffersource-aidl-ndk.so
+lib/libmedia_codeclist.so
+lib/libstagefright_aidl_bufferpool2.so
+lib/libstagefright_bufferpool@2.0.1.so
+lib/libstagefright_codecbase.so
+lib/libstagefright_framecapture_utils.so
+lib/libstagefright_graphicbuffersource_aidl.so
+lib/libstagefright_surface_utils.so
+lib64/graphicbuffersource-aidl-ndk.so
+lib64/libmedia_codeclist.so
+lib64/libstagefright_aidl_bufferpool2.so
+lib64/libstagefright_bufferpool@2.0.1.so
+lib64/libstagefright_codecbase.so
+lib64/libstagefright_framecapture_utils.so
+lib64/libstagefright_graphicbuffersource_aidl.so
+lib64/libstagefright_surface_utils.so
+system_ext/lib/libged_sys.so
+system_ext/lib/libgralloc_extra_sys.so
+system_ext/lib/libsf_cpupolicy.so
+system_ext/lib/libstagefright_hdcp.so
+system_ext/lib/libstagefright_mbrain.so
+system_ext/lib/libstagefright_wfd_mtk.so
+system_ext/lib/vendor.tesiai.hardware.hdcpconnection@1.0.so
+system_ext/lib64/libged_sys.so
+system_ext/lib64/libgralloc_extra_sys.so
+system_ext/lib64/libsf_cpupolicy.so
+system_ext/lib64/libstagefright_hdcp.so
+system_ext/lib64/libstagefright_mbrain.so
+system_ext/lib64/libstagefright_wfd_mtk.so
+system_ext/lib64/vendor.tesiai.hardware.hdcpconnection@1.0.so
+vendor/bin/hw/android.hardware.media.c2@1.2-mediatek
+vendor/bin/hw/android.hardware.media.c2@1.2-mediatek-64b
+vendor/bin/hw/android.hardware.media.omx@1.0-service
+vendor/etc/init/android.hardware.media.c2@1.2-mediatek-64b.rc
+vendor/etc/init/android.hardware.media.omx@1.0-service.rc
+vendor/etc/seccomp_policy/mediacodec.policy
+vendor/lib/libMtkOmxAdpcmDec.so
+vendor/lib/libMtkOmxAlacDec.so
+vendor/lib/libMtkOmxApeDec.so
+vendor/lib/libMtkOmxCore.so
+vendor/lib/libMtkOmxGsmDec.so
+vendor/lib/libMtkOmxMp3Dec.so
+vendor/lib/libadpcmdec_mtk.so
+vendor/lib/libcodec2_hidl@1.1.so
+vendor/lib/libcodec2_hidl@1.2.so
+vendor/lib/libcodec2_hidl_plugin.so
+vendor/lib/libcodec2_mtk_c2store.so
+vendor/lib/libcodec2_mtk_vdec.so
+vendor/lib/libcodec2_mtk_venc.so
+vendor/lib/libcodec2_soft_common.so
+vendor/lib/libcodec2_vpp_qt_plugin.so
+vendor/lib/libcodec2_vpp_rs_plugin.so
+vendor/lib/libformatter.so
+vendor/lib/libmp3dec_mtk.so
+vendor/lib/libsfplugin_ccodec_utils.so
+vendor/lib/libstagefright_bufferpool@2.0.1.so
+vendor/lib/libstagefright_softomx_plugin.so
+vendor/lib/libstagefrighthw.so
+vendor/lib64/libMtkOmxCore.so
+vendor/lib64/libcodec2_hidl@1.1.so
+vendor/lib64/libcodec2_hidl@1.2.so
+vendor/lib64/libcodec2_hidl_plugin.so
+vendor/lib64/libcodec2_mtk_c2store.so
+vendor/lib64/libcodec2_mtk_vdec.so
+vendor/lib64/libcodec2_mtk_venc.so
+vendor/lib64/libcodec2_soft_common.so
+vendor/lib64/libcodec2_vpp_qt_plugin.so
+vendor/lib64/libcodec2_vpp_rs_plugin.so
+vendor/lib64/libformatter.so
+vendor/lib64/libsfplugin_ccodec_utils.so
+vendor/lib64/libstagefright_bufferpool@2.0.1.so
+vendor/lib64/libstagefrighthw.so
+
+# Media (Dolby)
+vendor/bin/hw/vendor.dolby.hardware.dms@2.1-service
+vendor/bin/hw/vendor.dolby.media.c2@1.0-service
+vendor/etc/dolby/dax-default.xml
+vendor/etc/init/vendor.dolby.hardware.dms@2.1-service.rc
+vendor/etc/init/vendor.dolby.media.c2@1.0-service.rc
+vendor/etc/vintf/manifest/vendor.dolby.hardware.dms.xml
+vendor/lib/libdapparamstorage.so
+vendor/lib/vendor.dolby.dms-V1-ndk_platform.so
+vendor/lib/vendor.dolby.hardware.dms@2.0.so
+vendor/lib/vendor.dolby.hardware.dms@2.1.so
+vendor/lib64/libcodec2_store_dolby.so
+vendor/lib64/libdapparamstorage.so
+vendor/lib64/libdeccfg.so
+vendor/lib64/libdlbdsservice.so
+vendor/lib64/vendor.dolby.dms-V1-ndk_platform.so
+vendor/lib64/vendor.dolby.hardware.dms@2.0.so
+vendor/lib64/vendor.dolby.hardware.dms@2.1.so
+
+# Media configs
+vendor/etc/media_codecs.xml
+vendor/etc/media_codecs_c2.xml
+vendor/etc/media_codecs_c2_shim1.xml
+vendor/etc/media_codecs_dolby_audio.xml
+vendor/etc/media_codecs_google_audio.xml
+vendor/etc/media_codecs_mediatek_audio.xml
+vendor/etc/media_codecs_performance.xml
+vendor/etc/media_codecs_performance_c2.xml
+vendor/etc/media_codecs_performance_c2_shim1.xml
+vendor/etc/media_codecs_shim1.xml
+vendor/etc/media_profiles.xml
+vendor/etc/media_profiles_V1_0.xml
+vendor/etc/media_profiles_vendor.xml
+
+# Neural networks
+vendor/bin/hw/android.hardware.neuralnetworks-shim-service-mtk
+vendor/etc/init/android.hardware.neuralnetworks-shim-service-mtk.rc
+vendor/etc/vintf/manifest/android.hardware.neuralnetworks-shim-service-mtk.xml
+vendor/lib/mt6855/libneuralnetworks_sl_driver_mtk_prebuilt.so
+vendor/lib/libneuralnetworks_sl_driver_mtk_prebuilt.so
+vendor/lib64/mt6855/libneuralnetworks_sl_driver_mtk_prebuilt.so
+vendor/lib64/libneuralnetworks_sl_driver_mtk_prebuilt.so
+
+# NFC
+system_ext/lib/vendor.nxp.hardware.nfc@2.0.so
+system_ext/lib64/vendor.nxp.hardware.nfc@2.0.so
+vendor/bin/hw/android.hardware.nfc@1.2-service.sec
+vendor/bin/hw/vendor.nxp.hardware.nfc@1.2-service
+vendor/etc/init/android.hardware.nfc@1.2-service.sec.rc
+vendor/etc/init/vendor.nxp.hardware.nfc@1.2-service.rc
+vendor/lib/nfc_nci.nqx.default.hw.so
+vendor/lib/nfc_nci_sec.so
+vendor/lib/vendor.nxp.hardware.nxpese@1.0.so
+vendor/lib/vendor.nxp.nxpnfc@2.0.so
+vendor/lib64/ese_client.so
+vendor/lib64/ese_spi_nxp.so
+vendor/lib64/jcos_client.so
+vendor/lib64/ls_client.so
+vendor/lib64/nfc_nci.nqx.default.hw.so
+vendor/lib64/nfc_nci_sec.so
+vendor/lib64/se_extn_client.so
+vendor/lib64/vendor.nxp.hardware.nxpese@1.0.so
+vendor/lib64/vendor.nxp.nxpese@1.0.so
+vendor/lib64/vendor.nxp.nxpnfc@2.0.so
+vendor/lib64/vendor.nxp.nxpnfclegacy@1.0.so
+
+# NFC configs
+etc/libnfc-nci.conf
+vendor/etc/libnfc-nci.conf
+vendor/etc/libnfc-nci_100.conf
+vendor/etc/libnfc-nci_220.conf
+vendor/etc/libnfc-nci_220e.conf
+vendor/etc/libnfc-nci_557.conf
+vendor/etc/libnfc-nci_560.conf
+vendor/etc/libnfc-nxp-pnscr.conf
+vendor/etc/libnfc-nxp_220.conf
+vendor/etc/libnfc-sec-nci.conf
+vendor/etc/libnfc-sec-vendor.conf
+vendor/etc/sn100u_nfcon.pnscr
+vendor/etc/sn100u_pnx_ese_cplc.pnscr
+
+# Power
+system_ext/lib/vendor.mediatek.hardware.mtkpower-V2-ndk.so
+system_ext/lib/vendor.mediatek.hardware.mtkpower@1.0.so
+system_ext/lib/vendor.mediatek.hardware.mtkpower@1.1.so
+system_ext/lib/vendor.mediatek.hardware.mtkpower@1.2.so
+system_ext/lib64/vendor.mediatek.hardware.mtkpower-V2-ndk.so
+system_ext/lib64/vendor.mediatek.hardware.mtkpower@1.0.so
+system_ext/lib64/vendor.mediatek.hardware.mtkpower@1.1.so
+system_ext/lib64/vendor.mediatek.hardware.mtkpower@1.2.so
+vendor/bin/hw/vendor.mediatek.hardware.mtkpower@1.0-service
+vendor/etc/init/vendor.mediatek.hardware.mtkpower@1.0-init.rc
+vendor/etc/init/vendor.mediatek.hardware.mtkpower@1.0-service.rc
+vendor/lib/hw/power.default.so
+vendor/lib/hw/vendor.mediatek.hardware.mtkpower@1.2-impl.so
+vendor/lib/libpower_timer.so
+vendor/lib/vendor.mediatek.hardware.mtkpower@1.0.so
+vendor/lib/vendor.mediatek.hardware.mtkpower@1.1.so
+vendor/lib/vendor.mediatek.hardware.mtkpower@1.2.so
+vendor/lib64/hw/power.default.so
+vendor/lib64/hw/vendor.mediatek.hardware.mtkpower@1.2-impl.so
+vendor/lib64/libpower_timer.so
+vendor/lib64/vendor.mediatek.hardware.mtkpower@1.0.so
+vendor/lib64/vendor.mediatek.hardware.mtkpower@1.1.so
+vendor/lib64/vendor.mediatek.hardware.mtkpower@1.2.so
+
+# Radio
+system_ext/lib/vendor.mediatek.hardware.mtkradioex@3.0.so
+system_ext/lib64/vendor.mediatek.hardware.mtkradioex@3.0.so
+vendor/bin/hw/mtkfusionrild
+vendor/etc/init/mtkrild.rc
+vendor/lib/libmtkcutils.so
+vendor/lib/libmtkhardware_legacy.so
+vendor/lib/libmtkproperty.so
+vendor/lib/libmtkrillog.so
+vendor/lib/libsysenv.so
+vendor/lib64/libmtkconfig.so
+vendor/lib64/libmtkconfigutils.so
+vendor/lib64/libmtkcutils.so
+vendor/lib64/libmtkhardware_legacy.so
+vendor/lib64/libmtkproperty.so
+vendor/lib64/libmtkrillog.so
+vendor/lib64/libmtkrilutils.so
+vendor/lib64/libmtkutils.so
+vendor/lib64/libratconfig.so
+vendor/lib64/librilfusion.so
+vendor/lib64/libsysenv.so
+vendor/lib64/vendor.mediatek.hardware.mtkradioex@2.0.so
+vendor/lib64/vendor.mediatek.hardware.mtkradioex@3.0.so
+
+# Radio (IMS)
+system_ext/lib/vendor.mediatek.hardware.videotelephony-V1-ndk.so
+system_ext/lib/vendor.mediatek.hardware.videotelephony@1.0.so
+system_ext/lib64/vendor.mediatek.hardware.videotelephony-V1-ndk.so
+system_ext/lib64/vendor.mediatek.hardware.videotelephony@1.0.so
+vendor/lib/hw/vendor.mediatek.hardware.videotelephony@1.0-impl.so
+vendor/lib/vendor.mediatek.hardware.rcs@2.0.so
+vendor/lib/vendor.mediatek.hardware.videotelephony@1.0.so
+vendor/lib64/hw/vendor.mediatek.hardware.videotelephony@1.0-impl.so
+vendor/lib64/vendor.mediatek.hardware.videotelephony@1.0.so
+
+# RenderScript
+vendor/lib/hw/android.hardware.renderscript@1.0-impl.so
+vendor/lib64/hw/android.hardware.renderscript@1.0-impl.so
+
+# Secure element
+vendor/bin/hw/android.hardware.secure_element@1.2-service-mediatek
+vendor/bin/hw/android.hardware.secure_element_snxxx@1.2-service
+vendor/etc/init/android.hardware.secure_element@1.2-service-mediatek.rc
+vendor/etc/init/android.hardware.secure_element_snxxx@1.2-service.rc
+vendor/lib64/ese_spi_nxp_snxxx.so
+vendor/lib64/ls_nq_client.so
+
+# Security
+vendor/bin/hw/android.hardware.security.keymint-service.trustonic
+vendor/etc/init/android.hardware.security.keymint-service.trustonic.rc
+vendor/etc/vintf/manifest/android.hardware.security.keymint-service.trustonic.xml
+vendor/etc/vintf/manifest/android.hardware.security.secureclock-service.trustonic.xml
+vendor/etc/vintf/manifest/android.hardware.security.sharedsecret-service.trustonic.xml
+vendor/lib/libcppbor_external.so
+vendor/lib64/libcppbor_external.so
+
+# Sensors
+vendor/bin/hw/android.hardware.sensors@2.0-service.multihal-mediatek
+vendor/bin/hw/motorola.hardware.sensorscalibrate@1.0-service
+vendor/etc/init/android.hardware.sensors@2.0-service.multihal-mediatek.rc
+vendor/etc/init/motorola.hardware.sensorscalibrate@1.0-service.rc
+vendor/lib/sensors.moto.so
+vendor/lib64/hw/sensors.mediatek.V2.0.so
+vendor/lib64/hw/sensors.mt6855.so
+vendor/lib64/libhfmanager.so
+vendor/lib64/libksensor.so
+vendor/lib64/motorola.hardware.sensorscalibrate@1.0.so
+vendor/lib64/sensors.moto.so
+
+# Sensors configs
+vendor/etc/motorola/sensors/mot_sensor_settings.json
+vendor/etc/sensors/hals.conf
+
+# Soundtrigger
+vendor/lib/hw/android.hardware.soundtrigger@2.3-impl.so
+vendor/lib/hw/sound_trigger.primary.default.so
+vendor/lib64/hw/android.hardware.soundtrigger@2.3-impl.so
+vendor/lib64/hw/sound_trigger.primary.default.so
+
+# Thermal
+vendor/bin/hw/android.hardware.thermal@2.0-service.mtk
+vendor/etc/init/android.hardware.thermal@2.0-service.mtk.rc
+vendor/lib/hw/android.hardware.thermal@1.0-impl.so
+vendor/lib/hw/android.hardware.thermal@2.0-impl.so
+vendor/lib64/hw/android.hardware.thermal@1.0-impl.so
+vendor/lib64/hw/android.hardware.thermal@2.0-impl.so
+
+# Thermal configs
+vendor/etc/thermal/disable_skin_control.conf
+vendor/etc/thermal/disable_thermal.conf
+vendor/etc/thermal/disable_thermal_temp.conf
+vendor/etc/thermal/disable_throttling.conf
+vendor/etc/thermal/thermal.conf
+vendor/etc/thermal/thermal_kpoc.conf
+vendor/etc/thermal/thermal_policy_02.conf
+vendor/etc/thermal/thermal_policy_03.conf
+vendor/etc/thermal/thermal_policy_04.conf
+vendor/etc/thermal/thermal_policy_05.conf
+vendor/etc/thermal/thermal_policy_07.conf
+vendor/etc/thermal/thermal_policy_08.conf
+vendor/etc/thermal/thermal_policy_09.conf
+vendor/etc/thermal/thermal_policy_10.conf
+vendor/etc/thermal/thermal_policy_12.conf
+vendor/etc/thermal/thermal_policy_13.conf
+vendor/etc/thermal/thermal_policy_14.conf
+vendor/etc/thermal/thermal_policy_15.conf
+vendor/etc/thermal/thermal_policy_16.conf
+vendor/etc/thermal/thermal_policy_17.conf
+vendor/etc/thermal/thermal_policy_18.conf
+vendor/etc/thermal/thermal_policy_19.conf
+
+# Trusted UI
+vendor/lib64/vendor.trustonic.tee.tui@1.0.so
+
+# USB
+vendor/bin/hw/android.hardware.usb@1.2-service-mediatekv2
+vendor/etc/init/android.hardware.usb@1.2-service-mediatekv2.rc
+vendor/etc/vintf/manifest/android.hardware.usb@1.2-service-mediatekv2.xml
+
+# Vibrator
+lib/motorola.hardware.vibrator@1.0.so
+lib64/motorola.hardware.vibrator@1.0.so
+vendor/bin/hw/android.hardware.vibrator-service.mediatek
+vendor/lib/hw/vibrator.default.so
+vendor/lib64/hw/vibrator.default.so
+
+# Wi-Fi
+vendor/bin/hw/android.hardware.wifi@1.0-service-lazy
+vendor/bin/hw/hostapd
+vendor/bin/hw/wpa_supplicant
+vendor/bin/hostapd_cli
+vendor/bin/wpa_cli
+vendor/etc/init/android.hardware.wifi.supplicant-service.rc
+vendor/etc/init/android.hardware.wifi@1.0-service-lazy.rc
+vendor/etc/vintf/manifest/android.hardware.wifi.hostapd.xml
+vendor/etc/vintf/manifest/android.hardware.wifi.supplicant.xml
+vendor/etc/vintf/manifest/android.hardware.wifi@1.0-service.xml
+vendor/lib/libkeystore-wifi-hidl.so
+vendor/lib64/libkeystore-engine-wifi-hidl.so
+vendor/lib64/libkeystore-wifi-hidl.so
+vendor/lib64/libwifi-hal.so
+vendor/lib64/motorola.hardware.wifi.hostapd@1.0.so
+vendor/lib64/motorola.hardware.wifi.supplicant@1.0_vendor.so
+
+# Wi-Fi configs
+vendor/etc/wifi/p2p_supplicant_overlay.conf
+vendor/etc/wifi/wpa_supplicant.conf
+vendor/etc/wifi/wpa_supplicant_overlay.conf
+
+# Miscellaneous
+odm/etc/vintf/manifest_b.xml
+odm/etc/vintf/manifest_d.xml
+odm/etc/vintf/manifest_de.xml
+odm/etc/vintf/manifest_dn.xml
+odm/etc/vintf/manifest_e.xml
+odm/etc/vintf/manifest_n.xml
+vendor/app/GoogleNetworkStackResOverlay/GoogleNetworkStackResOverlay.apk
+vendor/app/GoogleTetheringResOverlay/GoogleTetheringResOverlay.apk
+vendor/app/InProcessTetheringResOverlay/InProcessTetheringResOverlay.apk
+vendor/app/NetworkStackInProcessResOverlay/NetworkStackInProcessResOverlay.apk
+vendor/app/NetworkStackResOverlay/NetworkStackResOverlay.apk
+vendor/app/TetheringResOverlay/TetheringResOverlay.apk
+vendor/app/mcRegistry/020f0000000000000000000000000000.drbin
+vendor/app/mcRegistry/020f0000000000000000000000000000.tlbin
+vendor/app/mcRegistry/031c0000000000000000000000000000.drbin
+vendor/app/mcRegistry/031c0000000000000000000000000000.tlbin
+vendor/app/mcRegistry/04010000000000000000000000000000.tlbin
+vendor/app/mcRegistry/05060000000000000000000000000000.tabin
+vendor/app/mcRegistry/05070000000000000000000000000000.drbin
+vendor/app/mcRegistry/05070000000000000000000000000000.tlbin
+vendor/app/mcRegistry/05120000000000000000000000000001.drbin
+vendor/app/mcRegistry/05120000000000000000000000000001.tlbin
+vendor/app/mcRegistry/06090000000000000000000000000000.drbin
+vendor/app/mcRegistry/06090000000000000000000000000000.tlbin
+vendor/app/mcRegistry/07010000000000000000000000000000.tlbin
+vendor/app/mcRegistry/0706000000000000000000000000004d.tlbin
+vendor/app/mcRegistry/07061000000000000000000000000000.tlbin
+vendor/app/mcRegistry/07150000000000000000000000000000.drbin
+vendor/app/mcRegistry/07150000000000000000000000000000.tlbin
+vendor/app/mcRegistry/07170000000000000000000000000000.drbin
+vendor/app/mcRegistry/07170000000000000000000000000000.tlbin
+vendor/app/mcRegistry/08030000000000000000000000000000.tabin
+vendor/app/mcRegistry/08040000000000000000000000003419.tabin
+vendor/app/mcRegistry/08050000000000000000000000003419.drbin
+vendor/app/mcRegistry/08050000000000000000000000003419.tlbin
+vendor/app/mcRegistry/08110000000000000000000000000000.tabin
+vendor/app/mcRegistry/40188311faf343488db888ad39496f9a.drbin
+vendor/app/mcRegistry/40188311faf343488db888ad39496f9a.tlbin
+vendor/app/mcRegistry/5020170115e016302017012521300000.drbin
+vendor/app/mcRegistry/5020170115e016302017012521300000.tlbin
+vendor/app/mcRegistry/85fbf4ccc2fd4a32922a4e90c56179de.tabin
+vendor/app/mcRegistry/abcd270ea5c44c58bcd3384a2fa2539e.tabin
+vendor/app/mcRegistry/attpre_6716af0c135559728ae9e9754da47ccd.tabin
+vendor/app/mcRegistry/e97c270ea5c44c58bcd3384a2fa2539e.tabin
+vendor/bin/hw/mt6855/camerahalserver
+vendor/bin/hw/camerahalserver
+vendor/bin/hw/chipone_ident
+vendor/bin/hw/fpc_ident
+vendor/bin/hw/goodix_ident
+vendor/bin/hw/motorola.hardware.fdrcontrol@1.2-service
+vendor/bin/hw/motorola.hardware.mtk.fm-service
+vendor/bin/hw/motorola.hardware.sarwifi-srv
+vendor/bin/hw/tetheroffloadservice
+vendor/bin/hw/vendor.mediatek.hardware.mmagent@1.1-service
+vendor/bin/hw/vendor.mediatek.hardware.nvram@1.1-service
+vendor/bin/hw/vendor.mediatek.hardware.nwk_opt@1.0-service
+vendor/bin/hw/vendor.trustonic.alps.alps_device@1.1-service
+vendor/bin/hw/vtservice_hidl
+vendor/bin/mt6855/jpegtool
+vendor/bin/mt6855/v3avpud.mt6855
+vendor/bin/AgentTest
+vendor/bin/EEReport
+vendor/bin/SN1X0__RF-On.txt
+vendor/bin/TBaseDeviceBinding
+vendor/bin/aplogcat
+vendor/bin/aplogd
+vendor/bin/applypatch
+vendor/bin/atcid
+vendor/bin/audiocmdservice_atci
+vendor/bin/autobt
+vendor/bin/batch
+vendor/bin/batt_health
+vendor/bin/bip_ap
+vendor/bin/bootloaderlog
+vendor/bin/boringssl_self_test32
+vendor/bin/boringssl_self_test64
+vendor/bin/bt_dump
+vendor/bin/capsense_reset
+vendor/bin/ccci_fsd
+vendor/bin/ccci_mdinit
+vendor/bin/ccci_rpcd
+vendor/bin/chipinfo
+vendor/bin/conninfra_loader
+vendor/bin/dmabuf_dump
+vendor/bin/dmc_core
+vendor/bin/dumpsys
+vendor/bin/eara_io_service
+vendor/bin/expat
+vendor/bin/factory
+vendor/bin/fdrcontrol
+vendor/bin/fotacontrol
+vendor/bin/fpc_tee_test
+vendor/bin/fpsgo
+vendor/bin/fuelgauged
+vendor/bin/fuelgauged_nvram
+vendor/bin/gbe
+vendor/bin/getconfig
+vendor/bin/getfattr
+vendor/bin/gsm0710muxd
+vendor/bin/ipsec_mon
+vendor/bin/jpegtool
+vendor/bin/kpgather
+vendor/bin/kpreadwrite
+vendor/bin/lbs_hidl_service
+vendor/bin/masterclear
+vendor/bin/mbm_spy
+vendor/bin/mcDriverDaemon
+vendor/bin/memtest_mode
+vendor/bin/meta_tst
+vendor/bin/mnld
+vendor/bin/motobox
+vendor/bin/mt6660_calibration
+vendor/bin/mtk_agpsd
+vendor/bin/mtk_pkm_service
+vendor/bin/mtk_plpath_utils_ota
+vendor/bin/muxreport
+vendor/bin/netdagent
+vendor/bin/netdc
+vendor/bin/nvram_daemon
+vendor/bin/nxpnfcinfo
+vendor/bin/pnscr
+vendor/bin/pnscr_cal
+vendor/bin/poweroffcontrol
+vendor/bin/ptf
+vendor/bin/rcs_volte_stack
+vendor/bin/rkp_factory_extraction_tool
+vendor/bin/rsudaemon_proxy
+vendor/bin/rt5512_calibration
+vendor/bin/sec_nfc_test
+vendor/bin/sendevent2
+vendor/bin/setconfig
+vendor/bin/setfattr
+vendor/bin/smartpa_nvtest
+vendor/bin/sns_mot_client
+vendor/bin/stp_dump3
+vendor/bin/tcmd
+vendor/bin/tcmdhelp
+vendor/bin/thermal_core
+vendor/bin/thermal_intf
+vendor/bin/tinymix
+vendor/bin/tinyplay
+vendor/bin/ufsgetsn
+vendor/bin/v3avpud.mt6855
+vendor/bin/volte_clientapi_ua
+vendor/bin/volte_rcs_ua
+vendor/bin/vpud
+vendor/bin/wifi_dump
+vendor/bin/wifitest
+vendor/bin/wlan_assistant
+vendor/bin/wmt_launcher
+vendor/bin/wmt_loader
+vendor/etc/apdb/APDB_MT6855___W2425
+vendor/etc/apdb/APDB_MT6855___W2425_ENUM
+vendor/etc/aualgo/aualgo_comp_azpp.conf
+vendor/etc/aualgo/aualgo_sst.conf
+vendor/etc/init/EEReport.rc
+vendor/etc/init/atcid.rc
+vendor/etc/init/audiocmdservice_atci.rc
+vendor/etc/init/bootperf.rc
+vendor/etc/init/boringssl_self_test.rc
+vendor/etc/init/camerahalserver.rc
+vendor/etc/init/chipinfo_init.rc
+vendor/etc/init/dmc_core.rc
+vendor/etc/init/eara-io-service.rc
+vendor/etc/init/fpsgo.rc
+vendor/etc/init/fuelgauged_init.rc
+vendor/etc/init/fuelgauged_nvram_init.rc
+vendor/etc/init/gbe.rc
+vendor/etc/init/gsm0710muxd.rc
+vendor/etc/init/hostapd.android.rc
+vendor/etc/init/init.alpslegacy.rc
+vendor/etc/init/init.bip_ap.rc
+vendor/etc/init/init.bt_drv.rc
+vendor/etc/init/init.cccifsd.rc
+vendor/etc/init/init.cccimdinit.rc
+vendor/etc/init/init.cccirpcd.rc
+vendor/etc/init/init.chipone_ident.rc
+vendor/etc/init/init.connfem.rc
+vendor/etc/init/init.fmradio_drv.rc
+vendor/etc/init/init.fpsgo.rc
+vendor/etc/init/init.gf_ident.rc
+vendor/etc/init/init.gps_drv.rc
+vendor/etc/init/init.gps_pwr.rc
+vendor/etc/init/init.nfc.sec.rc
+vendor/etc/init/init.thermal_core.rc
+vendor/etc/init/init.vtservice_hidl.rc
+vendor/etc/init/init.wlan_drv.rc
+vendor/etc/init/init.wmt_drv.rc
+vendor/etc/init/ipsec_mon.rc
+vendor/etc/init/lbs_hidl_service.rc
+vendor/etc/init/lights-mtk-default.rc
+vendor/etc/init/memtrack-mediatek.rc
+vendor/etc/init/motorola.hardware.fdrcontrol@1.2-service.rc
+vendor/etc/init/motorola.hardware.mtk.fm.service.rc
+vendor/etc/init/mtk_agpsd_p.rc
+vendor/etc/init/mtk_pkm_service.rc
+vendor/etc/init/mtklog.rc
+vendor/etc/init/muxreport.rc
+vendor/etc/init/netdagent.rc
+vendor/etc/init/networksetting.rc
+vendor/etc/init/nvram_daemon.rc
+vendor/etc/init/sarwifi-default.rc
+vendor/etc/init/tee.rc
+vendor/etc/init/tetheroffloadservice.rc
+vendor/etc/init/trustonic.rc
+vendor/etc/init/v3avpud.rc
+vendor/etc/init/vendor.mediatek.hardware.mmagent@1.1-service.rc
+vendor/etc/init/vendor.mediatek.hardware.nvram@1.1-sevice.rc
+vendor/etc/init/vendor.mediatek.hardware.nwk_opt@1.0-service.rc
+vendor/etc/init/vendor.mmi.carrier.rc
+vendor/etc/init/vendor.mmi.cxp.rc
+vendor/etc/init/vendor.trustonic.alps.alps_device@1.1-service.rc
+vendor/etc/init/vendor_flash_recovery.rc
+vendor/etc/init/vibrator-mtk-default.rc
+vendor/etc/init/vndservicemanager.rc
+vendor/etc/init/volte_clientapi_ua.rc
+vendor/etc/init/wlan_assistant.rc
+vendor/etc/md/cacerts/ikev2/DigiCertGlobalRootCA.crt
+vendor/etc/md/cacerts/ikev2/DigiCertGlobalRootG2.crt
+vendor/etc/md/cacerts/ikev2/DigiCertGlobalRootG3.crt
+vendor/etc/md/cacerts/ikev2/Entrust.net_Certification_Authority_2048.cer
+vendor/etc/md/cacerts/ikev2/EntrustRootCertificationAuthorityG2_root.crt
+vendor/etc/md/cacerts/ikev2/GeoTrust_PCA_G3_Root.der
+vendor/etc/md/cacerts/ikev2/GeoTrust_Primary_CA.der
+vendor/etc/md/cacerts/ikev2/GeoTrust_Primary_CA_G2_ECC.der
+vendor/etc/md/cacerts/ikev2/GlobalSign_root_CA.crt
+vendor/etc/md/cacerts/ikev2/LibertyGlobalEnterprise-Root-CA-G1.crt
+vendor/etc/md/cacerts/ikev2/Root-R3.cer
+vendor/etc/md/cacerts/ikev2/Root_CA_1003.crt
+vendor/etc/md/cacerts/ikev2/USERTrustRSACertificationAuthority.crt
+vendor/etc/md/cacerts/ikev2/VeriSignClass3G4.der
+vendor/etc/md/cacerts/ikev2/VeriSignClass3G5.der
+vendor/etc/md/cacerts/ikev2/VeriSignUniversalRootCertification.der
+vendor/etc/md/cacerts/ikev2/thawte.der
+vendor/etc/md/cacerts/tls/AAACertificateServices.crt
+vendor/etc/md/cacerts/tls/CertumCA.crt
+vendor/etc/md/cacerts/tls/CertumOrganizationValidationCASHA2.crt
+vendor/etc/md/cacerts/tls/CertumTrustedNetworkCA.crt
+vendor/etc/md/cacerts/tls/CyberTrustJapanPublicCAG3.crt
+vendor/etc/md/cacerts/tls/DigiCertGlobalRootCA.crt
+vendor/etc/md/cacerts/tls/DigiCertGlobalRootG2.crt
+vendor/etc/md/cacerts/tls/DigiCertSHA2SecureServerCA.crt
+vendor/etc/md/cacerts/tls/DomenySslDvCertificationAuthority.crt
+vendor/etc/md/cacerts/tls/EntrustCertificationAuthorityL1K.cer
+vendor/etc/md/cacerts/tls/EntrustRootCertificationAuthority.crt
+vendor/etc/md/cacerts/tls/EntrustRootCertificationAuthorityG2.crt
+vendor/etc/md/cacerts/tls/EntrustRootCertificationAuthorityG2_root.crt
+vendor/etc/md/cacerts/tls/GoDaddyRootCertificateAuthorityG2.crt
+vendor/etc/md/cacerts/tls/GoDaddySecureCertificateAuthorityG2.crt
+vendor/etc/md/cacerts/tls/KPN_BV_PKIoverheid_Organisatie_Server_CA-G3_2019.cer
+vendor/etc/md/cacerts/tls/StaatDerNederlandenEVRootCA.crt
+vendor/etc/md/cacerts/tls/StaatderNederlandenOrganisatieServicesCA-G3.cer
+vendor/etc/md/cacerts/tls/StaatderNederlandenRootCA-G3.cer
+vendor/etc/md/cacerts/tls/TheUSERTRUSTNetwork.crt
+vendor/etc/md/cacerts/tls/certSIGNROOTCA.crt
+vendor/etc/md/cacerts/tls/certSIGN_ROOT_CA.crt
+vendor/etc/md/cacerts/tls/certsign-rootg2.crt
+vendor/etc/motorola/12m/Factory_SW_Logo.jpg
+vendor/etc/motorola/12m/TM655_driver_Command.ini
+vendor/etc/motorola/12m/fac_test_config.xml
+vendor/etc/motorola/12m/focaltech-csot-primary-cancunf.ini
+vendor/etc/motorola/12m/focaltech-csot_ft8725-primary-cancunf.ini
+vendor/etc/motorola/12m/focaltech-csot_ft8726-primary-cancunf.ini
+vendor/etc/motorola/12m/key_code_map.txt
+vendor/etc/motorola/12m/tcmd_leds.cfg
+vendor/etc/motorola/props/sku.n.prop
+vendor/etc/motorola/props/sku.nc.prop
+vendor/etc/motorola/props/sku.nq.prop
+vendor/etc/motorola/props/sku.q.prop
+vendor/etc/motorola/tcmd/cid_template.dat
+vendor/etc/motorola/tcmd/cid_template.locked
+vendor/etc/motorola/tcmd/cid_template.unlocked
+vendor/etc/seccomp_policy/android.hardware.media.c2@1.2-extended-seccomp-policy
+vendor/etc/seccomp_policy/android.hardware.media.c2@1.2-mediatek-seccomp-policy
+vendor/etc/seccomp_policy/mediaextractor.policy
+vendor/etc/seccomp_policy/mediaswcodec.policy
+vendor/etc/security/cacerts/01419da9.0
+vendor/etc/security/cacerts/04f60c28.0
+vendor/etc/security/cacerts/0d69c7e1.0
+vendor/etc/security/cacerts/10531352.0
+vendor/etc/security/cacerts/111e6273.0
+vendor/etc/security/cacerts/12d55845.0
+vendor/etc/security/cacerts/1ae85e5e.0
+vendor/etc/security/cacerts/1df5a75f.0
+vendor/etc/security/cacerts/1e1eab7c.0
+vendor/etc/security/cacerts/1e8e7201.0
+vendor/etc/security/cacerts/1eb37bdf.0
+vendor/etc/security/cacerts/1f58a078.0
+vendor/etc/security/cacerts/219d9499.0
+vendor/etc/security/cacerts/23f4c490.0
+vendor/etc/security/cacerts/27af790d.0
+vendor/etc/security/cacerts/2add47b6.0
+vendor/etc/security/cacerts/2d9dafe4.0
+vendor/etc/security/cacerts/2fa87019.0
+vendor/etc/security/cacerts/302904dd.0
+vendor/etc/security/cacerts/304d27c3.0
+vendor/etc/security/cacerts/31188b5e.0
+vendor/etc/security/cacerts/33ee480d.0
+vendor/etc/security/cacerts/343eb6cb.0
+vendor/etc/security/cacerts/35105088.0
+vendor/etc/security/cacerts/399e7759.0
+vendor/etc/security/cacerts/3ad48a91.0
+vendor/etc/security/cacerts/3c6676aa.0
+vendor/etc/security/cacerts/3c860d51.0
+vendor/etc/security/cacerts/3c899c73.0
+vendor/etc/security/cacerts/3c9a4d3b.0
+vendor/etc/security/cacerts/3e7271e8.0
+vendor/etc/security/cacerts/40dc992e.0
+vendor/etc/security/cacerts/455f1b52.0
+vendor/etc/security/cacerts/48a195d8.0
+vendor/etc/security/cacerts/4be590e0.0
+vendor/etc/security/cacerts/5046c355.0
+vendor/etc/security/cacerts/524d9b43.0
+vendor/etc/security/cacerts/52b525c7.0
+vendor/etc/security/cacerts/583d0756.0
+vendor/etc/security/cacerts/5a250ea7.0
+vendor/etc/security/cacerts/5a3f0ff8.0
+vendor/etc/security/cacerts/5acf816d.0
+vendor/etc/security/cacerts/5cf9d536.0
+vendor/etc/security/cacerts/5f47b495.0
+vendor/etc/security/cacerts/60afe812.0
+vendor/etc/security/cacerts/6187b673.0
+vendor/etc/security/cacerts/63a2c897.0
+vendor/etc/security/cacerts/69105f4f.0
+vendor/etc/security/cacerts/6b03dec0.0
+vendor/etc/security/cacerts/6e8bf996.0
+vendor/etc/security/cacerts/75680d2e.0
+vendor/etc/security/cacerts/76579174.0
+vendor/etc/security/cacerts/7892ad52.0
+vendor/etc/security/cacerts/7a7c655d.0
+vendor/etc/security/cacerts/7a819ef2.0
+vendor/etc/security/cacerts/81b9768f.0
+vendor/etc/security/cacerts/82223c44.0
+vendor/etc/security/cacerts/83e9984f.0
+vendor/etc/security/cacerts/85cde254.0
+vendor/etc/security/cacerts/86212b19.0
+vendor/etc/security/cacerts/869fbf79.0
+vendor/etc/security/cacerts/882de061.0
+vendor/etc/security/cacerts/88950faa.0
+vendor/etc/security/cacerts/89c02a45.0
+vendor/etc/security/cacerts/8d6437c3.0
+vendor/etc/security/cacerts/9282e51c.0
+vendor/etc/security/cacerts/9339512a.0
+vendor/etc/security/cacerts/9479c8c3.0
+vendor/etc/security/cacerts/9576d26b.0
+vendor/etc/security/cacerts/9591a472.0
+vendor/etc/security/cacerts/95aff9e3.0
+vendor/etc/security/cacerts/9685a493.0
+vendor/etc/security/cacerts/985c1f52.0
+vendor/etc/security/cacerts/9aef356c.0
+vendor/etc/security/cacerts/9d6523ce.0
+vendor/etc/security/cacerts/9f533518.0
+vendor/etc/security/cacerts/a2c66da8.0
+vendor/etc/security/cacerts/a3896b44.0
+vendor/etc/security/cacerts/a7605362.0
+vendor/etc/security/cacerts/a81e292b.0
+vendor/etc/security/cacerts/a9d40e02.0
+vendor/etc/security/cacerts/ab5346f4.0
+vendor/etc/security/cacerts/ab59055e.0
+vendor/etc/security/cacerts/aeb67534.0
+vendor/etc/security/cacerts/b0ed035a.0
+vendor/etc/security/cacerts/b0f3e76e.0
+vendor/etc/security/cacerts/b3fb433b.0
+vendor/etc/security/cacerts/b74d2bd5.0
+vendor/etc/security/cacerts/b7db1890.0
+vendor/etc/security/cacerts/b872f2b4.0
+vendor/etc/security/cacerts/b936d1c6.0
+vendor/etc/security/cacerts/bc3f2570.0
+vendor/etc/security/cacerts/bd43e1dd.0
+vendor/etc/security/cacerts/bdacca6f.0
+vendor/etc/security/cacerts/bf64f35b.0
+vendor/etc/security/cacerts/c491639e.0
+vendor/etc/security/cacerts/c51c224c.0
+vendor/etc/security/cacerts/c559d742.0
+vendor/etc/security/cacerts/c90bc37d.0
+vendor/etc/security/cacerts/cb1c3204.0
+vendor/etc/security/cacerts/ccc52f49.0
+vendor/etc/security/cacerts/cf701eeb.0
+vendor/etc/security/cacerts/d06393bb.0
+vendor/etc/security/cacerts/d16a5865.0
+vendor/etc/security/cacerts/d18e9066.0
+vendor/etc/security/cacerts/d39b0a2c.0
+vendor/etc/security/cacerts/d41b5e2a.0
+vendor/etc/security/cacerts/d4c339cb.0
+vendor/etc/security/cacerts/d59297b8.0
+vendor/etc/security/cacerts/d7746a63.0
+vendor/etc/security/cacerts/da7377f6.0
+vendor/etc/security/cacerts/dbc54cab.0
+vendor/etc/security/cacerts/dbff3a01.0
+vendor/etc/security/cacerts/dc99f41e.0
+vendor/etc/security/cacerts/dfc0fe80.0
+vendor/etc/security/cacerts/e442e424.0
+vendor/etc/security/cacerts/e48193cf.0
+vendor/etc/security/cacerts/e8651083.0
+vendor/etc/security/cacerts/ed39abd0.0
+vendor/etc/security/cacerts/edcbddb5.0
+vendor/etc/security/cacerts/f013ecaf.0
+vendor/etc/security/cacerts/f0cd152c.0
+vendor/etc/security/cacerts/f459871d.0
+vendor/etc/security/cacerts/fb5fa911.0
+vendor/etc/security/cacerts/fd08c599.0
+vendor/etc/security/cacerts/fde84897.0
+vendor/etc/security/cacerts_supl/lab/18dc3a8d.0
+vendor/etc/security/cacerts_supl/lab/1bc5ca0c.0
+vendor/etc/security/cacerts_supl/lab/1bc5ca0c.1
+vendor/etc/security/cacerts_supl/lab/2cbfcc3a.0
+vendor/etc/security/cacerts_supl/lab/35ef1c14.0
+vendor/etc/security/cacerts_supl/lab/399e7759.0
+vendor/etc/security/cacerts_supl/lab/586933d9.0
+vendor/etc/security/cacerts_supl/lab/66272d0d.0
+vendor/etc/security/cacerts_supl/lab/6f1dbe5e.0
+vendor/etc/security/cacerts_supl/lab/b5805141.0
+vendor/etc/security/cacerts_supl/lab/b805b58a.0
+vendor/etc/security/cacerts_supl/lab/ed7b215e.0
+vendor/etc/security/cacerts_supl/lab/ef4b31e6.0
+vendor/etc/security/cacerts_supl/111e6273.0
+vendor/etc/security/cacerts_supl/1a700a7f.0
+vendor/etc/security/cacerts_supl/1e8e7201.0
+vendor/etc/security/cacerts_supl/245cc582.0
+vendor/etc/security/cacerts_supl/399e7759.0
+vendor/etc/security/cacerts_supl/399e7759.1
+vendor/etc/security/cacerts_supl/399e7759.2
+vendor/etc/security/cacerts_supl/3ad48a91.0
+vendor/etc/security/cacerts_supl/455f1b52.0
+vendor/etc/security/cacerts_supl/4bcd7fc4.0
+vendor/etc/security/cacerts_supl/4bcd7fc4.1
+vendor/etc/security/cacerts_supl/524d9b43.0
+vendor/etc/security/cacerts_supl/594f1775.0
+vendor/etc/security/cacerts_supl/608d335b.0
+vendor/etc/security/cacerts_supl/6d4bcacf.0
+vendor/etc/security/cacerts_supl/75680d2e.0
+vendor/etc/security/cacerts_supl/7651b327.0
+vendor/etc/security/cacerts_supl/79701ca5.0
+vendor/etc/security/cacerts_supl/7d453d8f.0
+vendor/etc/security/cacerts_supl/876bdba8.0
+vendor/etc/security/cacerts_supl/876bdba8.1
+vendor/etc/security/cacerts_supl/a2c66da8.0
+vendor/etc/security/cacerts_supl/b0f3e76e.0
+vendor/etc/security/cacerts_supl/c542733d.0
+vendor/etc/security/cacerts_supl/c90bc37d.0
+vendor/etc/security/cacerts_supl/ed39abd0.0
+vendor/etc/security/cacerts_supl/f336e3d1.0
+vendor/etc/security/cacerts_supl/facacbc6.0
+vendor/etc/tetras/portrait_repair_composite.model
+vendor/etc/vintf/manifest/fdrcontrol_1.2_manifest.xml
+vendor/etc/vintf/manifest/gnss-default.xml
+vendor/etc/vintf/manifest/gnss@2.1-service.xml
+vendor/etc/vintf/manifest/lbs_hidl_service@1.0.xml
+vendor/etc/vintf/manifest/lights-mtk-default.xml
+vendor/etc/vintf/manifest/manifest_IMoto_Fingerprint.xml
+vendor/etc/vintf/manifest/manifest_apuware_apusys.xml
+vendor/etc/vintf/manifest/manifest_apuware_hmp.xml
+vendor/etc/vintf/manifest/manifest_apuware_utils.xml
+vendor/etc/vintf/manifest/manifest_cameraprovider.xml
+vendor/etc/vintf/manifest/manifest_hwcomposer.xml
+vendor/etc/vintf/manifest/manifest_media_c2_V1_1_dolby_default9.xml
+vendor/etc/vintf/manifest/memtrack-mediatek.xml
+vendor/etc/vintf/manifest/motorola.hardware.mtk.fm.service.xml
+vendor/etc/vintf/manifest/power-default.xml
+vendor/etc/vintf/manifest/sarwifi-default.xml
+vendor/etc/vintf/manifest/vibrator-mtk-default.xml
+vendor/etc/AW_DSP.bin
+vendor/etc/AW_SINWAVE_DSP.bin
+vendor/etc/AbnormalDisplayLog_dynamic.xml
+vendor/etc/AudioLog_dynamic.xml
+vendor/etc/MNL_Config.xml
+vendor/etc/SwadCalib.bin
+vendor/etc/SwadParamList.txt
+vendor/etc/VideoLog_dynamic.xml
+vendor/etc/ap_gain.bin
+vendor/etc/ap_gain_mmul.bin
+vendor/etc/audio_device.xml
+vendor/etc/audio_em.xml
+vendor/etc/audio_policy.conf
+vendor/etc/aurisys_config.xml
+vendor/etc/aurisys_config_rv.xml
+vendor/etc/bt_stack_debug.conf
+vendor/etc/bt_stack_level6.conf
+vendor/etc/cust_color_0.xml
+vendor/etc/cust_color_1.xml
+vendor/etc/cust_color_2.xml
+vendor/etc/default_pd_calibration.bin
+vendor/etc/dual_golden_wide.bin
+vendor/etc/ecc_list.xml
+vendor/etc/ecc_list_OP01.xml
+vendor/etc/ecc_list_OP02.xml
+vendor/etc/ecc_list_OP09.xml
+vendor/etc/ecc_list_OP12.xml
+vendor/etc/ecc_list_OP17.xml
+vendor/etc/ecc_list_OP18.xml
+vendor/etc/ecc_list_OP20.xml
+vendor/etc/ecc_list_OP236.xml
+vendor/etc/ecc_list_preference.xml
+vendor/etc/factory.ini
+vendor/etc/fstab.emmc
+vendor/etc/fstab.enableswap
+vendor/etc/fstab.enablezram
+vendor/etc/fstab.enablezramwb
+vendor/etc/fstab.mt6855
+vendor/etc/fstb.cfg
+vendor/etc/gbe.cfg
+vendor/etc/init.insmod.mt6855.cfg
+vendor/etc/libese-nxp.conf
+vendor/etc/meow.cfg
+vendor/etc/mkshrc
+vendor/etc/mot_spn_table
+vendor/etc/mpe.conf
+vendor/etc/mtk_omx_core.cfg
+vendor/etc/mtk_platform_codecs_config.xml
+vendor/etc/mtk_vext_info
+vendor/etc/nfc_calibration.txt
+vendor/etc/nnapi_powerhal.json
+vendor/etc/partition_permission.sh
+vendor/etc/power_app_cfg.xml
+vendor/etc/powercontable.xml
+vendor/etc/powerscntbl.xml
+vendor/etc/public.libraries.txt
+vendor/etc/sec_s3nrn4v_hwreg.bin
+vendor/etc/sec_s3nrn4v_swreg.bin
+vendor/etc/simlock_template.dat
+vendor/etc/slp_conf
+vendor/etc/smsdbvisitor.xml
+vendor/etc/special_pws_channel.xml
+vendor/etc/task_profiles.json
+vendor/etc/throttle.sh
+vendor/etc/ueventd.rc
+vendor/etc/usb_audio_accessory_only_policy_configuration.xml
+vendor/etc/vendor-apns-conf.xml
+vendor/etc/vhw.xml
+vendor/etc/virtual-spn-conf-by-efgid1.xml
+vendor/etc/virtual-spn-conf-by-efpnn.xml
+vendor/etc/virtual-spn-conf-by-efspn.xml
+vendor/etc/virtual-spn-conf-by-imsi.xml
+vendor/etc/xgf.cfg
+vendor/firmware/BT_FW.cfg
+vendor/firmware/ILITEK_FW
+vendor/firmware/NT36xxx_MP_Setting_Criteria_606B.csv
+vendor/firmware/WIFI_RAM_CODE_soc2_2_1b_1.bin
+vendor/firmware/WIFI_RAM_CODE_soc2_2_1c_1.bin
+vendor/firmware/WMT_SOC.cfg
+vendor/firmware/WMT_SOC_CANCUNF.cfg
+vendor/firmware/WMT_SOC_CANCUNN_FEM.cfg
+vendor/firmware/WMT_SOC_devonn_epa.cfg
+vendor/firmware/aw86006.prog
+vendor/firmware/aw86006vcmyova.prog
+vendor/firmware/aw87xxx_acf.bin
+vendor/firmware/cps4035.bin
+vendor/firmware/fm_cust.cfg
+vendor/firmware/focaltech_ts_fw_csot.bin
+vendor/firmware/focaltech_ts_fw_csot_ft8725.bin
+vendor/firmware/mt6627_fm_v1_coeff.bin
+vendor/firmware/mt6627_fm_v1_patch.bin
+vendor/firmware/mt6630_fm_v1_coeff.bin
+vendor/firmware/mt6630_fm_v1_patch.bin
+vendor/firmware/mt6630_fm_v2_coeff.bin
+vendor/firmware/mt6630_fm_v2_coeff_tx.bin
+vendor/firmware/mt6630_fm_v2_patch.bin
+vendor/firmware/mt6630_fm_v2_patch_tx.bin
+vendor/firmware/mt6631_fm_v1_coeff.bin
+vendor/firmware/mt6631_fm_v1_patch.bin
+vendor/firmware/mt6632_fm_v1_coeff.bin
+vendor/firmware/mt6632_fm_v1_patch.bin
+vendor/firmware/mt6635_fm_v1_coeff.bin
+vendor/firmware/mt6635_fm_v1_patch.bin
+vendor/firmware/novatek_ts_fw.bin
+vendor/firmware/novatek_ts_mp.bin
+vendor/firmware/remoteproc_scp
+vendor/firmware/rgx.fw
+vendor/firmware/rgx.sh
+vendor/firmware/sec_s3nrn4v_firmware.bin
+vendor/firmware/soc2_2_ram_bt_1b_1_hdr.bin
+vendor/firmware/soc2_2_ram_bt_1c_1_hdr.bin
+vendor/firmware/soc2_2_ram_mcu_1b_1_hdr.bin
+vendor/firmware/soc2_2_ram_mcu_1c_1_hdr.bin
+vendor/firmware/soc2_2_ram_wifi_1b_1_hdr.bin
+vendor/firmware/soc2_2_ram_wifi_1c_1_hdr.bin
+vendor/firmware/soc_fm_v1_coeff.bin
+vendor/firmware/soc_fm_v1_patch.bin
+vendor/firmware/txpowerctrl.cfg
+vendor/firmware/valhall-1691526.wa
+vendor/firmware/wifi.cfg
+vendor/framework/com.fingerprints.extension.jar
+vendor/lib/hw/audio_policy.stub.so
+vendor/lib/hw/fpsensor_fingerprint.default.so
+vendor/lib/hw/libMcGatekeeper.so
+vendor/lib/hw/libSoftGatekeeper.so
+vendor/lib/hw/thermal_hal.so
+vendor/lib/hw/vendor.mediatek.hardware.nvram@1.1-impl.so
+vendor/lib/mt6855/libCamera_mtk000mipiraw_E2EHDR_Preview.so
+vendor/lib/mt6855/libCamera_mtk000mipiraw_E2EHDR_Video.so
+vendor/lib/mt6855/libCamera_mtk000mipiraw_Face_Capture.so
+vendor/lib/mt6855/libCamera_mtk000mipiraw_Flash_Capture.so
+vendor/lib/mt6855/libCamera_mtk000mipiraw_HDR_Capture.so
+vendor/lib/mt6855/libCamera_mtk000mipiraw_HDR_Preview.so
+vendor/lib/mt6855/libCamera_mtk000mipiraw_HDR_Reconfig_Preview.so
+vendor/lib/mt6855/libCamera_mtk000mipiraw_HDR_Reconfig_Video.so
+vendor/lib/mt6855/libCamera_mtk000mipiraw_HDR_Video.so
+vendor/lib/mt6855/libCamera_mtk000mipiraw_N3D_Capture.so
+vendor/lib/mt6855/libCamera_mtk000mipiraw_N3D_Preview.so
+vendor/lib/mt6855/libCamera_mtk000mipiraw_N3D_Video.so
+vendor/lib/mt6855/libCamera_mtk000mipiraw_P1_YUV.so
+vendor/lib/mt6855/libCamera_mtk000mipiraw_Scene_Capture.so
+vendor/lib/mt6855/libCamera_mtk000mipiraw_Scene_Capture_4cell.so
+vendor/lib/mt6855/libCamera_mtk000mipiraw_Scene_Preview.so
+vendor/lib/mt6855/libCamera_mtk000mipiraw_Scene_Preview_4k.so
+vendor/lib/mt6855/libCamera_mtk000mipiraw_Scene_Preview_ZSD_Flash.so
+vendor/lib/mt6855/libCamera_mtk000mipiraw_Video_1080.so
+vendor/lib/mt6855/libCamera_mtk000mipiraw_Video_4k.so
+vendor/lib/mt6855/libPVROCL.so
+vendor/lib/mt6855/libPVRScopeServices.so
+vendor/lib/mt6855/libaiawb_moon_model.so
+vendor/lib/mt6855/libaiawb_sun_model.so
+vendor/lib/mt6855/libgpudataproducer.so
+vendor/lib/mt6855/libmemtrack_GL.so
+vendor/lib/mt6855/libmpvr.so
+vendor/lib/mt6855/libneuron_adapter_mgvi.so
+vendor/lib/mt6855/libnir_neon_driver.so
+vendor/lib/mt6855/libpq_cust_base.so
+vendor/lib/mt6855/libvcodec_utility.so
+vendor/lib/mt6855/libvcodec_utility_v3a.so
+vendor/lib/mt6855/libvcodecdrv.so
+vendor/lib/mt6855/libvcodecdrv_v3a.so
+vendor/lib/mt6855/libvpudv3a_vcodec.so
+vendor/lib/mt6855/mot_cancunf_hi1634q_mipi_raw_row_tuning.so
+vendor/lib/mt6855/mot_cancunf_hi1634q_mipi_raw_tuning.so
+vendor/lib/mt6855/mot_cancunf_jns_yova_mipi_raw_row_tuning.so
+vendor/lib/mt6855/mot_cancunf_jns_yova_mipi_raw_tuning.so
+vendor/lib/mt6855/mot_cancunf_ov50d_mipi_raw_row_tuning.so
+vendor/lib/mt6855/mot_cancunf_ov50d_mipi_raw_tuning.so
+vendor/lib/mt6855/mot_cancunf_s5k3p9sp04_mipi_raw_row_tuning.so
+vendor/lib/mt6855/mot_cancunf_s5k3p9sp04_mipi_raw_tuning.so
+vendor/lib/mt6855/mot_cancunf_s5k4h7_mipi_raw_row_tuning.so
+vendor/lib/mt6855/mot_cancunf_s5k4h7_mipi_raw_tuning.so
+vendor/lib/mt6855/mot_cancunf_s5kjns_mipi_raw_row_tuning.so
+vendor/lib/mt6855/mot_cancunf_s5kjns_mipi_raw_tuning.so
+vendor/lib/mt6855/mot_cancunf_sc202_mipi_raw_row_tuning.so
+vendor/lib/mt6855/mot_cancunf_sc202_mipi_raw_tuning.so
+vendor/lib/mt6855/mtk000_mipi_raw_tuning.so
+vendor/lib/AVCSecureVdecCA.so
+vendor/lib/HEVCSecureVdecCA.so
+vendor/lib/VP9SecureVdecCA.so
+vendor/lib/com.fingerprints.extension@1.0.so
+vendor/lib/libAVCSecureVencCA.so
+vendor/lib/libHEVCdec_sa.ca7.android.so
+vendor/lib/libMcRegistry.so
+vendor/lib/libMtkAinrEnh.so
+vendor/lib/libMtkSpeechEnh.so
+vendor/lib/libMtkSpeechEnh_swb.so
+vendor/lib/libPVROCL.so
+vendor/lib/libPVRScopeServices.so
+vendor/lib/libTBaseProvisioning.so
+vendor/lib/libTEECommon.so
+vendor/lib/lib_ainr_enh.so
+vendor/lib/lib_android_keymaster_keymint_utils.so
+vendor/lib/lib_iir.so
+vendor/lib/libaal_key.so
+vendor/lib/libaiawb_moon_model.so
+vendor/lib/libaiawb_sun_model.so
+vendor/lib/libapmonitor_vendor.so
+vendor/lib/libappgamepq.so
+vendor/lib/libapu_mdw.so
+vendor/lib/libapu_mdw_batch.so
+vendor/lib/libapusys.so
+vendor/lib/libapusys_edma.so
+vendor/lib/libarmnn.so
+vendor/lib/libarmnn_ndk.mtk.vndk.so
+vendor/lib/libasn1c_core.so
+vendor/lib/libasn1c_mapi.so
+vendor/lib/libasn1c_mdmi.so
+vendor/lib/libaualgo_azp_component.so
+vendor/lib/libaualgo_sst_component.so
+vendor/lib/libaudio_param_parser-vnd.so
+vendor/lib/libaudiocompensationfilter_vendor.so
+vendor/lib/libaudiocompensationfilterc.so
+vendor/lib/libaudiocomponentengine_vendor.so
+vendor/lib/libaudiocomponentenginec.so
+vendor/lib/libaudiocustparam_vendor.so
+vendor/lib/libaudiodcrflt_vendor.so
+vendor/lib/libaudiofmtconv.so
+vendor/lib/libaudioloudc.so
+vendor/lib/libaudioprimarydevicehalifclient.so
+vendor/lib/libaudiosmartpamtk.so
+vendor/lib/libaurisysdemo.so
+vendor/lib/libawinic_mtk_aurisys.so
+vendor/lib/libbessound_hd_mtk_vendor.so
+vendor/lib/libblisrc32_vendor.so
+vendor/lib/libbluetooth_hw_test.so
+vendor/lib/libbluetooth_mtk_pure.so
+vendor/lib/libbluetooth_relayer.so
+vendor/lib/libbluetoothem_mtk.so
+vendor/lib/libcapctrl.so
+vendor/lib/libcares_naptr.so
+vendor/lib/libcarrierconfig.so
+vendor/lib/libccci_util.so
+vendor/lib/libcmdl.so
+vendor/lib/libcmdl_ndk.mtk.vndk.so
+vendor/lib/libconnfem.so
+vendor/lib/libcppcose_rkp.so
+vendor/lib/libcustom_nvram.so
+vendor/lib/libcvsd_mtk.so
+vendor/lib/libdecrypt.so
+vendor/lib/libdre.so
+vendor/lib/libdynamiclog.so
+vendor/lib/libfgauge_gm30.so
+vendor/lib/libfile_op.so
+vendor/lib/libflatbuffers-cpp.so
+vendor/lib/libfp_ext_svc2.so
+vendor/lib/libfpc.sensortest.hal.so
+vendor/lib/libgpudataproducer.so
+vendor/lib/libgralloctypes_mtk.so
+vendor/lib/libgz_gp_client.so
+vendor/lib/libgz_uree.so
+vendor/lib/libh264dec_customize.so
+vendor/lib/libh264dec_sa.ca7.so
+vendor/lib/libh264dec_sd.ca7.so
+vendor/lib/libh264dec_se.ca7.so
+vendor/lib/libhdrvideo.so
+vendor/lib/libhevce_sb.ca7.android.so
+vendor/lib/libhwm.so
+vendor/lib/libicd_decoder.so
+vendor/lib/libimgsensorca.so
+vendor/lib/libipsec_ims_shr.so
+vendor/lib/libiqi_bridge.so
+vendor/lib/libispcameraca.so
+vendor/lib/libkeymint.so
+vendor/lib/liblog_vendor.so
+vendor/lib/libmemtrack_GL.so
+vendor/lib/libminiui.so
+vendor/lib/libmmprofile.so
+vendor/lib/libmnetlink_v104.so
+vendor/lib/libmp4enc_sa.ca7.so
+vendor/lib/libmpvr.so
+vendor/lib/libmsbc_mtk.so
+vendor/lib/libmtk_bsg.so
+vendor/lib/libmtkares.so
+vendor/lib/libmtklimiter_vendor.so
+vendor/lib/libmtknetutils.so
+vendor/lib/libmtkperf_client_vendor.so
+vendor/lib/libmtkshifter_vendor.so
+vendor/lib/libmtkspparser.so
+vendor/lib/libmtkspparser_swb.so
+vendor/lib/libmtksysutils.so
+vendor/lib/libmvpu_cic_ci_compiler.so
+vendor/lib/libmvpu_clc_cl_compiler.so
+vendor/lib/libmvpu_clc_mvpu_debuginfo.so
+vendor/lib/libmvpu_clc_mvpu_elf.so
+vendor/lib/libmvpu_clc_mvpu_utility.so
+vendor/lib/libmvpu_clc_vpu_isa.so
+vendor/lib/libmvpu_config.so
+vendor/lib/libmvpu_engine.so
+vendor/lib/libmvpu_engine_pub.so
+vendor/lib/libmvpu_pattern.so
+vendor/lib/libmvpu_pattern_pub.so
+vendor/lib/libmvpu_runtime.so
+vendor/lib/libmvpu_runtime_pub.so
+vendor/lib/libmvpuop_mtk_cv.so
+vendor/lib/libmvpuop_mtk_nn.so
+vendor/lib/libneuroeara.so
+vendor/lib/libneuron_adapter_mgvi.so
+vendor/lib/libneuron_graph_delegate.mtk.so
+vendor/lib/libneuropilot_hal_utils.so
+vendor/lib/libnir_neon_driver.so
+vendor/lib/libnir_neon_driver_ndk.mtk.vndk.so
+vendor/lib/libnpagent.so
+vendor/lib/libnwk_opt_halwrap_vendor.so
+vendor/lib/libnxp_extamp_intf.so
+vendor/lib/liboem_specific.so
+vendor/lib/libperfctl_vendor.so
+vendor/lib/libpkip.so
+vendor/lib/libpkm.so
+vendor/lib/libpn557_fw.so
+vendor/lib/libpn560_fw.so
+vendor/lib/libportrait_repair_ppl3_ocl.so
+vendor/lib/libpowerhal.so
+vendor/lib/libpowerhalwrap_vendor.so
+vendor/lib/libpq_cust_base.so
+vendor/lib/librcs_interface.so
+vendor/lib/librcs_volte_core.so
+vendor/lib/librgbwlightsensor.so
+vendor/lib/librpc.so
+vendor/lib/librt_extamp_intf.so
+vendor/lib/libruy.so
+vendor/lib/libscltm.so
+vendor/lib/libsimlock.so
+vendor/lib/libsimmelock.so
+vendor/lib/libsn100u_fw.so
+vendor/lib/libsn220u_fw.so
+vendor/lib/libsoft_attestation_cert.so
+vendor/lib/libspeech_enh_lib.so
+vendor/lib/libspeechparser_vendor.so
+vendor/lib/libstorage_otp.so
+vendor/lib/libtflite_mtk.so
+vendor/lib/libthha.so
+vendor/lib/libtlcWidevineModularDrm.so
+vendor/lib/libtpa.so
+vendor/lib/libtranslator_mapi_v3.0.so
+vendor/lib/libtranslator_mdmi_v2.8.2.so
+vendor/lib/libtranslator_utils.so
+vendor/lib/libudf.so
+vendor/lib/liburee_meta_drmkeyinstall.so
+vendor/lib/libvcodec_oal.so
+vendor/lib/libvcodec_utility.so
+vendor/lib/libvcodec_utility_plat.mt6789.so
+vendor/lib/libvcodec_utility_plat.mt6855.so
+vendor/lib/libvcodec_utility_plat.mt6879.so
+vendor/lib/libvcodec_utility_v3a.so
+vendor/lib/libvcodecdrv.so
+vendor/lib/libvcodecdrv_header_stub.so
+vendor/lib/libvcodecdrv_v3a.so
+vendor/lib/libviagpsrpc.so
+vendor/lib/libvp8dec_sa.ca7.so
+vendor/lib/libvp8enc_sa.ca7.so
+vendor/lib/libvp9dec_sa.ca7.so
+vendor/lib/libvpu5.so
+vendor/lib/libvpud_vcodec.so
+vendor/lib/libvpudv3a_vcodec.so
+vendor/lib/libvpx.so
+vendor/lib/libwapi.so
+vendor/lib/libwpa_client.so
+vendor/lib/meta_wifi_data.so
+vendor/lib/mot_cancunf_hi1634q_mipi_raw_row_tuning.so
+vendor/lib/mot_cancunf_hi1634q_mipi_raw_tuning.so
+vendor/lib/mot_cancunf_jns_yova_mipi_raw_row_tuning.so
+vendor/lib/mot_cancunf_jns_yova_mipi_raw_tuning.so
+vendor/lib/mot_cancunf_ov50d_mipi_raw_row_tuning.so
+vendor/lib/mot_cancunf_ov50d_mipi_raw_tuning.so
+vendor/lib/mot_cancunf_s5k3p9sp04_mipi_raw_row_tuning.so
+vendor/lib/mot_cancunf_s5k3p9sp04_mipi_raw_tuning.so
+vendor/lib/mot_cancunf_s5k4h7_mipi_raw_row_tuning.so
+vendor/lib/mot_cancunf_s5k4h7_mipi_raw_tuning.so
+vendor/lib/mot_cancunf_s5kjns_mipi_raw_row_tuning.so
+vendor/lib/mot_cancunf_s5kjns_mipi_raw_tuning.so
+vendor/lib/mot_cancunf_sc202_mipi_raw_row_tuning.so
+vendor/lib/mot_cancunf_sc202_mipi_raw_tuning.so
+vendor/lib/motorola.hardware.tcmd@1.0.so
+vendor/lib/mtk000_mipi_raw_tuning.so
+vendor/lib/vendor.fpsensor.hardware.fpsensorhidlsvc@2.0.so
+vendor/lib/vendor.mediatek.hardware.apmonitor@2.0.so
+vendor/lib/vendor.mediatek.hardware.apuware.utils@2.0.so
+vendor/lib/vendor.mediatek.hardware.mdmonitor@1.0.so
+vendor/lib/vendor.mediatek.hardware.netdagent@1.0.so
+vendor/lib/vendor.mediatek.hardware.neuropilot.agent@1.0.so
+vendor/lib/vendor.mediatek.hardware.neuropilot.agent@1.1.so
+vendor/lib/vendor.mediatek.hardware.neuropilot.agent@1.2.so
+vendor/lib/vendor.mediatek.hardware.nvram@1.0.so
+vendor/lib/vendor.mediatek.hardware.nvram@1.1.so
+vendor/lib/vendor.mediatek.hardware.nwk_opt@1.0.so
+vendor/lib64/hw/mt6855/vendor.mediatek.hardware.camera.ccap@1.0-impl.so
+vendor/lib64/hw/audio_policy.stub.so
+vendor/lib64/hw/fpsensor_fingerprint.default.so
+vendor/lib64/hw/libMcGatekeeper.so
+vendor/lib64/hw/libSoftGatekeeper.so
+vendor/lib64/hw/thermal_hal.so
+vendor/lib64/hw/vendor.mediatek.hardware.camera.ccap@1.0-impl.so
+vendor/lib64/hw/vendor.mediatek.hardware.nvram@1.1-impl.so
+vendor/lib64/mt6855/lib3a.dce.so
+vendor/lib64/mt6855/libCamera_mtk000mipiraw_E2EHDR_Preview.so
+vendor/lib64/mt6855/libCamera_mtk000mipiraw_E2EHDR_Video.so
+vendor/lib64/mt6855/libCamera_mtk000mipiraw_Face_Capture.so
+vendor/lib64/mt6855/libCamera_mtk000mipiraw_Flash_Capture.so
+vendor/lib64/mt6855/libCamera_mtk000mipiraw_HDR_Capture.so
+vendor/lib64/mt6855/libCamera_mtk000mipiraw_HDR_Preview.so
+vendor/lib64/mt6855/libCamera_mtk000mipiraw_HDR_Reconfig_Preview.so
+vendor/lib64/mt6855/libCamera_mtk000mipiraw_HDR_Reconfig_Video.so
+vendor/lib64/mt6855/libCamera_mtk000mipiraw_HDR_Video.so
+vendor/lib64/mt6855/libCamera_mtk000mipiraw_N3D_Capture.so
+vendor/lib64/mt6855/libCamera_mtk000mipiraw_N3D_Preview.so
+vendor/lib64/mt6855/libCamera_mtk000mipiraw_N3D_Video.so
+vendor/lib64/mt6855/libCamera_mtk000mipiraw_P1_YUV.so
+vendor/lib64/mt6855/libCamera_mtk000mipiraw_Scene_Capture.so
+vendor/lib64/mt6855/libCamera_mtk000mipiraw_Scene_Capture_4cell.so
+vendor/lib64/mt6855/libCamera_mtk000mipiraw_Scene_Preview.so
+vendor/lib64/mt6855/libCamera_mtk000mipiraw_Scene_Preview_4k.so
+vendor/lib64/mt6855/libCamera_mtk000mipiraw_Scene_Preview_ZSD_Flash.so
+vendor/lib64/mt6855/libCamera_mtk000mipiraw_Video_1080.so
+vendor/lib64/mt6855/libCamera_mtk000mipiraw_Video_4k.so
+vendor/lib64/mt6855/libDR.so
+vendor/lib64/mt6855/libPVROCL.so
+vendor/lib64/mt6855/libPVRScopeServices.so
+vendor/lib64/mt6855/libaaa_ltm.so
+vendor/lib64/mt6855/libaaa_ltmx.so
+vendor/lib64/mt6855/libacdk.so
+vendor/lib64/mt6855/libaiawb_moon_model.so
+vendor/lib64/mt6855/libaiawb_sun_model.so
+vendor/lib64/mt6855/libaibc_tuning.so
+vendor/lib64/mt6855/libaibc_tuning_p2.so
+vendor/lib64/mt6855/libaibc_tuning_p3.so
+vendor/lib64/mt6855/libaibc_tuning_p4.so
+vendor/lib64/mt6855/libaidepth_tuning.so
+vendor/lib64/mt6855/libcam.hal3a.cctsvr.so
+vendor/lib64/mt6855/libcam.hal3a.v3.dng.so
+vendor/lib64/mt6855/libcam.halisp.common.so
+vendor/lib64/mt6855/libcam.halisp.so
+vendor/lib64/mt6855/libcam.isptuning.so
+vendor/lib64/mt6855/libcameracustom.camera_exif.so
+vendor/lib64/mt6855/libcameracustom.plugin.so
+vendor/lib64/mt6855/libgpudataproducer.so
+vendor/lib64/mt6855/libmemtrack_GL.so
+vendor/lib64/mt6855/libmnl.so
+vendor/lib64/mt6855/libmpvr.so
+vendor/lib64/mt6855/libmtkcam_fwkutils.so
+vendor/lib64/mt6855/libmtkcam_modulefactory_aaa.so
+vendor/lib64/mt6855/libmtkcam_modulefactory_custom.so
+vendor/lib64/mt6855/libmtkcam_modulefactory_drv.so
+vendor/lib64/mt6855/libmtkcam_modulefactory_utils.so
+vendor/lib64/mt6855/libneuron_adapter_mgvi.so
+vendor/lib64/mt6855/libneuron_runtime.5.so
+vendor/lib64/mt6855/libnir_neon_driver.so
+vendor/lib64/mt6855/libpq_cust_base.so
+vendor/lib64/mt6855/libvainr_model.so
+vendor/lib64/mt6855/mot_cancunf_hi1634q_mipi_raw_row_tuning.so
+vendor/lib64/mt6855/mot_cancunf_hi1634q_mipi_raw_tuning.so
+vendor/lib64/mt6855/mot_cancunf_jns_yova_mipi_raw_row_tuning.so
+vendor/lib64/mt6855/mot_cancunf_jns_yova_mipi_raw_tuning.so
+vendor/lib64/mt6855/mot_cancunf_ov50d_mipi_raw_row_tuning.so
+vendor/lib64/mt6855/mot_cancunf_ov50d_mipi_raw_tuning.so
+vendor/lib64/mt6855/mot_cancunf_s5k3p9sp04_mipi_raw_row_tuning.so
+vendor/lib64/mt6855/mot_cancunf_s5k3p9sp04_mipi_raw_tuning.so
+vendor/lib64/mt6855/mot_cancunf_s5k4h7_mipi_raw_row_tuning.so
+vendor/lib64/mt6855/mot_cancunf_s5k4h7_mipi_raw_tuning.so
+vendor/lib64/mt6855/mot_cancunf_s5kjns_mipi_raw_row_tuning.so
+vendor/lib64/mt6855/mot_cancunf_s5kjns_mipi_raw_tuning.so
+vendor/lib64/mt6855/mot_cancunf_sc202_mipi_raw_row_tuning.so
+vendor/lib64/mt6855/mot_cancunf_sc202_mipi_raw_tuning.so
+vendor/lib64/mt6855/mtk000_mipi_raw_tuning.so
+vendor/lib64/mtkcam/mt6855/libmtkcam_streaminfo_plugin-p1stt.so
+vendor/lib64/mtkcam/libmtkcam_streaminfo_plugin-p1stt.so
+vendor/lib64/APUWareApusysServer.so
+vendor/lib64/APUWareHmpServer.so
+vendor/lib64/APUWareUtilsServer.so
+vendor/lib64/AVCSecureVdecCA.so
+vendor/lib64/HEVCSecureVdecCA.so
+vendor/lib64/VP9SecureVdecCA.so
+vendor/lib64/com.fingerprints.extension@1.0.so
+vendor/lib64/lbs_hidl_service-impl.so
+vendor/lib64/lib3a.ae.pipe.so
+vendor/lib64/lib3a.dce.so
+vendor/lib64/libAVCSecureVencCA.so
+vendor/lib64/libBasicModule.so
+vendor/lib64/libDR.so
+vendor/lib64/libMtkAinrEnh.so
+vendor/lib64/libMtkSpeechEnh.so
+vendor/lib64/libMtkSpeechEnh_swb.so
+vendor/lib64/libPVROCL.so
+vendor/lib64/libPVRScopeServices.so
+vendor/lib64/libTEECommon.so
+vendor/lib64/libVkLayer_mtk_rt_sdk.so
+vendor/lib64/lib_ainr_enh.so
+vendor/lib64/lib_eara_io_scndet.so
+vendor/lib64/lib_eara_io_service.so
+vendor/lib64/lib_eara_io_systracer.so
+vendor/lib64/lib_eara_io_timer.so
+vendor/lib64/lib_eara_io_util.so
+vendor/lib64/lib_iir.so
+vendor/lib64/libaaa_ltm.so
+vendor/lib64/libaaa_ltmx.so
+vendor/lib64/libaal_key.so
+vendor/lib64/libacdk.so
+vendor/lib64/libadropbox.so
+vendor/lib64/libaiawb_moon_model.so
+vendor/lib64/libaiawb_sun_model.so
+vendor/lib64/libaibc_tuning.so
+vendor/lib64/libaibc_tuning_p2.so
+vendor/lib64/libaibc_tuning_p3.so
+vendor/lib64/libaibc_tuning_p4.so
+vendor/lib64/libaidepth_tuning.so
+vendor/lib64/libalps.so
+vendor/lib64/libapmonitor_vendor.so
+vendor/lib64/libappgamepq.so
+vendor/lib64/libapu_mdw.so
+vendor/lib64/libapu_mdw_batch.so
+vendor/lib64/libapusys.so
+vendor/lib64/libapusys_edma.so
+vendor/lib64/libarmnn.so
+vendor/lib64/libarmnn_ndk.mtk.vndk.so
+vendor/lib64/libasn1c_core.so
+vendor/lib64/libasn1c_mapi.so
+vendor/lib64/libasn1c_mdmi.so
+vendor/lib64/libaualgo_azp_component.so
+vendor/lib64/libaualgo_sst_component.so
+vendor/lib64/libaudio_param_parser-vnd.so
+vendor/lib64/libaudiocompensationfilter_vendor.so
+vendor/lib64/libaudiocompensationfilterc.so
+vendor/lib64/libaudiocomponentengine_vendor.so
+vendor/lib64/libaudiocomponentenginec.so
+vendor/lib64/libaudiocustparam_vendor.so
+vendor/lib64/libaudiodcrflt_vendor.so
+vendor/lib64/libaudiofmtconv.so
+vendor/lib64/libaudioloudc.so
+vendor/lib64/libaudioprimarydevicehalifclient.so
+vendor/lib64/libaudiosmartpamtk.so
+vendor/lib64/libaurisysdemo.so
+vendor/lib64/libawinic_mtk_aurisys.so
+vendor/lib64/libbessound_hd_mtk_vendor.so
+vendor/lib64/libbinderdebug.so
+vendor/lib64/libblisrc32_vendor.so
+vendor/lib64/libbluetooth_hw_test.so
+vendor/lib64/libbluetooth_mtk_pure.so
+vendor/lib64/libbluetooth_relayer.so
+vendor/lib64/libbluetoothem_mtk.so
+vendor/lib64/libcam.hal3a.cctsvr.so
+vendor/lib64/libcam.hal3a.v3.dng.so
+vendor/lib64/libcam.halisp.common.so
+vendor/lib64/libcam.halisp.so
+vendor/lib64/libcam.isptuning.so
+vendor/lib64/libcamalgo.WarpMapResizer.so
+vendor/lib64/libcamalgo.hdr10p.so
+vendor/lib64/libcamalgo.mcnr.so
+vendor/lib64/libcamalgo.n3d.so
+vendor/lib64/libcamalgo.vsdofUtil.so
+vendor/lib64/libcameracustom.camera_exif.so
+vendor/lib64/libcameracustom.plugin.so
+vendor/lib64/libcapctrl.so
+vendor/lib64/libcares_naptr.so
+vendor/lib64/libcarrierconfig.so
+vendor/lib64/libccci_util.so
+vendor/lib64/libcmdl.so
+vendor/lib64/libcmdl_ndk.mtk.vndk.so
+vendor/lib64/libcodec2_soft_ac4dec.so
+vendor/lib64/libcodec2_soft_ddpdec.so
+vendor/lib64/libconnfem.so
+vendor/lib64/libcustom_nvram.so
+vendor/lib64/libcvsd_mtk.so
+vendor/lib64/libdecrypt.so
+vendor/lib64/libdre.so
+vendor/lib64/libdynamiclog.so
+vendor/lib64/libfeaturepolicy.so
+vendor/lib64/libfft_vendor.so
+vendor/lib64/libfgauge_gm30.so
+vendor/lib64/libfile_op.so
+vendor/lib64/libflatbuffers-cpp.so
+vendor/lib64/libforkexecwrap.so
+vendor/lib64/libfp_ext_svc2.so
+vendor/lib64/libfpc.sensortest.hal.so
+vendor/lib64/libgpudataproducer.so
+vendor/lib64/libgralloctypes_mtk.so
+vendor/lib64/libgwsd-ril.so
+vendor/lib64/libgwsdv2-ril.so
+vendor/lib64/libgwsdv3-ril.so
+vendor/lib64/libgz_gp_client.so
+vendor/lib64/libgz_uree.so
+vendor/lib64/libhdrvideo.so
+vendor/lib64/libhevce_sb.ca7.android.so
+vendor/lib64/libhfmanagerwrapper.so
+vendor/lib64/libhwm.so
+vendor/lib64/libicd_decoder.so
+vendor/lib64/libifcutils_mtk.so
+vendor/lib64/libimgsensorca.so
+vendor/lib64/libipsec_ims_shr.so
+vendor/lib64/libiqi_bridge.so
+vendor/lib64/libispcameraca.so
+vendor/lib64/libkmsetkey.so
+vendor/lib64/liblog_vendor.so
+vendor/lib64/libmemtrack_GL.so
+vendor/lib64/libminiui.so
+vendor/lib64/libmipc.so
+vendor/lib64/libmmagent.so
+vendor/lib64/libmmprofile.so
+vendor/lib64/libmnetlink_v104.so
+vendor/lib64/libmnl.so
+vendor/lib64/libmpvr.so
+vendor/lib64/libmsbc_mtk.so
+vendor/lib64/libmtk-ril.so
+vendor/lib64/libmtk-rilop.so
+vendor/lib64/libmtk_bsg.so
+vendor/lib64/libmtkares.so
+vendor/lib64/libmtkcam_fdWarpConvert.so
+vendor/lib64/libmtkcam_fwkutils.so
+vendor/lib64/libmtkcam_modulefactory_aaa.so
+vendor/lib64/libmtkcam_modulefactory_custom.so
+vendor/lib64/libmtkcam_modulefactory_drv.so
+vendor/lib64/libmtkcam_modulefactory_utils.so
+vendor/lib64/libmtkisp_metadata_v2.so
+vendor/lib64/libmtklimiter_vendor.so
+vendor/lib64/libmtkmipc-ril.so
+vendor/lib64/libmtkmipc-rilop.so
+vendor/lib64/libmtknetcap.so
+vendor/lib64/libmtknetutils.so
+vendor/lib64/libmtkperf_client_vendor.so
+vendor/lib64/libmtkshifter_vendor.so
+vendor/lib64/libmtkspparser.so
+vendor/lib64/libmtkspparser_swb.so
+vendor/lib64/libmtksysutils.so
+vendor/lib64/libmtktinyxml.so
+vendor/lib64/libmvpu_cic_ci_compiler.so
+vendor/lib64/libmvpu_clc_cl_compiler.so
+vendor/lib64/libmvpu_clc_mvpu_debuginfo.so
+vendor/lib64/libmvpu_clc_mvpu_elf.so
+vendor/lib64/libmvpu_clc_mvpu_utility.so
+vendor/lib64/libmvpu_clc_vpu_isa.so
+vendor/lib64/libmvpu_config.so
+vendor/lib64/libmvpu_engine.so
+vendor/lib64/libmvpu_engine_pub.so
+vendor/lib64/libmvpu_pattern.so
+vendor/lib64/libmvpu_pattern_pub.so
+vendor/lib64/libmvpu_runtime.so
+vendor/lib64/libmvpu_runtime_pub.so
+vendor/lib64/libmvpuop_mtk_cv.so
+vendor/lib64/libmvpuop_mtk_nn.so
+vendor/lib64/libneuroeara.so
+vendor/lib64/libneuron_adapter_mgvi.so
+vendor/lib64/libneuron_graph_delegate.mtk.so
+vendor/lib64/libneuron_platform.so
+vendor/lib64/libneuron_runtime.5.so
+vendor/lib64/libneuropilot_hal_utils.so
+vendor/lib64/libnir_neon_driver.so
+vendor/lib64/libnir_neon_driver_ndk.mtk.vndk.so
+vendor/lib64/libnpagent.so
+vendor/lib64/libnpagent_server.so
+vendor/lib64/libnwk_opt_halwrap_vendor.so
+vendor/lib64/libnxp_extamp_intf.so
+vendor/lib64/liboem_specific.so
+vendor/lib64/libperfctl_vendor.so
+vendor/lib64/libpkm.so
+vendor/lib64/libpn557_fw.so
+vendor/lib64/libpn560_fw.so
+vendor/lib64/libportrait_repair_ppl3_ocl.so
+vendor/lib64/libpowerhal.so
+vendor/lib64/libpowerhalwrap_vendor.so
+vendor/lib64/libpq_cust_base.so
+vendor/lib64/librgbwlightsensor.so
+vendor/lib64/librpc.so
+vendor/lib64/librsumodem.so
+vendor/lib64/librt_extamp_intf.so
+vendor/lib64/libruy.so
+vendor/lib64/libscltm.so
+vendor/lib64/libsimlock.so
+vendor/lib64/libsimmelock.so
+vendor/lib64/libsn100u_fw.so
+vendor/lib64/libsn220u_fw.so
+vendor/lib64/libspeech_enh_lib.so
+vendor/lib64/libspeechparser_vendor.so
+vendor/lib64/libstfactory-vendor.so
+vendor/lib64/libstorage_otp.so
+vendor/lib64/libtflite_mtk.so
+vendor/lib64/libthha.so
+vendor/lib64/libtlcWidevineModularDrm.so
+vendor/lib64/libtranslator_mapi_v3.0.so
+vendor/lib64/libtranslator_mdmi_v2.8.2.so
+vendor/lib64/libtranslator_utils.so
+vendor/lib64/libtrm.so
+vendor/lib64/libudf.so
+vendor/lib64/liburee_meta_drmkeyinstall.so
+vendor/lib64/libvainr_model.so
+vendor/lib64/libvcodec_oal.so
+vendor/lib64/libvcodecdrv_header_stub.so
+vendor/lib64/libvia-ril.so
+vendor/lib64/libviagpsrpc.so
+vendor/lib64/libviamipc-ril.so
+vendor/lib64/libvpu.so
+vendor/lib64/libvpu5.so
+vendor/lib64/libwapi.so
+vendor/lib64/libwifitest.so
+vendor/lib64/libwpa_client.so
+vendor/lib64/libwpfa.so
+vendor/lib64/libz_stable.so
+vendor/lib64/meta_wifi_data.so
+vendor/lib64/mot_cancunf_hi1634q_mipi_raw_row_tuning.so
+vendor/lib64/mot_cancunf_hi1634q_mipi_raw_tuning.so
+vendor/lib64/mot_cancunf_jns_yova_mipi_raw_row_tuning.so
+vendor/lib64/mot_cancunf_jns_yova_mipi_raw_tuning.so
+vendor/lib64/mot_cancunf_ov50d_mipi_raw_row_tuning.so
+vendor/lib64/mot_cancunf_ov50d_mipi_raw_tuning.so
+vendor/lib64/mot_cancunf_s5k3p9sp04_mipi_raw_row_tuning.so
+vendor/lib64/mot_cancunf_s5k3p9sp04_mipi_raw_tuning.so
+vendor/lib64/mot_cancunf_s5k4h7_mipi_raw_row_tuning.so
+vendor/lib64/mot_cancunf_s5k4h7_mipi_raw_tuning.so
+vendor/lib64/mot_cancunf_s5kjns_mipi_raw_row_tuning.so
+vendor/lib64/mot_cancunf_s5kjns_mipi_raw_tuning.so
+vendor/lib64/mot_cancunf_sc202_mipi_raw_row_tuning.so
+vendor/lib64/mot_cancunf_sc202_mipi_raw_tuning.so
+vendor/lib64/motorola.hardware.fdrcontrol@1.0.so
+vendor/lib64/motorola.hardware.fdrcontrol@1.1.so
+vendor/lib64/motorola.hardware.fdrcontrol@1.2.so
+vendor/lib64/motorola.hardware.mtk.fm-V1-ndk_platform.so
+vendor/lib64/motorola.hardware.sarwifi-V1-ndk_platform.so
+vendor/lib64/motrilutils.so
+vendor/lib64/mtk000_mipi_raw_tuning.so
+vendor/lib64/nwk_opt_imp.so
+vendor/lib64/vendor.fpsensor.hardware.fpsensorhidlsvc@2.0.so
+vendor/lib64/vendor.mediatek.hardware.apmonitor@2.0.so
+vendor/lib64/vendor.mediatek.hardware.apuware.apusys@2.0.so
+vendor/lib64/vendor.mediatek.hardware.apuware.apusys@2.1.so
+vendor/lib64/vendor.mediatek.hardware.apuware.hmp@1.0.so
+vendor/lib64/vendor.mediatek.hardware.apuware.utils@2.0.so
+vendor/lib64/vendor.mediatek.hardware.atci@1.0.so
+vendor/lib64/vendor.mediatek.hardware.camera.ccap@1.0.so
+vendor/lib64/vendor.mediatek.hardware.clientapi@1.0.so
+vendor/lib64/vendor.mediatek.hardware.dmc@1.0.so
+vendor/lib64/vendor.mediatek.hardware.dmc@1.1.so
+vendor/lib64/vendor.mediatek.hardware.dmc@1.2.so
+vendor/lib64/vendor.mediatek.hardware.lbs@1.0.so
+vendor/lib64/vendor.mediatek.hardware.mdmonitor@1.0.so
+vendor/lib64/vendor.mediatek.hardware.netdagent@1.0.so
+vendor/lib64/vendor.mediatek.hardware.neuropilot.agent@1.0.so
+vendor/lib64/vendor.mediatek.hardware.neuropilot.agent@1.1.so
+vendor/lib64/vendor.mediatek.hardware.neuropilot.agent@1.2.so
+vendor/lib64/vendor.mediatek.hardware.nvram@1.0.so
+vendor/lib64/vendor.mediatek.hardware.nvram@1.1.so
+vendor/lib64/vendor.mediatek.hardware.nwk_opt@1.0.so
+vendor/lib64/vendor.mediatek.hardware.radio_op@3.0.so
+vendor/lib64/vendor.trustonic.alps.alps_device@1.0.so
+vendor/lib64/vendor.trustonic.alps.alps_device@1.1.so
+vendor/odm/etc/permissions/sku_b/unavail.android.hardware.nfc.hce.xml
+vendor/odm/etc/permissions/sku_b/unavail.android.hardware.nfc.hcef.xml
+vendor/odm/etc/permissions/sku_b/unavail.android.hardware.nfc.uicc.xml
+vendor/odm/etc/permissions/sku_b/unavail.android.hardware.nfc.xml
+vendor/odm/etc/permissions/sku_d/unavail.android.hardware.nfc.hce.xml
+vendor/odm/etc/permissions/sku_d/unavail.android.hardware.nfc.hcef.xml
+vendor/odm/etc/permissions/sku_d/unavail.android.hardware.nfc.uicc.xml
+vendor/odm/etc/permissions/sku_d/unavail.android.hardware.nfc.xml
+vendor/odm/etc/permissions/sku_de/android.hardware.nfc.ese.xml
+vendor/odm/etc/permissions/sku_de/android.hardware.se.omapi.ese.xml
+vendor/odm/etc/permissions/sku_e/android.hardware.nfc.ese.xml
+vendor/odm/etc/permissions/sku_e/android.hardware.se.omapi.ese.xml
+vendor/odm/etc/vintf/manifest_b.xml
+vendor/odm/etc/vintf/manifest_d.xml
+vendor/odm/etc/vintf/manifest_de.xml
+vendor/odm/etc/vintf/manifest_dn.xml
+vendor/odm/etc/vintf/manifest_e.xml
+vendor/odm/etc/vintf/manifest_n.xml
+vendor/res/images/lcd_test_00.png
+vendor/res/images/lcd_test_01.png
+vendor/res/images/lcd_test_02.png
+vendor/res/sound/ringtone.wav
+vendor/res/sound/testpattern1.wav
+vendor/usr/idc/uinput-fpc.idc
+vendor/usr/idc/uinput-fpsensor.idc
+vendor/usr/idc/uinput-goodix.idc
+vendor/usr/keylayout/ReadyForAirRemote_Consumer_Control.kl
+vendor/usr/keylayout/ReadyForAirRemote_Keyboard.kl
+vendor/usr/keylayout/uinput-fpc.kl
+vendor/usr/keylayout/uinput-fpsensor.kl
+vendor/usr/keylayout/uinput_nav.kl
+vendor/ro.prop
+vendor/rw.prop
diff --git a/rootdir/Android.bp b/rootdir/Android.bp
new file mode 100644
index 0000000..d30e9f3
--- /dev/null
+++ b/rootdir/Android.bp
@@ -0,0 +1,325 @@
+//
+// Copyright (C) 2025 The LineageOS Project
+//
+// SPDX-License-Identifier: Apache-2.0
+//
+
+// Init scripts
+sh_binary {
+ name: "apanic_annotate.sh",
+ src: "bin/apanic_annotate.sh",
+ vendor: true,
+}
+
+sh_binary {
+ name: "apanic_copy.sh",
+ src: "bin/apanic_copy.sh",
+ vendor: true,
+}
+
+sh_binary {
+ name: "apanic_mtk.sh",
+ src: "bin/apanic_mtk.sh",
+ vendor: true,
+}
+
+sh_binary {
+ name: "apanic_save.sh",
+ src: "bin/apanic_save.sh",
+ vendor: true,
+}
+
+sh_binary {
+ name: "hardware_revisions.sh",
+ src: "bin/hardware_revisions.sh",
+ vendor: true,
+}
+
+sh_binary {
+ name: "init.insmod.sh",
+ src: "bin/init.insmod.sh",
+ vendor: true,
+}
+
+sh_binary {
+ name: "init.mmi.backup.trustlet.sh",
+ src: "bin/init.mmi.backup.trustlet.sh",
+ vendor: true,
+}
+
+sh_binary {
+ name: "init.mmi.block_perm.sh",
+ src: "bin/init.mmi.block_perm.sh",
+ vendor: true,
+}
+
+sh_binary {
+ name: "init.mmi.boot.sh",
+ src: "bin/init.mmi.boot.sh",
+ vendor: true,
+}
+
+sh_binary {
+ name: "init.mmi.modem-rfs.sh",
+ src: "bin/init.mmi.modem-rfs.sh",
+ vendor: true,
+}
+
+sh_binary {
+ name: "init.mmi.modules.sh",
+ src: "bin/init.mmi.modules.sh",
+ vendor: true,
+}
+
+sh_binary {
+ name: "init.mmi.shutdown.sh",
+ src: "bin/init.mmi.shutdown.sh",
+ vendor: true,
+}
+
+sh_binary {
+ name: "init.mmi.touch.sh",
+ src: "bin/init.mmi.touch.sh",
+ vendor: true,
+}
+
+sh_binary {
+ name: "init.mmi.usb.sh",
+ src: "bin/init.mmi.usb.sh",
+ vendor: true,
+}
+
+sh_binary {
+ name: "init.oem.fingerprint2.sh",
+ src: "bin/init.oem.fingerprint2.sh",
+ vendor: true,
+}
+
+sh_binary {
+ name: "init.oem.hw.sh",
+ src: "bin/init.oem.hw.sh",
+ vendor: true,
+}
+
+sh_binary {
+ name: "pstore_annotate.sh",
+ src: "bin/pstore_annotate.sh",
+ vendor: true,
+}
+
+sh_binary {
+ name: "vendor.mmi.cxp.sh",
+ src: "bin/vendor.mmi.cxp.sh",
+ vendor: true,
+}
+
+// Init configuration files
+prebuilt_etc {
+ name: "apanic.rc",
+ src: "etc/apanic.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "factory_init.connectivity.common.rc",
+ src: "etc/factory_init.connectivity.common.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "factory_init.connectivity.rc",
+ src: "etc/factory_init.connectivity.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "factory_init.project.rc",
+ src: "etc/factory_init.project.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "factory_init.rc",
+ src: "etc/factory_init.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "init.aee.rc",
+ src: "etc/init.aee.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "init.cgroup.rc",
+ src: "etc/init.cgroup.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "init.connectivity.common.rc",
+ src: "etc/init.connectivity.common.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "init.connectivity.rc",
+ src: "etc/init.connectivity.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "init.mmi.backup.trustlet.rc",
+ src: "etc/init.mmi.backup.trustlet.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "init.mmi.chipset.rc",
+ src: "etc/init.mmi.chipset.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "init.mmi.overlay.rc",
+ src: "etc/init.mmi.overlay.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "init.mmi.rc",
+ src: "etc/init.mmi.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "init.mmi.tcmd.rc",
+ src: "etc/init.mmi.tcmd.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "init.mmi.usb.configfs.rc",
+ src: "etc/init.mmi.usb.configfs.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "init.modem.rc",
+ src: "etc/init.modem.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "init.mt6855.rc",
+ src: "etc/init.mt6855.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "init.mt6855.usb.rc",
+ src: "etc/init.mt6855.usb.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "init.mtkgki.rc",
+ src: "etc/init.mtkgki.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "init.project.rc",
+ src: "etc/init.project.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "init.sensor_2_0.rc",
+ src: "etc/init.sensor_2_0.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "init_connectivity.rc",
+ src: "etc/init_connectivity.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "meta_init.connectivity.common.rc",
+ src: "etc/meta_init.connectivity.common.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "meta_init.connectivity.rc",
+ src: "etc/meta_init.connectivity.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "meta_init.modem.rc",
+ src: "etc/meta_init.modem.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "meta_init.project.rc",
+ src: "etc/meta_init.project.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "meta_init.rc",
+ src: "etc/meta_init.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "meta_init.vendor.rc",
+ src: "etc/meta_init.vendor.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "multi_init.rc",
+ src: "etc/multi_init.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+// fstab
+prebuilt_etc {
+ name: "fstab.enablezramwb",
+ src: "etc/fstab.enablezramwb",
+ vendor: true,
+}
diff --git a/rootdir/Android.mk b/rootdir/Android.mk
new file mode 100644
index 0000000..b86c2b6
--- /dev/null
+++ b/rootdir/Android.mk
@@ -0,0 +1,9 @@
+#
+# Copyright (C) 2025 The LineageOS Project
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+LOCAL_PATH := $(call my-dir)
+
+# Recovery init configuration files
diff --git a/rootdir/bin/apanic_annotate.sh b/rootdir/bin/apanic_annotate.sh
new file mode 100644
index 0000000..34da986
--- /dev/null
+++ b/rootdir/bin/apanic_annotate.sh
@@ -0,0 +1,53 @@
+#!/vendor/bin/sh
+#
+# Copyright (c) 2012, Motorola Mobility LLC, All rights reserved.
+#
+# The purpose of this script is to annotate panic dumps with useful information
+# about the context of the event.
+#
+
+export PATH=/vendor/bin:/system/bin:$PATH
+
+annotate()
+{
+ VAL=`$2`
+ [ "$VAL" ] || return
+
+ echo "$1: $VAL" > /sys/fs/pstore/annotate-ramoops
+}
+
+case $1 in
+ build*)
+ annotate "Build number" "getprop ro.build.display.id"
+ annotate "Build config" "getprop ro.build.config.version"
+ annotate "Kernel version" "cat /proc/sys/kernel/osrelease"
+ ;;
+ baseband*)
+ annotate "Baseband version" "getprop gsm.version.baseband"
+ ;;
+esac
+
+# check for pstore files and copy them to the /data/dontpanic
+if [ -e /sys/fs/pstore/console-ramoops ]
+then
+ cp /sys/fs/pstore/console-ramoops /data/vendor/dontpanic/last_kmsg
+ chown root:log /data/vendor/dontpanic/last_kmsg
+ chmod 0640 /data/vendor/dontpanic/last_kmsg
+ if [ -e /sys/fs/pstore/annotate-ramoops ]
+ then
+ cat /sys/fs/pstore/annotate-ramoops >> /data/vendor/dontpanic/last_kmsg
+ fi
+fi
+
+if [ -e /sys/fs/pstore/dmesg-ramoops-0 ]
+then
+ cp /sys/fs/pstore/dmesg-ramoops-0 /data/vendor/dontpanic/apanic_console
+ chown root:log /data/vendor/dontpanic/apanic_console
+ chmod 0640 /data/vendor/dontpanic/apanic_console
+ if [ -e /sys/fs/pstore/annotate-ramoops ]
+ then
+ cat /sys/fs/pstore/annotate-ramoops >> /data/vendor/dontpanic/apanic_console
+ fi
+ rm /sys/fs/pstore/dmesg-ramoops-0
+fi
+kpgather
diff --git a/rootdir/bin/apanic_copy.sh b/rootdir/bin/apanic_copy.sh
new file mode 100644
index 0000000..012f104
--- /dev/null
+++ b/rootdir/bin/apanic_copy.sh
@@ -0,0 +1,47 @@
+#!/vendor/bin/sh
+#
+# Copyright (c) 2015, Motorola Mobility LLC, All rights reserved.
+#
+# The purpose of this script is to read panic dumps to /data and dropbox
+# for issue report
+#
+
+export PATH=/vendor/bin:/system/bin:$PATH
+
+while getopts i op;
+do
+ case $op in
+ i) ignore_apanic_logs=1;;
+ esac
+done
+
+if [ -z "$ignore_apanic_logs" ]; then
+ # read log from "kpan" partition to /data/dontpanic
+ kpreadwrite r
+ # write panic/wdt report to dropbox
+ kpgather
+else
+ apanic_logcopy=$(getprop 'ro.vendor.bootreason')
+ if [ "$apanic_logcopy" == "coldboot" ]; then
+ return 0
+ fi
+fi
+
+if [ -e /dev/block/bootdevice/by-name/logs ] ; then
+ BL_logs_parti=/dev/block/bootdevice/by-name/logs
+elif [ -e /dev/block/bootdevice/by-name/logfs ] ; then
+ BL_logs_parti=/dev/block/bootdevice/by-name/logfs
+elif [ -e /dev/block/by-name/logs ] ; then
+ BL_logs_parti=/dev/block/by-name/logs
+elif [ -e /dev/block/by-name/logfs ] ; then
+ BL_logs_parti=/dev/block/by-name/logfs
+else
+ BL_logs_parti=
+fi
+
+if [ $BL_logs_parti ]
+then
+ cat $BL_logs_parti > /data/vendor/dontpanic/BL_logs
+ chown root:log /data/vendor/dontpanic/BL_logs
+ chmod 0640 /data/vendor/dontpanic/BL_logs
+fi
diff --git a/rootdir/bin/apanic_mtk.sh b/rootdir/bin/apanic_mtk.sh
new file mode 100644
index 0000000..a117851
--- /dev/null
+++ b/rootdir/bin/apanic_mtk.sh
@@ -0,0 +1,102 @@
+#!/vendor/bin/sh
+#
+# Copyright (c) 2019, Motorola Mobility LLC, All rights reserved.
+#
+# The purpose of this script is to annotate panic dumps with useful information
+# about the context of the event.
+#
+
+export PATH=/vendor/bin:/system/bin:$PATH
+
+trigger=`getprop ro.vendor.boot.apanic.reason`
+trigger_prop=`getprop ro.vendor.boot.apanic.prop`
+
+# script already running by boot reason, exit
+if [[ $trigger_prop && $trigger == "boot" ]]; then
+ exit 0
+fi
+
+# run script by db property set and boot reason is not panic
+if [[ $trigger_prop && $trigger == "prop" ]]; then
+ aee_trigger=`getprop vendor.debug.mtk.aeev.db`
+ kp_type=("KE" "HWT" "HW_Reboot" "ManualMRDump" "HANG")
+ kp_found=0
+
+ # check panic type
+ if [ ! "$aee_trigger" ]; then
+ exit 0
+ fi
+
+ for va in ${kp_type[@]}; do
+ has_str=$(echo $aee_trigger | grep "${va}")
+ if [[ "$has_str" != "" ]]; then
+ kp_found=1
+ break
+ fi
+ done
+
+ if [ $kp_found == 0 ]; then
+ exit 0
+ fi
+fi
+
+if [ ! -d /data/vendor/dontpanic ]
+then
+ mkdir /data/vendor/dontpanic
+fi
+
+# check for pstore files and copy them to the /data/dontpanic
+if [ -e /sys/fs/pstore/console-ramoops* ]
+then
+ cp /sys/fs/pstore/console-ramoops* /data/vendor/dontpanic/last_kmsg
+ chown root:log /data/vendor/dontpanic/last_kmsg
+ chmod 0640 /data/vendor/dontpanic/last_kmsg
+ if [ -e /sys/fs/pstore/annotate-ramoops ]
+ then
+ cat /sys/fs/pstore/annotate-ramoops >> /data/vendor/dontpanic/last_kmsg
+ fi
+
+ cat /proc/bootinfo >> /data/vendor/dontpanic/last_kmsg
+ cat /proc/version >> /data/vendor/dontpanic/last_kmsg
+
+ #storage
+ s_path="/sys/storage/"
+ storage="STORAGE: Type: "`cat ${s_path}type`", Vendor: "`cat ${s_path}vendor`
+ storage=$storage", Size: "`cat ${s_path}size`", Model: "`cat ${s_path}model`", FW: "`cat ${s_path}fw`
+ echo $storage >> /data/vendor/dontpanic/last_kmsg
+
+ #ram
+ r_path="/sys/ram/"
+ ram="RAM: Vendor: "`cat ${r_path}info`", MR5: "`cat ${r_path}mr5`
+ ram=$ram", MR6: "`cat ${r_path}mr6`", MR7: "`cat ${r_path}mr7`", MR8: "`cat ${r_path}mr8`
+ echo $ram >> /data/vendor/dontpanic/last_kmsg
+
+fi
+
+if [ -e /sys/fs/pstore/dmesg-ramoops-0 ]
+then
+ cp /sys/fs/pstore/dmesg-ramoops-0 /data/vendor/dontpanic/apanic_console
+ chown root:log /data/vendor/dontpanic/apanic_console
+ chmod 0640 /data/vendor/dontpanic/apanic_console
+ if [ -e /sys/fs/pstore/annotate-ramoops ]
+ then
+ cat /sys/fs/pstore/annotate-ramoops >> /data/vendor/dontpanic/apanic_console
+ fi
+fi
+
+kpgather
+
+if [ -e /dev/block/by-name/logs ] ; then
+ BL_logs_parti=/dev/block/by-name/logs
+elif [ -e /dev/block/by-name/logfs ] ; then
+ BL_logs_parti=/dev/block/by-name/logfs
+else
+ BL_logs_parti=
+fi
+
+if [ $BL_logs_parti ]
+then
+ cat $BL_logs_parti > /data/vendor/dontpanic/BL_logs
+ chown root:log /data/vendor/dontpanic/BL_logs
+ chmod 0640 /data/vendor/dontpanic/BL_logs
+fi
diff --git a/rootdir/bin/apanic_save.sh b/rootdir/bin/apanic_save.sh
new file mode 100644
index 0000000..8b5c8ad
--- /dev/null
+++ b/rootdir/bin/apanic_save.sh
@@ -0,0 +1,12 @@
+#!/vendor/bin/sh
+#
+# Copyright (c) 2016, Motorola Mobility LLC, All rights reserved.
+#
+# The purpose of this script is to get panic dump from pstore fs, and then
+# save to emmc, and then reboot device.
+#
+
+export PATH=/vendor/bin:/system/bin:$PATH
+
+# write log from pstore to "kpan" partition
+kpreadwrite w
diff --git a/rootdir/bin/hardware_revisions.sh b/rootdir/bin/hardware_revisions.sh
new file mode 100644
index 0000000..0c687f8
--- /dev/null
+++ b/rootdir/bin/hardware_revisions.sh
@@ -0,0 +1,408 @@
+#!/vendor/bin/sh
+#
+# Copyright (c) 2013-2016, Motorola LLC All rights reserved.
+#
+# The purpose of this script is to compile information about the hardware
+# versions of various devices on each unit. This is useful when searching
+# through reported issues for correlations with certain hardware revisions.
+# The information is collected from various locations in proc and sysfs (some
+# of which are product-specific) and compiled into small, single-line text
+# files in the userdata partition, one for each type of device. The format of
+# these lines are as follows:
+#
+# MOTHREV-vX
+# hw_name=XXXXX
+# vendor_id=XXXXX
+# hw_rev=XXXXX
+# date=XXXXX
+# lot_code=XXXXX
+# fw_rev=XXXXX
+# size=XXXXMB
+# (components may also add additional fields to the ones above)
+#
+# The extact format of each field will be device-specific, but should be
+# consistent across a particular hardware platform. Note that each revision
+# data file is rewritten every time this script is called. This ensures that
+# any future format changes to the revision files are picked up.
+#
+# While the method used to read the information should be consistent on a given
+# platform, the specific path to a device's information may vary between
+# products. The hardware_revisions.conf file provides a way to adjust those
+# paths from the default.
+#
+
+export PATH=/vendor/bin:$PATH
+
+scriptname=${0##*/}
+notice()
+{
+ echo "$*"
+ echo "$scriptname: $*" > /dev/kmsg
+}
+
+# Output destination and permissions
+OUT_PATH=/data/vendor/hardware_revisions
+OUT_USR=system
+OUT_GRP=system
+OUT_PERM=0644
+OUT_PATH_PERM=0755
+
+# Default paths to hardware information
+PATH_RAM=/sys/ram
+PATH_NVM=/sys/block/mmcblk0/device
+PATH_STORAGE=/sys/storage
+PATH_SDCARD=/sys/block/mmcblk1/device
+# PATH_TOUCH_CLASS="/sys/class/touchscreen/"`cd /sys/class/touchscreen && ls */ic_ver | sed 's/ic_ver//g'`
+PATH_TOUCH_MMI="/sys/class/touchscreen/"
+PATH_TOUCH="/sys/bus/i2c/drivers/"`cd /sys/bus/i2c/drivers && ls */?-*/ic_ver | sed 's/ic_ver//g'`
+PATH_TOUCH_SPI="/sys/bus/spi/drivers/"`cd /sys/bus/spi/drivers && ls */*.?/ic_ver | sed 's/ic_ver//g'`
+PATH_DISPLAY=/sys/class/graphics/fb0
+PATH_DISPLAY_DRM=/sys/class/drm/card0-DSI-1
+PATH_DISPLAY_DRM_CLI=/sys/class/drm/card0-DSI-2
+PATH_DISPLAY_DEVICETREE=/sys/firmware/devicetree/base/chosen
+PATH_PMIC=/sys/hardware_revisions/pmic
+
+# Product-specific overrides
+[ -e /vendor/etc/hardware_revisions.conf ] && . /vendor/etc/hardware_revisions.conf
+
+#
+# Clear out all revision data in this directory. If in the future we decide
+# to remove a component, we want to make sure any old files are not present.
+rm /data/vendor/hardware_revisions/*
+
+#
+# Append one piece of revision data to a given file. If a value is blank,
+# then nothing will be written.
+#
+# $1 - tag
+# $2 - value
+# $3 - file to write
+write_one_revision_data()
+{
+ if [ -n "${2}" ]; then
+ VALUE="${2}"
+ echo "${1}=${VALUE}" >> ${3}
+ fi
+}
+
+#
+# Generate the common data contained for
+# all hardware peripherals
+#
+# $1 - file to write to
+# $2 - name
+# $3 - vendor ID
+# $4 - hardware revision
+# $5 - date
+# $6 - lot code
+# $7 - firmware revision
+create_common_revision_data()
+{
+ FILE="${1}"
+ echo "MOTHREV-v2" > ${FILE}
+
+ write_one_revision_data "hw_name" "${2}" ${FILE}
+ write_one_revision_data "vendor_id" "${3}" ${FILE}
+ write_one_revision_data "hw_rev" "${4}" ${FILE}
+ write_one_revision_data "date" "${5}" ${FILE}
+ write_one_revision_data "lot_code" "${6}" ${FILE}
+ write_one_revision_data "fw_rev" "${7}" ${FILE}
+}
+
+create_secondary_revision_data()
+{
+ FILE="${1}"
+
+ write_one_revision_data "hw_name_s" "${2}" ${FILE}
+ write_one_revision_data "vendor_id_s" "${3}" ${FILE}
+ write_one_revision_data "hw_rev_s" "${4}" ${FILE}
+ write_one_revision_data "date_s" "${5}" ${FILE}
+ write_one_revision_data "lot_code_s" "${6}" ${FILE}
+ write_one_revision_data "fw_rev_s" "${7}" ${FILE}
+}
+
+create_multiple_revision_data()
+{
+ local primary=0
+ if [ $1 -eq $primary ]
+ then
+ create_common_revision_data "${FILE}" "${HNAME}" "${VEND}" "${HREV}" "${DATE}" "${LOT_CODE}" "${FREV}"
+ else
+ create_secondary_revision_data "${FILE}" "${HNAME}" "${VEND}" "${HREV}" "${DATE}" "${LOT_CODE}" "${FREV}"
+ fi
+}
+
+#
+# Applies the appropriate file permissions to the
+# hardware revision data file.
+#
+# $1 - file to write to
+apply_revision_data_perms()
+{
+ chown ${OUT_USR}.${OUT_GRP} "${1}"
+ chmod ${OUT_PERM} "${1}"
+}
+
+mkdir -p ${OUT_PATH}
+chown ${OUT_USR}.${OUT_GRP} ${OUT_PATH}
+chmod ${OUT_PATH_PERM} ${OUT_PATH}
+
+
+#
+# Compile ram
+#
+FILE="${OUT_PATH}/ram"
+HNAME=
+VEND=
+HREV=
+DATE=
+FREV=
+LOT_CODE=
+INFO=
+SIZE=
+if [ -d "${PATH_RAM}" ] ; then
+ HNAME=`cat ${PATH_RAM}/type`
+ VEND=`cat ${PATH_RAM}/info`
+ VEND="${VEND%%:*:*}"
+ INFO="$(cat ${PATH_RAM}/mr5),$(cat ${PATH_RAM}/mr6),$(cat ${PATH_RAM}/mr7),\
+$(cat ${PATH_RAM}/mr8)"
+ SIZE=`cat ${PATH_RAM}/size`
+fi
+create_common_revision_data "${FILE}" "${HNAME}" "${VEND}" "" "" "" ""
+write_one_revision_data "config_info" "${INFO}" "${FILE}"
+write_one_revision_data "size" "${SIZE}" "${FILE}"
+apply_revision_data_perms "${FILE}"
+
+
+#
+# Compile nvm
+#
+FILE="${OUT_PATH}/nvm"
+HNAME=
+VEND=
+HREV=
+DATE=
+FREV=
+LOT_CODE=
+SIZE=
+if [ -d "${PATH_NVM}" ] ; then
+ HNAME=`cat ${PATH_NVM}/type`
+ if [ -d "${PATH_STORAGE}" ] ; then
+ VEND=`cat ${PATH_STORAGE}/vendor`
+ SIZE=$((1024 * `cat ${PATH_STORAGE}/size | sed 's/[^0-9]//g'`))
+ else
+ VEND=`cat ${PATH_NVM}/manfid`
+ SIZE=$((1024 * `getprop ro.boot.storage | sed 's/[^0-9]//g'`))
+ fi
+ HREV=`cat ${PATH_NVM}/name`
+ DATE=`cat ${PATH_NVM}/date`
+ if [ -e ${PATH_NVM}/device_version -a -e ${PATH_NVM}/firmware_version ] ; then
+ FREV="$(cat ${PATH_NVM}/device_version),$(cat ${PATH_NVM}/firmware_version)"
+ else
+ FREV="$(cat ${PATH_NVM}/hwrev),$(cat ${PATH_NVM}/fwrev)"
+ fi
+ LOT_CODE="$(cat ${PATH_NVM}/csd)"
+else
+ if [ -d "${PATH_STORAGE}" ] ; then
+ HNAME=`cat ${PATH_STORAGE}/type`
+ VEND=`cat ${PATH_STORAGE}/vendor`
+ HREV=`cat ${PATH_STORAGE}/model`
+ FREV=`cat ${PATH_STORAGE}/fw`
+ SIZE=$((1024 * `cat ${PATH_STORAGE}/size | sed 's/[^0-9]//g'`))
+ fi
+fi
+create_common_revision_data "${FILE}" "${HNAME}" "${VEND}" "${HREV}" "${DATE}" "${LOT_CODE}" "${FREV}"
+write_one_revision_data "size" "${SIZE}" "${FILE}"
+apply_revision_data_perms "${FILE}"
+
+
+#
+# Compile ap
+#
+FILE="${OUT_PATH}/ap"
+HNAME=
+VEND=
+HREV=
+DATE=
+FREV=
+LOT_CODE=
+if [ -e "/proc/cpuinfo" ]; then
+ PREVIFS="$IFS"
+ IFS="
+"
+ for CPU in `cat /proc/cpuinfo` ; do
+ KEY="${CPU%:*}"
+ VAL="${CPU#*: }"
+ case "${KEY}" in
+ Processor*) HNAME="${VAL}" ;;
+ *implementer*) VEND="${VAL}" ;;
+ *variant*) HREV="${VAL}" ;;
+ *part*) HREV="${HREV},${VAL}" ;;
+ *revision*) HREV="${HREV},${VAL}" ;;
+ esac
+ done
+ IFS="$PREVIFS"
+fi
+create_common_revision_data "${FILE}" "${HNAME}" "${VEND}" "${HREV}" "" "" ""
+apply_revision_data_perms "${FILE}"
+
+
+#
+# copy pmic data
+#
+FILE="${OUT_PATH}/pmic"
+if [ -e "/sys/hardware_revisions/pmic" ]; then
+ cat /sys/hardware_revisions/pmic > ${FILE}
+else
+ create_common_revision_data "${FILE}" "" "" "" "" "" ""
+fi
+apply_revision_data_perms "${FILE}"
+
+
+#
+# copy display data
+# PATH_DISPLAY_DRM is the sys file path name for DRM display driver
+# PATH_DISPLAY is the path name for the old FB driver
+#
+copy_panel_revision_data()
+{
+ FILE="${OUT_PATH}/display"
+ HNAME=
+ VEND=
+ HREV=
+ local wait_cnt=0
+ local has_lid
+ local lid=1
+ lid_property=ro.vendor.mot.hw.lid
+
+ has_lid=$(getprop $lid_property 2> /dev/null)
+ notice "has lid = ${has_lid} lid= ${lid}"
+ while [ "$wait_cnt" -lt 8 ]; do
+ if [ -e ${PATH_DISPLAY_DRM}/panelName -o -e ${PATH_DISPLAY}/panelName ]; then
+ if [ -e ${PATH_DISPLAY_DRM}/panelName ] ; then
+ HNAME=`cat ${PATH_DISPLAY_DRM}/panelName`
+ VEND=`cat ${PATH_DISPLAY_DRM}/panelSupplier`
+ HREV=`cat ${PATH_DISPLAY_DRM}/panelVer`
+ create_multiple_revision_data 0 "${FILE}" "${HNAME}" "${VEND}" "${HREV}" "" "" ""
+ apply_revision_data_perms "${FILE}"
+ notice "creat primary panel hwrev"
+ else
+ HNAME=`cat ${PATH_DISPLAY}/panel_name`
+ VEND=`cat ${PATH_DISPLAY}/panel_supplier`
+ HREV=`cat ${PATH_DISPLAY}/panel_ver`
+ create_common_revision_data "${FILE}" "${HNAME}" "${VEND}" "${HREV}" "" "" ""
+ apply_revision_data_perms "${FILE}"
+ fi
+ if [ $has_lid -eq $lid ]
+ then
+ if [ -e ${PATH_DISPLAY_DRM_CLI}/panelName ] ; then
+ HNAME=`cat ${PATH_DISPLAY_DRM_CLI}/panelName`
+ VEND=`cat ${PATH_DISPLAY_DRM_CLI}/panelSupplier`
+ HREV=`cat ${PATH_DISPLAY_DRM_CLI}/panelVer`
+ notice "creat CLI hwrev"
+ create_multiple_revision_data 1 "${FILE}" "${HNAME}" "${VEND}" "${HREV}" "" "" ""
+ apply_revision_data_perms "${FILE}"
+ break;
+ fi
+ else
+ break;
+ fi
+ fi
+ sleep 1;
+ wait_cnt=$((wait_cnt+1))
+ done
+}
+copy_panel_revision_data
+
+#
+# Compile touchscreen
+#
+FILE="${OUT_PATH}/touchscreen"
+HNAME=
+VEND=
+HREV=
+DATE=
+FREV=
+LOT_CODE=
+
+# If there is the touchclass path, then access the nodes under the path to get the touch related
+# information, otherwise access the path originally defined by the script.
+if [ -e "${PATH_TOUCH_MMI}" ]; then
+ cd ${PATH_TOUCH_MMI}
+ let index=0
+ for i in $(ls */ic_ver); do
+ class_name=`echo $i|sed 's/ic_ver//g'`
+ PATH_TOUCH_CLASS=${PATH_TOUCH_MMI}${class_name}
+ if [ -e "${PATH_TOUCH_CLASS}/vendor" ]; then
+ HNAME=`cat ${PATH_TOUCH_CLASS}/vendor`
+ ICVER=`cat -e ${PATH_TOUCH_CLASS}/ic_ver`
+ if [ "$HNAME" ]; then
+ VEND="${ICVER##*'Product ID: '}"
+ VEND="${VEND%%\$*}"
+ FREV="${ICVER##*'Build ID: '}"
+ FREV="${FREV%%\$*}"
+ LOT_CODE="${ICVER##*'Config ID: '}"
+ LOT_CODE="${LOT_CODE%%\$*}"
+ fi
+ create_multiple_revision_data "${index}" "${FILE}" "${HNAME}" "${VEND}" "${HREV}" "${DATE}" "${LOT_CODE}" "${FREV}"
+ #create_common_revision_data "${FILE}" "${HNAME}" "${VEND}" "${HREV}" "${DATE}" "${LOT_CODE}" "${FREV}"
+ apply_revision_data_perms "${FILE}"
+ let index++
+ fi
+ done
+elif [ -e "${PATH_TOUCH_SPI}/name" ]; then
+ HNAME=`cat ${PATH_TOUCH_SPI}/name`
+ ICVER=`cat -e ${PATH_TOUCH_SPI}/ic_ver`
+ case "$HNAME" in
+ focaltech*)
+ VEND="${ICVER##*'Product ID: '}"
+ VEND="${VEND%%\$*}"
+ FREV="${ICVER##*'Build ID: '}"
+ FREV="${FREV%%\$*}"
+ ;;
+ esac
+ create_common_revision_data "${FILE}" "${HNAME}" "${VEND}" "${HREV}" "${DATE}" "${LOT_CODE}" "${FREV}"
+ apply_revision_data_perms "${FILE}"
+else
+ if [ -e "${PATH_TOUCH}/name" ]; then
+ HNAME=`cat ${PATH_TOUCH}/name`
+ ICVER=`cat -e ${PATH_TOUCH}/ic_ver`
+ case "${HNAME}" in
+ melfas*)
+ VEND="Melfas"
+ HREV="${ICVER##*'HW Revision:'}"
+ HREV="${HREV%%\$*}"
+ FREV="${ICVER##*'Core FW ver:'}"
+ FREV="${FREV%%\$*}"
+ ;;
+ cyttsp*)
+ VEND="${ICVER##*'Custom ID:'}"
+ VEND="${VEND%%\$*}"
+ VEND="Cypress,${VEND}"
+ HREV="${ICVER##*'TTSP Version:'}"
+ HREV="${HREV%%\$*}"
+ FREV="${ICVER##*'Application Version:'}"
+ FREV="${FREV%%\$*}"
+ ;;
+ atmxt*)
+ VEND="Atmel"
+ HREV="${ICVER##*'Family ID:'}"
+ HREV1="${ICVER##*'Variant ID:'}"
+ HREV="${HREV%%\$*},${HREV1%%\$*}"
+ FREV="${ICVER##*'Version:'}"
+ FREV1="${ICVER##*'Build:'}"
+ FREV="${FREV%%\$*},${FREV1%%\$*}"
+ ;;
+ synaptics*)
+ VEND="${ICVER##*'Product ID: '}"
+ VEND="${VEND%%\$*}"
+ FREV="${ICVER##*'Build ID: '}"
+ FREV="${FREV%%\$*}"
+ LOT_CODE="${ICVER##*'Config ID: '}"
+ LOT_CODE="${LOT_CODE%%\$*}"
+ ;;
+ esac
+ create_common_revision_data "${FILE}" "${HNAME}" "${VEND}" "${HREV}" "${DATE}" "${LOT_CODE}" "${FREV}"
+ apply_revision_data_perms "${FILE}"
+ fi
+fi
diff --git a/rootdir/bin/init.insmod.sh b/rootdir/bin/init.insmod.sh
new file mode 100644
index 0000000..67b6b2f
--- /dev/null
+++ b/rootdir/bin/init.insmod.sh
@@ -0,0 +1,34 @@
+#!/vendor/bin/sh
+
+########################################################
+### init.insmod.cfg format: ###
+### ----------------------------------------------- ###
+### [insmod|setprop|enable/moprobe] [path|prop name] ###
+### ... ###
+########################################################
+
+if [ $# -eq 1 ]; then
+ cfg_file=$1
+else
+ exit 1
+fi
+
+if [ -f $cfg_file ]; then
+ while IFS="|" read -r action arg
+ do
+ case $action in
+ "insmod") insmod $arg ;;
+ "setprop") setprop $arg 1 ;;
+ "enable") echo 1 > $arg ;;
+ "modprobe")
+ case ${arg} in
+ "-b *" | "-b")
+ arg="-b $(cat /vendor/lib/modules/modules.load)" ;;
+ "*" | "")
+ arg="$(cat /vendor/lib/modules/modules.load)" ;;
+ esac
+ modprobe -a -d /vendor/lib/modules $arg ;;
+ esac
+ done < $cfg_file
+fi
+
diff --git a/rootdir/bin/init.mmi.backup.trustlet.sh b/rootdir/bin/init.mmi.backup.trustlet.sh
new file mode 100644
index 0000000..47b9953
--- /dev/null
+++ b/rootdir/bin/init.mmi.backup.trustlet.sh
@@ -0,0 +1,52 @@
+#!/vendor/bin/sh
+
+PATH=/sbin:/vendor/sbin:/vendor/bin:/vendor/xbin
+export PATH
+
+scriptname=${0##*/}
+
+notice()
+{
+ echo "$*"
+ echo "$scriptname: $*" > /dev/kmsg
+}
+
+# Check if we are in the first bootup sequence.
+hardware_state=$(getprop ro.boot.secure_hardware)
+build_tags=$(getprop ro.build.tags)
+vendor_build_type=$(getprop ro.vendor.build.type)
+backup_state_prop=$(getprop persist.vendor.tl.already_backup)
+
+if [[ "$hardware_state" == "0" ]]; then
+ notice "Do not need trustlet backup, skip!"
+ exit 0
+fi
+
+# Exclude secure hw with user/userdebug testkey sw
+if [[ "$hardware_state" == "1" && "$build_tags" == *"test-keys"* ]]; then
+ notice "Do not need trustlet backup, skip!"
+ exit 0
+fi
+
+# Exclude secure hw with factory userdebug releasekey sw
+if [[ "$hardware_state" == "1" && "$vendor_build_type" == "userdebug" ]]; then
+ notice "Do not need trustlet backup, skip!"
+ exit 0
+fi
+
+if [[ "$backup_state_prop" == "true" ]]; then
+ notice "Trustlet already backed up, skip!"
+ exit 0
+fi
+
+# For Trustonic tl and drv backup.
+if [ -d /vendor/app/mcRegistry/ ]; then
+ notice "Detecting trustonic path, syncing up.."
+ cp -af /vendor/app/mcRegistry/* /mnt/vendor/tzapp/
+fi
+
+# TODO: Add more TEE vendor support if required.
+
+setprop persist.vendor.tl.already_backup true
+
+notice "Trustlet backup success!"
diff --git a/rootdir/bin/init.mmi.block_perm.sh b/rootdir/bin/init.mmi.block_perm.sh
new file mode 100644
index 0000000..dbe43b0
--- /dev/null
+++ b/rootdir/bin/init.mmi.block_perm.sh
@@ -0,0 +1,46 @@
+#!/vendor/bin/sh
+
+block_by_name=/dev/block/by-name
+utags=${block_by_name}/utags
+utags_backup=${block_by_name}/utagsBackup
+CHMOD_L_FLAG=-L
+
+# Set correct permissions for UTAGS
+/vendor/bin/chown -L root:system $utags
+/vendor/bin/chown -L root:system $utags_backup
+/vendor/bin/chmod ${CHMOD_L_FLAG} 0660 $utags
+if [ $? -ne 0 ]; then
+ CHMOD_L_FLAG=" "
+ /vendor/bin/chmod ${CHMOD_L_FLAG} 0660 $utags
+fi
+/vendor/bin/chmod ${CHMOD_L_FLAG} 0660 $utags_backup
+
+
+# HOB/DHOB
+hob=${block_by_name}/hob
+dhob=${block_by_name}/dhob
+if [ -f $hob ] || [ -L $hob ]; then
+/vendor/bin/chown -L radio:radio $hob
+/vendor/bin/chown -L radio:radio $dhob
+/vendor/bin/chmod ${CHMOD_L_FLAG} 0660 $hob
+/vendor/bin/chmod ${CHMOD_L_FLAG} 0660 $dhob
+fi
+
+# CLOGO
+clogo=${block_by_name}/clogo
+if [ -f $clogo ] || [ -L $clogo ]; then
+/vendor/bin/chown -L root:vendor_tcmd $clogo
+/vendor/bin/chmod ${CHMOD_L_FLAG} 0660 $clogo
+fi
+
+#CID
+cid=${block_by_name}/cid
+/vendor/bin/chown -L root:vendor_tcmd $cid
+/vendor/bin/chmod ${CHMOD_L_FLAG} 0660 $cid
+
+#BL logs
+logs=${block_by_name}/logs
+if [ -f $logs ]; then
+ /vendor/bin/chown -L root:system $logs
+ /vendor/bin/chmod ${CHMOD_L_FLAG} 0640 $logs
+fi
diff --git a/rootdir/bin/init.mmi.boot.sh b/rootdir/bin/init.mmi.boot.sh
new file mode 100644
index 0000000..e54b065
--- /dev/null
+++ b/rootdir/bin/init.mmi.boot.sh
@@ -0,0 +1,190 @@
+#!/vendor/bin/sh
+
+PATH=/sbin:/vendor/sbin:/vendor/bin:/vendor/xbin
+export PATH
+
+scriptname=${0##*/}
+
+notice()
+{
+ echo "$*"
+ echo "$scriptname: $*" > /dev/kmsg
+}
+
+# reload UTAGS
+utag_status=$(cat /proc/config/reload)
+if [ "$utag_status" == "2" ]; then
+ notice "Utags are not ready, reloading"
+ echo 1 > /proc/config/reload
+ utag_status=$(cat /proc/config/reload)
+ [ "$utag_status" != "0" ] && notice "Utags failed to reload"
+fi
+
+# Export these for factory validation purposes
+iccid=$(cat /proc/config/iccid/ascii 2>/dev/null)
+if [ ! -z "$iccid" ]; then
+ setprop ro.vendor.mot.iccid $iccid
+fi
+unset iccid
+
+# Get FTI data and catch old units with incorrect/missing UTAG_FTI
+pds_fti=/mnt/vendor/persist/factory/fti
+if [ -r $pds_fti ]; then
+ set -A fti $(od -A n -t x1 $pds_fti 2>/dev/null | tr '[A-F]' '[a-f]')
+else
+ notice "Can not read FTI data in persist"
+fi
+
+# If UTAG_FTI is readable, compare checksums
+# and if they mismatch, assume PDS is valid and overwrite UTAG
+utag_fti=/proc/config/fti
+if [ -r $utag_fti/ascii ]; then
+ set -A fti_utag $(cat ${utag_fti}/raw | sed 's/../& /g' | tr '[A-F]' '[a-f]')
+ # Byte 128 is total cksum, if nothing there, PDS data is invalid/missing
+ if [ ! -z "${fti[127]}" ]; then
+ # Make sure fti in UTAG is the same as in persist. Checksum comparison
+ if [ "${fti[126]}" != "${fti_utag[126]}" -o "${fti[127]}" != "${fti_utag[127]}" ]; then
+ notice "Copying FTI data from persist"
+ cat $pds_fti > ${utag_fti}/raw
+ fi
+ else
+ # If PDS data is invalid, take UTAG and hope it is correct
+ notice "Will use FTI from UTAG"
+ set -A fti $(od -A n -t x1 ${utag_fti}/ascii 2>/dev/null)
+ fi
+else
+ notice "Missing FTI UTAG; copying from persist"
+ echo fti > /proc/config/all/new
+ cat $pds_fti > ${utag_fti}/raw
+fi
+
+# Read HW version from FTI data
+hw_v1="\x${fti[35]}"
+hw_v2="\x${fti[36]}"
+hw_v3="\x${fti[37]}"
+if [ "$hw_v3" == "\x30" ]; then
+ hw_v3=""
+fi
+hw_v4="\x${fti[38]}"
+if [ "$hw_v4" == "\x30" ]; then
+ hw_v4=""
+fi
+setprop ro.vendor.hw.boardversion $(printf "$hw_v1$hw_v2$hw_v3$hw_v4")
+
+# Now we have set fti var either from PDS or UTAG
+# Get Last Test Station stamp from FTI
+# and convert to user-friendly date, US format
+# Real offsets for year/month/day are 63/64/65
+# If the month/date look reasonable, data is probably OK.
+mdate="Unknown"
+y=0x${fti[63]}
+m=0x${fti[64]}
+d=0x${fti[65]}
+let year=$y month=$m day=$d
+# Invalid data will often have bogus month/date values
+if [ $month -le 12 -a $day -le 31 -a $year -ge 12 ]; then
+ mdate=$month/$day/20$year
+else
+ notice "Corrupt FTI data"
+fi
+
+# FEATURE-7596 The utag date is preferred
+utag_date=$(cat /proc/config/date/ascii 2>/dev/null)
+if [ ! -z "$utag_date" ]; then
+ # utage date format mm-dd-yyyy
+ utag_date=(${utag_date//-/ })
+ m=${utag_date[0]}
+ d=${utag_date[1]}
+ y=${utag_date[2]}
+ let year=$y month=$m day=$d
+ if [ $month -le 12 -a $month -ge 1 -a $day -le 31 -a $day -ge 1 -a $year -ge 2012 ]; then
+ mdate=$month/$day/$year
+ else
+ notice $month $day $year
+ notice "Corrupt utag date"
+ fi
+fi
+
+setprop ro.vendor.manufacturedate $mdate
+unset fti y m d year month day utag_fti pds_fti fti_utag mdate utag_date
+
+t=$(getprop ro.build.tags)
+if [[ "$t" != *release* ]]; then
+ for p in $(cat /proc/cmdline); do
+ if [ ${p%%:*} = "@" ]; then
+ v=${p#@:}; a=${v%=*}; b=${v#*=}
+ ${a%%:*} ${a##*:} $b
+ fi
+ done
+fi
+unset p v a b t
+
+# Cleanup stale/incorrect programmed model value
+# Real values will never contain substrings matching "internal" device name
+product=$(getprop ro.vendor.hw.device)
+model=$(cat /proc/config/model/ascii 2>/dev/null)
+if [ $? -eq 0 ]; then
+ if [ "${model#*_}" == "$product" -o "${model%_*}" == "$product" ]; then
+ notice "Clearing stale model value"
+ echo "" > /proc/config/model/raw
+ fi
+fi
+unset model product
+
+
+
+# Export the RKP csr state which should be done in factory
+rkp_complete_file="/mnt/vendor/persist/rkp_complete"
+rkp_csr_state="not uploaded"
+if [ -f "$rkp_complete_file" ]; then
+ setprop ro.vendor.mot.hw.rkp_csr_uploaded 1
+ rkp_csr_state="already uploaded"
+else
+ setprop ro.vendor.mot.hw.rkp_csr_uploaded 0
+fi
+notice "RKP CSR file on device is: $rkp_csr_state"
+unset $rkp_complete_file
+unset $rkp_csr_state
+
+get_history_value()
+{
+ local __result=$1
+ local history_count=0
+ local value=""
+ local IFS=','
+
+ shift 1
+ for arg in ${@}; do
+ value=$value",$arg"
+ history_count=$(($history_count + 1))
+ if [ $history_count -eq 3 ]; then
+ break
+ fi
+ done
+ eval $__result="$value"
+ debug "value:$value history_count:$history_count"
+}
+
+set_boot_bootseq_history()
+{
+ #get current boot sequence
+ if [ ! -f /proc/bootinfo ]; then
+ notice "Error:/proc/bootinfo is not ready"
+ return
+ fi
+ boot_seq_line=`grep BOOT_SEQ /proc/bootinfo | sed 's/ //g'`
+ boot_seq=${boot_seq_line##*:}
+ notice "BOOT_SEQ is $boot_seq"
+ setprop ro.vendor.boot_seq $boot_seq
+ boot_time=`date +%s`
+
+ #get previous value of bootseq history
+ bootseq_history=`getprop persist.vendor.boot.bootseq.history`
+ notice "booseq_history is $bootseq_history"
+ get_history_value valid_history_value $bootseq_history
+ setprop persist.vendor.boot.bootseq.history "$boot_seq.$boot_time$valid_history_value"
+ new_bootseq_history=`getprop persist.vendor.boot.bootseq.history`
+ notice "set persist.vendor.boot.bootseq.history $new_bootseq_history"
+}
+
+set_boot_bootseq_history
diff --git a/rootdir/bin/init.mmi.modem-rfs.sh b/rootdir/bin/init.mmi.modem-rfs.sh
new file mode 100644
index 0000000..abb5b8a
--- /dev/null
+++ b/rootdir/bin/init.mmi.modem-rfs.sh
@@ -0,0 +1,56 @@
+#!/vendor/bin/sh
+
+echo "Retrieve Modem RFS logs"
+
+re='?(-)+([0-9.])'
+
+if ! [[ $2 == $re ]] ; then
+ echo "error: Not a number" >&2; exit 1
+fi
+
+__copy_logs()
+{
+ file1="${1}"
+ file2="${2}"
+
+ if [ ! -f "${file1}" ]; then
+ echo -e "${file1} invalid"
+ return
+ fi
+
+ /vendor/bin/chmod 666 "${file1}"
+ /vendor/bin/cp "${file1}" "${file2}"
+ /vendor/bin/chmod 640 "${file2}"
+}
+
+mdm_rfs_folder=/mnt/vendor/nvdata/md/
+mdm_rfs_log0=mot_md_log_0.txt
+mdm_rfs_log1=mot_md_log_1.txt
+
+mdm_log_target_folder=/data/vendor/dontpanic
+
+if [ "$1" == "loop" ]; then
+ loop=1
+else
+ loop=0
+fi
+
+while true
+do
+ /vendor/bin/echo "1" > /data/vendor/radio/read_modem_efs
+ /vendor/bin/sleep 1
+ /vendor/bin/echo "0" > /data/vendor/radio/read_modem_efs
+
+ __copy_logs $mdm_rfs_folder/$mdm_rfs_log0 $mdm_log_target_folder/$mdm_rfs_log0
+ __copy_logs $mdm_rfs_folder/$mdm_rfs_log1 $mdm_log_target_folder/$mdm_rfs_log1
+
+ if [ $loop -eq 1 ]
+ then
+ /vendor/bin/sleep $2
+ else
+ break
+ fi
+done
+
+exit 0
+
diff --git a/rootdir/bin/init.mmi.modules.sh b/rootdir/bin/init.mmi.modules.sh
new file mode 100644
index 0000000..afed9ed
--- /dev/null
+++ b/rootdir/bin/init.mmi.modules.sh
@@ -0,0 +1,10 @@
+#!/vendor/bin/sh
+
+# All modules that depend on conditions or need extra parameters
+# should go here.
+
+# Handle factory bootmode
+bootmode=$(getprop ro.bootmode)
+if [ $bootmode = "mot-factory" ]; then
+ insmod /vendor/lib/modules/moto_f_usbnet.ko
+fi
diff --git a/rootdir/bin/init.mmi.shutdown.sh b/rootdir/bin/init.mmi.shutdown.sh
new file mode 100644
index 0000000..b416a81
--- /dev/null
+++ b/rootdir/bin/init.mmi.shutdown.sh
@@ -0,0 +1,75 @@
+#!/vendor/bin/sh
+
+PATH=/sbin:/vendor/sbin:/vendor/bin:/vendor/xbin
+export PATH
+
+scriptname=${0##*/}
+
+debug()
+{
+ echo "$*"
+}
+
+notice()
+{
+ echo "$*"
+ echo "$scriptname: $*" > /dev/kmsg
+}
+
+get_history_value()
+{
+ local __result=$1
+ local history_count=0
+ local value=""
+ local IFS=$2
+
+ shift 2
+ for arg in ${@}; do
+ value=$value"$IFS$arg"
+ history_count=$(($history_count + 1))
+ if [ $history_count -eq 3 ]; then
+ break
+ fi
+ done
+ eval $__result="$value"
+ debug "value:$value history_count:$history_count"
+}
+
+set_reboot_bootseq_history()
+{
+ BOOTSEQ_HISTORY_PROP=persist.vendor.reboot.bootseq.history
+ #get current boot sequence
+ if [ ! -f /proc/bootinfo ]; then
+ notice "Error:/proc/bootinfo is not ready"
+ return
+ fi
+ boot_seq_line=`grep BOOT_SEQ /proc/bootinfo | sed 's/ //g'`
+ boot_seq=${boot_seq_line##*:}
+ notice "BOOT_SEQ is $boot_seq"
+ shutdown_time=`date +%s`
+
+ #get previous value of bootseq history
+ bootseq_history=`getprop $BOOTSEQ_HISTORY_PROP`
+ debug "booseq_history is $bootseq_history"
+ get_history_value valid_history_value , $bootseq_history
+ setprop $BOOTSEQ_HISTORY_PROP "$boot_seq.$shutdown_time$valid_history_value"
+ new_bootseq_history=`getprop $BOOTSEQ_HISTORY_PROP`
+ notice "set $BOOTSEQ_HISTORY_PROP $new_bootseq_history"
+
+ #update reboot command history
+ REBOOTCMD_HISTORY_PROP=persist.vendor.reboot.command.history
+
+ reboot_cmds=`getprop log.powerctrl.reboot.command`
+ notice "reboot_cmds is [$reboot_cmds]"
+
+ #get previous value of command history
+ rebootcmd_history=`getprop $REBOOTCMD_HISTORY_PROP`
+ debug "reboot command history is $rebootcmd_history"
+ get_history_value valid_cmd_history_value - $rebootcmd_history
+
+ setprop $REBOOTCMD_HISTORY_PROP "$boot_seq.$reboot_cmds${valid_cmd_history_value}"
+ new_bootseq_history=`getprop $REBOOTCMD_HISTORY_PROP`
+ notice "set $REBOOTCMD_HISTORY_PROP $new_bootseq_history"
+}
+
+set_reboot_bootseq_history
diff --git a/rootdir/bin/init.mmi.touch.sh b/rootdir/bin/init.mmi.touch.sh
new file mode 100644
index 0000000..4830b7e
--- /dev/null
+++ b/rootdir/bin/init.mmi.touch.sh
@@ -0,0 +1,455 @@
+#!/vendor/bin/sh
+
+PATH=/sbin:/vendor/sbin:/vendor/bin:/vendor/xbin
+export PATH
+
+while getopts ds op;
+do
+ case $op in
+ d) dbg_on=1;;
+ s) dump_statistics=1;;
+ esac
+done
+shift $(($OPTIND-1))
+
+# Globals
+scriptname=${0##*/}
+touch_class_path=/sys/class/touchscreen
+touch_status_prop=vendor.hw.touch.status
+touch_vendor=
+touch_path=
+panel_path=/sys/class/graphics/fb0
+device_property=ro.vendor.hw.device
+hwrev_property=ro.vendor.hw.revision
+firmware_path=/vendor/firmware
+let dec_cfg_id_boot=0
+let dec_cfg_id_latest=0
+typeset -l product_id
+panel_ver=
+supplier=
+property=
+config_id=
+build_id=
+hwrev_id=
+str_cfg_id_new=
+str_cfg_id_boot=
+str_cfg_id_latest=
+build_id_new=
+
+debug()
+{
+ [ $dbg_on ] && echo "Debug: $*"
+}
+
+notice()
+{
+ echo "$*"
+ echo "$scriptname: $*" > /dev/kmsg
+}
+
+sanity_check()
+{
+ read_touch_property flashprog || return 1
+ [[ ( -z "$property" ) || ( "$property" == "1" ) ]] && return 2
+ read_touch_property productinfo || return 1
+ [[ ( -z "$property" ) || ( "$property" == "0" ) ]] && return 2
+ read_touch_property buildid || return 1
+ config_id=${property#*-}
+ [[ ( -z "$config_id" ) || ( "$config_id" == "0" ) ]] && return 2
+ build_id=${property%-*}
+ [[ ( -z "$build_id" ) || ( "$build_id" == "0" ) ]] && return 2
+ return 0
+}
+
+error_msg()
+{
+ local err_msg
+ local err_code=$1
+ case $err_code in
+ 1) err_msg="Error: No response from touch IC";;
+ 2) err_msg="Error: Cannot read property $2";;
+ 3) err_msg="Error: No matching firmware file found";;
+ 4) err_msg="Error: Touch IC is in bootloader mode";;
+ 5) err_msg="Error: Touch provides no reflash interface";;
+ 6) err_msg="Error: Touch driver is not running";;
+ 7) err_msg="Warning: Touch firmware is not the latest";;
+ 8) err_msg="Info: Touch class does not exist";;
+ 9) err_msg="Error: Touch IC is not ready to flash";;
+ esac
+ notice "$err_msg"
+}
+
+error_and_leave()
+{
+ local err_code=$1
+ local touch_status="unknown"
+ error_msg $err_code
+ case $err_code in
+ 1|4) touch_status="dead";;
+ 5|6|8) touch_status="absent";;
+ esac
+
+ # perform sanity check and declare touch ready if error is not fatal
+ if [ "$touch_status" == "unknown" ]; then
+ sanity_check
+ case "$?" in
+ 0) touch_status="ready";;
+ 2) touch_status="dead";;
+ 1) touch_status="absent";;
+ esac
+ fi
+
+ # perform recovery if touch is declared dead
+ if [ "$touch_status" == "dead" ]; then
+ notice "Touch needs to go through recovery!!!"
+ reboot_cnt=$(getprop $touch_status_prop 2>/dev/null)
+ [ -z "$reboot_cnt" ] && reboot_cnt=0
+ debug "current reboot counter [$reboot_cnt]"
+ fi
+
+ setprop $touch_status_prop $touch_status
+ notice "property [$touch_status_prop] set to [`getprop $touch_status_prop`]"
+
+ if [ "$touch_status" == "dead" ]; then
+ notice "Touch is not responding; no further action!!!"
+ #if [ $((reboot_cnt)) -lt 2 ]; then
+ # notice "Touch is not working; rebooting..."
+ # debug "sleep 3s to allow touch-dead-sh service to run"
+ # sleep 3
+ # [ -z "$dbg_on" ] && setprop sys.powerctl reboot
+ #else
+ # notice "Although touch is not working, no more reboots"
+ #fi
+ fi
+
+ exit $err_code
+}
+
+prepend()
+{
+ local list=""
+ local prefix=$1
+ shift
+ for name in $*; do
+ list="$list$prefix/$name "
+ done
+ echo $list
+}
+
+dump_statistics()
+{
+ debug "dumping touch statistics"
+ cat $touch_path/ic_ver
+ [ -f $touch_path/stats ] && cat $touch_path/stats
+ return 0
+}
+
+wait_for_poweron()
+{
+ local wait_nomore
+ local readiness
+ local count
+ debug "wait until driver reports ..."
+ wait_nomore=60
+ count=0
+ while true; do
+ readiness=$(cat $touch_path/poweron)
+ if [ "$readiness" == "1" ]; then
+ debug "ready to flash!!!"
+ break;
+ fi
+ count=$((count+1))
+ [ $count -eq $wait_nomore ] && break
+ sleep 1
+ debug "not ready; keep waiting..."
+ done
+ if [ $count -eq $wait_nomore ]; then
+ error_msg 9
+ return 1
+ fi
+ return 0
+}
+
+setup_permissions()
+{
+ local selinux=$(getprop ro.boot.selinux 2> /dev/null)
+ local key_path
+ local key_files
+ local entry
+ local product_info
+ if [ "$selinux" == "permissive" ]; then
+ debug "loosen permissions to $touch_vendor files"
+ case $touch_vendor in
+ synaptics) key_path=$touch_path
+ key_files=$(prepend f54 `ls $touch_path/f54/ 2>/dev/null`)
+ key_files=$key_files"reporting query stats";;
+ focaltech) key_path="/proc/"
+ key_files="ftxxxx-debug";;
+ ilitek) key_path="/proc/ilitek"
+ key_files="ioctl";;
+ goodix) key_path="/proc/"
+ key_files="gmnode"
+ if [ "$touch_product_string" == "GTx5" ]; then
+ key_path="/dev/"
+ key_files="gtp_tools"
+ fi
+ if [ "$touch_product_string" == "primary" ]; then
+ product_info=$(cat $touch_class_path/$touch_product_string/productinfo)
+ debug "$touch_vendor product_info is $product_info"
+ if [ "$product_info" == "gt9916S" ]; then
+ key_path="/dev/"
+ key_files="gtp_tools"
+ fi
+ fi
+ ;;
+ esac
+ for entry in $key_files; do
+ chmod 0666 $key_path/$entry
+ debug "change permissions of $key_path/$entry"
+ done
+ fi
+ # Set permissions to enable factory touch tests
+ chown root:vendor_tcmd $touch_path/drv_irq
+ chown root:vendor_tcmd $touch_path/hw_irqstat
+ chown root:vendor_tcmd $touch_path/reset
+ # Set permissions to allow Bug2Go access to touch statistics
+ chown root:log $touch_path/stats
+ # Erase is optional
+ [ -f $touch_path/erase_all ] && chown root:vendor_tcmd $touch_path/erase_all
+}
+
+read_touch_property()
+{
+ property=""
+ debug "retrieving property: [$touch_path/$1]"
+ property=$(cat $touch_path/$1 2> /dev/null)
+ debug "touch property [$1] is: [$property]"
+ [ -z "$property" ] && return 1
+ return 0
+}
+
+read_panel_property()
+{
+ property=""
+ debug "retrieving panel property: [$panel_path/$1]"
+ property=$(cat $panel_path/$1 2> /dev/null)
+ debug "panel property [$1] is: [$property]"
+ [ -z "$property" ] && return 1
+ return 0
+}
+
+find_latest_config_id()
+{
+ local fw_mask=$1
+ local skip_fields=$2
+ local dec max z str_hex i
+ str_cfg_id_latest=""
+ debug "scanning dir for files matching [$fw_mask]"
+ let dec=0; max=0;
+ for file in $(ls $fw_mask 2>/dev/null); do
+ z=$file
+ i=0
+ while [ ! $i -eq $skip_fields ]; do
+ z=${z#*-}
+ i=$((i+1))
+ done
+ str_hex=${z%%-*};
+ let dec=0x$str_hex
+ if [ $dec -gt $max ]; then
+ let max=$dec; dec_cfg_id_latest=$dec;
+ str_cfg_id_latest=$str_hex
+ fi
+ done
+ [ -z "$str_cfg_id_latest" ] && return 1
+ return 0
+}
+
+find_best_match()
+{
+ local hw_mask=$1
+ local panel_supplier=$2
+ local skip_fields fw_mask
+ while [ ! -z "$hw_mask" ]; do
+ if [ "$hw_mask" == "-" ]; then
+ hw_mask=""
+ fi
+ if [ ! -z "$panel_supplier" ]; then
+ skip_fields=3
+ fw_mask="$touch_vendor-$panel_supplier-$touch_product_id-*-$product_id$hw_mask.*"
+ else
+ skip_fields=2
+ fw_mask="$touch_vendor-$touch_product_id-*-$product_id$hw_mask.*"
+ fi
+ find_latest_config_id "$fw_mask" "$skip_fields" && break
+ hw_mask=${hw_mask%?}
+ done
+ [ -z "$str_cfg_id_latest" ] && return 1
+ if [ -z "$panel_supplier" ]; then
+ firmware_file=$(ls $touch_vendor-$touch_product_id-$str_cfg_id_latest-*-$product_id$hw_mask.*)
+ else
+ firmware_file=$(ls $touch_vendor-$panel_supplier-$touch_product_id-$str_cfg_id_latest-*-$product_id$hw_mask.*)
+ fi
+ notice "Firmware file for upgrade $firmware_file"
+ return 0
+}
+
+query_touch_info()
+{
+ read_touch_property flashprog
+ bl_mode=$property
+ debug "bl mode: $bl_mode"
+ read_touch_property productinfo
+ touch_product_id=$property
+ if [ -z "$touch_product_id" ] || [ "$touch_product_id" == "0" ]; then
+ debug "touch ic reports invalid product id"
+ error_msg 1
+ return 1
+ fi
+ debug "touch product id: $touch_product_id"
+ read_touch_property buildid
+ str_cfg_id_boot=${property#*-}
+ let dec_cfg_id_boot=0x$str_cfg_id_boot
+ debug "touch config id: $str_cfg_id_boot"
+ build_id_boot=${property%-*}
+ debug "touch build id: $build_id_boot"
+ return 0
+}
+
+query_panel_info()
+{
+ supplier=""
+ read_touch_property "panel_supplier"
+ [ -z "$property" ] && read_panel_property "panel_supplier"
+ supplier=$property
+ if [ "$supplier" ]; then
+ read_panel_property "controller_drv_ver"
+ panel_ver=${property#${property%?}}
+ debug "panel supplier: $supplier, ver $panel_ver"
+ else
+ debug "driver does not report panel supplier"
+ fi
+}
+
+search_firmware_file()
+{
+ local match_not_found
+ match_not_found=1
+ if [ "$supplier" ]; then
+ for pattern in "$supplier$panel_ver" "$supplier"; do
+ debug "search for best hw revision match with supplier"
+ find_best_match "-$hwrev_id" "$pattern"
+ match_not_found=$?
+ [ "$match_not_found" == "0" ] && break
+ done
+ fi
+ if [ "$match_not_found" != "0" ]; then
+ debug "search for best hw revision match without supplier"
+ find_best_match "-$hwrev_id"
+ if [ "$?" != "0" ]; then
+ error_msg 3
+ return 1
+ fi
+ fi
+ return 0
+}
+
+run_firmware_upgrade()
+{
+ local recovery
+ wait_for_poweron
+ recovery=0
+ if [ "$bl_mode" == "1" ] || [ "$build_id_boot" == "0" ]; then
+ recovery=1
+ notice "Initiating touch firmware recovery"
+ notice " bl mode = $bl_mode"
+ notice " build id = $build_id_boot"
+ fi
+ if [ $dec_cfg_id_boot -ne $dec_cfg_id_latest ] || [ "$recovery" == "1" ]; then
+ debug "forcing firmware upgrade"
+ echo 1 > $touch_path/forcereflash
+ debug "sending reflash command"
+ echo $firmware_file > $touch_path/doreflash
+ read_touch_property flashprog
+ if [ "$?" != "0" ]; then
+ error_msg 1
+ return 1
+ fi
+ bl_mode=$property
+ if [ "$bl_mode" == "1" ]; then
+ error_msg 4
+ return 1
+ fi
+ read_touch_property buildid
+ if [ "$?" != "0" ]; then
+ error_msg 1
+ return 1
+ fi
+ str_cfg_id_new=${property#*-}
+ build_id_new=${property%-*}
+ notice "Touch firmware config id at boot time $str_cfg_id_boot"
+ notice "Touch firmware config id in the file $str_cfg_id_latest"
+ notice "Touch firmware config id currently programmed $str_cfg_id_new"
+ [ "$str_cfg_id_latest" != "$str_cfg_id_new" ] && error_msg 7 && return 1
+ if [ -f $touch_path/f54/force_update ]; then
+ notice "forcing F54 registers update"
+ echo 1 > $touch_path/f54/force_update
+ fi
+ fi
+ return 0
+}
+
+process_touch_instance()
+{
+ notice "Handling touch ID [$touch_product_string] permissions"
+ touch_vendor=$(cat $touch_class_path/$touch_product_string/vendor)
+ debug "touch vendor [$touch_vendor]"
+ touch_path=/sys$(cat $touch_class_path/$touch_product_string/path)
+ debug "sysfs touch path: $touch_path"
+ if [ ! -f $touch_path/doreflash ] ||
+ [ ! -f $touch_path/poweron ] ||
+ [ ! -f $touch_path/flashprog ] ||
+ [ ! -f $touch_path/productinfo ] ||
+ [ ! -f $touch_path/buildid ]; then
+ error_msg 5
+ continue
+ fi
+ setup_permissions
+ if [ $dump_statistics ]; then
+ dump_statistics
+ fi
+ notice "Checking touch ID [$touch_product_string] FW upgrade"
+ touch_vendor=$(cat $touch_class_path/$touch_product_string/vendor)
+ debug "touch vendor [$touch_vendor]"
+ touch_path=/sys$(cat $touch_class_path/$touch_product_string/path)
+ debug "sysfs touch path: $touch_path"
+ query_touch_info
+ query_panel_info
+ search_firmware_file
+ [ "$?" == "0" ] && run_firmware_upgrade
+ notice "Touch firmware is up to date"
+ setprop $touch_status_prop "ready"
+ notice "property [$touch_status_prop] set to [`getprop $touch_status_prop`]"
+
+}
+
+# Main starts here
+[ -d $touch_class_path ] || error_and_leave 8
+debug "sysfs panel path: $panel_path"
+product_id=$(getprop $device_property 2> /dev/null)
+[ -z "$product_id" ] && error_and_leave 2 $device_property
+product_id=${product_id%-*}
+product_id=${product_id%_*}
+debug "product id: $product_id"
+hwrev_id=$(getprop $hwrev_property 2> /dev/null)
+[ -z "$hwrev_id" ] && notice "hw revision undefined"
+debug "hw revision: $hwrev_id"
+cd $firmware_path
+# Run asynchronously for each instance
+for touch_product_string in $(ls $touch_class_path); do
+ process_touch_instance &
+done
+
+# check if need to reload modules
+wait
+debug "all background processes completed"
+return 0
diff --git a/rootdir/bin/init.mmi.usb.sh b/rootdir/bin/init.mmi.usb.sh
new file mode 100644
index 0000000..c91690d
--- /dev/null
+++ b/rootdir/bin/init.mmi.usb.sh
@@ -0,0 +1,260 @@
+#!/vendor/bin/sh
+# Copyright (c) 2012, Code Aurora Forum. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+# * Neither the name of Code Aurora Forum, Inc. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+#
+# Allow unique persistent serial numbers for devices connected via usb
+# User needs to set unique usb serial number to persist.usb.serialno and
+# if persistent serial number is not set then Update USB serial number if
+# passed from command line
+#
+dbg_on=0
+debug()
+{
+ echo "${0##*/}: $*"
+ [ $dbg_on ] && echo "${0##*/}: $*" > /dev/kmsg
+}
+
+notice()
+{
+ echo "${0##*/}: $*"
+ echo "${0##*/}: $*" > /dev/kmsg
+}
+
+target=`getprop ro.board.platform`
+usb_action=`getprop vendor.usb.mmi-usb-sh.action`
+notice "mmi-usb-sh: action = \"$usb_action\""
+sys_usb_config=`getprop vendor.usb.config`
+bootmode=`getprop ro.bootmode`
+
+#factory cleanup
+factory_cfg=`getprop persist.vendor.usb.mot-factory.config`
+if [ "$bootmode" == "normal" ]; then
+ if [[ "$factory_cfg" == *adb* ]]; then
+ setprop persist.vendor.usb.mot-factory.config NULL
+ setprop persist.vendor.usb.mot-factory.func NULL
+ setprop persist.vendor.usb.config NULL
+ setprop persist.vendor.mot.usb.config NULL
+ setprop vendor.usb.config none
+ notice "cleanup factory flg done"
+ fi
+fi
+
+set_usb_secure_mode ()
+{
+ if [ "$#" == "1" ]
+ then
+ if [ -f /sys/class/android_usb/android0/secure ]
+ then
+ echo "$1" > /sys/class/android_usb/android0/secure
+ else
+ setprop vendor.usb.secure_mode $1
+ fi
+ notice "mmi-usb-sh: secure mode = $1"
+ fi
+}
+
+tcmd_ctrl_adb ()
+{
+ ctrl_adb=`getprop vendor.tcmd.ctrl_adb`
+ notice "mmi-usb-sh: vendor.tcmd.ctrl_adb = $ctrl_adb"
+ case "$ctrl_adb" in
+ "0")
+ if [[ "$sys_usb_config" == *adb* ]]
+ then
+ # *** ALWAYS expecting adb at the end ***
+ new_usb_config=${sys_usb_config/,adb/}
+ notice "mmi-usb-sh: disabling adb ($new_usb_config)"
+ setprop persist.vendor.usb.config $new_usb_config
+ setprop vendor.usb.config $new_usb_config
+ setprop persist.vendor.factory.allow_adb 0
+ fi
+ ;;
+ "1")
+ if [[ "$sys_usb_config" != *adb* ]]
+ then
+ # *** ALWAYS expecting adb at the end ***
+ new_usb_config="$sys_usb_config,adb"
+ notice "mmi-usb-sh: enabling adb ($new_usb_config)"
+ setprop persist.vendor.usb.config $new_usb_config
+ setprop vendor.usb.config $new_usb_config
+ setprop persist.vendor.factory.allow_adb 1
+ fi
+ ;;
+ esac
+
+ exit 0
+}
+
+case "$usb_action" in
+ "")
+ ;;
+ "vendor.tcmd.ctrl_adb")
+ tcmd_ctrl_adb
+ ;;
+esac
+
+case "$target" in
+ "mt6879")
+ setprop vendor.usb.controller "11201000.usb0"
+ setprop vendor.usb.rndis.func.name mtk_rndis.gs4
+ ;;
+ "mt6789")
+ setprop vendor.usb.controller "musb-hdrc"
+ setprop vendor.usb.rndis.func.name mtk_rndis.gs4
+ ;;
+ "mt6855")
+ setprop vendor.usb.controller "musb-hdrc"
+ setprop vendor.usb.rndis.func.name mtk_rndis.gs4
+ ;;
+esac
+
+## This is needed to switch to the qcom rndis driver.
+diag_extra=`getprop persist.vendor.usb.config.extra`
+if [ "$diag_extra" == "" ]; then
+ setprop persist.vendor.usb.config.extra none
+fi
+
+#
+# Allow USB enumeration with default PID/VID
+#
+usb_config=`getprop persist.vendor.usb.config`
+mot_usb_config=`getprop persist.vendor.mot.usb.config`
+buildtype=`getprop ro.build.type`
+securehw=`getprop ro.boot.secure_hardware`
+cid=`getprop ro.vendor.boot.cid`
+
+notice "mmi-usb-sh: persist usb configs = \"$usb_config\", \"$mot_usb_config\""
+
+
+phonelock_type=`getprop persist.sys.phonelock.mode`
+usb_restricted=`getprop persist.sys.usb.policylocked`
+if [ "$securehw" == "1" ] && [ "$buildtype" == "user" ] && [ "$(($cid))" != 0 ]
+then
+ if [ "$usb_restricted" == "1" ]
+ then
+ set_usb_secure_mode 1
+ else
+ case "$phonelock_type" in
+ "1" )
+ set_usb_secure_mode 1
+ ;;
+ * )
+ set_usb_secure_mode 0
+ ;;
+ esac
+ fi
+fi
+
+
+case "$bootmode" in
+ "mot-factory" )
+ if [ "$usb_config" != "adb" ]
+ then
+ setprop persist.vendor.usb.config adb
+ setprop persist.vendor.usb.mot-factory.config adb
+ setprop persist.vendor.usb.mot-factory.func adb
+ fi
+ ;;
+ "charger" )
+ ;;
+ * )
+ if [ "$buildtype" == "user" ] && [ "$phonelock_type" != "1" ] && [ "$usb_restricted" != "1" ]
+ then
+ set_usb_secure_mode 1
+ notice "Disabling enumeration until bootup!"
+ fi
+
+ case "$usb_config" in
+ "mtp,adb" | "mtp" | "adb")
+ ;;
+ *)
+ case "$mot_usb_config" in
+ "mtp,adb" | "mtp" | "adb")
+ setprop persist.vendor.usb.config $mot_usb_config
+ ;;
+ *)
+ case "$securehw" in
+ "1" )
+ setprop persist.vendor.usb.config mtp
+ ;;
+ *)
+ setprop persist.vendor.usb.config adb
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+
+ adb_early=`getprop ro.boot.adb_early`
+ if [ "$adb_early" == "1" ]; then
+ set_usb_secure_mode 0
+ notice "Enabling enumeration after bootup, count = $count !"
+ new_persist_usb_config=`getprop persist.vendor.usb.config`
+ if [[ "$new_persist_usb_config" != *adb* ]]; then
+ setprop persist.vendor.usb.config "adb"
+ setprop vendor.usb.config "adb"
+ else
+ setprop vendor.usb.config $new_persist_usb_config
+ fi
+ exit 0
+ fi
+ if [ "$buildtype" == "user" ] && [ "$phonelock_type" != "1" ] && [ "$usb_restricted" != "1" ]
+ then
+ if [[ "$factory_cfg" == *adb* ]]; then
+ new_persist_usb_config=`getprop persist.vendor.usb.config`
+ if [ "$sys_usb_config" != "$new_persist_usb_config" ]; then
+ setprop vendor.usb.config $new_persist_usb_config
+ notice "mmi-usb-sh - factory to normal, reset the vendor usb config"
+ fi
+ fi
+ count=0
+ bootcomplete=`getprop vendor.boot_completed`
+ notice "mmi-usb-sh - bootcomplete = $booted"
+ while [ "$bootcomplete" != "1" ]; do
+ debug "Sleeping till bootup!"
+ sleep 1
+ count=$((count+1))
+ if [ $count -gt 90 ]
+ then
+ notice "mmi-usb-sh - Timed out waiting for bootup"
+ break
+ fi
+ bootcomplete=`getprop vendor.boot_completed`
+ done
+ set_usb_secure_mode 0
+ notice "Enabling enumeration after bootup, count = $count !"
+ exit 0
+ fi
+ ;;
+esac
+
+new_persist_usb_config=`getprop persist.vendor.usb.config`
+if [ "$sys_usb_config" != "$new_persist_usb_config" ]; then
+ setprop vendor.usb.config $new_persist_usb_config
+fi
diff --git a/rootdir/bin/init.oem.fingerprint2.sh b/rootdir/bin/init.oem.fingerprint2.sh
new file mode 100644
index 0000000..18094e5
--- /dev/null
+++ b/rootdir/bin/init.oem.fingerprint2.sh
@@ -0,0 +1,178 @@
+#!/vendor/bin/sh
+#
+# Start indicated fingerprint HAL service
+#
+# Copyright (c) 2019 Lenovo
+# All rights reserved.
+#
+# April 15, 2019 chengql2@lenovo.com Initial version
+# December 2, 2019 chengql2 Store fps_id into persist fs
+# November 19, 2020 zengzm refactor the code, support more than 3 fingerprint sensors; support config.
+
+# get the filename, contains the file postfix
+script_name=${0##*/}
+# remove the file postfix
+script_name=${script_name%.*}
+function log {
+ echo "$script_name: $*" > /dev/kmsg
+}
+
+PROP_GKI_PATH=ro.vendor.mot.gki.path
+GKI_PATH=$(getprop $PROP_GKI_PATH)
+
+# for new projects, only need to config varible vendor_list,kernel_so_list,kernel_so_name_list,hal_list
+# vendor_list: the array contains the sensor name, it will be used for system properties.
+# kernel_so_list: the array contains the kernel so's absolute path. It will be used at insmod.
+# kernel_so_name_list: the array contains the kernel so's name. It will be used at rmmod.
+# hal_list: the array contains the hal service name.
+#
+# note: all arrays should have the same size.
+vendor_list=('goodix' 'chipone')
+kernel_so_list=("/vendor/lib/modules/$GKI_PATH/goodix_fps_tee.ko" "/vendor/lib/modules/$GKI_PATH/fpsensor_mtk_spi.ko")
+kernel_so_name_list=("goodix_fps_tee.ko" "fpsensor_mtk_spi.ko")
+hal_list=('goodix_hal' 'chipone_fp_hal')
+last_vendor_index=`expr ${#vendor_list[@]} - 1`
+vendor_list_size=${#vendor_list[@]}
+
+if [ $vendor_list_size != ${#kernel_so_list[@]} ]; then
+ log "error, vendor_list.size is not equal to kernel_so_list"
+ return 255
+fi
+
+if [ $vendor_list_size != ${#kernel_so_name_list[@]} ]; then
+ log "error, vendor_list.size is not equal to kernel_so_name_list"
+ return 255
+fi
+
+if [ $vendor_list_size != ${#hal_list[@]} ]; then
+ log "error, vendor_list.size is not equal to hal_list"
+ return 255
+fi
+
+# At the current boot, what is the fingerprint sensor
+persist_fps_id=/mnt/vendor/persist/fps/vendor_id
+
+# what is the fingerprint sensor successfully installed before.
+persist_fps_id2=/mnt/vendor/persist/fps/last_vendor_id
+
+FPS_VENDOR_NONE=none
+MAX_TIMES=30
+
+# this property store FPS_STATUS_NONE or FPS_STATUS_OK
+# after start fingerprint hal service, the hal service will set this property.
+prop_fps_status=vendor.hw.fingerprint.status
+
+# use this to trigger init.mmi.rc
+prop_fps_ident=vendor.hw.fps.ident
+
+# if $prop_fps_status=$FPS_STATUS_OK, then will set prop_persist_fps to the specific vendor name.
+prop_persist_fps=persist.vendor.hardware.fingerprint
+
+FPS_STATUS_NONE=none
+FPS_STATUS_OK=ok
+
+function find_vendor_index() {
+ # param1: the specific vendor name
+ # return: the vendor index in vendor_list. the valid index is from 0; if not found,return 255
+ for temp_vendor_index in $(seq 0 $last_vendor_index)
+ do
+ if [ "${vendor_list[temp_vendor_index]}" = "$1" ]; then
+ return $temp_vendor_index
+ fi
+ done
+ return 255
+}
+
+function start_hal_service(){
+ # param1: the vendor index
+ # return: 0 means success, will setprop $prop_persist_fps
+ setprop $prop_fps_status $FPS_STATUS_NONE
+ setprop $prop_fps_ident $FPS_STATUS_NONE
+
+ insmod ${kernel_so_list[$1]}
+ sleep 1
+ setprop $prop_fps_ident ${vendor_list[$1]}
+
+ log "start ${hal_list[$1]}"
+ start ${hal_list[$1]}
+
+ for ii in $(seq 1 $MAX_TIMES)
+ do
+ sleep 0.1
+ fps_status=$(getprop $prop_fps_status)
+ # log "check fps vendor status: $fps_status"
+ if [ $fps_status != $FPS_STATUS_NONE ]; then
+ break
+ fi
+ done
+
+ log "fingerprint HAL status: $fps_status"
+ if [ $fps_status == $FPS_STATUS_OK ]; then
+ log "start ${hal_list[$1]} hal success"
+ setprop $prop_persist_fps ${vendor_list[$1]}
+ return 0
+ fi
+
+ log "start ${hal_list[$1]} hal failed, remove kernel so: ${kernel_so_name_list[$1]} "
+ setprop ctl.stop ${hal_list[$1]}
+ rmmod ${kernel_so_name_list[$1]}
+ sleep 0.1
+ # if failed,return 255
+ return 255
+}
+
+# set last fingerprint sensor
+fps_vendor=$(cat $persist_fps_id)
+if [ -n "$fps_vendor" ] && [ "$fps_vendor" != $FPS_STATUS_NONE ]; then
+ echo $fps_vendor > $persist_fps_id2
+fi
+
+# get the identified fingerprint sensor
+fps_vendor2=$(cat $persist_fps_id2)
+if [ -z $fps_vendor2 ]; then
+ fps_vendor2=$FPS_VENDOR_NONE
+fi
+log "FPS vendor (last): $fps_vendor2"
+
+fps_vendor=$(cat $persist_fps_id)
+if [ -z $fps_vendor ]; then
+ fps_vendor=$FPS_VENDOR_NONE
+fi
+log "FPS vendor (current): $fps_vendor"
+
+vendor_index=255
+# try to start the most recent success launched sensor.
+if [ $fps_vendor != $FPS_STATUS_NONE ]; then
+ find_vendor_index $fps_vendor
+ vendor_index=$?
+ if [ $vendor_index != 255 ]; then
+ log "start $fps_vendor hal service"
+ start_hal_service $vendor_index
+ if [ $? != 255 ]; then
+ return 0
+ fi
+ fi
+fi
+
+# try all the fingerprint sensors
+for temp_vendor_index in $(seq 0 $last_vendor_index)
+do
+ if [ $temp_vendor_index == $vendor_index ]; then
+ continue
+ fi
+
+ if [ ! -e ${kernel_so_list[$temp_vendor_index]} ]; then
+ log "does not exist ${kernel_so_list[$temp_vendor_index]},ignore this fingerprint sensor"
+ continue
+ fi
+
+ start_hal_service $temp_vendor_index
+ if [ $? != 255 ]; then
+ echo ${vendor_list[$temp_vendor_index]} > $persist_fps_id
+ return 0
+ fi
+done
+
+log "error, no fingerprint sensor found"
+setprop $prop_persist_fps $FPS_VENDOR_NONE
+echo $FPS_VENDOR_NONE > $persist_fps_id
diff --git a/rootdir/bin/init.oem.hw.sh b/rootdir/bin/init.oem.hw.sh
new file mode 100644
index 0000000..de21daf
--- /dev/null
+++ b/rootdir/bin/init.oem.hw.sh
@@ -0,0 +1,742 @@
+#!/vendor/bin/sh
+
+BASEDIR=vendor
+
+PATH=/sbin:/$BASEDIR/sbin:/$BASEDIR/bin:/$BASEDIR/xbin
+export PATH
+
+while getopts dpfrM op;
+do
+ case $op in
+ d) dbg_on=1;;
+ p) populate_only=1;;
+ f) dead_touch=1;;
+ r) reset_touch=1;;
+ M) mount_2nd_stage=1;;
+ esac
+done
+shift $(($OPTIND-1))
+
+scriptname=${0##*/}
+hw_mp=/proc/hw
+config_mp=/proc/config
+reboot_utag=$config_mp/.reboot
+touch_status_prop=vendor.hw.touch.status
+hw_cfg_file=hw_config.xml
+vhw_file=/$BASEDIR/etc/vhw.xml
+bp_file=/system/build.prop
+oem_file=/oem/oem.prop
+load_error=3
+need_to_reload=2
+reload_in_progress=1
+reload_done=0
+ver_utag=".version"
+version_fs="unknown"
+xml_version="unknown"
+device_params=""
+xml_file=""
+utag_update_fail="false"
+modem_ver_prop=ro.vendor.hw.modem_version
+policy_prop=ro.vendor.super_image_policy
+
+super_image_detection()
+{
+ local subsys
+ local file2mount
+ local basefile
+ local version
+ local extention
+ local image_dir
+ local is_super_image
+ local super_image_prop
+ local file_mount_prop
+ local modem_version=$(getprop $modem_ver_prop)
+ local policy=$(getprop $policy_prop)
+
+ debug "'$policy_prop' is '$policy'"
+ for subsys in modem fsg; do
+ debug "Processing [${subsys}]..."
+ is_super_image=""
+ case ${subsys} in
+ modem) image_dir=/vendor/firmware_mnt;;
+ fsg) image_dir=/vendor/fsg;;
+ esac
+
+ [ -f $image_dir/super_modem ] && is_super_image="true"
+ debug "super image '$is_super_image'"
+
+ if [ "$is_super_image" == "true" ]; then
+ file2mount=""
+ case ${subsys} in
+ modem) super_image_prop="ro.vendor.hw.modem_super_image"
+ file_mount_prop="ro.vendor.hw.modem_mount_file"
+ basefile="NON-HLOS.bin"
+ extention=".bin"
+ [ "$modem_version" ] && file2mount=$(printf "NON-HLOS%sbin" $modem_version)
+ ;;
+ fsg) super_image_prop="ro.vendor.hw.fsg_super_image"
+ file_mount_prop="ro.vendor.hw.fsg_mount_file"
+ basefile="fsg.mbn"
+ extention=".mbn"
+ [ "$modem_version" ] && file2mount=$(printf "fsg%smbn" $modem_version)
+ ;;
+ esac
+ if [ -z "$file2mount" ]; then
+ notice "'$modem_ver_prop' not set, but [$subsys] is super image!"
+ else
+ # modem_version matches existing file in super image
+ if [ -f $image_dir/$file2mount ]; then
+ notice "[$subsys] is super image. '$file2mount' will be mounted"
+ setprop $file_mount_prop $file2mount
+ setprop $super_image_prop yes
+ continue
+ fi
+ notice "[$subsys] is super image. '$file2mount' not found"
+ fi
+ else
+ notice "[$subsys] non-super image"
+ fi
+
+ # check super image policy
+ if [ "$policy" == "enforce" ]; then
+ notice "[$subsys] strict super image policy! Rebooting to recovery..."
+ debug "'ro.vendor.hw.super_image_failure' -> 'yes'"
+ setprop ro.vendor.hw.super_image_failure yes
+ return
+ fi
+ notice "[$subsys] super image policy not enforced"
+ # proceed with non-super image if policy allows
+ if [ -z "$is_super_image" ]; then
+ notice "[$subsys] proceed with non-super image!"
+ continue
+ fi
+
+ # retrieve default version if available
+ version=$(cat $image_dir/super_modem)
+ if [ "$version" ]; then
+ basefile=$version
+ notice "default file override '$basefile'"
+ else
+ notice "use default file: '$basefile' instead of '$file2mount'"
+ fi
+
+ notice "Searching for '$basefile' in $image_dir..."
+ debug "checking file '$image_dir/$basefile'"
+ if [ -f $image_dir/$basefile ]; then
+ notice "[$subsys] is super image! '$basefile' will be mounted"
+ debug "'$file_mount_prop' -> '$basefile'"
+ setprop $file_mount_prop $basefile
+ debug "'$super_image_prop' -> 'yes'"
+ setprop $super_image_prop yes
+ continue
+ fi
+
+ # set to fail
+ notice "Unable to mount '$basefile'! Rebooting to recovery..."
+ debug "'ro.vendor.hw.super_image_failure' -> 'yes'"
+ setprop ro.vendor.hw.super_image_failure yes
+ return
+ done
+}
+
+set_reboot_counter()
+{
+ local value=$1
+ local reboot_cnt=0
+ local reboot_mp=${reboot_utag%.*}
+ local tag_name=${reboot_utag##*/}
+ if [ $((value)) -gt 0 ]; then
+ notice "increase reboot counter"
+ [ -d $reboot_utag ] && reboot_cnt=$(cat $reboot_utag/ascii)
+ value=$(($reboot_cnt + 1))
+ fi
+ if [ ! -d $reboot_utag ]; then
+ echo ${reboot_utag##*/} > $reboot_mp/all/new
+ [ $? != 0 ] && notice "error creating UTAG $tag_name"
+ fi
+ echo "$value" > $reboot_utag/ascii
+ [ $? != 0 ] && notice "error updating UTAG $tag_name"
+ notice "UTAG $tag_name is [`cat $reboot_utag/ascii`]"
+}
+
+set_reboot_counter_property()
+{
+ local reboot_cnt=0
+ local tag_name=${reboot_utag##*/}
+ if [ -d $reboot_utag ]; then
+ reboot_cnt=$(cat $reboot_utag/ascii)
+ notice "UTAG $tag_name has value [$reboot_cnt]"
+ else
+ notice "UTAG $tag_name does not exist"
+ fi
+ setprop $touch_status_prop $reboot_cnt
+ notice "property [$touch_status_prop] is set to [`getprop $touch_status_prop`]"
+}
+
+debug()
+{
+ [ $dbg_on ] && echo "Debug: $*"
+}
+
+notice()
+{
+ echo "$*"
+ echo "$scriptname: $*" > /dev/kmsg
+}
+
+add_device_params()
+{
+ device_params=$device_params" $@"
+ debug "add_device_params='$device_params'"
+}
+
+drop_device_parameter()
+{
+ device_params=${device_params% *}
+ debug "drop_device_parameter='$device_params'"
+}
+
+set_xml_file()
+{
+ xml_file=$@
+ debug "working with XML file='$xml_file'"
+}
+
+exec_parser()
+{
+ eval motobox expat -u -f $xml_file $device_params "$@" 2>/dev/null
+}
+
+reload_utags()
+{
+ local mp=$1
+ local value
+ echo "1" > $mp/reload
+ value=$(cat $mp/reload)
+ while [ "$value" == "$reload_in_progress" ]; do
+ notice "waiting for loading to complete"
+ sleep 1;
+ value=$(cat $mp/reload)
+ notice "'$mp' current status [$value]"
+ done
+}
+
+procfs_wait_for_device()
+{
+ local __result=$1
+ local status
+ local mpi
+ local IFS=' '
+ local device_timeout_count=0
+ while [ ! -f $hw_mp/reload ] || [ ! -f $config_mp/reload ]; do
+ notice "waiting for devices"
+ sleep 1;
+ if [ "$device_timeout_count" -eq "10" ];then
+ notice "waiting for devices timeout"
+ eval $__result=""
+ return
+ fi
+ device_timeout_count=$(($device_timeout_count + 1))
+ done
+ for mpi in $hw_mp $config_mp; do
+ status=$(cat $mpi/reload)
+ notice "mount point '$mpi' status [$status]"
+ if [ "$status" == "$need_to_reload" ]; then
+ notice "force $mpi reloading"
+ reload_utags $mpi
+ fi
+ done
+ for mpi in $hw_mp $config_mp; do
+ status=$(cat $mpi/reload)
+ notice "$mpi reload is [$status]"
+ device_timeout_count=0
+ while [ "$status" != "$reload_done" ]; do
+ notice "waiting for loading $mpi to complete"
+ sleep 1;
+ status=$(cat $mpi/reload)
+ if [ "$device_timeout_count" -eq "10" ]; then
+ notice "error: waiting for loading $mpi timeout"
+ break
+ fi
+ device_timeout_count=$(($device_timeout_count + 1))
+ done
+ done
+ eval $__result=$status
+}
+
+get_attr_data_by_name()
+{
+ local __result=$1
+ local attr=$2
+ shift 2
+ local IFS=' '
+ eval $__result=""
+ for arg in ${@}; do
+ [ "${arg%=*}" == "$attr" ] || continue
+ debug "attr_data='${arg#*=}'"
+ eval $__result="${arg#*=}"
+ break
+ done
+}
+
+get_tag_data()
+{
+ local __name=$1
+ local __value=$2
+ shift 2
+ local dataval
+ local IFS=' '
+ eval $__name=""
+ eval $__value=""
+ for arg in ${@}; do
+ case $arg in
+ string-array | string)
+ debug "---/ skip keyword: '$arg'"
+ continue;;
+ esac
+ debug "---> arg='$arg'"
+ if [ "${arg%=*}" == "name" ]; then
+ eval $__name=${arg#*=}
+ continue
+ fi
+ # eval treats ';' as a separator, thus make it '\;'
+ dataval=$(echo ${arg#?} | sed 's/;/\\;/g')
+ debug "<--- dataval='$dataval'"
+ eval $__value=$dataval
+ done
+}
+
+update_utag()
+{
+ local utag=$1
+ local payload=$2
+ local verify
+ local rc
+ if [ ! -d $hw_mp/$utag ]; then
+ notice "creating utag '$utag'"
+ echo $utag > $hw_mp/all/new
+ rc=$?
+ [ "$rc" != "0" ] && notice "'$utag' create dir failed rc=$rc"
+ fi
+ debug "writing '$payload' to '$hw_mp/$utag/ascii'"
+ echo "$payload" > $hw_mp/$utag/ascii
+ rc=$?
+ if [ "$rc" != "0" ]; then
+ utag_update_fail="true"
+ notice "'$utag' write file failed rc=$rc"
+ fi
+ verify=$(cat $hw_mp/$utag/ascii)
+ debug "read '$verify' from '$hw_mp/$utag/ascii'"
+ [ "$verify" != "$payload" ] && notice "'$utag' payload validation failed"
+}
+
+populate_utags()
+{
+ local selection="$@"
+ local pline
+ local ptag
+ local pvalue
+ for pline in $(exec_parser $selection); do
+ get_tag_data ptag pvalue $pline
+ url_style_off pvalue $pvalue
+ debug "tag='$ptag' value='$pvalue'"
+ update_utag $ptag $pvalue
+ done
+}
+
+set_ro_hw_properties_upgrade()
+{
+ local utag_path
+ local utag_name
+ local prop_prefix
+ local utag_value
+ local verify
+ for hwtag in $(find $hw_mp -name '.system'); do
+ debug "path $hwtag has '.system' in its name"
+ prop_prefix="ro.vendor.hw."
+ utag_path=${hwtag%/*}
+ utag_name=${utag_path##*/}
+ utag_value=$(cat $utag_path/ascii)
+ setprop $prop_prefix$utag_name "$utag_value"
+ notice "ro.vendor.hw.$utag_name='$utag_value'"
+ done
+}
+
+set_ro_hw_property()
+{
+ local hwtag=$1
+ local utag_path
+ local utag_name
+ local prop_prefix
+ local utag_value
+ local verify
+
+ debug "path $hwtag has '.system' in its name"
+ prop_prefix=$(cat $hwtag/ascii)
+ verify=${prop_prefix%.}
+ # esure property ends with '.'
+ if [ "$prop_prefix" == "$verify" ]; then
+ prop_prefix="$prop_prefix."
+ debug "added '.' at the end of [$prop_prefix]"
+ fi
+ utag_path=${hwtag%/*}
+ utag_name=${utag_path##*/}
+ utag_value=$(cat $utag_path/ascii)
+ setprop $prop_prefix$utag_name "$utag_value"
+ notice "$prop_prefix$utag_name='$utag_value'"
+}
+
+set_ro_hw_properties()
+{
+
+ for hwtag in $(find $hw_mp -name '.system'); do
+ set_ro_hw_property $hwtag &
+ done
+}
+
+set_ro_vendor_incremental()
+{
+ local vendor_incremental="ro.vendor.build.version.incremental"
+ local vendor_incremental_value
+ local fetch_prop="ro.build.version.incremental"
+ local fetch_value=$(getprop $fetch_prop)
+
+ [ -z "$fetch_value" ] && prefetch_from_file $fetch_prop vendor_incremental_value
+ setprop $vendor_incremental "$vendor_incremental_value"
+ notice "$vendor_incremental='$vendor_incremental_value'"
+}
+
+smart_value()
+{
+ local mtag=$1
+ local __result=$2
+ local value
+ eval $__result=""
+ local tmp=${mtag#?}
+ # absolute path to the file starts with '/'
+ if [ "${mtag%$tmp}" == "/" ]; then
+ value=$(cat $mtag)
+ # property likely to have '.'
+ elif [ "$mtag" != "${mtag%.*}" ]; then
+ value=$(getprop $mtag)
+ else # tag otherwise
+ value=$(cat $hw_mp/$mtag/ascii)
+ fi
+ eval $__result='$value'
+}
+
+url_style_off()
+{
+ local __arg=$1
+ local value=$2
+ if [[ $value == *%* ]]; then
+ value=$(echo ${value//%20/ })
+ value=$(echo ${value//%28/\(})
+ value=$(echo ${value//%29/\)})
+ fi
+ eval $__arg='$value'
+}
+
+match()
+{
+ local mapping
+ local mline
+ local mtag
+ local fs_value
+ local mvalue
+ local matched
+ url_style_off mapping $1
+ debug "match mapping='$mapping'"
+ # put '\"' around $mapping to ensure XML
+ # parser takes it as a single argument
+ for mline in $(exec_parser \"$mapping\"); do
+ get_tag_data mtag mvalue $mline
+ url_style_off mvalue $mvalue
+ # obtain value based on data source: utag, property or file
+ smart_value $mtag fs_value
+ if [ "$fs_value" == "$mvalue" ]; then
+ matched="true";
+ else
+ matched="false";
+ fi
+ debug "cmp utag='$mtag' values '$mvalue' & '$fs_value' is \"$matched\""
+ [ "$matched" == "false" ] && break
+ done
+ [ "$matched" == "true" ] && return 0
+ return 1
+}
+
+find_match()
+{
+ local __retval=$1
+ local tag_name
+ local fline
+ local line
+ local subsection
+ local matched="false"
+ eval $__retval=""
+ for fline in $(exec_parser); do
+ subsection=${fline%% *}
+ add_device_params $subsection
+ for line in $(exec_parser); do
+ get_attr_data_by_name tag_name "name" $line
+ debug "tag_name='$tag_name'"
+ match $tag_name
+ [ "$?" != "0" ] && continue
+ eval $__retval=$tag_name
+ matched="true"
+ break
+ done
+ drop_device_parameter
+ [ "$matched" == "true" ] && break
+ done
+}
+
+prefetch_from_file()
+{
+ local pname=$1
+ local __result=$2
+ local value
+ local override
+ eval $__result=""
+ value=$(cat $bp_file 2>/dev/null | sed '/^$/d' | sed '/^#/d' | sed '/^import/d' | sed -n "/$pname=/p" | sed 's/.*=//')
+ debug "'$pname' from '$bp_file': '$value'"
+ if [ -f $oem_file ]; then
+ override=$(cat $oem_file 2>/dev/null | sed '/^$/d' | sed '/^#/d' | sed '/^import/d' | sed -n "/$pname=/p" | sed 's/.*=//')
+ [ "$override" ] && value=$override && debug "'$pname' from '$oem_file': '$value'"
+ fi
+ eval $__result=$value
+}
+
+append_match()
+{
+ local prop_list=$1
+ local suffix="$2"
+ local dest_prop
+ local fetched_prop
+ local prop_value
+ local IFS=','
+ # properties list to put the result of appending hw suffix to
+ # example: appended="ro.vendor.product.name,ro.vendor.product.device"
+ for dest_prop in $prop_list; do
+ fetch_prop=${dest_prop}
+ # only alter property name that has "vendor" in it
+ if [ "${fetch_prop//.vendor}" != "$dest_prop" ]; then
+ fetch_prop=${fetch_prop//.vendor}
+ prop_value=$(getprop $fetch_prop)
+ [ -z "$prop_value" ] && prefetch_from_file $fetch_prop prop_value
+ # finally set destination property to appended value
+ setprop $dest_prop "$prop_value$suffix"
+ notice "$dest_prop='$prop_value$suffix'"
+ fi
+ done
+}
+
+process_mappings()
+{
+ local pname=""
+ local pexport=""
+ local pdefault=""
+ local pappend=""
+ local putag=""
+ local subsection
+ local pline
+ local matched_val
+ local whitespace_val
+ local export_val
+ local utag_val
+ for pline in $(exec_parser); do
+ subsection=${pline%% *}
+ debug "subsection is '$subsection'"
+ get_attr_data_by_name pname "name" $pline
+ get_attr_data_by_name pexport "export" $pline
+ get_attr_data_by_name pdefault "default" $pline
+ get_attr_data_by_name pappend "append" $pline
+ get_attr_data_by_name putag "writeback" $pline
+ [ "$pname" ] && url_style_off pname $pname && debug "name='$pname'"
+ [ "$pexport" ] && url_style_off pexport $pexport && debug "export='$pexport'"
+ [ "$pdefault" ] && url_style_off pdefault $pdefault && debug "default='$pdefault'"
+ [ "$pappend" ] && url_style_off pappend $pappend && debug "append='$pappend'"
+ # add 'subsection' to permanent parameters
+ add_device_params $subsection
+ # call itself here to handle nonamed subsection, like quirks
+ [ -z "$pname" ] && [ -z "$pexport" ] && [ -z "$pdefault" ] && [ -z "$pappend" ] && [ -z "$putag" ] && process_mappings && continue
+ find_match matched_val
+ [ "$matched_val" ] && url_style_off matched_val $matched_val
+ # append_match handles OEM overrides, thus has to be called even with empty value
+ [ "$pappend" ] && append_match $pappend "$matched_val"
+ if [ "$matched_val" ]; then
+ if [ "$pexport" ]; then
+ setprop $pexport "$matched_val"
+ notice "exporting '$matched_val' into property $pexport"
+ fi
+ elif [ "$pexport" -a "$pdefault" ]; then
+ # if match is not found, proceed with default
+ setprop $pexport "$pdefault"
+ notice "defaulting '$pdefault' into property $pexport"
+ fi
+
+ if [ "$putag" ] && [ -d $hw_mp/$putag ]; then
+ export_val=$(getprop $pexport)
+ utag_val=$(cat $hw_mp/$putag/ascii)
+ debug "writeback compare $utag_val,$export_val"
+ # if property is empty value, clear the utag.
+ # if property and writeback utag are empty value, don't update utag
+ if [ "$export_val" -o "$utag_val" != "(null)" ] && [ "$utag_val" != "$export_val" ]; then
+ update_utag $putag $export_val
+ notice "writeback '$export_val' into utag $putag"
+ fi
+ fi
+ # remove the last added parameter
+ drop_device_parameter
+ done
+}
+
+# Main starts here
+IFS=$'\n'
+
+if [ ! -z "$mount_2nd_stage" ]; then
+ notice "Super image detection"
+ super_image_detection
+ return 0
+fi
+
+if [ ! -z "$reset_touch" ]; then
+ notice "reset reboot counter"
+ set_reboot_counter 0
+ return 0
+fi
+
+if [ ! -z "$dead_touch" ]; then
+ notice "property [$touch_status_prop] set to [dead]"
+ set_reboot_counter 1
+ return 0
+fi
+
+if [ -f /vendor/lib/modules/utags.ko ]; then
+ notice "loading utag driver"
+ insmod /vendor/lib/modules/utags.ko
+ if [ $? -ne 0 ]; then
+ gki_modules_full_path=`find /vendor/lib/modules -name "*-gki"`
+ if [ -n "$gki_modules_full_path" ]; then
+ gki_modules_path=`basename $gki_modules_full_path`
+ notice "loading gki utag driver in /vendor/lib/modules/$gki_modules_path"
+ insmod /vendor/lib/modules/$gki_modules_path/utags.ko
+ if [ $? -ne 0 ]; then
+ notice "fail to load /vendor/lib/modules/$gki_modules_path/utags.ko"
+ setprop ro.vendor.mot.gki.path "."
+ else
+ notice "successfully load /vendor/lib/modules/$gki_modules_path/utags.ko"
+ setprop ro.vendor.mot.gki.path $gki_modules_path
+ fi
+ else
+ notice "fail to load utag driver"
+ setprop ro.vendor.mot.gki.path "."
+ fi
+ else
+ setprop ro.vendor.mot.gki.path "."
+ fi
+fi
+
+notice "checking integrity"
+# check necessary components exist and just proceed
+# with RO properties setup otherwise
+if [ ! -f /$BASEDIR/bin/expat ] || [ ! -f $vhw_file ]; then
+ notice "warning: missing expat or xml"
+ set_ro_hw_properties
+ return 0
+fi
+
+if [ ! -z "$populate_only" ]; then
+ # special handling for factory UTAGs provisioning
+ for path in /data/local/tmp /pds/factory; do
+ [ -f $path/$hw_cfg_file ] && break
+ done
+ notice "populating hw config from '$path/$hw_cfg_file'"
+ set_xml_file $path/$hw_cfg_file
+ populate_utags hardware
+ return 0
+fi
+
+notice "initializing procfs"
+procfs_wait_for_device readiness
+if [ "$readiness" != "0" ]; then
+ notice "no access to hw utags procfs"
+ return 1
+fi
+
+# populate touch status property with reboot counter
+set_reboot_counter_property &
+
+# XML parsing starts here
+set_xml_file $vhw_file
+
+get_attr_data_by_name boot_device_prop "match" $(exec_parser)
+debug "attr='get' value='$boot_device_prop'"
+if [ -z $boot_device_prop ]; then
+ notice "fatal: undefined boot device property"
+ return 1
+fi
+
+# ensure lower case
+typeset -l boot_device=$(getprop $boot_device_prop)
+# drop suffixes
+boot_device=${boot_device%[_-]*}
+notice "matching to boot device '$boot_device'"
+
+# add 'validation' to permanent parameters
+add_device_params validation
+
+for line in $(exec_parser); do
+ get_attr_data_by_name product "name" $line
+ debug "attr='name' value='$product'"
+ if [ "$product" == "$boot_device" ]; then
+ get_attr_data_by_name xml_version "version" $line
+ [ "$xml_version" != "unknown" ] && notice "device '$boot_device' xml version='$xml_version'"
+ break
+ fi
+done
+
+[ "$xml_version" == "unknown" ] && notice "no match found for device '$boot_device'"
+# delete obsolete 'version' utag if exists
+[ -d $hw_mp/${ver_utag#?} ] && $(echo ${ver_utag#?} > $hw_mp/all/delete)
+# read procfs version
+[ -d $hw_mp/$ver_utag ] && version_fs=$(cat $hw_mp/$ver_utag/ascii)
+notice "procfs version='$version_fs'"
+# add 'device' and '$boot_device' to permanent parameters
+add_device_params device $boot_device
+[ "$xml_version" == "$version_fs" ] && notice "hw descriptor is up to date"
+for section in $(exec_parser); do
+ debug "section='$section'"
+ case $section in
+ mappings)
+ # add 'mappings' to permanent parameters
+ add_device_params $section
+ process_mappings &
+ ;;
+ *)
+ [ "$xml_version" == "$version_fs" ] && continue
+ populate_utags $section;;
+ esac
+done
+
+if [ "$xml_version" != "$version_fs" ]; then
+ # create version utag if it's missing
+ [ ! -d $hw_mp/$ver_utag ] && $(echo "$ver_utag" > $hw_mp/all/new)
+ # update procfs version
+ [ -d $hw_mp/$ver_utag ] && $(echo "$xml_version" > $hw_mp/$ver_utag/ascii)
+fi
+
+set_ro_vendor_incremental &
+
+set_ro_hw_properties
+
+if [ "$utag_update_fail" == "true" ]; then
+ set_ro_hw_properties_upgrade
+fi
+
+wait
+
+notice "script init.oem.hw.sh finish "
+return 0
+
diff --git a/rootdir/bin/pstore_annotate.sh b/rootdir/bin/pstore_annotate.sh
new file mode 100644
index 0000000..c17a8e6
--- /dev/null
+++ b/rootdir/bin/pstore_annotate.sh
@@ -0,0 +1,36 @@
+#!/vendor/bin/sh
+#
+# Copyright (c) 2016, Motorola Mobility LLC, All rights reserved.
+#
+# The purpose of this script is to annotate panic dumps with useful information
+# about the context of the event.
+#
+
+export PATH=/vendor/bin:$PATH
+
+annotate()
+{
+ VAL=`$2`
+ [ "$VAL" ] || return
+ if [ -e /sys/fs/pstore/annotate-ramoops-0 ] ; then
+ echo "$1: $VAL" > /sys/fs/pstore/annotate-ramoops-0
+ fi
+
+ if [ -e /proc/driver/mmi_annotate ] ; then
+ echo "$1: $VAL" > /proc/driver/mmi_annotate
+ fi
+}
+
+case $1 in
+ build*)
+ annotate "Boot mode" "getprop ro.boot.mode"
+ annotate "Console" "getprop ro.boot.console"
+ annotate "Secure hardware" "getprop ro.boot.secure_hardware"
+ annotate "Hab cid" "getprop ro.boot.hab.cid"
+ annotate "VB state" "getprop ro.boot.verifiedbootstate"
+ annotate "Verity mode" "getprop ro.boot.veritymode"
+ annotate "HW cid" "getprop ro.boot.cid"
+ annotate "SW cid" "getprop ro.boot.cid_sw"
+ annotate "Apdp state" "getprop ro.boot.device_apdp_state"
+ ;;
+esac
diff --git a/rootdir/bin/vendor.mmi.cxp.sh b/rootdir/bin/vendor.mmi.cxp.sh
new file mode 100644
index 0000000..fb45ac6
--- /dev/null
+++ b/rootdir/bin/vendor.mmi.cxp.sh
@@ -0,0 +1,69 @@
+#!/vendor/bin/sh
+
+# Copyright (c) 2021, Motorola Mobility LLC, All Rights Reserved.
+#
+# Date Created: 8/30/2021, Set CXP properties according to carrier channel
+#
+
+set_properties()
+{
+ # do not set SPB ID for M80 modem
+ if [ $set_sbp_place ] && [ $set_sbp_place -ge 2 ]; then
+ sbp=0
+ fi
+ setprop ro.vendor.mtk_md_sbp_custom_value $sbp
+ setprop ro.vendor.operator.optr $1
+ setprop ro.vendor.operator.spec $2
+ setprop ro.vendor.operator.seg $3
+ if [ ! $optr ]; then
+ setprop persist.vendor.mtk_usp_md_sbp_code $sbp
+ setprop persist.vendor.operator.optr $1
+ setprop persist.vendor.operator.spec $2
+ setprop persist.vendor.operator.seg $3
+ fi
+}
+
+
+boot_carrier=`getprop ro.boot.carrier`
+optr=`getprop persist.vendor.operator.optr`
+set_sbp_place=`getprop ro.vendor.ril.set_sbp_place`
+
+
+case $boot_carrier in
+ att|attpre )
+ sbp=7
+ set_properties OP07 SPEC0407 SEGDEFAULT
+ ;;
+ cricket )
+ sbp=145
+ set_properties OP07 SPEC0407 SEGDEFAULT
+ ;;
+ tmo|boost|cc|fi|metropcs|tracfone|retus )
+ sbp=8
+ set_properties OP08 SPEC0200 SEGDEFAULT
+ ;;
+ usc )
+ sbp=236
+ set_properties OP236 SPEC0200 SEGDEFAULT
+ ;;
+ vzw|vzwpre|comcast|spectrum )
+ sbp=12
+ set_properties OP12 SPEC0200 SEGDEFAULT
+ ;;
+ ctcn )
+ sbp=9
+ setprop ro.vendor.mtk_md_sbp_custom_value 0
+ set_properties OP09 SPEC0212 SEGC
+ ;;
+ cmcc )
+ sbp=1
+ setprop ro.vendor.mtk_md_sbp_custom_value 1
+ set_properties OP01 SPEC0200 SEGC
+ ;;
+ * )
+ sbp=0
+ set_properties "" "" ""
+ ;;
+esac
+
+return 0
diff --git a/rootdir/etc/apanic.rc b/rootdir/etc/apanic.rc
new file mode 100644
index 0000000..00b992a
--- /dev/null
+++ b/rootdir/etc/apanic.rc
@@ -0,0 +1,23 @@
+on init
+ # split minidump and full ramdump
+ setprop ro.vendor.aee.splict_framdump yes
+
+service vendor.apanic_annotate /vendor/bin/apanic_mtk.sh
+ class late_start
+ user root
+ group log
+ oneshot
+ disabled
+
+on property:ro.boot.bootreason=kernel_panic
+ setprop ro.vendor.boot.apanic.reason "boot"
+ start vendor.apanic_annotate
+
+on property:ro.boot.bootreason=watchdog
+ setprop ro.vendor.boot.apanic.reason "boot"
+ start vendor.apanic_annotate
+
+on property:vendor.debug.mtk.aeev.db=*
+ setprop ro.vendor.boot.apanic.reason "prop"
+ setprop ro.vendor.boot.apanic.prop "1"
+ start vendor.apanic_annotate
diff --git a/rootdir/etc/factory_init.connectivity.common.rc b/rootdir/etc/factory_init.connectivity.common.rc
new file mode 100644
index 0000000..5c3e00b
--- /dev/null
+++ b/rootdir/etc/factory_init.connectivity.common.rc
@@ -0,0 +1,86 @@
+on post-fs-data
+#
+# Connectivity related modules and character device nodes (Begin)
+#
+
+#/dev/ttyMT2 for Connectivity BT/FM/GPS usage
+ chmod 0660 /dev/ttyMT2
+ chown system system /dev/ttyMT2
+
+# GPS
+ mkdir /data/vendor/gps 0770 gps system
+ chown gps gps /dev/stpgps
+ chown gps gps /dev/stpgps2
+ chmod 0660 /dev/stpgps
+ chmod 0660 /dev/stpgps2
+
+# GPS EMI
+ chmod 666 /dev/gps_emi
+
+# WiFi
+ mkdir /data/misc/wifi 0770 wifi wifi
+ mkdir /data/misc/wifi/sockets 0770 wifi wifi
+ mkdir /data/misc/wpa_supplicant 0770 wifi wifi
+
+#
+# Connectivity related device nodes & configuration (end)
+#
+
+
+on boot
+
+#
+# Connectivity related services (Begin)
+#
+
+# GPS
+#service mnld /vendor/bin/mnld
+# class main
+# user gps
+# group gps inet misc sdcard_rw sdcard_r media_rw system radio
+# socket mnld stream 660 gps system
+
+#service BGW /vendor/bin/BGW
+# user system
+# group gps system radio
+# class main
+
+service wlan_assistant /vendor/bin/wlan_assistant
+ class main
+ user wifi
+ group system gps inet
+
+#
+# Connectivity related services (End)
+#
+
+#
+# Connectivity related kernel objects (Begin)
+#
+
+# load connfem driver
+on boot
+ insmod /vendor/lib/modules/connfem.ko
+
+# load bt_drv
+on property:vendor.connsys.driver.ready=yes
+ insmod /vendor/lib/modules/bt_drv_${ro.vendor.bt.platform}.ko
+
+# load wifi chrdev driver and wlan driver after wmt_loader finish
+on property:vendor.connsys.driver.ready=yes
+ insmod /vendor/lib/modules/${ro.vendor.wlan.chrdev}.ko
+ insmod /vendor/lib/modules/wlan_drv_${ro.vendor.wlan.gen}.ko
+ start wlan_assistant
+
+# load fmradio_drv
+on property:vendor.connsys.driver.ready=yes
+ insmod /vendor/lib/modules/fmradio_drv_${ro.vendor.fm.platform}.ko
+
+# load gps_drv
+on property:vendor.connsys.driver.ready=yes
+ insmod /vendor/lib/modules/${ro.vendor.gps.chrdev}.ko
+
+#
+# Connectivity related kernel objects (End)
+#
+
diff --git a/rootdir/etc/factory_init.connectivity.rc b/rootdir/etc/factory_init.connectivity.rc
new file mode 100644
index 0000000..03c57f0
--- /dev/null
+++ b/rootdir/etc/factory_init.connectivity.rc
@@ -0,0 +1,34 @@
+import /vendor/etc/init/hw/factory_init.connectivity.common.rc
+
+on boot
+
+#
+# Connectivity related services (Begin)
+#
+
+# WMT
+service wmt_loader /vendor/bin/wmt_loader
+ user system
+ group system
+ oneshot
+
+service wmt_launcher /vendor/bin/wmt_launcher -p /vendor/firmware/
+ user system
+ group system
+
+#
+# Connectivity related services (End)
+#
+
+#
+# Connectivity related kernel objects (Begin)
+#
+
+# load wmt_drv
+on boot
+ insmod /vendor/lib/modules/wmt_drv.ko
+
+#
+# Connectivity related kernel objects (End)
+#
+
diff --git a/rootdir/etc/factory_init.project.rc b/rootdir/etc/factory_init.project.rc
new file mode 100644
index 0000000..4ef73bf
--- /dev/null
+++ b/rootdir/etc/factory_init.project.rc
@@ -0,0 +1,42 @@
+import /vendor/etc/init/hw/init.mtkgki.rc
+
+mkdir /data/misc/sensors 0664 system system
+
+service msensord /system/bin/msensord
+ user system
+ group system
+ oneshot
+
+service akmd8963 /system/bin/akmd8963
+ disabled
+ user system
+ group system
+
+
+on post-fs
+ # disable HPS
+ write /proc/hps/enabled 0
+
+
+ chmod 0660 /dev/spm
+ chown system system /dev/spm
+
+on boot
+
+service spm_script /vendor/bin/spm_loader
+ user system
+ group system
+ oneshot
+
+on property:sys.usb.config=gs1gs3
+ 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 2029
+ write /sys/class/android_usb/android0/f_acm/port_index 2,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
+ start adbd
+ setprop sys.usb.state ${sys.usb.config}
+ setprop sys.usb.acm_idx 2,4
+
diff --git a/rootdir/etc/factory_init.rc b/rootdir/etc/factory_init.rc
new file mode 100644
index 0000000..710dd7d
--- /dev/null
+++ b/rootdir/etc/factory_init.rc
@@ -0,0 +1,890 @@
+# Copyright (C) 2012 The Android Open Source Project
+#
+# IMPORTANT: Do not create world writable files or directories.
+# This is a common source of Android security bugs.
+#
+import /system_ext/etc/init/hw/vendor_init_as_system.rc
+import ${ro.vendor.rc}factory_init.connectivity.rc
+import ${ro.vendor.rc}factory_init.thp.rc
+import /init.environ.rc
+import /vendor/etc/init/trustonic.rc
+import ${ro.vendor.rc}init.nvdata.rc
+import /vendor/etc/init/microtrust.rc
+import /vendor/etc/init/hw/init.aee.rc
+import /system_ext/etc/init/hw/init.aee.rc
+import /vendor/etc/init/vendor.mediatek.hardware.mtkpower@1.0-service.rc
+import /vendor/etc/init/android.hardware.boot@1.2-service.rc
+import /vendor/etc/init/android.hardware.boot@1.2-service-lazy.rc
+import /vendor/etc/init/vendor.mediatek.hardware.thp@1.0-service.rc
+import /vendor/etc/init/android.hardware.health@2.1-service.rc
+
+#NFC
+import /vendor/etc/init/hw/init.stnfc.rc
+
+#copy from system/etc for APEX
+import /system/etc/init/apexd.rc
+import /system/etc/init/art_apex_boot_integrity.rc
+
+import /system/etc/init/vold.rc
+
+import /vendor/etc/init/hw/factory_init.project.rc
+import /system/etc/init/servicemanager.rc
+import /system/etc/init/hwservicemanager.rc
+import /system/etc/init/android.hidl.allocator@1.0-service.rc
+
+import ${ro.vendor.rc}multi_init.rc
+
+on early-init
+ # Set init and its forked children's oom_adj.
+ write /proc/1/oom_score_adj -1000
+
+ # Disable sysrq from keyboard
+ write /proc/sys/kernel/sysrq 0
+
+ # Set the security context of /adb_keys if present.
+ restorecon /adb_keys
+
+ # Set the security context of /postinstall if present.
+ restorecon /postinstall
+
+
+ # Set up linker config subdirectories based on mount namespaces
+ mkdir /linkerconfig/bootstrap 0755
+ mkdir /linkerconfig/default 0755
+
+ # Generate ld.config.txt for early executed processes
+ exec -- /system/bin/bootstrap/linkerconfig --target /linkerconfig/bootstrap
+
+ chmod 644 /linkerconfig/bootstrap/ld.config.txt
+ copy /linkerconfig/bootstrap/ld.config.txt /linkerconfig/default/ld.config.txt
+ chmod 644 /linkerconfig/default/ld.config.txt
+
+ # Mount bootstrap linker configuration as current
+ mount none /linkerconfig/bootstrap /linkerconfig bind rec
+
+ start ueventd
+
+
+ # Run apexd-bootstrap so that APEXes that provide critical libraries
+ # become available. Note that this is executed as exec_start to ensure that
+ # the libraries are available to the processes started after this statement.
+ exec_start apexd-bootstrap
+
+ # Generate linker config based on apex mounted in bootstrap namespace
+ update_linker_config
+
+#INTERNAL_START
+ mount debugfs debugfs /sys/kernel/debug
+ chmod 0755 /sys/kernel/debug
+#INTERNAL_END
+
+ # initialize vendor.all.modules.ready to 1 here to prevent NOT GKI project blocked
+ setprop vendor.all.modules.ready 1
+
+on init
+
+sysclktz 0
+
+ # Mix device-specific information into the entropy pool
+ copy /proc/cmdline /dev/urandom
+ copy /default.prop /dev/urandom
+
+ write /proc/bootprof "INIT: on init start"
+
+ # Backward compatibility.
+ symlink /system/bin /bin
+ symlink /system/etc /etc
+
+ # Backward compatibility.
+ symlink /sys/kernel/debug /d
+
+
+# Link /vendor to /system/vendor for devices without a vendor partition.
+ symlink /system/vendor /vendor
+# Temp Backward compatibility
+ symlink /dev/block/by-name/boot /dev/bootimg
+ symlink /dev/block/by-name/recovery /dev/recovery
+ symlink /dev/block/by-name/secro /dev/sec_ro
+ symlink /dev/block/by-name/kb /dev/kb
+ symlink /dev/block/by-name/dkb /dev/dkb
+ symlink /dev/block/by-name/seccfg /dev/seccfg
+ symlink /dev/block/by-name/proinfo /dev/pro_info
+ symlink /dev/block/by-name/nvram /dev/nvram
+ symlink /dev/block/by-name/para /dev/misc
+ symlink /dev/block/by-name/logo /dev/logo
+
+
+ # Mount cgroup mount point for cpu accounting
+ mount cgroup none /acct cpuacct
+ mkdir /acct/uid
+
+ # Create energy-aware scheduler tuning nodes
+ mkdir /dev/stune
+ mount cgroup none /dev/stune nodev noexec nosuid schedtune
+ mkdir /dev/stune/foreground
+ mkdir /dev/stune/background
+ mkdir /dev/stune/top-app
+ mkdir /dev/stune/rt
+ chown system system /dev/stune
+ chown system system /dev/stune/foreground
+ chown system system /dev/stune/background
+ chown system system /dev/stune/top-app
+ chown system system /dev/stune/rt
+ chown system system /dev/stune/tasks
+ chown system system /dev/stune/foreground/tasks
+ chown system system /dev/stune/background/tasks
+ chown system system /dev/stune/top-app/tasks
+ chown system system /dev/stune/rt/tasks
+ chmod 0664 /dev/stune/tasks
+ chmod 0664 /dev/stune/foreground/tasks
+ chmod 0664 /dev/stune/background/tasks
+ chmod 0664 /dev/stune/top-app/tasks
+ chmod 0664 /dev/stune/rt/tasks
+
+ # Permissions for System Server and daemons.
+ chown system system /sys/power/autosleep
+ chown system system /sys/power/state
+ chown system system /sys/power/wakeup_count
+ chown radio wakelock /sys/power/wake_lock
+ chown radio wakelock /sys/power/wake_unlock
+ chmod 0660 /sys/power/state
+ chmod 0660 /sys/power/wake_lock
+ chmod 0660 /sys/power/wake_unlock
+ chmod 0660 /sys/power/wakeup_count
+
+ restorecon_recursive /mnt
+ # Support legacy paths
+ symlink /sdcard /mnt/sdcard
+
+ mount configfs none /config nodev noexec nosuid
+ chmod 0770 /config/sdcardfs
+ chown system package_info /config/sdcardfs
+
+ # Mount binderfs
+ mkdir /dev/binderfs
+ mount binder binder /dev/binderfs stats=global
+ chmod 0755 /dev/binderfs
+
+ # Mount fusectl
+ mount fusectl none /sys/fs/fuse/connections
+
+ symlink /dev/binderfs/binder /dev/binder
+ symlink /dev/binderfs/hwbinder /dev/hwbinder
+ symlink /dev/binderfs/vndbinder /dev/vndbinder
+
+ chmod 0666 /dev/binderfs/hwbinder
+ chmod 0666 /dev/binderfs/binder
+ chmod 0666 /dev/binderfs/vndbinder
+
+ 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
+ mkdir /mnt/appfuse 0711 root root
+
+ # Storage views to support runtime permissions
+ 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 /storage/self/primary /mnt/sdcard
+ symlink /mnt/user/0/primary /mnt/runtime/default/self/primary
+
+ # root memory control cgroup, used by lmkd
+ mkdir /dev/memcg 0700 root system
+ mount cgroup none /dev/memcg memory
+ # app mem cgroups, used by activity manager, lmkd and zygote
+ mkdir /dev/memcg/apps/ 0755 system system
+
+ write /proc/sys/kernel/panic_on_oops 1
+ write /proc/sys/kernel/hung_task_timeout_secs 0
+ write /proc/cpu/alignment 4
+
+ # scheduler tunables
+ # Disable auto-scaling of scheduler tunables with hotplug. The tunables
+ # will vary across devices in unpredictable ways if allowed to scale with
+ # cpu cores.
+ write /proc/sys/kernel/sched_tunable_scaling 0
+ write /proc/sys/kernel/sched_latency_ns 10000000
+ write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000
+ write /proc/sys/kernel/sched_child_runs_first 0
+
+ write /proc/sys/kernel/randomize_va_space 2
+ write /proc/sys/vm/mmap_min_addr 32768
+ write /proc/sys/net/ipv4/ping_group_range "0 2147483647"
+ write /proc/sys/net/unix/max_dgram_qlen 600
+ write /proc/sys/kernel/sched_rt_runtime_us 950000
+ write /proc/sys/kernel/sched_rt_period_us 1000000
+
+ # Assign reasonable ceiling values for socket rcv/snd buffers.
+ # These should almost always be overridden by the target per the
+ # the corresponding technology maximums.
+ write /proc/sys/net/core/rmem_max 262144
+ write /proc/sys/net/core/wmem_max 262144
+
+ # reflect fwmark from incoming packets onto generated replies
+ write /proc/sys/net/ipv4/fwmark_reflect 1
+ write /proc/sys/net/ipv6/fwmark_reflect 1
+
+ # set fwmark on accepted sockets
+ write /proc/sys/net/ipv4/tcp_fwmark_accept 1
+
+ # disable icmp redirects
+ write /proc/sys/net/ipv4/conf/all/accept_redirects 0
+ write /proc/sys/net/ipv6/conf/all/accept_redirects 0
+
+ #INTERNAL_START
+ mkdir /mnt/cd-rom 0000 system system
+ #INTERNAL_END
+ # enable armv8_deprecated instruction hooks
+ write /proc/sys/abi/swp 1
+ # Linux's execveat() syscall may construct paths containing /dev/fd
+ # expecting it to point to /proc/self/fd
+ symlink /proc/self/fd /dev/fd
+ # set RLIMIT_NICE to allow priorities from 19 to -20
+ setrlimit nice 40 40
+
+ start servicemanager
+ start hwservicemanager
+ start hidl_memory
+
+ # 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_system_props_action
+ load_system_props
+
+ on load_persist_props_action
+ load_persist_props
+ start logd
+ start logd-reinit
+
+# Indicate to fw loaders that the relevant mounts are up.
+on firmware_mounts_complete
+ rm /dev/.booting
+
+ # Mount filesystems and start core system services.
+ on late-init
+ trigger early-fs
+
+ # Mount fstab in init.{$device}.rc by mount_all command. Optional parameter
+ # '--early' can be specified to skip entries with 'latemount'.
+ # /system and /vendor must be mounted by the end of the fs stage,
+ # while /data is optional.
+ trigger fs
+ trigger post-fs
+
+ # 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_system_props_action
+
+ # Mount fstab in init.{$device}.rc by mount_all with '--late' parameter
+ # to only mount entries with 'latemount'. This is needed if '--early' is
+ # specified in the previous mount_all command on the fs stage.
+ # With /system mounted and properties form /system + /factory available,
+ # some services can be started.
+ trigger late-fs
+
+ # Now we can mount /data. File encryption requires keymaster to decrypt
+ # /data, which in turn can only be loaded when system properties are present.
+ trigger post-fs-data
+
+ # Load persist properties and override properties (if enabled) from /data.
+ trigger load_persist_props_action
+
+ # Remove a file to wake up anything waiting for firmware.
+ trigger firmware_mounts_complete
+
+ trigger early-boot
+ trigger boot
+
+ on early-fs
+ # Once metadata has been mounted, we'll need vold to deal with userdata checkpointing
+ start vold
+
+# mount different fs start
+on fs
+ #USB configfs
+ mkdir /dev/usb-ffs 0770 shell shell
+ mkdir /dev/usb-ffs/adb 0770 shell shell
+ mkdir /config/usb_gadget/g1 0770 shell shell
+ write /config/usb_gadget/g1/idVendor 0x0E8D
+ write /config/usb_gadget/g1/bcdDevice 0xFFFF
+ write /config/usb_gadget/g1/bcdUSB 0x0200
+ mkdir /config/usb_gadget/g1/strings/0x409 0770
+ write /config/usb_gadget/g1/strings/0x409/manufacturer "Android"
+ write /config/usb_gadget/g1/strings/0x409/product "Android"
+ write /config/usb_gadget/g1/bDeviceClass 0
+ write /config/usb_gadget/g1/bDeviceSubClass 0
+ write /config/usb_gadget/g1/bDeviceProtocol 0
+ mkdir /config/usb_gadget/g1/functions/mass_storage.usb0
+ mkdir /config/usb_gadget/g1/functions/ffs.adb
+ mkdir /config/usb_gadget/g1/functions/acm.gs0
+ mkdir /config/usb_gadget/g1/functions/acm.gs1
+ mkdir /config/usb_gadget/g1/functions/acm.gs2
+ mkdir /config/usb_gadget/g1/functions/acm.gs3
+ mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell
+ mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell
+ write /config/usb_gadget/g1/configs/b.1/MaxPower 500
+ symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
+ mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
+
+#INTERNAL_START
+ write /proc/bootprof "INIT:Mount_START"
+ start vendor.boot-hal-1-2
+ mount_all --early
+ write /proc/bootprof "INIT:Mount_END"
+#INTERNAL_END
+# mount different fs end
+
+on post-fs
+ start logd
+ start light-default
+ start system_suspend
+ start merged_hal_service
+ start capi-2-0
+ start health-hal-2-1
+ # Once everything is setup, no need to modify /.
+ # The bind+ro combination avoids modifying any other mount flags.
+ # mount rootfs rootfs / remount bind ro
+ # 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 bind rec
+ mount none none /storage slave rec
+
+ # Make sure /sys/kernel/debug (if present) is labeled properly
+ # Note that tracefs may be mounted under debug, so we need to cross filesystems
+ restorecon --recursive --cross-filesystems /sys/kernel/debug
+
+ # 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 /mnt/vendor/protect_f
+ chmod 0770 /mnt/vendor/protect_f
+
+ chown system system /mnt/vendor/protect_s
+ chmod 0770 /mnt/vendor/protect_s
+
+ chown system system /mnt/vendor/nvcfg
+ chmod 0771 /mnt/vendor/nvcfg
+ restorecon_recursive /mnt/vendor/nvcfg
+
+ chown root system /mnt/vendor/nvdata
+ chmod 0771 /mnt/vendor/nvdata
+ mkdir /mnt/vendor/nvdata/media 0771 media audio
+ restorecon_recursive /mnt/vendor/nvdata
+
+#INTERNAL_END
+
+on late-fs
+
+ # HALs required before storage encryption can get unlocked (FBE/FDE)
+ class_start early_hal
+ wait_for_prop hwservicemanager.ready "true"
+ start vendor.keymaster-3-0
+ start vendor.keymaster-3-0-trustonic
+ start vendor.keymaster-4-0
+ start vendor.keymaster-4-0-trustonic
+ start vendor.keymaster-4-0-beanpod
+ start vendor.keymaster-4-1-beanpod
+ start vendor.keymint-default
+ start keymaster_attestation-1-1
+ exec_start wait_for_keymaster
+ mount_all --late
+
+on post-fs-data
+ write /proc/bootprof "INIT:post-fs-data"
+ wait_for_prop vendor.all.modules.ready 1
+ write /proc/bootprof "modprobe: Load_Module_DONE"
+
+ #Thermal
+ mkdir /data/.tp/ 0775 system system
+
+ # symlink to bugreport storage location
+ rm /data/bugreports
+ symlink /data/user_de/0/com.android.shell/files/bugreports /data/bugreports
+
+ # VIA flashlessd service
+ mkdir /data/flashless 0770 radio nvram
+ mkdir /mnt/vendor/nvdata/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 /vendor/etc/partition_permission.sh
+#INTERNAL_START
+#SeLinux
+ mkdir /data/ccci_cfg 0770 system radio
+ restorecon /data/ccci_cfg
+ restorecon_recursive /mnt/vendor/protect_f
+ restorecon_recursive /mnt/vendor/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 /mnt/vendor/nvdata/md 0770 root system
+ mkdir /mnt/vendor/nvdata/md2 0770 root system
+ mkdir /mnt/vendor/nvdata/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
+
+
+ #VideoCodec
+ chmod 0666 /dev/Vcodec
+
+
+ mkdir /data/amit/
+
+ # GPIO
+ chmod 0666 /dev/mtgpio
+
+ chmod 0666 /dev/exm0
+
+ #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
+
+# It is recommended to put unnecessary data/ initialization from post-fs-data
+# to start-zygote in device's init.rc to unblock zygote start.
+on zygote-start && property:ro.crypto.state=unencrypted
+ # A/B update verifier that marks a successful boot.
+ exec_start update_verifier_nonencrypted
+ start netd
+ start zygote
+ start zygote_secondary
+
+on zygote-start && property:ro.crypto.state=unsupported
+ # A/B update verifier that marks a successful boot.
+ exec_start update_verifier_nonencrypted
+ start netd
+ start zygote
+ start zygote_secondary
+
+on zygote-start && property:ro.crypto.state=encrypted && property:ro.crypto.type=file
+ # A/B update verifier that marks a successful boot.
+ exec_start update_verifier_nonencrypted
+ start netd
+ start zygote
+ start zygote_secondary
+
+on boot
+ setprop sys.usb.configfs 1
+ setprop sys.usb.controller "11201000.usb0"
+ setprop sys.usb.ffs.aio_compat 1
+ setprop vendor.usb.clear boot
+
+ # TTY
+ chmod 0660 /dev/ttyGS0
+ chown system radio /dev/ttyGS0
+ chmod 0660 /dev/ttyGS1
+ chown system radio /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
+
+ #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
+
+ # For backlight
+ chmod 0664 /sys/class/leds/lcd-backlight/brightness
+ chown system system /sys/class/leds/lcd-backlight/brightness
+
+ # Power Manager
+ write /sys/power/pm_freeze_timeout 2000
+
+# basic network init
+ ifup lo
+ hostname localhost
+ domainname localdomain
+
+ #INTERNAL_START
+ # Start default class, this line is very important!!
+ class_start default
+ #INTERNAL_END
+
+ # Start standard binderized HAL daemons
+ class_start hal
+
+ 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
+ start logd
+ start logd-reinit
+
+on property:vold.decrypt=trigger_post_fs_data
+ trigger post-fs-data
+ trigger zygote-start
+
+on property:vold.decrypt=trigger_restart_min_framework
+ # A/B update verifier that marks a successful boot.
+ exec_start update_verifier
+ class_start main
+
+on property:vold.decrypt=trigger_restart_framework
+ stop surfaceflinger
+ start surfaceflinger
+ # A/B update verifier that marks a successful boot.
+ exec_start update_verifier
+ class_start main
+ class_start late_start
+
+on property:vold.decrypt=trigger_shutdown_framework
+ class_reset late_start
+ class_reset main
+
+# One shot invocation to deal with encrypted volume.
+on defaultcrypto
+ exec - root -- /system/bin/vdc --wait cryptfs mountdefaultencrypted
+ # 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
+# mtk modification:
+# To speed up the booting in meta/factory mode, we don't encrypt the device.
+# And then handle it as 'unencrypted' state.
+on encrypt
+ mount ext4 /dev/block/by-name/userdata /data noatime nosuid nodev noauto_da_alloc discard wait
+ setprop vendor.crypto.fake_encrypt 1
+ setprop vold.post_fs_data_done 0
+ trigger post-fs-data
+on property:vendor.crypto.fake_encrypt=1 && property:vold.post_fs_data_done=1
+ trigger load_persist_props_action
+ # setprop ro.crypto.state unencrypted
+ setprop vendor.soter.teei.crypto.state unencrypted
+ exec_start update_verifier
+ class_start main
+ class_start late_start
+ start mount_all_storages
+
+service ueventd /system/bin/ueventd
+ class core
+ critical
+ seclabel u:r:ueventd:s0
+
+service console /system/bin/sh
+ class core
+ console
+ disabled
+ user shell
+ group shell log readproc
+ seclabel u:r:shell:s0
+
+on property:sys.powerctl=*
+ powerctl ${sys.powerctl}
+
+#Log too much setting
+on property:ro.vendor.mtklog_internal=1
+ setprop vendor.logmuch.value 10000
+
+on property:ro.debuggable=1
+ # Give writes to anyone for the trace folder on debug builds.
+ # The folder is used to store method traces.
+ chmod 0773 /data/misc/trace
+ start console
+
+# adbd is controlled via property triggers in init..usb.rc
+service adbd /apex/com.android.adbd/bin/adbd --root_seclabel=u:r:su:s0
+ class core
+ socket adbd seqpacket 660 system system
+ disabled
+ override
+ seclabel u:r:adbd:s0
+
+#INTERNAL_START
+## Custom service area (START)
+# Please add custom service below
+
+service thermal_manager /vendor/bin/thermal_manager
+ user root
+ group system
+ oneshot
+
+service permission_check /vendor/bin/permission_check
+ user root
+ group system radio
+ oneshot
+
+service ccci_mdinit /vendor/bin/ccci_mdinit 0
+ user system
+ group radio system
+ oneshot
+
+service ccci_rpcd /vendor/bin/ccci_rpcd 0
+ user radio
+ group radio system
+ oneshot
+
+
+service fuelgauged /vendor/bin/fuelgauged
+ class main
+ user system
+ group system
+
+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 /vendor/bin/factory
+ user root
+ group radio system wifi media gps audio bluetooth wakelock nfc
+ capabilities BLOCK_SUSPEND NET_RAW NET_ADMIN SYS_ADMIN SYS_BOOT
+
+service emdlogger1 /system/system_ext/bin/emdlogger1
+ class main
+ user shell
+ group system shell radio sdcard_rw inet sdcard_r media_rw
+ disabled
+ oneshot
+
+service emdlogger2 /system/bin/emdlogger2
+ class main
+ user shell
+ group system shell radio sdcard_rw inet sdcard_r media_rw
+ disabled
+ oneshot
+
+service emdlogger3 /system/bin/emdlogger3
+ class main
+ user shell
+ group system shell radio sdcard_rw inet sdcard_r media_rw
+ disabled
+ oneshot
+
+service emdlogger5 /system/bin/emdlogger5
+ class main
+ user shell
+ group system shell radio sdcard_rw inet sdcard_r media_rw
+ disabled
+ oneshot
+
+service emdlogger6 /system/bin/emdlogger6
+ class main
+ user shell
+ group system shell radio sdcard_rw inet sdcard_r media_rw
+ disabled
+ oneshot
+
+## Custom service area (END)
+on property:vendor.usb.clear=1 && property:sys.usb.configfs=1
+ stop adbd
+ setprop sys.usb.ffs.ready 0
+ write /config/usb_gadget/g1/UDC "none"
+ write /config/usb_gadget/g1/bDeviceClass 0
+ write /config/usb_gadget/g1/bDeviceSubClass 0
+ write /config/usb_gadget/g1/bDeviceProtocol 0
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ write /sys/devices/platform/mt_usb/saving 0
+ setprop vendor.usb.clear 2
+ start adbd
+
+#mass_storage,adb,acm
+on property:ro.boot.usbconfig=0 && property:sys.usb.configfs=1 && property:vendor.usb.clear=boot
+ start adbd
+
+on property:sys.usb.ffs.ready=1 && property:ro.boot.usbconfig=0 && \
+property:sys.usb.configfs=1 && property:vendor.usb.clear=boot
+ write /config/usb_gadget/g1/UDC "none"
+ write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_acm"
+ write /config/usb_gadget/g1/idProduct 0x2006
+ symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop vendor.usb.acm_idx "1"
+
+on property:ro.boot.usbconfig=1 && property:sys.usb.configfs=1 && property:vendor.usb.clear=boot
+ start adbd
+
+on property:sys.usb.ffs.ready=1 && property:ro.boot.usbconfig=1 && \
+property:sys.usb.configfs=1 && property:vendor.usb.clear=boot
+ write /config/usb_gadget/g1/UDC "none"
+ write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_acm"
+ write /config/usb_gadget/g1/idProduct 0x2006
+ symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop vendor.usb.acm_idx "1"
+
+#singloe modem comport for factory mode
+on property:sys.usb.config=gs3,dual_acm && property:sys.usb.configfs=1
+ setprop vendor.usb.clear 1
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=gs3,dual_acm && \
+property:vendor.usb.clear=2 && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "gs3_dual_acm"
+ write /config/usb_gadget/g1/idProduct 0x202E
+ write /sys/devices/platform/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
+ symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+ setprop vendor.usb.clear 0
+ setprop vendor.usb.acm_idx "1,4"
+
+on property:sys.usb.config=gs1gs3,dual_acm && property:sys.usb.configfs=1
+ setprop vendor.usb.clear 1
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=gs1gs3,dual_acm && \
+property:vendor.usb.clear=2 && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "gs1gs3_dual_acm"
+ write /config/usb_gadget/g1/idProduct 0x202F
+ write /sys/devices/platform/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs1 /config/usb_gadget/g1/configs/b.1/f3
+ symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+ setprop vendor.usb.clear 0
+ setprop vendor.usb.acm_idx "1,2,4"
+
+on property:sys.usb.config=gs1gs3 && property:sys.usb.configfs=1
+ setprop vendor.usb.clear 1
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=gs1gs3 && \
+property:vendor.usb.clear=2 && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "gs1gs3"
+ write /config/usb_gadget/g1/idProduct 0x2029
+ write /sys/devices/platform/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs1 /config/usb_gadget/g1/configs/b.1/f3
+ symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop vendor.usb.clear 0
+ setprop vendor.usb.acm_idx "1,4"
+
+# MTK fast charging support
+on property:persist.vendor.mediatek.fast_charging.support=*
+ write /sys/devices/platform/charger/fast_chg_indicator ${persist.vendor.mediatek.fast_charging.support}
+
+#INTERNAL_END
diff --git a/rootdir/etc/fstab.enablezramwb b/rootdir/etc/fstab.enablezramwb
new file mode 100644
index 0000000..e3f0c18
--- /dev/null
+++ b/rootdir/etc/fstab.enablezramwb
@@ -0,0 +1 @@
+/dev/block/zram0 none swap defaults zramsize=75%,max_comp_streams=8,zram_backingdev_size=prop
diff --git a/rootdir/etc/init.aee.rc b/rootdir/etc/init.aee.rc
new file mode 100644
index 0000000..7e63e0b
--- /dev/null
+++ b/rootdir/etc/init.aee.rc
@@ -0,0 +1,2 @@
+on init
+ write /proc/aed/generate-oops aee0
diff --git a/rootdir/etc/init.cgroup.rc b/rootdir/etc/init.cgroup.rc
new file mode 100644
index 0000000..ba13def
--- /dev/null
+++ b/rootdir/etc/init.cgroup.rc
@@ -0,0 +1,67 @@
+on early-init
+ # boot perf. tune
+ write /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq 2000000
+ write /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq 2200000
+ write /sys/class/devfreq/mtk-dvfsrc-devfreq/userspace/set_freq 5500000000
+
+on charger
+ write /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq 0
+ write /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq 0
+ write /sys/class/devfreq/mtk-dvfsrc-devfreq/userspace/set_freq 0
+
+on post-fs-data && property:ro.bootmode=charger
+ # set governor.
+ write /sys/devices/system/cpu/cpufreq/policy0/scaling_governor sugov_ext
+ write /sys/devices/system/cpu/cpufreq/policy6/scaling_governor sugov_ext
+ write /proc/sys/kernel/sched_util_clamp_min_rt_default 0
+
+ # restore boot perf.
+ write /proc/sys/kernel/sched_migration_cost_ns 200000
+ write /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq 0
+ write /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq 0
+ write /sys/class/devfreq/mtk-dvfsrc-devfreq/userspace/set_freq 0
+ write /dev/cpuctl/system/cpu.uclamp.min 0
+ write /dev/cpuctl/system/cpu.uclamp.latency_sensitive 0
+ write /dev/cpuctl/system-background/cpu.uclamp.min 0
+ write /dev/cpuctl/system-background/cpu.uclamp.latency_sensitive 0
+ write /dev/cpuctl/foreground/cpu.uclamp.min 0
+ write /dev/cpuctl/foreground/cpu.uclamp.latency_sensitive 0
+ write /dev/cpuctl/top-app/cpu.uclamp.min 0
+ write /dev/cpuctl/top-app/cpu.uclamp.latency_sensitive 0
+ write /dev/cpuctl/background/cpu.uclamp.min 0
+ write /dev/cpuctl/background/cpu.uclamp.latency_sensitive 0
+
+on boot
+ # boot perf. tune
+ write /dev/cpuctl/system/cpu.uclamp.min 100
+ write /dev/cpuctl/system/cpu.uclamp.latency_sensitive 1
+ write /dev/cpuctl/system-background/cpu.uclamp.min 100
+ write /dev/cpuctl/system-background/cpu.uclamp.latency_sensitive 1
+ write /dev/cpuctl/foreground/cpu.uclamp.min 100
+ write /dev/cpuctl/foreground/cpu.uclamp.latency_sensitive 1
+ write /dev/cpuctl/top-app/cpu.uclamp.min 100
+ write /dev/cpuctl/top-app/cpu.uclamp.latency_sensitive 1
+ write /dev/cpuctl/background/cpu.uclamp.min 100
+ write /dev/cpuctl/background/cpu.uclamp.latency_sensitive 1
+
+on property:sys.boot_completed=1
+ write /sys/devices/system/cpu/cpufreq/policy0/scaling_governor sugov_ext
+ write /sys/devices/system/cpu/cpufreq/policy6/scaling_governor sugov_ext
+ write /proc/sys/kernel/sched_util_clamp_min_rt_default 0
+
+ write /proc/sys/kernel/sched_migration_cost_ns 200000
+
+ # restore boot perf. tune
+ write /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq 0
+ write /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq 0
+ write /sys/class/devfreq/mtk-dvfsrc-devfreq/userspace/set_freq 0
+ write /dev/cpuctl/system/cpu.uclamp.min 0
+ write /dev/cpuctl/system/cpu.uclamp.latency_sensitive 0
+ write /dev/cpuctl/system-background/cpu.uclamp.min 0
+ write /dev/cpuctl/system-background/cpu.uclamp.latency_sensitive 0
+ write /dev/cpuctl/foreground/cpu.uclamp.min 0
+ write /dev/cpuctl/foreground/cpu.uclamp.latency_sensitive 0
+ write /dev/cpuctl/top-app/cpu.uclamp.min 0
+ write /dev/cpuctl/top-app/cpu.uclamp.latency_sensitive 0
+ write /dev/cpuctl/background/cpu.uclamp.min 0
+ write /dev/cpuctl/background/cpu.uclamp.latency_sensitive 0
diff --git a/rootdir/etc/init.connectivity.common.rc b/rootdir/etc/init.connectivity.common.rc
new file mode 100644
index 0000000..550029b
--- /dev/null
+++ b/rootdir/etc/init.connectivity.common.rc
@@ -0,0 +1,83 @@
+# MTK connectivity .rc configure
+
+on post-fs-data
+
+
+#
+# Connectivity related device nodes & configuration (begin)
+#
+
+#/dev/ttyMT2 for Connectivity BT/FM/GPS usage
+ chmod 0660 /dev/ttyMT2
+ chown system system /dev/ttyMT2
+
+#/dev/ttyMT1 for GPS 3337 usage
+ chmod 0660 /dev/ttyMT1
+ chown system system /dev/ttyMT1
+
+# GPS
+ mkdir /data/vendor/gps 0770 gps system
+ mkdir /data/vendor/log 0770 gps system
+ mkdir /data/vendor/log/gps 0770 gps system
+
+# GPS EMI
+ chmod 0660 /dev/gps_emi
+
+# WiFi
+ mkdir /data/vendor/wifi 0770 wifi wifi
+ mkdir /data/vendor/wifi/wpa 0770 wifi wifi
+ mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi
+
+# BT relayer mode used VCOM
+ chown bluetooth bluetooth /dev/ttyGS2
+ chmod 0660 /dev/ttyGS2
+
+#
+# Connectivity related device nodes & configuration (end)
+#
+
+
+on boot
+
+#
+# Connectivity related services (Begin)
+#
+# GPS
+service mnld /vendor/bin/mnld
+ class main
+ user gps
+ capabilities WAKE_ALARM
+ group gps inet misc sdcard_rw sdcard_r media_rw system radio wakelock
+ socket mnld stream 660 gps system
+
+# GPS Debug Process
+service lbs_dbg /system/bin/lbs_dbg
+ class main
+ user shell
+ group log system gps inet misc sdcard_rw sdcard_r media_rw radio
+ socket lbs_dbg stream 660 gps system
+
+on property:persist.vendor.em.dy.debug=1
+ stop lbs_dbg
+
+#service BGW /vendor/bin/BGW
+# user system
+# group gps system radio
+# class main
+
+# Wlan
+#service wpa_supplicant /vendor/bin/hw/wpa_supplicant \
+# -g@android:wpa_wlan0
+# interface android.hardware.wifi.supplicant@1.0::ISupplicant default
+# interface android.hardware.wifi.supplicant@1.1::ISupplicant default
+# interface android.hardware.wifi.supplicant@1.2::ISupplicant default
+# interface android.hardware.wifi.supplicant@1.3::ISupplicant default
+# socket wpa_wlan0 dgram 660 wifi wifi
+# class main
+# disabled
+# oneshot
+
+#
+# Connectivity related services (End)
+#
+
diff --git a/rootdir/etc/init.connectivity.rc b/rootdir/etc/init.connectivity.rc
new file mode 100644
index 0000000..08b3a51
--- /dev/null
+++ b/rootdir/etc/init.connectivity.rc
@@ -0,0 +1,4 @@
+# MTK connectivity .rc configure
+
+import /vendor/etc/init/hw/init_connectivity.rc
+import /vendor/etc/init/hw/init.connectivity.common.rc
diff --git a/rootdir/etc/init.mmi.backup.trustlet.rc b/rootdir/etc/init.mmi.backup.trustlet.rc
new file mode 100644
index 0000000..49ce522
--- /dev/null
+++ b/rootdir/etc/init.mmi.backup.trustlet.rc
@@ -0,0 +1,14 @@
+on post-fs
+ chown system system /mnt/vendor/tzapp
+ chmod 0770 /mnt/vendor/tzapp
+ restorecon_recursive /mnt/vendor/tzapp
+
+service trustlet_backup /vendor/bin/init.mmi.backup.trustlet.sh
+ class main
+ user system
+ group system
+ oneshot
+ disabled
+
+on property:sys.boot_completed=1
+ start trustlet_backup
diff --git a/rootdir/etc/init.mmi.chipset.rc b/rootdir/etc/init.mmi.chipset.rc
new file mode 100644
index 0000000..59967fe
--- /dev/null
+++ b/rootdir/etc/init.mmi.chipset.rc
@@ -0,0 +1,25 @@
+import /vendor/etc/init/hw/init.mmi.backup.trustlet.rc
+
+#insmod usbnet.ko when on factory mode
+on early-init && property:ro.boot.atm=enable && property:ro.bootmode=mot-factory
+ insmod /vendor/lib/modules/moto_f_usbnet.ko
+
+on early-init
+ insmod /vendor/lib/modules/mmi_info.ko
+
+on early-boot && property:ro.vendor.build.motfactory=1
+ wait /sys/devices/platform/moto_chg_tcmd/force_chg_usb_suspend
+ chown system system /sys/devices/platform/moto_chg_tcmd/force_chg_usb_suspend
+
+on post-fs-data
+ # for batt_health server
+ mkdir /mnt/vendor/persist/batt_health 0770 vendor_pwric vendor_pwric
+on property:sys.boot_completed=1 && property:ro.build.type=userdebug
+ start vendor.batt_health
+on charger && property:ro.build.type=userdebug
+ start vendor.batt_health
+service vendor.batt_health /vendor/bin/batt_health
+ class late_start
+ user vendor_pwric
+ group vendor_pwric cache net_admin log system
+ disabled
diff --git a/rootdir/etc/init.mmi.overlay.rc b/rootdir/etc/init.mmi.overlay.rc
new file mode 100644
index 0000000..1bc2d4b
--- /dev/null
+++ b/rootdir/etc/init.mmi.overlay.rc
@@ -0,0 +1,210 @@
+on early-init
+ insmod /vendor/lib/modules/sensors_class.ko
+ insmod /vendor/lib/modules/sx937x_sar.ko
+ insmod /vendor/lib/modules/bq25980_mmi.ko
+ insmod /vendor/lib/modules/mmi_decrete_charger_cp_qc3p.ko
+ insmod /vendor/lib/modules/moto_mmap_fault.ko
+ exec_background u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules qpnp_adaptive_charge leds-gpio pn557
+ exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -r -d /vendor/lib/modules zram
+
+on post-fs-data
+ # calibration
+ mkdir /data/vendor/sensor 0774 system system
+ # Sensor
+ chmod 0660 /dev/hf_manager
+ chown system system /dev/hf_manager
+
+ # config fingerprint
+ mkdir /data/vendor/.fps 0770 system vendor_fingerp
+ mkdir /mnt/vendor/persist/fps 0770 system system
+ mkdir /data/vendor/egis 0770 system vendor_fingerp
+ mkdir /data/vendor/egis/cqa 0770 system vendor_fingerp
+ mkdir /mnt/vendor/persist/egis 0770 system vendor_fingerp
+
+ # Required by touchRec for write the touch data
+ mkdir /data/vendor/touchrec 0770 input input
+ chown input input /data/vendor/touchrec/bootindex
+ chown input input /data/vendor/touchrec/lastbootuuid
+ chown input input /data/vendor/touchrec/touch_data.txt
+ chmod 0664 /data/vendor/touchrec/touch_data.txt
+
+service vendor.modem-rfs-sh /vendor/bin/init.mmi.modem-rfs.sh loop 600
+ class late_start
+ user root
+ group log system radio
+ oneshot
+
+on late-init
+ #moto algo params
+ chmod 0660 /sys/bus/platform/drivers/mtk_nanohub/algo_params
+ chown system system /sys/bus/platform/drivers/mtk_nanohub/algo_params
+
+ chown system system /sys/class/sensors/capsense_bottom_left/enable
+ chown system system /sys/class/sensors/capsense_bottom_left/poll_delay
+ chown system system /sys/class/sensors/capsense_bottom_right/enable
+ chown system system /sys/class/sensors/capsense_bottom_right/poll_delay
+ chown system system /sys/class/sensors/capsense_top_left/enable
+ chown system system /sys/class/sensors/capsense_top_left/poll_delay
+ chown system system /sys/class/sensors/capsense_top_mid/enable
+ chown system system /sys/class/sensors/capsense_top_mid/poll_delay
+ chown system system /sys/class/sensors/capsense_top_right/enable
+ chown system system /sys/class/sensors/capsense_top_right/poll_delay
+ exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules moto_mm moto_swap
+
+service capsense_reset /vendor/bin/capsense_reset
+ class core
+ user system
+ group system input
+ disabled
+
+on property:sys.boot_completed=1
+ start capsense_reset
+
+# Turn on led to indicate device on in factory mode
+on property:ro.bootmode=mot-factory
+ write /sys/class/leds/charging/brightness 255
+
+on early-boot
+ # Permission for Health Storage HAL
+ chown system system /sys/devices/platform/soc/112b0000.ufshci/manual_gc
+ chown system system /sys/devices/platform/soc/112b0000.ufshci/ufshid/trigger
+
+service nxpnfcinfo /system/vendor/bin/nxpnfcinfo
+ class late_start
+ group nfc
+ user system
+ oneshot
+
+on property:ro.vendor.hw.nfc=ese_nq
+ insmod /vendor/lib/modules/nxp_i2c.ko
+ insmod /vendor/lib/modules/nxp_ese.ko
+ wait /dev/nq-nci
+ chown nfc nfc /dev/nq-nci
+ chmod 0666 /dev/nq-nci
+ wait /dev/p73
+ chown secure_element secure_element /dev/p73
+ chmod 0666 /dev/p73
+
+on property:ro.vendor.hw.nfc=samsung
+ insmod /vendor/lib/modules/sec_nfc.ko
+ wait /dev/sec-nfc
+ chown nfc nfc /dev/sec-nfc
+ chmod 0770 /dev/sec-nfc
+
+on boot
+ write /sys/class/i2c-dev/i2c-9/device/9-0030/wireless_fw_update 1
+ # Set wls perms for HAL
+ chown system system /sys/class/power_supply/wireless/device/pen_control
+ chown system system /sys/class/power_supply/wireless/device/tx_mode
+ chown system system /sys/class/power_supply/wireless/device/wls_input_current_limit
+ chown system system /sys/class/power_supply/wireless/device/folio_mode
+ chmod 0660 /sys/class/power_supply/wireless/device/pen_control
+ chmod 0660 /sys/class/power_supply/wireless/device/tx_mode
+ chmod 0660 /sys/class/power_supply/wireless/device/wls_input_current_limit
+ chmod 0660 /sys/class/power_supply/wireless/device/folio_mode
+ # change permission for capsensor
+ chown system system /sys/class/capsense/reset
+ chown system system /sys/class/capsense/int_state
+ chown radio system /sys/class/capsense/reg
+ chown radio system /sys/class/capsense/fw_download_status
+ chmod 0660 /sys/class/capsense/reset
+ chmod 0660 /sys/class/capsense/int_state
+ chmod 0660 /sys/class/capsense/reg
+ chmod 0660 /sys/class/capsense/fw_download_status
+
+ # change dir permission
+ mkdir /data/vendor/camera_dump
+ chown root camera /data/vendor/camera_dump
+ chmod 0770 /data/vendor/camera_dump
+
+ # Change ownership and permission for cp-standalone factory testing
+ chown system system /sys/class/power_supply/cp-standalone/voltage_now
+ chown system system /sys/class/power_supply/cp-standalone/device/force_chg_auto_enable
+ chmod 0644 /sys/class/power_supply/cp-standalone/voltage_now
+# Set adaptive charging perms for HAL
+ chown system system /sys/module/qpnp_adaptive_charge/parameters/upper_limit
+ chown system system /sys/module/qpnp_adaptive_charge/parameters/lower_limit
+ # touch api
+ chown system system /sys/class/touchscreen/primary/interpolation
+ chmod 0660 /sys/class/touchscreen/primary/interpolation
+ chown system system /sys/class/touchscreen/primary/first_filter
+ chmod 0660 /sys/class/touchscreen/primary/first_filter
+ chown system system /sys/class/touchscreen/primary/edge
+ chmod 0660 /sys/class/touchscreen/primary/edge
+ chown system system /sys/class/touchscreen/primary/gesture
+ chmod 0660 /sys/class/touchscreen/primary/gesture
+ chmod 0664 /proc/cts_tool
+
+ write /sys/block/sdc/queue/scheduler bfq
+ write /sys/block/sdc/queue/iosched/slice_idle 0
+
+ write /proc/sys/vm/dirty_background_bytes 26214400
+ write /proc/sys/vm/dirty_bytes 104857600
+on fs
+ exec_background u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules mmi_relay nova_0flash_mmi_v2 focaltech_0flash_mmi_v2 ilitek_v3_mmi
+
+# camera eeprom calibration
+on property:sys.boot_completed=1
+ chmod 0644 /data/vendor/camera_dump/mot_gt24p128f_ov50d_eeprom.bin
+ chmod 0644 /data/vendor/camera_dump/mot_gt24p128f_s5kjns_eeprom.bin
+ chmod 0644 /data/vendor/camera_dump/serial_number_main.bin
+ chmod 0644 /data/vendor/camera_dump/mot_gt24p64ba2_hi1634q_eeprom.bin
+ chmod 0644 /data/vendor/camera_dump/mot_gt24p64ba2_s5k3p9sp04_eeprom.bin
+ chmod 0644 /data/vendor/camera_dump/serial_number_front.bin
+ chmod 0644 /data/vendor/camera_dump/mot_cancunf_s5k4h7_otp.bin
+ chmod 0644 /data/vendor/camera_dump/serial_number_wide.bin
+ chmod 0644 /data/vendor/camera_dump/mot_cancunf_sc202acs_otp.bin
+
+on moto-post-fs-data-fs-tune
+ write /sys/block/${dev.mnt.dev.system_ext}/queue/read_ahead_kb 2048
+ write /sys/block/${dev.mnt.dev.vendor}/queue/read_ahead_kb 2048
+ write /sys/block/${dev.mnt.dev.product}/queue/read_ahead_kb 2048
+ write /sys/block/${dev.mnt.dev.data}/queue/read_ahead_kb 2048
+ write /sys/block/${dev.mnt.dev.root}/queue/read_ahead_kb 2048
+ write /sys/block/${dev.mnt.dev.vendor_dlkm}/queue/read_ahead_kb 2048
+
+on moto-boot-completed-fs-tune
+ write /sys/block/dm-0/queue/read_ahead_kb 512
+ write /sys/block/dm-1/queue/read_ahead_kb 512
+ write /sys/block/dm-2/queue/read_ahead_kb 512
+ write /sys/block/dm-3/queue/read_ahead_kb 512
+ write /sys/block/dm-4/queue/read_ahead_kb 512
+ write /sys/block/dm-5/queue/read_ahead_kb 512
+ write /sys/block/${dev.mnt.dev.system_ext}/queue/read_ahead_kb 512
+ write /sys/block/${dev.mnt.dev.vendor}/queue/read_ahead_kb 512
+ write /sys/block/${dev.mnt.dev.product}/queue/read_ahead_kb 512
+ write /sys/block/${dev.mnt.dev.data}/queue/read_ahead_kb 512
+ write /sys/block/${dev.mnt.dev.root}/queue/read_ahead_kb 512
+ write /sys/block/${dev.mnt.dev.vendor_dlkm}/queue/read_ahead_kb 512
+
+# === DEBUGGING FEATURE ===
+# Redirect LOG[E|W|I] logs to uart in case system server keeps rebooting without adb connection
+# Pass logcat buffer names to androidboot.loge2uart by cmdl under fastboot.
+# For example: fastboot oem config cmdl "androidboot.loge2uart=system,main"
+# Of course, console must be enabled to make this work
+service loge2uart /system/bin/logcat -b ${ro.boot.loge2uart} -v threadtime -f /dev/ttyS0 *:E
+ user root
+ group root
+ disabled
+
+service logw2uart /system/bin/logcat -b ${ro.boot.logw2uart} -v threadtime -f /dev/ttyS0 *:W
+ user root
+ group root
+ disabled
+
+service logi2uart /system/bin/logcat -b ${ro.boot.logi2uart} -v threadtime -f /dev/ttyS0 *:I
+ user root
+ group root
+ disabled
+
+on late-init && property:ro.boot.loge2uart=*
+ setprop persist.vendor.uartconsole.enable 1
+ start loge2uart
+
+on late-init && property:ro.boot.logw2uart=*
+ setprop persist.vendor.uartconsole.enable 1
+ start logw2uart
+
+on late-init && property:ro.boot.logi2uart=*
+ setprop persist.vendor.uartconsole.enable 1
+ start logi2uart
diff --git a/rootdir/etc/init.mmi.rc b/rootdir/etc/init.mmi.rc
new file mode 100644
index 0000000..7fdbf21
--- /dev/null
+++ b/rootdir/etc/init.mmi.rc
@@ -0,0 +1,314 @@
+
+# Test commands
+import /vendor/etc/init/hw/init.mmi.tcmd.rc
+import /vendor/etc/init/hw/apanic.rc
+# Chipset-specific file
+import /vendor/etc/init/hw/init.mmi.chipset.rc
+# Target-specific file
+import /vendor/etc/init/hw/init.mmi.overlay.rc
+#USB rc
+import /vendor/etc/init/hw/init.mmi.usb.configfs.rc
+# Add debug specific - currently used for install attestation keys on userdebug builds
+import /vendor/etc/init/hw/init.mmi.debug.rc
+
+on early-init
+ wait /dev/block/by-name/hw
+ exec_start vendor.oem-hw-sh
+ # Make sure ro.boot.product.hardware.sku is set before hwservicemanager startup.
+ setprop ro.boot.product.hardware.sku ${ro.vendor.product.hardware.sku.variant}
+
+ # Map oem properties, this must follow
+ # execution of vendor.oem-hw-sh to set
+ # required properties.
+ setprop ro.vendor.hw.radio ${ro.boot.radio}
+ setprop ro.carrier ${ro.boot.carrier}
+ setprop ro.sf.lcd_density ${ro.boot.lcd_density}
+ setprop ro.vendor.fsg-id ${ro.boot.fsg-id}
+ setprop ro.vendor.hw.device ${ro.boot.device}
+ setprop ro.vendor.hw.hwrev ${ro.boot.hwrev}
+ setprop ro.vendor.hw.modelno ${ro.boot.modelno}
+ setprop ro.vendor.hw.revision ${ro.boot.revision}
+ setprop ro.vendor.hw.nav_keys ${ro.boot.nav_keys}
+ setprop ro.product.vendor.device ${ro.vendor.product.device}
+ setprop ro.product.vendor.name ${ro.vendor.product.name}
+ setprop ro.vendor.boot.cid ${ro.boot.cid}
+ setprop ro.vendor.boot.powerup_reason ${ro.boot.powerup_reason}
+ setprop ro.vendor.boot.bl_state ${ro.boot.bl_state}
+ setprop ro.vendor.boot.serialno ${ro.boot.serialno}
+ setprop ro.vendor.boot.nal_id ${ro.boot.nal_id}
+ setprop ro.vendor.zygote ${ro.zygote}
+ setprop ro.carrier unknown
+
+on property:sys.boot_completed=1 && property:ro.vendor.zram.product_swapon=""
+ write /sys/block/zram0/comp_algorithm lz4
+ write /proc/sys/vm/page-cluster 0
+ swapon_all /vendor/etc/fstab.${ro.hardware.soc.manufacturer}
+ write /proc/sys/vm/swappiness 100
+ setprop sys.sysctl.swappiness 100
+
+on post-fs
+ # for batt_health server
+ mkdir /mnt/vendor/persist/batt_health 0770 vendor_pwric vendor_pwric
+ restorecon_recursive /mnt/vendor/persist
+ # Set dm-verity property for dm-verified partitions
+ verity_update_state
+
+on post-fs-data
+ setprop ro.vendor.build.fingerprint ${ro.product.vendor.brand}/${ro.product.vendor.name}/${ro.product.vendor.device}:${ro.vendor.build.version.release}/${ro.vendor.build.id}/${ro.vendor.build.version.incremental}:${ro.vendor.build.type}/${ro.vendor.build.tags}
+
+ # Setup folders for security
+ mkdir /mnt/vendor/persist/security 02770 drmrpc drmrpc
+ mkdir /data/vendor/dbvc 0750 vendor_tcmd shell
+ chown drmrpc vendor_tcmd /mnt/vendor/persist/security
+
+ # Setup folder for native to transfer data to NativeDropBoxAgent
+ mkdir /data/vendor/dropbox-add 0730 log diag
+
+ # Create panic dump dir.
+ mkdir /data/vendor/dontpanic 0750 root log
+
+ mkdir /data/vendor/misc 0771 system system
+
+ # Create directory for cutback
+ mkdir /data/vendor/misc/cutback 0770 radio wifi
+
+ # Imager tuning data for camera subsystem
+ mkdir /data/vendor/misc/imager 0771 camera system
+
+ # Imager tuning metadata for camera subsystem
+ mkdir /data/vendor/misc/imager/metadata 0771 camera camera
+
+ # Imager tuning data for rescue Feature
+ mkdir /mnt/vendor/persist/camera/iqtuning 0771 camera camera
+
+
+ # Create bug2go folder
+ mkdir /data/vendor/bug2go 0770 log log
+
+ # Setup folder for aplogd
+ mkdir /data/vendor/aplogd 0770 log log
+
+ # Create directory used by power_supply_logger
+ mkdir /data/vendor/power_supply_logger 0750 vendor_pwric log
+ # Create directory power_supply_logger used by memtest and batt_health
+ mkdir /data/vendor_de/power_supply_logger 0770 root log
+
+ mkdir /data/vendor/hardware_revisions 0755 system system
+
+ copy /data/vendor_de/power_supply_logger/memtest.log /data/vendor/power_supply_logger/memtest.log
+
+service vendor.bl_logs_copy /vendor/bin/apanic_copy.sh -i
+ class late_start
+ group log
+ oneshot
+ disabled
+
+on charger
+ trigger early-fs
+ trigger fs
+ trigger post-fs
+ trigger late-fs
+ trigger post-fs-data
+ trigger tks-charger
+ class_stop main
+ class_stop late_start
+ chown system system /sys/class/leds/lcd-backlight/max_brightness
+
+on tks-charger && property:persist.sys.tksautoboot=1
+ setprop sys.powerctl "reboot,tks-charger"
+
+on boot
+ # Change ownership and permission for leds backlight
+ chown system system /sys/class/leds/charging/brightness
+ chmod 0664 /sys/class/leds/charging/brightness
+
+ # Change ownership and permission for charge
+ chown system system /sys/class/power_supply/battery/charging_enabled
+ chmod 0664 /sys/class/power_supply/battery/charging_enabled
+
+ # Change ownership and permission for vibrator
+ chown system system /sys/class/leds/vibrator/state
+ chmod 0660 /sys/class/leds/vibrator/state
+ chown system system /sys/class/leds/vibrator/activate
+ chmod 0660 /sys/class/leds/vibrator/activate
+ chown system system /sys/class/leds/vibrator/duration
+ chmod 0660 /sys/class/leds/vibrator/duration
+ chown system system /sys/class/leds/vibrator/seq
+ chmod 0660 /sys/class/leds/vibrator/seq
+
+ # change permission for widevine L1
+ chmod 0664 /mnt/vendor/persist/wv.keys
+
+#change ownership and permission for capsense
+ chown radio system /sys/class/capsense/reg
+ chown radio system /sys/class/capsense/fw_download_status
+ chmod 0660 /sys/class/capsense/reg
+ chmod 0660 /sys/class/capsense/fw_download_status
+
+ # change ownership and permission for lcd-backlight
+ chown system system /sys/class/leds/lcd-backlight/max_brightness
+
+on property:sys.boot_completed=*
+ setprop vendor.boot_completed ${sys.boot_completed}
+ setprop ro.vendor.boot.uid ${ro.boot.uid}
+ setprop ro.vendor.boot.secure_hardware ${ro.boot.secure_hardware}
+
+service vendor.mmi-block-perm /vendor/bin/init.mmi.block_perm.sh
+ class main
+ user root
+ oneshot
+
+service vendor.mmi-touch-sh /vendor/bin/init.mmi.touch.sh
+ class core
+ user root
+ oneshot
+
+service vendor.mmi-shutdown-sh /vendor/bin/init.mmi.shutdown.sh
+ class core
+ user root
+ oneshot
+ disabled
+
+service vendor.hal-fps-sh /vendor/bin/init.oem.fingerprint2.sh
+ class late_start
+ user root
+ group system
+ oneshot
+
+service vendor.oem-hw-sh /vendor/bin/init.oem.hw.sh
+ class core
+ user root
+ oneshot
+ disabled
+
+service vendor.touch-dead-sh /vendor/bin/init.oem.hw.sh -f
+ class main
+ user root
+ oneshot
+ disabled
+
+service vendor.touch-ready-sh /vendor/bin/init.oem.hw.sh -r
+ class main
+ user root
+ oneshot
+ disabled
+
+service vendor.oem-hw-config-sh /vendor/bin/init.oem.hw.sh -p
+ class main
+ user root
+ oneshot
+ disabled
+
+on property:vendor.hw.touch.status="dead"
+ start vendor.touch-dead-sh
+
+on property:vendor.hw.touch.status="ready"
+ start vendor.touch-ready-sh
+
+service vendor.mbm_spy /vendor/bin/mbm_spy
+ class late_start
+ user system
+ group system
+ oneshot
+
+service vendor.hw_revs /vendor/bin/hardware_revisions.sh
+ class late_start
+ user system
+ group system
+ oneshot
+
+service vendor.mmi-boot-sh /vendor/bin/init.mmi.boot.sh
+ class core
+ user root
+ oneshot
+
+# set rkp csr indicatory property
+on property:ro.vendor.mot.hw.rkp_csr_uploaded=* && property:sys.boot_completed=1
+ setprop ro.rkp.csr_uploaded ${ro.vendor.mot.hw.rkp_csr_uploaded}
+
+on property:ro.boot.force_aplogd_enable=1
+ setprop ro.logd.kernel true
+ stop logd
+ start logd
+
+on post-fs && property:ro.boot.force_aplogd_enable=1
+ setprop persist.vendor.log.aplogd.enable 1
+
+on property:persist.vendor.log.aplogd.enable=1
+ start vendor.aplogd
+
+on property:persist.vendor.log.aplogd.enable=0
+ stop vendor.aplogd
+
+on property:ro.vendor.hw.dualsim=true
+ setprop persist.radio.multisim.config dsds
+ setprop persist.vendor.radio.msimmode dsds
+ setprop telephony.active_modems.max_count 2
+ setprop ro.vendor.radio.max.multisim dsds
+ setprop ro.telephony.sim.count 2
+ setprop persist.vendor.mims_support 2
+ setprop persist.vendor.radio.smart.data.switch 1
+ setprop ro.vendor.mtk_disable_cap_switch 0
+ setprop ro.vendor.mtk_data_config 1
+
+on property:ro.vendor.hw.dualsim=false
+ setprop persist.radio.multisim.config ss
+ setprop persist.vendor.radio.msimmode ss
+ setprop telephony.active_modems.max_count 1
+ setprop ro.vendor.radio.max.multisim ss
+ setprop ro.telephony.sim.count 1
+ setprop persist.vendor.mims_support 1
+ setprop persist.vendor.radio.smart.data.switch 0
+ setprop ro.vendor.mtk_disable_cap_switch 1
+ setprop ro.vendor.mtk_data_config 0
+
+service vendor.aplogd /vendor/bin/aplogd
+ class late_start
+ #user log
+ #group log system sdcard_rw sdcard_r media_rw mount
+ # The user and group definitions above are intentionally disabled and left
+ # only as documentation. It actually starts as root and immediately drops
+ # to log plus those groups after preserving CAP_SYS_ADMIN, which is required
+ # for kernel logging.
+ disabled
+
+# from P onwards aplogd cannot read vold.post_fs_data_done so a new property
+# shall be used to allow aplogd checking if FBE has finished /data decryption
+on property:vold.post_fs_data_done=*
+ setprop vendor.vold.post_fs_data_done ${vold.post_fs_data_done}
+
+on property:ro.vendor.build.motfactory=1
+ write /sys/devices/platform/charger/factory_image_mode 1
+
+on property:sys.sysctl.swappiness=*
+ write /proc/sys/vm/swappiness ${sys.sysctl.swappiness}
+
+# IKSWU-152028: Force shutter tone on Japan softbank carrier
+on property:ro.carrier=softbank
+ setprop audio.camerasound.force true
+
+# IKSWT-90913: Force shutter tone on Japan ymobile carrier
+on property:ro.carrier=ymobile
+ setprop audio.camerasound.force true
+
+# IKSWU-148561: Force shutter tone on Japan Docomo carrier
+on property:ro.carrier=docomo
+ setprop audio.camerasound.force true
+
+# IKSWU-165346: Force shutter tone on Korea carriers
+on property:ro.carrier=retkr
+ setprop audio.camerasound.force true
+
+on property:ro.sys.force_max_chrg_temp=*
+ write /sys/devices/platform/charger/force_max_chrg_temp ${ro.sys.force_max_chrg_temp}
+
+on property:ro.sys.force_demo_mode=*
+ write /sys/devices/platform/charger/force_demo_mode ${ro.sys.force_demo_mode}
+
+on shutdown
+ exec_start vendor.mmi-shutdown-sh
+
+# Sync the system MSI property of RKP state onto vendor
+on property:sys.rkp.enable=* && property:sys.boot_completed=1
+ setprop persist.vendor.moto.rkp.enable ${sys.rkp.enable}
+ start vendor.mbm_spy
diff --git a/rootdir/etc/init.mmi.tcmd.rc b/rootdir/etc/init.mmi.tcmd.rc
new file mode 100644
index 0000000..c516fa8
--- /dev/null
+++ b/rootdir/etc/init.mmi.tcmd.rc
@@ -0,0 +1,247 @@
+service vendor.tcmd /vendor/bin/tcmd
+ class core
+# Total number of supplementary groups below is 14 now. Limit defined in service.h is 32.
+# Please update the current number if you add more groups.
+ group vendor_tcmd vendor_pwric system radio input log sdcard_rw inet graphics audio mount media shell media_rw bluetooth camera
+ socket local_tcmd stream 0660 vendor_tcmd vendor_tcmd
+ socket batch_socket stream 0600 vendor_tcmd vendor_tcmd
+ oneshot
+ disabled
+
+service vendor.tcmdhelp /vendor/bin/tcmdhelp
+ class main
+ user root
+ group system oem_2901 root vendor_pwric
+ socket tcmdhelp stream 0600 vendor_tcmd vendor_tcmd
+ oneshot
+ disabled
+
+service tcmd_system /system_ext/bin/tcmd_system
+ class main
+ user root
+ group vendor_prod_persist
+ oneshot
+ disabled
+
+
+# Power up to suspend
+on property:vendor.tcmd.suspend=1
+ stop zygote
+ stop surfaceflinger
+ stop sensors
+
+# Normal to suspend
+on property:vendor.tcmd.suspend=2
+ stop vendor.hwcomposer-2-1
+ stop vendor.hwcomposer-2-2
+ stop aee_aed
+ stop aee_aedv
+ stop surfaceflinger
+ stop sensors
+ stop cameraserver
+ stop zygote
+ write /proc/monitor_hang 0
+
+on property:vendor.tcmd.suspend=3
+ write /proc/monitor_hang 1
+ start zygote
+ start cameraserver
+ start sensors
+ start surfaceflinger
+ start aee_aedv
+ start aee_aed
+ start vendor.hwcomposer-2-2
+ start vendor.hwcomposer-2-1
+
+on property:vendor.tcmd.start_tcmdhelp=1
+ start vendor.tcmdhelp
+
+on property:vendor.tcmd.start_tcmd=0
+ stop vendor.tcmd
+
+on property:vendor.tcmd.start_tcmd=1
+ start vendor.tcmd
+
+on property:vendor.tcmd_system.action=*
+ setprop sys.tcmd_system.action ${vendor.tcmd_system.action}
+ start tcmd_system
+
+on property:vendor.tcmd.update_keyperm=1
+ chown vendor_tcmd system /mnt/vendor/persist/wv.keys
+ chmod 0640 /mnt/vendor/persist/wv.keys
+ chown vendor_tcmd system /mnt/vendor/persist/attest_keybox.so
+ chmod 0640 /mnt/vendor/persist/attest_keybox.so
+ chown vendor_tcmd system /mnt/vendor/persist/attestation_ids.so
+ chmod 0640 /mnt/vendor/persist/attestation_ids.so
+
+on early-boot && property:ro.vendor.build.motfactory=1
+ write /proc/sys/kernel/poweroff_cmd "/system/bin/reboot -p"
+
+on post-fs
+
+ mkdir /mnt/vendor/persist/factory 0755 vendor_tcmd vendor_tcmd
+
+ chown vendor_tcmd vendor_tcmd /mnt/vendor/persist/factory/fti
+ chmod 0664 /mnt/vendor/persist/factory/fti
+ mkdir /mnt/vendor/persist/camera 0775 vendor_tcmd vendor_tcmd
+
+ mkdir /mnt/vendor/persist/camera/dualcal 0775 camera vendor_tcmd
+ mkdir /mnt/vendor/persist/camera/focus 0775 camera vendor_tcmd
+ restorecon /mnt/vendor/persist/camera
+ restorecon /mnt/vendor/persist/camera/focus
+ restorecon /mnt/vendor/persist/camera/focus/offset_cal
+ restorecon /mnt/vendor/persist/camera/focus/xtalk_cal
+ mkdir /mnt/vendor/persist/camera/ledcal 0775 camera vendor_tcmd
+ mkdir /mnt/vendor/persist/camera/ois 0775 cameraserver vendor_tcmd
+ mkdir /mnt/vendor/persist/camera/iqtuning 0775 vendor_tcmd vendor_tcmd
+
+ mkdir /mnt/vendor/persist/factory/audio 0755 vendor_tcmd system
+ mkdir /mnt/vendor/persist/factory/wlan 0755 vendor_tcmd vendor_tcmd
+ mkdir /mnt/vendor/persist/factory/regulatory 0755 vendor_tcmd system
+ mkdir /mnt/vendor/persist/public 0755 vendor_tcmd vendor_tcmd
+
+ mkdir /mnt/vendor/persist/public/att_dm 0775 radio vendor_tcmd
+ mkdir /mnt/vendor/persist/public/hiddenmenu 0775 radio vendor_tcmd
+ mkdir /mnt/vendor/persist/public/hiddenmenu/data 0775 system vendor_tcmd
+
+ mkdir /mnt/vendor/persist/wifi 0755 vendor_tcmd vendor_tcmd
+ mkdir /mnt/vendor/persist/bt 0755 vendor_tcmd bluetooth
+
+ # This dir is used to store any OMA(both DM and CP) files in persist partition
+ # Any app with radio UID or vendor_tcmd GID can read/write/execute files in this dir.
+ mkdir /mnt/vendor/persist/public/oma 0775 radio vendor_tcmd
+
+ chown camera vendor_tcmd /mnt/vendor/persist/camera/dualcal/dual_cal_data.bin
+ chown camera vendor_tcmd /mnt/vendor/persist/camera/dualcal/dual_cal_data_depth.bin
+ chown camera vendor_tcmd /mnt/vendor/persist/camera/dualcal/dual_cal_data_wide.bin
+ chown camera vendor_tcmd /mnt/vendor/persist/camera/dualcal/module_id_aux.bin
+ chown camera vendor_tcmd /mnt/vendor/persist/camera/dualcal/module_id_main.bin
+ chown camera vendor_tcmd /mnt/vendor/persist/camera/dualcal/module_id_depth.bin
+ chown camera vendor_tcmd /mnt/vendor/persist/camera/dualcal/module_id_wide.bin
+
+ chmod 0664 /mnt/vendor/persist/camera/dualcal/dual_cal_data.bin
+ chmod 0664 /mnt/vendor/persist/camera/dualcal/dual_cal_data_depth.bin
+ chmod 0664 /mnt/vendor/persist/camera/dualcal/dual_cal_data_wide.bin
+ chmod 0664 /mnt/vendor/persist/camera/dualcal/module_id_aux.bin
+ chmod 0664 /mnt/vendor/persist/camera/dualcal/module_id_main.bin
+ chmod 0664 /mnt/vendor/persist/camera/dualcal/module_id_depth.bin
+ chmod 0664 /mnt/vendor/persist/camera/dualcal/module_id_wide.bin
+
+ chown vendor_tcmd vendor_tcmd /mnt/vendor/persist/factory/byte
+ chmod 0660 /mnt/vendor/persist/factory/byte
+ chmod 0660 /mnt/vendor/persist/wifi/wlan_mac.bin
+ chown vendor_tcmd vendor_tcmd /mnt/vendor/persist/bt/bt_bdaddr
+ chmod 0664 /mnt/vendor/persist/bt/bt_bdaddr
+
+ # Set life_calls and life_timer file permissions
+ chown radio vendor_tcmd /mnt/vendor/persist/public/hiddenmenu/life_calls
+ chmod 0775 /mnt/vendor/persist/public/hiddenmenu/life_calls
+ chown radio vendor_tcmd /mnt/vendor/persist/public/hiddenmenu/life_timer
+ chmod 0775 /mnt/vendor/persist/public/hiddenmenu/life_timer
+
+ # change permission of utag for tcmd daemon
+ chown root system /proc/config
+ chown root system /proc/config/all
+ chown root system /proc/config/all/new
+ chown root system /proc/config/all/lock
+ chown root system /proc/config/all/.delete
+ chown root system /proc/config/barcode/ascii
+ chown root system /proc/config/battid/ascii
+ chown root system /proc/config/bootmode/ascii
+ chown root system /proc/config/bt_mac/ascii
+ chown root system /proc/config/carrier_sku/ascii
+ chown root system /proc/config/date/ascii
+ chown root system /proc/config/fti/ascii
+ chown root system /proc/config/imei/ascii
+ chown root system /proc/config/sku/ascii
+ chown root system /proc/config/reload
+ chown root system /proc/config/wifi_mac/ascii
+ chown root system /proc/hw
+ chown root system /proc/hw/all
+ chown root system /proc/hw/all/new
+ chown root system /proc/hw/all/lock
+ chown root system /proc/hw/all/.delete
+ chown root system /proc/hw/dualsim/ascii
+ chown root system /proc/hw/frontcolor/ascii
+ chown root system /proc/hw/reload
+ chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/address
+ chmod 660 /sys/devices/platform/moto_chg_tcmd/address
+ chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/data
+ chmod 660 /sys/devices/platform/moto_chg_tcmd/data
+ chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/bat_voltage
+ chmod 660 /sys/devices/platform/moto_chg_tcmd/bat_voltage
+ chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/bat_id
+ chmod 660 /sys/devices/platform/moto_chg_tcmd/bat_id
+ chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/bat_ocv
+ chmod 660 /sys/devices/platform/moto_chg_tcmd/bat_ocv
+ chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/bat_temp
+ chmod 660 /sys/devices/platform/moto_chg_tcmd/bat_temp
+ chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/bat_cycle
+ chmod 660 /sys/devices/platform/moto_chg_tcmd/bat_cycle
+ chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/usb_voltage
+ chmod 660 /sys/devices/platform/moto_chg_tcmd/usb_voltage
+ chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/force_chg_auto_enable
+ chmod 660 /sys/devices/platform/moto_chg_tcmd/force_chg_auto_enable
+ chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/force_chg_iusb
+ chmod 660 /sys/devices/platform/moto_chg_tcmd/force_chg_iusb
+ chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/force_chg_usb_suspend
+ chmod 660 /sys/devices/platform/moto_chg_tcmd/force_chg_usb_suspend
+ chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/force_chg_ibatt
+ chmod 660 /sys/devices/platform/moto_chg_tcmd/force_chg_ibatt
+ chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/force_chg_fail_clear
+ chmod 660 /sys/devices/platform/moto_chg_tcmd/force_chg_fail_clear
+ chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/factory_kill_disable
+ chmod 660 /sys/devices/platform/moto_chg_tcmd/factory_kill_disable
+ chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/wireless_en
+ chmod 660 /sys/devices/platform/moto_chg_tcmd/wireless_en
+ chown vendor_tcmd vendor_tcmd /sys/devices/platform/moto_chg_tcmd/wireless_chip_id
+ chmod 660 /sys/devices/platform/moto_chg_tcmd/wireless_chip_id
+
+on post-fs-data
+
+ # Setup folders for security
+ mkdir /mnt/vendor/persist/security 02770 drmrpc drmrpc
+ mkdir /data/vendor/dbvc 0750 vendor_tcmd shell
+ chown drmrpc vendor_tcmd /mnt/vendor/persist/security
+
+ # Setup DAC for WFD HDCP sfs file
+ chown vendor_tcmd system /mnt/vendor/persist/data
+ chmod 0750 /mnt/vendor/persist/data
+ chown vendor_tcmd system /mnt/vendor/persist/data/dxhdcp2
+ chmod 0750 /mnt/vendor/persist/data/dxhdcp2
+ chown vendor_tcmd system /mnt/vendor/persist/data/dxhdcp2/dxhdcp2
+ chmod 0750 /mnt/vendor/persist/data/dxhdcp2/dxhdcp2
+ chown vendor_tcmd system /mnt/vendor/persist/data/dxhdcp2/dxhdcp2/dxhdcp2.sfs
+ chmod 0640 /mnt/vendor/persist/data/dxhdcp2/dxhdcp2/dxhdcp2.sfs
+
+ # Setup folder for Pre-Activation Kill Switch app (PAKS)
+ mkdir /mnt/vendor/persist/paks 02770 vendor_tcmd vendor_tcmd
+
+on property:ro.bootmode=mot-factory
+ mkdir /mnt/vendor/mot_factory
+ mount tmpfs tmpfs /mnt/vendor/mot_factory
+ chown vendor_tcmd vendor_tcmd /mnt/vendor/mot_factory
+ chmod 0770 /mnt/vendor/mot_factory
+
+on post-fs-data && property:ro.bootmode=mot-factory
+ restorecon /mnt/vendor/mot_factory
+
+on property:sys.bootbroadcast_completed=*
+ setprop vendor.sys.bootbroadcast_completed ${sys.bootbroadcast_completed}
+
+on property:ro.vendor.build.motfactory=1
+ # Change ownership and permission for current_cmd factory testing
+ chown system system /proc/mtk_battery_cmd/current_cmd
+ chmod 0664 /proc/mtk_battery_cmd/current_cmd
+
+on property:vendor.boot_completed=1
+ setprop ro.vendor.boot.hwrev ${ro.boot.hwrev}
+ setprop ro.vendor.carrier ${ro.carrier}
+ setprop ro.vendor.build.version.sdk ${ro.build.version.sdk}
+ setprop ro.vendor.sys.adb_reset_protected ${ro.sys.adb_reset_protected}
+ setprop ro.vendor.telephony.default_network ${ro.telephony.default_network}
+ setprop ro.vendor.boot.radio ${ro.boot.radio}
+ setprop ro.vendor.build.description ${ro.build.description}
+ setprop vendor.init.svc.adbd ${init.svc.adbd}
+ setprop ro.vendor.boot.secure_hardware ${ro.boot.secure_hardware}
+ setprop ro.vendor.sys.adb_reset_protected ${ro.sys.adb_reset_protected}
diff --git a/rootdir/etc/init.mmi.usb.configfs.rc b/rootdir/etc/init.mmi.usb.configfs.rc
new file mode 100644
index 0000000..d708fe8
--- /dev/null
+++ b/rootdir/etc/init.mmi.usb.configfs.rc
@@ -0,0 +1,910 @@
+# Copyright (c) 2011-2016, 2018-2020 The Linux Foundation. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of The Linux Foundation nor
+# the names of its contributors may be used to endorse or promote
+# products derived from this software without specific prior written
+# permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+on init
+ mount configfs none /config
+ mkdir /config/usb_gadget/g1 0775
+ mkdir /config/usb_gadget/g2 0770
+ mkdir /config/usb_gadget/g1/strings/0x409 0770
+ mkdir /config/usb_gadget/g2/strings/0x409 0770
+ write /config/usb_gadget/g1/bcdUSB 0x0200
+ write /config/usb_gadget/g2/bcdUSB 0x0200
+ write /config/usb_gadget/g1/os_desc/use 1
+ mkdir /config/usb_gadget/g1/functions/usbnet.usb0
+ mkdir /config/usb_gadget/g1/functions/mass_storage.0
+ mkdir /config/usb_gadget/g1/functions/mtp.gs0
+ mkdir /config/usb_gadget/g1/functions/ptp.gs1
+ mkdir /config/usb_gadget/g1/functions/accessory.gs2
+ mkdir /config/usb_gadget/g1/functions/audio_source.gs3
+ mkdir /config/usb_gadget/g1/functions/midi.gs5
+ mkdir /config/usb_gadget/g1/functions/ffs.adb
+ mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4
+ mkdir /config/usb_gadget/g1/functions/acm.gs0
+ mkdir /config/usb_gadget/g1/functions/acm.gs1
+ mkdir /config/usb_gadget/g1/functions/acm.gs2
+ mkdir /config/usb_gadget/g1/functions/acm.gs3
+ mkdir /config/usb_gadget/g1/functions/cser.dun.0
+ mkdir /config/usb_gadget/g1/functions/cser.nmea.1
+ mkdir /config/usb_gadget/g1/functions/cser.dun.2
+ mkdir /config/usb_gadget/g1/functions/gsi.rmnet
+ mkdir /config/usb_gadget/g1/functions/gsi.rndis
+ mkdir /config/usb_gadget/g1/functions/rndis_bam.rndis
+ mkdir /config/usb_gadget/g1/functions/rndis.rndis
+ mkdir /config/usb_gadget/g1/functions/ncm.0
+ mkdir /config/usb_gadget/g1/functions/ccid.ccid
+ mkdir /config/usb_gadget/g1/functions/uac2.0
+ mkdir /config/usb_gadget/g1/functions/uvc.0
+ mkdir /config/usb_gadget/g1/functions/uvc.0/control/header/h
+ symlink /config/usb_gadget/g1/functions/uvc.0/control/header/h /config/usb_gadget/g1/functions/uvc.0/control/class/fs/h
+ symlink /config/usb_gadget/g1/functions/uvc.0/control/header/h /config/usb_gadget/g1/functions/uvc.0/control/class/ss/h
+ mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u
+ mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/360p
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/360p/dwFrameInterval \
+"333333
+666666
+"
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/360p/wWidth 640
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/360p/wHeight 360
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/360p/dwMaxVideoFrameBufferSize 460800
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/360p/dwMinBitRate 55296000
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/360p/dwMaxBitRate 110592000
+ mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/480p
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/480p/dwFrameInterval \
+"500000
+666666
+"
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/480p/wWidth 640
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/480p/wHeight 480
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/480p/dwMaxVideoFrameBufferSize 614400
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/480p/dwMinBitRate 73728000
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/480p/dwMaxBitRate 98304000
+ mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/720p
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/720p/dwFrameInterval \
+"1000000
+"
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/720p/wWidth 1280
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/720p/wHeight 720
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/720p/dwMaxVideoFrameBufferSize 1843200
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/720p/dwMinBitRate 147456000
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u/720p/dwMaxBitRate 147456000
+ mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m
+ mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwFrameInterval \
+"333333
+666666
+"
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wWidth 640
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wHeight 360
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxVideoFrameBufferSize 345600
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMinBitRate 41472000
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxBitRate 82944000
+ mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwFrameInterval \
+"333333
+666666
+"
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wWidth 640
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wHeight 480
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxVideoFrameBufferSize 460800
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMinBitRate 55296000
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxBitRate 110592000
+ mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval \
+"333333
+666666
+"
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wWidth 1280
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight 720
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize 1382400
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMinBitRate 165888000
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxBitRate 331776000
+ mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/960p
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/960p/dwFrameInterval \
+"333333
+666666
+"
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/960p/wWidth 1280
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/960p/wHeight 960
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/960p/dwMaxVideoFrameBufferSize 1843200
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/960p/dwMinBitRate 221184000
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/960p/dwMaxBitRate 442368000
+ mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval \
+"333333
+666666
+"
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth 1920
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight 1080
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize 3110400
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMinBitRate 373248000
+ write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxBitRate 746496000
+ mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/header/h
+ symlink /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed/u /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/u
+ symlink /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/m
+ symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/fs/h
+ symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs/h
+ symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss/h
+ write /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst 15
+ write /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket 3072
+ write /config/usb_gadget/g1/functions/uvc.0/streaming_interval 2
+ write /config/usb_gadget/g1/functions/uvc.0/streaming_txfifo_hint 9
+ write /config/usb_gadget/g1/functions/uvc.0/function_name "Moto Webcam
+"
+ mkdir /config/usb_gadget/g1/configs/b.1 0770
+ mkdir /config/usb_gadget/g2/configs/b.1 0770
+ mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770
+ mkdir /config/usb_gadget/g2/configs/b.1/strings/0x409 0770
+ write /config/usb_gadget/g1/configs/b.1/MaxPower 900
+ write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
+ write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
+ symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
+ mkdir /dev/usb-ffs 0775 shell system
+ mkdir /dev/usb-ffs/adb 0770 shell shell
+ mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000,rmode=0770,fmode=0660
+ chown system system /sys/class/android_usb/android0/secure
+ chmod 0660 /sys/class/android_usb/android0/secure
+
+on boot && property:vendor.usb.use_ffs_mtp=1
+ mkdir /config/usb_gadget/g1/functions/ffs.mtp
+ mkdir /config/usb_gadget/g1/functions/ffs.ptp
+ mkdir /dev/usb-ffs/mtp 0770 mtp mtp
+ mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
+ mkdir /dev/usb-ffs/ptp 0770 mtp mtp
+ mount functionfs ptp /dev/usb-ffs/ptp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
+
+# This is a good place to write these, since system props would be loaded.
+on firmware_mounts_complete
+ write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
+ write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
+ write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
+
+on firmware_mounts_complete && property:ro.vendor.product.display.plain_text=*
+ write /config/usb_gadget/g1/strings/0x409/product ${ro.vendor.product.display.plain_text}
+
+on load_bpf_programs
+ setprop vendor.usb.config ${sys.usb.config}
+ setprop persist.vendor.mot.usb.config ${persist.sys.usb.config:-" "}
+ setprop persist.vendor.usb.config ${persist.sys.usb.config:-" "}
+
+on property:ro.boot.console=ttyGS0 && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/UDC "none"
+ mkdir /config/usb_gadget/g1/functions/acm.0
+ # "f0" is used here so that we won't take anything from f1 ~ f9
+ symlink /config/usb_gadget/g1/functions/acm.0 /config/usb_gadget/g1/configs/b.1/f0
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+
+on property:sys.boot_completed=*
+ setprop vendor.boot_completed ${sys.boot_completed}
+
+on property:persist.vendor.usb.config=*
+ setprop persist.sys.usb.config ${persist.vendor.usb.config}
+
+on property:vendor.usb.config=*
+ setprop sys.usb.config ${vendor.usb.config}
+
+on property:vendor.usb.controller=*
+ setprop sys.usb.controller ${vendor.usb.controller}
+
+on property:persist.vendor.usb.mot-factory.config=*
+ setprop persist.sys.usb.mot-factory.config ${persist.vendor.usb.mot-factory.config}
+ setprop persist.sys.usb.mot-factory.func ${persist.vendor.usb.mot-factory.config}
+
+### Support USB Secure Mode
+on property:sys.usb.secure_mode=*
+ setprop vendor.usb.secure_mode ${sys.usb.secure_mode}
+
+on property:vendor.usb.secure_mode=1
+ setprop sys.usb.controller none
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+
+on property:vendor.usb.secure_mode=0
+ setprop sys.usb.controller ${vendor.usb.controller}
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+
+service vendor.mmi-usb-sh /vendor/bin/init.mmi.usb.sh
+ class late_start
+ user root
+ group system
+ oneshot
+
+on userspace-reboot-resume
+ setprop persist.vendor.mot.usb.config ${persist.sys.usb.config}
+ setprop persist.vendor.usb.config ${persist.sys.usb.config}
+
+on charger
+ insmod /vendor/lib/modules/moto_f_mass_storage.ko
+ setprop vendor.usb.adb_early ${ro.boot.adb_early:-"0"}
+ setprop vendor.usb.charging.func.name moto_mass_storage
+ start vendor.mmi-usb-sh
+
+ # Wait for the USB init shell script to finish, to prevent enumeration issues
+on property:init.svc.vendor.mmi-usb-sh=stopped && property:ro.boot.mode=charger && property:vendor.usb.adb_early=0
+ setprop sys.usb.configfs 1
+ setprop sys.usb.config charging
+
+on property:init.svc.vendor.mmi-usb-sh=stopped && property:ro.boot.mode=charger && property:vendor.usb.adb_early=1
+ setprop sys.usb.configfs 1
+ setprop sys.usb.config charging,adb
+
+### Factory Compositions
+on property:sys.usb.config=usbnet,adb && property:sys.usb.configfs=1
+ start adbd
+ start vendor.tcmd
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=usbnet,adb && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Motorola Test Command"
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/idProduct 0x2e2d
+ write /config/usb_gadget/g1/os_desc/use 1
+ symlink /config/usb_gadget/g1/functions/usbnet.usb0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=usbnet && property:sys.usb.configfs=1
+ start vendor.tcmd
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Motorola Test Command without ADB"
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/idProduct 0x2e2c
+ write /config/usb_gadget/g1/os_desc/use 0
+ symlink /config/usb_gadget/g1/functions/usbnet.usb0 /config/usb_gadget/g1/configs/b.1/f1
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=atm_gs0gs3 && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/UDC "none"
+ write /config/usb_gadget/g1/bDeviceClass 0
+ write /config/usb_gadget/g1/bDeviceSubClass 0
+ write /config/usb_gadget/g1/bDeviceProtocol 0
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ rmdir /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}
+ start adbd
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=atm_gs0gs3 && \
+property:sys.usb.configfs=1 && property:ro.bootmode=mot-factory
+ start vendor.tcmd
+ setprop vendor.usb.acm_port0 0
+ setprop vendor.usb.acm_port1 3
+ setprop vendor.usb.acm_cnt 2
+ setprop vendor.usb.acm_enable 1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_acm"
+ write /sys/class/udc/${sys.usb.controller}/device/saving 1
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/idProduct 0x2e2d
+ symlink /config/usb_gadget/g1/functions/usbnet.usb0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
+ symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+
+on property:sys.usb.config=adb && property:vendor.usb.acm_enable=1 && \
+property:sys.usb.configfs=1 && property:ro.bootmode=mot-factory
+ write /config/usb_gadget/g1/UDC "none"
+ write /config/usb_gadget/g1/bDeviceClass 0
+ write /config/usb_gadget/g1/bDeviceSubClass 0
+ write /config/usb_gadget/g1/bDeviceProtocol 0
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ rmdir /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name}
+ start adbd
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && \
+property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1 && property:ro.bootmode=mot-factory
+ start vendor.tcmd
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_acm"
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/idProduct 0x2e2d
+ write /sys/class/udc/${sys.usb.controller}/device/saving 1
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/usbnet.usb0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
+ symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+### ATCI
+on property:persist.vendor.radio.port_index=1 && property:sys.boot_completed=1
+ setprop vendor.usb.acm_port0 0
+ setprop vendor.usb.acm_enable 1
+ setprop vendor.usb.acm_idx 1
+ setprop vendor.usb.acm_cnt 1
+ setprop sys.usb.config none
+ setprop sys.usb.config ${sys.usb.state}
+
+on property:persist.vendor.radio.port_index=0 && property:vendor.usb.acm_enable=1
+ setprop vendor.usb.acm_enable 0
+ setprop vendor.usb.acm_idx ""
+ setprop vendor.usb.acm_cnt 0
+ setprop sys.usb.config none
+ setprop sys.usb.config ${sys.usb.state}
+ setprop persist.vendor.radio.port_index ""
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && property:sys.usb.configfs=1 && \
+property:vendor.usb.acm_enable=1 && property:persist.vendor.radio.port_index=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "atci"
+ write /config/usb_gadget/g1/idVendor 0x0e8d
+ write /config/usb_gadget/g1/idProduct 0x2006
+ write /sys/class/udc/${sys.usb.controller}/device/saving 1
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1 && \
+property:vendor.usb.acm_enable=1 && property:persist.vendor.radio.port_index=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "atci"
+ write /config/usb_gadget/g1/idVendor 0x0e8d
+ write /config/usb_gadget/g1/idProduct 0x200a
+ write /sys/class/udc/${sys.usb.controller}/device/saving 1
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+### Bell
+on property:sys.usb.config=acm_gs0gs3 && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/UDC "none"
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ start adbd
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=acm_gs0gs3 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.acm_port0 0
+ setprop vendor.usb.acm_port1 3
+ setprop vendor.usb.acm_cnt 2
+ setprop vendor.usb.acm_enable 1
+ setprop vendor.usb.acm_idx "1,4"
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "acm_gs0gs3"
+ write /sys/class/udc/${sys.usb.controller}/device/saving 1
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ write /config/usb_gadget/g1/idVendor 0x0e8d
+ write /config/usb_gadget/g1/idProduct 0x2029
+ symlink /config/usb_gadget/g1/functions/mass_storage.0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
+ symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+### ELT Logging port
+on property:persist.vendor.radio.port_index=4 && property:sys.boot_completed=1
+ setprop vendor.usb.acm_port0 3
+ setprop vendor.usb.acm_enable 1
+ setprop vendor.usb.acm_idx 4
+ setprop vendor.usb.acm_cnt 1
+ setprop sys.usb.config none
+ setprop sys.usb.config ${sys.usb.state}
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && property:sys.usb.configfs=1 && \
+property:vendor.usb.acm_enable=1 && property:persist.vendor.radio.port_index=4
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ELT"
+ write /config/usb_gadget/g1/idVendor 0x0e8d
+ write /config/usb_gadget/g1/idProduct 0x2006
+ write /sys/class/udc/${sys.usb.controller}/device/saving 1
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1 && \
+property:vendor.usb.acm_enable=1 && property:persist.vendor.radio.port_index=4
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ELT"
+ write /config/usb_gadget/g1/idVendor 0x0e8d
+ write /config/usb_gadget/g1/idProduct 0x200a
+ write /sys/class/udc/${sys.usb.controller}/device/saving 1
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f3
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+### Charging Compositions
+on property:vendor.usb.charging.func.name=moto_mass_storage
+ mkdir /config/usb_gadget/g1/functions/moto_mass_storage.0
+
+on property:sys.usb.config=charging && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
+ write /config/usb_gadget/g1/UDC "none"
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Motorola Charge Only"
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/idProduct 0x2eb7
+ write /config/usb_gadget/g1/os_desc/use 0
+ symlink /config/usb_gadget/g1/functions/${vendor.usb.charging.func.name:-mass_storage}.0 /config/usb_gadget/g1/configs/b.1/f1
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=charging,adb
+ start adbd
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=charging,adb && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
+ write /config/usb_gadget/g1/UDC "none"
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Motorola Charge Only"
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/idProduct 0x2eb7
+ write /config/usb_gadget/g1/os_desc/use 1
+ symlink /config/usb_gadget/g1/functions/${vendor.usb.charging.func.name:-mass_storage}.0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+### Android Compositions
+on property:sys.usb.config=mtp && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/idProduct 0x2e82
+ write /config/usb_gadget/g1/idVendor 0x22b8
+
+on property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/idProduct 0x2e76
+ write /config/usb_gadget/g1/idVendor 0x22b8
+
+on property:sys.usb.config=mtp && property:vendor.usb.use_ffs_mtp=0 && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/compatible_id "MTP"
+
+on property:sys.usb.config=mtp && property:vendor.usb.use_ffs_mtp=1 && property:sys.usb.configfs=1
+ symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
+
+on property:sys.usb.config=mtp,adb && property:vendor.usb.use_ffs_mtp=0 && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/compatible_id "MTP"
+
+on property:sys.usb.config=mtp,adb && property:vendor.usb.use_ffs_mtp=1 && property:sys.usb.configfs=1
+ symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+
+on early-init && property:ro.vendor.usb.cdrom.func=moto_mass_storage
+ insmod /vendor/lib/modules/moto_f_mass_storage.ko
+
+on init && property:ro.vendor.usb.cdrom.func=moto_mass_storage
+ mkdir /config/usb_gadget/g1/functions/moto_mass_storage.0
+
+on init && property:ro.carrier=vzw
+ mkdir /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1
+
+on init && property:ro.carrier=vzwpre
+ mkdir /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1
+
+on property:sys.usb.config=mtp,cdrom && property:sys.usb.configfs=1
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp, cdrom"
+ write /config/usb_gadget/g1/idProduct 0x2e61
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.0/file ""
+ write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.0/cdrom 1
+ write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.0/file "/product/etc/cdrom"
+
+on property:sys.usb.config=mtp,cdrom,adb && property:sys.usb.configfs=1
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp, cdrom"
+ write /config/usb_gadget/g1/idProduct 0x2e61
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.0/file ""
+ write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.0/cdrom 1
+ write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.0/file "/product/etc/cdrom"
+
+on property:sys.usb.config=mtp,cdrom && property:sys.usb.configfs=1 && property:ro.carrier=vzw
+ write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1/file ""
+ write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1/cdrom 1
+ write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1/file "/product/etc/vzw_cdrom"
+
+on property:sys.usb.config=mtp,cdrom,adb && property:sys.usb.configfs=1 && property:ro.carrier=vzw
+ write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1/file ""
+ write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1/cdrom 1
+ write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1/file "/product/etc/vzw_cdrom"
+
+on property:sys.usb.config=mtp,cdrom && property:sys.usb.configfs=1 && property:ro.carrier=vzwpre
+ write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1/file ""
+ write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1/cdrom 1
+ write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1/file "/product/etc/vzw_cdrom"
+
+on property:sys.usb.config=mtp,cdrom,adb && property:sys.usb.configfs=1 && property:ro.carrier=vzwpre
+ write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1/file ""
+ write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1/cdrom 1
+ write /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0/lun.1/file "/product/etc/vzw_cdrom"
+
+on property:sys.usb.config=mtp,cdrom && property:vendor.usb.use_ffs_mtp=0 && property:sys.usb.configfs=1
+ symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0 /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=mtp,cdrom && property:vendor.usb.use_ffs_mtp=1 && property:sys.usb.configfs=1
+ symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0 /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=mtp,cdrom,adb && property:vendor.usb.use_ffs_mtp=0 && property:sys.usb.configfs=1
+ symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0 /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=mtp,cdrom,adb && property:vendor.usb.use_ffs_mtp=1 && property:sys.usb.configfs=1
+ symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/${ro.vendor.usb.cdrom.func:-mass_storage}.0 /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=rndis && property:sys.usb.configfs=1
+ setprop sys.usb.config rndis,${persist.vendor.usb.config.extra}
+
+on property:sys.usb.config=rndis,none && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis"
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/idProduct 0x2e24
+ symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name} /config/usb_gadget/g1/configs/b.1/f1
+ write /config/usb_gadget/g1/configs/b.1/f1/wceis 1
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state rndis
+
+
+on property:sys.usb.config=rndis,adb && property:sys.usb.configfs=1
+ setprop sys.usb.config rndis,${persist.vendor.usb.config.extra},adb
+
+on property:sys.usb.config=rndis,none,adb && property:sys.usb.configfs=1
+ start adbd
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,none,adb && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb"
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/idProduct 0x2e25
+ symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name} /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/configs/b.1/f1/wceis 1
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state rndis,adb
+
+on property:sys.usb.config=rndis,webcam && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis"
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/idProduct 0x2e24
+ symlink /config/usb_gadget/g1/functions/uvc.0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name} /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/configs/b.1/f2/wceis 1
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=rndis,webcam,adb && property:sys.usb.configfs=1
+ start adbd
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,webcam,adb && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb"
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/idProduct 0x2e25
+ symlink /config/usb_gadget/g1/functions/uvc.0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name} /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3
+ write /config/usb_gadget/g1/configs/b.1/f2/wceis 1
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=ncm && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ncm"
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ rm /config/usb_gadget/g1/configs/b.1/f6
+ rm /config/usb_gadget/g1/configs/b.1/f7
+ rm /config/usb_gadget/g1/configs/b.1/f8
+ rm /config/usb_gadget/g1/configs/b.1/f9
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/idProduct 0x2e44
+ write /config/usb_gadget/g1/functions/ncm.0/os_desc/interface.ncm/compatible_id "WINNCM"
+ symlink /config/usb_gadget/g1/functions/ncm.0 /config/usb_gadget/g1/configs/b.1/f1
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=ncm,adb && property:sys.usb.configfs=1
+ start adbd
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ncm,adb && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ncm_adb"
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ rm /config/usb_gadget/g1/configs/b.1/f6
+ rm /config/usb_gadget/g1/configs/b.1/f7
+ rm /config/usb_gadget/g1/configs/b.1/f8
+ rm /config/usb_gadget/g1/configs/b.1/f9
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/idProduct 0x2e45
+ write /config/usb_gadget/g1/functions/ncm.0/os_desc/interface.ncm/compatible_id "WINNCM"
+ symlink /config/usb_gadget/g1/functions/ncm.0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=ncm,webcam && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ncm"
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ rm /config/usb_gadget/g1/configs/b.1/f6
+ rm /config/usb_gadget/g1/configs/b.1/f7
+ rm /config/usb_gadget/g1/configs/b.1/f8
+ rm /config/usb_gadget/g1/configs/b.1/f9
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/idProduct 0x2e44
+ write /config/usb_gadget/g1/functions/ncm.0/os_desc/interface.ncm/compatible_id "WINNCM"
+ symlink /config/usb_gadget/g1/functions/uvc.0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ncm.0 /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ wait /config/usb_gadget/uvc_delay_300ms 0.3
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=ncm,webcam,adb && property:sys.usb.configfs=1
+ start adbd
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ncm,webcam,adb && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ncm_adb"
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ rm /config/usb_gadget/g1/configs/b.1/f6
+ rm /config/usb_gadget/g1/configs/b.1/f7
+ rm /config/usb_gadget/g1/configs/b.1/f8
+ rm /config/usb_gadget/g1/configs/b.1/f9
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/idProduct 0x2e45
+ write /config/usb_gadget/g1/functions/ncm.0/os_desc/interface.ncm/compatible_id "WINNCM"
+ symlink /config/usb_gadget/g1/functions/uvc.0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ncm.0 /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ wait /config/usb_gadget/uvc_delay_100ms 0.1
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=readyfor && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "readyfor"
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ rm /config/usb_gadget/g1/configs/b.1/f6
+ rm /config/usb_gadget/g1/configs/b.1/f7
+ rm /config/usb_gadget/g1/configs/b.1/f8
+ rm /config/usb_gadget/g1/configs/b.1/f9
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/idProduct 0x2e46
+ symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name} /config/usb_gadget/g1/configs/b.1/f1
+ write /config/usb_gadget/g1/configs/b.1/f1/wceis 1
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=readyfor,adb && property:sys.usb.configfs=1
+ start adbd
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=readyfor,adb && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "readyfor_adb"
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ rm /config/usb_gadget/g1/configs/b.1/f6
+ rm /config/usb_gadget/g1/configs/b.1/f7
+ rm /config/usb_gadget/g1/configs/b.1/f8
+ rm /config/usb_gadget/g1/configs/b.1/f9
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/idProduct 0x2e47
+ symlink /config/usb_gadget/g1/functions/${vendor.usb.rndis.func.name} /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/configs/b.1/f1/wceis 1
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=ptp && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/idProduct 0x2e83
+ write /config/usb_gadget/g1/idVendor 0x22b8
+
+on property:sys.usb.config=ptp,adb && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/idProduct 0x2e84
+ write /config/usb_gadget/g1/idVendor 0x22b8
+
+on property:sys.usb.config=ptp && property:vendor.usb.use_ffs_mtp=0 && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP/compatible_id "PTP"
+
+on property:sys.usb.config=ptp,adb && property:vendor.usb.use_ffs_mtp=0 && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP/compatible_id "PTP"
+
+on property:sys.usb.config=ptp && property:vendor.usb.use_ffs_mtp=1 && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/functions/ffs.ptp/os_desc/interface.MTP/compatible_id "PTP"
+ symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1
+
+on property:sys.usb.config=ptp,adb && property:vendor.usb.use_ffs_mtp=1 && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/functions/ffs.ptp/os_desc/interface.MTP/compatible_id "PTP"
+ symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+
+on init
+ setprop sys.usb.controller none
+ chown root system /sys/module/uvcvideo/parameters/quirks
+ chmod 0660 /sys/module/uvcvideo/parameters/quirks
+ setprop sys.usb.configfs 1
+ setprop ro.vendor.usb.moto_common_rc 1
+
+on boot && property:ro.boot.adb_early=1
+ start vendor.mmi-usb-sh
+
+on property:sys.usb.config=adb && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/idProduct 0x2E81
+
+on property:sys.usb.config=webcam && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Webcam"
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ rm /config/usb_gadget/g1/configs/b.1/f6
+ rm /config/usb_gadget/g1/configs/b.1/f7
+ rm /config/usb_gadget/g1/configs/b.1/f8
+ rm /config/usb_gadget/g1/configs/b.1/f9
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/idProduct 0x2e85
+ symlink /config/usb_gadget/g1/functions/uvc.0 /config/usb_gadget/g1/configs/b.1/f1
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ wait /config/usb_gadget/uvc_delay_300ms 0.3
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=webcam,adb && property:sys.usb.configfs=1
+ start adbd
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=webcam,adb && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Webcam"
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ rm /config/usb_gadget/g1/configs/b.1/f6
+ rm /config/usb_gadget/g1/configs/b.1/f7
+ rm /config/usb_gadget/g1/configs/b.1/f8
+ rm /config/usb_gadget/g1/configs/b.1/f9
+ write /config/usb_gadget/g1/idVendor 0x22b8
+ write /config/usb_gadget/g1/idProduct 0x2e85
+ symlink /config/usb_gadget/g1/functions/uvc.0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ wait /config/usb_gadget/uvc_delay_100ms 0.1
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=adb,acm && property:sys.usb.configfs=1
+ start adbd
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb,acm && property:sys.usb.configfs=1
+ mkdir /config/usb_gadget/g1/functions/acm.0
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ rm /config/usb_gadget/g1/configs/b.1/f6
+ rm /config/usb_gadget/g1/configs/b.1/f7
+ rm /config/usb_gadget/g1/configs/b.1/f8
+ rm /config/usb_gadget/g1/configs/b.1/f9
+ write /config/usb_gadget/g1/idVendor 0x1d6b
+ write /config/usb_gadget/g1/idProduct 0x0104
+ symlink /config/usb_gadget/g1/functions/acm.0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=acm && property:sys.usb.configfs=1
+ mkdir /config/usb_gadget/g1/functions/acm.0
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ rm /config/usb_gadget/g1/configs/b.1/f6
+ rm /config/usb_gadget/g1/configs/b.1/f7
+ rm /config/usb_gadget/g1/configs/b.1/f8
+ rm /config/usb_gadget/g1/configs/b.1/f9
+ write /config/usb_gadget/g1/idVendor 0x1d6b
+ write /config/usb_gadget/g1/idProduct 0x0104
+ symlink /config/usb_gadget/g1/functions/acm.0 /config/usb_gadget/g1/configs/b.1/f1
+ write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:vendor.em.usb.set=*
+ write /proc/mtk_usb/usb-phy0/u2_phy/${vendor.em.usb.set} ${vendor.em.usb.value}
diff --git a/rootdir/etc/init.modem.rc b/rootdir/etc/init.modem.rc
new file mode 100644
index 0000000..cca7f48
--- /dev/null
+++ b/rootdir/etc/init.modem.rc
@@ -0,0 +1,42 @@
+# Copyright (C) 2012 The Android Open Source Project
+#
+# IMPORTANT: Do not create world writable files or directories.
+# This is a common source of Android security bugs.
+#
+
+on early-init
+ write /sys/class/net/ccmni0/queues/rx-0/rps_cpus "0D"
+ write /sys/class/net/ccmni1/queues/rx-0/rps_cpus "0D"
+ write /sys/class/net/ccmni2/queues/rx-0/rps_cpus "0D"
+ write /sys/class/net/ccmni3/queues/rx-0/rps_cpus "0D"
+ write /sys/class/net/ccmni4/queues/rx-0/rps_cpus "0D"
+ write /sys/class/net/ccmni5/queues/rx-0/rps_cpus "0D"
+ write /sys/class/net/ccmni6/queues/rx-0/rps_cpus "0D"
+ write /sys/class/net/ccmni7/queues/rx-0/rps_cpus "0D"
+ write /sys/class/net/ccmni9/queues/rx-0/rps_cpus "0D"
+ write /sys/class/net/ccmni10/queues/rx-0/rps_cpus "0D"
+ write /sys/class/net/ccmni11/queues/rx-0/rps_cpus "0D"
+ write /sys/class/net/ccmni12/queues/rx-0/rps_cpus "0D"
+ write /sys/class/net/ccmni13/queues/rx-0/rps_cpus "0D"
+ write /sys/class/net/ccmni14/queues/rx-0/rps_cpus "0D"
+ write /sys/class/net/ccmni15/queues/rx-0/rps_cpus "0D"
+ write /sys/class/net/ccmni16/queues/rx-0/rps_cpus "0D"
+ write /sys/class/net/ccmni17/queues/rx-0/rps_cpus "0D"
+ write /sys/class/net/ccmni18/queues/rx-0/rps_cpus "0D"
+ write /sys/class/net/ccmni19/queues/rx-0/rps_cpus "0D"
+ write /sys/class/net/ccmni20/queues/rx-0/rps_cpus "0D"
+
+ write /proc/sys/net/core/netdev_max_backlog 50000
+ write /proc/sys/net/ipv4/ipfrag_high_thresh 20971520
+
+ setprop ro.vendor.net.upload.mark.default blocking
+
+on post-fs-data
+
+ write /proc/bootprof "post-fs-data: on modem start"
+
+# Encrypt phone function
+ setprop vold.post_fs_data_done 1
+
+
+
diff --git a/rootdir/etc/init.mt6855.rc b/rootdir/etc/init.mt6855.rc
new file mode 100644
index 0000000..5c5788c
--- /dev/null
+++ b/rootdir/etc/init.mt6855.rc
@@ -0,0 +1,1088 @@
+# MTK platform .rc configure
+
+import ${ro.vendor.rc}init.connectivity.rc
+# import ${ro.vendor.rc}init.mt6855.usb.rc
+import /vendor/etc/init/hw/init.project.rc
+import /system_ext/etc/init/hw/init.aee.rc
+import /FWUpgradeInit.rc
+import /vendor/etc/init/hw/init.aee.rc
+import ${ro.vendor.rc}init.volte.rc
+import ${ro.vendor.rc}init.mal.rc
+import ${ro.vendor.rc}${ro.vendor.init.sensor.rc}
+import ${ro.vendor.rc}init.cgroup.rc
+import /vendor/etc/init/hw/init.mmi.rc
+
+# init.modem.rc must be the LAST rc file because vold.post_fs_data_done is set in it
+import ${ro.vendor.rc}init.modem.rc
+# *** DO NOT import the new rc file after this line ***
+
+on early-init
+ write /proc/bootprof "INIT:early-init"
+
+ # initialize vendor.all.modules.ready to 1 here to prevent NOT GKI project blocked
+ setprop vendor.all.modules.ready 1
+
+# Keep debugfs mounted in non-user builds
+on early-init && property:ro.build.type=eng
+ mount debugfs debugfs /sys/kernel/debug
+ chmod 0755 /sys/kernel/debug
+ setprop persist.dbg.keep_debugfs_mounted true
+
+on early-init && property:ro.build.type=userdebug
+ mount debugfs debugfs /sys/kernel/debug
+ chmod 0755 /sys/kernel/debug
+ setprop persist.dbg.keep_debugfs_mounted true
+
+on init
+ write /proc/bootprof "INIT:init"
+
+ # Support legacy paths
+ symlink /sdcard /mnt/sdcard
+
+ # if primary storage is physical, set ro.vold.primary_physical to 1
+ # setprop ro.vold.primary_physical 1
+
+ mkdir /mnt/cd-rom 0000 system system
+
+# change lk_env permission
+ chown root system /proc/lk_env
+ chmod 0660 /proc/lk_env
+
+# increase sysctl_rmem_max and sysctl_wmem_max values to 2M
+ write /proc/sys/net/core/wmem_max 8388608
+ write /proc/sys/net/core/rmem_max 8388608
+
+# update cpus for cpuset cgroup
+ write /dev/cpuset/foreground/cpus 0-7
+ write /dev/cpuset/foreground/boost/cpus 0-7
+ write /dev/cpuset/background/cpus 0-5
+ write /dev/cpuset/system-background/cpus 0-5
+ write /dev/cpuset/top-app/cpus 0-7
+
+on late-init
+ write /proc/bootprof "INIT:late-init"
+# enable rcu_expedited
+ write /sys/kernel/rcu_expedited 1
+
+# mount different fs start
+
+on charger
+
+ exec /system/bin/e2fsck -f -p /dev/block/by-name/cache
+ mount ext4 /dev/block/by-name/cache /cache rw wait
+ chmod 0660 /dev/spm
+ chown system system /dev/spm
+ start spm_script
+ chmod 0666 /dev/kmsg
+ chmod 0775 /mnt/vendor
+ mkdir /mnt/vendor/nvcfg
+ mount ext4 /dev/block/by-name/nvcfg /mnt/vendor/nvcfg rw wait
+ chown system system /mnt/vendor/nvcfg
+ chmod 0771 /mnt/vendor/nvcfg
+ restorecon_recursive /mnt/vendor/nvcfg
+ write /sys/devices/platform/battery_meter/FG_daemon_log_level 7
+ write /sys/bus/platform/devices/battery/FG_daemon_log_level 7
+ # Permissions for System Server and daemons.
+ chown system system /sys/power/autosleep
+ chown system system /sys/power/state
+ chown system system /sys/power/wakeup_count
+ chown radio wakelock /sys/power/wake_lock
+ chown radio wakelock /sys/power/wake_unlock
+ chmod 0660 /sys/power/state
+ chmod 0660 /sys/power/wake_lock
+ chmod 0660 /sys/power/wake_unlock
+ chmod 0660 /sys/power/wakeup_count
+ write /sys/power/pm_freeze_timeout 2000
+
+ start fuelgauged
+ start fuelgauged_nvram
+
+ chown system system /sys/class/leds/lcd-backlight/brightness
+ chown system system /sys/class/leds/red/brightness
+ chown system system /sys/class/leds/green/brightness
+
+ start vendor.light-default
+
+ # Stop bootprof
+ write /proc/bootprof "0"
+
+on early-fs
+ write /proc/bootprof "INIT:early-fs"
+
+on fs
+ write /proc/bootprof "INIT:fs"
+ start vendor.boot-hal-1-2
+
+ # mount fstab
+ write /proc/bootprof "INIT:Mount_START"
+ write /sys/kernel/tracing/trace_marker "B|1|Mount"
+ mount_all --early
+ exec /system/bin/tune2fs -O has_journal -u 10010 -r 4096 /dev/block/by-name/userdata
+ write /sys/kernel/tracing/trace_marker "E"
+ write /proc/bootprof "INIT:Mount_END"
+
+on fs
+
+ mount iso9660 loop@/vendor/etc/iAmCdRom.iso /mnt/cd-rom ro
+
+on late-fs
+ write /proc/bootprof "INIT:late-fs"
+ wait_for_prop hwservicemanager.ready "true"
+
+ write /proc/bootprof "INIT:Mount_START --late"
+ write /sys/kernel/tracing/trace_marker "B|1|Mount late"
+ mount_all --late
+ write /sys/kernel/tracing/trace_marker "E"
+ write /proc/bootprof "INIT:Mount_END --late"
+
+
+on post-fs
+ write /proc/bootprof "INIT:post-fs"
+
+ # Support legacy paths
+ symlink /sdcard /storage/sdcard0
+
+ #change permissions for mediaserver
+ chown root media /proc/clkmgr/mipi_test
+
+ #change permission for engineer mode
+ chown radio system /proc/clkmgr/pll_test
+ chown radio system /proc/clkmgr/pll_fsel
+ chmod 0664 /proc/clkmgr/pll_test
+ chmod 0664 /proc/clkmgr/pll_fsel
+ #change permission for engineer mode
+ chown radio system /proc/freqhopping/dramc
+ chown radio system /proc/freqhopping/dumpregs
+ chown radio system /proc/freqhopping/freqhopping_debug
+ chown radio system /proc/freqhopping/status
+ chown radio system /proc/freqhopping/userdef
+
+ # Support A/B feature for emmc boot region
+ symlink /dev/block/sda /dev/block/mmcblk0boot0
+ symlink /dev/block/sdb /dev/block/mmcblk0boot1
+ symlink /dev/block/mmcblk0boot0 /dev/block/by-name/preloader_a
+ symlink /dev/block/mmcblk0boot1 /dev/block/by-name/preloader_b
+
+ # Support A/B feature for combo emmc and ufs OTA update
+ symlink /dev/block/by-name/preloader_a /dev/block/by-name/preloader_emmc_a
+ symlink /dev/block/by-name/preloader_b /dev/block/by-name/preloader_emmc_b
+ symlink /dev/block/by-name/preloader_a /dev/block/by-name/preloader_ufs_a
+ symlink /dev/block/by-name/preloader_b /dev/block/by-name/preloader_ufs_b
+
+ symlink /dev/block/mapper/pl_a /dev/block/by-name/preloader_raw_a
+ symlink /dev/block/mapper/pl_b /dev/block/by-name/preloader_raw_b
+
+# change owner
+ chown system system /proc/bootprof
+ chmod 0664 /proc/bootprof
+ chown root system /proc/mtprof/cputime
+ chown root system /proc/mtprof/reboot_pid
+
+ chown system system /mnt/vendor/protect_f
+ chmod 0770 /mnt/vendor/protect_f
+
+ chown system system /mnt/vendor/protect_s
+ chmod 0770 /mnt/vendor/protect_s
+ chown root log /proc/ccci_sib
+
+ # allow ccci_mdinit access ccci_dump
+ chown root system /proc/ccci_dump
+
+on property:sys.boot_completed=1 && property:ro.vendor.zram.product_swapon=""
+ swapon_all /vendor/etc/fstab.enableswap
+
+on post-fs-data
+ write /proc/bootprof "INIT:post-fs-data"
+ wait_for_prop vendor.all.modules.ready 1
+ write /proc/bootprof "modprobe: Load_Module_DONE"
+
+ # Disable watermark boost
+ write /proc/sys/vm/watermark_boost_factor 0
+
+ # zram
+ write /sys/block/zram0/comp_algorithm lz4
+ write /proc/sys/vm/page-cluster 0
+ write /proc/sys/vm/swappiness 100
+ write /sys/kernel/mm/swap/vma_ra_enabled false
+
+ # boot time fs tune
+ write /sys/block/mmcblk0/queue/iostats 0
+ write /sys/block/mmcblk0/queue/read_ahead_kb 2048
+ write /sys/block/mmcblk0/queue/nr_requests 256
+ write /sys/block/sdc/queue/iostats 0
+ write /sys/block/sdc/queue/read_ahead_kb 2048
+ write /sys/block/sdc/queue/nr_requests 256
+ write /sys/block/dm-0/queue/read_ahead_kb 2048
+ write /sys/block/dm-1/queue/read_ahead_kb 2048
+ write /sys/block/dm-2/queue/read_ahead_kb 2048
+ write /sys/block/dm-3/queue/read_ahead_kb 2048
+ write /sys/block/dm-4/queue/read_ahead_kb 2048
+ write /sys/block/dm-5/queue/read_ahead_kb 2048
+ trigger moto-post-fs-data-fs-tune
+
+ chown system system /mnt/vendor/nvcfg
+ chmod 0771 /mnt/vendor/nvcfg
+ restorecon_recursive /mnt/vendor/nvcfg
+ chown system system /mnt/vendor/nvcfg/fg
+ chown system system /mnt/vendor/nvcfg/fg/old_fg_data
+ chown system system /mnt/vendor/nvcfg/fg/car_tune_value
+
+ # create basic filesystem structure
+ # We chown/chmod /mnt/vendor/nvdata again so because mount is run as root + defaults
+ chown root system /mnt/vendor/nvdata
+ chmod 0771 /mnt/vendor/nvdata
+ mkdir /mnt/vendor/nvdata/media 0771 media audio
+
+ #Create cct mount point
+ mkdir /mnt/vendor/cct
+ chown root system /mnt/vendor/cct
+ chmod 0771 /mnt/vendor/cct
+
+ #Create flash folder
+ mkdir /data/vendor/flash
+ chown root system /data/vendor/flash
+ chmod 0771 /data/vendor/flash
+
+ #Create shading mount point
+ mkdir /data/vendor/shading
+ chown root system /data/vendor/shading
+ chmod 0771 /data/vendor/shading
+
+ #Create shading_otp mount point
+ mkdir /data/vendor/shading_otp
+ chown root system /data/vendor/shading_otp
+ chmod 0771 /data/vendor/shading_otp
+
+ #Create NDD mount point
+ mkdir /data/vendor/camera_dump
+ chown root system /data/vendor/camera_dump
+ chmod 0771 /data/vendor/camera_dump
+
+ #Create Camera Dip Debug Folder
+ mkdir /data/vendor/dipdebug
+ chown root system /data/vendor/dipdebug
+ chmod 0771 /data/vendor/dipdebug
+
+ #Create flicker mount point
+ mkdir /data/vendor/flicker
+ chown root system /data/vendor/flicker
+ chmod 0771 /data/vendor/flicker
+
+ # Set SELinux security contexts on upgrade or policy update.
+ restorecon_recursive /mnt/vendor/nvdata
+
+ #give system access to rfkill device node
+ chmod 0660 /dev/rfkill
+
+ # create for muxd pts device node , to operate without root
+ mkdir /dev/radio 0770 radio radio
+
+ chmod 0660 /dev/spm
+ chown system system /dev/spm
+
+# GPS
+ chmod 0775 /vendor/xbin/MPED
+ chmod 0666 /dev/gps_emi
+
+# -----------------------
+# Add by MTK
+ # SCP log
+ chmod 0660 /sys/class/misc/scp/scp_mobile_log
+ chown root system /sys/class/misc/scp/scp_mobile_log
+ chmod 0220 /sys/class/misc/scp/scp_log_flush
+ chown root system /sys/class/misc/scp/scp_log_flush
+ chmod 0440 /dev/scp
+ chown root system /dev/scp
+ chmod 0664 /sys/class/misc/scp/scp_ee_force_ke
+ chown root system /sys/class/misc/scp/scp_ee_force_ke
+
+ # ADSP log
+ chmod 0660 /sys/class/misc/adsp_0/log_enable
+ chown root system /sys/class/misc/adsp_0/log_enable
+ chmod 0660 /sys/class/misc/adsp_1/log_enable
+ chown root system /sys/class/misc/adsp_1/log_enable
+ chmod 0660 /dev/adsp
+ chown root media /dev/adsp
+ chmod 0440 /dev/adsp_0
+ chown system media /dev/adsp_0
+ chmod 0440 /dev/adsp_1
+ chown system media /dev/adsp_1
+
+ # SSPM log
+ chmod 0620 /sys/class/misc/sspm/sspm_mobile_log
+ chown root system /sys/class/misc/sspm/sspm_mobile_log
+ chmod 0440 /dev/sspm
+ chown root system /dev/sspm
+
+ # VCP log
+ chmod 0660 /sys/class/misc/vcp/vcp_mobile_log
+ chown root system /sys/class/misc/vcp/vcp_mobile_log
+ chmod 0220 /sys/class/misc/vcp/vcp_log_flush
+ chown root system /sys/class/misc/vcp/vcp_log_flush
+ chmod 0440 /dev/vcp
+ chown root system /dev/vcp
+ chmod 0664 /sys/class/misc/vcp/vcp_ee_force_ke
+ chown root system /sys/class/misc/vcp/vcp_ee_force_ke
+
+ # radvd
+ chmod 444 /etc/radvd/radvd.conf
+
+ # Mali 3D GPU driver
+ #insmod /vendor/lib/modules/mali.ko
+ chmod 666 /dev/mali0
+ #chown system graphics /dev/mali
+
+
+
+ # Touch Panel
+ # chmod 0664 /dev/touch
+ 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_setting/parameters/tpd_mode
+ chown root diag /sys/module/tpd_setting/parameters/tpd_em_debounce_time0
+ chown root diag /sys/module/tpd_setting/parameters/tpd_em_debounce_time1
+ chown root diag /sys/module/tpd_setting/parameters/tpd_em_spl_num
+ chown root diag /sys/module/tpd_setting/parameters/tpd_em_pressure_threshold
+ chown root diag /sys/module/tpd_setting/parameters/tpd_em_auto_time_interval
+ chown root diag /sys/module/tpd_setting/parameters/tpd_em_sample_cnt
+ chown root diag /sys/module/tpd_setting/parameters/tpd_em_asamp
+ 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 0666 /dev/pmem_multimedia
+
+ # set ptmx group to non-root
+ chown root radio /dev/ptmx
+
+ # RTC
+ chmod 660 /dev/alarm
+ chown root system /dev/alarm
+
+ # M4U
+ #insmod /vendor/lib/modules/m4u.ko
+ #mknod /dev/M4U_device c 188 0
+ chmod 0444 /dev/m4u
+ #chown system media /dev/M4U_device
+ chmod 0640 /proc/m4u
+ chown system media /proc/m4u
+
+ #set mlock limit to infinate (for m4u operation)
+ setrlimit 8 -1 -1
+
+ # CMDQ
+ chmod 0640 /dev/mtk_mdp
+ chown system system /dev/mtk_mdp
+
+ # MDP SYNC
+ chmod 0640 /dev/mdp_sync
+ chown system system /dev/mdp_sync
+
+ # MML PQ
+ chmod 0640 /dev/mml_pq
+ chown system system /dev/mml_pq
+
+ #OFFLOAD SERVICE
+ chmod 0640 /dev/offloadservice
+ chown media media /dev/offloadservice
+
+ #OPEN DSP
+ chmod 0640 /dev/audio_ipi
+ chown media media /dev/audio_ipi
+
+ #SmartPA
+ chmod 0640 /dev/audio_scp
+ chown media media /dev/audio_scp
+ chown audioserver audio /sys/bus/platform/devices/rt5509_param.0/prop_param
+ chown audioserver audio /sys/bus/platform/devices/rt5509_param.1/prop_param
+
+ #Accdet
+ chown root radio /sys/devices/platform/Accdet_Driver/driver/accdet_call_state
+
+ #Fingerprint
+ chmod 0666 /dev/goodix_fp
+
+ #v4l2 codec
+ chmod 0660 /dev/vcu
+ chown media system /dev/vcu
+ chmod 0660 /dev/video0
+ chown media system /dev/video0
+ chmod 0660 /dev/video1
+ chown media system /dev/video1
+ mkdir /data/vendor/vcodec 0777 media system
+ mkdir /data/vendor/vcodec/log 0770 media system
+ mkdir /data/vendor/vcodec/in 0770 media system
+ mkdir /data/vendor/vcodec/out 0770 media system
+
+ #MJC
+ #insmod /vendor/lib/modules/mjc_kernel_driver.ko
+ chmod 0660 /dev/MJC
+ chown media system /dev/MJC
+
+ #kpd
+ chown radio radio /sys/devices/platform/mtk-kpd/driver/kpd_call_state
+
+ #Charging Battery
+ chown radio radio /sys/devices/platform/battery/Charging_CallState
+
+ # PMIC property
+ chown radio system /sys/devices/platform/mt-pmic/low_battery_protect_stop
+ chown radio system /sys/devices/platform/mt-pmic/low_battery_protect_ut
+
+ #MDDB
+ mkdir /data/vendor_de/meta 0770 system system
+ mkdir /data/vendor_de/meta/mddb 0770 system system
+
+ chown system /sys/devices/platform/msensor/driver/cpsopmode
+ chown system /sys/devices/platform/msensor/driver/cpsreptxy
+ chown system /sys/devices/platform/msensor/driver/cpsreptz
+ chown system /sys/devices/platform/gsensor/driver/cpsopmode
+ chown system /sys/devices/platform/gsensor/driver/cpsrange
+
+ chown system /sys/class/input/input1/enable
+ chown system /sys/class/input/input1/delay
+ chown system /sys/class/input/input1/wake
+ chown system /sys/class/input/input1/offsets
+ chown system /sys/class/input/input2/enable
+ chown system /sys/class/input/input2/delay
+ chown system /sys/class/input/input2/wake
+ chown system /sys/class/input/input2/offsets
+ chown system /sys/class/input/input3/enable
+ chown system /sys/class/input/input3/delay
+ chown system /sys/class/input/input3/wake
+ chown system /sys/class/input/input3/offsets
+ chown system /sys/class/input/input4/enable
+ chown system /sys/class/input/input4/delay
+ chown system /sys/class/input/input4/wake
+ chown system /sys/class/input/input4/offsets
+ chown system /sys/class/input/input5/enable
+ chown system /sys/class/input/input5/delay
+ chown system /sys/class/input/input5/wake
+ chown system /sys/class/input/input5/offsets
+ chown system /sys/class/input/input6/enable
+ chown system /sys/class/input/input6/delay
+ chown system /sys/class/input/input6/wake
+ chown system /sys/class/input/input6/offsets
+ chown system /sys/class/input/input7/enable
+ chown system /sys/class/input/input7/delay
+ chown system /sys/class/input/input7/wake
+ chown system /sys/class/input/input7/offsets
+ chown system /sys/class/input/input8/enable
+ chown system /sys/class/input/input8/delay
+ chown system /sys/class/input/input8/wake
+ chown system /sys/class/input/input8/offsets
+ chown system /sys/class/input/input9/enable
+ chown system /sys/class/input/input9/delay
+ chown system /sys/class/input/input9/wake
+ chown system /sys/class/input/input9/offsets
+ chown system /sys/class/input/input10/enable
+ chown system /sys/class/input/input10/delay
+ chown system /sys/class/input/input10/wake
+ chown system /sys/class/input/input10/offsets
+
+ #EM eint
+ chown root diag /sys/bus/platform/drivers/eint/current_eint
+
+ # Display
+ chmod 0660 /dev/graphics/fb0
+ chown system graphics /dev/graphics/fb0
+
+ chmod 0660 /dev/mtk_disp_mgr
+ chown system graphics /dev/mtk_disp_mgr
+
+ chmod 0660 /dev/mtkfb_vsync
+ chown system graphics /dev/mtkfb_vsync
+
+ chmod 0660 /dev/sw_sync
+ chown system graphics /dev/sw_sync
+
+ # EM baseband file
+ chown root diag /vendor/bin/baseband_regdump
+ chmod 4750 /vendor/bin/baseband_regdump
+
+ #pmu
+ chown root radio /sys/devices/platform/mt-pmic/pmic_access_bank0
+ chown root radio /sys/devices/platform/mt-pmic/pmic_access_bank1
+ chown root radio /sys/devices/platform/mt6311-user/mt6311_access
+ chown root radio /sys/devices/platform/mt-pmic/pmic_access
+ chmod 0664 /sys/devices/platform/mt-pmic/pmic_access_bank0
+ chmod 0664 /sys/devices/platform/mt-pmic/pmic_access_bank1
+ chmod 0664 /sys/devices/platform/mt6311-user/mt6311_access
+ chmod 0664 /sys/devices/platform/mt-pmic/pmic_access
+
+ # EM CPU Speed Stress
+ chown root radio /proc/cpu_ss/cpu_ss_debug_mode
+ chown root radio /proc/cpu_ss/cpu_ss_mode
+ chown root radio /proc/cpu_ss/cpu_ss_period
+ chown root radio /proc/cpu_ss/cpu_ss_period_mode
+ chmod 0664 /proc/cpu_ss/cpu_ss_debug_mode
+ chmod 0664 /proc/cpu_ss/cpu_ss_mode
+ chmod 0664 /proc/cpu_ss/cpu_ss_period
+ chmod 0664 /proc/cpu_ss/cpu_ss_period_mode
+
+ #EM eint
+ chown root diag /sys/bus/platform/drivers/eint/current_eint
+
+ # Android SEC related device nodes
+ chmod 0660 /dev/sec
+ chown root system /dev/sec
+
+ # FM Radio device node
+ chmod 0660 /dev/fm
+ chown media media /dev/fm
+
+ # device apc settings
+
+ # device info /proc interface
+ chmod 0440 /dev/devmap
+ chown root system /dev/devmap
+
+ # bluetooth
+ chown bluetooth bluetooth /dev/hid-keyboard
+ chmod 0660 /dev/hid-keyboard
+ #Use uinput's default permission
+ chown system net_bt_admin /dev/uinput
+
+ # UIBC
+ chown system media /dev/uibc
+ chmod 0660 /dev/uibc
+
+ #TV-out
+ chmod 0664 /dev/TV-out
+
+ #HDMI
+ chown media system /dev/hdmitx
+ chmod 0664 /dev/hdmitx
+
+
+ # JPEG
+ chmod 0666 /proc/mtk_jpeg
+
+ # almk
+ chmod 0440 /dev/mtk_almk
+
+ # DISP
+ chmod 0444 /dev/mtk_disp
+
+ #ANC SERVICE
+ chmod 0640 /dev/ancservice
+ chown media media /dev/ancservice
+
+ # gz device
+ chmod 0660 /dev/gz_kree
+ chown system system /dev/gz_kree
+
+ #Camera
+ chmod 0660 /dev/camera-sysram
+ chmod 0660 /dev/camera-isp
+ chmod 0660 /dev/camera-mem
+ chmod 0660 /dev/camera-dip
+ chmod 0660 /dev/camera-tsf
+ chmod 0660 /dev/camera-dpe
+ chmod 0660 /dev/camera-mfb
+ chmod 0660 /dev/camera-rsc
+ chmod 0660 /dev/camera-owe
+ chmod 0660 /dev/camera-fdvt
+ chmod 0660 /dev/camera-pda
+ chmod 0660 /dev/camera-wpe
+ chmod 0660 /dev/camera-pipemgr
+ chmod 0660 /dev/kd_camera_hw
+ chmod 0660 /dev/seninf
+ chmod 0660 /dev/seninf_n3d
+ chmod 0660 /dev/flashlight
+ chmod 0660 /dev/kd_camera_hw_bus2
+ chmod 0660 /dev/FM50AF
+ chmod 0660 /dev/CAM_CAL_DRV
+ chmod 0660 /dev/MAINAF
+ chmod 0660 /dev/MAIN2AF
+ chmod 0660 /dev/MAIN3AF
+ chmod 0660 /dev/SUBAF
+ chmod 0660 /dev/vpu
+ chmod 0660 /dev/apusys
+ chmod 0660 /dev/mtk_ccd
+
+ chown system camera /dev/camera-sysram
+ chown system camera /dev/camera-isp
+ chown system camera /dev/camera-mem
+ chown system camera /dev/camera-dip
+ chown system camera /dev/camera-dpe
+ chown system camera /dev/camera-mfb
+ chown system camera /dev/camera-rsc
+ chown system camera /dev/camera-owe
+ chown system camera /dev/camera-tsf
+ chown system camera /dev/camera-fdvt
+ chown system camera /dev/camera-pda
+ chown system camera /dev/camera-wpe
+ chown system camera /dev/camera-pipemgr
+ chown system camera /dev/kd_camera_hw
+ chown system camera /dev/seninf
+ chown system camera /dev/seninf_n3d
+ chown system camera /dev/flashlight
+ chown system camera /dev/kd_camera_hw_bus2
+ chown system camera /dev/FM50AF
+ chown system camera /dev/CAM_CAL_DRV
+ chown system camera /dev/MAINAF
+ chown system camera /dev/MAIN2AF
+ chown system camera /dev/MAIN3AF
+ chown system camera /dev/SUBAF
+ chown system camera /dev/vpu
+ chown system camera /dev/apusys
+ chown system camera /dev/mtk_ccd
+ chown system camera /sys/kernel/debug/mtk_cam_dbg/0/ctrl
+ chown system camera /sys/kernel/debug/mtk_cam_dbg/1/ctrl
+ chown system camera /sys/kernel/debug/mtk_cam_dbg/2/ctrl
+
+ #CCU
+ chmod 0660 /dev/ccu
+ chown system camera /dev/ccu
+
+ #VOW
+ chmod 0640 /dev/vow
+ chown media media /dev/vow
+
+ #MATV
+ chmod 0660 /dev/MATV
+ chown system media /dev/MATV
+
+ # otg_test
+ chown root radio /dev/mt_otg_test
+ chmod 0660 /dev/mt_otg_test
+
+ # MDP
+ chmod 0660 /dev/mt-mdp
+ chown system media /dev/mt-mdp
+
+ # SMI
+ chmod 0660 /dev/MTK_SMI
+ chown media media /dev/MTK_SMI
+
+ # MMQoS
+ chmod 0660 /sys/devices/platform/soc/soc:interconnect/mmqos_hrt/camera_max_bw
+ chown media media /sys/devices/platform/soc/soc:interconnect/mmqos_hrt/camera_max_bw
+
+ # RRC
+ chmod 0660 /dev/mtk_rrc
+ chown media system /dev/mtk_rrc
+
+ # DFRC
+ chmod 0660 /dev/mtk_dfrc
+ chown system graphics /dev/mtk_dfrc
+
+
+ #change partition permission
+
+ chmod 0640 /mtd@sec_ro
+ chown root system /mtd@sec_ro
+
+ chmod 0640 /mtd@preloader
+ chown root system /mtd@preloader
+
+ chmod 0660 /mtd@pro_info
+ chown root system /mtd@pro_info
+
+ chmod 0640 /mtd@bootimg
+ chown root system /mtd@bootimg
+
+ chmod 0640 /mtd@recovery
+ chown root system /mtd@recovery
+
+ chmod 0660 /mtd@nvram
+ chown root system /mtd@nvram
+
+ chmod 0660 /mtd@seccfg
+ chown root system /mtd@seccfg
+
+ chmod 0660 /mtd@misc
+ chown root system /mtd@misc
+
+ chmod 0664 /sys/bus/platform/drivers/emi_ctrl/concurrency_scenario
+ chown media media /sys/bus/platform/drivers/emi_ctrl/concurrency_scenario
+
+ #mtk_sched
+ chmod 0660 /dev/mtk_sched
+ chown system media /dev/mtk_sched
+
+ #BT SCO CVSD, for MT6572 and MT6582 CVSD codec on AP
+ chmod 0660 /dev/ebc
+ chown media media /dev/ebc
+
+ #usip
+ chmod 0660 /dev/usip
+ chown media media /dev/usip
+
+ chmod 0666 /dev/uio0
+
+ #otp
+ chmod 0660 /proc/driver/otp
+ chown root system /proc/driver/otp
+
+ # secure memory
+ chown system system /proc/secmem0
+
+ chmod 0666 /dev/exm0
+
+
+ #Thermal
+ mkdir /data/vendor/.tp/ 0775 system system
+ mkdir /data/vendor/thermal/ 0775 system system
+
+ #MCUPM log
+ chmod 0620 /sys/class/misc/mcupm/mcupm_mobile_log
+ chown root system /sys/class/misc/mcupm/mcupm_mobile_log
+ chmod 0440 /dev/mcupm
+ chown root system /dev/mcupm
+
+ #EM of MT6360
+ chmod 0664 sys/kernel/debug/rt-regmap/mt6360_pmu.5-0034/data
+ chmod 0664 sys/kernel/debug/rt-regmap/mt6360_pmic.5-001a/data
+ chmod 0664 sys/kernel/debug/rt-regmap/mt6360_ldo.5-0064/data
+ chmod 0664 sys/kernel/debug/rt-regmap/mt6360-4e/data
+ chmod 0664 sys/kernel/debug/rt-regmap/mt6360_pmu.5-0034/reg_addr
+ chmod 0664 sys/kernel/debug/rt-regmap/mt6360_pmic.5-001a/reg_addr
+ chmod 0664 sys/kernel/debug/rt-regmap/mt6360_ldo.5-0064/reg_addr
+ chmod 0664 sys/kernel/debug/rt-regmap/mt6360-4e/reg_addr
+
+ #widevine driver node
+ chmod 0660 /dev/drm_wv
+ chown media system /dev/drm_wv
+
+# End of adding by MTK drivers
+# -----------------------
+on zygote-start
+ write /proc/bootprof "INIT:zygote-start"
+
+on early-boot
+ write /proc/bootprof "INIT:early-boot"
+ verity_update_state
+
+on boot
+ write /proc/bootprof "INIT:boot"
+
+ write /proc/sys/vm/dirty_writeback_centisecs 300
+ chmod 0660 /sys/power/autosleep
+
+ chmod 0664 /sys/class/leds/lcd-backlight/brightness
+ chown system system /sys/class/leds/lcd-backlight/brightness
+
+ chown system system /sys/devices/system/cpu/cpufreq/hotplug/cpu_num_base
+ chmod 0660 /sys/devices/system/cpu/cpufreq/hotplug/cpu_num_base
+ chown system system /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
+ chmod 0660 /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
+ chown system system /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
+ chmod 0660 /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
+ chown root system /sys/kernel/debug/binder/transaction_log_enable
+ chown root system /sys/kernel/debug/binder/perf_evalue
+ chown system system /sys/devices/system/cpu/rq-stats/htasks_thresh
+ chmod 0660 /sys/devices/system/cpu/rq-stats/htasks_thresh
+ chown system system /sys/devices/system/cpu/rq-stats/avg_htasks_thresh
+ chmod 0660 /sys/devices/system/cpu/rq-stats/avg_htasks_thresh
+
+ chown system /sys/module/mlog/parameters/do_mlog
+ chown system /sys/module/mlog/parameters/timer_intval
+
+ chown root radio /sys/class/leds/lcd-backlight/duty
+ chown root radio /sys/class/leds/lcd-backlight/div
+ chown system system /sys/class/leds/lcd-backlight/trigger
+ chown system system /sys/class/leds/button-backlight/trigger
+ chown system system /sys/class/leds/keyboard-backlight/trigger
+ chown system system /sys/class/leds/jogball-backlight/trigger
+ chown system system /sys/class/leds/red/trigger
+ chown system system /sys/class/leds/green/trigger
+ chown system system /sys/class/leds/blue/trigger
+
+ # gauge symbolic
+ symlink /sys/devices/platform/11b20000.i2c/i2c-5/5-0034/11b20000.i2c:mt6375@34:mtk_gauge /dev/gauge
+
+ # Permission for hibernation
+ chown radio system /sys/power/tuxonice
+ chown radio system /sys/power/tuxonice/do_hibernate
+ chmod 0770 /sys/power/tuxonice
+ chmod 0220 /sys/power/tuxonice/do_hibernate
+
+
+# Smartbook Handler Framework
+ chown system system /sys/power/sb_state
+ chmod 0660 /sys/power/sb_state
+
+# HMP CPU hotplug strategy
+ chown system system /proc/hps/num_base_perf_serv
+ chmod 0660 /proc/hps/num_base_perf_serv
+ chown system system /proc/hps/num_limit_power_serv
+ chmod 0660 /proc/hps/num_limit_power_serv
+ chown system system /proc/hps/num_limit_ultra_power_saving
+ chmod 0660 /proc/hps/num_limit_ultra_power_saving
+ chown system system /proc/hps/down_threshold
+ chmod 0660 /proc/hps/down_threshold
+ chown system system /proc/hps/up_threshold
+ chmod 0660 /proc/hps/up_threshold
+ chown system system /proc/hps/rush_boost_enabled
+ chmod 0660 /proc/hps/rush_boost_enabled
+ chown system system /proc/hps/heavy_task_enabled
+ chmod 0660 /proc/hps/heavy_task_enabled
+ chown system system /proc/hps/power_mode
+ chmod 0660 /proc/hps/power_mode
+ chown system system /proc/hps/up_times
+ chmod 0660 /proc/hps/up_times
+ chown system system /proc/hps/down_times
+ chmod 0660 /proc/hps/down_times
+
+# PPM
+ chown system system /proc/ppm/mode
+ chmod 0660 /proc/ppm/mode
+ chown system system /proc/ppm/policy/perfserv_min_perf_idx
+ chmod 0440 /proc/ppm/policy/perfserv_min_perf_idx
+ chown system system /proc/ppm/policy/perfserv_max_perf_idx
+ chmod 0440 /proc/ppm/policy/perfserv_max_perf_idx
+ chown system system /proc/ppm/policy/perfserv_perf_idx
+ chmod 0660 /proc/ppm/policy/perfserv_perf_idx
+ chown system system /proc/ppm/policy/userlimit_min_cpu_freq
+ chmod 0660 /proc/ppm/policy/userlimit_min_cpu_freq
+ chown system system /proc/ppm/policy/userlimit_max_cpu_freq
+ chmod 0660 /proc/ppm/policy/userlimit_max_cpu_freq
+ chown system system /proc/ppm/policy/userlimit_min_cpu_core
+ chmod 0660 /proc/ppm/policy/userlimit_min_cpu_core
+ chown system system /proc/ppm/policy/userlimit_max_cpu_core
+ chmod 0660 /proc/ppm/policy/userlimit_max_cpu_core
+ chown system system /proc/ppm/policy/userlimit_cpu_core
+ chmod 0660 /proc/ppm/policy/userlimit_cpu_core
+ chown system system /proc/ppm/policy/userlimit_cpu_freq
+ chmod 0660 /proc/ppm/policy/userlimit_cpu_freq
+ chown system system /proc/ppm/dump_cluster_0_dvfs_table
+ chmod 0440 /proc/ppm/dump_cluster_0_dvfs_table
+ chown system system /proc/ppm/dump_cluster_1_dvfs_table
+ chmod 0440 /proc/ppm/dump_cluster_1_dvfs_table
+ chown system system /proc/ppm/dump_cluster_2_dvfs_table
+ chmod 0440 /proc/ppm/dump_cluster_2_dvfs_table
+ chown system system /proc/ppm/root_cluster
+ chmod 0660 /proc/ppm/root_cluster
+ chown system system /proc/ppm/policy/hica_variant
+ chmod 0660 /proc/ppm/policy/hica_variant
+ chown system system /proc/ppm/policy/hica_settings/L_ONLY_to_4L_LL/loading_hold_time
+ chmod 0660 /proc/ppm/policy/hica_settings/L_ONLY_to_4L_LL/loading_hold_time
+
+# cpu_loading
+ chown system system /proc/cpu_loading/onoff
+ chmod 0664 /proc/cpu_loading/onoff
+ chown system system /proc/cpu_loading/overThrhld
+ chmod 0664 /proc/cpu_loading/overThrhld
+ chown system system /proc/cpu_loading/poltime_nsecs
+ chmod 0664 /proc/cpu_loading/poltime_nsecs
+ chown system system /proc/cpu_loading/poltime_secs
+ chmod 0664 /proc/cpu_loading/poltime_secs
+ chown system system /proc/cpu_loading/uevent_enable
+ chmod 0664 /proc/cpu_loading/uevent_enable
+
+# CPU freq
+ chown system system /proc/cpufreq/cpufreq_limited_by_hevc
+ chmod 0660 /proc/cpufreq/cpufreq_limited_by_hevc
+ chown system system /proc/cpufreq/cpufreq_limited_max_freq_by_user
+ chmod 0660 /proc/cpufreq/cpufreq_limited_max_freq_by_user
+ chown system system /proc/cpufreq/cpufreq_power_mode
+ chmod 0660 /proc/cpufreq/cpufreq_power_mode
+ chown system system /proc/cpufreq/enable_hw_gov
+ chmod 0660 /proc/cpufreq/enable_hw_gov
+
+# BW monitor
+ chown system system /proc/fliperfs/cg_enable
+ chmod 0664 /proc/fliperfs/cg_enable
+ chown system system /proc/fliperfs/cg_threshold
+ chmod 0664 /proc/fliperfs/cg_threshold
+ chown system system /proc/fliperfs/cg_threshold_ddr3
+ chmod 0664 /proc/fliperfs/cg_threshold_ddr3
+ chown system system /proc/fliperfs/perf
+ chmod 0664 /proc/fliperfs/perf
+
+# perfmgr
+ chown system system /proc/perfmgr/smart/hps_is_heavy
+ chmod 0660 /proc/perfmgr/smart/hps_is_heavy
+ chown system system /proc/perfmgr/smart/hps_check_duration
+ chmod 0660 /proc/perfmgr/smart/hps_check_duration
+ chown system system /proc/perfmgr/smart/hps_check_last_duration
+ chmod 0660 /proc/perfmgr/smart/hps_check_last_duration
+ chown system system /proc/perfmgr/smart/hps_uevent_enable
+ chmod 0660 /proc/perfmgr/smart/hps_uevent_enable
+ chown system system /sys/power/dcm_state
+ chmod 0660 /sys/power/dcm_state
+
+##Netlog tool
+ #change permissions about terminal
+ chown root radio /proc/net/vlan/config
+ chmod 0640 /proc/net/vlan/config
+ chown root radio /proc/net/ip6_tables_matches
+ chown root radio /proc/net/ip6_tables_names
+ chown root radio /proc/net/ip6_tables_targets
+ chown root radio /proc/net/arp_tables_targets
+ chown root radio /proc/net/arp_tables_matches
+ chown root radio /proc/net/arp_tables_names
+ chown root radio /proc/net/ip_tables_targets
+ chown root radio /proc/net/ip_tables_matches
+ chown root radio /proc/net/ip_tables_names
+ chown root radio /proc/net/ip_conntrack_expect
+ chown root radio /proc/net/ip_conntrack
+ chown root radio /proc/net/nf_conntrack
+ chown root radio /proc/net/nf_conntrack_expect
+ chown root radio /proc/net/netfilter/nfnetlink_log
+ chown root radio /proc/net/netfilter/nfnetlink_queue
+
+# WMT proc
+ chown shell system /proc/driver/wmt_dbg
+ chown shell system /proc/driver/wmt_aee
+
+# define device for EMCSMDLOGGER
+ chown system radio /dev/ttyGS3
+ chmod 0660 /dev/ttyGS3
+
+#Define device for ATCID
+ chmod 660 /dev/ttyGS0
+ chown system radio /dev/ttyGS0
+ chmod 660 /dev/ttyGS1
+ chown system radio /dev/ttyGS1
+#Power Manager
+ write /sys/power/pm_freeze_timeout 2000
+
+on property:vold.decrypt=trigger_reset_main
+ write /proc/bootprof "INIT:vold.decrypt=trigger_reset_main"
+ setprop sys.boot_completed 0
+ setprop dev.bootcomplete 0
+
+on property:vold.decrypt=trigger_post_fs_data
+ write /proc/bootprof "INIT:vold.decrypt=trigger_post_fs_data"
+
+on property:vold.decrypt=trigger_restart_min_framework
+ write /proc/bootprof "INIT:vold.decrypt=trigger_restart_min_framework"
+ start msensord
+ start permission_check
+
+on property:vold.decrypt=trigger_restart_framework
+ write /proc/bootprof "INIT:vold.decrypt=trigger_restart_framework"
+ start msensord
+ start permission_check
+
+on property:vold.decrypt=trigger_shutdown_framework
+ write /proc/bootprof "INIT:vold.decrypt=trigger_shutdown_framework"
+ setprop sys.boot_completed 0
+ setprop dev.bootcomplete 0
+
+# bugreport is triggered by holding down volume down, volume up and power
+service bugreport /system/bin/dumpstate -d -p -B -z \
+ -o /data/user_de/0/com.android.shell/files/bugreports/bugreport
+ class late_start
+ disabled
+ oneshot
+ keycodes 114 115 116
+
+# end boot time fs tune
+on property:sys.boot_completed=1
+ write /sys/block/mmcblk0/queue/iostats 1
+ write /sys/block/mmcblk0/queue/read_ahead_kb 512
+ write /sys/block/mmcblk0/queue/nr_requests 128
+ write /sys/block/sdc/queue/iostats 1
+ write /sys/block/sdc/queue/read_ahead_kb 512
+ write /sys/block/sdc/queue/nr_requests 128
+ write /sys/block/dm-0/queue/read_ahead_kb 128
+ write /sys/block/dm-1/queue/read_ahead_kb 128
+ write /sys/block/dm-2/queue/read_ahead_kb 128
+ write /sys/block/dm-3/queue/read_ahead_kb 128
+ write /sys/block/dm-4/queue/read_ahead_kb 128
+ write /sys/block/dm-5/queue/read_ahead_kb 128
+ trigger moto-boot-completed-fs-tune
+
+on property:sys.boot_completed=1
+ write /proc/perfmgr/boost_ctrl/cpu_ctrl/boot_freq "-1 -1 -1 -1 -1 -1"
+ write /sys/devices/platform/boot_dramboost/dramboost/dramboost 0
+
+ # stop bootprof
+ write /proc/bootprof 0
+
+#service dpfd /vendor/bin/dpfd
+# user root
+# group system media
+
+#
+# External Modme control related services
+#
+
+#
+# Modem related services (Begin)
+#
+##Add by T.Zh for ppp daemon
+#service pppd /system/bin/pppd file /data/misc/ppp/ppp_options
+# user root
+# disabled
+# oneshot
+#
+##
+#
+# Modem related services (End)
+#
+
+#add for power-off alarm
+#service poad /vendor/bin/poad
+# class main
+# user system
+# group system
+# oneshot
+
+#service BGW /vendor/xbin/BGW
+# user system
+# group gps system radio
+# class main
+
+# Battery info
+on property:persist.vendor.mediatek.fg.disable=1
+ write /dev/gauge/FG_daemon_disable 1
+
+on property:persist.vendor.mediatek.fg.force25c=1
+ write /dev/gauge/Battery_Temperature 25
+
+on property:persist.vendor.mediatek.fg.force25c=0
+ write /dev/gauge/Battery_Temperature 65535
+
+on property:persist.vendor.mediatek.fg.log.enable=1
+ write /dev/gauge/FG_daemon_log_level 7
+ write /proc/sys/kernel/printk 8
+
+# add meta_tst for ATM
+service meta_tst /vendor/bin/meta_tst
+ class core
+ user root
+ group radio gps system wifi audio bluetooth media
+ capabilities NET_RAW NET_ADMIN
+ socket meta-atci stream 660 radio system
+ disabled
+ oneshot
+
+service factory_no_image /vendor/bin/factory
+ user root
+ group radio system wifi media gps audio bluetooth wakelock nfc
+ capabilities BLOCK_SUSPEND NET_RAW NET_ADMIN SYS_ADMIN SYS_BOOT
+ socket factory-atci stream 660 radio system
+ disabled
+ oneshot
+
+# start meta_tst for ATM
+on property:sys.boot_completed=1 && property:ro.boot.atm=enable
+ start meta_tst
+ start loghidlvendorservice
+ start loghidlsysservice
+
+# reset mdmode when modem crash happens in ATM
+on property:vendor.mtk.md1.status=reset
+ setprop persist.vendor.atm.mdmode normal
+
+# MTK fast charging support
+on property:persist.vendor.mediatek.fast_charging.support=*
+ write /sys/devices/platform/charger/fast_chg_indicator ${persist.vendor.mediatek.fast_charging.support}
+
+# FPSGO FBT Game
+on boot
+ insmod /vendor/lib/modules/fpsgo.ko
+
+# VSIM service (vendor OSI)
+service osi /system/bin/osi
+ class main
+ user root
+ disabled
+ oneshot
+ #seclabel u:r:osi:s0
+
+
diff --git a/rootdir/etc/init.mt6855.usb.rc b/rootdir/etc/init.mt6855.usb.rc
new file mode 100644
index 0000000..19fef80
--- /dev/null
+++ b/rootdir/etc/init.mt6855.usb.rc
@@ -0,0 +1,938 @@
+on early-init
+ write /sys/module/musb_hdrc/parameters/kernel_init_done 1
+
+on post-fs
+ setprop vendor.usb.vid "0x0E8D"
+ mkdir /dev/usb-ffs 0775 shell shell
+ mkdir /dev/usb-ffs/adb 0770 shell shell
+ mkdir /config/usb_gadget/g1 0770 shell shell
+ write /config/usb_gadget/g1/idVendor ${vendor.usb.vid}
+ write /config/usb_gadget/g1/bcdDevice 0x0223
+ write /config/usb_gadget/g1/bcdUSB 0x0200
+ write /config/usb_gadget/g1/os_desc/use 1
+ mkdir /config/usb_gadget/g1/strings/0x409 0770
+ write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
+ write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
+ write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
+ mkdir /config/usb_gadget/g1/functions/accessory.gs2
+ mkdir /config/usb_gadget/g1/functions/audio_source.gs3
+ mkdir /config/usb_gadget/g1/functions/ffs.adb
+ mkdir /config/usb_gadget/g1/functions/ffs.mtp
+ write /config/usb_gadget/g1/functions/ffs.mtp/os_desc/interface.MTP/compatible_id "MTP"
+ mkdir /config/usb_gadget/g1/functions/ffs.ptp
+ mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4
+ mkdir /config/usb_gadget/g1/functions/midi.gs5
+ mkdir /config/usb_gadget/g1/functions/acm.gs0
+ mkdir /config/usb_gadget/g1/functions/acm.gs1
+ mkdir /config/usb_gadget/g1/functions/acm.gs2
+ mkdir /config/usb_gadget/g1/functions/acm.gs3
+ mkdir /config/usb_gadget/g1/functions/mass_storage.usb0
+ mkdir /config/usb_gadget/g1/functions/hid.gs0
+ mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell
+ mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell
+ write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
+ write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
+ write /config/usb_gadget/g1/configs/b.1/MaxPower 500
+ symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
+ mount functionfs adb /dev/usb-ffs/adb rmode=0770,fmode=0660,uid=2000,gid=2000,no_disconnect=1
+ mkdir /dev/usb-ffs/mtp 0770 mtp mtp
+ mkdir /dev/usb-ffs/ptp 0770 mtp mtp
+ mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
+ mount functionfs ptp /dev/usb-ffs/ptp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
+
+on post-fs-data
+ mkdir /config/usb_gadget/g1/functions/via_modem.gs0
+ mkdir /config/usb_gadget/g1/functions/via_ets.gs0
+ mkdir /config/usb_gadget/g1/functions/via_atc.gs0
+
+on boot
+ setprop sys.usb.configfs 1
+ setprop sys.usb.controller "musb-hdrc"
+ setprop vendor.usb.controller "musb-hdrc"
+ setprop sys.usb.ffs.aio_compat 0
+ setprop vendor.usb.acm_cnt 0
+ setprop vendor.usb.acm_port0 ""
+ setprop vendor.usb.acm_port1 ""
+ setprop vendor.usb.acm_enable 0
+ write /sys/class/android_usb/android0/f_mtp/cpu_mask 0x80
+ write /sys/module/usb_f_mtp/parameters/mtp_rx_cont 1
+ chmod 0664 /sys/class/android_usb/android0/iSerial
+ chown root system /sys/class/android_usb/android0/iSerial
+
+ chown radio system /sys/class/usb_rawbulk/data/enable
+ chmod 0660 /sys/class/usb_rawbulk/data/enable
+ chown radio system /sys/class/usb_rawbulk/ets/enable
+ chmod 0660 /sys/class/usb_rawbulk/ets/enable
+ chown radio system /sys/class/usb_rawbulk/atc/enable
+ chmod 0660 /sys/class/usb_rawbulk/atc/enable
+ chown radio system /sys/class/usb_rawbulk/pcv/enable
+ chmod 0660 /sys/class/usb_rawbulk/pcv/enable
+ chown radio system /sys/class/usb_rawbulk/gps/enable
+ chmod 0660 /sys/class/usb_rawbulk/gps/enable
+ chown system radio /dev/ttyGS0
+ chmod 0660 /dev/ttyGS0
+ chown system radio /dev/ttyGS1
+ chmod 0660 /dev/ttyGS1
+ chown system radio /dev/ttyGS2
+ chmod 0660 /dev/ttyGS2
+ chown system radio /dev/ttyGS3
+ chmod 0660 /dev/ttyGS3
+
+ # for usb otg sdcard hot plug detection
+ write /sys/module/block/parameters/events_dfl_poll_msecs 1000
+
+on charger
+ mkdir /config/usb_gadget/g1 0770 shell shell
+ write /config/usb_gadget/g1/idVendor 0x0E8D
+ write /config/usb_gadget/g1/bcdDevice 0x0223
+ write /config/usb_gadget/g1/bcdUSB 0x0200
+ write /config/usb_gadget/g1/os_desc/use 1
+ mkdir /config/usb_gadget/g1/strings/0x409 0770
+ write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
+ write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
+ write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
+ mkdir /config/usb_gadget/g1/functions/hid.gs0
+ mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell
+ mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell
+ write /config/usb_gadget/g1/configs/b.1/MaxPower 500
+ mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
+ setprop sys.usb.configfs 1
+ setprop vendor.usb.controller "musb-hdrc"
+ setprop vendor.usb.acm_cnt 0
+ setprop vendor.usb.acm_port0 ""
+ setprop vendor.usb.acm_port1 ""
+ setprop vendor.usb.acm_enable 0
+ setprop sys.usb.config hid
+
+### more command at init.usb.configfs.rc ###
+on property:sys.usb.config=none && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/idVendor ${vendor.usb.vid}
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ rmdir /config/usb_gadget/g1/functions/mtk_rndis.gs4
+ write /sys/devices/platform/soc/mt_usb/saving 0
+
+### HID for KPOC ###
+on property:sys.usb.config=hid && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "HID"
+ write /config/usb_gadget/g1/idProduct 0x20FF
+ write /config/usb_gadget/g1/functions/hid.gs0/protocol 0
+ write /config/usb_gadget/g1/functions/hid.gs0/subclass 0
+ #write /config/usb_gadget/g1/functions/hid.gs0/report_length 4
+ #write /config/usb_gadget/g1/functions/hid.gs0/report_desc \\x05\\x01\\x09\\x00\\xa1\\x01\\xc0
+ symlink /config/usb_gadget/g1/functions/hid.gs0 /config/usb_gadget/g1/configs/b.1/f1
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+### main function : adb ###
+### start adbd at init.usb.configfs.rc ###
+on property:sys.usb.config=adb && property:vendor.usb.acm_cnt=0 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x201C
+on property:sys.usb.config=adb && property:vendor.usb.acm_cnt=1 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2006
+ setprop vendor.usb.acm_port1 ""
+on property:sys.usb.config=adb && property:vendor.usb.acm_cnt=2 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2029
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && \
+property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_acm"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && \
+property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+### main function : mtp ###
+on property:sys.usb.config=mtp && property:vendor.usb.acm_cnt=0 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2008
+on property:sys.usb.config=mtp && property:vendor.usb.acm_cnt=1 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2012
+ setprop vendor.usb.acm_port1 ""
+on property:sys.usb.config=mtp && property:vendor.usb.acm_cnt=2 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x202A
+
+on property:sys.usb.config=mtp && property:vendor.usb.acm_enable=1 && \
+property:sys.usb.configfs=1 && property:vendor.usb.ffs.mtp.ready=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_acm"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ write /config/usb_gadget/g1/os_desc/use 1
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=mtp && property:vendor.usb.acm_enable=0 && \
+property:sys.usb.configfs=1 && property:vendor.usb.ffs.mtp.ready=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ write /config/usb_gadget/g1/os_desc/use 1
+ symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+### start adbd at init.usb.configfs.rc ###
+on property:sys.usb.config=mtp,adb && property:vendor.usb.acm_cnt=0 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x201D
+on property:sys.usb.config=mtp,adb && property:vendor.usb.acm_cnt=1 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x200A
+ setprop vendor.usb.acm_port1 ""
+on property:sys.usb.config=mtp,adb && property:vendor.usb.acm_cnt=2 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2026
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && \
+property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1 && property:vendor.usb.ffs.mtp.ready=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_adb_acm"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ write /config/usb_gadget/g1/os_desc/use 1
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && \
+property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1 && property:vendor.usb.ffs.mtp.ready=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_adb"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ write /config/usb_gadget/g1/os_desc/use 1
+ symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+### main function : ptp ###
+on property:sys.usb.config=ptp && property:vendor.usb.acm_cnt=0 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x200B
+on property:sys.usb.config=ptp && property:vendor.usb.acm_cnt=1 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2013
+ setprop vendor.usb.acm_port1 ""
+on property:sys.usb.config=ptp && property:vendor.usb.acm_cnt=2 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x202B
+
+on property:sys.usb.config=ptp && property:vendor.usb.acm_enable=1 && \
+property:sys.usb.configfs=1 && property:vendor.usb.ffs.ptp.ready=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_acm"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=ptp && property:vendor.usb.acm_enable=0 && \
+property:sys.usb.configfs=1 && property:vendor.usb.ffs.ptp.ready=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+### start adbd at init.usb.configfs.rc ###
+on property:sys.usb.config=ptp,adb && property:vendor.usb.acm_cnt=0 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x200C
+on property:sys.usb.config=ptp,adb && property:vendor.usb.acm_cnt=1 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x200D
+ setprop vendor.usb.acm_port1 ""
+on property:sys.usb.config=ptp,adb && property:vendor.usb.acm_cnt=2 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2027
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ptp,adb && \
+property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1 && property:vendor.usb.ffs.ptp.ready=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_adb_acm"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ptp,adb && \
+property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1 && property:vendor.usb.ffs.ptp.ready=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_adb"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+### main function : rndis ###
+on property:sys.usb.config=rndis && property:vendor.usb.acm_cnt=0 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2004
+on property:sys.usb.config=rndis && property:vendor.usb.acm_cnt=1 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2011
+ setprop vendor.usb.acm_port1 ""
+on property:sys.usb.config=rndis && property:vendor.usb.acm_cnt=2 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x202C
+
+on property:sys.usb.config=rndis && property:vendor.usb.acm_enable=1 && \
+property:sys.usb.configfs=1
+ mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_acm"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/mtk_rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=rndis && property:vendor.usb.acm_enable=0 && \
+property:sys.usb.configfs=1
+ mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ symlink /config/usb_gadget/g1/functions/mtk_rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=rndis,adb && property:vendor.usb.acm_cnt=0 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2005
+on property:sys.usb.config=rndis,adb && property:vendor.usb.acm_cnt=1 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2010
+ setprop vendor.usb.acm_port1 ""
+on property:sys.usb.config=rndis,adb && property:vendor.usb.acm_cnt=2 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2028
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,adb && \
+property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1
+ mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb_acm"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/mtk_rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,adb && \
+property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1
+ mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ symlink /config/usb_gadget/g1/functions/mtk_rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+### main function : midi ###
+on property:sys.usb.config=midi && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/idProduct 0x2046
+
+on property:sys.usb.config=midi,adb && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/idProduct 0x2048
+
+### main function : accessory ###
+on property:sys.usb.config=accessory && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/idVendor 0x18d1
+ write /config/usb_gadget/g1/idProduct 0x2d00
+
+on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/idVendor 0x18d1
+ write /config/usb_gadget/g1/idProduct 0x2d01
+
+### main function : audio_source ###
+on property:sys.usb.config=audio_source && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/idVendor 0x18d1
+ write /config/usb_gadget/g1/idProduct 0x2d02
+
+on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/idVendor 0x18d1
+ write /config/usb_gadget/g1/idProduct 0x2d03
+
+### main function : accessory,audio_source ###
+on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/idVendor 0x18d1
+ write /config/usb_gadget/g1/idProduct 0x2d04
+
+on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/idVendor 0x18d1
+ write /config/usb_gadget/g1/idProduct 0x2d05
+
+on property:sys.usb.config=via_bypass && property:vendor.usb.acm_cnt=0 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2031
+on property:sys.usb.config=via_bypass && property:vendor.usb.acm_cnt=1 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2033
+ setprop vendor.usb.acm_port1 ""
+
+##via_modem,via_ets,via_atc,acm
+on property:sys.usb.config=via_bypass && property:vendor.usb.acm_enable=1 && \
+property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "via_bypass"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/via_ets.gs0 /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/via_atc.gs0 /config/usb_gadget/g1/configs/b.1/f3
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f4
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+##via_modem,via_ets,via_atc,adb
+on property:sys.usb.config=via_bypass && property:vendor.usb.acm_enable=0 && \
+property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "via_bypass"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/via_ets.gs0 /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/via_atc.gs0 /config/usb_gadget/g1/configs/b.1/f3
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=via_bypass,adb && property:vendor.usb.acm_cnt=0 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2032
+on property:sys.usb.config=via_bypass,adb && property:vendor.usb.acm_cnt=1 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2034
+ setprop vendor.usb.acm_port1 ""
+on property:sys.usb.config=via_bypass,adb && property:vendor.usb.acm_cnt=2 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2050
+
+on property:sys.usb.config=via_bypass,adb && property:sys.usb.configfs=1
+ start adbd
+
+##via_modem,via_ets,via_atc,adb,acm
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=via_bypass,adb && \
+property:vendor.usb.acm_enable=1 && property:vendor.usb.acm_cnt=1 && \
+property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb_acm"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/via_ets.gs0 /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/via_atc.gs0 /config/usb_gadget/g1/configs/b.1/f3
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f5
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+##via_modem,acm,adb
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=via_bypass,adb && \
+property:vendor.usb.acm_enable=1 && property:vendor.usb.acm_cnt=2 && \
+property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb_acm2"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+##via_modem,via_ets,via_atc,adb
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=via_bypass,adb && \
+property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/via_ets.gs0 /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/via_atc.gs0 /config/usb_gadget/g1/configs/b.1/f3
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+### main function : mass_storage ###
+on property:sys.usb.config=mass_storage && property:vendor.usb.acm_cnt=0 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2002
+on property:sys.usb.config=mass_storage && property:vendor.usb.acm_cnt=1 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x200F
+ setprop vendor.usb.acm_port1 ""
+on property:sys.usb.config=mass_storage && property:vendor.usb.acm_cnt=2 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x202D
+
+on property:sys.usb.config=mass_storage && property:vendor.usb.acm_enable=1 && \
+property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_acm"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=mass_storage && property:vendor.usb.acm_enable=0 && \
+property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=mass_storage,adb && property:vendor.usb.acm_cnt=0 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2003
+on property:sys.usb.config=mass_storage,adb && property:vendor.usb.acm_cnt=1 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2006
+ setprop vendor.usb.acm_port1 ""
+on property:sys.usb.config=mass_storage,adb && property:vendor.usb.acm_cnt=2 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2029
+
+on property:sys.usb.config=mass_storage,adb && property:sys.usb.configfs=1
+ start adbd
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mass_storage,adb && \
+property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_adb_acm"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mass_storage,adb && \
+property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_adb"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+### main function : bicr ###
+on property:sys.usb.config=bicr && property:vendor.usb.acm_cnt=0 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2002
+on property:sys.usb.config=bicr && property:vendor.usb.acm_cnt=1 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x200F
+ setprop vendor.usb.acm_port1 ""
+on property:sys.usb.config=bicr && property:vendor.usb.acm_cnt=2 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x202D
+
+on property:sys.usb.config=bicr && property:vendor.usb.acm_enable=1 && \
+property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_acm"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom 1
+ write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file "/dev/block/loop0"
+ symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=bicr && property:vendor.usb.acm_enable=0 && \
+property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom 1
+ write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file "/dev/block/loop0"
+ symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=bicr,adb && property:vendor.usb.acm_cnt=0 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2003
+on property:sys.usb.config=bicr,adb && property:vendor.usb.acm_cnt=1 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2006
+ setprop vendor.usb.acm_port1 ""
+on property:sys.usb.config=bicr,adb && property:vendor.usb.acm_cnt=2 && \
+property:sys.usb.configfs=1
+ setprop vendor.usb.pid 0x2029
+
+on property:sys.usb.config=bicr,adb && property:sys.usb.configfs=1
+ start adbd
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=bicr,adb && \
+property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_adb_acm"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom 1
+ write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file "/dev/block/loop0"
+ symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
+ symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=bicr,adb && \
+property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_adb"
+ write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
+ write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom 1
+ write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file "/dev/block/loop0"
+ symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+
+### ACM APPEND SERIES ###
+on property:persist.vendor.radio.port_index="0" && property:sys.boot_completed=1
+ setprop vendor.usb.acm_idx ""
+ setprop vendor.usb.acm_cnt 0
+ setprop vendor.usb.acm_enable 0
+ setprop sys.usb.config none
+ setprop sys.usb.config ${sys.usb.state}
+
+on property:persist.vendor.radio.port_index="1" && property:sys.boot_completed=1
+ setprop sys.usb.config acm_gs0
+on property:sys.usb.config=mass_storage,adb,acm
+ setprop sys.usb.config acm_gs0
+on property:sys.usb.config=acm_gs0
+ setprop vendor.usb.acm_port0 0
+ setprop vendor.usb.acm_port1 ""
+ setprop vendor.usb.acm_cnt 1
+ setprop vendor.usb.acm_enable 1
+ setprop sys.usb.config none
+ setprop sys.usb.config ${sys.usb.state}
+ setprop vendor.usb.acm_idx "1"
+
+on property:persist.vendor.radio.port_index="2" && property:sys.boot_completed=1
+ setprop sys.usb.config acm_gs1
+on property:sys.usb.config=acm_gs1
+ setprop vendor.usb.acm_port0 1
+ setprop vendor.usb.acm_port1 ""
+ setprop vendor.usb.acm_cnt 1
+ setprop vendor.usb.acm_enable 1
+ setprop sys.usb.config none
+ setprop sys.usb.config ${sys.usb.state}
+ setprop vendor.usb.acm_idx "2"
+
+on property:persist.vendor.radio.port_index="3" && property:sys.boot_completed=1
+ setprop sys.usb.config acm_gs2
+on property:sys.usb.config=acm_third
+ setprop sys.usb.config acm_gs2
+on property:sys.usb.config=acm_gs2
+ setprop vendor.usb.acm_port0 2
+ setprop vendor.usb.acm_port1 ""
+ setprop vendor.usb.acm_cnt 1
+ setprop vendor.usb.acm_enable 1
+ setprop sys.usb.config none
+ setprop sys.usb.config ${sys.usb.state}
+ setprop vendor.usb.acm_idx "3"
+
+on property:persist.vendor.radio.port_index="4" && property:sys.boot_completed=1
+ setprop sys.usb.config acm_gs3
+on property:sys.usb.config=gs3
+ setprop sys.usb.config acm_gs3
+on property:sys.usb.config=mtp,gs3
+ setprop sys.usb.config acm_gs3
+on property:sys.usb.config=acm_gs3
+ setprop vendor.usb.acm_port0 3
+ setprop vendor.usb.acm_port1 ""
+ setprop vendor.usb.acm_cnt 1
+ setprop vendor.usb.acm_enable 1
+ setprop sys.usb.config none
+ setprop sys.usb.config ${sys.usb.state}
+ setprop vendor.usb.acm_idx "4"
+
+on property:sys.usb.config=mtp,gs0gs1
+ setprop sys.usb.config acm_gs0gs1
+on property:sys.usb.config=gs0gs1
+ setprop sys.usb.config acm_gs0gs1
+on property:sys.usb.config=rndis,gs0gs1
+ setprop sys.usb.config acm_gs0gs1
+on property:sys.usb.config=rndis,adb,gs0gs1
+ setprop sys.usb.config acm_gs0gs1
+on property:sys.usb.config=acm_gs0gs1
+ setprop vendor.usb.acm_port0 0
+ setprop vendor.usb.acm_port1 1
+ setprop vendor.usb.acm_cnt 2
+ setprop vendor.usb.acm_enable 1
+ setprop sys.usb.config none
+ setprop sys.usb.config ${sys.usb.state}
+ setprop vendor.usb.acm_idx "1,2"
+
+on property:sys.usb.config=gs3,dual_acm
+ setprop sys.usb.config acm_gs0gs3
+on property:sys.usb.config=mtp,gs3,dual_acm
+ setprop sys.usb.config acm_gs0gs3
+on property:sys.usb.config=mtp,gs0gs3
+ setprop sys.usb.config acm_gs0gs3
+on property:sys.usb.config=gs0gs3
+ setprop sys.usb.config acm_gs0gs3
+on property:sys.usb.config=rndis,gs0gs3
+ setprop sys.usb.config acm_gs0gs3
+on property:sys.usb.config=rndis,adb,gs0gs3
+ setprop sys.usb.config acm_gs0gs3
+on property:sys.usb.config=acm_gs0gs3
+ setprop vendor.usb.acm_port0 0
+ setprop vendor.usb.acm_port1 3
+ setprop vendor.usb.acm_cnt 2
+ setprop vendor.usb.acm_enable 1
+ setprop sys.usb.config none
+ setprop sys.usb.config ${sys.usb.state}
+ setprop vendor.usb.acm_idx "1,4"
+
+on property:sys.usb.config=gs1gs3
+ setprop sys.usb.config acm_gs1gs3
+on property:sys.usb.config=mtp,gs1gs3
+ setprop sys.usb.config acm_gs1gs3
+on property:sys.usb.config=via_bypass,gs1gs3
+ setprop sys.usb.config acm_gs1gs3
+on property:sys.usb.config=rndis,gs1gs3
+ setprop sys.usb.config acm_gs1gs3
+on property:sys.usb.config=acm_gs1gs3
+ setprop vendor.usb.acm_port0 1
+ setprop vendor.usb.acm_port1 3
+ setprop vendor.usb.acm_cnt 2
+ setprop vendor.usb.acm_enable 1
+ setprop sys.usb.config none
+ setprop sys.usb.config ${sys.usb.state}
+ setprop vendor.usb.acm_idx "2,4"
+
+# For ATM (Android Test Mode)
+on property:vendor.usb.clear=1 && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/UDC "none"
+ write /config/usb_gadget/g1/bDeviceClass 0
+ write /config/usb_gadget/g1/bDeviceSubClass 0
+ write /config/usb_gadget/g1/bDeviceProtocol 0
+ rm /config/usb_gadget/g1/configs/b.1/f1
+ rm /config/usb_gadget/g1/configs/b.1/f2
+ rm /config/usb_gadget/g1/configs/b.1/f3
+ rm /config/usb_gadget/g1/configs/b.1/f4
+ rm /config/usb_gadget/g1/configs/b.1/f5
+ rmdir /config/usb_gadget/g1/functions/mtk_rndis.gs4
+ write /sys/devices/platform/soc/mt_usb/saving 0
+ setprop vendor.usb.clear 2
+
+# has permission issue when read from ${sys.usb.ffs.ready}
+on property:sys.usb.ffs.ready=0
+ setprop vendor.usb.ffs.ready 0
+on property:sys.usb.ffs.ready=1
+ setprop vendor.usb.ffs.ready 1
+
+on property:sys.usb.config=atm_gs0 && property:sys.usb.configfs=1
+ stop adbd
+ setprop vendor.usb.ffs.ready 0
+ setprop vendor.usb.clear 1
+
+on property:vendor.usb.ffs.ready=0 && property:sys.usb.config=atm_gs0 && \
+property:vendor.usb.clear=2 && property:sys.usb.configfs=1
+ start adbd
+
+on property:vendor.usb.ffs.ready=1 && property:sys.usb.config=atm_gs0 && \
+property:vendor.usb.clear=2 && property:sys.usb.configfs=1
+ setprop vendor.usb.acm_port0 0
+ setprop vendor.usb.acm_port1 ""
+ setprop vendor.usb.acm_cnt 1
+ setprop vendor.usb.acm_enable 1
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "atm_gs0"
+ write /config/usb_gadget/g1/idProduct 0x200A
+ symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ #setprop sys.usb.state ${sys.usb.config}
+ setprop vendor.usb.pid 0x200A
+ #setprop vendor.usb.clear 0
+ setprop vendor.usb.acm_idx "1"
+
+on property:sys.usb.config=atm_gs0gs3 && property:sys.usb.configfs=1
+ stop adbd
+ setprop vendor.usb.ffs.ready 0
+ setprop vendor.usb.clear 1
+
+on property:vendor.usb.ffs.ready=0 && property:sys.usb.config=atm_gs0gs3 && \
+property:vendor.usb.clear=2 && property:sys.usb.configfs=1
+ start adbd
+
+on property:vendor.usb.ffs.ready=1 && property:sys.usb.config=atm_gs0gs3 && \
+property:vendor.usb.clear=2 && property:sys.usb.configfs=1
+ setprop vendor.usb.acm_port0 0
+ setprop vendor.usb.acm_port1 3
+ setprop vendor.usb.acm_cnt 2
+ setprop vendor.usb.acm_enable 1
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ write /config/usb_gadget/g1/idProduct 0x2026
+ symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
+ symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ #setprop sys.usb.state ${sys.usb.config}
+ setprop vendor.usb.pid 0x2026
+ #setprop vendor.usb.clear 0
+ setprop vendor.usb.acm_idx "1,4"
+
+### CHARGING ###
+on property:sys.usb.config=cdp && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp"
+ write /config/usb_gadget/g1/idProduct 0x2008
+ write /config/usb_gadget/g1/os_desc/use 1
+ symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
+ write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
+ setprop sys.usb.state ${sys.usb.config}
+ setprop vendor.usb.pid 0x2008
+
+on property:sys.usb.config=charging_yes
+ setprop vendor.usb.charging yes
+ setprop sys.usb.config none
+ setprop sys.usb.config ${sys.usb.state}
+
+on property:sys.usb.config=charging_no
+ setprop sys.usb.config none
+ setprop sys.usb.config ${sys.usb.state}
+ setprop vendor.usb.charging no
+
+on property:vendor.usb.charging=yes
+ write /sys/class/udc/musb-hdrc/device/cmode 0
+on property:vendor.usb.charging=no
+ write /sys/class/udc/musb-hdrc/device/cmode 1
+
+on property:vendor.usb.bicr=yes
+ write /sys/class/android_usb/android0/f_mass_storage/bicr 1
+ write /sys/class/android_usb/android0/f_mass_storage/lun/file "/dev/block/loop0"
+on property:vendor.usb.bicr=no
+ write /sys/class/android_usb/android0/f_mass_storage/bicr 0
+ write /sys/class/android_usb/android0/f_mass_storage/lun/file "off"
+
+on property:vendor.usb.port.mode=usb
+ write /sys/devices/platform/soc/mt_usb/portmode 0
+on property:vendor.usb.port.mode=uart
+ write /sys/devices/platform/soc/mt_usb/portmode 1
+on property:vendor.em.usb.set=term_sel
+ write /proc/mtk_usb/usb-phy0/u2_phy/term_sel ${vendor.em.usb.value}
+on property:vendor.em.usb.set=vrt_sel
+ write /proc/mtk_usb/usb-phy0/u2_phy/vrt_sel ${vendor.em.usb.value}
+on property:vendor.em.usb.set=phy_rev6
+ write /proc/mtk_usb/usb-phy0/u2_phy/phy_rev6 ${vendor.em.usb.value}
+on property:vendor.em.usb.set=discth
+ write /proc/mtk_usb/usb-phy0/u2_phy/discth ${vendor.em.usb.value}
+
+on property:vendor.em.usb.bypass.enable=0
+ write /sys/class/usb_rawbulk/gps/enable 1
+on property:vendor.em.usb.bypass.enable=1
+ write /sys/class/usb_rawbulk/pcv/enable 1
+on property:vendor.em.usb.bypass.enable=2
+ write /sys/class/usb_rawbulk/atc/enable 1
+on property:vendor.em.usb.bypass.enable=3
+ write /sys/class/usb_rawbulk/ets/enable 1
+on property:vendor.em.usb.bypass.enable=4
+ write /sys/class/usb_rawbulk/data/enable 1
+on property:vendor.em.usb.bypass.disable=0
+ write /sys/class/usb_rawbulk/gps/enable 0
+on property:vendor.em.usb.bypass.disable=1
+ write /sys/class/usb_rawbulk/pcv/enable 0
+on property:vendor.em.usb.bypass.disable=2
+ write /sys/class/usb_rawbulk/atc/enable 0
+on property:vendor.em.usb.bypass.disable=3
+ write /sys/class/usb_rawbulk/ets/enable 0
+on property:vendor.em.usb.bypass.disable=4
+ write /sys/class/usb_rawbulk/data/enable 0
+
+### vendor process start ###
+on property:vendor.usb.config=*
+ setprop sys.usb.config ${vendor.usb.config}
+### vendor process end ###
+
+### test command start ###
+on property:vendor.usb.test=*
+ setprop sys.usb.config none
+ setprop sys.usb.config ${vendor.usb.test}
+### test command end ###
+
+on property:vendor.usb.printk=*
+ write /proc/sys/kernel/printk ${vendor.usb.printk}
+
+on property:persist.vendor.usb.printk=*
+ setprop vendor.usb.printk ${persist.vendor.usb.printk}
+
+on property:vendor.usb.speed.mode=u3
+ write /sys/class/udc/${vendor.usb.controller}/device/max_speed super-speed
+ write /sys/class/udc/${vendor.usb.controller}/device/mode 0
+ write /sys/class/udc/${vendor.usb.controller}/device/mode 1
+
+on property:vendor.usb.speed.mode=u2
+ write /sys/class/udc/${vendor.usb.controller}/device/max_speed high-speed
+ write /sys/class/udc/${vendor.usb.controller}/device/mode 0
+ write /sys/class/udc/${vendor.usb.controller}/device/mode 1
+
+on property:persist.vendor.usb.speed.mode=u3
+ write /sys/class/udc/${vendor.usb.controller}/device/max_speed super-speed
+ write /sys/class/udc/${vendor.usb.controller}/device/mode 0
+ write /sys/class/udc/${vendor.usb.controller}/device/mode 1
+
+on property:persist.vendor.usb.speed.mode=u2
+ write /sys/class/udc/${vendor.usb.controller}/device/max_speed high-speed
+ write /sys/class/udc/${vendor.usb.controller}/device/mode 0
+ write /sys/class/udc/${vendor.usb.controller}/device/mode 1
+
+on property:vendor.usb.sib_enable=1
+ write /proc/mtk_usb/usb-phy0/u3_phy/sib 1
+
+on property:vendor.usb.sib_enable=0
+ write /proc/mtk_usb/usb-phy0/u3_phy/sib 0
+
+on property:vendor.usb.testmode=0
+ write /proc/mtk_usb/xhci0/testmode "0"
+on property:vendor.usb.testmode=1
+ write /proc/mtk_usb/xhci0/testmode "test SE0 NAK"
+on property:vendor.usb.testmode=2
+ write /proc/mtk_usb/xhci0/testmode "test J"
+on property:vendor.usb.testmode=3
+ write /proc/mtk_usb/xhci0/testmode "test K"
+on property:vendor.usb.testmode=4
+ write /proc/mtk_usb/xhci0/testmode "test packet"
+
+on property:vendor.usb.device.wakeup=*
+ write ${vendor.usb.device.wakeup} "enabled"
+
+### PLATFORM VARIANT, cat $rc_file | grep write | sort | grep -vE "android0|usb20_phy" | awk '{print $2}' | uniq ###
diff --git a/rootdir/etc/init.mtkgki.rc b/rootdir/etc/init.mtkgki.rc
new file mode 100644
index 0000000..3bda127
--- /dev/null
+++ b/rootdir/etc/init.mtkgki.rc
@@ -0,0 +1,11 @@
+service insmod_sh /vendor/bin/init.insmod.sh /vendor/etc/init.insmod.${ro.hardware}.cfg
+ class main
+ user root
+ group root system
+ disabled
+ oneshot
+
+on early-init
+ setprop vendor.all.modules.ready 0
+ write /proc/bootprof "modprobe: Load_Module_START"
+ start insmod_sh
diff --git a/rootdir/etc/init.project.rc b/rootdir/etc/init.project.rc
new file mode 100644
index 0000000..065748d
--- /dev/null
+++ b/rootdir/etc/init.project.rc
@@ -0,0 +1,61 @@
+import /vendor/etc/init/hw/init.mtkgki.rc
+
+# MTK project .rc configure
+
+on init
+ mkdir /mnt/media_rw/usbotg 0700 media_rw media_rw
+ mkdir /storage/usbotg 0700 root root
+
+on post-fs-data
+
+#Camera
+ chmod 0660 /dev/MAINAF
+ chown system camera /dev/MAINAF
+
+ chmod 0660 /dev/MAINAF2
+ chown system camera /dev/MAINAF2
+
+ chmod 0660 /dev/SUBAF
+ chown system camera /dev/SUBAF
+
+ chmod 0660 /dev/GAF001AF
+ chown system camera /dev/GAF001AF
+
+ chmod 0660 /dev/DW9714AF
+ chown system camera /dev/DW9714AF
+
+ chmod 0660 /dev/LC898212AF
+ chown system camera /dev/LC898212AF
+
+ chmod 0660 /dev/BU64745GWZAF
+ chown system camera /dev/BU64745GWZAF
+
+#SMB
+ chown system system /proc/smb/ScreenComm
+ chmod 0660 /proc/smb/ScreenComm
+
+ chmod 0660 /dev/spm
+ chown system system /dev/spm
+
+
+on init
+ # Refer to http://source.android.com/devices/tech/storage/index.html
+ # It said, "Starting in Android 4.4, multiple external storage devices are surfaced to developers through
+ # Context.getExternalFilesDirs(), Context.getExternalCacheDirs(), and Context.getObbDirs().
+ # External storage devices surfaced through these APIs must be a semi-permanent part of the device (such as an SD card slot in a battery compartment).
+ # Developers expect data stored in these locations to be available over long periods of time."
+ # Therefore, if the target doesn't support sd hot-plugging (Ex: the SD card slot in a battery compartment), we need to export SECONDARY_STORAGE in 'boot' section
+ #
+ # export SECONDARY_STORAGE /storage/sdcard1
+
+service fuse_usbotg /system/bin/sdcard -u 1023 -g 1023 -w 1023 -d /mnt/media_rw/usbotg /storage/usbotg
+ class late_start
+ disabled
+
+# start mmstat
+on property:sys.boot_completed=1
+ mkdir /sys/kernel/tracing/instances/mmstat 711
+ write /sys/kernel/tracing/instances/mmstat/tracing_on 0
+ write /sys/kernel/tracing/instances/mmstat/buffer_size_kb 16
+ write /sys/kernel/tracing/instances/mmstat/events/mmstat/enable 1
+ write /sys/kernel/tracing/instances/mmstat/tracing_on 1
diff --git a/rootdir/etc/init.sensor_2_0.rc b/rootdir/etc/init.sensor_2_0.rc
new file mode 100644
index 0000000..0c50656
--- /dev/null
+++ b/rootdir/etc/init.sensor_2_0.rc
@@ -0,0 +1,7 @@
+# MTK platform .rc configure
+on post-fs-data
+ # calibration
+ mkdir /data/vendor/sensor 0774 system system
+ # Sensor
+ chmod 0660 /dev/hf_manager
+ chown system system /dev/hf_manager
diff --git a/rootdir/etc/init_connectivity.rc b/rootdir/etc/init_connectivity.rc
new file mode 100644
index 0000000..5786763
--- /dev/null
+++ b/rootdir/etc/init_connectivity.rc
@@ -0,0 +1,46 @@
+# MTK connectivity .rc configure
+
+on post-fs-data
+ mkdir /data/vendor/stp_dump 0755 system system
+ mkdir /data/vendor/connsyslog 0755 system system
+
+on boot
+
+# WMT
+service wmt_loader /vendor/bin/wmt_loader
+ class early_hal
+ user system
+ group system
+ oneshot
+
+service wmt_launcher /vendor/bin/wmt_launcher -p /vendor/firmware/ -o 1
+ class early_hal
+ user system
+ group system
+
+on property:ro.build.type=eng
+ write /sys/kernel/debug/tracing/tracing_on 1
+
+on property:persist.vendor.connsys.coredump.mode=1
+ start stp_dump
+
+on property:persist.vendor.connsys.coredump.mode=2
+ start stp_dump
+
+on property:persist.vendor.connsys.coredump.mode=0
+ stop stp_dump
+
+on property:vendor.connsys.driver.ready=yes && property:persist.vendor.connsys.coredump.mode=*
+ write /proc/driver/wmt_user_proc "0x1 ${persist.vendor.connsys.coredump.mode}"
+
+on property:vendor.connsys.driver.ready=yes && property:debug.vendor.connsys.suspend.alarm=*
+ write /proc/driver/wmt_user_proc "0x2 ${debug.vendor.connsys.suspend.alarm}"
+
+on property:persist.vendor.em.dy.debug=1
+ setprop persist.vendor.connsys.coredump.mode 0
+
+service stp_dump /vendor/bin/stp_dump3
+ user system
+ group system sdcard_rw misc
+ class core
+ disabled
diff --git a/rootdir/etc/meta_init.connectivity.common.rc b/rootdir/etc/meta_init.connectivity.common.rc
new file mode 100644
index 0000000..2bd4ab1
--- /dev/null
+++ b/rootdir/etc/meta_init.connectivity.common.rc
@@ -0,0 +1,80 @@
+#INTERNAL_START
+on post-fs-data
+#
+# Connectivity related modules and character device nodes (Begin)
+#
+
+#/dev/ttyMT2 for Connectivity BT/FM/GPS usage
+ chmod 0660 /dev/ttyMT2
+ chown system system /dev/ttyMT2
+
+# GPS
+ mkdir /data/vendor/gps 0770 gps system
+ mkdir /data/vendor/log 0770 gps system
+ mkdir /data/vendor/log/gps 0770 gps system
+
+# GPS EMI
+ chmod 666 /dev/gps_emi
+
+# WiFi
+ mkdir /data/misc/wifi 0770 wifi wifi
+ mkdir /data/misc/wifi/sockets 0770 wifi wifi
+ mkdir /data/misc/wpa_supplicant 0770 wifi wifi
+
+#
+# Connectivity related device nodes & configuration (end)
+#
+
+
+on boot
+
+#
+# Connectivity related services (Begin)
+#
+
+# GPS
+service mnld /vendor/bin/mnld 1Hz=y meta log_ctrl
+ class main
+ user gps
+ group gps inet misc sdcard_rw sdcard_r media_rw system radio wakelock
+ socket mnld stream 660 gps system
+
+#service BGW /vendor/bin/BGW
+# user system
+# group gps system radio
+# class main
+
+#
+# Connectivity related services (End)
+#
+
+#
+# Connectivity related kernel objects (Begin)
+#
+
+# load connfem driver
+on boot
+ insmod /vendor/lib/modules/connfem.ko
+
+# load bt_drv
+on property:vendor.connsys.driver.ready=yes
+ insmod /vendor/lib/modules/bt_drv_${ro.vendor.bt.platform}.ko
+
+# load wifi chrdev driver and wlan driver after wmt_loader finish
+on property:vendor.connsys.driver.ready=yes
+ insmod /vendor/lib/modules/${ro.vendor.wlan.chrdev}.ko
+ insmod /vendor/lib/modules/wlan_drv_${ro.vendor.wlan.gen}.ko
+
+# load fmradio_drv
+on property:vendor.connsys.driver.ready=yes
+ insmod /vendor/lib/modules/fmradio_drv_${ro.vendor.fm.platform}.ko
+
+# load gps_drv
+on property:vendor.connsys.driver.ready=yes
+ insmod /vendor/lib/modules/${ro.vendor.gps.chrdev}.ko
+
+#
+# Connectivity related kernel objects (End)
+#
+
+#INTERNAL_END
diff --git a/rootdir/etc/meta_init.connectivity.rc b/rootdir/etc/meta_init.connectivity.rc
new file mode 100644
index 0000000..b5d7c0a
--- /dev/null
+++ b/rootdir/etc/meta_init.connectivity.rc
@@ -0,0 +1,37 @@
+import /vendor/etc/init/hw/meta_init.connectivity.common.rc
+
+#INTERNAL_START
+
+on boot
+
+#
+# Connectivity related services (Begin)
+#
+
+# WMT
+service wmt_loader /vendor/bin/wmt_loader
+ user system
+ group system
+ oneshot
+
+service wmt_launcher /vendor/bin/wmt_launcher -p /vendor/firmware/
+ user system
+ group system
+
+#
+# Connectivity related services (End)
+#
+
+#
+# Connectivity related kernel objects (Begin)
+#
+
+# load wmt_drv
+on boot
+ insmod /vendor/lib/modules/wmt_drv.ko
+
+#
+# Connectivity related kernel objects (End)
+#
+
+#INTERNAL_END
diff --git a/rootdir/etc/meta_init.modem.rc b/rootdir/etc/meta_init.modem.rc
new file mode 100644
index 0000000..7d69c5a
--- /dev/null
+++ b/rootdir/etc/meta_init.modem.rc
@@ -0,0 +1,39 @@
+# Copyright (C) 2012 The Android Open Source Project
+#
+# IMPORTANT: Do not create world writable files or directories.
+# This is a common source of Android security bugs.
+#
+
+on post-fs-data
+
+ write /proc/bootprof "post-fs-data: on meta modem start"
+
+ # Modem related device nodes
+ mkdir /mnt/vendor/nvdata/md 0770 root system
+ mkdir /mnt/vendor/nvdata/md3 0770 root system
+ mkdir /data/md3 0770 root system
+
+# Build-in Modified - S
+# insmod /vendor/lib/modules/ccci_plat.ko
+# insmod /vendor/lib/modules/ccci.ko
+# Build-in Modified - E
+ chown radio radio /sys/kernel/ccci/boot
+
+#SeLinux
+ mkdir /data/ccci_cfg 0770 system radio
+ restorecon /data/ccci_cfg
+ restorecon_recursive /mnt/vendor/protect_f
+ restorecon_recursive /mnt/vendor/protect_s
+
+ # Encrypt phone function
+ setprop vold.post_fs_data_done 1
+
+service ccci_mdinit /vendor/bin/ccci_mdinit 0
+ user system
+ group radio system
+ oneshot
+
+service ccci_rpcd /vendor/bin/ccci_rpcd 0
+ user radio
+ group radio system
+ oneshot
diff --git a/rootdir/etc/meta_init.project.rc b/rootdir/etc/meta_init.project.rc
new file mode 100644
index 0000000..46e4a9d
--- /dev/null
+++ b/rootdir/etc/meta_init.project.rc
@@ -0,0 +1,15 @@
+import /vendor/etc/init/hw/init.mtkgki.rc
+
+#INTERNAL_START
+on post-fs
+
+ chmod 0660 /dev/spm
+ chown system system /dev/spm
+
+
+service spm_script /vendor/bin/spm_loader
+ user system
+ group system
+ oneshot
+#INTERNAL_END
+
diff --git a/rootdir/etc/meta_init.rc b/rootdir/etc/meta_init.rc
new file mode 100644
index 0000000..ced6dd8
--- /dev/null
+++ b/rootdir/etc/meta_init.rc
@@ -0,0 +1,378 @@
+# Copyright (C) 2012 The Android Open Source Project
+#
+# IMPORTANT: Do not create world writable files or directories.
+# This is a common source of Android security bugs.
+#
+
+# I am S vendor meta_init.rc
+
+import /vendor/etc/init/hw/init.aee.rc
+import /vendor/etc/init/trustonic.rc
+import ${ro.vendor.rc}meta_init.connectivity.rc
+import /vendor/etc/init/hw/meta_init.project.rc
+import /vendor/etc/init/microtrust.rc
+import /vendor/etc/init/android.hardware.boot@1.2-service.rc
+import /vendor/etc/init/android.hardware.boot@1.2-service-lazy.rc
+import /vendor/etc/init/android.hardware.health@2.1-service.rc
+
+#import ${ro.vendor.rc}multi_init.rc
+#phase out multi_init.rc, move related vendor rc to here.
+#start
+import /vendor/etc/init/aee_aedv.rc
+import /vendor/etc/init/aee_aedv64.rc
+import /vendor/etc/init/storageproxyd.rc
+import /vendor/etc/init/android.hardware.keymaster@3.0-service.rc
+import /vendor/etc/init/android.hardware.keymaster@3.0-service.trustonic.rc
+import /vendor/etc/init/android.hardware.keymaster@4.0-service.rc
+import /vendor/etc/init/android.hardware.keymaster@4.0-service.trustonic.rc
+import /vendor/etc/init/android.hardware.keymaster@4.0-service.beanpod.rc
+import /vendor/etc/init/android.hardware.keymaster@4.0-service.beanpod.lite.rc
+import /vendor/etc/init/android.hardware.keymaster@4.0-service.trustkernel.rc
+import /vendor/etc/init/android.hardware.keymaster@4.0-service.mtee.rc
+import /vendor/etc/init/android.hardware.keymaster@4.1-service.rc
+import /vendor/etc/init/android.hardware.keymaster@4.1-service.trustonic.rc
+import /vendor/etc/init/android.hardware.keymaster@4.1-service.beanpod.rc
+import /vendor/etc/init/android.hardware.keymaster@4.1-service.beanpod.lite.rc
+import /vendor/etc/init/android.hardware.keymaster@4.1-service.trustkernel.rc
+import /vendor/etc/init/android.hardware.security.keymint-service.rc
+#import /vendor/etc/init/vendor.mediatek.hardware.keyinstall@1.0-service.rc
+import /vendor/etc/init/vendor.mediatek.hardware.keymanage@1.0-service.rc
+import /vendor/etc/init/android.hardware.audio.service.mediatek.rc
+import /vendor/etc/init/vendor.mediatek.hardware.keymaster_attestation@1.1-service.rc
+import /vendor/etc/init/android.hardware.nfc@1.2-service-st.rc
+import /vendor/etc/init/tee.rc
+import /vendor/etc/init/vendor.mediatek.hardware.nvram@1.1-sevice.rc
+import /vendor/etc/init/vendor.mediatek.hardware.nvram@1.1-sevice-lazy.rc
+import /vendor/etc/init/android.hardware.light@2.0-service-mediatek.rc
+import /vendor/etc/init/android.hardware.light@2.0-service-mediatek-lazy.rc
+import /vendor/etc/init/lights-mtk-default.rc
+import /vendor/etc/init/lights-mtk-lazy.rc
+import /vendor/etc/init/merged_hal_service.rc
+import /vendor/etc/init/spm_script.rc
+import /vendor/etc/init/nvram_daemon.rc
+import /vendor/etc/init/microtrust.bp_kmsetkey_ca.rc
+import /vendor/etc/init/vendor.microtrust.hardware.thh@2.0-service.rc
+import /vendor/etc/init/microtrust.init_thh.rc
+#end
+
+#Make sure meta_init.modem.rc is the last rc file.
+import ${ro.vendor.rc}meta_init.modem.rc
+
+
+on early-init
+ write /proc/bootprof "INIT:early-init"
+ # Set init and its forked children's oom_adj.
+ write /proc/1/oom_score_adj -1000
+
+#INTERNAL_START
+ mount debugfs debugfs /sys/kernel/debug
+ chmod 0755 /sys/kernel/debug
+#INTERNAL_END
+
+ # initialize vendor.all.modules.ready to 1 here to prevent NOT GKI project blocked
+ setprop vendor.all.modules.ready 1
+
+on init
+ write /proc/bootprof "INIT:init"
+ write /proc/bootprof "INIT: on init mt6855 start"
+
+ # Backward compatibility.
+ symlink /system/bin /bin
+ symlink /system/etc /etc
+
+ # Backward compatibility.
+ symlink /sys/kernel/debug /d
+
+ # Link /vendor to /system/vendor for devices without a vendor partition.
+ symlink /system/vendor /vendor
+
+# Temp Backward compatibility
+ symlink /dev/block/by-name/boot /dev/bootimg
+ symlink /dev/block/by-name/recovery /dev/recovery
+ symlink /dev/block/by-name/secro /dev/sec_ro
+ symlink /dev/block/by-name/kb /dev/kb
+ symlink /dev/block/by-name/dkb /dev/dkb
+ symlink /dev/block/by-name/seccfg /dev/seccfg
+ symlink /dev/block/by-name/proinfo /dev/pro_info
+ symlink /dev/block/by-name/nvram /dev/nvram
+ symlink /dev/block/by-name/para /dev/misc
+ symlink /dev/block/by-name/logo /dev/logo
+
+ # Support legacy paths
+ symlink /sdcard /mnt/sdcard
+
+
+#INTERNAL_START
+ symlink /sdcard /mnt/sdcard
+
+ mkdir /mnt/cd-rom 0000 system system
+#INTERNAL_END
+
+ start hidl_memory
+
+
+# Load properties from /system/ + /factory after fs mount.
+on load_system_props_action
+ load_system_props
+
+
+ # avoid no log in meta mode due to logd-reinit
+ # stop keyinstall-1-0
+ # start keyinstall-1-0
+
+
+on fs
+ ## USB configfs
+ mkdir /dev/usb-ffs 0770 shell shell
+ mkdir /dev/usb-ffs/adb 0770 shell shell
+ mkdir /config/usb_gadget/g1 0770 shell shell
+ write /config/usb_gadget/g1/idVendor 0x0E8D
+ write /config/usb_gadget/g1/bcdDevice 0xFFFF
+ write /config/usb_gadget/g1/bcdUSB 0x0200
+ mkdir /config/usb_gadget/g1/strings/0x409 0770
+ write /config/usb_gadget/g1/strings/0x409/manufacturer "Android"
+ write /config/usb_gadget/g1/strings/0x409/product "Android"
+ write /config/usb_gadget/g1/bDeviceClass 0
+ write /config/usb_gadget/g1/bDeviceSubClass 0
+ write /config/usb_gadget/g1/bDeviceProtocol 0
+ mkdir /config/usb_gadget/g1/functions/mass_storage.usb0
+ mkdir /config/usb_gadget/g1/functions/ffs.adb
+ mkdir /config/usb_gadget/g1/functions/acm.gs0
+ mkdir /config/usb_gadget/g1/functions/acm.gs1
+ mkdir /config/usb_gadget/g1/functions/acm.gs2
+ mkdir /config/usb_gadget/g1/functions/acm.gs3
+ mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell
+ mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell
+ write /config/usb_gadget/g1/configs/b.1/MaxPower 500
+ symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
+ setprop vendor.usb.feature 0
+
+#INTERNAL_START
+ write /proc/bootprof "INIT:Mount_START"
+
+ start vendor.boot-hal-1-2
+ mount_all --early
+ write /proc/bootprof "INIT:Mount_END"
+#INTERNAL_END
+
+on post-fs
+ # start keyinstall-1-0
+ start vendor.light-default
+ start merged_hal_service
+ start health-hal-2-1
+
+ # Support legacy paths
+ symlink /sdcard /storage/sdcard0
+
+
+#INTERNAL_START
+ chown system system /mnt/vendor/protect_f
+ chmod 0770 /mnt/vendor/protect_f
+
+ chown system system /mnt/vendor/protect_s
+ chmod 0770 /mnt/vendor/protect_s
+
+ chown system system /mnt/vendor/nvcfg
+ chmod 0771 /mnt/vendor/nvcfg
+ restorecon_recursive /mnt/vendor/nvcfg
+
+ chown root system /mnt/vendor/nvdata
+ chmod 0771 /mnt/vendor/nvdata
+ mkdir /mnt/vendor/nvdata/media 0771 media audio
+ restorecon_recursive /mnt/vendor/nvdata
+
+#INTERNAL_END
+
+on late-fs
+ start keystore2
+ start vendor.keymaster-3-0
+ start vendor.keymaster-3-0-trustonic
+ start vendor.keymaster-4-0
+ start vendor.keymaster-4-0-trustonic
+ start vendor.keymaster-4-0-beanpod
+ start vendor.keymaster-4-1
+ start vendor.keymaster-4-1-trustonic
+ start vendor.keymaster-4-1-beanpod
+ start vendor.keymint-default
+ start vendor.keymint-trustonic
+ start vendor.keymint-beanpod
+ start keymaster_attestation-1-1
+ exec_start wait_for_keymaster
+ mount_all --late
+
+on post-fs-data
+ write /proc/bootprof "INIT:post-fs-data"
+ wait_for_prop vendor.all.modules.ready 1
+ write /proc/bootprof "modprobe: Load_Module_DONE"
+
+ #Thermal
+ mkdir /data/.tp/ 0775 system system
+
+#INTERNAL_START
+ # WiFi
+ mkdir /data/misc/wifi 0770 system wifi
+ mkdir /data/misc/wifi/sockets 0770 system wifi
+ mkdir /data/misc/dhcp 0770 dhcp dhcp
+ chown dhcp dhcp /data/misc/dhcp
+ #give system access to rfkill device node
+ chmod 0660 /dev/rfkill
+
+ # RTC
+ mkdir /data/misc/rtc 0770 system system
+
+ # Android SEC related device nodes
+ chmod 0660 /dev/sec
+ chown root system /dev/sec
+
+ #change partition permission
+ exec /vendor/etc/partition_permission.sh
+
+ chmod 0666 /dev/exm0
+#INTERNAL_END
+
+on boot
+ # For backlight
+ chmod 0664 /sys/class/leds/lcd-backlight/brightness
+ chown system system /sys/class/leds/lcd-backlight/brightness
+
+#INTERNAL_START
+ class_start default
+#INTERNAL_END
+
+#USB configfs
+ mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
+ chown system radio /dev/ttyGS3
+ chmod 0660 /dev/ttyGS3
+ setprop sys.usb.configfs 1
+ setprop sys.usb.ffs.aio_compat 0
+
+
+# One shot invocation to encrypt unencrypted volumes
+# mtk modification:
+# To speed up the booting in meta/factory mode, we don't encrypt the device.
+# And then handle it as 'unencrypted' state.
+on encrypt
+ mount ext4 /dev/block/by-name/userdata /data noatime nosuid nodev noauto_da_alloc discard wait
+ setprop vendor.crypto.fake_encrypt 1
+ setprop vold.post_fs_data_done 0
+ trigger post-fs-data
+on property:vendor.crypto.fake_encrypt=1 && property:vold.post_fs_data_done=1
+ trigger load_persist_props_action
+ # setprop ro.crypto.state unencrypted
+ setprop vendor.soter.teei.crypto.state unencrypted
+ exec_start update_verifier
+ class_start main
+ class_start late_start
+ start mount_all_storages
+
+
+#Log too much setting
+on property:ro.vendor.mtklog_internal=1
+ setprop vendor.logmuch.value 10000
+
+
+#INTERNAL_START
+
+service thermal_manager /vendor/bin/thermal_manager
+ user root
+ group system
+ oneshot
+
+service loghidlvendorservice /vendor/bin/loghidlvendorservice
+ class main
+ user shell
+ group system shell radio
+
+service meta_tst /vendor/bin/meta_tst
+ user root
+ group radio system wifi audio bluetooth media gps
+ socket meta-atci stream 660 radio system
+
+service factory_no_image /vendor/bin/factory
+ user root
+ group radio system wifi media gps audio bluetooth wakelock nfc
+ capabilities BLOCK_SUSPEND NET_RAW NET_ADMIN SYS_ADMIN SYS_BOOT
+ socket factory-atci stream 660 radio system
+
+service atcid-daemon-u /vendor/bin/atcid
+ interface vendor.mediatek.hardware.atci@1.0::IAtcid default
+ class hal
+ class core
+ socket adb_atci_socket stream 660 radio system
+ user root
+ group radio system
+ oneshot
+
+service fuelgauged /vendor/bin/fuelgauged
+ class main
+ user system
+ group system
+
+on property:vendor.mtk.factory.start=1
+ stop factory_no_image
+ start factory_no_image
+
+#META+ADB
+on property:ro.boot.usbconfig=0 && property:sys.usb.configfs=1
+ write /proc/bootprof "INIT:start adbd"
+ start adbd
+
+on property:sys.usb.ffs.ready=1 && property:ro.boot.usbconfig=0 && property:sys.usb.configfs=1 && \
+property:vendor.usb.feature=0
+ write /proc/bootprof "INIT:on property:ro.boot.usbconfig=0"
+ write /config/usb_gadget/g1/UDC "none"
+ write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_acm"
+ write /config/usb_gadget/g1/idProduct 0x200E
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f2
+ write /config/usb_gadget/g1/UDC "musb-hdrc"
+
+#META, move this to kernel driver: CONFIG_USB_CONFIGFS_MTK_FASTMETA
+on property:ro.boot.usbconfig=1 && property:sys.usb.configfs=1 && property:vendor.usb.feature=0
+ write /proc/bootprof "INIT:on property:ro.boot.usbconfig 1"
+ #write /config/usb_gadget/g1/UDC "none"
+ #write /config/usb_gadget/g1/strings/0x409/serialnumber ""
+ #write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "acm"
+ #write /config/usb_gadget/g1/idProduct 0x2007
+ #write /config/usb_gadget/g1/bDeviceClass 02
+ #symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f1
+ #write /config/usb_gadget/g1/UDC "musb-hdrc"
+
+#META+ELT, move this to kernel driver: CONFIG_USB_CONFIGFS_MTK_FASTMETA
+on property:ro.boot.usbconfig=2 && property:sys.usb.configfs=1
+ write /proc/bootprof "INIT:on property:ro.boot.usbconfig 2"
+ setprop vendor.usb.acm_idx 1,4
+ #write /config/usb_gadget/g1/UDC "none"
+ #write /config/usb_gadget/g1/strings/0x409/serialnumber $ro.serialno
+ #write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "meta_elt"
+ #write /config/usb_gadget/g1/idProduct 0x202d
+ #symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
+ #symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f2
+ #symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f3
+ #write /config/usb_gadget/g1/UDC "musb-hdrc"
+
+#META+ELT+ADB
+on property:ro.boot.usbconfig=3 && property:sys.usb.configfs=1
+ write /proc/bootprof "INIT:start adbd"
+ start adbd
+
+on property:sys.usb.ffs.ready=1 && property:ro.boot.usbconfig=3 && property:sys.usb.configfs=1
+ write /proc/bootprof "INIT:on property:ro.boot.usbconfig 3"
+ write /config/usb_gadget/g1/UDC "none"
+ write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
+ write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "meta_elt_adb"
+ write /config/usb_gadget/g1/idProduct 0x2040
+ write /sys/devices/platform/soc/mt_usb/saving 1
+ symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
+ symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+ symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
+ symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4
+ write /config/usb_gadget/g1/UDC "musb-hdrc"
+ setprop vendor.usb.acm_idx 1,4
+
+# MTK fast charging support
+on property:persist.vendor.mediatek.fast_charging.support=*
+ write /sys/devices/platform/charger/fast_chg_indicator ${persist.vendor.mediatek.fast_charging.support}
+
+#INTERNAL_END
diff --git a/rootdir/etc/meta_init.vendor.rc b/rootdir/etc/meta_init.vendor.rc
new file mode 100644
index 0000000..c0b14eb
--- /dev/null
+++ b/rootdir/etc/meta_init.vendor.rc
@@ -0,0 +1,11 @@
+# Copyright (C) 2012 The Android Open Source Project
+#
+# IMPORTANT: Do not create world writable files or directories.
+# This is a common source of Android security bugs.
+#
+
+import /vendor/etc/init/android.hardware.keymaster@4.1-service.mtee.rc
+import /vendor/etc/init/android.hardware.security.keymint-service.trustonic.rc
+import /vendor/etc/init/android.hardware.security.keymint-service.beanpod.rc
+
+import /vendor/etc/init/hw/meta_init.rc
\ No newline at end of file
diff --git a/rootdir/etc/multi_init.rc b/rootdir/etc/multi_init.rc
new file mode 100644
index 0000000..89a84fa
--- /dev/null
+++ b/rootdir/etc/multi_init.rc
@@ -0,0 +1,50 @@
+# import AOSP service related rc in meta mode and factory mode.
+#
+import /system_ext/etc/init/aee_aed.rc
+import /system_ext/etc/init/aee_aed64.rc
+import /vendor/etc/init/aee_aedv.rc
+import /vendor/etc/init/aee_aedv64.rc
+import /system/etc/init/logd.rc
+import /system/etc/init/logd_e.rc
+import /system/etc/init/logcatd.rc
+import /system/etc/init/storagemanagerd.rc
+import /system/etc/init/mobile_log_d.rc
+import /system/etc/init/android.system.suspend@1.0-service.rc
+import /system/etc/init/wait_for_keymaster.rc
+import /system/etc/init/keystore2.rc
+import /vendor/etc/init/storageproxyd.rc
+import /vendor/etc/init/android.hardware.keymaster@3.0-service.rc
+import /vendor/etc/init/android.hardware.keymaster@3.0-service.trustonic.rc
+import /vendor/etc/init/android.hardware.keymaster@4.0-service.rc
+import /vendor/etc/init/android.hardware.keymaster@4.0-service.trustonic.rc
+import /vendor/etc/init/android.hardware.keymaster@4.0-service.beanpod.rc
+import /vendor/etc/init/android.hardware.keymaster@4.0-service.beanpod.lite.rc
+import /vendor/etc/init/android.hardware.keymaster@4.0-service.trustkernel.rc
+import /vendor/etc/init/android.hardware.keymaster@4.0-service.mtee.rc
+import /vendor/etc/init/android.hardware.keymaster@4.1-service.rc
+import /vendor/etc/init/android.hardware.keymaster@4.1-service.trustonic.rc
+import /vendor/etc/init/android.hardware.keymaster@4.1-service.beanpod.rc
+import /vendor/etc/init/android.hardware.keymaster@4.1-service.beanpod.lite.rc
+import /vendor/etc/init/android.hardware.keymaster@4.1-service.trustkernel.rc
+import /vendor/etc/init/android.hardware.keymaster@4.1-service.mtee.rc
+import /vendor/etc/init/android.hardware.security.keymint-service.rc
+import /vendor/etc/init/android.hardware.security.keymint-service.trustonic.rc
+import /vendor/etc/init/android.hardware.security.keymint-service.beanpod.rc
+#import /vendor/etc/init/vendor.mediatek.hardware.keyinstall@1.0-service.rc
+import /vendor/etc/init/vendor.mediatek.hardware.keymanage@1.0-service.rc
+import /vendor/etc/init/android.hardware.audio.service.mediatek.rc
+import /vendor/etc/init/vendor.mediatek.hardware.keymaster_attestation@1.1-service.rc
+import /vendor/etc/init/android.hardware.nfc@1.2-service-st.rc
+import /vendor/etc/init/tee.rc
+import /vendor/etc/init/vendor.mediatek.hardware.nvram@1.1-sevice.rc
+import /vendor/etc/init/vendor.mediatek.hardware.nvram@1.1-sevice-lazy.rc
+import /vendor/etc/init/android.hardware.light@2.0-service-mediatek.rc
+import /vendor/etc/init/android.hardware.light@2.0-service-mediatek-lazy.rc
+import /vendor/etc/init/lights-mtk-default.rc
+import /vendor/etc/init/lights-mtk-lazy.rc
+import /vendor/etc/init/merged_hal_service.rc
+import /vendor/etc/init/spm_script.rc
+import /vendor/etc/init/nvram_daemon.rc
+import /vendor/etc/init/microtrust.bp_kmsetkey_ca.rc
+import /vendor/etc/init/vendor.microtrust.hardware.thh@2.0-service.rc
+import /vendor/etc/init/microtrust.init_thh.rc
diff --git a/setup-makefiles.sh b/setup-makefiles.sh
new file mode 100644
index 0000000..c593b22
--- /dev/null
+++ b/setup-makefiles.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+#
+# Copyright (C) 2016 The CyanogenMod Project
+# Copyright (C) 2017-2020 The LineageOS Project
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+set -e
+
+DEVICE=cancunf
+VENDOR=motorola
+
+# Load extract_utils and do some sanity checks
+MY_DIR="${BASH_SOURCE%/*}"
+if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi
+
+ANDROID_ROOT="${MY_DIR}/../../.."
+
+HELPER="${ANDROID_ROOT}/tools/extract-utils/extract_utils.sh"
+if [ ! -f "${HELPER}" ]; then
+ echo "Unable to find helper script at ${HELPER}"
+ exit 1
+fi
+source "${HELPER}"
+
+# Initialize the helper
+setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}"
+
+# Warning headers and guards
+write_headers
+
+write_makefiles "${MY_DIR}/proprietary-files.txt" true
+
+# Finish
+write_footers
diff --git a/system.prop b/system.prop
new file mode 100644
index 0000000..34952bd
--- /dev/null
+++ b/system.prop
@@ -0,0 +1,137 @@
+Build.BRAND=MTK
+bluetooth.profile.a2dp.source.enabled=true
+bluetooth.profile.asha.central.enabled=true
+bluetooth.profile.avrcp.target.enabled=true
+bluetooth.profile.bas.client.enabled=true
+bluetooth.profile.gatt.enabled=true
+bluetooth.profile.hfp.ag.enabled=true
+bluetooth.profile.hid.host.enabled=true
+bluetooth.profile.map.server.enabled=true
+bluetooth.profile.opp.enabled=true
+bluetooth.profile.pan.nap.enabled=true
+bluetooth.profile.pan.panu.enabled=true
+bluetooth.profile.pbap.server.enabled=true
+bluetooth.profile.sap.server.enabled=true
+dalvik.vm.appimageformat=lz4
+dalvik.vm.dex2oat-Xms=64m
+dalvik.vm.dex2oat-Xmx=512m
+dalvik.vm.dex2oat-max-image-block-size=524288
+dalvik.vm.dex2oat-minidebuginfo=true
+dalvik.vm.dex2oat-resolve-startup-strings=true
+dalvik.vm.dexopt.secondary=true
+dalvik.vm.dexopt.thermal-cutoff=2
+dalvik.vm.enable_pr_dexopt=true
+dalvik.vm.image-dex2oat-Xms=64m
+dalvik.vm.image-dex2oat-Xmx=64m
+dalvik.vm.madvise.artfile.size=4294967295
+dalvik.vm.madvise.odexfile.size=104857600
+dalvik.vm.madvise.vdexfile.size=104857600
+dalvik.vm.minidebuginfo=true
+dalvik.vm.ps-min-first-save-ms=150000
+dalvik.vm.usap_pool_enabled=false
+dalvik.vm.usap_pool_refill_delay_ms=3000
+dalvik.vm.usap_pool_size_max=3
+dalvik.vm.usap_pool_size_min=1
+dalvik.vm.usap_refill_threshold=1
+dalvik.vm.useartservice=true
+dalvik.vm.usejit=true
+debug.atrace.tags.enableflags=0
+debug.sf.early.app.duration=20000000
+debug.sf.early.sf.duration=27600000
+debug.sf.earlyGl.app.duration=20000000
+debug.sf.earlyGl.sf.duration=27600000
+debug.sf.enable_gl_backpressure=0
+debug.sf.enable_transaction_tracing=false
+debug.sf.hwc.min.duration=23000000
+debug.sf.late.app.duration=20000000
+debug.sf.late.sf.duration=27600000
+debug.sf.predict_hwc_composition_strategy=0
+debug.sf.treat_170m_as_sRGB=1
+debug.sf.use_phase_offsets_as_durations=1
+debug.stagefright.c2inputsurface=-1
+media.stagefright.thumbnail.prefer_hw_codecs=true
+mediatek.wlan.ctia=0
+net.bt.name=Android
+persist.log.tag.BufferQueueDump=I
+persist.log.tag.BufferQueueProducer=I
+persist.log.tag.GraphicBuffer=I
+persist.log.tag.SurfaceControl=I
+persist.sys.fuse.passthrough.enable=true
+persist.traced.enable=1
+persist.vendor.mdlog.flush_log_ratio=0
+persist.vendor.mtk.vilte.enable=1
+persist.vendor.pco5.radio.ctrl=0
+persist.vendor.pms_removable=1
+persist.vendor.vilte_support=1
+persist.vendor.vzw_device_type=0
+persist.vendor.wfc.sys_wfc_support=1
+pm.dexopt.ab-ota=speed-profile
+pm.dexopt.bg-dexopt=speed-profile
+pm.dexopt.boot-after-mainline-update=verify
+pm.dexopt.boot-after-ota=verify
+pm.dexopt.cmdline=verify
+pm.dexopt.first-boot=verify
+pm.dexopt.inactive=verify
+pm.dexopt.install=speed-profile
+pm.dexopt.install-bulk=speed-profile
+pm.dexopt.install-bulk-downgraded=verify
+pm.dexopt.install-bulk-secondary=verify
+pm.dexopt.install-bulk-secondary-downgraded=verify
+pm.dexopt.install-fast=skip
+pm.dexopt.post-boot=verify
+pm.dexopt.shared=speed
+qemu.hw.mainkeys=0
+ro.actionable_compatible_property.enabled=true
+ro.allow.mock.location=0
+ro.audio.flinger_standbytime_ms=1000
+ro.audio.ihaladaptervendorextension_enabled=true
+ro.audio.silent=0
+ro.audio.usb.period_us=16000
+ro.base_build=noah
+ro.build.version.ci=2
+ro.build.version.trunk=15
+ro.camera.sound.forced=0
+ro.dalvik.vm.native.bridge=0
+ro.iorapd.enable=false
+ro.kernel.zio=38,108,105,16
+ro.llndk.api_level=202404
+ro.logd.auditd.events=true
+ro.logd.auditd.main=true
+ro.mediatek.version.branch=alps-mp-v0.mssi1.tc2sp1
+ro.mediatek.version.build.branch=
+ro.mediatek.version.release=alps-mp-v0.mp1.tc2sp1-V1.53
+ro.mediatek.wlan.p2p=1
+ro.mediatek.wlan.wsc=1
+ro.mot.product_wave=2023.3
+ro.mtk_perf_fast_start_win=1
+ro.mtk_perf_response_time=1
+ro.mtk_perf_simple_start_win=1
+ro.opengles.version=196610
+ro.postinstall.fstab.prefix=/system
+ro.product.is_production=true
+ro.product.property_source_order=odm,vendor,product,system
+ro.property_service.async_persist_writes=true
+ro.surface_flinger.game_default_frame_rate_override=60
+ro.sys.usb.bicr=no
+ro.sys.usb.charging.only=yes
+ro.sys.usb.mtp.whql.enable=0
+ro.sys.usb.storage.type=mtp
+ro.vendor.mtk_telephony_add_on_policy=1
+ro.vendor.qti.va_aosp.support=1
+ro.vendor.system.mtk_dmc_support=1
+ro.vendor.system.mtk_mdmi_support=1
+ro.wifi.channels=
+ro.zygote.preload.enable=0
+security.perf_harden=1
+sys.ipo.disable=1
+sys.ipo.pwrdncap=2
+vendor.af.dynamic.sleeptime.enable=true
+vendor.af.pausewait.enable=false
+vendor.af.threshold.src_and_effect_count=5
+vendor.debug.sf.display_dejitter=0
+vendor.mtk_thumbnail_optimization=true
+vendor.rild.libargs=-d /dev/ttyC0
+vendor.rild.libpath=mtk-ril.so
+wifi.direct.interface=p2p0
+wifi.interface=wlan0
+wifi.tethering.interface=ap0
diff --git a/system_ext.prop b/system_ext.prop
new file mode 100644
index 0000000..3a69a9e
--- /dev/null
+++ b/system_ext.prop
@@ -0,0 +1,29 @@
+audio.deep_buffer.media=true
+audio.offload.disable=false
+audio.offload.gapless.enabled=false
+audio.offload.min.duration.secs=60
+audio.offload.video=false
+dalvik.vm.systemuicompilerfilter=speed
+media.recorder.show_manufacturer_and_model=true
+media.settings.xml=/vendor/etc/media_profiles_vendor.xml
+persist.mot_bt.max_thread_pool=8
+persist.sys.bootupvolume=5
+persist.vendor.audio.dualmic.config=endfire
+persist.vendor.audio.fluence.speaker=false
+persist.vendor.audio.fluence.voicecall=true
+persist.vendor.audio.fluence.voicecomm=true
+persist.vendor.audio.fluence.voicerec=false
+persist.vendor.audio_fx.current=mmi
+persist.vendor.camera.expose.aux=1
+persist.vendor.em.dy.debug=1
+ro.boot.wificountrycode=00
+ro.camera.cfa.packagelist=com.motorola.coresettingsext,com.motorola.camera3,com.motorola.actions
+ro.cp_system_other_odex=1
+ro.mot.platform.build_id=MV-165
+ro.mot.security.enable=true
+ro.virtual_ab.merge_delay_seconds=300
+vendor.audio.parser.ip.buffer.size=262144
+vendor.audio.snd_card.open.retries=50
+vendor.camera.aux.packagelist=com.motorola.camera3,com.motorola.camera5,com.motorola.motocit
+vendor.camera.aux.packagelist2=com.motorola.ccc,com.android.settings,com.motorola.motointelligence
+vendor.mm.en.sec.smoothstreaming=false
diff --git a/vendor.prop b/vendor.prop
new file mode 100644
index 0000000..7dc78ed
--- /dev/null
+++ b/vendor.prop
@@ -0,0 +1,535 @@
+aaudio.mmap_exclusive_policy=0
+aaudio.mmap_policy=0
+camera.disable_zsl_mode=1
+dalvik.vm.heapgrowthlimit=256m
+dalvik.vm.heapmaxfree=8m
+dalvik.vm.heapminfree=512k
+dalvik.vm.heapsize=512m
+dalvik.vm.heaptargetutilization=0.75
+dalvik.vm.mtk-stack-trace-file=/data/anr/mtk_traces.txt
+debug.mediatek.appgamepq_compress=1
+debug.mediatek.disp_decompress=1
+debug.mtk_tflite.target_nnapi=29
+debug.renderengine.backend=skiagl
+debug.sf.disable_backpressure=1
+debug.sf.early.app.duration=20000000
+debug.sf.early.sf.duration=27600000
+debug.sf.earlyGl.app.duration=20000000
+debug.sf.earlyGl.sf.duration=27600000
+debug.sf.enable_hwc_vds=0
+debug.sf.force_populate_color_modes=true
+debug.sf.frame_rate_multiple_threshold=120
+debug.sf.high_fps_early_gl_phase_offset_ns=-12666667
+debug.sf.high_fps_early_phase_offset_ns=-12666667
+debug.sf.high_fps_late_app_phase_offset_ns=-8000000
+debug.sf.high_fps_late_sf_phase_offset_ns=-12666667
+debug.sf.hwc.min.duration=23000000
+debug.sf.latch_unsignaled=1
+debug.sf.late.app.duration=20000000
+debug.sf.late.sf.duration=27600000
+debug.sf.region_sampling_period_ns=1000000000
+debug.sf.scroll_boost_refreshrate=120
+debug.sf.touch_boost_refreshrate=90
+debug.sf.use_phase_offsets_as_durations=0
+drm.service.enabled=true
+external_storage.casefold.enabled=1
+external_storage.projid.enabled=1
+external_storage.sdcardfs.enabled=0
+graphics.gpu.profiler.support=true
+init.userspace_reboot.is_supported=true
+keyguard.no_require_sim=true
+media.c2.dmabuf.padding=3072
+ota.mot_ota_tuning.valid=-1
+persist.adb.nonblocking_ffs=0
+persist.bluetooth.a2dp_offload.cap=sbc-aac
+persist.bluetooth.a2dp_offload.disabled=true
+persist.log.tag.APM-KpiMonitor=I
+persist.log.tag.APM-ServiceJ=I
+persist.log.tag.APM-SessionJ=I
+persist.log.tag.APM-SessionN=I
+persist.log.tag.APM-Subscriber=I
+persist.log.tag.AT=I
+persist.log.tag.AdnRecord=I
+persist.log.tag.AdnRecordCache=I
+persist.log.tag.AdnRecordLoader=I
+persist.log.tag.AirplaneHandler=I
+persist.log.tag.C2K_RIL-DATA=I
+persist.log.tag.CapaSwitch=I
+persist.log.tag.CarrierExpressServiceImpl=I
+persist.log.tag.CarrierExpressServiceImplExt=I
+persist.log.tag.CountryDetector=I
+persist.log.tag.DMC-ApmService=I
+persist.log.tag.DMC-Core=I
+persist.log.tag.DMC-DmcService=I
+persist.log.tag.DMC-EventsSubscriber=I
+persist.log.tag.DMC-ReqQManager=I
+persist.log.tag.DMC-SessionManager=I
+persist.log.tag.DMC-TranslatorLoader=I
+persist.log.tag.DMC-TranslatorUtils=I
+persist.log.tag.DSSelector=I
+persist.log.tag.DSSelectorOP01=I
+persist.log.tag.DSSelectorOP02=I
+persist.log.tag.DSSelectorOP09=I
+persist.log.tag.DSSelectorOP18=I
+persist.log.tag.DSSelectorOm=I
+persist.log.tag.DSSelectorUtil=I
+persist.log.tag.DataDispatcher=I
+persist.log.tag.DcFcMgr=I
+persist.log.tag.ExternalSimMgr=I
+persist.log.tag.GsmCallTkrHlpr=I
+persist.log.tag.GsmCdmaConn=I
+persist.log.tag.GsmCdmaPhone=I
+persist.log.tag.IMSRILRequest=I
+persist.log.tag.IMS_RILA=I
+persist.log.tag.IccCardProxy=I
+persist.log.tag.IccPhoneBookIM=I
+persist.log.tag.IccProvider=I
+persist.log.tag.ImsApp=I
+persist.log.tag.ImsBaseCommands=I
+persist.log.tag.ImsCall=I
+persist.log.tag.ImsCallProfile=I
+persist.log.tag.ImsCallSession=I
+persist.log.tag.ImsEcbm=I
+persist.log.tag.ImsEcbmProxy=I
+persist.log.tag.ImsManager=I
+persist.log.tag.ImsPhone=I
+persist.log.tag.ImsPhoneBase=I
+persist.log.tag.ImsPhoneCall=I
+persist.log.tag.ImsService=I
+persist.log.tag.ImsVTProvider=I
+persist.log.tag.IsimFileHandler=I
+persist.log.tag.IsimRecords=I
+persist.log.tag.LCM-Subscriber=I
+persist.log.tag.MDM-Subscriber=I
+persist.log.tag.MDMI-CommandProcessor=I
+persist.log.tag.MDMI-CoreSession=I
+persist.log.tag.MDMI-MdmiRedirector=I
+persist.log.tag.MDMI-MdmiRedirectorCtrl=I
+persist.log.tag.MDMI-NetworkSocketConnection=I
+persist.log.tag.MDMI-Permission=I
+persist.log.tag.MDMI-Provider=I
+persist.log.tag.MDMI-SocketConnection=I
+persist.log.tag.MDMI-SocketListener=I
+persist.log.tag.MDMI-TranslatorManager=I
+persist.log.tag.MTKSST=D
+persist.log.tag.MtkAdnRecord=I
+persist.log.tag.MtkCsimFH=I
+persist.log.tag.MtkDc=I
+persist.log.tag.MtkDcc=I
+persist.log.tag.MtkDct=I
+persist.log.tag.MtkEmbmsAdaptor=I
+persist.log.tag.MtkFactory=I
+persist.log.tag.MtkGsmCdmaConn=I
+persist.log.tag.MtkIccCardProxy=I
+persist.log.tag.MtkIccPHBIM=I
+persist.log.tag.MtkIccProvider=I
+persist.log.tag.MtkImsManager=I
+persist.log.tag.MtkImsService=I
+persist.log.tag.MtkIsimFH=I
+persist.log.tag.MtkPhoneNotifr=I
+persist.log.tag.MtkPhoneNumberUtils=I
+persist.log.tag.MtkPhoneSwitcher=D
+persist.log.tag.MtkRecordLoader=I
+persist.log.tag.MtkRetryManager=I
+persist.log.tag.MtkRuimFH=I
+persist.log.tag.MtkSIMFH=I
+persist.log.tag.MtkSIMRecords=I
+persist.log.tag.MtkSmsCbHeader=I
+persist.log.tag.MtkSmsManager=I
+persist.log.tag.MtkSmsMessage=I
+persist.log.tag.MtkSpnOverride=I
+persist.log.tag.MtkSubCtrl=I
+persist.log.tag.MtkUiccCard=I
+persist.log.tag.MtkUiccCardApp=I
+persist.log.tag.MtkUiccCtrl=I
+persist.log.tag.MtkUsimFH=I
+persist.log.tag.MwiRIL=I
+persist.log.tag.NetAgentService=I
+persist.log.tag.NetAgent_IO=I
+persist.log.tag.NetLnkEventHdlr=I
+persist.log.tag.NetworkPolicy=I
+persist.log.tag.NetworkStats=I
+persist.log.tag.OperatorUtils=I
+persist.log.tag.PKM-Lib=I
+persist.log.tag.PKM-MDM=I
+persist.log.tag.PKM-Monitor=I
+persist.log.tag.PKM-SA=I
+persist.log.tag.PKM-Service=I
+persist.log.tag.PQ_DS=I
+persist.log.tag.Phone=I
+persist.log.tag.PhoneConfigurationSettings=I
+persist.log.tag.PhoneFactory=I
+persist.log.tag.PowerHalAddressUitls=I
+persist.log.tag.PowerHalMgrImpl=I
+persist.log.tag.PowerHalMgrServiceImpl=I
+persist.log.tag.PowerHalWifiMonitor=I
+persist.log.tag.ProxyController=I
+persist.log.tag.RFX=I
+persist.log.tag.RIL=I
+persist.log.tag.RIL-Fusion=I
+persist.log.tag.RIL-Netlink=I
+persist.log.tag.RIL-Parcel=I
+persist.log.tag.RIL-SocListen=I
+persist.log.tag.RIL-Socket=I
+persist.log.tag.RILC=I
+persist.log.tag.RILC-OP=I
+persist.log.tag.RILD=I
+persist.log.tag.RILMD2-SS=I
+persist.log.tag.RILMUXD=I
+persist.log.tag.RIL_UIM_SOCKET=I
+persist.log.tag.RTC_DAC=I
+persist.log.tag.RadioManager=I
+persist.log.tag.RfxAction=I
+persist.log.tag.RfxChannelMgr=I
+persist.log.tag.RfxCloneMgr=I
+persist.log.tag.RfxContFactory=I
+persist.log.tag.RfxController=I
+persist.log.tag.RfxDebugInfo=I
+persist.log.tag.RfxDisThread=I
+persist.log.tag.RfxFragEnc=I
+persist.log.tag.RfxHandlerMgr=I
+persist.log.tag.RfxIdToMsgId=I
+persist.log.tag.RfxIdToStr=I
+persist.log.tag.RfxMainThread=I
+persist.log.tag.RfxMclDisThread=I
+persist.log.tag.RfxMclMessenger=I
+persist.log.tag.RfxMclStatusMgr=I
+persist.log.tag.RfxMessage=I
+persist.log.tag.RfxObject=I
+persist.log.tag.RfxOpUtils=I
+persist.log.tag.RfxRilAdapter=I
+persist.log.tag.RfxRilUtils=I
+persist.log.tag.RfxRoot=I
+persist.log.tag.RfxStatusMgr=I
+persist.log.tag.RfxTimer=I
+persist.log.tag.RilClient=I
+persist.log.tag.RilOemClient=I
+persist.log.tag.RilOpProxy=I
+persist.log.tag.RmcCapa=I
+persist.log.tag.RmcCdmaSimRequest=I
+persist.log.tag.RmcCdmaSimUrc=I
+persist.log.tag.RmcCommSimOpReq=I
+persist.log.tag.RmcCommSimReq=I
+persist.log.tag.RmcCommSimUrc=I
+persist.log.tag.RmcDcCommon=I
+persist.log.tag.RmcDcPdnManager=I
+persist.log.tag.RmcDcReqHandler=I
+persist.log.tag.RmcDcUtility=I
+persist.log.tag.RmcEccNumberUrcHandler=D
+persist.log.tag.RmcEmbmsReq=I
+persist.log.tag.RmcEmbmsUrc=I
+persist.log.tag.RmcGsmSimRequest=I
+persist.log.tag.RmcGsmSimUrc=I
+persist.log.tag.RmcImsCtlReqHdl=I
+persist.log.tag.RmcImsCtlUrcHdl=I
+persist.log.tag.RmcNwHdlr=D
+persist.log.tag.RmcNwRTReqHdlr=D
+persist.log.tag.RmcNwReqHdlr=D
+persist.log.tag.RmcOemHandler=I
+persist.log.tag.RmcOpRadioReq=I
+persist.log.tag.RmcPhbReq=I
+persist.log.tag.RmcPhbUrc=I
+persist.log.tag.RmcRadioReq=I
+persist.log.tag.RmcRatSwHdlr=D
+persist.log.tag.RmcWp=I
+persist.log.tag.RtcCapa=I
+persist.log.tag.RtcCommSimCtrl=I
+persist.log.tag.RtcDC=I
+persist.log.tag.RtcEccNumberController=D
+persist.log.tag.RtcEmbmsAt=I
+persist.log.tag.RtcEmbmsUtil=I
+persist.log.tag.RtcIms=I
+persist.log.tag.RtcImsConference=I
+persist.log.tag.RtcImsConfigController=I
+persist.log.tag.RtcImsDialog=I
+persist.log.tag.RtcModeCont=I
+persist.log.tag.RtcNwCtrl=I
+persist.log.tag.RtcPhb=I
+persist.log.tag.RtcRadioCont=I
+persist.log.tag.RtcRatSwCtrl=D
+persist.log.tag.RtcWp=I
+persist.log.tag.SIMRecords=I
+persist.log.tag.SimSwitchOP01=I
+persist.log.tag.SimSwitchOP02=I
+persist.log.tag.SimSwitchOP18=I
+persist.log.tag.SlotQueueEntry=I
+persist.log.tag.SpnOverride=I
+persist.log.tag.UiccCard=I
+persist.log.tag.UiccController=I
+persist.log.tag.UxUtility=I
+persist.log.tag.VT=I
+persist.log.tag.VsimAdaptor=I
+persist.log.tag.WORLDMODE=I
+persist.log.tag.WfoApp=I
+persist.log.tag.WpfaCcciDataHeaderEncoder=I
+persist.log.tag.WpfaCcciReader=I
+persist.log.tag.WpfaCcciSender=I
+persist.log.tag.WpfaControlMsgHandler=I
+persist.log.tag.WpfaDriver=I
+persist.log.tag.WpfaDriverAccept=I
+persist.log.tag.WpfaDriverAdapter=I
+persist.log.tag.WpfaDriverDeReg=I
+persist.log.tag.WpfaDriverMessage=I
+persist.log.tag.WpfaDriverRegFilter=I
+persist.log.tag.WpfaDriverULIpPkt=I
+persist.log.tag.WpfaDriverUtilis=I
+persist.log.tag.WpfaDriverVersion=I
+persist.log.tag.WpfaFilterRuleReqHandler=I
+persist.log.tag.WpfaParsing=I
+persist.log.tag.WpfaRingBuffer=I
+persist.log.tag.WpfaRuleContainer=I
+persist.log.tag.WpfaRuleRegister=I
+persist.log.tag.WpfaShmAccessController=I
+persist.log.tag.WpfaShmReadMsgHandler=I
+persist.log.tag.WpfaShmSynchronizer=I
+persist.log.tag.WpfaShmWriteMsgHandler=I
+persist.log.tag.libPowerHal=I
+persist.log.tag.mtkpower@impl=I
+persist.log.tag.mtkpower_client=I
+persist.log.tag.wpfa_iptable_android=I
+persist.radio.multisim.config=dsds
+persist.rcs.supported=1
+persist.sys.ams_ext_enabled=true
+persist.sys.dalvik.vm.lib.2=libart.so
+persist.sys.sf.native_mode=1
+persist.vendor.audio_fx.current=dolby
+persist.vendor.camera.p1.streamBufCnt.imgo=10
+persist.vendor.camera.p1.streamBufCnt.lcso=10
+persist.vendor.camera.p1.streamBufCnt.rrzo=10
+persist.vendor.camera.physical.num=3
+persist.vendor.camera3.pipeline.bufnum.base.imgo=4
+persist.vendor.camera3.pipeline.bufnum.base.lcso=4
+persist.vendor.camera3.pipeline.bufnum.base.rrzo=4
+persist.vendor.camera3.pipeline.bufnum.base.rsso=5
+persist.vendor.camera3.pipeline.bufnum.min.high_ram.fdyuv=6
+persist.vendor.camera3.pipeline.bufnum.min.high_ram.imgo=7
+persist.vendor.camera3.pipeline.bufnum.min.high_ram.lcso=7
+persist.vendor.camera3.pipeline.bufnum.min.high_ram.rrzo=7
+persist.vendor.camera3.pipeline.bufnum.min.high_ram.rsso=7
+persist.vendor.camera3.pipeline.bufnum.min.low_ram.fdyuv=6
+persist.vendor.camera3.pipeline.bufnum.min.low_ram.imgo=6
+persist.vendor.camera3.pipeline.bufnum.min.low_ram.lcso=6
+persist.vendor.camera3.pipeline.bufnum.min.low_ram.rrzo=6
+persist.vendor.camera3.pipeline.bufnum.min.low_ram.rsso=6
+persist.vendor.connsys.chipid=-1
+persist.vendor.connsys.dynamic.dump=0
+persist.vendor.connsys.fm_chipid=mt6631_6635
+persist.vendor.connsys.patch.version=-1
+persist.vendor.factory.GB2312=yes
+persist.vendor.ims_support=1
+persist.vendor.log.tel_log_ctrl=1
+persist.vendor.lte.pco_supported=true
+persist.vendor.md_c2k_cap_dep_check=0
+persist.vendor.mims_support=1
+persist.vendor.mtk.volte.enable=1
+persist.vendor.mtk_ct_volte_support=3
+persist.vendor.mtk_dynamic_ims_switch=1
+persist.vendor.mtk_rcs_single_reg_support=0
+persist.vendor.mtk_sim_switch_policy=2
+persist.vendor.mtk_wfc_support=1
+persist.vendor.nfc.config_secfile_name=libnfc-sec-nci.conf
+persist.vendor.nfc.polling_timeout=1440
+persist.vendor.nfc.reset_after_sim_plug_in=true
+persist.vendor.radio.fd.counter=150
+persist.vendor.radio.fd.off.counter=50
+persist.vendor.radio.fd.off.r8.counter=50
+persist.vendor.radio.fd.r8.counter=150
+persist.vendor.radio.msimmode=dsds
+persist.vendor.radio.mtk_dsbp_support=3
+persist.vendor.radio.mtk_ps2_rat=N/L/W/G
+persist.vendor.radio.mtk_ps3_rat=G
+persist.vendor.radio.smart.data.switch=1
+persist.vendor.vilte_support=1
+persist.vendor.viwifi_support=1
+persist.vendor.volte_support=1
+persist.vendor.vt.RTPInfo=1
+persist.vendor.vt.supported=1
+ro.bluetooth.a2dp_offload.supported=false
+ro.config.vc_call_vol_steps=8
+ro.control_privapp_permissions=enforce
+ro.cp_system_other_odex=1
+ro.crypto.volume.filenames_mode=aes-256-cts
+ro.frp.pst=/dev/block/by-name/frp
+ro.hardware.egl=meow
+ro.hardware.gatekeeper=trustonic
+ro.hardware.gralloc=common
+ro.hardware.hwcomposer=mtk_common
+ro.hardware.kmsetkey=trustonic
+ro.hardware.soc.manufacturer=mtk
+ro.hardware.vulkan=mtk
+ro.incremental.enable=yes
+ro.mot.build.guid=78d7cd97afeeafc
+ro.mtk_key_manager_support=1
+ro.netflix.bsp_rev=MTK6855-35905-1
+ro.oem_unlock_supported=1
+ro.opengles.version=196610
+ro.surface_flinger.force_hwc_copy_for_virtual_displays=true
+ro.surface_flinger.has_HDR_display=true
+ro.surface_flinger.has_wide_color_display=true
+ro.surface_flinger.max_frame_buffer_acquired_buffers=4
+ro.surface_flinger.primary_display_orientation=ORIENTATION_0
+ro.surface_flinger.protected_contents=true
+ro.surface_flinger.set_idle_timer_ms=500
+ro.surface_flinger.set_touch_timer_ms=1000
+ro.surface_flinger.use_color_management=true
+ro.surface_flinger.use_smart_90_for_video=true
+ro.surface_flinger.vsync_event_phase_offset_ns=8400000
+ro.surface_flinger.vsync_sf_event_phase_offset_ns=-10933333
+ro.telephony.iwlan_operation_mode=AP-assisted
+ro.vendor.ap_info_monitor=0
+ro.vendor.audio.crystal_talk.supported=true
+ro.vendor.audio.moto_sst_supported=true
+ro.vendor.bt.platform=connac1x
+ro.vendor.camera.directfdyuv.support=1
+ro.vendor.camera.isp.support.colorspace=0
+ro.vendor.camera3.zsl.default=220
+ro.vendor.composer_version=2.1
+ro.vendor.connsys.dedicated.log=1
+ro.vendor.connsys.dedicated.log.port=bt,wifi,gps,mcu
+ro.vendor.dolby.dax.version=DAX3_3.11.0.10_r2
+ro.vendor.fm.platform=mt6631_6635
+ro.vendor.fusion.algorithm.in.sensorhub=yes
+ro.vendor.gps.chrdev=gps_drv_stp
+ro.vendor.hw.ecompass=true
+ro.vendor.hw.fps=true
+ro.vendor.init.sensor.rc=init.sensor_2_0.rc
+ro.vendor.jpeg_decode_sw_opt=1
+ro.vendor.mag.calibration.in.sensorhub=yes
+ro.vendor.md_auto_setup_ims=1
+ro.vendor.md_prop_ver=1
+ro.vendor.mediatek.platform=MT6855
+ro.vendor.mediatek.version.branch=alps-mp-s0.mp1.tc2sp2
+ro.vendor.mediatek.version.release=alps-mp-s0.mp1.tc2sp2-V3
+ro.vendor.mgk_name=mgk_64_entry_level_k510
+ro.vendor.mgvi_name=mgvi_64_ww_armv82
+ro.vendor.mml.mtk_mml_support=0
+ro.vendor.mot.base_buildid=V1TD35H.83-20-5/c7172e-ba49e
+ro.vendor.mtk.bt_sap_enable=true
+ro.vendor.mtk.c2.vdec.fmt.support.level=2
+ro.vendor.mtk.sensor.support=yes
+ro.vendor.mtk_agps_app=1
+ro.vendor.mtk_audio_alac_support=1
+ro.vendor.mtk_audio_ape_support=1
+ro.vendor.mtk_audio_tuning_tool_ver=V1
+ro.vendor.mtk_blulight_def_support=1
+ro.vendor.mtk_c2k_lte_mode=0
+ro.vendor.mtk_cam_security_support=0
+ro.vendor.mtk_camera_app_version=3
+ro.vendor.mtk_config_max_dram_size=
+ro.vendor.mtk_cuva_hdr_support=1
+ro.vendor.mtk_dmc_support=1
+ro.vendor.mtk_eccci_c2k=1
+ro.vendor.mtk_emmc_support=1
+ro.vendor.mtk_external_sim_only_slots=0
+ro.vendor.mtk_f2fs_enable=1
+ro.vendor.mtk_fast_charging_support=1
+ro.vendor.mtk_fd_support=1
+ro.vendor.mtk_femto_cell_support=1
+ro.vendor.mtk_gps_support=1
+ro.vendor.mtk_hdr_video_support=1
+ro.vendor.mtk_hifiaudio_support=1
+ro.vendor.mtk_log_hide_gps=1
+ro.vendor.mtk_lte_support=1
+ro.vendor.mtk_md_world_mode_support=1
+ro.vendor.mtk_mdmi_support=1
+ro.vendor.mtk_mvpu_security_support=0
+ro.vendor.mtk_nn.option=A,B,C,D,E,F,G,Z
+ro.vendor.mtk_nn_baseline_support=1
+ro.vendor.mtk_nn_quant_preferred=1
+ro.vendor.mtk_ovl_bringup=0
+ro.vendor.mtk_pq_color_mode=1
+ro.vendor.mtk_pq_support=2
+ro.vendor.mtk_prefer_64bit_proc=0
+ro.vendor.mtk_protocol1_rat_config=N/Lf/Lt/W/G
+ro.vendor.mtk_ps1_rat=N/Lf/Lt/W/G
+ro.vendor.mtk_ril_mode=c6m_1rild
+ro.vendor.mtk_rild_read_imsi=1
+ro.vendor.mtk_sec_video_path_support=1
+ro.vendor.mtk_sim_card_onoff=3
+ro.vendor.mtk_single_bin_modem_support=1
+ro.vendor.mtk_slow_motion_support=1
+ro.vendor.mtk_tee_gp_support=1
+ro.vendor.mtk_thermal_2_0=1
+ro.vendor.mtk_trustonic_tee_support=1
+ro.vendor.mtk_uicc_clf=1
+ro.vendor.mtk_video_hevc_enc_support=1
+ro.vendor.mtk_wappush_support=1
+ro.vendor.mtk_widevine_drm_l1_support=1
+ro.vendor.mtk_world_phone_policy=0
+ro.vendor.num_md_protocol=2
+ro.vendor.pq.mtk_aal_support=0
+ro.vendor.pq.mtk_ai_scence_pq_support=0
+ro.vendor.pq.mtk_ai_sdr_to_hdr_support=0
+ro.vendor.pq.mtk_backlight_smooth_support=0
+ro.vendor.pq.mtk_blulight_def_support=0
+ro.vendor.pq.mtk_caltm_support=1
+ro.vendor.pq.mtk_clearzoom_support=1
+ro.vendor.pq.mtk_dc_support=0
+ro.vendor.pq.mtk_disp_c3d_support=0
+ro.vendor.pq.mtk_disp_ccorr_support=1
+ro.vendor.pq.mtk_disp_color_support=1
+ro.vendor.pq.mtk_disp_game_pq_support=0
+ro.vendor.pq.mtk_disp_gamma_support=0
+ro.vendor.pq.mtk_disp_tdshp_support=1
+ro.vendor.pq.mtk_dre30_support=0
+ro.vendor.pq.mtk_ds_support=0
+ro.vendor.pq.mtk_hdr10_plus_recording_support=0
+ro.vendor.pq.mtk_hfg_support=1
+ro.vendor.pq.mtk_mdp_ccorr_support=0
+ro.vendor.pq.mtk_pq_interface_support=0
+ro.vendor.pq.mtk_pq_video_whitelist_support=0
+ro.vendor.pq.mtk_scltm_support=0
+ro.vendor.pq.mtk_ultra_dimming_support=0
+ro.vendor.pq.mtk_ultra_resolution_support=0
+ro.vendor.pq.mtk_video_transition=0
+ro.vendor.pref_scale_enable_cfg=1
+ro.vendor.rc=/vendor/etc/init/hw/
+ro.vendor.ril.set_sbp_place=2
+ro.vendor.sensors.mot_ltv=true
+ro.vendor.sensors.prox_for_call=true
+ro.vendor.sim_me_lock_mode=3
+ro.vendor.smvr.p2batch.hd=4
+ro.vendor.vt_hevc_support=1
+ro.vendor.wfd.dummy.enable=0
+ro.vendor.wfd.iframesize.level=0
+ro.vendor.wifi.sap.concurrent.iface=ap1
+ro.vendor.wifi.sap.interface=ap0
+ro.vendor.wlan.chrdev=wmt_chrdev_wifi
+ro.vendor.wlan.gen=gen4m_6855
+ro.vendor.wlan.standalone.log=y
+ro.virtual_ab.compression.enabled=true
+ro.virtual_ab.userspace.snapshots.enabled=true
+telephony.active_modems.max_count=2
+vendor.audio.powerhal.power.dl=true
+vendor.audio.powerhal.power.ul=true
+vendor.bluetooth.ldac.abr=true
+vendor.camera.mdp.cz.enable=1
+vendor.camera.mdp.dre.enable=1
+vendor.camera.mot.jpegmaxscaleratio=2.5
+vendor.connsys.driver.ready=no
+vendor.debug.sf.cpupolicy.base_min_bl=330
+vendor.debug.sf.cpupolicy.hw_comp_suspend=1
+vendor.debug.sf.cpupolicy.hw_hfr_suspend=1
+vendor.debug.sf.cpupolicy.lowbound_uclamp_min=172
+vendor.debug.sf.cpupolicy.max_correct_offset=150
+vendor.debug.sf.cpupolicy.min_120=172
+vendor.debug.sf.cpupolicy.min_30_mml=172
+vendor.debug.sf.cpupolicy.min_60=137
+vendor.debug.sf.cpupolicy.min_60_mml=172
+vendor.debug.sf.cpupolicy.min_90=172
+vendor.debug.sf.cpupolicy.min_boost=172
+vendor.debug.sf.cpupolicy.power_down_120=300000
+vendor.debug.sf.cpupolicy.power_up_120=-300000
+vendor.debug.sf.cpupolicy.re_hfr=0
+vendor.debug.sf.cpupolicy.rt_bl_min=312
+vendor.debug.sf.cpupolicy.sf_cpu_thres=305
+vendor.debug.sf.cpupolicy.upbound_uclamp_max_ll=280
+vendor.debug.sf.cpupolicy.upbound_uclamp_min=400
+vendor.debug.sf.cpupolicy.upbound_uclamp_ret_sys=218
+vendor.debug.sf.cpupolicy.xgf_min=25
+vendor.hw.sf.IdleLazyResetThresholdT=500
+vendor.hw.sf.hwc.min.duration=0
+vendor.media.heif.highThreshold=20
+vendor.mtk.camera.app.fd.video=1
+vendor.mtk.vdec.waitkeyframeforplay=9
+vendor.usb.use_ffs_mtp=1
diff --git a/vendor_dlkm.prop b/vendor_dlkm.prop
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/vendor_dlkm.prop
@@ -0,0 +1 @@
+