initializing tree with aospdtgen just fr skeleton
This commit is contained in:
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
# Auto detect text files and perform LF normalization
|
||||
* text=auto
|
8
Android.bp
Normal file
8
Android.bp
Normal file
@ -0,0 +1,8 @@
|
||||
//
|
||||
// Copyright (C) 2025 The LineageOS Project
|
||||
//
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
//
|
||||
|
||||
soong_namespace {
|
||||
}
|
11
Android.mk
Normal file
11
Android.mk
Normal file
@ -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
|
13
AndroidProducts.mk
Normal file
13
AndroidProducts.mk
Normal file
@ -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
|
102
BoardConfig.mk
Normal file
102
BoardConfig.mk
Normal file
@ -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
|
14
README.md
Normal file
14
README.md
Normal file
@ -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
|
BIN
aospdtg.log
Normal file
BIN
aospdtg.log
Normal file
Binary file not shown.
110
device.mk
Normal file
110
device.mk
Normal file
@ -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)
|
61
extract-files.sh
Normal file
61
extract-files.sh
Normal file
@ -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"
|
28
lineage_cancunf.mk
Normal file
28
lineage_cancunf.mk
Normal file
@ -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
|
278
manifest.xml
Normal file
278
manifest.xml
Normal file
@ -0,0 +1,278 @@
|
||||
<manifest version="4.0" type="device" target-level="6">
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.audio</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@7.0::IDevicesFactory/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.audio.effect</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@7.0::IEffectsFactory/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.bluetooth</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.1::IBluetoothHci/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.bluetooth.audio</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@2.1::IBluetoothAudioProvidersFactory/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.boot</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.0::IBootControl/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.gatekeeper</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.0::IGatekeeper/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.graphics.allocator</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@4.0::IAllocator/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.graphics.composer</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@2.1::IComposer/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.graphics.mapper</name>
|
||||
<transport arch="32+64">passthrough</transport>
|
||||
<fqname>@4.0::IMapper/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.media.omx</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.0::IOmx/default</fqname>
|
||||
<fqname>@1.0::IOmxStore/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.radio</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.2::IRadio/em1</fqname>
|
||||
<fqname>@1.2::IRadio/em2</fqname>
|
||||
<fqname>@1.2::IRadio/imsAospSlot1</fqname>
|
||||
<fqname>@1.2::IRadio/imsAospSlot2</fqname>
|
||||
<fqname>@1.2::IRadio/se1</fqname>
|
||||
<fqname>@1.2::IRadio/se2</fqname>
|
||||
<fqname>@1.2::IRadio/slot1</fqname>
|
||||
<fqname>@1.2::IRadio/slot2</fqname>
|
||||
<fqname>@1.2::ISap/slot1</fqname>
|
||||
<fqname>@1.2::ISap/slot2</fqname>
|
||||
<fqname>@1.6::IRadio/em1</fqname>
|
||||
<fqname>@1.6::IRadio/em2</fqname>
|
||||
<fqname>@1.6::IRadio/imsAospSlot1</fqname>
|
||||
<fqname>@1.6::IRadio/imsAospSlot2</fqname>
|
||||
<fqname>@1.6::IRadio/se1</fqname>
|
||||
<fqname>@1.6::IRadio/se2</fqname>
|
||||
<fqname>@1.6::IRadio/slot1</fqname>
|
||||
<fqname>@1.6::IRadio/slot2</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.radio.config</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.3::IRadioConfig/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.renderscript</name>
|
||||
<transport arch="32+64">passthrough</transport>
|
||||
<fqname>@1.0::IDevice/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.secure_element</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.2::ISecureElement/SIM1</fqname>
|
||||
<fqname>@1.2::ISecureElement/SIM2</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.sensors</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@2.0::ISensors/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.soundtrigger</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@2.3::ISoundTriggerHw/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.tetheroffload.config</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.0::IOffloadConfig/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.tetheroffload.control</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.1::IOffloadControl/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.thermal</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.0::IThermal/default</fqname>
|
||||
<fqname>@2.0::IThermal/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>com.motorola.hardware.display.touch</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.2::IMotTouch/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>motorola.hardware.health</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@2.0::IMotHealth/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>motorola.hardware.health.storage</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.0::IMotStorage/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>motorola.hardware.sensorscalibrate</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.0::ISensorsCalibrate/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>motorola.hardware.wifi.hostapd</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.0::IHostapdMot/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>motorola.hardware.wifi.supplicant</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.0::ISupplicantMot/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.mediatek.hardware.apmonitor</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@2.0::IApmService/apm_hidl_service</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.mediatek.hardware.atci</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.0::IAtcid/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.mediatek.hardware.bluetooth.audio</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@2.2::IBluetoothAudioProvidersFactory/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.mediatek.hardware.camera.atms</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.0::IATMs/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.mediatek.hardware.camera.bgservice</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.1::IBGService/internal/0</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.mediatek.hardware.camera.isphal</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.1::IISPModule/internal/0</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.mediatek.hardware.composer_ext</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.0::IComposerExt/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.mediatek.hardware.dmc</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.2::IDmcService/dmc_hidl_service</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.mediatek.hardware.keymaster_attestation</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.1::IKeymasterDevice/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.mediatek.hardware.mmagent</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.1::IMMAgent/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.mediatek.hardware.mms</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.6::IMms/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.mediatek.hardware.mtkpower</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.2::IMtkPerf/default</fqname>
|
||||
<fqname>@1.2::IMtkPower/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.mediatek.hardware.mtkradioex</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@3.0::IMtkRadioEx/imsSlot1</fqname>
|
||||
<fqname>@3.0::IMtkRadioEx/imsSlot2</fqname>
|
||||
<fqname>@3.0::IMtkRadioEx/mtkAssist1</fqname>
|
||||
<fqname>@3.0::IMtkRadioEx/mtkAssist2</fqname>
|
||||
<fqname>@3.0::IMtkRadioEx/mtkCap1</fqname>
|
||||
<fqname>@3.0::IMtkRadioEx/mtkCap2</fqname>
|
||||
<fqname>@3.0::IMtkRadioEx/mtkEm1</fqname>
|
||||
<fqname>@3.0::IMtkRadioEx/mtkEm2</fqname>
|
||||
<fqname>@3.0::IMtkRadioEx/mtkRcs1</fqname>
|
||||
<fqname>@3.0::IMtkRadioEx/mtkRcs2</fqname>
|
||||
<fqname>@3.0::IMtkRadioEx/mtkRsu1</fqname>
|
||||
<fqname>@3.0::IMtkRadioEx/mtkRsu2</fqname>
|
||||
<fqname>@3.0::IMtkRadioEx/mtkSe1</fqname>
|
||||
<fqname>@3.0::IMtkRadioEx/mtkSe2</fqname>
|
||||
<fqname>@3.0::IMtkRadioEx/mtkSlot1</fqname>
|
||||
<fqname>@3.0::IMtkRadioEx/mtkSlot2</fqname>
|
||||
<fqname>@3.0::IMtkRadioEx/mtkSmartRatSwitch1</fqname>
|
||||
<fqname>@3.0::IMtkRadioEx/mtkSmartRatSwitch2</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.mediatek.hardware.netdagent</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.0::INetdagent/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.mediatek.hardware.nvram</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.1::INvram/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.mediatek.hardware.nwk_opt</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.0::INwkOpt/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.mediatek.hardware.pq</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@2.15::IPictureQuality/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.mediatek.hardware.radio_op</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@3.0::IRadioOp/OpImsRILd1</fqname>
|
||||
<fqname>@3.0::IRadioOp/OpImsRILd2</fqname>
|
||||
<fqname>@3.0::IRadioOp/slot1</fqname>
|
||||
<fqname>@3.0::IRadioOp/slot2</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.mediatek.hardware.videotelephony</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.0::IVideoTelephony/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.trustonic.alps.alps_device</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.1::IAlps/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.trustonic.tee</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.1::ITee/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.trustonic.tee.tui</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.0::ITui/default</fqname>
|
||||
</hal>
|
||||
</manifest>
|
1
odm_dlkm.prop
Normal file
1
odm_dlkm.prop
Normal file
@ -0,0 +1 @@
|
||||
|
BIN
prebuilts/dtb.img
Normal file
BIN
prebuilts/dtb.img
Normal file
Binary file not shown.
BIN
prebuilts/dtbo.img
Normal file
BIN
prebuilts/dtbo.img
Normal file
Binary file not shown.
BIN
prebuilts/kernel
Normal file
BIN
prebuilts/kernel
Normal file
Binary file not shown.
46
product.prop
Normal file
46
product.prop
Normal file
@ -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
|
4026
proprietary-files.txt
Normal file
4026
proprietary-files.txt
Normal file
File diff suppressed because it is too large
Load Diff
325
rootdir/Android.bp
Normal file
325
rootdir/Android.bp
Normal file
@ -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,
|
||||
}
|
9
rootdir/Android.mk
Normal file
9
rootdir/Android.mk
Normal file
@ -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
|
53
rootdir/bin/apanic_annotate.sh
Normal file
53
rootdir/bin/apanic_annotate.sh
Normal file
@ -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
|
47
rootdir/bin/apanic_copy.sh
Normal file
47
rootdir/bin/apanic_copy.sh
Normal file
@ -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
|
102
rootdir/bin/apanic_mtk.sh
Normal file
102
rootdir/bin/apanic_mtk.sh
Normal file
@ -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
|
12
rootdir/bin/apanic_save.sh
Normal file
12
rootdir/bin/apanic_save.sh
Normal file
@ -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
|
408
rootdir/bin/hardware_revisions.sh
Normal file
408
rootdir/bin/hardware_revisions.sh
Normal file
@ -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
|
34
rootdir/bin/init.insmod.sh
Normal file
34
rootdir/bin/init.insmod.sh
Normal file
@ -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
|
||||
|
52
rootdir/bin/init.mmi.backup.trustlet.sh
Normal file
52
rootdir/bin/init.mmi.backup.trustlet.sh
Normal file
@ -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!"
|
46
rootdir/bin/init.mmi.block_perm.sh
Normal file
46
rootdir/bin/init.mmi.block_perm.sh
Normal file
@ -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
|
190
rootdir/bin/init.mmi.boot.sh
Normal file
190
rootdir/bin/init.mmi.boot.sh
Normal file
@ -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
|
56
rootdir/bin/init.mmi.modem-rfs.sh
Normal file
56
rootdir/bin/init.mmi.modem-rfs.sh
Normal file
@ -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
|
||||
|
10
rootdir/bin/init.mmi.modules.sh
Normal file
10
rootdir/bin/init.mmi.modules.sh
Normal file
@ -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
|
75
rootdir/bin/init.mmi.shutdown.sh
Normal file
75
rootdir/bin/init.mmi.shutdown.sh
Normal file
@ -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
|
455
rootdir/bin/init.mmi.touch.sh
Normal file
455
rootdir/bin/init.mmi.touch.sh
Normal file
@ -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 <ready to flash>..."
|
||||
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
|
260
rootdir/bin/init.mmi.usb.sh
Normal file
260
rootdir/bin/init.mmi.usb.sh
Normal file
@ -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
|
178
rootdir/bin/init.oem.fingerprint2.sh
Normal file
178
rootdir/bin/init.oem.fingerprint2.sh
Normal file
@ -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
|
742
rootdir/bin/init.oem.hw.sh
Normal file
742
rootdir/bin/init.oem.hw.sh
Normal file
@ -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
|
||||
|
36
rootdir/bin/pstore_annotate.sh
Normal file
36
rootdir/bin/pstore_annotate.sh
Normal file
@ -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
|
69
rootdir/bin/vendor.mmi.cxp.sh
Normal file
69
rootdir/bin/vendor.mmi.cxp.sh
Normal file
@ -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
|
23
rootdir/etc/apanic.rc
Normal file
23
rootdir/etc/apanic.rc
Normal file
@ -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
|
86
rootdir/etc/factory_init.connectivity.common.rc
Normal file
86
rootdir/etc/factory_init.connectivity.common.rc
Normal file
@ -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)
|
||||
#
|
||||
|
34
rootdir/etc/factory_init.connectivity.rc
Normal file
34
rootdir/etc/factory_init.connectivity.rc
Normal file
@ -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)
|
||||
#
|
||||
|
42
rootdir/etc/factory_init.project.rc
Normal file
42
rootdir/etc/factory_init.project.rc
Normal file
@ -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
|
||||
|
890
rootdir/etc/factory_init.rc
Normal file
890
rootdir/etc/factory_init.rc
Normal file
@ -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.<platform>.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
|
1
rootdir/etc/fstab.enablezramwb
Normal file
1
rootdir/etc/fstab.enablezramwb
Normal file
@ -0,0 +1 @@
|
||||
/dev/block/zram0 none swap defaults zramsize=75%,max_comp_streams=8,zram_backingdev_size=prop
|
2
rootdir/etc/init.aee.rc
Normal file
2
rootdir/etc/init.aee.rc
Normal file
@ -0,0 +1,2 @@
|
||||
on init
|
||||
write /proc/aed/generate-oops aee0
|
67
rootdir/etc/init.cgroup.rc
Normal file
67
rootdir/etc/init.cgroup.rc
Normal file
@ -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
|
83
rootdir/etc/init.connectivity.common.rc
Normal file
83
rootdir/etc/init.connectivity.common.rc
Normal file
@ -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)
|
||||
#
|
||||
|
4
rootdir/etc/init.connectivity.rc
Normal file
4
rootdir/etc/init.connectivity.rc
Normal file
@ -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
|
14
rootdir/etc/init.mmi.backup.trustlet.rc
Normal file
14
rootdir/etc/init.mmi.backup.trustlet.rc
Normal file
@ -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
|
25
rootdir/etc/init.mmi.chipset.rc
Normal file
25
rootdir/etc/init.mmi.chipset.rc
Normal file
@ -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
|
210
rootdir/etc/init.mmi.overlay.rc
Normal file
210
rootdir/etc/init.mmi.overlay.rc
Normal file
@ -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
|
314
rootdir/etc/init.mmi.rc
Normal file
314
rootdir/etc/init.mmi.rc
Normal file
@ -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
|
247
rootdir/etc/init.mmi.tcmd.rc
Normal file
247
rootdir/etc/init.mmi.tcmd.rc
Normal file
@ -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}
|
910
rootdir/etc/init.mmi.usb.configfs.rc
Normal file
910
rootdir/etc/init.mmi.usb.configfs.rc
Normal file
@ -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}
|
42
rootdir/etc/init.modem.rc
Normal file
42
rootdir/etc/init.modem.rc
Normal file
@ -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
|
||||
|
||||
|
||||
|
1088
rootdir/etc/init.mt6855.rc
Normal file
1088
rootdir/etc/init.mt6855.rc
Normal file
File diff suppressed because it is too large
Load Diff
938
rootdir/etc/init.mt6855.usb.rc
Normal file
938
rootdir/etc/init.mt6855.usb.rc
Normal file
@ -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 ###
|
11
rootdir/etc/init.mtkgki.rc
Normal file
11
rootdir/etc/init.mtkgki.rc
Normal file
@ -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
|
61
rootdir/etc/init.project.rc
Normal file
61
rootdir/etc/init.project.rc
Normal file
@ -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
|
7
rootdir/etc/init.sensor_2_0.rc
Normal file
7
rootdir/etc/init.sensor_2_0.rc
Normal file
@ -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
|
46
rootdir/etc/init_connectivity.rc
Normal file
46
rootdir/etc/init_connectivity.rc
Normal file
@ -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
|
80
rootdir/etc/meta_init.connectivity.common.rc
Normal file
80
rootdir/etc/meta_init.connectivity.common.rc
Normal file
@ -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
|
37
rootdir/etc/meta_init.connectivity.rc
Normal file
37
rootdir/etc/meta_init.connectivity.rc
Normal file
@ -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
|
39
rootdir/etc/meta_init.modem.rc
Normal file
39
rootdir/etc/meta_init.modem.rc
Normal file
@ -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
|
15
rootdir/etc/meta_init.project.rc
Normal file
15
rootdir/etc/meta_init.project.rc
Normal file
@ -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
|
||||
|
378
rootdir/etc/meta_init.rc
Normal file
378
rootdir/etc/meta_init.rc
Normal file
@ -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
|
11
rootdir/etc/meta_init.vendor.rc
Normal file
11
rootdir/etc/meta_init.vendor.rc
Normal file
@ -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
|
50
rootdir/etc/multi_init.rc
Normal file
50
rootdir/etc/multi_init.rc
Normal file
@ -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
|
36
setup-makefiles.sh
Normal file
36
setup-makefiles.sh
Normal file
@ -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
|
137
system.prop
Normal file
137
system.prop
Normal file
@ -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
|
29
system_ext.prop
Normal file
29
system_ext.prop
Normal file
@ -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
|
535
vendor.prop
Normal file
535
vendor.prop
Normal file
@ -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
|
1
vendor_dlkm.prop
Normal file
1
vendor_dlkm.prop
Normal file
@ -0,0 +1 @@
|
||||
|
Reference in New Issue
Block a user