diff options
author | Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org> | 2016-10-06 13:49:53 +0200 |
---|---|---|
committer | Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org> | 2016-10-06 13:49:53 +0200 |
commit | e7a95058b69161260683ebc515c53acc99c5e004 (patch) | |
tree | ee385e01606abe73b44f5a567f4c2c5c2f02210c | |
download | mt6797-e7a95058b69161260683ebc515c53acc99c5e004.tar.gz |
Import original files from sla.tar.gz
Import original files from sla.tar.gz (11-Aug-16 revision)
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
65 files changed, 11278 insertions, 0 deletions
diff --git a/ACCDET.kl b/ACCDET.kl new file mode 100755 index 0000000..620fd5e --- /dev/null +++ b/ACCDET.kl @@ -0,0 +1,8 @@ + +key 122 ENDCALL +key 163 MEDIA_NEXT +key 164 HEADSETHOOK +key 165 MEDIA_PREVIOUS +key 114 VOLUME_DOWN +key 115 VOLUME_UP +key 582 VOICE_ASSIST diff --git a/BoardConfig.mk b/BoardConfig.mk new file mode 100755 index 0000000..f411e5b --- /dev/null +++ b/BoardConfig.mk @@ -0,0 +1,130 @@ +# mt6797 platform boardconfig + +# Use the non-open-source part, if present +-include vendor/mediatek/mt6797/BoardConfigVendor.mk + +# Use the common part +include device/mediatek/common/BoardConfig.mk + +ifneq ($(MTK_K64_SUPPORT), yes) +TARGET_ARCH := arm + +TARGET_CPU_VARIANT := cortex-a53 +TARGET_2ND_CPU_VARIANT := cortex-a53 + +TARGET_CPU_ABI := armeabi-v7a +TARGET_CPU_ABI2 := armeabi +TARGET_CPU_SMP := true +TARGET_ARCH_VARIANT := armv7-a-neon + +# Don't use cit 4.8 compiler for M to avoid build break +#TARGET_TOOLCHAIN_ROOT := prebuilts/gcc/$(HOST_PREBUILT_TAG)/arm/cit-arm-linux-androideabi-4.8 +#TARGET_TOOLS_PREFIX := $(TARGET_TOOLCHAIN_ROOT)/bin/arm-linux-androideabi- + +else +TARGET_ARCH := arm64 +TARGET_ARCH_VARIANT := armv8-a +TARGET_CPU_ABI := arm64-v8a +TARGET_CPU_ABI2 := + +TARGET_CPU_VARIANT := cortex-a53 +TARGET_2ND_CPU_VARIANT := cortex-a53 + +TARGET_CPU_SMP := true + +TARGET_2ND_ARCH := arm +TARGET_2ND_ARCH_VARIANT := armv7-a-neon +TARGET_2ND_CPU_ABI := armeabi-v7a +TARGET_2ND_CPU_ABI2 := armeabi +TARGET_TOOLCHAIN_ROOT := prebuilts/gcc/$(HOST_PREBUILT_TAG)/aarch64/aarch64-linux-android-4.9 +TARGET_TOOLS_PREFIX := $(TARGET_TOOLCHAIN_ROOT)/bin/aarch64-linux-android- + +KERNEL_CROSS_COMPILE:= $(abspath $(TOP))/$(TARGET_TOOLS_PREFIX) + +endif + +ARCH_ARM_HAVE_TLS_REGISTER := true +TARGET_BOARD_PLATFORM ?= mt6797 +TARGET_USERIMAGES_USE_EXT4 := true +TARGET_NO_FACTORYIMAGE := true +KERNELRELEASE := 3.4 + +# MTK, Nick Ko, 20140305, Add Display { +TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS := true +NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3 +TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK := true + +# Basic package can not set VSYNC_EVENT_PHASE_OFFSET_NS +# If VSYNC_EVENT_PHASE_OFFSET_NS is not 0, it will cause compiler error of SF +ifneq ($(MTK_BASIC_PACKAGE), yes) +ifneq ($(MTK_DISPLAY_120HZ_SUPPORT), yes) +VSYNC_EVENT_PHASE_OFFSET_NS := 8300000 +SF_VSYNC_EVENT_PHASE_OFFSET_NS := 8300000 +PRESENT_TIME_OFFSET_FROM_VSYNC_NS := 0 +else +VSYNC_EVENT_PHASE_OFFSET_NS := 0 +SF_VSYNC_EVENT_PHASE_OFFSET_NS := 0 +PRESENT_TIME_OFFSET_FROM_VSYNC_NS := 0 +endif +else +VSYNC_EVENT_PHASE_OFFSET_NS := 0 +SF_VSYNC_EVENT_PHASE_OFFSET_NS := 0 +PRESENT_TIME_OFFSET_FROM_VSYNC_NS := 0 +endif + +PRESENT_TIME_OFFSET_FROM_VSYNC_NS := 0 +ifneq ($(FPGA_EARLY_PORTING), yes) +MTK_HWC_SUPPORT := yes +else +MTK_HWC_SUPPORT := no +endif + +MTK_HWC_VERSION := 1.5.0 +# MTK, Nick Ko, 20140305, Add Display } + + +BOARD_CONNECTIVITY_VENDOR := MediaTek +BOARD_USES_MTK_AUDIO := true + +ifeq ($(MTK_AGPS_APP), yes) + BOARD_AGPS_SUPL_LIBRARIES := true +else + BOARD_AGPS_SUPL_LIBRARIES := false +endif + +ifeq ($(strip $(BOARD_CONNECTIVITY_VENDOR)), MediaTek) +BOARD_CONNECTIVITY_MODULE := conn_soc +BOARD_MEDIATEK_USES_GPS := true +endif + +# Bluetooth +BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/generic/common/bluetooth +BOARD_BLUETOOTH_BDROID_HCILP_INCLUDED := 0 + +# mkbootimg header, which is used in LK +BOARD_KERNEL_BASE = 0x40000000 +ifneq ($(MTK_K64_SUPPORT), yes) +BOARD_KERNEL_OFFSET = 0x00008000 +else +BOARD_KERNEL_OFFSET = 0x00080000 +endif +BOARD_RAMDISK_OFFSET = 0x05000000 +BOARD_TAGS_OFFSET = 0x4000000 +ifneq ($(MTK_K64_SUPPORT), yes) +BOARD_KERNEL_CMDLINE = bootopt=64S3,32S1,32S1 +else +TARGET_USES_64_BIT_BINDER := true +TARGET_IS_64_BIT := true +BOARD_KERNEL_CMDLINE = bootopt=64S3,32N2,64N2 +endif +BOARD_MKBOOTIMG_ARGS := --kernel_offset $(BOARD_KERNEL_OFFSET) --ramdisk_offset $(BOARD_RAMDISK_OFFSET) --tags_offset $(BOARD_TAGS_OFFSET) + +# ptgen +MTK_PTGEN_CHIP := $(shell echo $(TARGET_BOARD_PLATFORM) | tr '[a-z]' '[A-Z]') +-include device/mediatek/build/build/tools/ptgen/$(MTK_PTGEN_CHIP)/ptgen.mk + +BOARD_SEPOLICY_DIRS += device/mediatek/mt6797/sepolicy + +MTK_GPU_VERSION := mali midgard r7p0 + +MTK_CAM_FRAMEWORK_DEFAULT_CODE := yes diff --git a/audio_device.xml b/audio_device.xml new file mode 100755 index 0000000..5b2bd0d --- /dev/null +++ b/audio_device.xml @@ -0,0 +1,269 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<mixercontrol> + <versioncontrol value="1.01"> + </versioncontrol> + <!-- These are the initial mixer settings --> + <kctl name="Audio_Speaker_class_Switch" value="CLASSAB" /> + <!--headphone output--> + <path name="headphone_output" value="turnon"> + <kctl name="Audio_Amp_R_Switch" value="On" /> + <kctl name="Audio_Amp_L_Switch" value="On" /> + </path> + <path name="headphone_output" value="turnoff"> + <kctl name="Audio_Amp_R_Switch" value="Off" /> + <kctl name="Audio_Amp_L_Switch" value="Off" /> + </path> + <!--receiver output--> + <path name="receiver_output" value="turnon"> + <kctl name="Voice_Amp_Switch" value="On" /> + </path> + <path name="receiver_output" value="turnoff"> + <kctl name="Voice_Amp_Switch" value="Off" /> + </path> + <!-- 2-in-1 speaker output--> + <path name="two_in_one_speaker_output" value="turnon"> + <kctl name="Speaker_Amp_Switch" value="On" /> + <kctl name="Audio_Speaker_class_Switch" value="CLASSAB" /> + </path> + <path name="two_in_one_speaker_output" value="turnoff"> + <kctl name="Audio_Speaker_class_Switch" value="RECEIVER" /> + <kctl name="Speaker_Amp_Switch" value="Off" /> + </path> + <!--speaker output--> + <path name="speaker_output" value="turnon"> + <kctl name="Speaker_Amp_Switch" value="On" /> + </path> + <path name="speaker_output" value="turnoff"> + <kctl name="Speaker_Amp_Switch" value="Off" /> + </path> + <!--headhpone_speaker output--> + <path name="headphoneSpeaker_output" value="turnon"> + <kctl name="Headset_Speaker_Amp_Switch" value="On" /> + </path> + <path name="headphoneSpeaker_output" value="turnoff"> + <kctl name="Headset_Speaker_Amp_Switch" value="Off" /> + </path> + <!--speaker output--> + <path name="maxim_speaker_output" value="turnon"> + <kctl name="Spk_Enable" value="On" /> + </path> + <path name="maxim_speaker_output" value="turnoff"> + <kctl name="Spk_Enable" value="Off" /> + </path> + <!--headhpone_speaker output--> + <path name="maxim_headphoneSpeaker_output" value="turnon"> + <kctl name="Spk_Enable" value="On" /> + <kctl name="Audio_Amp_R_Switch" value="On" /> + <kctl name="Audio_Amp_L_Switch" value="On" /> + </path> + <path name="maxim_headphoneSpeaker_output" value="turnoff"> + <kctl name="Audio_Amp_R_Switch" value="Off" /> + <kctl name="Audio_Amp_L_Switch" value="Off" /> + <kctl name="Spk_Enable" value="Off" /> + </path> + <!--external_speaker output--> + <path name="ext_speaker_output" value="turnon"> + <kctl name="Ext_Speaker_Amp_Switch" value="On" /> + </path> + <path name="ext_speaker_output" value="turnoff"> + <kctl name="Ext_Speaker_Amp_Switch" value="Off" /> + </path> + <!--mic setting--> + <path name="builtin_Mic_Mic1" value="turnon"> + <kctl name="Audio_MicSource1_Setting" value="ADC1" /> + <kctl name="Audio_ADC_1_Switch" value="On" /> + <kctl name="Audio_ADC_2_Switch" value="On" /> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC1" /> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC1" /> + </path> + <path name="builtin_Mic_Mic1" value="turnoff"> + <kctl name="Audio_Preamp1_Switch" value="OPEN" /> + <kctl name="Audio_Preamp2_Switch" value="OPEN" /> + <kctl name="Audio_ADC_1_Switch" value="Off" /> + <kctl name="Audio_ADC_2_Switch" value="Off" /> + </path> + <path name="builtin_Mic_Mic1_Inverse" value="turnon"> + <kctl name="Audio_MicSource1_Setting" value="ADC1" /> + <kctl name="Audio_ADC_1_Switch" value="On" /> + <kctl name="Audio_ADC_2_Switch" value="On" /> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC3" /> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC3" /> + </path> + <path name="builtin_Mic_Mic1_Inverse" value="turnoff"> + <kctl name="Audio_Preamp1_Switch" value="OPEN" /> + <kctl name="Audio_Preamp2_Switch" value="OPEN" /> + <kctl name="Audio_ADC_1_Switch" value="Off" /> + <kctl name="Audio_ADC_2_Switch" value="Off" /> + </path> + <path name="builtin_Mic_Mic2" value="turnon"> + <kctl name="Audio_MicSource1_Setting" value="ADC1" /> + <kctl name="Audio_ADC_1_Switch" value="On" /> + <kctl name="Audio_ADC_2_Switch" value="On" /> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC3" /> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC3" /> + </path> + <path name="builtin_Mic_Mic2" value="turnoff"> + <kctl name="Audio_Preamp1_Switch" value="OPEN" /> + <kctl name="Audio_Preamp2_Switch" value="OPEN" /> + <kctl name="Audio_ADC_1_Switch" value="Off" /> + <kctl name="Audio_ADC_2_Switch" value="Off" /> + </path> + <path name="builtin_Mic_Mic2_Inverse" value="turnon"> + <kctl name="Audio_MicSource1_Setting" value="ADC1" /> + <kctl name="Audio_ADC_1_Switch" value="On" /> + <kctl name="Audio_ADC_2_Switch" value="On" /> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC1" /> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC1" /> + </path> + <path name="builtin_Mic_Mic2_Inverse" value="turnoff"> + <kctl name="Audio_Preamp1_Switch" value="OPEN" /> + <kctl name="Audio_Preamp2_Switch" value="OPEN" /> + <kctl name="Audio_ADC_1_Switch" value="Off" /> + <kctl name="Audio_ADC_2_Switch" value="Off" /> + </path> + <path name="builtin_Mic_SingleMic" value="turnon"> + <kctl name="Audio_MicSource1_Setting" value="ADC1" /> + <kctl name="Audio_ADC_1_Switch" value="On" /> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC1" /> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC1" /> + </path> + <path name="builtin_Mic_SingleMic" value="turnoff"> + <kctl name="Audio_Preamp1_Switch" value="OPEN" /> + <kctl name="Audio_Preamp2_Switch" value="OPEN" /> + <kctl name="Audio_ADC_1_Switch" value="Off" /> + </path> + <path name="builtin_Mic_DualMic" value="turnon"> + <kctl name="Audio_MicSource1_Setting" value="ADC1" /> + <kctl name="Audio_ADC_1_Switch" value="On" /> + <kctl name="Audio_ADC_2_Switch" value="On" /> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC1" /> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC3" /> + </path> + <path name="builtin_Mic_DualMic" value="turnoff"> + <kctl name="Audio_Preamp1_Switch" value="OPEN" /> + <kctl name="Audio_Preamp2_Switch" value="OPEN" /> + <kctl name="Audio_ADC_1_Switch" value="Off" /> + <kctl name="Audio_ADC_2_Switch" value="Off" /> + </path> + <path name="builtin_Mic_BackMic" value="turnon"> + <kctl name="Audio_MicSource1_Setting" value="ADC1" /> + <kctl name="Audio_ADC_1_Switch" value="On" /> + <kctl name="Audio_ADC_2_Switch" value="On" /> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC3" /> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC3" /> + </path> + <path name="builtin_Mic_BackMic" value="turnoff"> + <kctl name="Audio_Preamp1_Switch" value="OPEN" /> + <kctl name="Audio_Preamp2_Switch" value="OPEN" /> + <kctl name="Audio_ADC_1_Switch" value="Off" /> + <kctl name="Audio_ADC_2_Switch" value="Off" /> + </path> + <path name="builtin_Mic_BackMic_Inverse" value="turnon"> + <kctl name="Audio_MicSource1_Setting" value="ADC1" /> + <kctl name="Audio_ADC_1_Switch" value="On" /> + <kctl name="Audio_ADC_2_Switch" value="On" /> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC1" /> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC1" /> + </path> + <path name="builtin_Mic_BackMic_Inverse" value="turnoff"> + <kctl name="Audio_Preamp1_Switch" value="OPEN" /> + <kctl name="Audio_Preamp2_Switch" value="OPEN" /> + <kctl name="Audio_ADC_1_Switch" value="Off" /> + <kctl name="Audio_ADC_2_Switch" value="Off" /> + </path> + <path name="headset_mic_input" value="turnon"> + <kctl name="Audio_MicSource1_Setting" value="ADC2" /> + <kctl name="Audio_ADC_1_Switch" value="On" /> + <kctl name="Audio_ADC_2_Switch" value="On" /> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC2" /> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC2" /> + </path> + <path name="headset_mic_input" value="turnoff"> + <kctl name="Audio_Preamp1_Switch" value="OPEN" /> + <kctl name="Audio_Preamp2_Switch" value="OPEN" /> + <kctl name="Audio_ADC_1_Switch" value="Off" /> + <kctl name="Audio_ADC_2_Switch" value="Off" /> + </path> + <path name="sidetone_switch" value="turnon"> + <kctl name="Audio_Sidetone_Switch" value="On" /> + </path> + <path name="sidetone_switch" value="turnoff"> + <kctl name="Audio_Sidetone_Switch" value="Off" /> + </path> + <!--mic1 type setting--> + <path name="Mic1TypeACCMode" value="setting"> + <kctl name="Audio_MIC1_Mode_Select" value="ACCMODE" />> + </path> + <path name="Mic1TypeDCCMode" value="setting"> + <kctl name="Audio_MIC1_Mode_Select" value="DCCMODE" />> + </path> + <path name="Mic1TypeDMICMode" value="setting"> + <kctl name="Audio_MIC1_Mode_Select" value="DMIC" />> + <kctl name="dmic path" value="On" /> + </path> + <path name="Mic1TypeDCCECMDIFFMode" value="setting"> + <kctl name="Audio_MIC1_Mode_Select" value="DCCECMDIFFMODE" />> + </path> + <path name="Mic1TypeDCCECMSINGLEMode" value="setting"> + <kctl name="Audio_MIC1_Mode_Select" value="DCCECMSINGLEMODE" />> + </path> + <!--mic2 type setting--> + <path name="Mic2TypeACCMode" value="setting"> + <kctl name="Audio_MIC2_Mode_Select" value="ACCMODE" />> + </path> + <path name="Mic2TypeDCCMode" value="setting"> + <kctl name="Audio_MIC2_Mode_Select" value="DCCMODE" />> + </path> + <path name="Mic2TypeDMICMode" value="setting"> + <kctl name="Audio_MIC2_Mode_Select" value="DMIC" />> + <kctl name="dmic path" value="On" /> + </path> + <path name="Mic2TypeDCCECMDIFFMode" value="setting"> + <kctl name="Audio_MIC2_Mode_Select" value="DCCECMDIFFMODE" />> + </path> + <path name="Mic2TypeDCCECMSINGLEMode" value="setting"> + <kctl name="Audio_MIC2_Mode_Select" value="DCCECMSINGLEMODE" />> + </path> + <!--mic3 type setting--> + <path name="Mic3TypeACCMode" value="setting"> + <kctl name="Audio_MIC3_Mode_Select" value="ACCMODE" />> + </path> + <path name="Mic3TypeDCCMode" value="setting"> + <kctl name="Audio_MIC3_Mode_Select" value="DCCMODE" />> + </path> + <path name="Mic3TypeDMICMode" value="setting"> + <kctl name="Audio_MIC3_Mode_Select" value="DMIC" />> + <kctl name="dmic path" value="On" /> + </path> + <path name="Mic3TypeDCCECMDIFFMode" value="setting"> + <kctl name="Audio_MIC3_Mode_Select" value="DCCECMDIFFMODE" />> + </path> + <path name="Mic3TypeDCCECMSINGLEMode" value="setting"> + <kctl name="Audio_MIC3_Mode_Select" value="DCCECMSINGLEMODE" />> + </path> + <!--mic4 type setting--> + <path name="Mic4TypeACCMode" value="setting"> + <kctl name="Audio_MIC4_Mode_Select" value="ACCMODE" />> + </path> + <path name="Mic4TypeDCCMode" value="setting"> + <kctl name="Audio_MIC4_Mode_Select" value="DCCMODE" />> + </path> + <path name="Mic4TypeDMICMode" value="setting"> + <kctl name="Audio_MIC4_Mode_Select" value="DMIC" />> + <kctl name="dmic path" value="On" /> + </path> + <path name="Mic4TypeDCCECMDIFFMode" value="setting"> + <kctl name="Audio_MIC4_Mode_Select" value="DCCECMDIFFMODE" />> + </path> + <path name="Mic4TypeDCCECMSINGLEMode" value="setting"> + <kctl name="Audio_MIC4_Mode_Select" value="DCCECMSINGLEMODE" />> + </path> + <path name="Mic_Setting_Inverse" value="setting"> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC3" />> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC1" />> + </path> + <path name="Mic_Setting_NoInverse" value="setting"> + <kctl name="Audio_Preamp1_Switch" value="IN_ADC1" />> + <kctl name="Audio_Preamp2_Switch" value="IN_ADC3" />> + </path> +</mixercontrol> diff --git a/audio_device_param/DSM.xml b/audio_device_param/DSM.xml new file mode 100755 index 0000000..ab66739 --- /dev/null +++ b/audio_device_param/DSM.xml @@ -0,0 +1,336 @@ +<?xml version="1.0" encoding="ISO-8859-1" ?> +<DSM> + <param name="SETGET_ENABLE" id="1"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SETGET_COILTEMP_THRESHOLD" id="2"> + <params type="float" value="19" currentv="123.000000" /> + </param> + <param name="SETGET_XCL_THRESHOLD" id="3"> + <params type="float" value="27" currentv="123.000000" /> + </param> + <param name="SETGET_LIMITERS_RELTIME" id="4"> + <params type="float" value="30" currentv="123.000000" /> + </param> + <param name="SETGET_MAKEUP_GAIN" id="5"> + <params type="float" value="29" currentv="123.000000" /> + </param> + <param name="SETGET_RDC_AT_ROOMTEMP" id="6"> + <params type="float" value="27" currentv="123.000000" /> + </param> + <param name="COPPER_CONSTANT" id="7"> + <params type="float" value="30" currentv="123.000000" /> + </param> + <param name="SETGET_COLDTEMP" id="8"> + <params type="float" value="19" currentv="123.000000" /> + </param> + <param name="SETGET_PITONE_GAIN" id="9"> + <params type="float" value="31" currentv="123.000000" /> + </param> + <param name="SETGET_LEAD_RESISTANCE" id="10"> + <params type="float" value="27" currentv="123.000000" /> + </param> + <param name="SETGET_HPCUTOFF_FREQ" id="11"> + <params type="float" value="9" currentv="123.000000" /> + </param> + <param name="SETGET_LFX_GAIN" id="12"> + <params type="float" value="30" currentv="123.000000" /> + </param> + <param name="SETGET_REF_FC" id="13"> + <params type="float" value="9" currentv="123.000000" /> + </param> + <param name="SETGET_REF_Q" id="14"> + <params type="float" value="29" currentv="123.000000" /> + </param> + <param name="INIT_F_Q_FILTERS" id="15"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="GET_ADAPTIVE_FC" id="16"> + <params type="float" value="9" currentv="123.000000" /> + </param> + <param name="GET_ADAPTIVE_Q" id="17"> + <params type="float" value="29" currentv="123.000000" /> + </param> + <param name="GET_ADAPTIVE_DC_RES" id="18"> + <params type="float" value="27" currentv="123.000000" /> + </param> + <param name="GET_ADAPTIVE_COILTEMP" id="19"> + <params type="float" value="19" currentv="123.000000" /> + </param> + <param name="GET_EXCURSION" id="20"> + <params type="float" value="27" currentv="123.000000" /> + </param> + <param name="GET_PCM_INPUT_DATA" id="21"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="GET_IV_DATA" id="22"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="GET_PCM_AND_IV_DATA" id="23"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="GET_PCM_OUTPUT_DATA" id="24"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SETGET_VLIMIT_RELEASE_TIME" id="25"> + <params type="float" value="27" currentv="123.000000" /> + </param> + <param name="SETGET_VLIMIT" id="26"> + <params type="float" value="27" currentv="123.000000" /> + </param> + <param name="SETGET_ROOM_TEMP" id="27"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SETGET_PILOT_ENABLE" id="28"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SETGET_CLIP_ENABLE" id="29"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SETGET_EXC_ENABLE" id="30"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SETGET_THERMAL_ENABLE" id="31"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SETGET_EQ_BAND_FC" id="32"> + <params type="float" value="9" currentv="123.000000" /> + </param> + <param name="SETGET_EQ_BAND_Q" id="33"> + <params type="float" value="29" currentv="123.000000" /> + </param> + <param name="SETGET_EQ_BAND_ATTENUATION_DB" id="34"> + <params type="float" value="20" currentv="123.000000" /> + </param> + <param name="SET_EQ_BAND_COEFF_UPDATE" id="35"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SETGET_EQ_BAND_ENABLE" id="36"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SETGET_EQ_BAND_DISABLE" id="37"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="GET_ZIMP_A1" id="38"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="GET_ZIMP_A2" id="39"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="GET_ZIMP_B0" id="40"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="GET_ZIMP_B1" id="41"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="GET_ZIMP_B2" id="42"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_EQ1_A1" id="43"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_EQ1_A2" id="44"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_EQ1_B0" id="45"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_EQ1_B1" id="46"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_EQ1_B2" id="47"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_EQ2_A1" id="48"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_EQ2_A2" id="49"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_EQ2_B0" id="50"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_EQ2_B1" id="51"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_EQ2_B2" id="52"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_EQ3_A1" id="53"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_EQ3_A2" id="54"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_EQ3_B0" id="55"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_EQ3_B1" id="56"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_EQ3_B2" id="57"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_EQ4_A1" id="58"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_EQ4_A2" id="59"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_EQ4_B0" id="60"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_EQ4_B1" id="61"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_EQ4_B2" id="62"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_TRAJECTORY" id="63"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="GET_FFTTRACK_FC" id="64"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SET_UPDATE_DELAY" id="65"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SETGET_DELAY" id="66"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="GET_MAXIMUM_DELAY" id="67"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SETGET_ENABLE_FAST_FC" id="68"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SETGET_MEASURE_DELAY" id="69"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SETGET_ENABLE_LOGGING" id="70"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SETGET_SPEAKER_PARAM_LFX_A1" id="71"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_SPEAKER_PARAM_LFX_A2" id="72"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_SPEAKER_PARAM_LFX_B0" id="73"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_SPEAKER_PARAM_LFX_B1" id="74"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_SPEAKER_PARAM_LFX_B2" id="75"> + <params type="float" value="28" currentv="123.000000" /> + </param> + <param name="SETGET_SPEAKER_PARAM_TCTH1" id="76"> + <params type="float" value="20" currentv="123.000000" /> + </param> + <param name="SETGET_SPEAKER_PARAM_TCTH2" id="77"> + <params type="float" value="20" currentv="123.000000" /> + </param> + <param name="SETGET_SPEAKER_PARAM_RTH1" id="78"> + <params type="float" value="24" currentv="123.000000" /> + </param> + <param name="SETGET_SPEAKER_PARAM_RTH2" id="79"> + <params type="float" value="23" currentv="123.000000" /> + </param> + <param name="SETGET_SPEAKER_PARAM_ADMIT_A1" id="80"> + <params type="float" value="30" currentv="123.000000" /> + </param> + <param name="SETGET_SPEAKER_PARAM_ADMIT_A2" id="81"> + <params type="float" value="30" currentv="123.000000" /> + </param> + <param name="SETGET_SPEAKER_PARAM_ADMIT_B0" id="82"> + <params type="float" value="30" currentv="123.000000" /> + </param> + <param name="SETGET_SPEAKER_PARAM_ADMIT_B1" id="83"> + <params type="float" value="30" currentv="123.000000" /> + </param> + <param name="SETGET_SPEAKER_PARAM_ADMIT_B2" id="84"> + <params type="float" value="30" currentv="123.000000" /> + </param> + <param name="SETGET_SPEAKER_PARAM_UPDATE" id="85"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SETGET_FC_RESET_COUNT" id="86"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SETGET_GENERATE_SINE_WAVE" id="87"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="GET_FIRMWARE_BUILD_TIME" id="88"> + <params type="float" value="-1" currentv="0" /> + </param> + <param name="GET_FIRMWARE_BUILD_DATE" id="89"> + <params type="float" value="-1" currentv="0" /> + </param> + <param name="GET_FIRMWARE_VERSION" id="90"> + <params type="float" value="-1" currentv="0" /> + </param> + <param name="GET_CHIPSET_MODEL" id="91"> + <params type="float" value="-1" currentv="0" /> + </param> + <param name="GET_ENDIAN" id="92"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SETGET_SINE_WAVE_GAIN" id="93"> + <params type="float" value="15" currentv="123.000000" /> + </param> + <param name="SETGET_VIRTUAL_V_ENABLE" id="94"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SETGET_FORCED_VIRTUAL_V" id="95"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SETGET_I_SHIFT_BITS" id="96"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SETGET_EXC_FUNC_GAIN_ADJUSTED" id="97"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="FADE_IN_TIME_MS" id="98"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="FADE_OUT_TIME_MS" id="99"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="FADE_OUT_MUTE_TIME_MS" id="100"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="FADE_IN_MUTE_ENALE" id="101"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="FADE_OUT_MUTE_ENALE" id="102"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="ENABLE_MULTICHAN_LINKING" id="103"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="ENABLE_SMART_PT" id="104"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="PILOTTONE_SILENCE_THRESHOLD" id="105"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="SILENCE_PILOTTONE_GAIN" id="106"> + <params type="float" value="31" currentv="123.000000" /> + </param> + <param name="SILENCE_FRAMES" id="107"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="PILOTTONE_TRANSITION_FRAMES" id="108"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="LARGE_PILOTTONE_THRESHOLD" id="109"> + <params type="float" value="0" currentv="123.000000" /> + </param> + <param name="LARGE_PILOTTONE_GAIN" id="110"> + <params type="float" value="31" currentv="123.000000" /> + </param> + <param name="ENABLE_XCL_LIMITER" id="111"> + <params type="float" value="0" currentv="0" /> + </param> +</DSM> diff --git a/audio_device_param/DSM_config.xml b/audio_device_param/DSM_config.xml new file mode 100755 index 0000000..8e57ea5 --- /dev/null +++ b/audio_device_param/DSM_config.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="ISO-8859-1" ?> +<DSM> + <param usecase="1"> + <params id="6" currentv="1.66" /> + <params id="13" currentv="730" /> + <params id="14" currentv="2.2" /> + <params id="15" currentv="1" /> + <params id="12" currentv="0.5" /> + <params id="2" currentv="100" /> + <params id="5" currentv="2.5" /> + </param> + <param usecase="2"> + <params id="6" currentv="1.94" /> + <params id="3" currentv="0.70" /> + <params id="9" currentv="0.01" /> + <params id="11" currentv="100" /> + <params id="13" currentv="780.6" /> + <params id="14" currentv="2.132" /> + <params id="15" currentv="1" /> + <params id="12" currentv="0.3" /> + <params id="2" currentv="90" /> + <params id="5" currentv="2" /> + <params id="71" currentv="-0.584833" /> + <params id="72" currentv="0.779609" /> + <params id="73" currentv="7.864015" /> + <params id="74" currentv="-4.264444" /> + <params id="75" currentv="5.112413" /> + <params id="80" currentv="-1.931832" /> + <params id="81" currentv="0.942124" /> + <params id="82" currentv="0.134564" /> + <params id="83" currentv="-0.264935" /> + <params id="84" currentv="0.131782" /> + <params id="76" currentv="2.2" /> + <params id="77" currentv="131.6" /> + <params id="78" currentv="53.5" /> + <params id="79" currentv="53.5" /> + <params id="85" currentv="1" /> + </param> +</DSM> diff --git a/audio_policy.conf b/audio_policy.conf new file mode 100755 index 0000000..b5da0d1 --- /dev/null +++ b/audio_policy.conf @@ -0,0 +1,186 @@ +# +# Audio policy configuration for generic device builds (goldfish audio HAL - emulator) +# + +# Global configuration section: lists input and output devices always present on the device +# as well as the output device selected by default. +# Devices are designated by a string that corresponds to the enum in audio.h + +#global_configuration { +# attached_output_devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE +# default_output_device AUDIO_DEVICE_OUT_SPEAKER +# attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_REMOTE_SUBMIX|AUDIO_DEVICE_IN_FM_TUNER +#} + +# audio hardware module section: contains descriptors for all audio hw modules present on the +# device. Each hw module node is named after the corresponding hw module library base name. +# For instance, "primary" corresponds to audio.primary.<device>.so. +# The "primary" module is mandatory and must include at least one output with +# AUDIO_OUTPUT_FLAG_PRIMARY flag. +# Each module descriptor contains one or more output profile descriptors and zero or more +# input profile descriptors. Each profile lists all the parameters supported by a given output +# or input stream category. +# The "channel_masks", "formats", "devices" and "flags" are specified using strings corresponding +# to enums in audio.h and audio_policy.h. They are concatenated by use of "|" without space or "\n". + +audio_hw_modules { + primary { + global_configuration { + attached_output_devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE + default_output_device AUDIO_DEVICE_OUT_SPEAKER + attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_FM_TUNER|AUDIO_DEVICE_IN_VOICE_CALL + audio_hal_version 3.0 + } + devices { + headset { + type AUDIO_DEVICE_OUT_WIRED_HEADSET + gains { + gain_1 { + mode AUDIO_GAIN_MODE_JOINT + channel_mask AUDIO_CHANNEL_OUT_STEREO + min_value_mB -6400 + max_value_mB 0 + default_value_mB 0 + step_value_mB 100 + min_ramp_ms 0 + max_ramp_ms 0 + } + } + } + headphone { + type AUDIO_DEVICE_OUT_WIRED_HEADPHONE + gains { + gain_1 { + mode AUDIO_GAIN_MODE_JOINT + channel_mask AUDIO_CHANNEL_OUT_STEREO + min_value_mB -6400 + max_value_mB 0 + default_value_mB 0 + step_value_mB 100 + min_ramp_ms 0 + max_ramp_ms 0 + } + } + } + } + outputs { + primary { + sampling_rates 44100|48000|96000|192000 + channel_masks AUDIO_CHANNEL_OUT_STEREO + formats AUDIO_FORMAT_PCM_32_BIT|AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET|AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_FM|AUDIO_DEVICE_OUT_DEFAULT + flags AUDIO_OUTPUT_FLAG_PRIMARY + gains { + gain_1 { + mode AUDIO_GAIN_MODE_JOINT + channel_mask AUDIO_CHANNEL_OUT_STEREO + min_value_mB -6400 + max_value_mB 0 + default_value_mB 0 + step_value_mB 100 + min_ramp_ms 0 + max_ramp_ms 0 + } + } + } + hdmi_stereo { + sampling_rates 44100 + channel_masks AUDIO_CHANNEL_OUT_STEREO + formats AUDIO_FORMAT_PCM_32_BIT|AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_OUT_AUX_DIGITAL + } + hdmi_multi_channel { + sampling_rates 32000|44100|48000 + channel_masks AUDIO_CHANNEL_OUT_5POINT1|AUDIO_CHANNEL_OUT_7POINT1 + formats AUDIO_FORMAT_PCM_32_BIT|AUDIO_FORMAT_PCM_8_24_BIT|AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_OUT_AUX_DIGITAL + flags AUDIO_OUTPUT_FLAG_DIRECT + } + fast { + sampling_rates 44100|48000|96000|192000 + channel_masks AUDIO_CHANNEL_OUT_STEREO + formats AUDIO_FORMAT_PCM_32_BIT|AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_EARPIECE + flags AUDIO_OUTPUT_FLAG_FAST + } + } + inputs { + primary { + sampling_rates 8000|16000|32000|44100|48000 + channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO|AUDIO_CHANNEL_IN_VOICE_UPLINK|AUDIO_CHANNEL_IN_VOICE_DNLINK + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_IN_COMMUNICATION|AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_AMBIENT|AUDIO_DEVICE_IN_WIRED_HEADSET|AUDIO_DEVICE_IN_AUX_DIGITAL|AUDIO_DEVICE_IN_MATV|AUDIO_DEVICE_IN_VOICE_CALL|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_ALL_SCO|AUDIO_DEVICE_IN_FM_TUNER|AUDIO_DEVICE_IN_DEFAULT + } + } + } + a2dp { + global_configuration { + audio_hal_version 2.0 + } + outputs { + a2dp { + sampling_rates 44100 + channel_masks AUDIO_CHANNEL_OUT_STEREO + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_OUT_ALL_A2DP + } + } + inputs { + a2dp { + sampling_rates 44100 + channel_masks AUDIO_CHANNEL_IN_STEREO + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_IN_BLUETOOTH_A2DP + } + } + } + usb { + global_configuration { + audio_hal_version 2.0 + } + outputs { + usb_accessory { + sampling_rates 44100 + channel_masks AUDIO_CHANNEL_OUT_STEREO + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_OUT_USB_ACCESSORY + } + usb_device { + sampling_rates dynamic + channel_masks dynamic + formats dynamic + devices AUDIO_DEVICE_OUT_USB_DEVICE + } + } + inputs { + usb_device { + sampling_rates dynamic + channel_masks AUDIO_CHANNEL_IN_STEREO + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_IN_USB_DEVICE + } + } + } + r_submix { + global_configuration { + attached_input_devices AUDIO_DEVICE_IN_REMOTE_SUBMIX + audio_hal_version 2.0 + } + outputs { + r_submix { + sampling_rates 48000 + channel_masks AUDIO_CHANNEL_OUT_STEREO + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_OUT_REMOTE_SUBMIX + } + } + inputs { + r_submix { + sampling_rates 48000 + channel_masks AUDIO_CHANNEL_IN_STEREO + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_IN_REMOTE_SUBMIX + } + } + } +} diff --git a/aurisys_param/phone_call/forte_media/FV-SAM-MTK2.dat b/aurisys_param/phone_call/forte_media/FV-SAM-MTK2.dat Binary files differnew file mode 100755 index 0000000..10bc759 --- /dev/null +++ b/aurisys_param/phone_call/forte_media/FV-SAM-MTK2.dat diff --git a/device.mk b/device.mk new file mode 100755 index 0000000..d50cb37 --- /dev/null +++ b/device.mk @@ -0,0 +1,1338 @@ + +PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.location.gps.xml:system/etc/permissions/android.hardware.location.gps.xml +PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.xml:system/etc/permissions/android.hardware.wifi.xml +PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.direct.xml:system/etc/permissions/android.hardware.wifi.direct.xml +PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.bluetooth.xml:system/etc/permissions/android.hardware.bluetooth.xml +PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.bluetooth_le.xml:system/etc/permissions/android.hardware.bluetooth_le.xml +PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.touchscreen.xml:system/etc/permissions/android.hardware.touchscreen.xml + +ifneq ($(strip $(CUSTOM_KERNEL_STEP_COUNTER)),) +PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:system/etc/permissions/android.hardware.sensor.stepcounter.xml +PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:system/etc/permissions/android.hardware.sensor.stepdetector.xml +endif + +ifeq ($(strip $(MTK_IRTX_SUPPORT)),yes) +PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.consumerir.xml:system/etc/permissions/android.hardware.consumerir.xml +PRODUCT_PACKAGES += consumerir.mt6797 +PRODUCT_PACKAGES += consumerir.mt6797m +PRODUCT_PACKAGES += consumerir.mt6753 +endif + +#GPU collection +PRODUCT_PACKAGES += libI420colorconvert +PRODUCT_PACKAGES += libvcodec_utility +PRODUCT_PACKAGES += libvcodec_oal +PRODUCT_PACKAGES += libh264enc_sa.ca7 +PRODUCT_PACKAGES += libh264enc_sb.ca7 +PRODUCT_PACKAGES += libHEVCdec_sa.ca7.android +PRODUCT_PACKAGES += libmp4enc_sa.ca7 +PRODUCT_PACKAGES += libmp4enc_xa.ca7 +PRODUCT_PACKAGES += libvc1dec_sa.ca7 +PRODUCT_PACKAGES += libvp8dec_sa.ca7 +PRODUCT_PACKAGES += libvp8enc_sa.ca7 +PRODUCT_PACKAGES += libvp9dec_sa.ca7 +PRODUCT_PACKAGES += libvideoeditorplayer +PRODUCT_PACKAGES += libvideoeditor_osal +PRODUCT_PACKAGES += libvideoeditor_3gpwriter +PRODUCT_PACKAGES += libvideoeditor_mcs +PRODUCT_PACKAGES += libvideoeditor_core +PRODUCT_PACKAGES += libvideoeditor_stagefrightshells +PRODUCT_PACKAGES += libvideoeditor_videofilters +PRODUCT_PACKAGES += libvideoeditor_jni +PRODUCT_PACKAGES += audio.primary.default +PRODUCT_PACKAGES += audio.primary.mt6797 +PRODUCT_PACKAGES += sound_trigger.primary.mt6797 +PRODUCT_PACKAGES += audio.primary.mt6797m +PRODUCT_PACKAGES += audio.primary.mt6753 +PRODUCT_PACKAGES += audio_policy.stub +PRODUCT_PACKAGES += local_time.default +PRODUCT_PACKAGES += libaudiocustparam +PRODUCT_PACKAGES += libh264dec_xa.ca9 +PRODUCT_PACKAGES += libh264dec_xb.ca9 +PRODUCT_PACKAGES += libh264dec_customize +PRODUCT_PACKAGES += libmp4dec_sa.ca9 +PRODUCT_PACKAGES += libmp4dec_sb.ca9 +PRODUCT_PACKAGES += libmp4dec_customize +PRODUCT_PACKAGES += libvp8dec_xa.ca9 +PRODUCT_PACKAGES += libmp4enc_xa.ca9 +PRODUCT_PACKAGES += libmp4enc_xb.ca9 +PRODUCT_PACKAGES += libh264enc_sa.ca9 +PRODUCT_PACKAGES += libh264enc_sb.ca9 +PRODUCT_PACKAGES += libvcodec_oal +PRODUCT_PACKAGES += libvc1dec_sa.ca9 +PRODUCT_PACKAGES += liblic_divx +PRODUCT_PACKAGES += liblic_s263 +PRODUCT_PACKAGES += init.factory.rc +PRODUCT_PACKAGES += libaudio.primary.default +PRODUCT_PACKAGES += audio_policy.default +PRODUCT_PACKAGES += audio_policy.mt6797 +PRODUCT_PACKAGES += libaudio.a2dp.default +PRODUCT_PACKAGES += libMtkVideoTranscoder +PRODUCT_PACKAGES += libMtkOmxCore +PRODUCT_PACKAGES += libMtkOmxOsalUtils +PRODUCT_PACKAGES += libMtkOmxVdecEx +PRODUCT_PACKAGES += libMtkOmxVenc +PRODUCT_PACKAGES += libaudiodcrflt +PRODUCT_PACKAGES += libaudiosetting +PRODUCT_PACKAGES += librtp_jni +PRODUCT_PACKAGES += mfv_ut +PRODUCT_PACKAGES += libstagefrighthw +PRODUCT_PACKAGES += libstagefright_memutil +PRODUCT_PACKAGES += factory.ini +PRODUCT_PACKAGES += libmtdutil +PRODUCT_PACKAGES += libminiui +PRODUCT_PACKAGES += factory +PRODUCT_PACKAGES += drvbd +PRODUCT_PACKAGES += libaudio.usb.default +PRODUCT_PACKAGES += audio.usb.default +PRODUCT_PACKAGES += AccountAndSyncSettings +PRODUCT_PACKAGES += DeskClock +PRODUCT_PACKAGES += AlarmProvider +PRODUCT_PACKAGES += Bluetooth +PRODUCT_PACKAGES += Calculator +PRODUCT_PACKAGES += Calendar +PRODUCT_PACKAGES += CertInstaller +PRODUCT_PACKAGES += DrmProvider +PRODUCT_PACKAGES += Email +PRODUCT_PACKAGES += FusedLocation +PRODUCT_PACKAGES += TelephonyProvider +PRODUCT_PACKAGES += Exchange2 +PRODUCT_PACKAGES += LatinIME +PRODUCT_PACKAGES += Music +PRODUCT_PACKAGES += MusicFX +PRODUCT_PACKAGES += Protips +PRODUCT_PACKAGES += QuickSearchBox +PRODUCT_PACKAGES += Settings +PRODUCT_PACKAGES += Sync +PRODUCT_PACKAGES += SystemUI +PRODUCT_PACKAGES += Updater +PRODUCT_PACKAGES += CalendarProvider +PRODUCT_PACKAGES += ccci_mdinit +PRODUCT_PACKAGES += ccci_fsd +PRODUCT_PACKAGES += ccci_rpcd +PRODUCT_PACKAGES += batterywarning +PRODUCT_PACKAGES += SyncProvider +PRODUCT_PACKAGES += Launcher3 +PRODUCT_PACKAGES += disableapplist.txt +PRODUCT_PACKAGES += resmonwhitelist.txt +PRODUCT_PACKAGES += MTKThermalManager +PRODUCT_PACKAGES += libmtcloader +PRODUCT_PACKAGES += thermal_manager +PRODUCT_PACKAGES += thermald +PRODUCT_PACKAGES += thermal +PRODUCT_PACKAGES += CellConnService +ifneq ($(strip $(OPTR_SPEC_SEG_DEF)),NONE) + PRODUCT_PACKAGES += MTKAndroidSuiteDaemon +endif +PRODUCT_PACKAGES += thermalloadalgod +PRODUCT_PACKAGES += libthermalalgo +PRODUCT_PACKAGES += ami304d +PRODUCT_PACKAGES += akmd8963 +PRODUCT_PACKAGES += akmd09911 +PRODUCT_PACKAGES += akmd09912 +PRODUCT_PACKAGES += akmd8975 +PRODUCT_PACKAGES += istd8303 +PRODUCT_PACKAGES += AcdApiDaemon +PRODUCT_PACKAGES += calib.dat +PRODUCT_PACKAGES += param.dat +PRODUCT_PACKAGES += sensors.dat +PRODUCT_PACKAGES += geomagneticd +PRODUCT_PACKAGES += orientationd +PRODUCT_PACKAGES += memsicd +PRODUCT_PACKAGES += msensord +PRODUCT_PACKAGES += lsm303md +PRODUCT_PACKAGES += memsicd3416x +PRODUCT_PACKAGES += s62xd smartsensor +PRODUCT_PACKAGES += bmm050d +PRODUCT_PACKAGES += mc6420d +PRODUCT_PACKAGES += magd +PRODUCT_PACKAGES += sensors.mt6797 +PRODUCT_PACKAGES += sensors.mt6797m +PRODUCT_PACKAGES += sensors.mt6753 +PRODUCT_PACKAGES += libhwm +PRODUCT_PACKAGES += lights.mt6797 +PRODUCT_PACKAGES += lights.mt6797m +PRODUCT_PACKAGES += lights.mt6753 +PRODUCT_PACKAGES += meta_tst +PRODUCT_PACKAGES += multi_init +PRODUCT_PACKAGES += GoogleOtaBinder +PRODUCT_PACKAGES += dhcp6c +PRODUCT_PACKAGES += dhcp6ctl +PRODUCT_PACKAGES += dhcp6c.conf +PRODUCT_PACKAGES += dhcp6cDNS.conf +PRODUCT_PACKAGES += dhcp6s +PRODUCT_PACKAGES += dhcp6s.conf +PRODUCT_PACKAGES += dhcp6c.script +PRODUCT_PACKAGES += dhcp6cctlkey +PRODUCT_PACKAGES += libblisrc +PRODUCT_PACKAGES += libifaddrs +PRODUCT_PACKAGES += mobile_log_d +PRODUCT_PACKAGES += libmobilelog_jni +PRODUCT_PACKAGES += libaudio.r_submix.default +PRODUCT_PACKAGES += audio.r_submix.default +PRODUCT_PACKAGES += libaudio.usb.default +PRODUCT_PACKAGES += libnbaio +PRODUCT_PACKAGES += libaudioflinger +PRODUCT_PACKAGES += libmeta_audio +PRODUCT_PACKAGES += liba3m +PRODUCT_PACKAGES += libja3m +PRODUCT_PACKAGES += libmmprofile +PRODUCT_PACKAGES += libmmprofile_jni +PRODUCT_PACKAGES += libtvoutjni +PRODUCT_PACKAGES += libtvoutpattern +PRODUCT_PACKAGES += libmtkhdmi_jni +PRODUCT_PACKAGES += aee +PRODUCT_PACKAGES += aee_aed +PRODUCT_PACKAGES += aee_aed64 +PRODUCT_PACKAGES += aee_core_forwarder +PRODUCT_PACKAGES += aee_dumpstate +PRODUCT_PACKAGES += aee_archive +PRODUCT_PACKAGES += rtt +PRODUCT_PACKAGES += libaed +PRODUCT_PACKAGES += libdirect-coredump +PRODUCT_PACKAGES += libmediatek_exceptionlog +PRODUCT_PACKAGES += libcam_platform +PRODUCT_PACKAGES += camera.mt6797 +PRODUCT_PACKAGES += camera.mt6753 +PRODUCT_PACKAGES += camera.mt6797m +PRODUCT_PACKAGES += xlog +PRODUCT_PACKAGES += liblog +PRODUCT_PACKAGES += shutdown +PRODUCT_PACKAGES += muxreport +PRODUCT_PACKAGES += mtkrild +PRODUCT_PACKAGES += mtk-ril +PRODUCT_PACKAGES += librilmtk +PRODUCT_PACKAGES += libutilrilmtk +PRODUCT_PACKAGES += gsm0710muxd +PRODUCT_PACKAGES += mtkrildmd2 +PRODUCT_PACKAGES += mtk-rilmd2 +PRODUCT_PACKAGES += librilmtkmd2 +PRODUCT_PACKAGES += gsm0710muxdmd2 +PRODUCT_PACKAGES += md_minilog_util +PRODUCT_PACKAGES += wbxml +PRODUCT_PACKAGES += wappush +PRODUCT_PACKAGES += thememap.xml +PRODUCT_PACKAGES += libBLPP.so +PRODUCT_PACKAGES += rc.fac +PRODUCT_PACKAGES += mtkGD +PRODUCT_PACKAGES += pvrsrvctl +PRODUCT_PACKAGES += libEGL_mtk.so +PRODUCT_PACKAGES += libGLESv1_CM_mtk.so +PRODUCT_PACKAGES += libGLESv2_mtk.so +PRODUCT_PACKAGES += ged_srv +PRODUCT_PACKAGES += libged.so +ifneq ($(MTK_BASIC_PACKAGE), yes) + PRODUCT_PACKAGES += gas_srv + PRODUCT_PACKAGES += libgas.so +endif +PRODUCT_PACKAGES += gralloc.mt6797.so +PRODUCT_PACKAGES += libusc.so +PRODUCT_PACKAGES += libglslcompiler.so +PRODUCT_PACKAGES += libIMGegl.so +PRODUCT_PACKAGES += libpvr2d.so +PRODUCT_PACKAGES += libsrv_um.so +PRODUCT_PACKAGES += libsrv_init.so +PRODUCT_PACKAGES += libPVRScopeServices.so +PRODUCT_PACKAGES += libpvrANDROID_WSEGL.so +PRODUCT_PACKAGES += libFraunhoferAAC +PRODUCT_PACKAGES += audiocmdservice_atci +PRODUCT_PACKAGES += libMtkOmxAudioEncBase +PRODUCT_PACKAGES += libMtkOmxAmrEnc +PRODUCT_PACKAGES += libMtkOmxAwbEnc +PRODUCT_PACKAGES += libMtkOmxAacEnc +PRODUCT_PACKAGES += libMtkOmxVorbisEnc +PRODUCT_PACKAGES += libMtkOmxAdpcmEnc +PRODUCT_PACKAGES += libMtkOmxMp3Dec +PRODUCT_PACKAGES += libMtkOmxGsmDec +PRODUCT_PACKAGES += libMtkOmxAacDec +PRODUCT_PACKAGES += libMtkOmxG711Dec +PRODUCT_PACKAGES += libMtkOmxVorbisDec +PRODUCT_PACKAGES += libMtkOmxAudioDecBase +PRODUCT_PACKAGES += libMtkOmxAdpcmDec +PRODUCT_PACKAGES += libMtkOmxRawDec +PRODUCT_PACKAGES += libMtkOmxAMRNBDec +PRODUCT_PACKAGES += libMtkOmxAMRWBDec +PRODUCT_PACKAGES += libvoicerecognition_jni +PRODUCT_PACKAGES += libvoicerecognition +PRODUCT_PACKAGES += libphonemotiondetector_jni +PRODUCT_PACKAGES += libphonemotiondetector +PRODUCT_PACKAGES += libmotionrecognition +PRODUCT_PACKAGES += libasf +PRODUCT_PACKAGES += libasfextractor +PRODUCT_PACKAGES += audio.primary.default +PRODUCT_PACKAGES += audio_policy.stub +PRODUCT_PACKAGES += audio_policy.default +PRODUCT_PACKAGES += libaudio.primary.default +PRODUCT_PACKAGES += libaudio.a2dp.default +PRODUCT_PACKAGES += audio.a2dp.default +PRODUCT_PACKAGES += libaudio-resampler +PRODUCT_PACKAGES += local_time.default +PRODUCT_PACKAGES += libaudiocustparam +PRODUCT_PACKAGES += libaudiodcrflt +PRODUCT_PACKAGES += libaudiosetting +PRODUCT_PACKAGES += librtp_jni +PRODUCT_PACKAGES += libmatv_cust +PRODUCT_PACKAGES += libmtkplayer +PRODUCT_PACKAGES += libatvctrlservice +PRODUCT_PACKAGES += matv +PRODUCT_PACKAGES += libMtkOmxApeDec +PRODUCT_PACKAGES += libMtkOmxFlacDec +PRODUCT_PACKAGES += ppp_dt +PRODUCT_PACKAGES += power.default +PRODUCT_PACKAGES += libdiagnose +PRODUCT_PACKAGES += netdiag +PRODUCT_PACKAGES += tcpdump +PRODUCT_PACKAGES += MPED +PRODUCT_PACKAGES += libmpe.sensorlistener.so +PRODUCT_PACKAGES += libmpe.driver.so +PRODUCT_PACKAGES += libfusion.so +PRODUCT_PACKAGES += libDR.so +PRODUCT_PACKAGES += libsonivox +PRODUCT_PACKAGES += iAmCdRom.iso +PRODUCT_PACKAGES += libmemorydumper +PRODUCT_PACKAGES += memorydumper +PRODUCT_PACKAGES += libvt_custom +PRODUCT_PACKAGES += libamrvt +PRODUCT_PACKAGES += libvtmal +PRODUCT_PACKAGES += libipsec_ims +PRODUCT_PACKAGES += racoon +PRODUCT_PACKAGES += libipsec +PRODUCT_PACKAGES += libpcap +PRODUCT_PACKAGES += mtpd +PRODUCT_PACKAGES += netcfg +PRODUCT_PACKAGES += pppd +PRODUCT_PACKAGES += pppd_via +PRODUCT_PACKAGES += pppd_dt +PRODUCT_PACKAGES += dhcpcd +PRODUCT_PACKAGES += dhcpcd.conf +PRODUCT_PACKAGES += dhcpcd-run-hooks +PRODUCT_PACKAGES += 20-dns.conf +PRODUCT_PACKAGES += 95-configured +PRODUCT_PACKAGES += radvd +PRODUCT_PACKAGES += radvd.conf +PRODUCT_PACKAGES += dnsmasq +PRODUCT_PACKAGES += netd +PRODUCT_PACKAGES += ndc +PRODUCT_PACKAGES += libiprouteutil +PRODUCT_PACKAGES += libnetlink +PRODUCT_PACKAGES += tc +PRODUCT_PACKAGES += libext2_profile +PRODUCT_PACKAGES += e2fsck +PRODUCT_PACKAGES += libext2_blkid +PRODUCT_PACKAGES += libext2_e2p +PRODUCT_PACKAGES += libext2_com_err +PRODUCT_PACKAGES += libext2fs +PRODUCT_PACKAGES += libext2_uuid +PRODUCT_PACKAGES += mke2fs +PRODUCT_PACKAGES += tune2fs +PRODUCT_PACKAGES += badblocks +PRODUCT_PACKAGES += resize2fs +PRODUCT_PACKAGES += libnvram +PRODUCT_PACKAGES += libnvram_daemon_callback +PRODUCT_PACKAGES += libfile_op +PRODUCT_PACKAGES += nvram_agent_binder +PRODUCT_PACKAGES += nvram_daemon +PRODUCT_PACKAGES += make_ext4fs +PRODUCT_PACKAGES += sdcard +PRODUCT_PACKAGES += libext +PRODUCT_PACKAGES += libext4 +PRODUCT_PACKAGES += libext6 +PRODUCT_PACKAGES += libxtables +PRODUCT_PACKAGES += libip4tc +PRODUCT_PACKAGES += libip6tc +PRODUCT_PACKAGES += ipod +PRODUCT_PACKAGES += libipod +PRODUCT_PACKAGES += fuelgauged +PRODUCT_PACKAGES += libfgauge +PRODUCT_PACKAGES += gatord +PRODUCT_PACKAGES += boot_logo_updater +PRODUCT_PACKAGES += boot_logo +PRODUCT_PACKAGES += bootanimation +PRODUCT_PACKAGES += kpoc_charger +PRODUCT_PACKAGES += libtvoutjni +PRODUCT_PACKAGES += libtvoutpattern +PRODUCT_PACKAGES += libmtkhdmi_jni +PRODUCT_PACKAGES += libhissage.so +PRODUCT_PACKAGES += libhpe.so +PRODUCT_PACKAGES += sdiotool +PRODUCT_PACKAGES += superumount +PRODUCT_PACKAGES += libsched +PRODUCT_PACKAGES += fsck_msdos_mtk +PRODUCT_PACKAGES += cmmbsp +PRODUCT_PACKAGES += libcmmb_jni +PRODUCT_PACKAGES += robotium +PRODUCT_PACKAGES += libc_malloc_debug_mtk +PRODUCT_PACKAGES += dpfd +PRODUCT_PACKAGES += libaal +PRODUCT_PACKAGES += aal +PRODUCT_PACKAGES += libaal_cust +PRODUCT_PACKAGES += SchedulePowerOnOff +PRODUCT_PACKAGES += BatteryWarning +PRODUCT_PACKAGES += pq +PRODUCT_PACKAGES += libpq_cust_base +PRODUCT_PACKAGES += libpq_cust +PRODUCT_PACKAGES += libPQjni +PRODUCT_PACKAGES += libPQDCjni +PRODUCT_PACKAGES += MiraVision +PRODUCT_PACKAGES += libMiraVision_jni +PRODUCT_PACKAGES += hald +PRODUCT_PACKAGES += showmap +PRODUCT_PACKAGES += tiny_mkswap +PRODUCT_PACKAGES += tiny_swapon +PRODUCT_PACKAGES += tiny_swapoff +PRODUCT_PACKAGES += dmlog +PRODUCT_PACKAGES += mtk_msr.ko +PRODUCT_PACKAGES += resize_ext4 +PRODUCT_PACKAGES += send_bug +PRODUCT_PACKAGES += met-cmd +PRODUCT_PACKAGES += libmet-tag +PRODUCT_PACKAGES += met_log_d +PRODUCT_PACKAGES += trace-cmd +PRODUCT_PACKAGES += libMtkOmxRawDec +PRODUCT_PACKAGES += libperfservice +PRODUCT_PACKAGES += libperfservice_test +PRODUCT_PACKAGES += libperfservicenative +PRODUCT_PACKAGES += perf_native_test +PRODUCT_PACKAGES += perfservapplist.txt +PRODUCT_PACKAGES += perfservtouchfilter.txt +PRODUCT_PACKAGES += perfservscntbl.txt +PRODUCT_PACKAGES += perfservboosttbl.txt +PRODUCT_PACKAGES += Videos +PRODUCT_PACKAGES += sn +PRODUCT_PACKAGES += lcdc_screen_cap +PRODUCT_PACKAGES += libJniAtvService +PRODUCT_PACKAGES += GoogleKoreanIME +PRODUCT_PACKAGES += memtrack.mt6797 +PRODUCT_PACKAGES += memtrack.mt6797m +PRODUCT_PACKAGES += memtrack.mt6753 +PRODUCT_PACKAGES += mbimd + +ifndef MTK_TB_WIFI_3G_MODE + PRODUCT_PACKAGES += Mms +else + ifeq ($(strip $(MTK_TB_WIFI_3G_MODE)), 3GDATA_SMS) + PRODUCT_PACKAGES += Mms + endif +endif + +PRODUCT_PACKAGES += libjni_koreanime.so +PRODUCT_PACKAGES += atcid +PRODUCT_PACKAGES += atci_service +PRODUCT_PACKAGES += libatciserv_jni +PRODUCT_PACKAGES += AtciService +PRODUCT_PACKAGES += wpa_supplicant +PRODUCT_PACKAGES += wpa_cli +PRODUCT_PACKAGES += wpa_supplicant.conf +PRODUCT_PACKAGES += wpa_supplicant_overlay.conf +PRODUCT_PACKAGES += p2p_supplicant_overlay.conf +PRODUCT_PACKAGES += hostapd +PRODUCT_PACKAGES += hostapd_cli +PRODUCT_PACKAGES += lib_driver_cmd_mt66xx.a +PRODUCT_PACKAGES += Dialer +PRODUCT_PACKAGES += CallLogBackup +PRODUCT_PACKAGES += libacdk + +PRODUCT_PACKAGES += hwcomposer.mt6797 +PRODUCT_PACKAGES += hwcomposer.mt6797m +PRODUCT_PACKAGES += hwcomposer.mt6753 +PRODUCT_PACKAGES += md_ctrl + +ifeq ($(strip $(MTK_CCCI_PERMISSION_CHECK_SUPPORT)),yes) +PRODUCT_PACKAGES += permission_check +PRODUCT_PROPERTY_OVERRIDES += persist.md.perm.checked=to_upgrade +endif + +PRODUCT_PACKAGES += libGLES_android + +PRODUCT_PACKAGES += guiext-server + +PRODUCT_PACKAGES += fstab.mt6797 + +#ifeq ($(strip $(MTK_VT3G324M_SUPPORT)),yes) +PRODUCT_PACKAGES += libmtk_vt_client +PRODUCT_PACKAGES += libmtk_vt_em +PRODUCT_PACKAGES += libmtk_vt_utils +PRODUCT_PACKAGES += libmtk_vt_service +PRODUCT_PACKAGES += libmtk_vt_swip +PRODUCT_PACKAGES += vtservice +#endif + +ifeq ($(strip $(BUILD_MTK_LDVT)),yes) + PRODUCT_PACKAGES += ts_uvvf +endif + +ifeq ($(strip $(MTK_TC1_FEATURE)),yes) + PRODUCT_PACKAGES += libtc1part + PRODUCT_PACKAGES += libtc1rft +endif + +ifeq ($(strip $(MTK_APP_GUIDE)),yes) + PRODUCT_PACKAGES += ApplicationGuide +endif + +ifeq ($(strip $(MTK_FLV_PLAYBACK_SUPPORT)), yes) + PRODUCT_PACKAGES += libflv + PRODUCT_PACKAGES += libflvextractor +endif + +ifeq ($(strip $(MTK_ETWS_SUPPORT)), yes) + PRODUCT_PACKAGES += CellBroadcastReceiver +endif + +ifneq ($(strip $(foreach value,$(DFO_NVRAM_SET),$(filter yes,$($(value))))),) + PRODUCT_PACKAGES += featured + PRODUCT_PACKAGES += libdfo + PRODUCT_PACKAGES += libdfo_jni +endif + +ifeq ($(strip $(MTK_CMAS_SUPPORT)), yes) + PRODUCT_PACKAGES += CMASReceiver + PRODUCT_PACKAGES += CmasEM +endif + +ifeq ($(strip $(MTK_CDS_EM_SUPPORT)), yes) + PRODUCT_PACKAGES += CDS_INFO +endif + +# +# +ifeq ($(strip $(MTK_NFC_SUPPORT)), yes) + PRODUCT_PACKAGES += nfcservice +endif + + +ifeq ($(strip $(GEMINI)),yes) + ifeq ($(strip $(MTK_GEMINI_3SIM_SUPPORT)),yes) + PRODUCT_PROPERTY_OVERRIDES += persist.gemini.sim_num=3 + else + ifeq ($(strip $(MTK_GEMINI_4SIM_SUPPORT)),yes) + PRODUCT_PROPERTY_OVERRIDES += persist.gemini.sim_num=4 + else + PRODUCT_PROPERTY_OVERRIDES += persist.gemini.sim_num=2 + endif + endif +else + PRODUCT_PROPERTY_OVERRIDES += persist.gemini.sim_num=1 +endif + +ifeq ($(strip $(GEMINI)),yes) + ifeq ($(strip $(MTK_DT_SUPPORT)),yes) + PRODUCT_PROPERTY_OVERRIDES += persist.radio.multisim.config=dsda + else + PRODUCT_PROPERTY_OVERRIDES += persist.radio.multisim.config=dsds + endif +else + PRODUCT_PROPERTY_OVERRIDES += persist.radio.multisim.config=ss +endif +# +ifeq ($(strip $(MTK_GEMINI_SMART_SIM_SWITCH)),yes) + PRODUCT_PROPERTY_OVERRIDES += ro.gemini.smart_sim_switch=true +else + PRODUCT_PROPERTY_OVERRIDES += ro.gemini.smart_sim_switch=false +endif +# +ifeq ($(strip $(MTK_GEMINI_SMART_3G_SWITCH)),0) + PRODUCT_PROPERTY_OVERRIDES += ro.gemini.smart_3g_switch=0 +endif + +ifeq ($(strip $(MTK_GEMINI_SMART_3G_SWITCH)),1) + PRODUCT_PROPERTY_OVERRIDES += ro.gemini.smart_3g_switch=1 +endif + +ifeq ($(strip $(MTK_GEMINI_SMART_3G_SWITCH)),2) + PRODUCT_PROPERTY_OVERRIDES += ro.gemini.smart_3g_switch=2 +endif + +ifeq ($(strip $(MTK_EMMC_SUPPORT)), yes) + PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.mount.fs=EXT4 +else + ifeq ($(strip $(MTK_NAND_UBIFS_SUPPORT)), yes) + PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.mount.fs=UBIFS + else + PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.mount.fs=YAFFS + endif +endif + +ifeq ($(strip $(MTK_ENABLE_MD1)),yes) + ifneq ($(wildcard $(MTK_ROOT_CUSTOM_OUT))/modem/modem_1_2g_n.img),) + PRODUCT_PACKAGES += modem_1_2g_n.img + ifeq ($(MTK_MDLOGGER_SUPPORT),yes) + PRODUCT_PACKAGES += catcher_filter_1_2g_n.bin + endif + endif + ifneq ($(wildcard $(MTK_ROOT_CUSTOM_OUT))/modem/modem_1_wg_n.img),) + PRODUCT_PACKAGES += modem_1_wg_n.img + ifeq ($(MTK_MDLOGGER_SUPPORT),yes) + PRODUCT_PACKAGES += catcher_filter_1_wg_n.bin + endif + endif + ifneq ($(wildcard $(MTK_ROOT_CUSTOM_OUT))/modem/modem_1_tg_n.img),) + PRODUCT_PACKAGES += modem_1_tg_n.img + ifeq ($(MTK_MDLOGGER_SUPPORT),yes) + PRODUCT_PACKAGES += catcher_filter_1_tg_n.bin + endif + endif +endif + +ifeq ($(strip $(MTK_ENABLE_MD2)),yes) + ifneq ($(wildcard $(MTK_ROOT_CUSTOM_OUT))/modem/modem_2_2g_n.img),) + PRODUCT_PACKAGES += modem_2_2g_n.img + ifeq ($(MTK_MDLOGGER_SUPPORT),yes) + PRODUCT_PACKAGES += catcher_filter_2_2g_n.bin + endif + endif + ifneq ($(wildcard $(MTK_ROOT_CUSTOM_OUT))/modem/modem_2_wg_n.img),) + PRODUCT_PACKAGES += modem_2_wg_n.img + ifeq ($(MTK_MDLOGGER_SUPPORT),yes) + PRODUCT_PACKAGES += catcher_filter_2_wg_n.bin + endif + endif + ifneq ($(wildcard $(MTK_ROOT_CUSTOM_OUT))/modem/modem_2_tg_n.img),) + PRODUCT_PACKAGES += modem_2_tg_n.img + ifeq ($(MTK_MDLOGGER_SUPPORT),yes) + PRODUCT_PACKAGES += catcher_filter_2_tg_n.bin + endif + endif +endif + +ifeq ($(strip $(MTK_ISMS_SUPPORT)), yes) + PRODUCT_PACKAGES += ISmsService +endif + +ifeq ($(strip $(MTK_NFC_SUPPORT)), yes) + PRODUCT_PACKAGES += nfcstackp + PRODUCT_PACKAGES += DeviceTestApp + PRODUCT_PACKAGES += libdta_mt6605_jni + PRODUCT_PACKAGES += libmtknfc_dynamic_load_jni + PRODUCT_PACKAGES += libnfc_mt6605_jni + $(call inherit-product-if-exists, vendor/mediatek/proprietary/packages/apps/DeviceTestApp/DeviceTestApp.mk) + $(call inherit-product-if-exists, vendor/mediatek/proprietary/external/mtknfc/mtknfc.mk) +endif + +ifeq ($(strip $(MTK_MTKLOGGER_SUPPORT)), yes) + PRODUCT_PACKAGES += MTKLogger +endif + +ifeq ($(strip $(MTK_SPECIFIC_SM_CAUSE)), yes) + PRODUCT_PROPERTY_OVERRIDES += ril.specific.sm_cause=1 +else + PRODUCT_PROPERTY_OVERRIDES += ril.specific.sm_cause=0 +endif + +ifeq ($(strip $(MTK_EMULATOR_SUPPORT)),yes) + PRODUCT_PACKAGES += SDKGallery +else + PRODUCT_PACKAGES += Gallery2 +endif + +ifneq ($(strip $(MTK_EMULATOR_SUPPORT)),yes) + PRODUCT_PACKAGES += Provision +endif + +ifeq ($(strip $(HAVE_CMMB_FEATURE)), yes) + PRODUCT_PACKAGES += CMMBPlayer +endif + +ifeq ($(strip $(MTK_DATA_TRANSFER_APP)), yes) + PRODUCT_PACKAGES += DataTransfer +endif + +ifeq ($(strip $(MTK_MDM_APP)),yes) + PRODUCT_PACKAGES += MediatekDM +endif + +ifeq ($(strip $(MTK_VT3G324M_SUPPORT)),yes) + PRODUCT_PACKAGES += libmtk_vt_client + PRODUCT_PACKAGES += libmtk_vt_em + PRODUCT_PACKAGES += libmtk_vt_utils + PRODUCT_PACKAGES += libmtk_vt_service + PRODUCT_PACKAGES += libmtk_vt_swip + PRODUCT_PACKAGES += vtservice +endif + +ifeq ($(strip $(MTK_OOBE_APP)),yes) + PRODUCT_PACKAGES += OOBE +endif + +ifdef MTK_WEATHER_PROVIDER_APP + ifneq ($(strip $(MTK_WEATHER_PROVIDER_APP)), no) + PRODUCT_PACKAGES += MtkWeatherProvider + endif +endif + +ifeq ($(strip $(MTK_ENABLE_VIDEO_EDITOR)),yes) + PRODUCT_PACKAGES += VideoEditor +endif + +ifeq ($(strip $(MTK_CALENDAR_IMPORTER_APP)), yes) + PRODUCT_PACKAGES += CalendarImporter +endif + +ifeq ($(strip $(MTK_LOG2SERVER_APP)), yes) + PRODUCT_PACKAGES += Log2Server + PRODUCT_PACKAGES += Excftpcommonlib + PRODUCT_PACKAGES += Excactivationlib + PRODUCT_PACKAGES += Excadditionnallib + PRODUCT_PACKAGES += Excmaillib +endif + +ifeq ($(strip $(MTK_CAMERA_APP)), yes) + PRODUCT_PACKAGES += CameraOpen +else + PRODUCT_PACKAGES += Camera +endif + +ifeq ($(strip $(MTK_VIDEO_FAVORITES_WIDGET_APP)), yes) + ifneq ($(strip $(MTK_TABLET_PLATFORM)), yes) + PRODUCT_PACKAGES += VideoFavorites + PRODUCT_PACKAGES += libjtranscode + endif +endif + +ifeq ($(strip $(MTK_VIDEOWIDGET_APP)),yes) + PRODUCT_PACKAGES += MtkVideoWidget +endif + +ifeq ($(strip $(MTK_BASIC_PACKAGE)),yes) + PRODUCT_PACKAGES += Stk +else + ifeq ($(strip $(MTK_BSP_PACKAGE)),yes) + PRODUCT_PACKAGES += Stk + else + PRODUCT_PACKAGES += Stk1 + endif +endif + +ifeq ($(strip $(MTK_ENGINEERMODE_APP)), yes) + PRODUCT_PACKAGES += EngineerMode + PRODUCT_PACKAGES += EngineerModeSim + PRODUCT_PACKAGES += libem_bt_jni + PRODUCT_PACKAGES += libem_platform32_dummy + PRODUCT_PACKAGES += libem_support_jni + PRODUCT_PACKAGES += libem_gpio_jni + PRODUCT_PACKAGES += libem_modem_jni + PRODUCT_PACKAGES += libem_usb_jni + PRODUCT_PACKAGES += libem_wifi_jni + PRODUCT_PACKAGES += libem_sensor_jni + PRODUCT_PACKAGES += libem_lte_jni + PRODUCT_PACKAGES += libem_mbim_jni + #For Engineering Mode Telephony notification(play sound) + ifneq ($(MTK_BASIC_PACKAGE), yes) + PRODUCT_COPY_FILES += vendor/mediatek/proprietary/packages/apps/EngineerMode/sounds/CADetected.ogg:system/res/sound/CADetected.ogg + PRODUCT_COPY_FILES += vendor/mediatek/proprietary/packages/apps/EngineerMode/sounds/CA2CA.ogg:system/res/sound/CA2CA.ogg + endif + # + ifeq ($(strip $(MTK_NFC_SUPPORT)), yes) + PRODUCT_PACKAGES += libem_nfc_jni + endif + ifneq ($(strip $(MTK_GMO_RAM_OPTIMIZE)), yes) + PRODUCT_PACKAGES += em_svr + endif + ifneq ($(MTK_AUDIO_TUNING_TOOL_VERSION),) + ifneq ($(strip $(MTK_AUDIO_TUNING_TOOL_VERSION)),V1) + PRODUCT_PACKAGES += libem_audio_jni + endif + endif + +endif + +ifeq ($(strip $(MTK_RCSE_SUPPORT)), yes) + PRODUCT_PACKAGES += Rcse + PRODUCT_PACKAGES += Provisioning +endif + +ifeq ($(strip $(MTK_GPS_SUPPORT)), yes) + PRODUCT_PACKAGES += YGPS + PRODUCT_PACKAGES += BGW + PRODUCT_PROPERTY_OVERRIDES += bgw.current3gband=0 +endif + +ifeq ($(strip $(MTK_GPS_SUPPORT)), yes) + ifeq ($(strip $(MTK_GPS_CHIP)), MTK_GPS_MT6620) + PRODUCT_PROPERTY_OVERRIDES += gps.solution.combo.chip=1 + endif + ifeq ($(strip $(MTK_GPS_CHIP)), MTK_GPS_MT6628) + PRODUCT_PROPERTY_OVERRIDES += gps.solution.combo.chip=1 + endif + ifeq ($(strip $(MTK_GPS_CHIP)), MTK_GPS_MT3332) + PRODUCT_PROPERTY_OVERRIDES += gps.solution.combo.chip=0 + endif +endif + +ifeq ($(strip $(MTK_NAND_UBIFS_SUPPORT)),yes) + PRODUCT_PACKAGES += mkfs_ubifs + PRODUCT_PACKAGES += ubinize + PRODUCT_PACKAGES += mtdinfo + PRODUCT_PACKAGES += ubiupdatevol + PRODUCT_PACKAGES += ubirmvol + PRODUCT_PACKAGES += ubimkvol + PRODUCT_PACKAGES += ubidetach + PRODUCT_PACKAGES += ubiattach + PRODUCT_PACKAGES += ubinfo + PRODUCT_PACKAGES += ubiformat +endif + +ifeq ($(strip $(MTK_EXTERNAL_MODEM_SLOT)),2) + PRODUCT_PROPERTY_OVERRIDES += ril.external.md=2 +else + ifeq ($(strip $(MTK_EXTERNAL_MODEM_SLOT)),1) + PRODUCT_PROPERTY_OVERRIDES += ril.external.md=1 + else + PRODUCT_PROPERTY_OVERRIDES += ril.external.md=0 + endif +endif + +ifeq ($(strip $(MTK_LIVEWALLPAPER_APP)), yes) + PRODUCT_PACKAGES += LiveWallpapers + PRODUCT_PACKAGES += LiveWallpapersPicker + PRODUCT_PACKAGES += MagicSmokeWallpapers + PRODUCT_PACKAGES += VisualizationWallpapers + PRODUCT_PACKAGES += Galaxy4 + PRODUCT_PACKAGES += HoloSpiralWallpaper + PRODUCT_PACKAGES += NoiseField + PRODUCT_PACKAGES += PhaseBeam +endif + +ifeq ($(strip $(MTK_SNS_SUPPORT)), yes) + PRODUCT_PACKAGES += SNSCommon + PRODUCT_PACKAGES += SnsContentProvider + PRODUCT_PACKAGES += SnsWidget + PRODUCT_PACKAGES += SnsWidget24 + PRODUCT_PACKAGES += SocialStream + ifeq ($(strip $(MTK_SNS_KAIXIN_APP)), yes) + PRODUCT_PACKAGES += KaiXinAccountService + endif + ifeq ($(strip $(MTK_SNS_RENREN_APP)), yes) + PRODUCT_PACKAGES += RenRenAccountService + endif + ifeq ($(strip $(MTK_SNS_FACEBOOK_APP)), yes) + PRODUCT_PACKAGES += FacebookAccountService + endif + ifeq ($(strip $(MTK_SNS_FLICKR_APP)), yes) + PRODUCT_PACKAGES += FlickrAccountService + endif + ifeq ($(strip $(MTK_SNS_TWITTER_APP)), yes) + PRODUCT_PACKAGES += TwitterAccountService + endif + ifeq ($(strip $(MTK_SNS_SINAWEIBO_APP)), yes) + PRODUCT_PACKAGES += WeiboAccountService + endif +endif + + +ifeq ($(strip $(MTK_SYSTEM_UPDATE_SUPPORT)), yes) + PRODUCT_PACKAGES += SystemUpdate + PRODUCT_PACKAGES += SystemUpdateAssistant +endif + +ifeq ($(strip $(MTK_DATADIALOG_APP)), yes) + PRODUCT_PACKAGES += DataDialog +endif + +ifeq ($(strip $(MTK_DATA_TRANSFER_APP)), yes) + PRODUCT_PACKAGES += DataTransfer +endif + +ifeq ($(strip $(MTK_FM_SUPPORT)), yes) + PRODUCT_PACKAGES += FMRadio +endif + +ifeq ($(strip $(MTK_CAM_LOMO_SUPPORT)), yes) + PRODUCT_PROPERTY_OVERRIDES += ro.mtk_cam_lomo_support=1 + PRODUCT_PACKAGES += libjni_lomoeffect +endif + +ifeq (MT6620_FM,$(strip $(MTK_FM_CHIP))) + PRODUCT_PROPERTY_OVERRIDES += fmradio.driver.chip=1 +endif + +ifeq (MT6626_FM,$(strip $(MTK_FM_CHIP))) + PRODUCT_PROPERTY_OVERRIDES += fmradio.driver.chip=2 +endif + +ifeq (MT6628_FM,$(strip $(MTK_FM_CHIP))) + PRODUCT_PROPERTY_OVERRIDES += fmradio.driver.chip=3 +endif + +ifeq ($(strip $(MTK_DT_SUPPORT)),yes) + ifneq ($(strip $(MTK_C2K_SUPPORT)),yes) + ifeq ($(strip $(MTK_MDLOGGER_SUPPORT)),yes) + PRODUCT_PACKAGES += ExtModemLog + PRODUCT_PACKAGES += libextmdlogger_ctrl_jni + PRODUCT_PACKAGES += libextmdlogger_ctrl + PRODUCT_PACKAGES += extmdlogger + endif + endif +endif + +ifeq ($(strip $(MTK_ACWFDIALOG_APP)), yes) + PRODUCT_PACKAGES += AcwfDialog +endif + +ifeq ($(strip $(MTK_ENGINEERMODE_APP)), yes) + PRODUCT_PACKAGES += EngineerMode + PRODUCT_PACKAGES += MobileLog +endif + +ifeq ($(strip $(HAVE_MATV_FEATURE)),yes) + PRODUCT_PACKAGES += MtvPlayer + PRODUCT_PACKAGES += MATVEM + PRODUCT_PACKAGES += com.mediatek.atv.adapter +endif + +ifneq ($(strip $(MTK_LCM_PHYSICAL_ROTATION)),) + PRODUCT_PROPERTY_OVERRIDES += ro.sf.hwrotation=$(MTK_LCM_PHYSICAL_ROTATION) +endif + +ifeq ($(strip $(MTK_FM_TX_SUPPORT)), yes) + PRODUCT_PACKAGES += FMTransmitter +endif + +ifeq ($(strip $(MTK_SOUNDRECORDER_APP)),yes) + PRODUCT_PACKAGES += SoundRecorder +endif + +ifeq ($(strip $(MTK_LOCKSCREEN_TYPE)),2) + PRODUCT_PACKAGES += MtkWallPaper +endif + +ifneq ($(strip $(MTK_LOCKSCREEN_TYPE)),) + PRODUCT_PROPERTY_OVERRIDES += curlockscreen=$(MTK_LOCKSCREEN_TYPE) +endif + +ifeq ($(strip $(MTK_OMA_DOWNLOAD_SUPPORT)),yes) + PRODUCT_PACKAGES += Browser + PRODUCT_PACKAGES += DownloadProvider +endif + +ifeq ($(strip $(MTK_OMACP_SUPPORT)),yes) + PRODUCT_PACKAGES += Omacp +endif + +ifeq ($(strip $(MTK_VIDEO_THUMBNAIL_PLAY_SUPPORT)),yes) + PRODUCT_PACKAGES += libjtranscode +endif + +ifeq ($(strip $(MTK_WIFI_P2P_SUPPORT)),yes) + PRODUCT_PACKAGES += WifiContactSync + PRODUCT_PACKAGES += WifiP2PWizardy + PRODUCT_PACKAGES += FileSharingServer + PRODUCT_PACKAGES += FileSharingClient + PRODUCT_PACKAGES += UPnPAV + PRODUCT_PACKAGES += WifiWsdsrv + PRODUCT_PACKAGES += bonjourExplorer +endif + +ifeq ($(strip $(CUSTOM_KERNEL_TOUCHPANEL)),generic) + PRODUCT_PACKAGES += Calibrator +endif + +ifeq ($(strip $(MTK_FILEMANAGER_APP)), yes) + PRODUCT_PACKAGES += FileManager +endif + +ifeq ($(strip $(MTK_ENGINEERMODE_APP)), yes) + PRODUCT_PACKAGES += ActivityNetwork +endif + +ifneq ($(findstring OP03, $(strip $(OPTR_SPEC_SEG_DEF))),) + PRODUCT_PACKAGES += SimCardAuthenticationService +endif + +ifeq ($(strip $(MTK_NFC_SUPPORT)), yes) + PRODUCT_PACKAGES += NxpSecureElement +endif + +ifeq ($(strip $(MTK_NFC_OMAAC_SUPPORT)),yes) + PRODUCT_PACKAGES += SmartcardService + PRODUCT_PACKAGES += org.simalliance.openmobileapi + PRODUCT_PACKAGES += org.simalliance.openmobileapi.xml + PRODUCT_PACKAGES += libassd +endif + +ifeq ($(strip $(MTK_APKINSTALLER_APP)), yes) + PRODUCT_PACKAGES += APKInstaller +endif + +ifeq ($(strip $(MTK_SMSREG_APP)), yes) + PRODUCT_PACKAGES += SmsReg +endif + +ifeq ($(strip $(GEMINI)),yes) + PRODUCT_PROPERTY_OVERRIDES += ro.mediatek.gemini_support=true +else + PRODUCT_PROPERTY_OVERRIDES += ro.mediatek.gemini_support=false +endif + +ifeq ($(MTK_BACKUPANDRESTORE_APP),yes) + PRODUCT_PACKAGES += BackupAndRestore +endif + +ifeq ($(strip $(MTK_BWC_SUPPORT)), yes) + PRODUCT_PACKAGES += libbwc +endif + +ifeq ($(strip $(MTK_GPU_SUPPORT)), yes) + ifeq ($(MTK_PLATFORM),$(filter $(MTK_PLATFORM),MT6797)) + PRODUCT_PACKAGES += gralloc.mt6797 + PRODUCT_PACKAGES += gralloc.mt6797m + PRODUCT_PACKAGES += gralloc.mt6753 + PRODUCT_PACKAGES += libGLES_mali + PRODUCT_PACKAGES += libgpu_aux + PRODUCT_PACKAGES += libRSDriver_mtk + PRODUCT_PACKAGES += libLLVM-RS + PRODUCT_PACKAGES += rs2spir + PRODUCT_PACKAGES += spir2cl + endif +endif + + +ifeq ($(strip $(MTK_DT_SUPPORT)),yes) + PRODUCT_PACKAGES += ip-up + PRODUCT_PACKAGES += ip-down + PRODUCT_PACKAGES += ppp_options + PRODUCT_PACKAGES += chap-secrets + PRODUCT_PACKAGES += init.gprs-pppd +endif + +ifdef OPTR_SPEC_SEG_DEF + ifneq ($(strip $(OPTR_SPEC_SEG_DEF)),NONE) + OPTR := $(word 1,$(subst _,$(space),$(OPTR_SPEC_SEG_DEF))) + SPEC := $(word 2,$(subst _,$(space),$(OPTR_SPEC_SEG_DEF))) + SEG := $(word 3,$(subst _,$(space),$(OPTR_SPEC_SEG_DEF))) + $(call inherit-product-if-exists, mediatek/operator/$(OPTR)/$(SPEC)/$(SEG)/optr_apk_config.mk) + + # Todo: + # obsolete this section's configuration for operator project resource overlay + # once all operator related overlay resource moved to custom folder + PRODUCT_PACKAGE_OVERLAYS += mediatek/operator/$(OPTR)/$(SPEC)/$(SEG)/OverLayResource + # End + + PRODUCT_PROPERTY_OVERRIDES += ro.operator.optr=$(OPTR) + PRODUCT_PROPERTY_OVERRIDES += ro.operator.spec=$(SPEC) + PRODUCT_PROPERTY_OVERRIDES += ro.operator.seg=$(SEG) + endif +endif + +ifneq ($(TARGET_BUILD_VARIANT),user) + ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=0 +else + ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=1 +endif + +ifeq ($(strip $(GEMINI)), yes) + ifeq ($(OPTR_SPEC_SEG_DEF),NONE) + PRODUCT_PACKAGES += StkSelection + endif + ifeq (OP01,$(word 1,$(subst _, ,$(OPTR_SPEC_SEG_DEF)))) + PRODUCT_PACKAGES += StkSelection + endif + ifndef OPTR_SPEC_SEG_DEF + PRODUCT_PACKAGES += StkSelection + endif +endif + +ifeq (yes,$(strip $(MTK_FD_SUPPORT))) + # Only support the format: n.m (n:1 or 1+ digits, m:Only 1 digit) or n (n:integer) + PRODUCT_PROPERTY_OVERRIDES += persist.radio.fd.counter=15 + PRODUCT_PROPERTY_OVERRIDES += persist.radio.fd.off.counter=5 + PRODUCT_PROPERTY_OVERRIDES += persist.radio.fd.r8.counter=15 + PRODUCT_PROPERTY_OVERRIDES += persist.radio.fd.off.r8.counter=5 +endif + + +################################################# +#Widevine DRM part +ifeq ($(strip $(MTK_WVDRM_SUPPORT)),yes) + #both L1 and L3 library + PRODUCT_PROPERTY_OVERRIDES += drm.service.enabled=true + PRODUCT_PACKAGES += com.google.widevine.software.drm.xml + PRODUCT_PACKAGES += com.google.widevine.software.drm + PRODUCT_PACKAGES += libdrmmtkutil + PRODUCT_PACKAGES += libdrmwvmplugin + PRODUCT_PACKAGES += libwvm + PRODUCT_PACKAGES += libdrmdecrypt + ifeq ($(strip $(MTK_WVDRM_L1_SUPPORT)),yes) + PRODUCT_PACKAGES += libWVStreamControlAPI_L1 + PRODUCT_PACKAGES += libwvdrm_L1 + PRODUCT_PACKAGES += lib_uree_mtk_crypto + else + PRODUCT_PACKAGES += libWVStreamControlAPI_L3 + PRODUCT_PACKAGES += libwvdrm_L3 + endif +else + PRODUCT_PROPERTY_OVERRIDES += drm.service.enabled=false +endif + +###Modular drm +ifeq ($(strip $(MTK_WVDRM_SUPPORT)),yes) + #Mock modular drm plugin for cts + PRODUCT_PACKAGES += libmockdrmcryptoplugin + #both L1 and L3 library + PRODUCT_PACKAGES += libwvdrmengine + ifeq ($(strip $(MTK_WVDRM_L1_SUPPORT)),yes) + PRODUCT_PACKAGES += lib_uree_mtk_modular_drm + PRODUCT_PACKAGES += liboemcrypto + endif +endif + +################################################ + +################################################# +#OMA DRM part, MTK_DRM_APP should be set to false +ifeq ($(strip $(MTK_DRM_APP)),yes) + PRODUCT_PACKAGES += libdrmmtkutil + #Media framework reads this property + PRODUCT_PROPERTY_OVERRIDES += drm.service.enabled=true + ifeq ($(strip $(MTK_OMADRM_SUPPORT)), yes) + PRODUCT_PACKAGES += libdrmmtkplugin + PRODUCT_PACKAGES += drm_chmod + PRODUCT_PACKAGES += libdcfdecoderjni + endif + ifeq ($(strip $(MTK_CTA_SET)), yes) + PRODUCT_PACKAGES += libdrmctaplugin + PRODUCT_PACKAGES += DataProtection + endif +endif +################################################ + +ifeq (yes,$(strip $(MTK_FM_SUPPORT))) + PRODUCT_PROPERTY_OVERRIDES += fmradio.driver.enable=1 +else + PRODUCT_PROPERTY_OVERRIDES += fmradio.driver.enable=0 +endif + + + + + +ifeq ($(strip $(HAVE_SRSAUDIOEFFECT_FEATURE)),yes) + PRODUCT_PACKAGES += DTSTruMedia + PRODUCT_PACKAGES += libsrsprocessing +endif + +ifeq ($(strip $(MTK_DOLBY_DAP_SUPPORT)), yes) + PRODUCT_PACKAGES += libdseffect \ + Ds \ + DsUI \ + dolby_ds +endif + +ifeq ($(strip $(MTK_AUDIO_DDPLUS_SUPPORT)), yes) + PRODUCT_PACKAGES += libstagefright_soft_ddpdec +endif + +ifeq ($(strip $(MTK_WEATHER_WIDGET_APP)), yes) + PRODUCT_PACKAGES += MtkWeatherWidget +endif + +ifeq ($(strip $(MTK_ECCCI_C2K)),yes) + PRODUCT_PROPERTY_OVERRIDES += mtk.eccci.c2k=enabled +endif + +ifeq ($(strip $(MTK_FIRST_MD)),1) + PRODUCT_PROPERTY_OVERRIDES += ril.first.md=1 +endif + +ifeq ($(strip $(MTK_FIRST_MD)),2) + PRODUCT_PROPERTY_OVERRIDES += ril.first.md=2 +endif + +ifeq ($(strip $(MTK_FLIGHT_MODE_POWER_OFF_MD)),yes) + PRODUCT_PROPERTY_OVERRIDES += ril.flightmode.poweroffMD=1 +else + PRODUCT_PROPERTY_OVERRIDES += ril.flightmode.poweroffMD=0 +endif + +ifeq ($(strip $(MTK_FIRST_MD)),1) + PRODUCT_PROPERTY_OVERRIDES += ril.first.md=1 +endif + +ifeq ($(strip $(MTK_FIRST_MD)),2) + PRODUCT_PROPERTY_OVERRIDES += ril.first.md=2 +endif + +ifeq ($(strip $(MTK_TELEPHONY_MODE)),0) + PRODUCT_PROPERTY_OVERRIDES += ril.telephony.mode=0 +endif + +ifeq ($(strip $(MTK_TELEPHONY_MODE)),1) + PRODUCT_PROPERTY_OVERRIDES += ril.telephony.mode=1 +endif + +ifeq ($(strip $(MTK_TELEPHONY_MODE)),2) + PRODUCT_PROPERTY_OVERRIDES += ril.telephony.mode=2 +endif + +ifeq ($(strip $(MTK_TELEPHONY_MODE)),3) + PRODUCT_PROPERTY_OVERRIDES += ril.telephony.mode=3 +endif + +ifeq ($(strip $(MTK_TELEPHONY_MODE)),4) + PRODUCT_PROPERTY_OVERRIDES += ril.telephony.mode=4 +endif + +ifeq ($(strip $(MTK_TELEPHONY_MODE)),5) + PRODUCT_PROPERTY_OVERRIDES += ril.telephony.mode=5 +endif + +ifeq ($(strip $(MTK_TELEPHONY_MODE)),6) + PRODUCT_PROPERTY_OVERRIDES += ril.telephony.mode=6 +endif + +ifeq ($(strip $(MTK_TELEPHONY_MODE)),7) + PRODUCT_PROPERTY_OVERRIDES += ril.telephony.mode=7 +endif + +ifeq ($(strip $(MTK_TELEPHONY_MODE)),8) + PRODUCT_PROPERTY_OVERRIDES += ril.telephony.mode=8 +endif + +ifeq ($(strip $(MTK_AGPS_APP)), yes) + PRODUCT_PACKAGES += LocationEM \ + LocationEM2 \ + mtk_agpsd \ + libssladp \ + cacerts_supl \ + AutoDialer + PRODUCT_COPY_FILES += device/mediatek/common/agps/agps_profiles_conf2.xml:system/etc/agps_profiles_conf2.xml +endif + +PRODUCT_PACKAGES += wifi2agps + +ifeq ($(strip $(MTK_WFD_SINK_SUPPORT)), yes) + PRODUCT_PACKAGES += MtkFloatMenu +endif + +PRODUCT_PACKAGES += libsec +PRODUCT_PACKAGES += sbchk + +PRODUCT_BRAND := alps +PRODUCT_MANUFACTURER := alps + +# for USB Accessory Library/permission +# Mark for early porting in JB +PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.usb.accessory.xml:system/etc/permissions/android.hardware.usb.accessory.xml +PRODUCT_PACKAGES += com.android.future.usb.accessory + +# System property for MediaTek ANR pre-dump. +PRODUCT_PROPERTY_OVERRIDES += dalvik.vm.mtk-stack-trace-file=/data/anr/mtk_traces.txt + +ifeq ($(strip $(MTK_WLAN_SUPPORT)),yes) + PRODUCT_PROPERTY_OVERRIDES += mediatek.wlan.chip=$(MTK_WLAN_CHIP) + PRODUCT_PROPERTY_OVERRIDES += mediatek.wlan.module.postfix="_"$(shell echo $(strip $(MTK_WLAN_CHIP)) | tr A-Z a-z) +endif + +ifeq ($(strip $(MTK_RILD_READ_IMSI)),yes) + PRODUCT_PROPERTY_OVERRIDES += ril.read.imsi=1 +endif + +ifeq ($(strip $(MTK_RADIOOFF_POWER_OFF_MD)),yes) + PRODUCT_PROPERTY_OVERRIDES += ril.radiooff.poweroffMD=1 +else + PRODUCT_PROPERTY_OVERRIDES += ril.radiooff.poweroffMD=0 +endif + +ifeq ($(strip $(MTK_FACTORY_RESET_PROTECTION_SUPPORT)),yes) + PRODUCT_PROPERTY_OVERRIDES += ro.frp.pst=/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/frp +endif + +PRODUCT_COPY_FILES += device/mediatek/mt6797/init.mt6797.rc:root/init.mt6797.rc +PRODUCT_COPY_FILES += device/mediatek/mt6797/factory_init.rc:root/factory_init.rc +PRODUCT_COPY_FILES += device/mediatek/mt6797/init.modem.rc:root/init.modem.rc +PRODUCT_COPY_FILES += device/mediatek/mt6797/ueventd.mt6797.rc:root/ueventd.mt6797.rc + +ifeq ($(strip $(MTK_FAT_ON_NAND)),yes) +PRODUCT_COPY_FILES += device/mediatek/mt6797/init.fon.rc:root/init.fon.rc +endif + +PRODUCT_COPY_FILES += device/mediatek/mt6797/init.xlog.rc:root/init.xlog.rc +PRODUCT_COPY_FILES += device/mediatek/mt6797/meta_init.modem.rc:root/meta_init.modem.rc +PRODUCT_COPY_FILES += device/mediatek/mt6797/meta_init.rc:root/meta_init.rc +PRODUCT_COPY_FILES += device/mediatek/mt6797/init.mt6797.usb.rc:root/init.mt6797.usb.rc +PRODUCT_COPY_FILES += device/mediatek/mt6797/init.recovery.mt6797.rc:root/init.recovery.mt6797.rc +PRODUCT_COPY_FILES += device/mediatek/mt6797/egl.cfg:system/lib/egl/egl.cfg +ifneq ($(strip $(MTK_EMMC_SUPPORT)), yes) +PRODUCT_COPY_FILES += $(LOCAL_PATH)/fstab.mt6797.nand:root/fstab.mt6797 +endif +ifeq ($(TARGET_BUILD_VARIANT),eng) + PRODUCT_COPY_FILES += $(LOCAL_PATH)/thermal.eng.conf:system/etc/.tp/thermal.conf +else + PRODUCT_COPY_FILES += $(LOCAL_PATH)/thermal.conf:system/etc/.tp/thermal.conf +endif + +PRODUCT_COPY_FILES += $(LOCAL_PATH)/thermal.wfd.6797.conf:system/etc/.tp/.thermal_policy_00 +PRODUCT_COPY_FILES += $(LOCAL_PATH)/thermal.pip.6797.conf:system/etc/.tp/.thermal_policy_01 +PRODUCT_COPY_FILES += $(LOCAL_PATH)/thermal.fdvrgis.6797.conf:system/etc/.tp/.thermal_policy_02 + +PRODUCT_COPY_FILES += $(LOCAL_PATH)/thermal.off.conf:system/etc/.tp/thermal.off.conf +PRODUCT_COPY_FILES += $(LOCAL_PATH)/partition_permission.sh:system/etc/partition_permission.sh +PRODUCT_COPY_FILES += $(LOCAL_PATH)/ht120.mtc:system/etc/.tp/.ht120.mtc +PRODUCT_COPY_FILES += $(LOCAL_PATH)/throttle.sh:system/etc/throttle.sh +PRODUCT_COPY_FILES += $(LOCAL_PATH)/enableswap.sh:root/enableswap.sh + +PRODUCT_COPY_FILES += device/mediatek/mt6797/media_codecs.xml:system/etc/media_codecs.xml +PRODUCT_COPY_FILES += device/mediatek/mt6797/media_codecs_mediatek_audio.xml:system/etc/media_codecs_mediatek_audio.xml +PRODUCT_COPY_FILES += device/mediatek/mt6797/media_codecs_mediatek_video.xml:system/etc/media_codecs_mediatek_video.xml +PRODUCT_COPY_FILES += device/mediatek/mt6797/media_codecs.xml:system/etc/permissions/media_codecs.xml +PRODUCT_COPY_FILES += device/mediatek/mt6797/media_codecs_performance.xml:system/etc/media_codecs_performance.xml +PRODUCT_COPY_FILES += device/mediatek/mt6797/mtk_omx_core.cfg:system/etc/mtk_omx_core.cfg +PRODUCT_COPY_FILES += frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml +PRODUCT_COPY_FILES += frameworks/av/media/libstagefright/data/media_codecs_google_video_le.xml:system/etc/media_codecs_google_video_le.xml + +#Audio config +PRODUCT_COPY_FILES += device/mediatek/mt6797/audio_device.xml:system/etc/audio_device.xml + +#Audio config +PRODUCT_COPY_FILES += device/mediatek/mt6797/audio_device_param/DSM_config.xml:system/etc/DSM_config.xml +PRODUCT_COPY_FILES += device/mediatek/mt6797/audio_device_param/DSM.xml:system/etc/DSM.xml + +#aurisys library parameters +ifeq ($(MTK_AURISYS_PHONE_CALL_SUPPORT),yes) +PRODUCT_PACKAGES += libfvaudio +PRODUCT_PACKAGES += AudioSetParam +PRODUCT_COPY_FILES += $(LOCAL_PATH)/aurisys_param/phone_call/forte_media/FV-SAM-MTK2.dat:system/etc/FV-SAM-MTK2.dat +endif + +ifeq ($(strip $(TRUSTONIC_TEE_SUPPORT)), yes) + PRODUCT_PACKAGES += keystore.mt6797 + PRODUCT_PACKAGES += keystore.mt6797m + PRODUCT_PACKAGES += keystore.mt6753 + PRODUCT_PACKAGES += libMcGatekeeper + PRODUCT_COPY_FILES += device/mediatek/mt6797/init.trustonic.rc:root/init.trustonic.rc + PRODUCT_PACKAGES += liburee_meta_drmkeyinstall + PRODUCT_PACKAGES += rda +endif + +ifeq ($(strip $(MICROTRUST_TEE_SUPPORT)), yes) + PRODUCT_COPY_FILES += device/mediatek/mt6797/init.microtrust.rc:root/init.microtrust.rc + #PRODUCT_COPY_FILES += vendor/mediatek/proprietary/trustzone/microtrust/source/platform/mt6797/teei/alipayapp:system/thh/alipayapp + PRODUCT_COPY_FILES += vendor/mediatek/proprietary/trustzone/microtrust/source/platform/mt6797/teei/soter.raw:system/thh/soter.raw + PRODUCT_COPY_FILES += vendor/mediatek/proprietary/trustzone/microtrust/source/platform/mt6797/teei/fp_server:system/thh/fp_server + PRODUCT_COPY_FILES += vendor/mediatek/proprietary/trustzone/microtrust/source/platform/mt6797/teei/init_thh:system/bin/init_thh + #PRODUCT_PACKAGES += libteei_fp + #PRODUCT_PACKAGES += libfingerprint_tac +endif +#inherit common platform +$(call inherit-product, device/mediatek/common/device.mk) + +#inherit prebuilt +$(call inherit-product-if-exists, vendor/mediatek/mt6797/device-vendor.mk) + +# for 3Gdongle +ifeq ($(strip $(MTK_EXTERNAL_DONGLE_SUPPORT)), yes) + PRODUCT_PACKAGES += dongled \ + chat \ + rild_dongle \ + libril_dongle \ + Dongle \ + TeledongleDemo \ + tedongle-telephony + + $(call inherit-product-if-exists, vendor/mediatek/proprietary/hardware/dongle-ril/vendorSoFile64/vendorSoFile.mk) + $(call inherit-product-if-exists, vendor/mediatek/proprietary/hardware/dongle-ril/dongled/dongled.mk) + $(call inherit-product-if-exists, vendor/mediatek/proprietary/hardware/dongle-ril/vendor001-ril/vendor001-ril.mk) + $(call inherit-product-if-exists, vendor/mediatek/proprietary/hardware/dongle-ril/vendor002-ril/vendor002-ril.mk) + $(call inherit-product-if-exists, frameworks/opt/tedongle/tedonglePermission.mk) +endif + @@ -0,0 +1,3 @@ +# NOTICE: This is an autogenerated file, do not edit\n +0 0 android +0 1 mali diff --git a/emdlogger_usb_config.prop b/emdlogger_usb_config.prop new file mode 100755 index 0000000..64a2fd2 --- /dev/null +++ b/emdlogger_usb_config.prop @@ -0,0 +1,8 @@ +EMDLOGGER_1=1 +EMDLOGGER_2=0 +EMDLOGGER_3=2 +EMDLOGGER_4=0 +EMDLOGGER_5=0 +EMDLOGGER_6=0 +EMDLOGGER_7=0 +EMDLOGGER_8=0 diff --git a/enableswap.sh b/enableswap.sh new file mode 100755 index 0000000..186b4b9 --- /dev/null +++ b/enableswap.sh @@ -0,0 +1,4 @@ +#!/bin/sh +echo 0 > /sys/block/zram0/disksize +/system/bin/tiny_mkswap /dev/block/zram0 +/system/bin/tiny_swapon /dev/block/zram0 diff --git a/factory_init.rc b/factory_init.rc new file mode 100755 index 0000000..a420fd7 --- /dev/null +++ b/factory_init.rc @@ -0,0 +1,660 @@ +import factory_init.connectivity.rc +import /init.environ.rc +import init.fon.rc +import init.trustonic.rc +import init.nvdata.rc +import init.microtrust.rc + +on early-init + # Set init and its forked children's oom_adj. + write /proc/1/oom_score_adj -1000 + + # Set the security context of /adb_keys if present. + restorecon /adb_keys + + mount debugfs debugfs /sys/kernel/debug + chmod 0755 /sys/kernel/debug + + start ueventd + + write /proc/bootprof "INIT: usr/eng build setting" + +on init + +sysclktz 0 + +loglevel 5 + +# Backward compatibility + symlink /system/etc /etc + symlink /sys/kernel/debug /d + +# Temp Backward compatibility + symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/boot /dev/bootimg + symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/recovery /dev/recovery + symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/secro /dev/sec_ro + symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/kb /dev/kb + symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/dkb /dev/dkb + symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/seccfg /dev/seccfg + symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/proinfo /dev/pro_info + symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/nvram /dev/nvram + symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/para /dev/misc + symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/logo /dev/logo + + +# Link /vendor to /system/vendor for devices without a vendor partition. + symlink /system/vendor /vendor + +# Create cgroup mount point for cpu accounting + mkdir /acct + mount cgroup none /acct cpuacct + mkdir /acct/uid + + mkdir /system + mkdir /data 0771 system system + mkdir /cache 0770 system cache + mkdir /config 0500 root root + mkdir /protect_f 0771 system system + mkdir /protect_s 0771 system system + mkdir /nvcfg 0771 system system + +# Mount staging areas for devices managed by vold + # See storage config details at http://source.android.com/tech/storage/ + mkdir /mnt 0755 root system + mount tmpfs tmpfs /mnt mode=0755,uid=0,gid=1000 + restorecon_recursive /mnt + # Support legacy paths + symlink /sdcard /mnt/sdcard + + mkdir /mnt/secure 0700 root root + mkdir /mnt/secure/asec 0700 root root + mkdir /mnt/asec 0755 root system + mkdir /mnt/obb 0755 root system + mkdir /mnt/media_rw 0750 root media_rw + mkdir /mnt/user 0755 root root + mkdir /mnt/user/0 0755 root root + mkdir /mnt/expand 0771 system system + + # Storage views to support runtime permissions + mkdir /storage 0755 root root + mkdir /mnt/runtime 0700 root root + mkdir /mnt/runtime/default 0755 root root + mkdir /mnt/runtime/default/self 0755 root root + mkdir /mnt/runtime/read 0755 root root + mkdir /mnt/runtime/read/self 0755 root root + mkdir /mnt/runtime/write 0755 root root + mkdir /mnt/runtime/write/self 0755 root root + + # Symlink to keep legacy apps working in multi-user world + symlink /storage/self/primary /sdcard + symlink /mnt/user/0/primary /mnt/runtime/default/self/primary + + write /proc/sys/kernel/panic_on_oops 1 + write /proc/sys/kernel/hung_task_timeout_secs 0 + write /proc/cpu/alignment 4 + write /proc/sys/kernel/sched_latency_ns 10000000 + write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000 + write /proc/sys/kernel/sched_compat_yield 1 + write /proc/sys/kernel/sched_child_runs_first 0 + + # Healthd can trigger a full boot from charger mode by signaling this + # property when the power button is held. + on property:sys.boot_from_charger_mode=1 + class_stop charger + trigger late-init + + # Load properties from /system/ + /factory after fs mount. + on load_all_props_action + load_all_props + + # Mount filesystems and start core system services. + on late-init + trigger early-fs + trigger fs + trigger post-fs + trigger post-fs-data + + # Load properties from /system/ + /factory after fs mount. Place + # this in another action so that the load will be scheduled after the prior + # issued fs triggers have completed. + trigger load_all_props_action + + trigger early-boot + trigger boot + +on fs + mkdir /dev/usb-ffs 0770 shell shell + mkdir /dev/usb-ffs/adb 0770 shell shell + mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000 + write /sys/class/android_usb/android0/f_ffs/aliases adb + +#INTERNAL_START + write /proc/bootprof "INIT:Mount_START" + mount_all /fstab.mt6797 + write /proc/bootprof "INIT:Mount_END" +#INTERNAL_END + +on post-fs + + start logd + # once everything is setup, no need to modify / + mount rootfs rootfs / ro remount + # Mount shared so changes propagate into child namespaces + mount rootfs rootfs / shared rec + # Mount default storage into root namespace + mount none /mnt/runtime/default /storage slave bind rec + # Support legacy paths + symlink /sdcard /storage/sdcard0 + + chown system system /system/data + mkdir /system/cache 0770 system cache + # We restorecon /cache in case the cache partition has been reset. + restorecon_recursive /cache + + # Same reason as /data above + chown system cache /cache + chmod 0770 /cache + + # This may have been created by the recovery system with odd permissions + chown system cache /cache/recovery + chmod 0770 /cache/recovery + + #change permissions on vmallocinfo so we can grab it from bugreports + chown root log /proc/vmallocinfo + chmod 0440 /proc/vmallocinfo + + #change permissions on kmsg & sysrq-trigger so bugreports can grab kthread stacks + chown root system /proc/kmsg + chmod 0440 /proc/kmsg + chown root system /proc/sysrq-trigger + chmod 0220 /proc/sysrq-trigger + chown system log /proc/last_kmsg + chmod 0440 /proc/last_kmsg + + # make the selinux kernel policy world-readable + chmod 0444 /sys/fs/selinux/policy + + # create the lost+found directories, so as to enforce our permissions + mkdir /cache/lost+found 0770 root root + +#INTERNAL_START + mkdir /cache/recovery 0770 system system + chown system system /protect_f + chmod 0770 /protect_f + + chown system system /protect_s + chmod 0770 /protect_s +#INTERNAL_END + +on post-fs-data + #Thermal + mkdir /data/.tp/ 0775 system system + + # We chown/chmod /data again so because mount is run as root + defaults + chown system system /system/data + chmod 0777 /system/data + # We chown/chmod /data again so because mount is run as root + defaults + chown system system /data + chmod 0771 /data + # We restorecon /data in case the userdata partition has been reset. + restorecon /data + + # We chown/chmod /data again so because mount is run as root + defaults + + chown root system /proc/sysrq-trigger + chmod 0220 /proc/sysrq-trigger + + chown system system /nvcfg + chmod 0771 /nvcfg + restorecon_recursive /nvcfg + +# create basic filesystem structure + #mkdir /data/nvram 2770 root system + # We chown/chmod /nvdata again so because mount is run as root + defaults + chown root system /nvdata + chmod 0771 /nvdata + symlink /nvdata /data/nvram + mkdir /nvdata/media 0771 media audio + + #Create cct mount point + mkdir /data/cct + chown root system /data/cct + chmod 0771 /data/cct + + # Set SELinux security contexts on upgrade or policy update. + restorecon_recursive /nvdata + +# Emulated internal storage area + mkdir /data/media 0770 media_rw media_rw + + # Make sure we have the device encryption key + start logd + start vold + installkey /data + + # create basic filesystem structure + mkdir /data/misc 01771 system misc + mkdir /data/misc/adb 02750 system shell + mkdir /data/misc/bluedroid 02770 bluetooth net_bt_stack + # Fix the access permissions and group ownership for 'bt_config.conf' + chmod 0660 /data/misc/bluedroid/bt_config.conf + chown bluetooth net_bt_stack /data/misc/bluedroid/bt_config.conf + mkdir /data/misc/bluetooth 0770 system system + mkdir /data/misc/keystore 0700 keystore keystore + mkdir /data/misc/keychain 0771 system system + mkdir /data/misc/vpn 0770 system vpn + mkdir /data/misc/systemkeys 0700 system system + # give system access to wpa_supplicant.conf for backup and restore + mkdir /data/misc/wifi 0770 wifi wifi + mkdir /data/misc/wifi/sockets 0770 wifi wifi + mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi + mkdir /data/misc/ethernet 0770 system system + mkdir /data/misc/dhcp 0770 dhcp dhcp + mkdir /data/misc/user 0771 root root + mkdir /data/misc/perfprofd 0775 root root + # give system access to wpa_supplicant.conf for backup and restore + chmod 0660 /data/misc/wifi/wpa_supplicant.conf + mkdir /data/local 0751 root root + mkdir /data/misc/media 0700 media media + mkdir /data/misc/vold 0700 root root + mkdir /data/local/tmp 0771 shell shell + mkdir /data/data 0771 system system + mkdir /data/property 0700 root root + mkdir /data/tombstones 0771 system system + mkdir /data/misc/media 0700 media media + mkdir /data/misc/vold 0700 root root + + # create the lost+found directories, so as to enforce our permissions + mkdir /data/lost+found 0770 root root + mkdir /data/adb 0770 root root + + # Create all remaining /data root dirs so that they are made through init + # and get proper encryption policy installed + mkdir /data/backup 0700 system system + mkdir /data/media 0770 media_rw media_rw + mkdir /data/ss 0700 system system + mkdir /data/system 0775 system system + mkdir /data/system/heapdump 0700 system system + mkdir /data/user 0711 system system + + # VIA flashlessd service + mkdir /data/flashless 0770 radio nvram + mkdir /data/nvram/md_via 0770 root nvram + chmod 0660 /dev/ttyMT4 + chown radio radio /dev/ttyMT4 + chmod 0660 /dev/vmodem + chown radio radio /dev/vmodem + + #VIA pppd service + mkdir /data/pppd_via 0770 radio system + + # md32 boot + chown root system /dev/md32 + chmod 0440 /dev/md32 + chown root system /sys/class/misc/md32/md32_mobile_log + chmod 0660 /sys/class/misc/md32/md32_mobile_log + write /sys/class/misc/md32/md32_boot 1 + + # dhcp server + mkdir /data/misc/dhcp 0770 dhcp dhcp + chown dhcp dhcp /data/misc/dhcp + + # device info interface + chmod 0440 /dev/devmap + chown root system /dev/devmap + + + + #change partition permission + exec /system/etc/partition_permission.sh +#INTERNAL_START +#SeLinux + mkdir /data/ccci_cfg 0770 system radio + restorecon /data/ccci_cfg + restorecon_recursive /protect_f + restorecon_recursive /protect_s + +## Custom pos-fs area (START) +# Please add custom fs operation below + + # Touch Panel + chown root diag /sys/module/tpd_setting/parameters/tpd_calmat + chown root diag /sys/module/tpd_setting/parameters/tpd_em_debounce_time + chown root diag /sys/module/tpd_debug/parameters/tpd_em_log + chown root diag /sys/module/tpd_debug/parameters/tpd_em_log_to_fs + + # RTC + mkdir /data/misc/rtc 0770 system system + + # Modem related device nodes + mkdir /data/nvram/md 0770 root system + mkdir /data/nvram/md2 0770 root system + mkdir /data/nvram/md3 0770 root system + mkdir /data/md3 0770 root system + + chown radio radio /sys/kernel/ccci/boot + + #set mlock limit to infinate (for m4u operation) + setrlimit 8 -1 -1 + + # Sensor + chmod 0666 /dev/hwmsensor + chmod 0666 /dev/gyroscope + chmod 0666 /dev/msensor + chmod 0666 /dev/gsensor + chmod 0666 /dev/alsps + chmod 0666 /dev/humidity + chmod 0666 /dev/barometer + + chown system system /dev/hwmsensor + chown system system /dev/msensor + chown system system /dev/gsensor + chown radio system /dev/als_ps + chown system system /dev/gyroscope + chown system system /dev/barometer + chown system system /dev/humidity + #VideoCodec + chmod 0666 /dev/Vcodec + + + mkdir /data/amit/ + + # GPIO + chmod 0666 /dev/mtgpio + + chmod 0666 /dev/exm0 + + # TTY + # For ATCID + chmod 0660 /dev/ttyGS0 + chown system radio /dev/ttyGS0 + chmod 0660 /dev/ttyGS1 + chown system /dev/ttyGS1 + # For BT relayer + chown bluetooth radio /dev/ttyGS2 + chmod 0660 /dev/ttyGS2 + # For MD Logger + chown system radio /dev/ttyGS3 + chmod 0660 /dev/ttyGS3 + + #NFC + rm /data/mtknfc_server + +## Custom pos_fs area (END) +#INTERNAL_END + + # Separate location for storing security policy files on data + mkdir /data/security 0711 system system + + # Reload policy from /data/security if present. + setprop selinux.reload_policy 1 + + # Set SELinux security contexts on upgrade or policy update. + restorecon_recursive /data + + # If there is no fs-post-data action in the init.<device>.rc file, you + # must uncomment this line, otherwise encrypted filesystems + # won't work. + # Set indication (checked by vold) that we have finished this action + setprop vold.post_fs_data_done 1 + +on boot + + #VIA device property + setprop viatel.device.asci uart.4.ttyMT + setprop viatel.device.fls sdio.3.ttySDIO + setprop viatel.device.at sdio.4.ttySDIO + setprop viatel.device.data sdio.1.ttySDIO + +# basic network init + ifup lo + hostname localhost + domainname localdomain + +#INTERNAL_START +# Start default class, this line is very important!! + class_start default + class_start core +#INTERNAL_END + +on nonencrypted + class_start main + class_start late_start + +on property:vold.decrypt=trigger_default_encryption + start defaultcrypto + +on property:vold.decrypt=trigger_encryption + start surfaceflinger + start encrypt + +on property:sys.init_log_level=* + loglevel ${sys.init_log_level} + +on property:vold.decrypt=trigger_reset_main + class_reset main + +on property:vold.decrypt=trigger_load_persist_props + load_persist_props + start logd + start logd-reinit + +on property:vold.decrypt=trigger_post_fs_data + trigger post-fs-data + +on property:vold.decrypt=trigger_restart_min_framework + class_start main + +on property:vold.decrypt=trigger_restart_framework + start nvram_daemon + class_start main + class_start late_start + start permission_check + +on property:vold.decrypt=trigger_shutdown_framework + class_reset late_start + class_reset main + +service ueventd /sbin/ueventd + class core + critical + seclabel u:r:ueventd:s0 + +service logd /system/bin/logd + class core + socket logd stream 0666 logd logd + socket logdr seqpacket 0666 logd logd + socket logdw dgram 0222 logd logd +service logd-reinit /system/bin/logd --reinit + oneshot + disabled + +service console /system/bin/sh + class core + console + disabled + user shell + seclabel u:r:shell:s0 + +on property:sys.powerctl=* + powerctl ${sys.powerctl} + +on property:ro.debuggable=1 + start console + +# adbd is controlled via property triggers in init.<platform>.usb.rc +service adbd /sbin/adbd --root_seclabel=u:r:su:s0 + class core + socket adbd stream 660 system system + disabled + seclabel u:r:adbd:s0 + +service vold /system/bin/vold \ + --blkid_context=u:r:blkid:s0 --blkid_untrusted_context=u:r:blkid_untrusted:s0 \ + --fsck_context=u:r:fsck:s0 --fsck_untrusted_context=u:r:fsck_untrusted:s0 + class core + socket vold stream 0660 root mount + socket cryptd stream 0660 root mount + ioprio be 2 + +service debuggerd /system/bin/debuggerd + class main + +service debuggerd64 /system/bin/debuggerd64 + class main + +# One shot invocation to deal with encrypted volume. +service defaultcrypto /system/bin/vdc --wait cryptfs mountdefaultencrypted + disabled + oneshot + # vold will set vold.decrypt to trigger_restart_framework (default + # encryption) or trigger_restart_min_framework (other encryption) + +# One shot invocation to encrypt unencrypted volumes +service encrypt /system/bin/vdc --wait cryptfs enablecrypto inplace default + disabled + oneshot + # vold will set vold.decrypt to trigger_restart_framework (default + # encryption) + +on property:persist.logd.logpersistd=logcatd + # all exec/services are called with umask(077), so no gain beyond 0700 + mkdir /data/misc/logd 0700 logd log + # logd for write to /data/misc/logd, log group for read from pstore (-L) + exec - logd log -- /system/bin/logcat -L -b all -v threadtime -v usec -v printable -D -f /data/misc/logd/logcat -r 64 -n 256 + start logcatd + +service logcatd /system/bin/logcat -b all -v threadtime -v usec -v printable -D -f /data/misc/logd/logcat -r 64 -n 256 + class late_start + disabled + # logd for write to /data/misc/logd, log group for read from log daemon + user logd + group log + +#INTERNAL_START +## Custom service area (START) +# Please add custom service below + +service thermal_manager /system/bin/thermal_manager + user root + oneshot + +service permission_check /system/bin/permission_check + user root + group system radio + oneshot + +service ccci_fsd /system/bin/ccci_fsd 0 + user radio + group radio system + oneshot + +service ccci_mdinit /system/bin/ccci_mdinit 0 + user system + group radio system + oneshot + +service ccci3_fsd /system/bin/ccci_fsd 2 + user radio + group radio system + oneshot + +service ccci3_mdinit /system/bin/ccci_mdinit 2 + user system + group radio system + oneshot + +service ccci_rpcd /system/bin/ccci_rpcd 0 + user radio + group radio system + oneshot + +service nvram_daemon /system/bin/nvram_daemon + class main + user root + group system + oneshot + +service mdlogger /system/bin/mdlogger + class main + user shell + group shell system radio sdcard_rw inet + disabled + oneshot + +service dualmdlogger /system/bin/dualmdlogger + class main + user shell + group shell system radio sdcard_rw inet + disabled + oneshot + +service factory_no_image /system/bin/factory + +service mobile_log_d /system/bin/mobile_log_d + class main + +## Custom service area (END) + + +#statusd service +service statusd /system/bin/statusd -f [/system/bin/flashlessd -l -m 0] + socket statusd stream 660 radio radio + user radio + group radio cache inet misc system + +#mass_storage,adb,acm +on property:ro.boot.usbconfig=0 + write /sys/class/android_usb/android0/iSerial $ro.serialno + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 0e8d + write /sys/class/android_usb/android0/idProduct 2006 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions mass_storage,adb,acm + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.acm_idx 1 + +#acm +on property:ro.boot.usbconfig=1 + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/iSerial " " + write /sys/class/android_usb/android0/idVendor 0e8d + write /sys/class/android_usb/android0/idProduct 2007 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions acm + write /sys/class/android_usb/android0/bDeviceClass 02 + write /sys/class/android_usb/android0/enable 1 + +#singloe modem comport for factory mode +on property:sys.usb.config=gs3,dual_acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor $sys.usb.vid + write /sys/class/android_usb/android0/idProduct 202E + write /sys/class/android_usb/android0/f_acm/port_index 1,4 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions mass_storage,adb,acm + write /sys/class/android_usb/android0/enable 1 + chown system radio /dev/ttyGS3 + chmod 0660 /dev/ttyGS3 + start adbd + setprop sys.usb.state $sys.usb.config + setprop sys.usb.acm_idx 1,4 + +#dual modem comport for factory mode +on property:sys.usb.config=gs1gs3,dual_acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor $sys.usb.vid + write /sys/class/android_usb/android0/idProduct 202F + write /sys/class/android_usb/android0/f_acm/port_index 1,2,4 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions adb,acm + write /sys/class/android_usb/android0/enable 1 + chown system radio /dev/ttyGS3 + chmod 0660 /dev/ttyGS3 + chown system radio /dev/ttyGS1 + chmod 0660 /dev/ttyGS1 + start adbd + setprop sys.usb.state $sys.usb.config + setprop sys.usb.acm_idx 1,2,4 +#INTERNAL_END diff --git a/fstab.mt6797.nand b/fstab.mt6797.nand new file mode 100755 index 0000000..558a1ee --- /dev/null +++ b/fstab.mt6797.nand @@ -0,0 +1,6 @@ +# Android fstab file. +#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags> +# The filesystem that contains the filesystem checker binary (typically /system) cannot +# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK + +/devices/platform/mtk-msdc.1/mmc_host auto vfat defaults voldmanaged=sdcard:auto,noemulatedsd
\ No newline at end of file diff --git a/ht120.mtc b/ht120.mtc new file mode 100755 index 0000000..c4167aa --- /dev/null +++ b/ht120.mtc @@ -0,0 +1,58 @@ +/qtrg4s slopnhv4s s"sdrx1x$zz!t + !" +/qtrg4s slopnhv4s s"sqolg2y% su + !" +/qtrg4s slopnhv4s s"sqc0w#yy " + !" +/qtrg4s slopnhv4s s"sxow1x$zz!t + !" +/qtrg4s slopnhv4s s6cm/nwm lxwo23 + !" +/qtrg4s slopnhv4s s6cm/nwm lxwo24 + !" +/qtrg4s slopnhv4s s6cm/nwm lxwo25 + !" +/qtrg4jyq$es1wljxtiu/u!exxewi an +PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"3$%&'() +/qtrg4jyq$es1wljxtiu/u!exxvhgyascp +PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"4$%&'() +/qtrg4jyq$es1wljxtiu/dnpyyz +0!634%778)112#656'990!8345&889 37845&'() !" +/qtrg4jyq$es1wljxtiu/dnfxr +0!:8456'>@012#8:678)49234%=<890!84456';>5123$;678)29735;&;>?7!48$7;'99012#$ +/qtrg4jyq$es1wljxtiu/u!ftz +1!34;567(9 nvnxxiw"6szuuwy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"545&8 +/qtrg4jyq$es1wljxtiu/u!sqni +1!379567(9 nvnxxvtql-t vvxz'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#5567( +/qtrg4jyq$es1wljxtiu/u!se +1!354567(9 nvnxxvh5!yttvx%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!3345& +/qtrg4jyq$es1wljxtiu/u!zqy +1!354567(9 nvnxx"t!6szuuwy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"4456' +/qtrg4jyq$es1wljxtiu/u!exx +1!354567(9 nvn1hr4s!hvvgs!t78)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789 +/qtrg4jyq$es1wljxtiu/u!ge>88< +1!434567(9 nvn1hr4s!hvvgs!t79)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789 +/qtrg4jyq$es1wljxtiu/u!exxvh +1!354567(9 nvn1hr4s!hvvgs!t7:)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789 +/qtrg4jyq$es1wljxtiu/u!ww6 +0!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2# +/qtrg4jyq$es1wljxtiu/u!ww7 +0!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2# +/qtrg4jyq$es1wljxtiu/u!ww9 +0!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2# +/qtrg4s s"z0owoyyjx# +mbaois&8() !"#$%& +/qtrg4s s"z0owoyywurc +mbaois&;() !"#$%&'() +/qtrg4s s"z0owoyywi +mbaois&8() !"#$%&'() !"# +/qtrg4s s"z0owoyy#u" +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyyHX +mbaois&;() !"#$%&'() +/qtrg4s s"z0vvhf?99= +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyyi!!merd +mbaois&;() !"#$%&'() +EPH +
diff --git a/init.fon.rc b/init.fon.rc new file mode 100755 index 0000000..5738308 --- /dev/null +++ b/init.fon.rc @@ -0,0 +1,11 @@ +on init + mkdir /fat 0700 root root +on fs_property:ro.mount.fs=YAFFS + mount yaffs2 mtd@fat /fat nosuid nodev +on fs_property:ro.mount.fs=UBIFS + write /proc/bootprof "INIT:PROTECT:fat start" +# mount ubifs ubi@fat /fat nosuid nodev wait + mount yaffs2 mtd@fat /fat nosuid nodev + write /proc/bootprof "INIT:PROTECT:fat end" +on post-fs + exec /system/bin/vdc fatcreation diff --git a/init.microtrust.rc b/init.microtrust.rc new file mode 100755 index 0000000..244cc37 --- /dev/null +++ b/init.microtrust.rc @@ -0,0 +1,45 @@ +on property:vold.decrypt=trigger_restart_framework + setprop soter.teei.vold.decrypt OK + +on post-fs-data + write /proc/bootprof "start teei cfg (on post-fs-data)" + mkdir /data/thh + mkdir /data/thh/system + chmod 0755 /data/thh + chown system system /data/thh + chmod 0755 /data/thh/system + chown system system /data/thh/system + chmod 0666 /dev/teei_client + chown system system /dev/teei_client + chmod 0660 /dev/teei_config + chown system system /dev/teei_config + chmod 0660 /dev/tz_vfs + chown system system /dev/tz_vfs + chmod 0666 /dev/teei_fp + chown system /dev/teei_fp + chmod 0660 /dev/emmcrpmb0 + chown system system /dev/emmcrpmb0 + write /proc/bootprof "start teei cfg end (on post-fs-data)" + +on boot + write /proc/bootprof "start teei_daemon (on boot)" + start teei_daemon + write /proc/bootprof "start teei_daemon end (on boot)" + +# teei service daemon +service teei_daemon /system/bin/teei_daemon + class core + user system + group system + disabled + # oneshot + +#on property:soter.teei.init=INIT_OK +# start init_thh_service + +#service init_thh_service /system/bin/init_thh init +# class core +# user system +# group system +# disabled +# oneshot diff --git a/init.modem.rc b/init.modem.rc new file mode 100755 index 0000000..ffa32ba --- /dev/null +++ b/init.modem.rc @@ -0,0 +1,196 @@ +# 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 "3ff" + write /sys/class/net/ccmni1/queues/rx-0/rps_cpus "3ff" + write /sys/class/net/ccmni2/queues/rx-0/rps_cpus "3ff" + write /sys/class/net/ccmni0/queues/rx-0/rps_flow_cnt "1000" + write /sys/class/net/ccmni1/queues/rx-0/rps_flow_cnt "1000" + write /sys/class/net/ccmni2/queues/rx-0/rps_flow_cnt "1000" + setprop net.perf.rps 3ff + setprop net.perf.cpu.core 4,4,0,0,0,0 + setprop net.perf.cpu.freq 1118000,1391000,0,0,0,0 + +on post-fs-data + + write /proc/bootprof "post-fs-data: on modem start" + + # Modem related device nodes + mkdir /data/nvram/md 0770 root system + mkdir /data/nvram/md3 0770 root system + mkdir /data/md3 0770 root system +# Build-in Modified - S +# insmod /system/lib/modules/ccci_plat.ko +# insmod /system/lib/modules/ccci.ko +# Build-in Modified - E +# chown radio radio /sys/class/BOOT/BOOT/boot/md + chown radio radio /sys/kernel/ccci/boot + +#SeLinux + mkdir /data/ccci_cfg 0770 system radio + restorecon /data/ccci_cfg + restorecon_recursive /protect_f + restorecon_recursive /protect_s + + # Encrypt phone function + setprop vold.post_fs_data_done 1 + +service gsm0710muxd /system/bin/gsm0710muxd -s /dev/ttyC0 -f 512 -n 8 -m basic + class core + user root + group radio cache inet misc + disabled + oneshot + +service gsm0710muxdmd2 /system/bin/gsm0710muxdmd2 -s /dev/ccci2_tty0 -f 512 -n 8 -m basic + class core + user root + group radio cache inet misc + disabled + oneshot + +service muxreport-daemon /system/bin/muxreport + class core + user radio + group radio cache inet misc + disabled + oneshot + +service ril-daemon-mtk /system/bin/mtkrild + class core + socket rild stream 660 root radio + socket rild2 stream 660 root radio + socket rild3 stream 660 root radio + socket rild4 stream 660 root radio + socket rild-ims stream 660 root radio + socket rild-debug stream 660 radio system + socket rild-oem stream 660 radio system + socket rild-mtk-ut stream 660 radio net_bt + socket rild-mtk-ut-2 stream 660 radio net_bt + socket rild-mtk-modem stream 660 radio system + socket rild-atci stream 660 root radio + socket rild-mal stream 660 radio system + socket rild-mal-at stream 660 radio system + socket rild-vsim stream 660 root radio + socket rild-mbim stream 660 root radio + socket sap_uim_socket1 stream 660 bluetooth bluetooth + socket sap_uim_socket2 stream 660 bluetooth bluetooth + user root + group radio cache inet misc audio sdcard_r sdcard_rw log system + disabled + oneshot + +service ril-daemon-mtkmd2 /system/bin/mtkrildmd2 + class core + socket rild-md2 stream 660 root radio + socket rild2-md2 stream 660 root radio + socket rild-debug-md2 stream 660 radio system + socket rild-oem-md2 stream 660 radio system + socket rild-mtk-ut-md2 stream 660 radio net_bt + socket rild-mtk-ut-2-md2 stream 660 radio net_bt + socket rild-mtk-modem-md2 stream 660 radio system + socket rild-atci-md2 stream 660 root radio + socket rild-vsim-md2 stream 660 root radio + socket rild-mal-md2 stream 660 radio system + socket rild-vsim-md2 stream 660 root radio + socket rild-mbim-md2 stream 660 root radio + user root + group radio cache inet misc audio sdcard_r sdcard_rw log system + disabled + oneshot + +service md_minilog_util /system/bin/md_minilog_util + user radio + disabled + oneshot + +#VIA RILD service +service viarild /system/bin/viarild -l /system/lib/libviatelecom-withuim-ril.so -- -d /dev/ttySDIO4 + class core + socket rild-via stream 660 radio radio + socket msap_c2k_socket1 stream 660 radio radio + socket msap_c2k_socket2 stream 660 radio radio + socket msap_c2k_socket3 stream 660 radio radio + socket msap_c2k_socket4 stream 660 radio radio + socket rpc stream 660 radio system + socket rild-debug stream 660 radio system + socket rild-ctclient stream 660 radio system + socket rild-atci-c2k stream 660 radio system + group radio cache inet misc audio sdcard_r sdcard_rw log system + disabled + oneshot + +# +# Modem related services (Begin) +# + +service permission_check /system/bin/permission_check + class main + user root + group system radio + oneshot + +service ccci_fsd /system/bin/ccci_fsd 0 + user radio + group radio system + class core + oneshot + +service ccci_mdinit /system/bin/ccci_mdinit 0 + user system + group radio system + class core + oneshot + +service ccci3_fsd /system/bin/ccci_fsd 2 + user radio + group radio system + class core + oneshot + +service ccci3_mdinit /system/bin/ccci_mdinit 2 + user system + group radio system + class core + oneshot + +service ccci_rpcd /system/bin/ccci_rpcd 0 + user radio + group radio system + class core + oneshot + +service pppd_gprs /system/bin/pppd_dt /dev/ttyACM0 debug noauth refuse-eap usepeerdns nodetach + user root + group radio cache inet misc + disabled + oneshot + +#Add by T.Zh for ppp daemon +service pppd /system/bin/pppd file /data/misc/ppp/ppp_options + user root + disabled + oneshot + +# +# +# Modem related services (End) +# + +#Add by hp.chen for +# +# Telephony Early Read service +# +service terservice /system/bin/terservice + class core + user radio + group radio cache inet misc + oneshot + +on property:ril.muxreport=1 + start muxreport-daemon + diff --git a/init.mt6797.rc b/init.mt6797.rc new file mode 100755 index 0000000..9baf209 --- /dev/null +++ b/init.mt6797.rc @@ -0,0 +1,1728 @@ +# MTK platform .rc configure + +import init.connectivity.rc +import init.project.rc +import /FWUpgradeInit.rc +import init.xlog.rc +import init.aee.rc +import init.fon.rc +import init.volte.rc +import init.mal.rc +import init.epdg.rc +import init.wfca.rc +import init.trustonic.rc +import init.common_svc.rc +import init.microtrust.rc + +# init.modem.rc must be the LAST rc file because vold.post_fs_data_done is set in it +import init.modem.rc +# *** DO NOT import the new rc file after this line *** + +on early-init + mount debugfs debugfs /sys/kernel/debug + chmod 0755 /sys/kernel/debug + +on init + # Support legacy paths + symlink /sdcard /mnt/sdcard + + # if primary storage is physical, set ro.vold.primary_physical to 1 + # setprop ro.vold.primary_physical 1 + + # BATTERY proc + chown shell system /proc/mtk_battery_cmd/current_cmd + chown shell system /proc/mtk_battery_cmd/discharging_cmd + +# Temp Backward compatibility + mkdir /protect_f 0771 system system + mkdir /protect_s 0771 system system + mkdir /nvcfg 0771 system system + +#Create nvdata mount point + mkdir /nvdata 0771 system system +# Create CIP mount point + mkdir /custom + + mkdir /mnt/cd-rom 0000 system system + +# change lk_env permission + chown root system /proc/lk_env + chmod 0660 /proc/lk_env + +# increase sysctl_rmem_max and sysctl_wmem_max values to 2M + write /proc/sys/net/core/wmem_max 2097152 + write /proc/sys/net/core/rmem_max 2097152 + +# mount different fs start + +on charger + mount ext4 /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/system /system ro wait + start spm_script + chmod 0666 /dev/kmsg + write /sys/devices/platform/battery_meter/FG_daemon_log_level 7 + start fuelgauged + start kpoc_charger + start servicemanager + +on fs + write /proc/bootprof "INIT:Mount_START" + mount_all /fstab.mt6797 + exec /system/bin/tune2fs -O has_journal -u 10010 -r 4096 /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/userdata + write /proc/bootprof "INIT:Mount_END" + +on fs + + mount iso9660 loop@/system/etc/iAmCdRom.iso /mnt/cd-rom ro + +on post-fs + # Support legacy paths + symlink /sdcard /storage/sdcard0 + + #change permissions for mediaserver + chown root media /proc/clkmgr/mipi_test + + #change permission for engineer mode + chown radio system /proc/clkmgr/pll_test + chown radio system /proc/clkmgr/pll_fsel + chmod 0664 /proc/clkmgr/pll_test + chmod 0664 /proc/clkmgr/pll_fsel + #change permission for engineer mode + chown radio system /proc/freqhopping/dramc + chown radio system /proc/freqhopping/dumpregs + chown radio system /proc/freqhopping/freqhopping_debug + chown radio system /proc/freqhopping/status + chown radio system /proc/freqhopping/userdef + +# change owner + chown system system /proc/bootprof + chown root system /proc/mtprof/cputime + chown root system /proc/mtprof/reboot_pid + + chown system system /protect_f + chmod 0770 /protect_f + + chown system system /protect_s + chmod 0770 /protect_s + +on post-fs-data + chown system system /nvcfg + chmod 0771 /nvcfg + restorecon_recursive /nvcfg + + # create basic filesystem structure + # mkdir /data/nvram 2770 root system + # We chown/chmod /nvdata again so because mount is run as root + defaults + chown root system /nvdata + chmod 0771 /nvdata + symlink /nvdata /data/nvram + mkdir /nvdata/media 0771 media audio + + #Create cct mount point + mkdir /data/cct + chown root system /data/cct + chmod 0771 /data/cct + + # Set SELinux security contexts on upgrade or policy update. + restorecon_recursive /nvdata + + chmod 0660 /data/misc/wifi/p2p_supplicant.conf + + #give system access to rfkill device node + chmod 0660 /dev/rfkill + + # create for muxd pts device node , to operate without root + mkdir /dev/radio 0770 radio radio + + mkdir /data/drm/wv 0770 drm system + +# GPS + mkdir /data/gps_mnl 0771 gps system + mkdir /data/misc/gps 0770 gps system + mkdir /data/mpe_mnl 0771 gps system + chown gps system /data/mpe_mnl + chmod 0775 /system/xbin/MPED + chmod 0666 /dev/gps_emi + + # NFC + mkdir /data/nfc_socket 0771 nfc radio + +# ----------------------- +# Add by MTK + # SCP log + chmod 0220 /sys/class/misc/scp/scp_mobile_log + chown root system /sys/class/misc/scp/scp_mobile_log + chmod 0220 /sys/class/misc/scp/scp_log_flush + chown root system /sys/class/misc/scp/scp_log_flush + chmod 0440 /dev/scp + chown root system /dev/scp + + + # dhcp server + mkdir /data/misc/dhcp 0770 dhcp wifi + chown dhcp wifi /data/misc/dhcp + + # dhcpv6 server + mkdir /data/misc/wide-dhcpv6 0770 dhcp wifi + chown dhcp wifi /data/misc/wide-dhcpv6 + + # radvd + mkdir /data/misc/radvd 0770 system system + chmod 444 /etc/radvd/radvd.conf + + # Mali 3D GPU driver + #insmod /system/lib/modules/mali.ko + chmod 666 /dev/mali0 + #chown system graphics /dev/mali + + + + # Touch Panel + # chmod 0664 /dev/touch + chown root diag /sys/module/tpd_setting/parameters/tpd_calmat + chown root diag /sys/module/tpd_setting/parameters/tpd_em_debounce_time + chown root diag /sys/module/tpd_setting/parameters/tpd_mode + chown root diag /sys/module/tpd_setting/parameters/tpd_em_debounce_time0 + chown root diag /sys/module/tpd_setting/parameters/tpd_em_debounce_time1 + chown root diag /sys/module/tpd_setting/parameters/tpd_em_spl_num + chown root diag /sys/module/tpd_setting/parameters/tpd_em_pressure_threshold + chown root diag /sys/module/tpd_setting/parameters/tpd_em_auto_time_interval + chown root diag /sys/module/tpd_setting/parameters/tpd_em_sample_cnt + chown root diag /sys/module/tpd_setting/parameters/tpd_em_asamp + chown root diag /sys/module/tpd_debug/parameters/tpd_em_log + chown root diag /sys/module/tpd_debug/parameters/tpd_em_log_to_fs + + chmod 0666 /dev/pmem_multimedia + + # watch dog kicker + write /proc/wdk "0 20 30" + + # set ptmx group to non-root + chown root radio /dev/ptmx + + # RTC + mkdir /data/misc/rtc 0770 system system + + # M4U + #insmod /system/lib/modules/m4u.ko + #mknod /dev/M4U_device c 188 0 + chmod 0444 /dev/m4u + #chown system media /dev/M4U_device + + #set mlock limit to infinate (for m4u operation) + setrlimit 8 -1 -1 + + # CMDQ + chmod 0640 /dev/mtk_cmdq + chown system system /dev/mtk_cmdq + + #OFFLOAD SERVICE + chmod 0640 /dev/offloadservice + chown media media /dev/offloadservice + + #OPEN DSP + chmod 0640 /dev/audio_ipi + chown media media /dev/audio_ipi + + # Sensor + chmod 0660 /dev/hwmsensor + chmod 0660 /dev/msensor + chmod 0660 /dev/gsensor + chmod 0660 /dev/als_ps + chmod 0660 /dev/gyroscope + chmod 0660 /dev/aal_als + chmod 0660 /dev/m_batch_misc + chmod 0660 /dev/humidity + chmod 0660 /dev/barometer + chmod 0660 /sys/devices/platform/msensor/driver/cpsopmode + chmod 0660 /sys/devices/platform/msensor/driver/cpsreptxy + chmod 0660 /sys/devices/platform/msensor/driver/cpsreptz + chmod 0660 /sys/devices/platform/gsensor/driver/cpsopmode + chmod 0660 /sys/devices/platform/gsensor/driver/cpsrange + chmod 0660 /sys/devices/platform/gsensor/driver/cpsbandwidth + + chown system system /dev/hwmsensor + chown system system /dev/msensor + chown system system /dev/gsensor + chown radio system /dev/als_ps + chown system system /dev/gyroscope + chown system system /dev/aal_als + chown system system /dev/m_batch_misc + chown system system /dev/humidity + chown system system /dev/barometer + chmod 0660 /sys/class/misc/m_acc_misc/accenablenodata + chmod 0660 /sys/class/misc/m_acc_misc/accactive + chmod 0660 /sys/class/misc/m_acc_misc/accdelay + chmod 0660 /sys/class/misc/m_acc_misc/accbatch + chmod 0660 /sys/class/misc/m_acc_misc/accflush + chown system system /sys/class/misc/m_acc_misc/accenablenodata + chown system system /sys/class/misc/m_acc_misc/accactive + chown system system /sys/class/misc/m_acc_misc/accdelay + chown system system /sys/class/misc/m_acc_misc/accbatch + chown system system /sys/class/misc/m_acc_misc/accflush + + chmod 0660 /sys/class/misc/m_mag_misc/magactive + chmod 0660 /sys/class/misc/m_mag_misc/magdelay + chmod 0660 /sys/class/misc/m_mag_misc/magbatch + chmod 0660 /sys/class/misc/m_mag_misc/magflush + chmod 0660 /sys/class/misc/m_mag_misc/magoactive + chmod 0660 /sys/class/misc/m_mag_misc/magodelay + chmod 0660 /sys/class/misc/m_mag_misc/magobatch + chmod 0660 /sys/class/misc/m_mag_misc/magoflush + chown system system /sys/class/misc/m_mag_misc/magactive + chown system system /sys/class/misc/m_mag_misc/magdelay + chown system system /sys/class/misc/m_mag_misc/magbatch + chown system system /sys/class/misc/m_mag_misc/magflush + chown system system /sys/class/misc/m_mag_misc/magoactive + chown system system /sys/class/misc/m_mag_misc/magodelay + chown system system /sys/class/misc/m_mag_misc/magobatch + chown system system /sys/class/misc/m_mag_misc/magoflush + chmod 0660 /sys/class/misc/m_batch_misc/batchactive + chmod 0660 /sys/class/misc/m_batch_misc/batchdelay + chmod 0660 /sys/class/misc/m_batch_misc/batchbatch + chmod 0660 /sys/class/misc/m_batch_misc/batchflush + chown system system /sys/class/misc/m_batch_misc/batchactive + chown system system /sys/class/misc/m_batch_misc/batchdelay + chown system system /sys/class/misc/m_batch_misc/batchbatch + chown system system /sys/class/misc/m_batch_misc/batchflush + + chmod 0660 /sys/class/misc/m_gyro_misc/gyroenablenodata + chmod 0660 /sys/class/misc/m_gyro_misc/gyroactive + chmod 0660 /sys/class/misc/m_gyro_misc/gyrodelay + chmod 0660 /sys/class/misc/m_gyro_misc/gyrobatch + chmod 0660 /sys/class/misc/m_gyro_misc/gyroflush + chown system system /sys/class/misc/m_gyro_misc/gyroenablenodata + chown system system /sys/class/misc/m_gyro_misc/gyroactive + chown system system /sys/class/misc/m_gyro_misc/gyrodelay + chown system system /sys/class/misc/m_gyro_misc/gyrobatch + chown system system /sys/class/misc/m_gyro_misc/gyroflush + + chmod 0660 /sys/class/misc/m_uncali_gyro_misc/ungyroenablenodata + chmod 0660 /sys/class/misc/m_uncali_gyro_misc/ungyroactive + chmod 0660 /sys/class/misc/m_uncali_gyro_misc/ungyrodelay + chmod 0660 /sys/class/misc/m_uncali_gyro_misc/ungyrobatch + chmod 0660 /sys/class/misc/m_uncali_gyro_misc/ungyroflush + chown system system /sys/class/misc/m_uncali_gyro_misc/ungyroenablenodata + chown system system /sys/class/misc/m_uncali_gyro_misc/ungyroactive + chown system system /sys/class/misc/m_uncali_gyro_misc/ungyrodelay + chown system system /sys/class/misc/m_uncali_gyro_misc/ungyrobatch + chown system system /sys/class/misc/m_uncali_gyro_misc/ungyroflush + + chmod 0660 /sys/class/misc/m_uncali_mag_misc/unmagenablenodata + chmod 0660 /sys/class/misc/m_uncali_mag_misc/unmagactive + chmod 0660 /sys/class/misc/m_uncali_mag_misc/unmagdelay + chmod 0660 /sys/class/misc/m_uncali_mag_misc/unmagbatch + chmod 0660 /sys/class/misc/m_uncali_mag_misc/unmagflush + chown system system /sys/class/misc/m_uncali_mag_misc/unmagenablenodata + chown system system /sys/class/misc/m_uncali_mag_misc/unmagactive + chown system system /sys/class/misc/m_uncali_mag_misc/unmagdelay + chown system system /sys/class/misc/m_uncali_mag_misc/unmagbatch + chown system system /sys/class/misc/m_uncali_mag_misc/unmagflush + + chmod 0660 /sys/class/misc/m_alsps_misc/alsactive + chmod 0660 /sys/class/misc/m_alsps_misc/alsdelay + chmod 0660 /sys/class/misc/m_alsps_misc/alsbatch + chmod 0660 /sys/class/misc/m_alsps_misc/alsflush + chmod 0660 /sys/class/misc/m_alsps_misc/psactive + chmod 0660 /sys/class/misc/m_alsps_misc/psdelay + chmod 0660 /sys/class/misc/m_alsps_misc/psbatch + chmod 0660 /sys/class/misc/m_alsps_misc/psflush + chown system system /sys/class/misc/m_alsps_misc/alsactive + chown system system /sys/class/misc/m_alsps_misc/alsdelay + chown system system /sys/class/misc/m_alsps_misc/alsbatch + chown system system /sys/class/misc/m_alsps_misc/alsflush + chown system system /sys/class/misc/m_alsps_misc/psactive + chown system system /sys/class/misc/m_alsps_misc/psdelay + chown system system /sys/class/misc/m_alsps_misc/psbatch + chown system system /sys/class/misc/m_alsps_misc/psflush + + chmod 0660 /sys/class/misc/m_baro_misc/baroenablenodata + chmod 0660 /sys/class/misc/m_baro_misc/baroactive + chmod 0660 /sys/class/misc/m_baro_misc/barodelay + chmod 0660 /sys/class/misc/m_baro_misc/barobatch + chmod 0660 /sys/class/misc/m_baro_misc/baroflush + chown system system /sys/class/misc/m_baro_misc/baroenablenodata + chown system system /sys/class/misc/m_baro_misc/baroactive + chown system system /sys/class/misc/m_baro_misc/barodelay + chown system system /sys/class/misc/m_baro_misc/barobatch + chown system system /sys/class/misc/m_baro_misc/baroflush + + chmod 0660 /sys/class/misc/m_hmdy_misc/hmdyenablenodata + chmod 0660 /sys/class/misc/m_hmdy_misc/hmdyactive + chmod 0660 /sys/class/misc/m_hmdy_misc/hmdydelay + chmod 0660 /sys/class/misc/m_hmdy_misc/hmdybatch + chmod 0660 /sys/class/misc/m_hmdy_misc/hmdyflush + + chown system system /sys/class/misc/m_hmdy_misc/hmdyenablenodata + chown system system /sys/class/misc/m_hmdy_misc/hmdyactive + chown system system /sys/class/misc/m_hmdy_misc/hmdydelay + chown system system /sys/class/misc/m_hmdy_misc/hmdybatch + chown system system /sys/class/misc/m_hmdy_misc/hmdyflush + + chmod 0660 /sys/class/misc/m_pedo_misc/pedoactive + chmod 0660 /sys/class/misc/m_pedo_misc/pedodelay + chmod 0660 /sys/class/misc/m_pedo_misc/pedobatch + chmod 0660 /sys/class/misc/m_pedo_misc/pedoflush + chown system system /sys/class/misc/m_pedo_misc/pedoactive + chown system system /sys/class/misc/m_pedo_misc/pedodelay + chown system system /sys/class/misc/m_pedo_misc/pedobatch + chown system system /sys/class/misc/m_pedo_misc/pedoflush + + chmod 0660 /sys/class/misc/m_pkup_misc/pkupactive + chmod 0660 /sys/class/misc/m_pkup_misc/pkupdelay + chmod 0660 /sys/class/misc/m_pkup_misc/pkupbatch + chmod 0660 /sys/class/misc/m_pkup_misc/pkupflush + chown system system /sys/class/misc/m_pkup_misc/pkupactive + chown system system /sys/class/misc/m_pkup_misc/pkupdelay + chown system system /sys/class/misc/m_pkup_misc/pkupbatch + chown system system /sys/class/misc/m_pkup_misc/pkupflush + + chmod 0660 /sys/class/misc/m_tilt_misc/tiltactive + chmod 0660 /sys/class/misc/m_tilt_misc/tiltdelay + chmod 0660 /sys/class/misc/m_tilt_misc/tiltbatch + chmod 0660 /sys/class/misc/m_tilt_misc/tiltflush + chown system system /sys/class/misc/m_tilt_misc/tiltactive + chown system system /sys/class/misc/m_tilt_misc/tiltdelay + chown system system /sys/class/misc/m_tilt_misc/tiltbatch + chown system system /sys/class/misc/m_tilt_misc/tiltflush + + chmod 0660 /sys/class/misc/m_glg_misc/glgactive + chmod 0660 /sys/class/misc/m_glg_misc/glgdelay + chmod 0660 /sys/class/misc/m_glg_misc/glgbatch + chmod 0660 /sys/class/misc/m_glg_misc/glgflush + chown system system /sys/class/misc/m_glg_misc/glgactive + chown system system /sys/class/misc/m_glg_misc/glgdelay + chown system system /sys/class/misc/m_glg_misc/glgbatch + chown system system /sys/class/misc/m_glg_misc/glgflush + + chmod 0660 /sys/class/misc/m_wag_misc/wagactive + chmod 0660 /sys/class/misc/m_wag_misc/wagdelay + chmod 0660 /sys/class/misc/m_wag_misc/wagbatch + chmod 0660 /sys/class/misc/m_wag_misc/wagflush + chown system system /sys/class/misc/m_wag_misc/wagactive + chown system system /sys/class/misc/m_wag_misc/wagdelay + chown system system /sys/class/misc/m_wag_misc/wagbatch + chown system system /sys/class/misc/m_wag_misc/wagflush + + chmod 0660 /sys/class/misc/m_ancall_misc/ancallactive + chmod 0660 /sys/class/misc/m_ancall_misc/ancalldelay + chmod 0660 /sys/class/misc/m_ancall_misc/ancallbatch + chmod 0660 /sys/class/misc/m_ancall_misc/ancallflush + chown system system /sys/class/misc/m_ancall_misc/ancallactive + chown system system /sys/class/misc/m_ancall_misc/ancalldelay + chown system system /sys/class/misc/m_ancall_misc/ancallbatch + chown system system /sys/class/misc/m_ancall_misc/ancallflush + + chmod 0660 /sys/class/misc/m_ges_misc/gesactive + chmod 0660 /sys/class/misc/m_ges_misc/gesdelay + chmod 0660 /sys/class/misc/m_ges_misc/gesbatch + chmod 0660 /sys/class/misc/m_ges_misc/gesflush + chown system system /sys/class/misc/m_ges_misc/gesactive + chown system system /sys/class/misc/m_ges_misc/gesdelay + chown system system /sys/class/misc/m_ges_misc/gesbatch + chown system system /sys/class/misc/m_ges_misc/gesflush + chmod 0660 /sys/class/misc/m_pdr_misc/pdractive + chmod 0660 /sys/class/misc/m_pdr_misc/pdrdelay + chmod 0660 /sys/class/misc/m_pdr_misc/pdrbatch + chmod 0660 /sys/class/misc/m_pdr_misc/pdrflush + chown system system /sys/class/misc/m_pdr_misc/pdractive + chown system system /sys/class/misc/m_pdr_misc/pdrdelay + chown system system /sys/class/misc/m_pdr_misc/pdrbatch + chown system system /sys/class/misc/m_pdr_misc/pdrflush + + chmod 0660 /sys/class/misc/m_act_misc/actactive + chmod 0660 /sys/class/misc/m_act_misc/actdelay + chmod 0660 /sys/class/misc/m_act_misc/actbatch + chmod 0660 /sys/class/misc/m_act_misc/actflush + chown system system /sys/class/misc/m_act_misc/actactive + chown system system /sys/class/misc/m_act_misc/actdelay + chown system system /sys/class/misc/m_act_misc/actbatch + chown system system /sys/class/misc/m_act_misc/actflush + + chmod 0660 /sys/class/misc/m_step_c_misc/step_cactive + chmod 0660 /sys/class/misc/m_step_c_misc/step_cdelay + chmod 0660 /sys/class/misc/m_step_c_misc/step_cbatch + chmod 0660 /sys/class/misc/m_step_c_misc/step_cflush + chown system system /sys/class/misc/m_step_c_misc/step_cactive + chown system system /sys/class/misc/m_step_c_misc/step_cdelay + chown system system /sys/class/misc/m_step_c_misc/step_cbatch + chown system system /sys/class/misc/m_step_c_misc/step_cflush + + chmod 0660 /sys/class/misc/m_rv_misc/rvactive + chmod 0660 /sys/class/misc/m_rv_misc/rvdelay + chmod 0660 /sys/class/misc/m_rv_misc/rvbatch + chmod 0660 /sys/class/misc/m_rv_misc/rvflush + chown system system /sys/class/misc/m_rv_misc/rvactive + chown system system /sys/class/misc/m_rv_misc/rvdelay + chown system system /sys/class/misc/m_rv_misc/rvbatch + chown system system /sys/class/misc/m_rv_misc/rvflush + + chmod 0660 /sys/class/misc/m_grv_misc/grvactive + chmod 0660 /sys/class/misc/m_grv_misc/grvdelay + chmod 0660 /sys/class/misc/m_grv_misc/grvbatch + chmod 0660 /sys/class/misc/m_grv_misc/grvflush + chown system system /sys/class/misc/m_grv_misc/grvactive + chown system system /sys/class/misc/m_grv_misc/grvdelay + chown system system /sys/class/misc/m_grv_misc/grvbatch + chown system system /sys/class/misc/m_grv_misc/grvflush + + chmod 0660 /sys/class/misc/m_gmrv_misc/gmrvactive + chmod 0660 /sys/class/misc/m_gmrv_misc/gmrvdelay + chmod 0660 /sys/class/misc/m_gmrv_misc/gmrvbatch + chmod 0660 /sys/class/misc/m_gmrv_misc/gmrvflush + chown system system /sys/class/misc/m_gmrv_misc/gmrvactive + chown system system /sys/class/misc/m_gmrv_misc/gmrvdelay + chown system system /sys/class/misc/m_gmrv_misc/gmrvbatch + chown system system /sys/class/misc/m_gmrv_misc/gmrvflush + + chmod 0660 /sys/class/misc/m_la_misc/laactive + chmod 0660 /sys/class/misc/m_la_misc/ladelay + chmod 0660 /sys/class/misc/m_la_misc/labatch + chmod 0660 /sys/class/misc/m_la_misc/laflush + chown system system /sys/class/misc/m_la_misc/laactive + chown system system /sys/class/misc/m_la_misc/ladelay + chown system system /sys/class/misc/m_la_misc/labatch + chown system system /sys/class/misc/m_la_misc/laflush + + chmod 0660 /sys/class/misc/m_grav_misc/gravactive + chmod 0660 /sys/class/misc/m_grav_misc/gravdelay + chmod 0660 /sys/class/misc/m_grav_misc/gravbatch + chmod 0660 /sys/class/misc/m_grav_misc/gravflush + chown system system /sys/class/misc/m_grav_misc/gravactive + chown system system /sys/class/misc/m_grav_misc/gravdelay + chown system system /sys/class/misc/m_grav_misc/gravbatch + chown system system /sys/class/misc/m_grav_misc/gravflush + + #added by dangchaobing for leds + #chmod 0660 /sys/class/misc/96board_leds/96_led0 + #chmod 0660 /sys/class/misc/96board_leds/96_led1 + #chmod 0660 /sys/class/misc/96board_leds/96_led2 + #chmod 0660 /sys/class/misc/96board_leds/96_led3 + chmod 0660 /sys/class/misc/96board_leds/96_led4 + chmod 0660 /sys/class/misc/96board_leds/96_led5 + #chown system system /sys/class/misc/96board_leds/96_led0 + #chown system system /sys/class/misc/96board_leds/96_led1 + #chown system system /sys/class/misc/96board_leds/96_led2 + #chown system system /sys/class/misc/96board_leds/96_led3 + chown wifi wifi /sys/class/misc/96board_leds/96_led4 + chown bluetooth bluetooth /sys/class/misc/96board_leds/96_led5 + #end + + #sensorhub CDD + chmod 0660 /dev/shf + chown system system /dev/shf + + #Accdet + chown root radio /sys/devices/platform/Accdet_Driver/driver/accdet_call_state + + #VideoCodec + #insmod /system/lib/modules/vcodec_kernel_driver.ko + mknod /dev/Vcodec c 160 0 + chmod 0660 /dev/Vcodec + chown media system /dev/Vcodec + + #MJC + #insmod /system/lib/modules/mjc_kernel_driver.ko + #mknod /dev/MJC c 168 0 + chmod 0660 /dev/MJC + chown media system /dev/MJC + + #kpd + chown radio radio /sys/devices/platform/mtk-kpd/driver/kpd_call_state + + #Charging Battery + chown radio radio /sys/devices/platform/battery/Charging_CallState + + # PMIC property + chown radio system /sys/devices/platform/mt-pmic/low_battery_protect_stop + chown radio system /sys/devices/platform/mt-pmic/low_battery_protect_ut + + mkdir /data/amit/ 0770 system system + mkdir /data/misc/sensor 0774 system system + mkdir /data/misc/akmd 0770 system system + mkdir /data/misc/s62x 0771 compass compass + mkdir /data/acdapi/ 0770 system system + chmod 0660 /data/misc/acdapi/calib.dat + chmod 0660 /data/misc/acdapi/param.dat + chmod 0660 /data/misc/acdapi/sensors.dat + chown system /sys/devices/platform/msensor/driver/cpsopmode + chown system /sys/devices/platform/msensor/driver/cpsreptxy + chown system /sys/devices/platform/msensor/driver/cpsreptz + chown system /sys/devices/platform/gsensor/driver/cpsopmode + chown system /sys/devices/platform/gsensor/driver/cpsrange + mkdir /data/data/mcube 0664 system system + + chown system /sys/class/input/input1/enable + chown system /sys/class/input/input1/delay + chown system /sys/class/input/input1/wake + chown system /sys/class/input/input1/offsets + chown system /sys/class/input/input2/enable + chown system /sys/class/input/input2/delay + chown system /sys/class/input/input2/wake + chown system /sys/class/input/input2/offsets + chown system /sys/class/input/input3/enable + chown system /sys/class/input/input3/delay + chown system /sys/class/input/input3/wake + chown system /sys/class/input/input3/offsets + chown system /sys/class/input/input4/enable + chown system /sys/class/input/input4/delay + chown system /sys/class/input/input4/wake + chown system /sys/class/input/input4/offsets + chown system /sys/class/input/input5/enable + chown system /sys/class/input/input5/delay + chown system /sys/class/input/input5/wake + chown system /sys/class/input/input5/offsets + chown system /sys/class/input/input6/enable + chown system /sys/class/input/input6/delay + chown system /sys/class/input/input6/wake + chown system /sys/class/input/input6/offsets + chown system /sys/class/input/input7/enable + chown system /sys/class/input/input7/delay + chown system /sys/class/input/input7/wake + chown system /sys/class/input/input7/offsets + chown system /sys/class/input/input8/enable + chown system /sys/class/input/input8/delay + chown system /sys/class/input/input8/wake + chown system /sys/class/input/input8/offsets + chown system /sys/class/input/input9/enable + chown system /sys/class/input/input9/delay + chown system /sys/class/input/input9/wake + chown system /sys/class/input/input9/offsets + chown system /sys/class/input/input10/enable + chown system /sys/class/input/input10/delay + chown system /sys/class/input/input10/wake + chown system /sys/class/input/input10/offsets + + #EM eint + chown root diag /sys/bus/platform/drivers/eint/current_eint + + # Display + chmod 0660 /dev/graphics/fb0 + chown system graphics /dev/graphics/fb0 + + chmod 0660 /dev/mtk_disp_mgr + chown system graphics /dev/mtk_disp_mgr + + chmod 0660 /dev/mtkfb_vsync + chown system graphics /dev/mtkfb_vsync + + chmod 0660 /dev/sw_sync + chown system graphics /dev/sw_sync + + # EM baseband file + chown root diag /system/bin/baseband_regdump + chmod 4750 /system/bin/baseband_regdump + + #pmu + chown root radio /sys/devices/platform/mt-pmic/pmic_access_bank0 + chown root radio /sys/devices/platform/mt-pmic/pmic_access_bank1 + chown root radio /sys/devices/platform/mt6311-user/mt6311_access + chown root radio /sys/devices/platform/mt-pmic/pmic_access + chmod 0664 /sys/devices/platform/mt-pmic/pmic_access_bank0 + chmod 0664 /sys/devices/platform/mt-pmic/pmic_access_bank1 + chmod 0664 /sys/devices/platform/mt6311-user/mt6311_access + chmod 0664 /sys/devices/platform/mt-pmic/pmic_access + + # EM CPU Speed Stress + chown root radio /proc/cpu_ss/cpu_ss_debug_mode + chown root radio /proc/cpu_ss/cpu_ss_mode + chown root radio /proc/cpu_ss/cpu_ss_period + chown root radio /proc/cpu_ss/cpu_ss_period_mode + chmod 0664 /proc/cpu_ss/cpu_ss_debug_mode + chmod 0664 /proc/cpu_ss/cpu_ss_mode + chmod 0664 /proc/cpu_ss/cpu_ss_period + chmod 0664 /proc/cpu_ss/cpu_ss_period_mode + + #EM eint + chown root diag /sys/bus/platform/drivers/eint/current_eint + + # for ppp options file + mkdir /data/misc/ppp 0770 bluetooth net_bt + + # Android SEC related device nodes + chmod 0660 /dev/sec + chown root system /dev/sec + + # FM Radio device node + mknod /dev/fm c 193 0; + chmod 0660 /dev/fm + chown media media /dev/fm + + # device apc settings + + # device info /proc interface + mknod /dev/devmap c 196 0; + chmod 0440 /dev/devmap + chown root system /dev/devmap + + # bluetooth + mkdir /data/@btmtk 0770 bluetooth net_bt + chown bluetooth bluetooth /data/@btmtk/host_cache + chown bluetooth bluetooth /data/@btmtk/dev_cache + chown bluetooth bluetooth /dev/hid-keyboard + chmod 0660 /dev/hid-keyboard + #Use uinput's default permission + chown system net_bt_admin /dev/uinput + + # UIBC + chown system media /dev/uibc + chmod 0660 /dev/uibc + + #TV-out + chmod 0664 /dev/TV-out + + #HDMI + chown media system /dev/hdmitx + chmod 0664 /dev/hdmitx + + + # JPEG + #chmod 0444 /dev/mtk_jpeg + + # almk + chmod 0440 /dev/mtk_almk + + # DISP + chmod 0444 /dev/mtk_disp + + #ANC SERVICE + chmod 0640 /dev/ancservice + chown media media /dev/ancservice + + #Camera + chmod 0660 /dev/camera-sysram + chmod 0660 /dev/camera-isp + chmod 0660 /dev/camera-dpe + chmod 0660 /dev/camera-fdvt + chmod 0660 /dev/camera-pipemgr + chmod 0660 /dev/kd_camera_hw + chmod 0660 /dev/kd_camera_flashlight + chmod 0660 /dev/kd_camera_hw_bus2 + chmod 0660 /dev/FM50AF + chmod 0660 /dev/CAM_CAL_DRV + + chown system camera /dev/camera-sysram + chown system camera /dev/camera-isp + chown system camera /dev/camera-dpe + chown system camera /dev/camera-fdvt + chown system camera /dev/camera-pipemgr + chown system camera /dev/kd_camera_hw + chown system camera /dev/kd_camera_flashlight + chown system camera /dev/kd_camera_hw_bus2 + chown system camera /dev/FM50AF + chown system camera /dev/CAM_CAL_DRV + + #VOW + chmod 0640 /dev/vow + chown media media /dev/vow + + #MATV + chmod 0660 /dev/MATV + chown system media /dev/MATV + + # otg_test + chown root radio /dev/mt_otg_test + chmod 0660 /dev/mt_otg_test + + # MDP + chmod 0660 /dev/mt-mdp + chown system media /dev/mt-mdp + + # SMI + chmod 0660 /dev/MTK_SMI + chown media media /dev/MTK_SMI + + # RRC + chmod 0660 /dev/mtk_rrc + chown media system /dev/mtk_rrc + + + #change partition permission + + chmod 0640 /mtd@sec_ro + chown root system /mtd@sec_ro + + chmod 0640 /mtd@preloader + chown root system /mtd@preloader + + chmod 0660 /mtd@pro_info + chown root system /mtd@pro_info + + chmod 0640 /mtd@bootimg + chown root system /mtd@bootimg + + chmod 0640 /mtd@recovery + chown root system /mtd@recovery + + chmod 0660 /mtd@nvram + chown root system /mtd@nvram + + chmod 0660 /mtd@seccfg + chown root system /mtd@seccfg + + chmod 0660 /mtd@misc + chown root system /mtd@misc + + chmod 0664 /sys/bus/platform/drivers/mem_bw_ctrl/concurrency_scenario + chown media media /sys/bus/platform/drivers/mem_bw_ctrl/concurrency_scenario + + #mtk_sched + chmod 0660 /dev/mtk_sched + chown system media /dev/mtk_sched + + #BT SCO CVSD, for MT6572 and MT6582 CVSD codec on AP + chmod 0660 /dev/ebc + chown media media /dev/ebc + + chmod 0666 /dev/uio0 + + #otp + chmod 0660 /proc/driver/otp + chown root system /proc/driver/otp + + #sn + chmod 0664 /sys/class/android_usb/android0/iSerial + chown root system /sys/class/android_usb/android0/iSerial + chmod 0664 /sys/class/udc/musb-hdrc/device/cmode + chown root system /sys/class/udc/musb-hdrc/device/cmode + + # secure memory + chown system system /proc/secmem0 + + # mcDriverDaemon + mkdir /data/app/mcRegistry 0775 system system + mkdir /data/app/mcRegistry/TbStorage 0775 system system + + # AGPS + mkdir /data/agps_supl 0771 gps system + + # Recycle stuffs + exec /system/bin/rm -f /cache/.ipoh.img + + chmod 0666 /dev/exm0 + + + #Thermal + mkdir /data/.tp/ 0775 system system + +# End of adding by MTK drivers +# ----------------------- + +on boot + + # xlog + start xlogboot + + write /proc/sys/vm/dirty_writeback_centisecs 300 + chmod 0660 /sys/power/autosleep + + chmod 0664 /sys/class/leds/lcd-backlight/brightness + + chown system system /sys/devices/system/cpu/cpufreq/hotplug/cpu_num_base + chmod 0660 /sys/devices/system/cpu/cpufreq/hotplug/cpu_num_base + chown root system /sys/kernel/debug/binder/transaction_log_enable + chown root system /sys/kernel/debug/binder/perf_evalue + + chown system /sys/module/mlog/parameters/do_mlog + chown system /sys/module/mlog/parameters/timer_intval + + chown root radio /sys/class/leds/lcd-backlight/duty + chown root radio /sys/class/leds/lcd-backlight/div + chown system system /sys/class/leds/lcd-backlight/trigger + chown system system /sys/class/leds/button-backlight/trigger + chown system system /sys/class/leds/keyboard-backlight/trigger + chown system system /sys/class/leds/jogball-backlight/trigger + chown system system /sys/class/leds/red/trigger + chown system system /sys/class/leds/green/trigger + chown system system /sys/class/leds/blue/trigger + + # Permission for hibernation + chown radio system /sys/power/tuxonice + chown radio system /sys/power/tuxonice/do_hibernate + chmod 0770 /sys/power/tuxonice + chmod 0220 /sys/power/tuxonice/do_hibernate + + +# Smartbook Handler Framework + chown system system /sys/power/sb_state + chmod 0660 /sys/power/sb_state + +# HMP CPU hotplug strategy + chown system system /proc/hps/num_base_perf_serv + chmod 0660 /proc/hps/num_base_perf_serv + chown system system /proc/hps/num_limit_power_serv + chmod 0660 /proc/hps/num_limit_power_serv + chown system system /proc/hps/num_limit_ultra_power_saving + chmod 0660 /proc/hps/num_limit_ultra_power_saving + chown system system /proc/hps/down_threshold + chmod 0660 /proc/hps/down_threshold + chown system system /proc/hps/up_threshold + chmod 0660 /proc/hps/up_threshold + chown system system /proc/hps/rush_boost_enabled + chmod 0660 /proc/hps/rush_boost_enabled + chown system system /proc/hps/heavy_task_enabled + chmod 0660 /proc/hps/heavy_task_enabled + chown system system /proc/hps/power_mode + chmod 0660 /proc/hps/power_mode + +# PPM + chown system system /proc/ppm/mode + chmod 0660 /proc/ppm/mode + chown system system /proc/ppm/policy/perfserv_min_perf_idx + chmod 0440 /proc/ppm/policy/perfserv_min_perf_idx + chown system system /proc/ppm/policy/perfserv_max_perf_idx + chmod 0440 /proc/ppm/policy/perfserv_max_perf_idx + chown system system /proc/ppm/policy/perfserv_perf_idx + chmod 0660 /proc/ppm/policy/perfserv_perf_idx + chown system system /proc/ppm/policy/userlimit_min_cpu_freq + chmod 0660 /proc/ppm/policy/userlimit_min_cpu_freq + chown system system /proc/ppm/policy/userlimit_max_cpu_freq + chmod 0660 /proc/ppm/policy/userlimit_max_cpu_freq + chown system system /proc/ppm/policy/userlimit_min_cpu_core + chmod 0660 /proc/ppm/policy/userlimit_min_cpu_core + chown system system /proc/ppm/policy/userlimit_max_cpu_core + chmod 0660 /proc/ppm/policy/userlimit_max_cpu_core + chown system system /proc/ppm/dump_cluster_0_dvfs_table + chmod 0440 /proc/ppm/dump_cluster_0_dvfs_table + chown system system /proc/ppm/dump_cluster_1_dvfs_table + chmod 0440 /proc/ppm/dump_cluster_1_dvfs_table + chown system system /proc/ppm/dump_cluster_2_dvfs_table + chmod 0440 /proc/ppm/dump_cluster_2_dvfs_table + chown system system /proc/ppm/root_cluster + chmod 0660 /proc/ppm/root_cluster + +# CPU freq + chown system system /proc/cpufreq/cpufreq_limited_by_hevc + chmod 0660 /proc/cpufreq/cpufreq_limited_by_hevc + chown system system /proc/cpufreq/cpufreq_limited_max_freq_by_user + chmod 0660 /proc/cpufreq/cpufreq_limited_max_freq_by_user + +# BW monitor + chown system system /proc/fliper + chmod 0664 /proc/fliper + +##Netlog tool + #change permissions about terminal + chown root radio /proc/net/vlan/config + chmod 0640 /proc/net/vlan/config + chown root radio /proc/net/ip6_tables_matches + chown root radio /proc/net/ip6_tables_names + chown root radio /proc/net/ip6_tables_targets + chown root radio /proc/net/arp_tables_targets + chown root radio /proc/net/arp_tables_matches + chown root radio /proc/net/arp_tables_names + chown root radio /proc/net/ip_tables_targets + chown root radio /proc/net/ip_tables_matches + chown root radio /proc/net/ip_tables_names + chown root radio /proc/net/ip_conntrack_expect + chown root radio /proc/net/ip_conntrack + chown root radio /proc/net/nf_conntrack + chown root radio /proc/net/nf_conntrack_expect + chown root radio /proc/net/netfilter/nfnetlink_log + chown root radio /proc/net/netfilter/nfnetlink_queue + +# WMT proc + chown shell system /proc/driver/wmt_dbg + chown shell system /proc/driver/wmt_aee + +# define device for EMCSMDLOGGER + chown system radio /dev/ttyGS3 + chmod 0660 /dev/ttyGS3 + +#Define device for ATCID + chmod 660 /dev/ttyGS0 + chown system radio /dev/ttyGS0 + chmod 660 /dev/ttyGS1 + chown system radio /dev/ttyGS1 + +on property:ro.board.platform=mt6753 + chown system system /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq + chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq + write /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq 1300000 + +on property:vold.decrypt=trigger_reset_main + start stop_modem + setprop sys.boot_completed 0 + setprop dev.bootcomplete 0 + write /proc/bootprof "trigger_reset_main" + +on property:vold.decrypt=trigger_restart_min_framework + start start_modem + start msensord + start permission_check + start stp_dump + write /proc/bootprof "trigger_restart_min_framework" + +on property:vold.decrypt=trigger_restart_framework + start nvram_daemon + start start_modem + start msensord + start permission_check + write /proc/bootprof "trigger_restart_framework" + +on property:vold.decrypt=trigger_shutdown_framework + start stop_modem + start swapoff_action + stop stp_dump + setprop sys.boot_completed 0 + setprop dev.bootcomplete 0 + write /proc/bootprof "trigger_shutdown_framework" + +service stop_modem /system/bin/md_ctrl 0 + class main + disabled + oneshot + +service start_modem /system/bin/md_ctrl 1 + class main + disabled + oneshot +# Define TCP buffer sizes for various networks +# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax, + setprop net.tcp.buffersize.default 4096,87380,524288,4096,16384,524288 + setprop net.tcp.buffersize.wifi 524288,1048576,2097152,262144,524288,1048576 + setprop net.tcp.buffersize.lte 524288,1048576,2097152,262144,524288,1048576 + setprop net.tcp.buffersize.umts 4094,87380,524288,4096,16384,524288 + setprop net.tcp.buffersize.hspa 4094,87380,524288,4096,16384,524288 + setprop net.tcp.buffersize.hsupa 4094,87380,524288,4096,16384,524288 + setprop net.tcp.buffersize.hsdpa 4094,87380,524288,4096,16384,524288 + setprop net.tcp.buffersize.hspap 4094,87380,1220608,4096,16384,1220608 + setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040 + setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680 + + setprop persist.sys.strictmode.disable 1 + +## mtk printk uart controller +on property:persist.uartconsole.enable=1 + write /proc/mtprintk 1 + +# Update the second boot logo +service bootlogoupdater /system/bin/boot_logo_updater + class core + oneshot + +service mobile_log_d /system/bin/mobile_log_d + class main +# MTK PR_DEBUG SWITCH +on property:debug.MB.prdebug=1 + write /sys/kernel/debug/dynamic_debug/control "file *mediatek* +p" + write /sys/kernel/debug/dynamic_debug/control "file *gpu* -p" +on property:debug.MB.prdebug=0 + write /sys/kernel/debug/dynamic_debug/control "file *mediatek* -p" + +service met_log_d /system/bin/met_log_d + class main + +# bugreport is triggered by holding down volume down, volume up and power +service bugreport /system/bin/dumpstate -d -p -B \ + -o /data/data/com.android.shell/files/bugreports/bugreport + class main + disabled + oneshot + keycodes 114 115 116 + +# start ged_srv +on property:sys.boot_completed=1 + start ged_srv + +service ged_srv /system/bin/ged_srv + class core + user system + group system + disabled + +on property:sys.boot_completed=1 + start gas_srv + +service gas_srv /system/bin/gas_srv + class core + user system + group system + disabled + +service netdiag /system/bin/netdiag + class main + socket netdiag stream 0664 root inet + + +service nvram_daemon /system/bin/nvram_daemon + class main + user root + group system + oneshot + +service atci_service /system/bin/atci_service + class core + socket atci-service stream 660 radio system + socket atci-serv-fw stream 660 radio system + user root + disabled + group radio system + +service atcid-daemon-u /system/bin/atcid + class main + socket adb_atci_socket stream 660 radio system + user system + group radio system media + disabled + oneshot + +service atcid-daemon-e /system/bin/atcid + class core + socket adb_atci_socket stream 660 radio system + user root + group radio system + disabled + oneshot + +on property:persist.service.atci.usermode=1 + setprop persist.sys.usb.config mass_storage,adb,acm + +on property:ro.build.type=eng +start atci_service +start atcid-daemon-e + +on property:persist.service.atci.autostart=1 +start atci_service +start atcid-daemon-u + +service audio-daemon /system/bin/audiocmdservice_atci + class main + socket atci-audio stream 660 root system + user root + disabled + oneshot + +service md_minilog_util /system/bin/md_minilog_util + user root + disabled + oneshot + +service pq /system/bin/pq + class main + user system + group system graphics + +service aal /system/bin/aal + class main + user system + group system graphics + +# FOTA upgrade +service rbfota /system/bin/fota1 + class main + disabled + oneshot + + +service dhcpcd_bt-pan /system/bin/dhcpcd -BK -dd + class main + user root + group net_admin net_raw + disabled + oneshot + + + +service dhcpcd_wlan0 /system/bin/dhcpcd -BK -dd + class main + user root + group net_admin net_raw + disabled + oneshot + +service dhcpcd_p2p /system/bin/dhcpcd -BK -dd + class main + user root + group net_admin net_raw + disabled + oneshot + +service iprenew_wlan0 /system/bin/dhcpcd -n + class main + user dhcp + group net_admin net_raw + disabled + oneshot + +service iprenew_p2p /system/bin/dhcpcd -n + class main + user dhcp + group net_admin net_raw + disabled + oneshot + +service dhcp_inform /system/bin/dhcpcd -s -BK -A + class main + user root + group system radio dhcp net_admin net_raw + disabled + oneshot + +service dhcpv6_inform /system/bin/dhcp6c -c "/etc/wide-dhcpv6/dhcp6cSIP.conf" -Dfi + class main + user root + group system radio dhcp net_admin net_raw + disabled + oneshot + +service dhcp6cDNS_wlan0 /system/bin/dhcp6c -c "/etc/wide-dhcpv6/dhcp6cDNS.conf" -Df wlan0 + disabled + oneshot + +service dhcp6c_wlan0 /system/bin/dhcp6c -c "/etc/wide-dhcpv6/dhcp6c.conf" -Df wlan0 + disabled + oneshot + +on property:service.dhcp6c_wlan0.enable=0 + stop dhcp6c_wlan0 + +on property:service.dhcp6c_wlan0.enable=1 + start dhcp6c_wlan0 + +service dhcp6c_PD /system/bin/dhcp6c -c "/etc/wide-dhcpv6/dhcp6cPD.conf" -Df + disabled + oneshot + +service pppoe_wlan0 /system/bin/launchpppoe + user root + group radio cache inet misc + disabled + oneshot + +on property:service.pppoe_wlan0.enable=0 + stop pppoe_wlan0 + +on property:service.pppoe_wlan0.enable=1 + start pppoe_wlan0 +# write proc for test sim + on property:gsm.sim.ril.testsim=0 + write /proc/sys/net/netfilter/nf_conntrack_tcp_no_window_check 0 + write /proc/sys/net/ipv4/tcp_rto_min 200 + write /proc/sys/net/ipv4/tcp_early_retrans 3 + on property:gsm.sim.ril.testsim=1 + write /proc/sys/net/netfilter/nf_conntrack_tcp_no_window_check 1 + write /proc/sys/net/ipv4/tcp_rto_min 400 + write /proc/sys/net/ipv4/tcp_early_retrans 0 + on property:gsm.sim.ril.testsim.2=0 + write /proc/sys/net/netfilter/nf_conntrack_tcp_no_window_check 0 + write /proc/sys/net/ipv4/tcp_rto_min 200 + write /proc/sys/net/ipv4/tcp_early_retrans 3 + on property:gsm.sim.ril.testsim.2=1 + write /proc/sys/net/netfilter/nf_conntrack_tcp_no_window_check 1 + write /proc/sys/net/ipv4/tcp_rto_min 400 + write /proc/sys/net/ipv4/tcp_early_retrans 0 + on property:gsm.sim.ril.testsim.3=0 + write /proc/sys/net/netfilter/nf_conntrack_tcp_no_window_check 0 + write /proc/sys/net/ipv4/tcp_rto_min 200 + write /proc/sys/net/ipv4/tcp_early_retrans 3 + on property:gsm.sim.ril.testsim.3=1 + write /proc/sys/net/netfilter/nf_conntrack_tcp_no_window_check 1 + write /proc/sys/net/ipv4/tcp_rto_min 400 + write /proc/sys/net/ipv4/tcp_early_retrans 0 + on property:gsm.sim.ril.testsim.4=0 + write /proc/sys/net/netfilter/nf_conntrack_tcp_no_window_check 0 + write /proc/sys/net/ipv4/tcp_rto_min 200 + write /proc/sys/net/ipv4/tcp_early_retrans 3 + on property:gsm.sim.ril.testsim.4=1 + write /proc/sys/net/netfilter/nf_conntrack_tcp_no_window_check 1 + write /proc/sys/net/ipv4/tcp_rto_min 400 + write /proc/sys/net/ipv4/tcp_early_retrans 0 + +service DMAgent /system/bin/dm_agent_binder + class main + user system + group system cache + +service PPLAgent /system/bin/ppl_agent + class main + user root + group system cache + +service vtservice /system/bin/vtservice + class main + socket soc_vt_tcv dgram 660 radio system + socket soc_vt_stk dgram 660 radio system + socket soc_vt_svc dgram 660 radio system + user root + group camera graphics media sdcard_rw radio sdcard_r media_rw + ioprio rt 4 + +service cmmb /system/bin/cmmbsp + class main + user root + group system audio camera graphics inet net_bt net_bt_admin net_bw_acct media + ioprio rt 4 + +service enableswap /system/bin/sh /enableswap.sh + class late_start + oneshot + seclabel u:r:enableswap:s0 + +service swapoff_action /system/bin/sh /disableswap.sh + class main + disabled + oneshot + +service dbus /system/bin/dbus-daemon --system --nofork + class main + socket dbus stream 660 bluetooth bluetooth + user bluetooth + group bluetooth net_bt_admin + +service bluetoothd /system/bin/bluetoothd -n + class main + socket bluetooth stream 660 bluetooth bluetooth + socket dbus_bluetooth stream 660 bluetooth bluetooth + # init.rc does not yet support applying capabilities, so run as root and + # let bluetoothd drop uid to bluetooth with the right linux capabilities + group bluetooth net_bt_admin misc + disabled + +#service dpfd /system/bin/dpfd +# user root +# group system media + +# +# External Modme control related services +# + +# +# Modem related services (Begin) +# +service pppd_gprs /system/bin/pppd_dt /dev/ttyACM0 debug noauth refuse-eap usepeerdns nodetach + user root + group radio cache inet misc + disabled + oneshot + +##Add by T.Zh for ppp daemon +#service pppd /system/bin/pppd file /data/misc/ppp/ppp_options +# user root +# disabled +# oneshot +# +## +# +# Modem related services (End) +# + +#service agpsdcainit /system/bin/agpscacertinit +# class main +# oneshot + +service agpsd /system/bin/mtk_agpsd + class main + socket agpsd stream 660 gps system + socket agpsd2 stream 660 gps inet + socket agpsd3 stream 660 gps inet + user gps + group gps radio inet sdcard_r sdcard_rw misc + +service slpd /system/bin/slpd + class main + user gps + group gps inet + +service ipod /system/bin/ipod + user root + group root + disabled + +service extmdlogger /system/bin/extmdlogger + class main + user shell + group shell system radio sdcard_rw inet sdcard_r media_rw + +service GoogleOtaAgent /system/bin/GoogleOtaBinder + class main + user root + group root + +service mdlogger /system/bin/mdlogger + class main + user shell + group shell system radio sdcard_rw inet sdcard_r media_rw + disabled + oneshot + +service emdlogger1 /system/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 + +# +#sensor service (begin) +# + +service msensord /system/bin/msensord + class main + oneshot + +service s62xd /system/bin/s62xd + disabled + user compass + group system + class main +service ami304d /system/bin/ami304d + user system + group system + disabled + class main + +service memsicd /system/bin/memsicd + disabled + user system + group system + class main + +service memsicd3416x /system/bin/memsicd3416x + disabled + user system + group system + class main +service akmd8975 /system/bin/akmd8975 + disabled + user system + group system + class main + +service akmd8963 /system/bin/akmd8963 + disabled + user system + group system + class main + +service akmd09911 /system/bin/akmd09911 + disabled + user system + group system + class main +service akmd09912 /system/bin/akmd09912 + disabled + user system + group system + class main +service bmm050d /system/bin/bmm050d + disabled + user system + group system + class main + +service bmm056d /system/bin/bmm056d + disabled + user system + group system + class main +service mc6420d /system/bin/mc6420d + disabled + user system + group system + class main +service qmc5983d /system/bin/qmc5983d + disabled + user system + group system + class main + +service orientationd /system/bin/orientationd + disabled + user system + group system input + class main +service AcdApiDaemon /system/bin/AcdApiDaemon + disabled + user system + group system + class main + +service geomagneticd /system/bin/geomagneticd + disabled + user system + group system input + class main + +service mpud6050 /system/bin/mpud6050 + oneshot + user system + group system + +service mc64xxd /system/bin/mc64xxd + disabled + user system + group system + class main +# +#sensor service (end) +# + +# +#emsvr service (start) +# +on property:ro.build.type=eng + start emsvr + +on property:ro.build.type=user + start emsvr_user + +on property:ro.build.type=userdebug + start emsvr_user + +service emsvr_user /system/bin/em_svr + disabled + user system + group system radio diag net_bt_stack + +service emsvr /system/bin/em_svr + disabled + user root + group net_bt_stack + +# +#emsvr service (end) +# + +service shutdown /system/bin/shutdown + user root + group root + disabled + +service NvRAMAgent /system/bin/nvram_agent_binder + class main + user system + group system + +service thermalloadalgod /system/bin/thermalloadalgod + class main + user system + group system + + +service thermal_manager /system/bin/thermal_manager + class main + user root + oneshot + +service thermal /system/bin/thermal + class main + user system + group system + +service thermald /system/bin/thermald + class main + user system + group system + +service fuelgauged /system/bin/fuelgauged + class main + user root + group root + +service sn /system/bin/sn + class late_start + user system + group system sdcard_rw + oneshot + +#add for power-off alarm +service poad /system/bin/poad + class main + user system + group system + oneshot + +#monitor battery status +service batterywarning /system/bin/batterywarning + class main + user shell + group shell + +service backuprestore /system/bin/br_app_data_service + class main + socket backuprestore stream 0660 root sdcard_rw + user root + +#service BGW /system/xbin/BGW +# user system +# group gps system radio +# class main +service MtkCodecService /system/bin/MtkCodecService + class main + user system + group audio media sdcard_r + +# GuiExt Server init +service guiext-server /system/bin/guiext-server + class main + user system + group system graphics + +# OperaMax Service +service OperaMaxSystem /system/bin/OperaMaxSystem + socket tunman stream 0666 system system + class main + disabled + +on property:persist.service.operamax=1 + start OperaMaxSystem + +on property:persist.service.operamax=0 + stop OperaMaxSystem + +# Battery info +on property:persist.mediatek.fg.disable=1 + write /sys/devices/platform/battery_meter/FG_daemon_disable 1 + +on property:persist.mediatek.fg.force25c=1 + write /sys/devices/platform/battery_meter/FG_drv_force25c 1 + +on property:persist.mediatek.fg.force25c=0 + write /sys/devices/platform/battery_meter/FG_drv_force25c 0 + +on property:persist.mediatek.fg.log.enable=1 + write /sys/devices/platform/battery_meter/FG_daemon_log_level 7 + write /proc/sys/kernel/printk 8 + +service kpoc_charger /system/bin/kpoc_charger + class charger + +###########add for 3Gdongle + +on boot +# +# change the right of ip-up ip-down scripts(begin) +# +chmod 777 /etc/ppp/ip-up +chmod 777 /etc/ppp/ip-down +# +# change the right of ip-up ip-down scripts(end) +# + +# +# change the right of ip-up-ppp0 ip-down-ppp0 scripts(begin) +# +chmod 777 /etc/ppp/ip-up-ppp0 +chmod 777 /etc/ppp/ip-down-ppp0 +# +# change the right of ip-up ip-down scripts(end) +# + +#set the property of persiste.radio.reset_on_switch +setprop persist.radio.reset_on_switch false +#end + +#set the property of rild.mark_switchuser +setprop rild.mark_switchuser 0 +#end + +chmod 0644 /system/lib/libzteevdo-ril.so +chomd 0644 /system/lib/zterilPara +chown root /system/bin/pppd +chmod 4755 /system/bin/pppd +chown root /system/bin/chat +chmod 4755 /system/bin/chat + +# +#ril-daemon (begin) +# +service ril-3gddaemon /system/bin/rild_dongle + class main + socket rild-dongle stream 660 root radio + socket rild-dongle-debug stream 660 radio radio + user root + group radio cache inet misc audio log + disabled + +# +#ril-daemon (end) +# + +# +#usbdongled(begin) +# +service usbdongled /system/bin/dongled + class main + user root + group radio cache inet misc + enabled + + +# +#usbdongled(end) +# + +# +# add the service for call pppd(begin) +# +service zpppd_gprs /system/bin/init.gprs-pppd + user root + group radio cache inet misc + disabled + oneshot +# +# add the service for call pppd(end) +# + +# Program binary service +service program_binary /system/bin/program_binary_service + class late_start + user system + group graphics + oneshot + + +# MBIMD Service +service mbimd /system/bin/mbimd debug + disabled + oneshot + +on property:service.mbim.enable=0 + stop mbimd + +on property:service.mbim.enable=1 + start mbimd + +# android log much detect +on property:ro.build.type=eng + setprop persist.logmuch.detect false + +on property:ro.build.type=userdebug + setprop persist.logmuch.detect false + +on property:persist.logmuch.detect=* + start logd + start logd-reinit + +on property:logmuch.detect.value=* + start logd + start logd-reinit + diff --git a/init.mt6797.usb.rc b/init.mt6797.usb.rc new file mode 100755 index 0000000..0d0c17a --- /dev/null +++ b/init.mt6797.usb.rc @@ -0,0 +1,1073 @@ +on boot + setprop sys.usb.vid 0E8D + write /sys/class/android_usb/android0/iManufacturer MediaTek + write /sys/class/android_usb/android0/iProduct ${ro.product.model} + write /sys/class/android_usb/android0/iSerial ${ro.serialno} + write /sys/class/android_usb/android0/f_rndis/wceis 1 + write /sys/class/android_usb/android0/f_rndis/manufacturer MediaTek + write /sys/class/android_usb/android0/f_rndis/vendorID ${sys.usb.vid} + +on fs + mkdir /dev/usb-ffs 0770 shell shell + mkdir /dev/usb-ffs/adb 0770 shell shell + mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000 + write /sys/class/android_usb/android0/f_ffs/aliases adb + chown system system /sys/class/android_usb/android0/f_acm/port_index + chmod 0660 /sys/class/android_usb/android0/f_acm/port_index + + +on post-fs-data + 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 + +# Used to disable USB when switching states +on property:sys.usb.config=none + stop adbd + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/bDeviceClass 0 + write /sys/devices/platform/mt_usb/saving 0 + setprop sys.usb.state ${sys.usb.config} + +#1.acm +on property:sys.usb.config=acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2007 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/bDeviceClass 02 + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#2.adb +on property:sys.usb.config=adb + 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 201C + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#3.adb,acm +on property:sys.usb.config=adb,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 200E + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#4.mass_storage +on property:sys.usb.config=mass_storage + 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 2002 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#5.mass_storage,adb +on property:sys.usb.config=mass_storage,adb + 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 2003 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#6.mtp +on property:sys.usb.config=mtp + 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 2008 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#7.mtp,acm +on property:sys.usb.config=mtp,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2012 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#8.mtp,adb +on property:sys.usb.config=mtp,adb + 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 201D + write /sys/class/android_usb/android0/functions mtp,adb + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#9.mtp,adb,acm +on property:sys.usb.config=mtp,adb,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 200A + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#10.mtp,mass_storage +on property:sys.usb.config=mtp,mass_storage + 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 2016 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#11.mtp,mass_storage,adb +on property:sys.usb.config=mtp,mass_storage,adb + 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 2017 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#12.ptp +on property:sys.usb.config=ptp + 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 200B + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#13.ptp,acm +on property:sys.usb.config=ptp,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2013 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#14.ptp,adb +on property:sys.usb.config=ptp,adb + 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 200C + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#15.ptp,adb,acm +on property:sys.usb.config=ptp,adb,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 200D + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#16.ptp,mass_storage +on property:sys.usb.config=ptp,mass_storage + 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 2015 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#17.ptp,mass_storage,adb +on property:sys.usb.config=ptp,mass_storage,adb + 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 2014 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#18.rndis +on property:sys.usb.config=rndis + 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 2004 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/bDeviceClass 224 + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#19.rndis,acm +on property:sys.usb.config=rndis,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2011 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#20.rndis,adb +on property:sys.usb.config=rndis,adb + 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 2005 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#21.rndis,adb,acm +on property:sys.usb.config=rndis,adb,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2010 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#22.mass_storage,acm +on property:sys.usb.config=mass_storage,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 200F + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#23.mass_storage,adb,acm +on property:sys.usb.config=mass_storage,adb,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2006 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#24.mtp,mass_storage,acm +on property:sys.usb.config=mtp,mass_storage,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2018 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#25.mtp,mass_storage,adb,acm +on property:sys.usb.config=mtp,mass_storage,adb,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2019 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#26.ptp,mass_storage,acm +on property:sys.usb.config=ptp,mass_storage,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 201A + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#27.ptp,mass_storage,adb,acm +on property:sys.usb.config=ptp,mass_storage,adb,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 201B + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +# duplicate of init.usb.rc + +#28. USB accessory configuration +#on property:sys.usb.config=accessory +# write /sys/class/android_usb/android0/enable 0 +# write /sys/class/android_usb/android0/idVendor 18d1 +# write /sys/class/android_usb/android0/idProduct 2d00 +# write /sys/class/android_usb/android0/functions ${sys.usb.config} +# write /sys/class/android_usb/android0/enable 1 +# setprop sys.usb.state ${sys.usb.config} + +#39. USB accessory configuration, with adb +#on property:sys.usb.config=accessory,adb +# write /sys/class/android_usb/android0/enable 0 +# write /sys/class/android_usb/android0/idVendor 18d1 +# write /sys/class/android_usb/android0/idProduct 2d01 +# write /sys/class/android_usb/android0/functions ${sys.usb.config} +# write /sys/class/android_usb/android0/enable 1 +# start adbd +# setprop sys.usb.state ${sys.usb.config} + +#30. audio accessory configuration +#on property:sys.usb.config=audio_source +# write /sys/class/android_usb/android0/enable 0 +# write /sys/class/android_usb/android0/idVendor 18d1 +# write /sys/class/android_usb/android0/idProduct 2d02 +# write /sys/class/android_usb/android0/functions ${sys.usb.config} +# write /sys/class/android_usb/android0/enable 1 +# setprop sys.usb.state ${sys.usb.config} + +#31. audio accessory configuration, with adb +#on property:sys.usb.config=audio_source,adb +# write /sys/class/android_usb/android0/enable 0 +# write /sys/class/android_usb/android0/idVendor 18d1 +# write /sys/class/android_usb/android0/idProduct 2d03 +# write /sys/class/android_usb/android0/functions ${sys.usb.config} +# write /sys/class/android_usb/android0/enable 1 +# start adbd +# setprop sys.usb.state ${sys.usb.config} + +#32. USB and audio accessory configuration +#on property:sys.usb.config=accessory,audio_source +# write /sys/class/android_usb/android0/enable 0 +# write /sys/class/android_usb/android0/idVendor 18d1 +# write /sys/class/android_usb/android0/idProduct 2d04 +# write /sys/class/android_usb/android0/functions ${sys.usb.config} +# write /sys/class/android_usb/android0/enable 1 +# setprop sys.usb.state ${sys.usb.config} + +#33. USB and audio accessory configuration, with adb +#on property:sys.usb.config=accessory,audio_source,adb +# write /sys/class/android_usb/android0/enable 0 +# write /sys/class/android_usb/android0/idVendor 18d1 +# write /sys/class/android_usb/android0/idProduct 2d05 +# write /sys/class/android_usb/android0/functions ${sys.usb.config} +# write /sys/class/android_usb/android0/enable 1 +# start adbd +# setprop sys.usb.state ${sys.usb.config} + +#34.USB Charging Only configuration +on property:sys.usb.config=charging + setprop sys.usb.state ${sys.usb.config} + setprop sys.usb.charging cdp + +on property:sys.usb.charging=cdp + 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 2008 + write /sys/class/android_usb/android0/functions mtp + write /sys/class/android_usb/android0/enable 1 + write /sys/class/udc/musb-hdrc/device/cmode 2 + +on property:sys.usb.charging=yes + write /sys/class/udc/musb-hdrc/device/cmode 2 + +on property:sys.usb.charging=no + write /sys/class/udc/musb-hdrc/device/cmode 1 + +#35.USB BICR configuration(mass_storage) +on property:sys.usb.config=bicr + 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 2002 + write /sys/class/android_usb/android0/functions mass_storage + 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" + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#36.USB BICR configuration(mass_storage+adb) +on property:sys.usb.config=bicr,adb + 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 2003 + write /sys/class/android_usb/android0/functions mass_storage,adb + 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" + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#37.USB BICR configuration(mass_storage+adb+acm) +on property:sys.usb.config=bicr,adb,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2006 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions mass_storage,adb,acm + write /sys/class/android_usb/android0/f_mass_storage/bicr 1 + write /sys/class/android_usb/android0/f_mass_storage/lun/file "/dev/block/loop0" + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#38.USB BICR configuration(mass_storage+acm) +on property:sys.usb.config=bicr,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 200F + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions mass_storage,acm + 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" + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#39.eem +on property:sys.usb.config=eem + 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 2026 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/bDeviceClass 224 + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#40.eem,acm +on property:sys.usb.config=eem,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2027 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#41.eem,adb +on property:sys.usb.config=eem,adb + 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 2028 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#42.eem,adb,acm +on property:sys.usb.config=eem,adb,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2030 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +# USB midi configuration +on property:sys.usb.config=midi + 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 2046 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +# USB midi configuration, with acm +on property:sys.usb.config=midi,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2047 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +# USB midi configuration, with adb +on property:sys.usb.config=midi,adb + 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 2048 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +# USB midi configuration, with adb acm +on property:sys.usb.config=midi,adb,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2049 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions ${sys.usb.config} + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + + +#C2K bypass +on property:sys.usb.config=via_bypass + 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 2031 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions via_modem,via_ets,via_atc + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#C2K bypass,adb +on property:sys.usb.config=via_bypass,adb + 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 2032 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions via_modem,adb + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#C2K bypass,acm +on property:sys.usb.config=mass_storage,adb,via_bypass + 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 2033 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions mass_storage,adb,via_modem + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#C2K bypass,adb,acm +on property:sys.usb.config=via_bypass,adb,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2034 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions via_modem,via_ets,via_atc,adb,acm + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=c2k_bypass + 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 2051 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions via_modem + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#C2K bypass,adb +on property:sys.usb.config=c2k_bypass,adb + 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 2052 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions via_modem,adb + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#C2K bypass,acm +on property:sys.usb.config=mass_storage,adb,c2k_bypass + 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 2053 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions mass_storage,adb,via_modem + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#C2K bypass,adb,acm +on property:sys.usb.config=c2k_bypass,adb,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2054 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions via_modem,adb,acm + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#C2K rndis,bypass +on property:sys.usb.config=rndis,via_bypass + 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 2036 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions rndis,via_ets + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#C2K rndis,bypass,adb +on property:sys.usb.config=rndis,via_bypass,adb + 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 2037 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions rndis,via_ets,adb + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#C2K rndis,bypass,acm + on property:sys.usb.config=rndis,via_bypass,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2038 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions rndis,via_ets,acm + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +#C2K rndis,bypass,adb,acm + on property:sys.usb.config=rndis,via_bypass,adb,acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2039 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions rndis,via_ets,adb,acm + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +#C2K bypass +on property:sys.usb.config=via_bypass,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 2050 + 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 via_modem,acm,adb + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + setprop sys.usb.acm_idx 2,4 + +on property:sys.usb.config=via_bypass,adb,dual_acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2050 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions via_modem,acm,adb + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=rndis,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 2043 + 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 rndis,acm + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + setprop sys.usb.acm_idx 2,4 + +#43.acm third port for bt +on property:sys.usb.config=acm_third + 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 2006 + write /sys/class/android_usb/android0/f_acm/port_index 3 + 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} + +#44.comport --> /dev/ttyGS3 +on property:sys.usb.config=gs3 + 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 2044 + write /sys/class/android_usb/android0/f_acm/port_index 4 + 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 4 + +on property:sys.usb.config=gs3,dual_acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 202E + write /sys/class/android_usb/android0/f_acm/port_index 1,4 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions mass_storage,adb,acm + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + setprop sys.usb.acm_idx 1,4 + +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 + +on property:sys.usb.config=gs1gs3,dual_acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 202F + write /sys/class/android_usb/android0/f_acm/port_index 1,2,4 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions adb,acm + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + setprop sys.usb.acm_idx 1,2,4 + +############################################### + +on property:sys.usb.config=mass_storage,dual_acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 202D + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions mass_storage,acm + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mtp,dual_acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 202A + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions mtp,acm + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=ptp,dual_acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 202B + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions ptp,acm + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=rndis,dual_acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 202C + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions rndis,acm + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mass_storage,adb,dual_acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2029 + 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} + +on property:sys.usb.config=mtp,adb,dual_acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2026 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions mtp,adb,acm + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=ptp,adb,dual_acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2027 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions ptp,adb,acm + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + + +#MTP setting +#9.mtp,adb,acm +on property:sys.usb.config=mtp,gs3 + 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 205A + write /sys/class/android_usb/android0/f_acm/port_index 4 + write /sys/class/android_usb/android0/functions mtp,adb,acm + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + setprop sys.usb.acm_idx 4 + +on property:sys.usb.config=mtp,gs3,dual_acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 205F + write /sys/class/android_usb/android0/f_acm/port_index 1,4 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions mtp,adb,acm + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + setprop sys.usb.acm_idx 1,4 + + +on property:sys.usb.config=mtp,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 205B + 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 mtp,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 + +on property:sys.usb.config=mtp,gs0gs3 + 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 205C + write /sys/class/android_usb/android0/f_acm/port_index 1,4 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions mtp,adb,acm + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + setprop sys.usb.acm_idx 1,4 + +on property:sys.usb.config=mtp,gs0gs1 + 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 2060 + write /sys/class/android_usb/android0/f_acm/port_index 1,2 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions mtp,adb,acm + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + setprop sys.usb.acm_idx 1,2 + +on property:sys.usb.config=rndis,adb,dual_acm + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor ${sys.usb.vid} + write /sys/class/android_usb/android0/idProduct 2028 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions rndis,adb,acm + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=gs0gs3 + 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 2040 + write /sys/class/android_usb/android0/f_acm/port_index 1,4 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions mass_storage,adb,acm + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + setprop sys.usb.acm_idx 1,4 + +on property:sys.usb.config=gs0gs1 + 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 2041 + write /sys/class/android_usb/android0/f_acm/port_index 1,2 + 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 1,2 + +on property:sys.usb.config=rndis,gs0gs3 + 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 2042 + write /sys/class/android_usb/android0/f_acm/port_index 1,4 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions rndis,acm + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + setprop sys.usb.acm_idx 1,4 + +on property:sys.usb.config=rndis,gs0gs1 + 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 2045 + write /sys/class/android_usb/android0/f_acm/port_index 1,2 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions rndis,acm + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + setprop sys.usb.acm_idx 1,2 + +on property:sys.usb.config=rndis,adb,gs0gs3 + 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 2061 + write /sys/class/android_usb/android0/f_acm/port_index 1,4 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions rndis,adb,acm + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + setprop sys.usb.acm_idx 1,4 + +on property:sys.usb.config=rndis,adb,gs0gs1 + 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 2062 + write /sys/class/android_usb/android0/f_acm/port_index 1,2 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions rndis,adb,acm + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + setprop sys.usb.acm_idx 1,2 + +#MBIM setting +on property:sys.usb.config=mbim_dun + 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 2055 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions mbim,acm + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mbim,adb + 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 2056 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions mbim,adb + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mbim_dun,adb + 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 2057 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions mbim,adb,acm + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + +on property:sys.usb.config=mbim,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 2058 + 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 mbim,acm + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + setprop sys.usb.acm_idx 2,4 + +on property:sys.usb.config=mbim,gs0gs3 + 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 205D + write /sys/class/android_usb/android0/f_acm/port_index 1,4 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions mbim,acm + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + setprop sys.usb.acm_idx 1,4 + +on property:sys.usb.config=mbim,gs0gs1 + 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 205E + write /sys/class/android_usb/android0/f_acm/port_index 1,2 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions mbim,acm + write /sys/class/android_usb/android0/enable 1 + setprop sys.usb.state ${sys.usb.config} + setprop sys.usb.acm_idx 1,2 + +on property:sys.usb.config=mbim,adb,gs0gs1 + 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 2059 + write /sys/class/android_usb/android0/f_acm/port_index 1,2 + write /sys/devices/platform/mt_usb/saving 1 + write /sys/class/android_usb/android0/functions mbim,adb,acm + write /sys/class/android_usb/android0/enable 1 + start adbd + setprop sys.usb.state ${sys.usb.config} + setprop sys.usb.acm_idx 1,2 + +on property:sys.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:sys.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:mediatek.usb.port.mode=usb + write /sys/bus/platform/devices/musb-hdrc/portmode 0 + +on property:mediatek.usb.port.mode=uart + write /sys/bus/platform/devices/musb-hdrc/portmode 1 + +on property:mediatek.usb.speed.mode=u3 + write /sys/module/musb_hdrc/parameters/speed 1 + +on property:mediatek.usb.speed.mode=u2 + write /sys/module/musb_hdrc/parameters/speed 0 + +on property:persist.mediatek.usb.speed.mode=u3 + write /sys/module/musb_hdrc/parameters/speed 1 + +on property:persist.mediatek.usb.speed.mode=u2 + write /sys/module/musb_hdrc/parameters/speed 0 + +on property:mediatek.usb.sib_enable=1 + write /sys/bus/platform/devices/musb-hdrc/sib_enable 1 + write /sys/kernel/debug/usb_c/sib 1 + +on property:mediatek.usb.sib_enable=0 + write /sys/bus/platform/devices/musb-hdrc/sib_enable 0 + write /sys/kernel/debug/usb_c/sib 0 + +on property:mediatek.em.usb.set=USB_DRIVING_CAPABILITY + write /sys/kernel/debug/usb20_phy/USB_DRIVING_CAPABILITY ${mediatek.em.usb.value} + +on property:mediatek.em.usb.set=RG_USB20_TERM_VREF_SEL + write /sys/kernel/debug/usb20_phy/RG_USB20_TERM_VREF_SEL ${mediatek.em.usb.value} + +on property:mediatek.em.usb.set=RG_USB20_HSTX_SRCTRL + write /sys/kernel/debug/usb20_phy/RG_USB20_HSTX_SRCTRL ${mediatek.em.usb.value} + +on property:mediatek.em.usb.set=RG_USB20_VRT_VREF_SEL + write /sys/kernel/debug/usb20_phy/RG_USB20_VRT_VREF_SEL ${mediatek.em.usb.value} + +on property:mediatek.em.usb.set=RG_USB20_INTR_EN + write /sys/kernel/debug/usb20_phy/RG_USB20_INTR_EN ${mediatek.em.usb.value} diff --git a/init.recovery.mt6797.rc b/init.recovery.mt6797.rc new file mode 100755 index 0000000..99ce0e6 --- /dev/null +++ b/init.recovery.mt6797.rc @@ -0,0 +1,25 @@ +on init +# fake to CDP case +# write /sys/module/musb_hdrc/parameters/musb_skip_charge_detect 1 + +# set battery thread free + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 0E8D + write /sys/class/android_usb/android0/idProduct 2008 + write /sys/class/android_usb/android0/functions mtp + write /sys/class/android_usb/android0/enable 1 + +# make this twice to keep following action not race with batyery thread + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 0E8D + write /sys/class/android_usb/android0/idProduct 2008 + write /sys/class/android_usb/android0/functions mtp + write /sys/class/android_usb/android0/enable 1 + +# distinguish USB shoulde connect or not by this, CDP vs SDP + write /sys/devices/platform/mt_usb/cmode 2 + +on property:ro.debuggable=1 +# restore cmode to normal for making USB enumeration + write /sys/devices/platform/mt_usb/cmode 1 + diff --git a/init.trustonic.rc b/init.trustonic.rc new file mode 100755 index 0000000..8755568 --- /dev/null +++ b/init.trustonic.rc @@ -0,0 +1,42 @@ +on init + #create mountpoint for persist partition + mkdir /persist 0771 system system + +on post-fs + chown system system /persist + chmod 0771 /persist + + # We restorecon /persist to set SEPolicy label. + restorecon /persist + +on post-fs-data + # Create /data/key_provisioning dir and get proper encryption policy installed + # Key Installation + mkdir /data/key_provisioning 0771 system system + +on fs + write /proc/bootprof "start mobicore (on fs)" + mkdir /data/app/mcRegistry 0775 system system + mkdir /data/app/mcRegistry/TbStorage 0775 system system + chmod 0600 /dev/mobicore + chown system system /dev/mobicore + chmod 0666 /dev/mobicore-user + chown system system /dev/mobicore-user + chmod 0666 /dev/t-base-tui + chown system system /dev/t-base-tui + # MobiCore Daemon Paths + export MC_AUTH_TOKEN_PATH /efs + start mobicore + write /proc/bootprof "start mobicore end (on fs)" + +#service rda /system/bin/rda +# class main +# user shell +# group shell + +# Start Daemon (Registry directories should already be present) +service mobicore /system/bin/mcDriverDaemon -r /system/app/mcRegistry/020f0000000000000000000000000000.drbin -r /system/app/mcRegistry/05120000000000000000000000000000.drbin -r /system/app/mcRegistry/070b0000000000000000000000000000.drbin -r /system/app/mcRegistry/020b0000000000000000000000000000.drbin -r /system/app/mcRegistry/05070000000000000000000000000000.drbin + user system + group system + class core + oneshot diff --git a/init.wfca.rc b/init.wfca.rc new file mode 100755 index 0000000..3e3570b --- /dev/null +++ b/init.wfca.rc @@ -0,0 +1,21 @@ +# +## WFCA related services (Begin) +# + +on property:ril.wfca=1 + start wfca + +on property:ril.wfca=0 + stop wfca + +service wfca /system/bin/wfca + class core + socket wfca stream 660 root system + socket wfca_rds stream 660 root system + user root + group system log inet radio net_admin root + +# +## WFCA related services (End) +# + diff --git a/init.xlog.rc b/init.xlog.rc new file mode 100755 index 0000000..b08af17 --- /dev/null +++ b/init.xlog.rc @@ -0,0 +1,30 @@ +# +# XLOG service configuration +# +service xlogboot /system/bin/xlog boot + user root + oneshot + disabled + +service xlogdebugchanged /system/bin/xlog debug-changed + user root + oneshot + disabled + +on property:persist.mtk.aee.mode=1 + start xlogdebugchanged + +on property:persist.mtk.aee.mode=2 + start xlogdebugchanged + +on property:persist.mtk.aee.mode=3 + start xlogdebugchanged + +on property:persist.mtk.aee.mode=4 + start xlogdebugchanged + +on property:init.svc.adbd=running + start xlogdebugchanged + +on property:init.svc.adbd=stopped + start xlogdebugchanged diff --git a/kernel-headers/camera_dpe.h b/kernel-headers/camera_dpe.h new file mode 100755 index 0000000..e09e4d6 --- /dev/null +++ b/kernel-headers/camera_dpe.h @@ -0,0 +1,295 @@ +#ifndef _MT_DPE_H +#define _MT_DPE_H + +#include <linux/ioctl.h> + +#ifdef CONFIG_COMPAT +//64 bit +#include <linux/fs.h> +#include <linux/compat.h> +#endif + +/** + enforce kernel log enable +*/ +#define KERNEL_LOG //enable debug log flag if defined + +#define _SUPPORT_MAX_DPE_FRAME_REQUEST_ 32 +#define _SUPPORT_MAX_DPE_REQUEST_RING_SIZE_ 32 + + +#define SIG_ERESTARTSYS 512 //ERESTARTSYS +/******************************************************************************* +* +********************************************************************************/ +#define DPE_DEV_MAJOR_NUMBER 251 +#define DPE_MAGIC 'd' + +#define DPE_REG_RANGE (0x1000) +#define DPE_BASE_HW 0x15028000 + + +#define DPE_DVE_INT_ST ((unsigned int)1<<1) +#define DPE_WMFE_INT_ST ((unsigned int)1<<2) + + +typedef struct +{ + unsigned int module; + unsigned int Addr; // register's addr + unsigned int Val; // register's value +}DPE_REG_STRUCT; + +typedef struct +{ + DPE_REG_STRUCT* pData; // pointer to DPE_REG_STRUCT + unsigned int Count; // count +}DPE_REG_IO_STRUCT; + +/** + interrupt clear type +*/ +typedef enum +{ + DPE_IRQ_CLEAR_NONE, //non-clear wait, clear after wait + DPE_IRQ_CLEAR_WAIT, //clear wait, clear before and after wait + DPE_IRQ_WAIT_CLEAR, //wait the signal and clear it, avoid the hw executime is too s hort. + DPE_IRQ_CLEAR_STATUS, //clear specific status only + DPE_IRQ_CLEAR_ALL //clear all status +}DPE_IRQ_CLEAR_ENUM; + + +/** + module's interrupt , each module should have its own isr. + note: + mapping to isr table,ISR_TABLE when using no device tree +*/ +typedef enum +{ + DPE_IRQ_TYPE_INT_DPE_ST, //DPE + DPE_IRQ_TYPE_AMOUNT +}DPE_IRQ_TYPE_ENUM; + +typedef struct +{ + DPE_IRQ_CLEAR_ENUM Clear; + DPE_IRQ_TYPE_ENUM Type; + unsigned int Status; /*IRQ Status*/ + unsigned int Timeout; + int UserKey; /* user key for doing interrupt operation */ + int ProcessID; /* user ProcessID (will filled in kernel) */ + unsigned int bDumpReg; /* check dump register or not*/ +}DPE_WAIT_IRQ_STRUCT; + +typedef struct +{ + DPE_IRQ_TYPE_ENUM Type; + int UserKey; /* user key for doing interrupt operation */ + unsigned int Status; //Input +}DPE_CLEAR_IRQ_STRUCT; + + + + +typedef struct +{ + unsigned int DPE_DVE_CTRL; + unsigned int DPE_DVE_ORG_L_HORZ_BBOX; + unsigned int DPE_DVE_ORG_L_VERT_BBOX; + unsigned int DPE_DVE_ORG_R_HORZ_BBOX; + unsigned int DPE_DVE_ORG_R_VERT_BBOX; + unsigned int DPE_DVE_ORG_SIZE; + unsigned int DPE_DVE_ORG_SR_0; + unsigned int DPE_DVE_ORG_SR_1; + unsigned int DPE_DVE_ORG_SV; + unsigned int DPE_DVE_CAND_NUM; + unsigned int DPE_DVE_CAND_SEL_0; + unsigned int DPE_DVE_CAND_SEL_1; + unsigned int DPE_DVE_CAND_SEL_2; + unsigned int DPE_DVE_CAND_TYPE_0; + unsigned int DPE_DVE_CAND_TYPE_1; + unsigned int DPE_DVE_RAND_LUT; + unsigned int DPE_DVE_GMV; + unsigned int DPE_DVE_DV_INI; + unsigned int DPE_DVE_BLK_VAR_CTRL; + unsigned int DPE_DVE_SMTH_LUMA_CTRL; + unsigned int DPE_DVE_SMTH_DV_CTRL; + unsigned int DPE_DVE_ORD_CTRL; + unsigned int DPE_DVE_TYPE_CTRL_0; + unsigned int DPE_DVE_TYPE_CTRL_1; + unsigned int DPE_DVE_IMGI_L_BASE_ADDR; + unsigned int DPE_DVE_IMGI_L_STRIDE; + unsigned int DPE_DVE_IMGI_R_BASE_ADDR; + unsigned int DPE_DVE_IMGI_R_STRIDE; + unsigned int DPE_DVE_DVI_L_BASE_ADDR; + unsigned int DPE_DVE_DVI_L_STRIDE; + unsigned int DPE_DVE_DVI_R_BASE_ADDR; + unsigned int DPE_DVE_DVI_R_STRIDE; + unsigned int DPE_DVE_MASKI_L_BASE_ADDR; + unsigned int DPE_DVE_MASKI_L_STRIDE; + unsigned int DPE_DVE_MASKI_R_BASE_ADDR; + unsigned int DPE_DVE_MASKI_R_STRIDE; + unsigned int DPE_DVE_DVO_L_BASE_ADDR; + unsigned int DPE_DVE_DVO_L_STRIDE; + unsigned int DPE_DVE_DVO_R_BASE_ADDR; + unsigned int DPE_DVE_DVO_R_STRIDE; + unsigned int DPE_DVE_CONFO_L_BASE_ADDR; + unsigned int DPE_DVE_CONFO_L_STRIDE; + unsigned int DPE_DVE_CONFO_R_BASE_ADDR; + unsigned int DPE_DVE_CONFO_R_STRIDE; + unsigned int DPE_DVE_RESPO_L_BASE_ADDR; + unsigned int DPE_DVE_RESPO_L_STRIDE; + unsigned int DPE_DVE_RESPO_R_BASE_ADDR; + unsigned int DPE_DVE_RESPO_R_STRIDE; + unsigned int DPE_DVE_STA_0;//ReadOnly, DVE Statistic Result 0 +}DPE_DVEConfig; + + +typedef struct +{ + unsigned int DPE_WMFE_CTRL_0; + unsigned int DPE_WMFE_SIZE_0; + unsigned int DPE_WMFE_IMGI_BASE_ADDR_0; + unsigned int DPE_WMFE_IMGI_STRIDE_0; + unsigned int DPE_WMFE_DPI_BASE_ADDR_0; + unsigned int DPE_WMFE_DPI_STRIDE_0; + unsigned int DPE_WMFE_TBLI_BASE_ADDR_0; + unsigned int DPE_WMFE_TBLI_STRIDE_0; + unsigned int DPE_WMFE_DPO_BASE_ADDR_0; + unsigned int DPE_WMFE_DPO_STRIDE_0; + unsigned int DPE_WMFE_CTRL_1; + unsigned int DPE_WMFE_SIZE_1; + unsigned int DPE_WMFE_IMGI_BASE_ADDR_1; + unsigned int DPE_WMFE_IMGI_STRIDE_1; + unsigned int DPE_WMFE_DPI_BASE_ADDR_1; + unsigned int DPE_WMFE_DPI_STRIDE_1; + unsigned int DPE_WMFE_TBLI_BASE_ADDR_1; + unsigned int DPE_WMFE_TBLI_STRIDE_1; + unsigned int DPE_WMFE_DPO_BASE_ADDR_1; + unsigned int DPE_WMFE_DPO_STRIDE_1; + unsigned int DPE_WMFE_CTRL_2; + unsigned int DPE_WMFE_SIZE_2; + unsigned int DPE_WMFE_IMGI_BASE_ADDR_2; + unsigned int DPE_WMFE_IMGI_STRIDE_2; + unsigned int DPE_WMFE_DPI_BASE_ADDR_2; + unsigned int DPE_WMFE_DPI_STRIDE_2; + unsigned int DPE_WMFE_TBLI_BASE_ADDR_2; + unsigned int DPE_WMFE_TBLI_STRIDE_2; + unsigned int DPE_WMFE_DPO_BASE_ADDR_2; + unsigned int DPE_WMFE_DPO_STRIDE_2; +}DPE_WMFEConfig; + +/******************************************************************************* +* +********************************************************************************/ +typedef enum +{ + DPE_CMD_RESET, //Reset + DPE_CMD_DUMP_REG, //Dump DPE Register + DPE_CMD_DUMP_ISR_LOG, //Dump DPE ISR log + DPE_CMD_READ_REG, //Read register from driver + DPE_CMD_WRITE_REG, //Write register to driver + DPE_CMD_WAIT_IRQ, //Wait IRQ + DPE_CMD_CLEAR_IRQ, //Clear IRQ + DPE_CMD_DVE_ENQUE_NUM, //DVE Enque Number + DPE_CMD_DVE_ENQUE, //DVE Enque + DPE_CMD_DVE_ENQUE_REQ, //DVE Enque Request + DPE_CMD_DVE_DEQUE_NUM, //DVE Deque Number + DPE_CMD_DVE_DEQUE, //DVE Deque + DPE_CMD_DVE_DEQUE_REQ, //DVE Deque Request + DPE_CMD_WMFE_ENQUE_NUM, //WMFE Enque Number + DPE_CMD_WMFE_ENQUE, //WMFE Enque + DPE_CMD_WMFE_ENQUE_REQ, //WMFE Enque Request + DPE_CMD_WMFE_DEQUE_NUM, //WMFE Deque Number + DPE_CMD_WMFE_DEQUE, //WMFE Deque + DPE_CMD_WMFE_DEQUE_REQ, //WMFE Deque Request + DPE_CMD_TOTAL, +}DPE_CMD_ENUM; +// + +typedef struct +{ + unsigned int m_ReqNum; + DPE_DVEConfig* m_pDpeConfig; +}DPE_DVERequest; + + +typedef struct +{ + unsigned int m_ReqNum; + DPE_WMFEConfig* m_pWmfeConfig; +}DPE_WMFERequest; + + + + + + +#ifdef CONFIG_COMPAT +typedef struct +{ + compat_uptr_t pData; + unsigned int Count; // count +}compat_DPE_REG_IO_STRUCT; + + +typedef struct +{ + unsigned int m_ReqNum; + compat_uptr_t m_pDpeConfig; +}compat_DPE_DVERequest; + +typedef struct +{ + unsigned int m_ReqNum; + compat_uptr_t m_pWmfeConfig; +}compat_DPE_WMFERequest; + + +#endif + + + + +#define DPE_RESET _IO (DPE_MAGIC, DPE_CMD_RESET) +#define DPE_DUMP_REG _IO (DPE_MAGIC, DPE_CMD_DUMP_REG) +#define DPE_DUMP_ISR_LOG _IO (DPE_MAGIC, DPE_CMD_DUMP_ISR_LOG) + + +#define DPE_READ_REGISTER _IOWR(DPE_MAGIC, DPE_CMD_READ_REG, DPE_REG_IO_STRUCT) +#define DPE_WRITE_REGISTER _IOWR(DPE_MAGIC, DPE_CMD_WRITE_REG, DPE_REG_IO_STRUCT) +#define DPE_WAIT_IRQ _IOW (DPE_MAGIC, DPE_CMD_WAIT_IRQ, DPE_WAIT_IRQ_STRUCT) +#define DPE_CLEAR_IRQ _IOW (DPE_MAGIC, DPE_CMD_CLEAR_IRQ, DPE_CLEAR_IRQ_STRUCT) + +#define DPE_DVE_ENQNUE_NUM _IOW(DPE_MAGIC,DPE_CMD_DVE_ENQUE_NUM, int) +#define DPE_DVE_ENQUE _IOWR(DPE_MAGIC, DPE_CMD_DVE_ENQUE, DPE_DVEConfig) +#define DPE_DVE_ENQUE_REQ _IOWR(DPE_MAGIC, DPE_CMD_DVE_ENQUE_REQ, DPE_DVERequest) + +#define DPE_DVE_DEQUE_NUM _IOR(DPE_MAGIC,DPE_CMD_DVE_DEQUE_NUM, int) +#define DPE_DVE_DEQUE _IOWR(DPE_MAGIC, DPE_CMD_DVE_DEQUE, DPE_DVEConfig) +#define DPE_DVE_DEQUE_REQ _IOWR(DPE_MAGIC, DPE_CMD_DVE_DEQUE_REQ, DPE_DVERequest) + +#define DPE_WMFE_ENQNUE_NUM _IOW(DPE_MAGIC,DPE_CMD_WMFE_ENQUE_NUM, int) +#define DPE_WMFE_ENQUE _IOWR(DPE_MAGIC, DPE_CMD_WMFE_ENQUE, DPE_WMFEConfig) +#define DPE_WMFE_ENQUE_REQ _IOWR(DPE_MAGIC, DPE_CMD_WMFE_ENQUE_REQ, DPE_WMFERequest) + +#define DPE_WMFE_DEQUE_NUM _IOR(DPE_MAGIC,DPE_CMD_WMFE_DEQUE_NUM, int) +#define DPE_WMFE_DEQUE _IOWR(DPE_MAGIC, DPE_CMD_WMFE_DEQUE, DPE_WMFEConfig) +#define DPE_WMFE_DEQUE_REQ _IOWR(DPE_MAGIC, DPE_CMD_WMFE_DEQUE_REQ, DPE_WMFERequest) + + +#ifdef CONFIG_COMPAT +#define COMPAT_DPE_WRITE_REGISTER _IOWR(DPE_MAGIC, DPE_CMD_WRITE_REG, compat_DPE_REG_IO_STRUCT) +#define COMPAT_DPE_READ_REGISTER _IOWR(DPE_MAGIC, DPE_CMD_READ_REG, compat_DPE_REG_IO_STRUCT) + +#define COMPAT_DPE_DVE_ENQUE_REQ _IOWR(DPE_MAGIC, DPE_CMD_DVE_ENQUE_REQ, compat_DPE_DVERequest) +#define COMPAT_DPE_DVE_DEQUE_REQ _IOWR(DPE_MAGIC, DPE_CMD_DVE_DEQUE_REQ, compat_DPE_DVERequest) + +#define COMPAT_DPE_WMFE_ENQUE_REQ _IOWR(DPE_MAGIC, DPE_CMD_WMFE_ENQUE_REQ, compat_DPE_WMFERequest) +#define COMPAT_DPE_WMFE_DEQUE_REQ _IOWR(DPE_MAGIC, DPE_CMD_WMFE_DEQUE_REQ, compat_DPE_WMFERequest) + +#endif + +// +#endif + diff --git a/kernel-headers/camera_fdvt.h b/kernel-headers/camera_fdvt.h new file mode 100755 index 0000000..2d6855c --- /dev/null +++ b/kernel-headers/camera_fdvt.h @@ -0,0 +1,88 @@ +#ifndef __CAMERA_FDVT_H__ +#define __CAMERA_FDVT_H__ + +#include <linux/ioctl.h> +#define FDVT_IOC_MAGIC 'N' + +#ifdef CONFIG_COMPAT +//64 bit +#include <linux/fs.h> +#include <linux/compat.h> +#endif + +typedef struct +{ + unsigned int *pAddr; + unsigned int *pData; + unsigned int u4Count; +} FDVTRegIO; + +#ifdef CONFIG_COMPAT + +typedef struct +{ + compat_uptr_t pAddr; + compat_uptr_t pData; + unsigned int u4Count; +} compat_FDVTRegIO; + + +#endif + + +//below is control message +#define FDVT_IOC_INIT_SETPARA_CMD _IO(FDVT_IOC_MAGIC, 0x00) +#define FDVT_IOC_STARTFD_CMD _IO(FDVT_IOC_MAGIC, 0x01) +#define FDVT_IOC_G_WAITIRQ _IOR(FDVT_IOC_MAGIC, 0x02, unsigned int ) +#define FDVT_IOC_T_SET_FDCONF_CMD _IOW(FDVT_IOC_MAGIC, 0x03, FDVTRegIO) +#define FDVT_IOC_G_READ_FDREG_CMD _IOWR(FDVT_IOC_MAGIC, 0x04, FDVTRegIO) +#define FDVT_IOC_T_SET_SDCONF_CMD _IOW(FDVT_IOC_MAGIC, 0x05, FDVTRegIO) +//#define FDVT_DESTROY_CMD _IO(FDVT_IOC_MAGIC, 0x10) + +#define FDVT_IOC_T_DUMPREG _IO(FDVT_IOC_MAGIC, 0x80) + +//#define FDVT_SET_CMD_CMD _IOW(FDVT_IOC_MAGIC, 0x03, unsigned int) +//#define FDVT_SET_PWR_CMD _IOW(FDVT_IOC_MAGIC, 0x04, unsigned int) +//#define FDVT_SET_ISR_CMD _IOW(FDVT_IOC_MAGIC, 0x05, unsigned int) +//#define FDVT_GET_CACHECTRLADDR_CMD _IOR(FDVT_IOC_MAGIC, 0x06, int) + +#ifdef CONFIG_COMPAT + +#define COMPAT_FDVT_IOC_INIT_SETPARA_CMD _IO(FDVT_IOC_MAGIC, 0x00) +#define COMPAT_FDVT_IOC_STARTFD_CMD _IO(FDVT_IOC_MAGIC, 0x01) +#define COMPAT_FDVT_IOC_G_WAITIRQ _IOR(FDVT_IOC_MAGIC, 0x02, unsigned int ) +#define COMPAT_FDVT_IOC_T_SET_FDCONF_CMD _IOW(FDVT_IOC_MAGIC, 0x03, compat_FDVTRegIO) +#define COMPAT_FDVT_IOC_G_READ_FDREG_CMD _IOWR(FDVT_IOC_MAGIC, 0x04, compat_FDVTRegIO) +#define COMPAT_FDVT_IOC_T_SET_SDCONF_CMD _IOW(FDVT_IOC_MAGIC, 0x05, compat_FDVTRegIO) +#define COMPAT_FDVT_IOC_T_DUMPREG _IO(FDVT_IOC_MAGIC, 0x80) + +#endif + + +#endif //__CAMERA_FDVT_H__ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/kernel-headers/camera_isp.h b/kernel-headers/camera_isp.h new file mode 100755 index 0000000..b8d8d83 --- /dev/null +++ b/kernel-headers/camera_isp.h @@ -0,0 +1,606 @@ +#ifndef _MT_ISP_H +#define _MT_ISP_H + +#include <linux/ioctl.h> + +#ifndef CONFIG_OF +extern void mt_irq_set_sens(unsigned int irq, unsigned int sens); +extern void mt_irq_set_polarity(unsigned int irq, unsigned int polarity); +#endif + +/** + enforce kernel log enable + */ +#define KERNEL_LOG +#define ISR_LOG_ON + +#define SIG_ERESTARTSYS 512 +/******************************************************************************* + * + ********************************************************************************/ +#define ISP_DEV_MAJOR_NUMBER 251 +#define ISP_MAGIC 'k' + +#define CAM_A_BASE_HW 0x1A004000 +#define CAM_B_BASE_HW 0x1A005000 +#define CAMSV_0_BASE_HW 0x1A050000 +#define CAMSV_1_BASE_HW 0x1A051000 +#define CAMSV_2_BASE_HW 0x1A052000 +#define CAMSV_3_BASE_HW 0x1A053000 +#define CAMSV_4_BASE_HW 0x1A054000 +#define CAMSV_5_BASE_HW 0x1A055000 +#define DIP_A_BASE_HW 0x15022000 +#define UNI_A_BASE_HW 0x1A003000 +#define SENINF_BASE_HW 0x1A040000 +#define MIPI_RX_BASE_HW 0x10217000 +#define GPIO_BASE_HW 0x10002000 + +#define ISP_REG_RANGE (PAGE_SIZE) +#define ISP_REG_PER_DIP_RANGE (PAGE_SIZE*5) + +/* In order with the suquence of device nodes defined in dtsi */ +typedef enum { + ISP_IMGSYS_CONFIG_IDX = 0, + ISP_DIP_A_IDX, /* Remider: Add this device node manually in .dtsi */ + ISP_CAMSYS_CONFIG_IDX, + ISP_UNI_A_IDX, /* CAMTOP in .dtsi */ + ISP_CAM_A_IDX, + ISP_CAM_B_IDX, + ISP_CAMSV0_IDX, + ISP_CAMSV1_IDX, + ISP_CAMSV2_IDX, + ISP_CAMSV3_IDX, + ISP_CAMSV4_IDX, + ISP_CAMSV5_IDX, + ISP_DEV_NODE_NUM +} ISP_DEV_NODE_ENUM; + + +/* defined if want to support multiple dequne and enque or camera 3.0 */ +/** + support multiple deque and enque if defined. + note: still en/de que 1 buffer each time only + e.g: + deque(); + deque(); + enque(); + enque(); + */ +/* #define _rtbc_buf_que_2_0_ */ +/** + frame status + */ +typedef enum { + CAM_FST_NORMAL = 0, CAM_FST_DROP_FRAME = 1, CAM_FST_LAST_WORKING_FRAME = 2, +} CAM_FrameST; + +/** + interrupt clear type + */ +typedef enum { + ISP_IRQ_CLEAR_NONE, /* non-clear wait, clear after wait */ + ISP_IRQ_CLEAR_WAIT, /* clear wait, clear before and after wait */ + ISP_IRQ_CLEAR_STATUS, /* clear specific status only */ + ISP_IRQ_CLEAR_ALL /* clear all status */ +} ISP_IRQ_CLEAR_ENUM; + +/** + module's interrupt , each module should have its own isr. + note: + mapping to isr table,ISR_TABLE when using no device tree + */ +typedef enum { + ISP_IRQ_TYPE_INT_CAM_A_ST, + ISP_IRQ_TYPE_INT_CAM_B_ST, + ISP_IRQ_TYPE_INT_DIP_A_ST, + ISP_IRQ_TYPE_INT_CAMSV_0_ST, + ISP_IRQ_TYPE_INT_CAMSV_1_ST, + ISP_IRQ_TYPE_INT_CAMSV_2_ST, + ISP_IRQ_TYPE_INT_CAMSV_3_ST, + ISP_IRQ_TYPE_INT_CAMSV_4_ST, + ISP_IRQ_TYPE_INT_CAMSV_5_ST, + ISP_IRQ_TYPE_INT_UNI_A_ST, + ISP_IRQ_TYPE_AMOUNT +} ISP_IRQ_TYPE_ENUM; + +typedef enum { + SIGNAL_INT = 0, DMA_INT, ISP_IRQ_ST_AMOUNT +} ISP_ST_ENUM; + +typedef struct { + unsigned int tLastSig_sec; /* time stamp of the latest occurring signal*/ + unsigned int tLastSig_usec; /* time stamp of the latest occurring signal*/ + unsigned int tMark2WaitSig_sec; /* time period from marking a signal to user try to wait and get the signal*/ + unsigned int tMark2WaitSig_usec; /* time period from marking a signal to user try to wait and get the signal*/ + unsigned int tLastSig2GetSig_sec; /* time period from latest occurring signal to user try to wait and get the signal*/ + unsigned int tLastSig2GetSig_usec; /* time period from latest occurring signal to user try to wait and get the signal*/ + int passedbySigcnt; /* the count for the signal passed by */ +} ISP_IRQ_TIME_STRUCT; + +typedef struct { + ISP_IRQ_CLEAR_ENUM Clear; + ISP_ST_ENUM St_type; + unsigned int Status; /*ref. enum:ENUM_CAM_INT / ENUM_CAM_DMA_INT ...etc in isp_drv_stddef.h*/ + int UserKey; /* user key for doing interrupt operation */ + unsigned int Timeout; + ISP_IRQ_TIME_STRUCT TimeInfo; +} ISP_WAIT_IRQ_ST; + +typedef struct { + ISP_IRQ_TYPE_ENUM Type; + unsigned int bDumpReg; + ISP_WAIT_IRQ_ST EventInfo; +} ISP_WAIT_IRQ_STRUCT; + +typedef struct { + int userKey; + char userName[32]; /* this size must the same as the icamiopipe api - registerIrq(...) */ +} ISP_REGISTER_USERKEY_STRUCT; + +typedef struct { + int UserKey; /* user key for doing interrupt operation */ + ISP_ST_ENUM St_type; + unsigned int Status; +} ISP_CLEAR_IRQ_ST; + +typedef struct { + ISP_IRQ_TYPE_ENUM Type; + ISP_CLEAR_IRQ_ST EventInfo; +} ISP_CLEAR_IRQ_STRUCT; + +typedef struct { + unsigned int module; + unsigned int Addr; /* register's addr */ + unsigned int Val; /* register's value */ +} ISP_REG_STRUCT; + +typedef struct { + ISP_REG_STRUCT *pData; /* pointer to ISP_REG_STRUCT */ + unsigned int Count; /* count */ +} ISP_REG_IO_STRUCT; + +#ifdef CONFIG_COMPAT +typedef struct { + compat_uptr_t pData; + unsigned int Count; /* count */ +} compat_ISP_REG_IO_STRUCT; +#endif + +/* length of the two memory areas */ +#define P1_DEQUE_CNT 1 +#define RT_BUF_TBL_NPAGES 16 +#define ISP_RT_BUF_SIZE 16 +#define ISP_RT_CQ0C_BUF_SIZE (ISP_RT_BUF_SIZE)/* (ISP_RT_BUF_SIZE>>1) */ +/* pass1 setting sync index */ +#define ISP_REG_P1_CFG_IDX 0x4090 + +typedef enum { + _cam_tg_ = 0, + _cam_tg2_, + _camsv_tg_, + _camsv2_tg_, + _cam_tg_max_ +} _isp_tg_enum_; + + +typedef enum { + _imgi_ = 0, + _imgbi_, + _imgci_, + _vipi_, + _vip2i_, + _vip3i_, /* 5 */ + _ufdi_, + _lcei_, + _dmgi_, + _depi_, + _img2o_, /* 10 */ + _img2bo_, + _img3o_, + _img3bo_, + _img3co_, + _mfbo_, /* 15 */ + _feo_, + _wrot_, + _wdma_, + _jpeg_, + _venc_stream_, /* 20 */ + _dip_max, + _rt_dma_max_ = _dip_max, + + _imgo_ = 0, + _rrzo_, + _ufeo_, + _aao_, + _afo_, + _lcso_, /* 5 */ + _pdo_, + _eiso_, + _flko_, + _rsso_, + _cam_max_, + + _camsv_imgo_ = 0, + _camsv_max_, +} _isp_dma_enum_; + +/* for keep ion handle */ +typedef enum { + _dma_cq0i_ = 0,/* 0168 */ + _dma_cq1i_, /* 0180 */ + _dma_cq2i_, /* 018c */ + _dma_cq3i_, /* 0198 */ + _dma_cq4i_, /* 01a4 */ + _dma_cq5i_, /* 01b0 *//*5*/ + _dma_cq6i_, /* 01bc */ + _dma_cq7i_, /* 01c8 */ + _dma_cq8i_, /* 01d4 */ + _dma_cq9i_, /* 01e0 */ + _dma_cq10i_, /* 01ec *//*10*/ + _dma_cq11i_, /* 01f8 */ + _dma_bpci_, /* 0370 */ + _dma_caci_, /* 03a0 */ + _dma_lsci_, /* 03d0 */ + _dma_imgo_, /* 0220 *//*15*/ + _dma_rrzo_, /* 0250 */ + _dma_aao_, /* 0280 */ + _dma_afo_, /* 02b0 */ + _dma_lcso_, /* 02e0 */ + _dma_ufeo_, /* 0310 *//*20*/ + _dma_pdo_, /* 0340 */ + _dma_eiso_, /* 0220 */ + _dma_flko_, /* 0250 */ + _dma_rsso_, /* 0280 */ + _dma_imgo_fh_, /* 0c04 *//*25*/ + _dma_rrzo_fh_, /* 0c08 */ + _dma_aao_fh_, /* 0c0c */ + _dma_afo_fh_, /* 0c10 */ + _dma_lcso_fh_, /* 0c14 */ + _dma_ufeo_fh_, /* 0c18 *//*30*/ + _dma_pdo_fh_, /* 0c1c */ + _dma_eiso_fh_, /* 03C4 */ + _dma_flko_fh_, /* 03C8 */ + _dma_rsso_fh_, /* 03CC */ + _dma_max_wr_ /*35*/ +} ISP_WRDMA_ENUM; + +typedef struct { + unsigned int devNode; + ISP_WRDMA_ENUM dmaPort; + int memID; +} ISP_DEV_ION_NODE_STRUCT; + +typedef struct { + unsigned int w; /* tg size */ + unsigned int h; + unsigned int xsize; /* dmao xsize */ + unsigned int stride; + unsigned int fmt; + unsigned int pxl_id; + unsigned int wbn; + unsigned int ob; + unsigned int lsc; + unsigned int rpg; + unsigned int m_num_0; + unsigned int frm_cnt; + unsigned int bus_size; +} ISP_RT_IMAGE_INFO_STRUCT; + +typedef struct { + unsigned int srcX; /* crop window start point */ + unsigned int srcY; + unsigned int srcW; /* crop window size */ + unsigned int srcH; + unsigned int dstW; /* rrz out size */ + unsigned int dstH; +} ISP_RT_RRZ_INFO_STRUCT; + +typedef struct { + unsigned int x; /* in pix */ + unsigned int y; /* in pix */ + unsigned int w; /* in byte */ + unsigned int h; /* in byte */ +} ISP_RT_DMAO_CROPPING_STRUCT; + +typedef struct { + unsigned int memID; + unsigned int size; + long long base_vAddr; + unsigned int base_pAddr; + unsigned int timeStampS; + unsigned int timeStampUs; + unsigned int bFilled; + unsigned int bProcessRaw; + ISP_RT_IMAGE_INFO_STRUCT image; + ISP_RT_RRZ_INFO_STRUCT rrzInfo; + ISP_RT_DMAO_CROPPING_STRUCT dmaoCrop; /* imgo */ + unsigned int bDequeued; + signed int bufIdx; /* used for replace buffer */ +} ISP_RT_BUF_INFO_STRUCT; + +typedef struct { + unsigned int count; + unsigned int sof_cnt; /* cnt for current sof */ + unsigned int img_cnt; /* cnt for mapping to which sof */ + /* support only deque 1 image at a time */ + /* ISP_RT_BUF_INFO_STRUCT data[ISP_RT_BUF_SIZE]; */ + ISP_RT_BUF_INFO_STRUCT data[P1_DEQUE_CNT]; +} ISP_DEQUE_BUF_INFO_STRUCT; + +typedef struct { + unsigned int start; /* current DMA accessing buffer */ + unsigned int total_count; /* total buffer number.Include Filled and empty */ + unsigned int empty_count; /* total empty buffer number include current DMA accessing buffer */ + unsigned int pre_empty_count; /* previous total empty buffer number include current DMA accessing buffer */ + unsigned int active; + unsigned int read_idx; + unsigned int img_cnt; /* cnt for mapping to which sof */ + ISP_RT_BUF_INFO_STRUCT data[ISP_RT_BUF_SIZE]; +} ISP_RT_RING_BUF_INFO_STRUCT; + +typedef enum { + ISP_RT_BUF_CTRL_DMA_EN, ISP_RT_BUF_CTRL_CLEAR, ISP_RT_BUF_CTRL_MAX +} ISP_RT_BUF_CTRL_ENUM; + +typedef enum { + ISP_RTBC_STATE_INIT, + ISP_RTBC_STATE_SOF, + ISP_RTBC_STATE_DONE, + ISP_RTBC_STATE_MAX +} ISP_RTBC_STATE_ENUM; + +typedef enum { + ISP_RTBC_BUF_EMPTY, + ISP_RTBC_BUF_FILLED, + ISP_RTBC_BUF_LOCKED, +} ISP_RTBC_BUF_STATE_ENUM; + +typedef enum { + ISP_RROCESSED_RAW, + ISP_PURE_RAW, +} ISP_RAW_TYPE_ENUM; + +typedef struct { + ISP_RTBC_STATE_ENUM state; + unsigned long dropCnt; + ISP_RT_RING_BUF_INFO_STRUCT ring_buf[_cam_max_]; +} ISP_RT_BUF_STRUCT; + +typedef struct { + ISP_RT_BUF_CTRL_ENUM ctrl; + ISP_IRQ_TYPE_ENUM module; + _isp_dma_enum_ buf_id; + /* unsigned int data_ptr; */ + /* unsigned int ex_data_ptr; exchanged buffer */ + ISP_RT_BUF_INFO_STRUCT *data_ptr; + ISP_RT_BUF_INFO_STRUCT *ex_data_ptr; /* exchanged buffer */ + unsigned char *pExtend; +} ISP_BUFFER_CTRL_STRUCT; + +/* reference count */ +#define _use_kernel_ref_cnt_ + +typedef enum { + ISP_REF_CNT_GET, + ISP_REF_CNT_INC, + ISP_REF_CNT_DEC, + ISP_REF_CNT_DEC_AND_RESET_P1_P2_IF_LAST_ONE, + ISP_REF_CNT_DEC_AND_RESET_P1_IF_LAST_ONE, + ISP_REF_CNT_DEC_AND_RESET_P2_IF_LAST_ONE, + ISP_REF_CNT_MAX +} ISP_REF_CNT_CTRL_ENUM; + +typedef enum { + ISP_REF_CNT_ID_IMEM, + ISP_REF_CNT_ID_ISP_FUNC, + ISP_REF_CNT_ID_GLOBAL_PIPE, + ISP_REF_CNT_ID_P1_PIPE, + ISP_REF_CNT_ID_P2_PIPE, + ISP_REF_CNT_ID_MAX, +} ISP_REF_CNT_ID_ENUM; + +typedef struct { + ISP_REF_CNT_CTRL_ENUM ctrl; + ISP_REF_CNT_ID_ENUM id; + signed int *data_ptr; +} ISP_REF_CNT_CTRL_STRUCT; + +/* struct for enqueue/dequeue control in ihalpipe wrapper */ +typedef enum { + ISP_P2_BUFQUE_CTRL_ENQUE_FRAME = 0, /* 0,signal that a specific buffer is enqueued */ + ISP_P2_BUFQUE_CTRL_WAIT_DEQUE, /* 1,a dequeue thread is waiting to do dequeue */ + ISP_P2_BUFQUE_CTRL_DEQUE_SUCCESS, /* 2,signal that a buffer is dequeued (success) */ + ISP_P2_BUFQUE_CTRL_DEQUE_FAIL, /* 3,signal that a buffer is dequeued (fail) */ + ISP_P2_BUFQUE_CTRL_WAIT_FRAME, /* 4,wait for a specific buffer */ + ISP_P2_BUFQUE_CTRL_WAKE_WAITFRAME, /* 5,wake all slept users to check buffer is dequeued or not */ + ISP_P2_BUFQUE_CTRL_CLAER_ALL, /* 6,free all recored dequeued buffer */ + ISP_P2_BUFQUE_CTRL_MAX +} ISP_P2_BUFQUE_CTRL_ENUM; + +typedef enum { + ISP_P2_BUFQUE_PROPERTY_DIP = 0, + ISP_P2_BUFQUE_PROPERTY_NUM = 1, + ISP_P2_BUFQUE_PROPERTY_WARP +} ISP_P2_BUFQUE_PROPERTY; +typedef struct { + ISP_P2_BUFQUE_CTRL_ENUM ctrl; + ISP_P2_BUFQUE_PROPERTY property; + unsigned int processID; /* judge multi-process */ + unsigned int callerID; /* judge multi-thread and different kinds of buffer type */ + int frameNum; /* total frame number in the enque request */ + int cQIdx; /* cq index */ + int dupCQIdx; /* dup cq index */ + int burstQIdx; /* burst queue index */ + unsigned int timeoutIns; /* timeout for wait buffer */ +} ISP_P2_BUFQUE_STRUCT; + +typedef enum { + ISP_P2_BUF_STATE_NONE = -1, + ISP_P2_BUF_STATE_ENQUE = 0, + ISP_P2_BUF_STATE_RUNNING, + ISP_P2_BUF_STATE_WAIT_DEQUE_FAIL, + ISP_P2_BUF_STATE_DEQUE_SUCCESS, + ISP_P2_BUF_STATE_DEQUE_FAIL +} ISP_P2_BUF_STATE_ENUM; + +typedef enum { + ISP_P2_BUFQUE_LIST_TAG_PACKAGE = 0, ISP_P2_BUFQUE_LIST_TAG_UNIT +} ISP_P2_BUFQUE_LIST_TAG; + +typedef enum { + ISP_P2_BUFQUE_MATCH_TYPE_WAITDQ = 0, /* waiting for deque */ + ISP_P2_BUFQUE_MATCH_TYPE_WAITFM, /* wait frame from user */ + ISP_P2_BUFQUE_MATCH_TYPE_FRAMEOP, /* frame operaetion */ + ISP_P2_BUFQUE_MATCH_TYPE_WAITFMEQD /* wait frame enqueued for deque */ +} ISP_P2_BUFQUE_MATCH_TYPE; +/******************************************************************************************** + pass1 real time buffer control use cq0c + ********************************************************************************************/ + +#define _rtbc_use_cq0c_ + +#define _MAGIC_NUM_ERR_HANDLING_ + +#ifdef CONFIG_COMPAT + + +typedef struct { + ISP_RT_BUF_CTRL_ENUM ctrl; + ISP_IRQ_TYPE_ENUM module; + _isp_dma_enum_ buf_id; + compat_uptr_t data_ptr; + compat_uptr_t ex_data_ptr; /* exchanged buffer */ + compat_uptr_t pExtend; +} compat_ISP_BUFFER_CTRL_STRUCT; + +typedef struct { + ISP_REF_CNT_CTRL_ENUM ctrl; + ISP_REF_CNT_ID_ENUM id; + compat_uptr_t data_ptr; +} compat_ISP_REF_CNT_CTRL_STRUCT; + +#endif + + +/******************************************************************************************** + + ********************************************************************************************/ + +/******************************************************************************* + * + ********************************************************************************/ +typedef enum { + ISP_CMD_RESET_CAM_P1, /* Reset */ + ISP_CMD_RESET_CAM_P2, + ISP_CMD_RESET_CAMSV, + ISP_CMD_RESET_CAMSV2, + ISP_CMD_RESET_BY_HWMODULE, + ISP_CMD_READ_REG, /* Read register from driver */ + ISP_CMD_WRITE_REG, /* Write register to driver */ + ISP_CMD_WAIT_IRQ, /* Wait IRQ */ + ISP_CMD_CLEAR_IRQ, /* Clear IRQ */ + ISP_CMD_DUMP_REG, /* Dump ISP registers , for debug usage */ + ISP_CMD_RT_BUF_CTRL, /* for pass buffer control */ + ISP_CMD_REF_CNT, /* get imem reference count */ + ISP_CMD_DEBUG_FLAG, /* Dump message level */ + ISP_CMD_P2_BUFQUE_CTRL, + ISP_CMD_UPDATE_REGSCEN, + ISP_CMD_QUERY_REGSCEN, + ISP_CMD_UPDATE_BURSTQNUM, + ISP_CMD_QUERY_BURSTQNUM, + ISP_CMD_DUMP_ISR_LOG, /* dump isr log */ + ISP_CMD_GET_CUR_SOF, + ISP_CMD_GET_DMA_ERR, + ISP_CMD_GET_INT_ERR, + ISP_CMD_GET_DROP_FRAME, /* dump current frame informaiton, 1 for drop frmae, 2 for last working frame */ + ISP_CMD_WAKELOCK_CTRL, + ISP_CMD_REGISTER_IRQ_USER_KEY, /* register for a user key to do irq operation */ + ISP_CMD_MARK_IRQ_REQUEST, /* mark for a specific register before wait for the interrupt if needed */ + ISP_CMD_GET_MARK2QUERY_TIME, /* query time information between read and mark */ + ISP_CMD_FLUSH_IRQ_REQUEST, /* flush signal */ + ISP_CMD_GET_START_TIME, + ISP_CMD_VF_LOG, /* dbg only, prt log on kernel when vf_en is driven */ + ISP_CMD_GET_VSYNC_CNT, + ISP_CMD_RESET_VSYNC_CNT, + ISP_CMD_ION_IMPORT, /* get ion handle */ + ISP_CMD_ION_FREE, /* free ion handle */ + ISP_CMD_CQ_SW_PATCH, /* sim cq update behavior as atomic behavior */ + ISP_CMD_ION_FREE_BY_HWMODULE /* free all ion handle */ +} ISP_CMD_ENUM; + + +/* Everest reset ioctl */ +#define ISP_RESET_CAM_P1 _IOWR(ISP_MAGIC, ISP_CMD_RESET_CAM_P1, unsigned int) +#define ISP_RESET_BY_HWMODULE _IOW(ISP_MAGIC, ISP_CMD_RESET_BY_HWMODULE, unsigned long) + +/* read phy reg */ +#define ISP_READ_REGISTER _IOWR(ISP_MAGIC, ISP_CMD_READ_REG, ISP_REG_IO_STRUCT) + +/* write phy reg */ +#define ISP_WRITE_REGISTER _IOWR(ISP_MAGIC, ISP_CMD_WRITE_REG, ISP_REG_IO_STRUCT) + +#define ISP_WAIT_IRQ _IOW(ISP_MAGIC, ISP_CMD_WAIT_IRQ, ISP_WAIT_IRQ_STRUCT) +#define ISP_CLEAR_IRQ _IOW(ISP_MAGIC, ISP_CMD_CLEAR_IRQ, ISP_CLEAR_IRQ_STRUCT) +#define ISP_DUMP_REG _IO(ISP_MAGIC, ISP_CMD_DUMP_REG) +#define ISP_BUFFER_CTRL _IOWR(ISP_MAGIC, ISP_CMD_RT_BUF_CTRL, ISP_BUFFER_CTRL_STRUCT) +#define ISP_REF_CNT_CTRL _IOWR(ISP_MAGIC, ISP_CMD_REF_CNT, ISP_REF_CNT_CTRL_STRUCT) +#define ISP_DEBUG_FLAG _IOW(ISP_MAGIC, ISP_CMD_DEBUG_FLAG, unsigned char*) +#define ISP_P2_BUFQUE_CTRL _IOWR(ISP_MAGIC, ISP_CMD_P2_BUFQUE_CTRL, ISP_P2_BUFQUE_STRUCT) +#define ISP_UPDATE_REGSCEN _IOWR(ISP_MAGIC, ISP_CMD_UPDATE_REGSCEN, unsigned int) +#define ISP_QUERY_REGSCEN _IOR(ISP_MAGIC, ISP_CMD_QUERY_REGSCEN, unsigned int) +#define ISP_UPDATE_BURSTQNUM _IOW(ISP_MAGIC, ISP_CMD_UPDATE_BURSTQNUM, int) +#define ISP_QUERY_BURSTQNUM _IOR(ISP_MAGIC, ISP_CMD_QUERY_BURSTQNUM, int) +#define ISP_DUMP_ISR_LOG _IOWR(ISP_MAGIC, ISP_CMD_DUMP_ISR_LOG, unsigned long) +#define ISP_GET_CUR_SOF _IOWR(ISP_MAGIC, ISP_CMD_GET_CUR_SOF, unsigned char*) +#define ISP_GET_DMA_ERR _IOWR(ISP_MAGIC, ISP_CMD_GET_DMA_ERR, unsigned char*) +#define ISP_GET_INT_ERR _IOR(ISP_MAGIC, ISP_CMD_GET_INT_ERR, unsigned char*) +#define ISP_GET_DROP_FRAME _IOWR(ISP_MAGIC, ISP_CMD_GET_DROP_FRAME, unsigned long) +#define ISP_GET_START_TIME _IOWR(ISP_MAGIC, ISP_CMD_GET_START_TIME, unsigned char*) + +#define ISP_REGISTER_IRQ_USER_KEY _IOR(ISP_MAGIC, ISP_CMD_REGISTER_IRQ_USER_KEY, ISP_REGISTER_USERKEY_STRUCT) + +#define ISP_MARK_IRQ_REQUEST _IOWR(ISP_MAGIC, ISP_CMD_MARK_IRQ_REQUEST, ISP_WAIT_IRQ_STRUCT) +#define ISP_GET_MARK2QUERY_TIME _IOWR(ISP_MAGIC, ISP_CMD_GET_MARK2QUERY_TIME, ISP_WAIT_IRQ_STRUCT) +#define ISP_FLUSH_IRQ_REQUEST _IOW(ISP_MAGIC, ISP_CMD_FLUSH_IRQ_REQUEST, ISP_WAIT_IRQ_STRUCT) + +#define ISP_WAKELOCK_CTRL _IOWR(ISP_MAGIC, ISP_CMD_WAKELOCK_CTRL, unsigned long) +#define ISP_VF_LOG _IOW(ISP_MAGIC, ISP_CMD_VF_LOG, unsigned char*) +#define ISP_GET_VSYNC_CNT _IOWR(ISP_MAGIC, ISP_CMD_GET_VSYNC_CNT, unsigned int) +#define ISP_RESET_VSYNC_CNT _IOW(ISP_MAGIC, ISP_CMD_RESET_VSYNC_CNT, unsigned int) +#define ISP_ION_IMPORT _IOW(ISP_MAGIC, ISP_CMD_ION_IMPORT, ISP_DEV_ION_NODE_STRUCT) +#define ISP_ION_FREE _IOW(ISP_MAGIC, ISP_CMD_ION_FREE, ISP_DEV_ION_NODE_STRUCT) +#define ISP_ION_FREE_BY_HWMODULE _IOW(ISP_MAGIC, ISP_CMD_ION_FREE_BY_HWMODULE, unsigned int) +#define ISP_CQ_SW_PATCH _IOW(ISP_MAGIC, ISP_CMD_CQ_SW_PATCH, unsigned int) + +#ifdef CONFIG_COMPAT +#define COMPAT_ISP_READ_REGISTER _IOWR(ISP_MAGIC, ISP_CMD_READ_REG, compat_ISP_REG_IO_STRUCT) +#define COMPAT_ISP_WRITE_REGISTER _IOWR(ISP_MAGIC, ISP_CMD_WRITE_REG, compat_ISP_REG_IO_STRUCT) +/* #define COMPAT_ISP_REGISTER_IRQ_USER_KEY _IOR(ISP_MAGIC, ISP_CMD_REGISTER_IRQ_USER_KEY, compat_ISP_REGISTER_USERKEY_STRUCT) */ +#define COMPAT_ISP_DEBUG_FLAG _IOW(ISP_MAGIC, ISP_CMD_DEBUG_FLAG, compat_uptr_t) +#define COMPAT_ISP_GET_DMA_ERR _IOWR(ISP_MAGIC, ISP_CMD_GET_DMA_ERR, compat_uptr_t) +#define COMPAT_ISP_GET_INT_ERR _IOR(ISP_MAGIC, ISP_CMD_GET_INT_ERR, compat_uptr_t) + +#define COMPAT_ISP_BUFFER_CTRL _IOWR(ISP_MAGIC, ISP_CMD_RT_BUF_CTRL, compat_ISP_BUFFER_CTRL_STRUCT) +#define COMPAT_ISP_REF_CNT_CTRL _IOWR(ISP_MAGIC, ISP_CMD_REF_CNT, compat_ISP_REF_CNT_CTRL_STRUCT) +#define COMPAT_ISP_GET_START_TIME _IOWR(ISP_MAGIC, ISP_CMD_GET_START_TIME, compat_uptr_t) + +#define COMPAT_ISP_WAKELOCK_CTRL _IOWR(ISP_MAGIC, ISP_CMD_WAKELOCK_CTRL, compat_uptr_t) +#define COMPAT_ISP_GET_DROP_FRAME _IOWR(ISP_MAGIC, ISP_CMD_GET_DROP_FRAME, compat_uptr_t) +#define COMPAT_ISP_GET_CUR_SOF _IOWR(ISP_MAGIC, ISP_CMD_GET_CUR_SOF, compat_uptr_t) +#define COMPAT_ISP_DUMP_ISR_LOG _IOWR(ISP_MAGIC, ISP_CMD_DUMP_ISR_LOG, compat_uptr_t) +#define COMPAT_ISP_RESET_BY_HWMODULE _IOW(ISP_MAGIC, ISP_CMD_RESET_BY_HWMODULE, compat_uptr_t) +#define COMPAT_ISP_VF_LOG _IOW(ISP_MAGIC, ISP_CMD_VF_LOG, compat_uptr_t) + +#endif + +int32_t ISP_MDPClockOnCallback(uint64_t engineFlag); +int32_t ISP_MDPDumpCallback(uint64_t engineFlag, int level); +int32_t ISP_MDPResetCallback(uint64_t engineFlag); + +int32_t ISP_MDPClockOffCallback(uint64_t engineFlag); + +int32_t ISP_BeginGCECallback(uint32_t taskID, uint32_t *regCount, uint32_t **regAddress); +int32_t ISP_EndGCECallback(uint32_t taskID, uint32_t regCount, uint32_t *regValues); + +#endif + diff --git a/kernel-headers/camera_sysram.h b/kernel-headers/camera_sysram.h new file mode 100755 index 0000000..4b23497 --- /dev/null +++ b/kernel-headers/camera_sysram.h @@ -0,0 +1,33 @@ +#ifndef CAMERA_SYSRAM_H +#define CAMERA_SYSRAM_H +/* ----------------------------------------------------------------------------- */ +#define SYSRAM_DEV_NAME "camera-sysram" +#define SYSRAM_MAGIC_NO 'p' +/* ----------------------------------------------------------------------------- */ +typedef enum { + SYSRAM_USER_VIDO, + SYSRAM_USER_GDMA, + SYSRAM_USER_SW_FD, + SYSRAM_USER_AMOUNT, + SYSRAM_USER_NONE +} SYSRAM_USER_ENUM; +/* */ +typedef struct { + unsigned long Alignment; + unsigned long Size; + SYSRAM_USER_ENUM User; + unsigned long Addr; /* In/Out : address */ + unsigned long TimeoutMS; /* In : millisecond */ +} SYSRAM_ALLOC_STRUCT; +/* */ +typedef enum { + SYSRAM_CMD_ALLOC, + SYSRAM_CMD_FREE, + SYSRAM_CMD_DUMP +} SYSRAM_CMD_ENUM; +/* ----------------------------------------------------------------------------- */ +#define SYSRAM_ALLOC _IOWR(SYSRAM_MAGIC_NO, SYSRAM_CMD_ALLOC, SYSRAM_ALLOC_STRUCT) +#define SYSRAM_FREE _IOWR(SYSRAM_MAGIC_NO, SYSRAM_CMD_FREE, SYSRAM_USER_ENUM) +#define SYSRAM_DUMP _IO(SYSRAM_MAGIC_NO, SYSRAM_CMD_DUMP) +/* ----------------------------------------------------------------------------- */ +#endif diff --git a/kernel-headers/cmdq_engine.h b/kernel-headers/cmdq_engine.h new file mode 100755 index 0000000..5a6a869 --- /dev/null +++ b/kernel-headers/cmdq_engine.h @@ -0,0 +1,74 @@ +#ifndef __CMDQ_ENGINE_H__ +#define __CMDQ_ENGINE_H__ + +typedef enum CMDQ_ENG_ENUM { + /* ISP */ + CMDQ_ENG_ISP_IMGI = 0, + CMDQ_ENG_ISP_IMGO, /* 1 */ + CMDQ_ENG_ISP_IMG2O, /* 2 */ + + /* MDP */ + CMDQ_ENG_MDP_CAMIN, /* 3 */ + CMDQ_ENG_MDP_RDMA0, /* 4 */ + CMDQ_ENG_MDP_RDMA1, /* 5 */ + CMDQ_ENG_MDP_RSZ0, /* 6 */ + CMDQ_ENG_MDP_RSZ1, /* 7 */ + CMDQ_ENG_MDP_RSZ2, /* 8 */ + CMDQ_ENG_MDP_TDSHP0, /* 9 */ + CMDQ_ENG_MDP_COLOR0, /* 10 */ + CMDQ_ENG_MDP_WROT0, /* 11 */ + CMDQ_ENG_MDP_WROT1, /* 12 */ + CMDQ_ENG_MDP_WDMA, /* 13 */ + + /* JPEG & VENC */ + CMDQ_ENG_JPEG_ENC, /* 14 */ + CMDQ_ENG_VIDEO_ENC, /* 15 */ + CMDQ_ENG_JPEG_DEC, /* 16 */ + CMDQ_ENG_JPEG_REMDC, /* 17 */ + + /* DISP */ + CMDQ_ENG_DISP_UFOE, /* 18 */ + CMDQ_ENG_DISP_AAL, /* 19 */ + CMDQ_ENG_DISP_COLOR0, /* 20 */ + CMDQ_ENG_DISP_RDMA0, /* 21 */ + CMDQ_ENG_DISP_RDMA1, /* 22 */ + CMDQ_ENG_DISP_WDMA0, /* 23 */ + CMDQ_ENG_DISP_WDMA1, /* 24 */ + CMDQ_ENG_DISP_OVL0, /* 25 */ + CMDQ_ENG_DISP_OVL1, /* 26 */ + CMDQ_ENG_DISP_OVL2, /* 27 */ + CMDQ_ENG_DISP_GAMMA, /* 28 */ + CMDQ_ENG_DISP_DSI0_VDO, /* 29 */ + CMDQ_ENG_DISP_DSI0_CMD, /* 30 */ + CMDQ_ENG_DISP_DSI0, /* 31 */ + CMDQ_ENG_DISP_DPI, /* 32 */ + CMDQ_ENG_DISP_2L_OVL0, /* 33 */ + CMDQ_ENG_DISP_2L_OVL1, /* 34 */ + CMDQ_ENG_DISP_2L_OVL2, /* 35 */ + + /* DPE */ + CMDQ_ENG_DPE, /* 36 */ + + /* temp: CMDQ internal usage */ + CMDQ_ENG_CMDQ, + CMDQ_ENG_DISP_MUTEX, + CMDQ_ENG_MMSYS_CONFIG, + + /* Dummy Engine */ + CMDQ_ENG_MDP_TDSHP1, + CMDQ_ENG_MDP_MOUT0, + CMDQ_ENG_MDP_MOUT1, + + CMDQ_ENG_DISP_COLOR1, + CMDQ_ENG_DISP_RDMA2, + CMDQ_ENG_DISP_MERGE, + CMDQ_ENG_DISP_SPLIT0, + CMDQ_ENG_DISP_SPLIT1, + CMDQ_ENG_DISP_DSI1_VDO, + CMDQ_ENG_DISP_DSI1_CMD, + CMDQ_ENG_DISP_DSI1, + + CMDQ_MAX_ENGINE_COUNT /* ALWAYS keep at the end */ +} CMDQ_ENG_ENUM; + +#endif /* __CMDQ_ENGINE_H__ */ diff --git a/kernel-headers/cmdq_event.h b/kernel-headers/cmdq_event.h new file mode 100755 index 0000000..7c588aa --- /dev/null +++ b/kernel-headers/cmdq_event.h @@ -0,0 +1,247 @@ +/* MDP start frame */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_RDMA0_SOF, 0) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_RDMA1_SOF, 1) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_RSZ0_SOF, 2) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_RSZ1_SOF, 3) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_RSZ2_SOF, 4) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_TDSHP_SOF, 5) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_COLOR_SOF, 6) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_WDMA_SOF, 7) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_WROT_SOF, (-2)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_WROT0_SOF, 8) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_WROT1_SOF, 9) + +/* Display start frame */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_OVL0_SOF, 10) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_OVL1_SOF, 11) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_OVL0_2L_SOF, 12) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_OVL1_2L_SOF, 13) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_RDMA0_SOF, 14) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_RDMA1_SOF, 15) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_WDMA0_SOF, 16) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_WDMA1_SOF, 17) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_COLOR_SOF, 18) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_CCORR_SOF, 19) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_AAL_SOF, 20) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_GAMMA_SOF, 21) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_OD_SOF, 22) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_DITHER_SOF, 23) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_UFOE_SOF, 24) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_DSC_SOF, 25) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_PWM0_SOF, 26) + +DECLARE_CMDQ_EVENT(CMDQ_EVENT_UFOD_RAMA0_L0_SOF, (-3)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_UFOD_RAMA0_L1_SOF, (-4)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_UFOD_RAMA0_L2_SOF, (-5)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_UFOD_RAMA0_L3_SOF, (-6)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_UFOD_RAMA1_L0_SOF, (-7)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_UFOD_RAMA1_L1_SOF, (-8)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_UFOD_RAMA1_L2_SOF, (-9)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_UFOD_RAMA1_L3_SOF, (-10)) + +/* MDP frame done */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_RDMA0_EOF, 27) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_RDMA1_EOF, 28) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_RSZ0_EOF, 29) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_RSZ1_EOF, 30) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_RSZ2_EOF, 31) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_TDSHP_EOF, 32) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_COLOR_EOF, 33) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_WDMA_EOF, 34) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_WROT_WRITE_EOF, (-11)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_WROT_READ_EOF, (-12)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_WROT0_WRITE_EOF, 35) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_WROT0_READ_EOF, 36) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_WROT1_WRITE_EOF, 37) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MDP_WROT1_READ_EOF, 38) + +/* Display frame done */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_OVL0_EOF, 39) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_OVL1_EOF, 40) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_OVL0_2L_EOF, 41) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_OVL1_2L_EOF, 42) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_RDMA0_EOF, 43) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_RDMA1_EOF, 44) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_WDMA0_EOF, 45) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_WDMA1_EOF, 46) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_COLOR_EOF, 47) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_CCORR_EOF, 48) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_AAL_EOF, 49) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_GAMMA_EOF, 50) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_OD_EOF, 51) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_DITHER_EOF, 52) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_UFOE_EOF, 53) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_DSC_EOF, 54) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_DSI0_EOF, 55) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_DSI1_EOF, 56) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_DPI0_EOF, 57) + +DECLARE_CMDQ_EVENT(CMDQ_EVENT_UFOD_RAMA0_L0_EOF, (-13)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_UFOD_RAMA0_L1_EOF, (-14)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_UFOD_RAMA0_L2_EOF, (-15)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_UFOD_RAMA0_L3_EOF, (-16)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_UFOD_RAMA1_L0_EOF, (-17)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_UFOD_RAMA1_L1_EOF, (-18)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_UFOD_RAMA1_L2_EOF, (-19)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_UFOD_RAMA1_L3_EOF, (-20)) + +/* Mutex frame done */ +/* DISPSYS */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MUTEX0_STREAM_EOF, 58) +/* DISPSYS */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MUTEX1_STREAM_EOF, 59) +/* DISPSYS */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MUTEX2_STREAM_EOF, 60) +/* DISPSYS */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MUTEX3_STREAM_EOF, 61) +/* DISPSYS, please refer to disp_hal.h */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MUTEX4_STREAM_EOF, 62) +/* DpFramework */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MUTEX5_STREAM_EOF, 63) +/* DpFramework */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MUTEX6_STREAM_EOF, 64) +/* DpFramework */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MUTEX7_STREAM_EOF, 65) +/* DpFramework */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MUTEX8_STREAM_EOF, 66) +/* DpFramework via CMDQ_IOCTL_LOCK_MUTEX */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_MUTEX9_STREAM_EOF, 67) + +/* Display underrun */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_RDMA0_UNDERRUN, 68) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DISP_RDMA1_UNDERRUN, 69) + +/* Display TE */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DSI_TE, (-21)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DSI0_TE, 70) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DSI1_TE, 71) + +/* ISP frame done */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_ISP_PASS2_2_EOF, (-22)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_ISP_PASS2_1_EOF, (-23)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_ISP_PASS2_0_EOF, (-24)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_ISP_PASS1_1_EOF, (-25)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_ISP_PASS1_0_EOF, (-26)) + +/* ISP (IMGSYS) frame done */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DIP_CQ_THREAD0_EOF, 129) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DIP_CQ_THREAD1_EOF, 130) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DIP_CQ_THREAD2_EOF, 131) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DIP_CQ_THREAD3_EOF, 132) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DIP_CQ_THREAD4_EOF, 133) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DIP_CQ_THREAD5_EOF, 134) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DIP_CQ_THREAD6_EOF, 135) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DIP_CQ_THREAD7_EOF, 136) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DIP_CQ_THREAD8_EOF, 137) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DIP_CQ_THREAD9_EOF, 138) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DIP_CQ_THREAD10_EOF, 139) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DIP_CQ_THREAD11_EOF, 140) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DIP_CQ_THREAD12_EOF, 141) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DIP_CQ_THREAD13_EOF, 142) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DIP_CQ_THREAD14_EOF, 143) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_DPE_EOF, 144) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_WMF_EOF, 145) + +/* ISP (IMGSYS) engine events */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_ISP_SENINF_CAM1_2_3_FULL, (-27)) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_ISP_SENINF_CAM0_FULL, (-28)) + +/* VENC frame done */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_VENC_EOF, 257) + +/* JPEG frame done */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_JPEG_DEC_EOF, 258) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_JPEG_ENC_EOF, 259) + +/* VENC engine events */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_VENC_MB_DONE, 260) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_VENC_128BYTE_CNT_DONE, 261) + +/* ISP (CAMSYS) frame done */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_ISP_FRAME_DONE_A, 385) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_ISP_FRAME_DONE_B, 386) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_ISP_CAMSV_0_PASS1_DONE, 387) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_ISP_CAMSV_1_PASS1_DONE, 388) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_ISP_CAMSV_2_PASS1_DONE, 389) + +/* ISP (CAMSYS) engine events */ +DECLARE_CMDQ_EVENT(CMDQ_EVENT_SENINF_0_FIFO_FULL, 390) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_SENINF_1_FIFO_FULL, 391) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_SENINF_2_FIFO_FULL, 392) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_SENINF_3_FIFO_FULL, 393) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_SENINF_4_FIFO_FULL, 394) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_SENINF_5_FIFO_FULL, 395) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_SENINF_6_FIFO_FULL, 396) +DECLARE_CMDQ_EVENT(CMDQ_EVENT_SENINF_7_FIFO_FULL, 397) + +/* Keep this at the end of HW events */ +DECLARE_CMDQ_EVENT(CMDQ_MAX_HW_EVENT_COUNT, 400) + +/* SW Sync Tokens (Pre-defined) */ +/* Config thread notify trigger thread */ +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_CONFIG_DIRTY, 401) +/* Trigger thread notify config thread */ +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_STREAM_EOF, 402) +/* Block Trigger thread until the ESD check finishes. */ +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_ESD_EOF, 403) +/* check CABC setup finish */ +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_CABC_EOF, 404) +/* Block Trigger thread until the path freeze finishes */ +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_FREEZE_EOF, 405) +/* Pass-2 notifies VENC frame is ready to be encoded */ +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_VENC_INPUT_READY, 406) +/* VENC notifies Pass-2 encode done so next frame may start */ +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_VENC_EOF, 407) + +/* Notify normal CMDQ there are some secure task done */ +DECLARE_CMDQ_EVENT(CMDQ_SYNC_SECURE_THR_EOF, 408) + +/* SW Sync Tokens (User-defined) */ +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_USER_0, 410) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_USER_1, 411) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_POLL_MONITOR, 412) + +/* Event for CMDQ to block executing command when append command +* Plz sync CMDQ_SYNC_TOKEN_APPEND_THR(id) in cmdq_core source file. */ +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_APPEND_THR0, 422) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_APPEND_THR1, 423) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_APPEND_THR2, 424) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_APPEND_THR3, 425) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_APPEND_THR4, 426) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_APPEND_THR5, 427) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_APPEND_THR6, 428) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_APPEND_THR7, 429) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_APPEND_THR8, 430) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_APPEND_THR9, 431) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_APPEND_THR10, 432) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_APPEND_THR11, 433) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_APPEND_THR12, 434) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_APPEND_THR13, 435) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_APPEND_THR14, 436) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_APPEND_THR15, 437) + +/* GPR access tokens (for HW register backup) */ +/* There are 15 32-bit GPR, 3 GPR form a set (64-bit for address, 32-bit for value) */ +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_GPR_SET_0, 450) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_GPR_SET_1, 451) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_GPR_SET_2, 452) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_GPR_SET_3, 453) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_GPR_SET_4, 454) + +/* Resource lock event to control resource in GCE thread */ +DECLARE_CMDQ_EVENT(CMDQ_SYNC_RESOURCE_WROT0, 460) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_RESOURCE_WROT1, 461) + +/* Secure video path notify SW token */ +DECLARE_CMDQ_EVENT(CMDQ_SYNC_DISP_OVL0_2NONSEC_END, 470) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_DISP_OVL1_2NONSEC_END, 471) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_DISP_2LOVL0_2NONSEC_END, 472) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_DISP_2LOVL1_2NONSEC_END, 473) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_DISP_RDMA0_2NONSEC_END, 474) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_DISP_RDMA1_2NONSEC_END, 475) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_DISP_WDMA0_2NONSEC_END, 476) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_DISP_WDMA1_2NONSEC_END, 477) + +/* event id is 9 bit */ +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_MAX, (0x1FF)) +DECLARE_CMDQ_EVENT(CMDQ_SYNC_TOKEN_INVALID, (-1)) diff --git a/kernel-headers/cmdq_subsys.h b/kernel-headers/cmdq_subsys.h new file mode 100755 index 0000000..033342d --- /dev/null +++ b/kernel-headers/cmdq_subsys.h @@ -0,0 +1,28 @@ +/* msb id group reg-base-name */ +DECLARE_CMDQ_SUBSYS(0x1300, 0, MFG, G3D_CONFIG_BASE) +DECLARE_CMDQ_SUBSYS(0x1400, 1, MMSYS, MMSYS_CONFIG_BASE) +DECLARE_CMDQ_SUBSYS(0x1401, 2, MMSYS, DISP_DITHER_BASE) +DECLARE_CMDQ_SUBSYS(0x1402, 3, MMSYS, NA) +DECLARE_CMDQ_SUBSYS(0x1500, 4, CAM, IMGSYS_BASE) +DECLARE_CMDQ_SUBSYS(0x1600, 5, VDEC, VDEC_GCON_BASE) +DECLARE_CMDQ_SUBSYS(0x1700, 6, VENC, VENC_GCON_BASE) +DECLARE_CMDQ_SUBSYS(0x1800, 7, PERISYS, CONN_PERIPHERALS) + +DECLARE_CMDQ_SUBSYS(0x1000, 8, TOP_AO_3, TOPCKGEN_BASE) +DECLARE_CMDQ_SUBSYS(0x1001, 9, INFRA_AO, KP_BASE) +DECLARE_CMDQ_SUBSYS(0x1002, 10, INFRA_AO, SCP_SRAM_BASE) +DECLARE_CMDQ_SUBSYS(0x1003, 11, NA, NA) +DECLARE_CMDQ_SUBSYS(0x1004, 12, NA, NA) +DECLARE_CMDQ_SUBSYS(0x1005, 13, SCP, SCP) + +DECLARE_CMDQ_SUBSYS(0x1020, 14, INFRASYS, MCUCFG_BASE) +DECLARE_CMDQ_SUBSYS(0x1021, 15, INFRASYS, GCPU_BASE) +DECLARE_CMDQ_SUBSYS(0x1120, 16, PERISYS, USB0_BASE) +DECLARE_CMDQ_SUBSYS(0x1121, 17, PERISYS, USB_SIF_BASE) +DECLARE_CMDQ_SUBSYS(0x1122, 18, PERISYS, AUDIO_BASE) +DECLARE_CMDQ_SUBSYS(0x1123, 19, PERISYS, MSDC0_BASE) +DECLARE_CMDQ_SUBSYS(0x1124, 20, PERISYS, MSDC1_BASE) +DECLARE_CMDQ_SUBSYS(0x1125, 21, PERISYS, MSDC2_BASE) +DECLARE_CMDQ_SUBSYS(0x1126, 22, PERISYS, MSDC3_BASE) +DECLARE_CMDQ_SUBSYS(0x1100, 23, INFRASYS, AP_DMA_BASE) +DECLARE_CMDQ_SUBSYS(0x1A00, 24, CAMSYS, CAMSYS_BASE)
\ No newline at end of file diff --git a/kernel-headers/ddp_aal.h b/kernel-headers/ddp_aal.h new file mode 100755 index 0000000..bd05bea --- /dev/null +++ b/kernel-headers/ddp_aal.h @@ -0,0 +1,38 @@ +#ifndef __DDP_AAL_H__ +#define __DDP_AAL_H__ + +#define AAL_HIST_BIN 33 /* [0..32] */ +#define AAL_DRE_POINT_NUM 29 + +#define AAL_SERVICE_FORCE_UPDATE 0x1 + +typedef struct { + /* DRE */ + int dre_map_bypass; + /* CABC */ + int cabc_gainlmt[33]; +} DISP_AAL_INITREG; + +typedef struct { + unsigned int serviceFlags; + int backlight; + int colorHist; + unsigned int maxHist[AAL_HIST_BIN]; + int requestPartial; +} DISP_AAL_HIST; + +enum DISP_AAL_REFRESH_LATENCY { + AAL_REFRESH_17MS = 17, + AAL_REFRESH_33MS = 33 +}; + +typedef struct { + int DREGainFltStatus[AAL_DRE_POINT_NUM]; + int cabc_fltgain_force; /* 10-bit ; [0,1023] */ + int cabc_gainlmt[33]; + int FinalBacklight; /* 10-bit ; [0,1023] */ + int allowPartial; + int refreshLatency; /* DISP_AAL_REFRESH_LATENCY */ +} DISP_AAL_PARAM; + +#endif diff --git a/kernel-headers/ddp_data_type.h b/kernel-headers/ddp_data_type.h new file mode 100755 index 0000000..60486d1 --- /dev/null +++ b/kernel-headers/ddp_data_type.h @@ -0,0 +1,165 @@ +#ifndef __DP_DATA_TYPE_H__ +#define __DP_DATA_TYPE_H__ + +#ifndef MAX + #define MAX(x, y) ((x) >= (y))? (x): (y) +#endif // MAX + +#ifndef MIN + #define MIN(x, y) ((x) <= (y))? (x): (y) +#endif // MIN + +//FMT GROUP , 0-RGB , 1-YUV , 2-Bayer raw , 3-compressed format +#define DP_COLORFMT_PACK(VIDEO, PLANE, COPLANE, HFACTOR, VFACTOR, BITS, GROUP ,SWAP_ENABLE, UNIQUEID) \ + ((VIDEO << 27) | \ + (PLANE << 24) | \ + (COPLANE << 22) | \ + (HFACTOR << 20) | \ + (VFACTOR << 18) | \ + (BITS << 8) | \ + (GROUP << 6) | \ + (SWAP_ENABLE << 5) | \ + (UNIQUEID << 0)) + +#define DP_COLOR_GET_INTERLACED_MODE(color) ((0x10000000 & color) >> 28) +#define DP_COLOR_GET_BLOCK_MODE(color) ((0x18000000 & color) >> 27) +#define DP_COLOR_GET_PLANE_COUNT(color) ((0x07000000 & color) >> 24) +#define DP_COLOR_IS_UV_COPLANE(color) ((0x00C00000 & color) >> 22) +#define DP_COLOR_GET_H_SUBSAMPLE(color) ((0x00300000 & color) >> 20) +#define DP_COLOR_GET_V_SUBSAMPLE(color) ((0x000C0000 & color) >> 18) +#define DP_COLOR_BITS_PER_PIXEL(color) ((0x0003FF00 & color) >> 8) +#define DP_COLOR_GET_COLOR_GROUP(color) ((0x000000C0 & color) >> 6) +#define DP_COLOR_GET_SWAP_ENABLE(color) ((0x00000020 & color) >> 5) +#define DP_COLOR_GET_UNIQUE_ID(color) ((0x0000001F & color) >> 0) +#define DP_COLOR_GET_HW_FORMAT(color) ((0x0000001F & color) >> 0) + +typedef enum DP_COLOR_ENUM +{ + DP_COLOR_BAYER8 = DP_COLORFMT_PACK(0, 1, 0, 0, 0, 8, 2, 0, 20), + DP_COLOR_BAYER10 = DP_COLORFMT_PACK(0, 1, 0, 0, 0, 10, 2, 0, 21), + DP_COLOR_BAYER12 = DP_COLORFMT_PACK(0, 1, 0, 0, 0, 12, 2, 0, 22), + DP_COLOR_RGB565 = DP_COLORFMT_PACK(0, 1, 0, 0, 0, 16, 0, 0, 0), + DP_COLOR_BGR565 = DP_COLORFMT_PACK(0, 1, 0, 0, 0, 16, 0, 1, 0), + DP_COLOR_RGB888 = DP_COLORFMT_PACK(0, 1, 0, 0, 0, 24, 0, 1, 1), + DP_COLOR_BGR888 = DP_COLORFMT_PACK(0, 1, 0, 0, 0, 24, 0, 0, 1), + DP_COLOR_RGBX8888 = DP_COLORFMT_PACK(0, 1, 0, 0, 0, 32, 0, 0, 23), + DP_COLOR_BGRX8888 = DP_COLORFMT_PACK(0, 1, 0, 0, 0, 32, 0, 1, 23), + DP_COLOR_RGBA8888 = DP_COLORFMT_PACK(0, 1, 0, 0, 0, 32, 0, 1, 2), + DP_COLOR_BGRA8888 = DP_COLORFMT_PACK(0, 1, 0, 0, 0, 32, 0, 0, 2), + DP_COLOR_XRGB8888 = DP_COLORFMT_PACK(0, 1, 0, 0, 0, 32, 0, 0, 24), + DP_COLOR_XBGR8888 = DP_COLORFMT_PACK(0, 1, 0, 0, 0, 32, 0, 1, 24), + DP_COLOR_ARGB8888 = DP_COLORFMT_PACK(0, 1, 0, 0, 0, 32, 0, 1, 3), + DP_COLOR_ABGR8888 = DP_COLORFMT_PACK(0, 1, 0, 0, 0, 32, 0, 0, 3), + DP_COLOR_I420 = DP_COLORFMT_PACK(0, 3, 0, 1, 1, 8, 1, 0, 8), + DP_COLOR_YV12 = DP_COLORFMT_PACK(0, 3, 0, 1, 1, 8, 1, 1, 8), + DP_COLOR_NV12 = DP_COLORFMT_PACK(0, 2, 1, 1, 1, 8, 1, 0, 12), + DP_COLOR_NV21 = DP_COLORFMT_PACK(0, 2, 1, 1, 1, 8, 1, 1, 12), + DP_COLOR_I422 = DP_COLORFMT_PACK(0, 3, 0, 1, 0, 8, 1, 0, 9), + DP_COLOR_YV16 = DP_COLORFMT_PACK(0, 3, 0, 1, 0, 8, 1, 1, 9), + DP_COLOR_NV16 = DP_COLORFMT_PACK(0, 2, 1, 1, 0, 8, 1, 0, 13), + DP_COLOR_NV61 = DP_COLORFMT_PACK(0, 2, 1, 1, 0, 8, 1, 1, 13), + DP_COLOR_YUYV = DP_COLORFMT_PACK(0, 1, 0, 1, 0, 16, 1, 0, 5), + DP_COLOR_YVYU = DP_COLORFMT_PACK(0, 1, 0, 1, 0, 16, 1, 1, 5), + DP_COLOR_UYVY = DP_COLORFMT_PACK(0, 1, 0, 1, 0, 16, 1, 0, 4), + DP_COLOR_VYUY = DP_COLORFMT_PACK(0, 1, 0, 1, 0, 16, 1, 1, 4), + DP_COLOR_I444 = DP_COLORFMT_PACK(0, 3, 0, 0, 0, 8, 1, 0, 10), + DP_COLOR_YV24 = DP_COLORFMT_PACK(0, 3, 0, 0, 0, 8, 1, 1, 10), + DP_COLOR_IYU2 = DP_COLORFMT_PACK(0, 1, 0, 0, 0, 24, 1, 0, 25), + DP_COLOR_NV24 = DP_COLORFMT_PACK(0, 2, 1, 0, 0, 8, 1, 0, 14), + DP_COLOR_NV42 = DP_COLORFMT_PACK(0, 2, 1, 0, 0, 8, 1, 1, 14), + DP_COLOR_GREY = DP_COLORFMT_PACK(0, 1, 0, 0, 0, 8, 1, 0, 7), + + + // Mediatek proprietary format + DP_COLOR_420_BLKP = DP_COLORFMT_PACK(1, 2, 1, 1, 1, 256, 1, 0 , 12),//Field mode + DP_COLOR_420_BLKI = DP_COLORFMT_PACK(3, 2, 1, 1, 1, 256, 1, 0 , 12),//Field mode + Video mode + DP_COLOR_422_BLKP = DP_COLORFMT_PACK(1, 1, 0, 1, 0, 512, 1, 0 , 4), //Field mode +} DP_COLOR_ENUM; + + +// Legacy for 6589 compatible +typedef DP_COLOR_ENUM DpColorFormat; + +#define eYUV_420_3P DP_COLOR_I420 +#define eYUV_420_2P_YUYV DP_COLOR_YUYV +#define eYUV_420_2P_UYVY DP_COLOR_UYVY +#define eYUV_420_2P_YVYU DP_COLOR_YVYU +#define eYUV_420_2P_VYUY DP_COLOR_VYUY +#define eYUV_420_2P_ISP_BLK DP_COLOR_420_BLKP +#define eYUV_420_2P_VDO_BLK DP_COLOR_420_BLKI +#define eYUV_422_3P DP_COLOR_I422 +#define eYUV_422_2P DP_COLOR_NV16 +#define eYUV_422_I DP_COLOR_YUYV +#define eYUV_422_I_BLK DP_COLOR_422_BLKP +#define eYUV_444_3P DP_COLOR_I444 +#define eYUV_444_2P DP_COLOR_NV24 +#define eYUV_444_1P DP_COLOR_YUV444 +#define eBAYER8 DP_COLOR_BAYER8 +#define eBAYER10 DP_COLOR_BAYER10 +#define eBAYER12 DP_COLOR_BAYER12 +#define eRGB565 DP_COLOR_RGB565 +#define eBGR565 DP_COLOR_BGR565 +#define eRGB888 DP_COLOR_RGB888 +#define eBGR888 DP_COLOR_BGR888 +#define eARGB8888 DP_COLOR_ARGB8888 +#define eABGR8888 DP_COLOR_ABGR8888 +#define eRGBA8888 DP_COLOR_RGBA8888 +#define eBGRA8888 DP_COLOR_BGRA8888 +#define eXRGB8888 DP_COLOR_XRGB8888 +#define eXBGR8888 DP_COLOR_XBGR8888 +#define eRGBX8888 DP_COLOR_RGBX8888 +#define eBGRX8888 DP_COLOR_BGRX8888 +#define ePARGB8888 DP_COLOR_PARGB8888 +#define eXARGB8888 DP_COLOR_XARGB8888 +#define ePABGR8888 DP_COLOR_PABGR8888 +#define eXABGR8888 DP_COLOR_XABGR8888 +#define eGREY DP_COLOR_GREY +#define eI420 DP_COLOR_I420 +#define eYV12 DP_COLOR_YV12 +#define eIYU2 DP_COLOR_IYU2 + + +#define eYV21 DP_COLOR_I420 +#define eNV12_BLK DP_COLOR_420_BLKP +#define eNV12_BLK_FCM DP_COLOR_420_BLKI +#define eYUV_420_3P_YVU DP_COLOR_YV12 + +#define eNV12_BP DP_COLOR_420_BLKP +#define eNV12_BI DP_COLOR_420_BLKI +#define eNV12 DP_COLOR_NV12 +#define eNV21 DP_COLOR_NV21 +#define eI422 DP_COLOR_I422 +#define eYV16 DP_COLOR_YV16 +#define eNV16 DP_COLOR_NV16 +#define eNV61 DP_COLOR_NV61 +#define eUYVY DP_COLOR_UYVY +#define eVYUY DP_COLOR_VYUY +#define eYUYV DP_COLOR_YUYV +#define eYVYU DP_COLOR_YVYU +#define eUYVY_BP DP_COLOR_422_BLKP +#define eI444 DP_COLOR_I444 +#define eNV24 DP_COLOR_NV24 +#define eNV42 DP_COLOR_NV42 +#define eYUY2 DP_COLOR_YUYV +#define eY800 DP_COLOR_GREY +//#define eIYU2 +#define eMTKYUV DP_COLOR_422_BLKP + +#define eCompactRaw1 DP_COLOR_BAYER10 + + +enum DpInterlaceFormat +{ + eInterlace_None, + eTop_Field, + eBottom_Field +}; + +enum DpSecure +{ + DP_SECURE_NONE = 0, + DP_SECURE = 1 +}; + + +#endif // __DP_DATA_TYPE_H__ diff --git a/kernel-headers/ddp_drv.h b/kernel-headers/ddp_drv.h new file mode 100755 index 0000000..379d790 --- /dev/null +++ b/kernel-headers/ddp_drv.h @@ -0,0 +1,314 @@ + +#ifndef __DDP_DRV_H__ +#define __DDP_DRV_H__ +#include <linux/ioctl.h> +#include <sys/types.h> +#include "ddp_hal.h" +#include "ddp_aal.h" +#include "ddp_gamma.h" +#include "disp_event.h" + + +typedef struct +{ + unsigned int reg; + unsigned int val; + unsigned int mask; +} DISP_WRITE_REG; + +typedef struct +{ + unsigned int reg; + unsigned int val; + unsigned int mask; +} DISP_READ_REG; + +#if 0 +typedef struct +{ + DISP_MODULE_ENUM module; + unsigned int timeout_ms; //timeout, unit is ms +} disp_wait_irq_struct; +#endif + +typedef struct DISP_EXEC_COMMAND +{ + int taskID; + uint32_t scenario; + uint32_t priority; + uint32_t engineFlag; + uint32_t *pFrameBaseSW; + uint32_t *pTileBaseSW; + uint32_t blockSize; +} DISP_EXEC_COMMAND; + +typedef struct +{ + int layer; + + unsigned long addr; + unsigned int fmt; + + int x; + int y; + int w; + int h; // clip region + int pitch; +} DISP_OVL_INFO; + +//PQ +#define COLOR_TUNING_INDEX 19 +#define THSHP_TUNING_INDEX 12 +#define THSHP_PARAM_MAX 121 /*Everest Revision*/ +#define PARTIAL_Y_INDEX 10 + +#define GLOBAL_SAT_SIZE 10 +#define CONTRAST_SIZE 10 +#define BRIGHTNESS_SIZE 10 +#define PARTIAL_Y_SIZE 16 +#define PQ_HUE_ADJ_PHASE_CNT 4 +#define PQ_SAT_ADJ_PHASE_CNT 4 +#define PQ_PARTIALS_CONTROL 5 +#define PURP_TONE_SIZE 3 +#define SKIN_TONE_SIZE 8 //(-6) +#define GRASS_TONE_SIZE 6 //(-2) +#define SKY_TONE_SIZE 3 +#define CCORR_COEF_CNT 4 /* ccorr feature */ +#define S_GAIN_BY_Y_CONTROL_CNT 5 +#define S_GAIN_BY_Y_HUE_PHASE_CNT 20 + +enum TONE_ENUM { + PURP_TONE = 0, + SKIN_TONE = 1, + GRASS_TONE = 2, + SKY_TONE = 3 +}; + +typedef struct { + unsigned int u4SHPGain; // 0 : min , 9 : max. + unsigned int u4SatGain; // 0 : min , 9 : max. + unsigned int u4PartialY; /* 0 : min , 9 : max. */ + unsigned int u4HueAdj[PQ_HUE_ADJ_PHASE_CNT]; + unsigned int u4SatAdj[PQ_SAT_ADJ_PHASE_CNT]; + unsigned int u4Contrast; // 0 : min , 9 : max. + unsigned int u4Brightness; // 0 : min , 9 : max. + unsigned int u4Ccorr; /* 0 : min , 3 : max. ccorr feature */ +} DISP_PQ_PARAM; + +typedef struct { + int split_en; + int start_x; + int start_y; + int end_x; + int end_y; +} DISP_PQ_WIN_PARAM; + +typedef struct { + int image; + int video; + int camera; +} DISP_PQ_MAPPING_PARAM; + +typedef struct { + unsigned int en; + unsigned int pos_x; + unsigned int pos_y; +} MDP_COLOR_CAP; + +typedef struct { + unsigned int TDS_GAIN_MID; + unsigned int TDS_GAIN_HIGH; + unsigned int TDS_COR_GAIN; + unsigned int TDS_COR_THR; + unsigned int TDS_COR_ZERO; + unsigned int TDS_GAIN; + unsigned int TDS_COR_VALUE; +} MDP_TDSHP_REG; + +typedef struct{ + + unsigned short GLOBAL_SAT [GLOBAL_SAT_SIZE]; + unsigned short CONTRAST [CONTRAST_SIZE]; + unsigned short BRIGHTNESS [BRIGHTNESS_SIZE]; + unsigned char PARTIAL_Y [PARTIAL_Y_INDEX][PARTIAL_Y_SIZE]; + unsigned char PURP_TONE_S [COLOR_TUNING_INDEX][PQ_PARTIALS_CONTROL][PURP_TONE_SIZE]; + unsigned char SKIN_TONE_S [COLOR_TUNING_INDEX][PQ_PARTIALS_CONTROL][SKIN_TONE_SIZE]; + unsigned char GRASS_TONE_S [COLOR_TUNING_INDEX][PQ_PARTIALS_CONTROL][GRASS_TONE_SIZE]; + unsigned char SKY_TONE_S [COLOR_TUNING_INDEX][PQ_PARTIALS_CONTROL][SKY_TONE_SIZE]; + unsigned char PURP_TONE_H [COLOR_TUNING_INDEX][PURP_TONE_SIZE]; + unsigned char SKIN_TONE_H [COLOR_TUNING_INDEX][SKIN_TONE_SIZE]; + unsigned char GRASS_TONE_H [COLOR_TUNING_INDEX][GRASS_TONE_SIZE]; + unsigned char SKY_TONE_H [COLOR_TUNING_INDEX][SKY_TONE_SIZE]; + unsigned int CCORR_COEF [CCORR_COEF_CNT][3][3]; + unsigned char S_GAIN_BY_Y [S_GAIN_BY_Y_CONTROL_CNT][S_GAIN_BY_Y_HUE_PHASE_CNT]; + unsigned char S_GAIN_BY_Y_EN; + unsigned char LSP_EN; +} DISPLAY_PQ_T; + +typedef struct { + unsigned short GLOBAL_SAT ; + unsigned short CONTRAST ; + unsigned short BRIGHTNESS ; + unsigned char PARTIAL_Y [PARTIAL_Y_SIZE]; + unsigned char PURP_TONE_S [PQ_PARTIALS_CONTROL][PURP_TONE_SIZE]; + unsigned char SKIN_TONE_S [PQ_PARTIALS_CONTROL][SKIN_TONE_SIZE]; + unsigned char GRASS_TONE_S [PQ_PARTIALS_CONTROL][GRASS_TONE_SIZE]; + unsigned char SKY_TONE_S [PQ_PARTIALS_CONTROL][SKY_TONE_SIZE]; + unsigned char PURP_TONE_H [PURP_TONE_SIZE]; + unsigned char SKIN_TONE_H [SKIN_TONE_SIZE]; + unsigned char GRASS_TONE_H [GRASS_TONE_SIZE]; + unsigned char SKY_TONE_H [SKY_TONE_SIZE]; + unsigned char S_GAIN_BY_Y [S_GAIN_BY_Y_CONTROL_CNT][S_GAIN_BY_Y_HUE_PHASE_CNT]; + unsigned char S_GAIN_BY_Y_EN; + unsigned char LSP_EN; +} DISPLAY_COLOR_REG_T; + +typedef struct{ + + unsigned int entry[THSHP_TUNING_INDEX][THSHP_PARAM_MAX]; + +} DISPLAY_TDSHP_T; + +typedef enum { + DS_en = 0, + iUpSlope, + iUpThreshold, + iDownSlope, + iDownThreshold, + iISO_en, + iISO_thr1, + iISO_thr0, + iISO_thr3, + iISO_thr2, + iISO_IIR_alpha, + iCorZero_clip2, + iCorZero_clip1, + iCorZero_clip0, + iCorThr_clip2, + iCorThr_clip1, + iCorThr_clip0, + iCorGain_clip2, + iCorGain_clip1, + iCorGain_clip0, + iGain_clip2, + iGain_clip1, + iGain_clip0, + PQ_DS_INDEX_MAX +} PQ_DS_index_t; + + +typedef struct { + + int param[PQ_DS_INDEX_MAX]; + +} DISP_PQ_DS_PARAM; + + +// OD +typedef struct { + unsigned int size; + unsigned int type; + unsigned int ret; + unsigned int param0; + unsigned int param1; + unsigned int param2; + unsigned int param3; +} DISP_OD_CMD; + +typedef enum +{ + DISP_INTERLACE_FORMAT_NONE, + DISP_INTERLACE_FORMAT_TOP_FIELD, + DISP_INTERLACE_FORMAT_BOTTOM_FIELD +}DISP_INTERLACE_FORMAT; + +#define DISP_IOCTL_MAGIC 'x' + +#define DISP_IOCTL_WRITE_REG _IOW (DISP_IOCTL_MAGIC, 1, DISP_WRITE_REG) // also defined in atci_pq_cmd.h +#define DISP_IOCTL_READ_REG _IOWR (DISP_IOCTL_MAGIC, 2, DISP_READ_REG) // also defined in atci_pq_cmd.h +//#define DISP_IOCTL_WAIT_IRQ _IOR (DISP_IOCTL_MAGIC, 3, disp_wait_irq_struct) +#define DISP_IOCTL_DUMP_REG _IOR (DISP_IOCTL_MAGIC, 4, int) +#define DISP_IOCTL_LOCK_THREAD _IOR (DISP_IOCTL_MAGIC, 5, int) +#define DISP_IOCTL_UNLOCK_THREAD _IOR (DISP_IOCTL_MAGIC, 6, int) +#define DISP_IOCTL_MARK_CMQ _IOR (DISP_IOCTL_MAGIC, 7, int) +#define DISP_IOCTL_WAIT_CMQ _IOR (DISP_IOCTL_MAGIC, 8, int) +#define DISP_IOCTL_SYNC_REG _IOR (DISP_IOCTL_MAGIC, 9, int) + +#define DISP_IOCTL_LOCK_MUTEX _IOW (DISP_IOCTL_MAGIC, 20, int) +#define DISP_IOCTL_UNLOCK_MUTEX _IOR (DISP_IOCTL_MAGIC, 21, int) + +#define DISP_IOCTL_LOCK_RESOURCE _IOW (DISP_IOCTL_MAGIC, 25, int) +#define DISP_IOCTL_UNLOCK_RESOURCE _IOR (DISP_IOCTL_MAGIC, 26, int) + +#define DISP_IOCTL_SET_INTR _IOR (DISP_IOCTL_MAGIC, 10, int) +#define DISP_IOCTL_TEST_PATH _IOR (DISP_IOCTL_MAGIC, 11, int) + +#define DISP_IOCTL_CLOCK_ON _IOR (DISP_IOCTL_MAGIC, 12, int) +#define DISP_IOCTL_CLOCK_OFF _IOR (DISP_IOCTL_MAGIC, 13, int) + +#define DISP_IOCTL_RUN_DPF _IOW (DISP_IOCTL_MAGIC, 30, int) +#define DISP_IOCTL_CHECK_OVL _IOR (DISP_IOCTL_MAGIC, 31, int) +#define DISP_IOCTL_GET_OVL _IOWR (DISP_IOCTL_MAGIC, 32, DISP_OVL_INFO) + +#define DISP_IOCTL_EXEC_COMMAND _IOW (DISP_IOCTL_MAGIC, 33, DISP_EXEC_COMMAND) +#define DISP_IOCTL_RESOURCE_REQUIRE _IOR (DISP_IOCTL_MAGIC, 34, int) + +//Add for AAL control - S +//0 : disable AAL event, 1 : enable AAL event +#define DISP_IOCTL_AAL_EVENTCTL _IOW (DISP_IOCTL_MAGIC, 15 , int) +//Get AAL statistics data. +#define DISP_IOCTL_AAL_GET_HIST _IOR (DISP_IOCTL_MAGIC, 16 , DISP_AAL_HIST) +//Update AAL setting +#define DISP_IOCTL_AAL_SET_PARAM _IOW (DISP_IOCTL_MAGIC, 17 , DISP_AAL_PARAM) +#define DISP_IOCTL_AAL_INIT_REG _IOW (DISP_IOCTL_MAGIC, 18 , DISP_AAL_INITREG) +#define DISP_IOCTL_SET_GAMMALUT _IOW (DISP_IOCTL_MAGIC, 23 , DISP_GAMMA_LUT_T) +#define DISP_IOCTL_SET_CCORR _IOW (DISP_IOCTL_MAGIC, 24 , DISP_CCORR_COEF_T) + + +//Add for AAL control - E +/*----------------------------------------------------------------------------- + DDP Kernel Mode API (for Kernel Trap) + -----------------------------------------------------------------------------*/ +//DDPK Bitblit +//#define DISP_IOCTL_G_WAIT_REQUEST _IOR (DISP_IOCTL_MAGIC , 40 , DDPIOCTL_DdpkBitbltConfig) +//#define DISP_IOCTL_T_INFORM_DONE _IOW (DISP_IOCTL_MAGIC , 41 , DDPIOCTL_DdpkBitbltInformDone) + +#define DISP_IOCTL_SET_CLKON _IOW (DISP_IOCTL_MAGIC, 50 , DISP_MODULE_ENUM) +#define DISP_IOCTL_SET_CLKOFF _IOW (DISP_IOCTL_MAGIC, 51 , DISP_MODULE_ENUM) + +#define DISP_IOCTL_MUTEX_CONTROL _IOW (DISP_IOCTL_MAGIC, 55 , int) // also defined in atci_pq_cmd.h +#define DISP_IOCTL_GET_LCMINDEX _IOR (DISP_IOCTL_MAGIC, 56 , int) + +// PQ setting +#define DISP_IOCTL_SET_PQPARAM _IOW (DISP_IOCTL_MAGIC, 60 , DISP_PQ_PARAM) +#define DISP_IOCTL_GET_PQPARAM _IOR (DISP_IOCTL_MAGIC, 61 , DISP_PQ_PARAM) +#define DISP_IOCTL_GET_PQINDEX _IOR (DISP_IOCTL_MAGIC, 63, DISPLAY_PQ_T) +#define DISP_IOCTL_SET_PQINDEX _IOW (DISP_IOCTL_MAGIC, 64 , DISPLAY_PQ_T) +#define DISP_IOCTL_SET_TDSHPINDEX _IOW (DISP_IOCTL_MAGIC, 65 , DISPLAY_TDSHP_T) +#define DISP_IOCTL_GET_TDSHPINDEX _IOR (DISP_IOCTL_MAGIC, 66 , DISPLAY_TDSHP_T) +#define DISP_IOCTL_SET_PQ_CAM_PARAM _IOW (DISP_IOCTL_MAGIC, 67 , DISP_PQ_PARAM) +#define DISP_IOCTL_GET_PQ_CAM_PARAM _IOR (DISP_IOCTL_MAGIC, 68 , DISP_PQ_PARAM) +#define DISP_IOCTL_SET_PQ_GAL_PARAM _IOW (DISP_IOCTL_MAGIC, 69 , DISP_PQ_PARAM) +#define DISP_IOCTL_GET_PQ_GAL_PARAM _IOR (DISP_IOCTL_MAGIC, 70 , DISP_PQ_PARAM) + +#define DISP_IOCTL_PQ_SET_BYPASS_COLOR _IOW (DISP_IOCTL_MAGIC, 71 , int) +#define DISP_IOCTL_PQ_SET_WINDOW _IOW (DISP_IOCTL_MAGIC, 72 , DISP_PQ_WIN_PARAM) +#define DISP_IOCTL_PQ_GET_TDSHP_FLAG _IOR (DISP_IOCTL_MAGIC, 73 , int) +#define DISP_IOCTL_PQ_SET_TDSHP_FLAG _IOW (DISP_IOCTL_MAGIC, 74 , int) +#define DISP_IOCTL_PQ_GET_DC_PARAM _IOR (DISP_IOCTL_MAGIC, 75, DISP_PQ_DC_PARAM) +#define DISP_IOCTL_PQ_SET_DC_PARAM _IOW (DISP_IOCTL_MAGIC, 76, DISP_PQ_DC_PARAM) +#define DISP_IOCTL_WRITE_SW_REG _IOW (DISP_IOCTL_MAGIC, 77, DISP_WRITE_REG) // also defined in atci_pq_cmd.h +#define DISP_IOCTL_READ_SW_REG _IOWR (DISP_IOCTL_MAGIC, 78, DISP_READ_REG) // also defined in atci_pq_cmd.h +#define DISP_IOCTL_SET_COLOR_REG _IOWR (DISP_IOCTL_MAGIC, 79, DISPLAY_COLOR_REG_T) + +// OD +#define DISP_IOCTL_OD_CTL _IOWR (DISP_IOCTL_MAGIC, 80 , DISP_OD_CMD) + +// OVL +#define DISP_IOCTL_OVL_ENABLE_CASCADE _IOW (DISP_IOCTL_MAGIC, 90 , int) +#define DISP_IOCTL_OVL_DISABLE_CASCADE _IOW (DISP_IOCTL_MAGIC, 91 , int) +// PQ setting +#define DISP_IOCTL_PQ_GET_DS_PARAM _IOR (DISP_IOCTL_MAGIC, 100, DISP_PQ_DS_PARAM) +#define DISP_IOCTL_PQ_GET_MDP_COLOR_CAP _IOR (DISP_IOCTL_MAGIC, 101, MDP_COLOR_CAP) +#define DISP_IOCTL_PQ_GET_MDP_TDSHP_REG _IOR (DISP_IOCTL_MAGIC, 102, MDP_TDSHP_REG) +#endif diff --git a/kernel-headers/ddp_gamma.h b/kernel-headers/ddp_gamma.h new file mode 100755 index 0000000..484bf27 --- /dev/null +++ b/kernel-headers/ddp_gamma.h @@ -0,0 +1,35 @@ +#ifndef __DDP_GAMMA_H__ +#define __DDP_GAMMA_H__ + +//#include <asm/uaccess.h> + + +typedef enum { + DISP_GAMMA0 = 0, + DISP_GAMMA_TOTAL +} disp_gamma_id_t; + + +typedef unsigned int gamma_entry; +#define GAMMA_ENTRY(r10, g10, b10) (((r10) << 20) | ((g10) << 10) | (b10)) + +#define DISP_GAMMA_LUT_SIZE 512 + +typedef struct { + disp_gamma_id_t hw_id; + gamma_entry lut[DISP_GAMMA_LUT_SIZE]; +} DISP_GAMMA_LUT_T; + + +typedef enum { + DISP_CCORR0 = 0, + DISP_CCORR_TOTAL +} disp_ccorr_id_t; + +typedef struct { + disp_ccorr_id_t hw_id; + unsigned int coef[3][3]; +} DISP_CCORR_COEF_T; + +#endif + diff --git a/kernel-headers/ddp_hal.h b/kernel-headers/ddp_hal.h new file mode 100755 index 0000000..ebb3ceb --- /dev/null +++ b/kernel-headers/ddp_hal.h @@ -0,0 +1,125 @@ +#ifndef _H_DDP_HAL_ +#define _H_DDP_HAL_ + +/* DISP Mutex */ +#define DISP_MUTEX_TOTAL (10) +#define DISP_MUTEX_DDP_FIRST (0) +#define DISP_MUTEX_DDP_LAST (4) +#define DISP_MUTEX_DDP_COUNT (5) +#define DISP_MUTEX_MDP_FIRST (5) +#define DISP_MUTEX_MDP_COUNT (5) + +/* DISP MODULE */ +typedef enum +{ + DISP_MODULE_OVL0 , + DISP_MODULE_OVL1 , + DISP_MODULE_RDMA0 , + DISP_MODULE_RDMA1 , + DISP_MODULE_WDMA0 , + DISP_MODULE_COLOR0, + DISP_MODULE_CCORR , + DISP_MODULE_AAL , + DISP_MODULE_GAMMA , + DISP_MODULE_DITHER, + DISP_MODULE_UFOE , //10 + DISP_MODULE_PWM0 , + DISP_MODULE_WDMA1 , + DISP_MODULE_DSI0 , + DISP_MODULE_DPI , + DISP_MODULE_SMI, + DISP_MODULE_CONFIG, + DISP_MODULE_CMDQ, + DISP_MODULE_MUTEX, + + DISP_MODULE_COLOR1, + DISP_MODULE_RDMA2, + DISP_MODULE_PWM1, + DISP_MODULE_OD, + DISP_MODULE_MERGE, + DISP_MODULE_SPLIT0, + DISP_MODULE_SPLIT1, + DISP_MODULE_DSI1, + DISP_MODULE_DSIDUAL, + + DISP_MODULE_SMI_LARB0 , + DISP_MODULE_SMI_COMMON, + DISP_MODULE_UNKNOWN, //20 + DISP_MODULE_NUM +} DISP_MODULE_ENUM; + +typedef enum +{ + DISP_REG_OVL0 , + DISP_REG_OVL1 , + DISP_REG_RDMA0 , + DISP_REG_RDMA1 , + DISP_REG_WDMA0 , + DISP_REG_COLOR , + DISP_REG_CCORR , + DISP_REG_AAL , + DISP_REG_GAMMA , + DISP_REG_DITHER , + DISP_REG_UFOE , + DISP_REG_PWM , + DISP_REG_WDMA1 , + DISP_REG_MUTEX , + DISP_REG_DSI0 , + DISP_REG_DPI0 , + DISP_REG_CONFIG , + DISP_REG_SMI_LARB0 , + DISP_REG_SMI_COMMON, + DISP_REG_MIPI , + DISP_REG_CONFIG2 , + DISP_REG_CONFIG3 , + DISP_REG_IO_DRIVING, + DISP_TVDPLL_CFG6, + DISP_TVDPLL_CON0, + DISP_TVDPLL_CON1, + DISP_REG_NUM +} DISP_REG_ENUM; + +typedef enum { + SOF_SINGLE = 0, + SOF_DSI0, + SOF_DSI1, + SOF_DPI0, +} MUTEX_SOF; + +enum OVL_LAYER_SOURCE { + OVL_LAYER_SOURCE_MEM = 0, + OVL_LAYER_SOURCE_RESERVED = 1, + OVL_LAYER_SOURCE_SCL = 2, + OVL_LAYER_SOURCE_PQ = 3, +}; + +enum OVL_LAYER_SECURE_MODE { + OVL_LAYER_NORMAL_BUFFER = 0, + OVL_LAYER_SECURE_BUFFER = 1, + OVL_LAYER_PROTECTED_BUFFER = 2 +}; + +typedef enum +{ + CMDQ_DISABLE = 0, + CMDQ_ENABLE +}CMDQ_SWITCH; + +typedef enum +{ + CMDQ_BEFORE_STREAM_SOF, + CMDQ_WAIT_STREAM_EOF_EVENT, + CMDQ_CHECK_IDLE_AFTER_STREAM_EOF, + CMDQ_AFTER_STREAM_EOF, + CMDQ_ESD_CHECK_READ, + CMDQ_ESD_CHECK_CMP, + CMDQ_ESD_ALLC_SLOT, + CMDQ_ESD_FREE_SLOT, + CMDQ_STOP_VDO_MODE, + CMDQ_START_VDO_MODE, + CMDQ_DSI_RESET +}CMDQ_STATE; + + + +#endif diff --git a/kernel-headers/ddp_ovl.h b/kernel-headers/ddp_ovl.h new file mode 100755 index 0000000..01f0f44 --- /dev/null +++ b/kernel-headers/ddp_ovl.h @@ -0,0 +1,17 @@ +#ifndef _DDP_OVL_H_ +#define _DDP_OVL_H_ +#include "ddp_hal.h" +#include "ddp_data_type.h" + +#define OVL_CASCADE_SUPPORT +#define OVL_MAX_WIDTH (4095) +#define OVL_MAX_HEIGHT (4095) +#ifdef OVL_CASCADE_SUPPORT +#define OVL_LAYER_NUM (8) +#else +#define OVL_LAYER_NUM (4) +#endif + +#define OVL_LAYER_NUM_PER_OVL 4 + +#endif diff --git a/kernel-headers/disp_event.h b/kernel-headers/disp_event.h new file mode 100755 index 0000000..e97ecf8 --- /dev/null +++ b/kernel-headers/disp_event.h @@ -0,0 +1,19 @@ +#ifndef __DISP_EVENT_H__ +#define __DISP_EVENT_H__ + +typedef enum{ + DISP_PATH_EVENT_FRAME_DONE = 0, + DISP_PATH_EVENT_FRAME_START, + DISP_PATH_EVENT_FRAME_REG_UPDATE, + DISP_PATH_EVENT_FRAME_TARGET_LINE, + DISP_PATH_EVENT_FRAME_COMPLETE, + DISP_PATH_EVENT_FRAME_STOP, + DISP_PATH_EVENT_IF_CMD_DONE, + DISP_PATH_EVENT_IF_VSYNC, + DISP_PATH_EVENT_TRIGGER, + DISP_PATH_EVENT_AAL_OUT_END_FRAME, + DISP_PATH_EVENT_NUM, + DISP_PATH_EVENT_NONE = 0xff, +}DISP_PATH_EVENT; + +#endif diff --git a/kernel-headers/errata.h b/kernel-headers/errata.h new file mode 100755 index 0000000..61998a4 --- /dev/null +++ b/kernel-headers/errata.h @@ -0,0 +1,41 @@ +#ifndef ERRATA_H +#define ERRATA_H + +#define SAFE_READ(x) \ + __asm__ __volatile__( \ + "nop\n" \ + "nop\n" \ + "nop\n" \ + "nop\n" \ + "nop\n" \ + "nop\n" \ + "nop\n" \ + "nop\n" \ + "nop\n" \ + ); \ + x; \ + __asm__ __volatile__( \ + "nop\n" \ + ); + +#define SAFE_HEAD \ + { \ + __asm__ __volatile__( \ + "nop\n" \ + "nop\n" \ + "nop\n" \ + "nop\n" \ + "nop\n" \ + "nop\n" \ + "nop\n" \ + "nop\n" \ + "nop\n" \ + ); \ + +#define SAFE_TAIL \ + __asm__ __volatile__( \ + "nop\n" \ + ); \ + } + +#endif diff --git a/kernel-headers/jpeg_drv.h b/kernel-headers/jpeg_drv.h new file mode 100755 index 0000000..5699235 --- /dev/null +++ b/kernel-headers/jpeg_drv.h @@ -0,0 +1,677 @@ +#include <linux/ioctl.h> + +#ifndef __JPEG_DRV_H__ +#define __JPEG_DRV_H__ + + + +#define TO_CEIL(x,a) ( ((x) + ((a)-1)) & ~((a)-1) ) +#define TO_FLOOR(x,a) ( (x) & ~((a)-1) ) +#define TO_MASK(x,a) ( (x) & (a) ) + +#define DUNUM_MAPPING(value) (((value)-1)&0x3) + + + +typedef struct +{ + long timeout; + unsigned int *result; + +}JPEG_DEC_DRV_OUT; + + +//=========================================================================================== + + + + +#define MAX_JPEG_COMPONENT 4 +#define MAX_NUM_SCAN 32 + +#define D_MAX_JPEG_HW_COMP 3 +//#define D_MAX_JPEG_HUFF_TBL 4 +#define D_MAX_JPEG_QTBL 4 +#define D_MAX_JPEG_HW_QTBL 2 +#define D_MAX_JPEG_BLOCK_NUM 10 +#define D_HUFF_LOOKAHEAD_BITS 6 /* # of bits of lookahead */ + +#define D_DCTSIZE 8 +#define D_JPEG_DRAM_ALIGN_MASK 0xf +#define D_JPEG_DRAM_ALIGN_SIZE (D_JPEG_DRAM_ALIGN_MASK + 1) + +#define D_JPEG_BASELINE 0 +#define D_JPEG_DC_REFINE 1 +#define D_JPEG_AC_FIRST 2 +#define D_JPEG_AC_REFINE 3 +#define D_JPEG_DC_FIRST 4 + +/* global data check flags */ +#define D_FLAG_NONE (0) + +#define D_GLOB_PROGRESSIVE (1 << 0) +#define D_GLOB_NCOMP (1 << 1) +#define D_GLOB_BLK_W (1 << 2) +#define D_GLOB_BLK_H (1 << 3) +#define D_GLOB_PIC_W (1 << 4) +#define D_GLOB_PIC_H (1 << 5) +#define D_GLOB_DCHUFF (1 << 6) /* no need */ +#define D_GLOB_ACHUFF (1 << 7) /* no need */ +#define D_GLOB_NZBUFF (1 << 8) /* no need */ +#define D_GLOB_QTBL (1 << 9) /* no need */ +#define D_GLOB_RESTART (1 << 10) +/* scan data check flags */ +#define D_SCAN_DATASTART (1 << 0) +#define D_SCAN_NCOMP (1 << 1) +#define D_SCAN_COMPIN (1 << 2) +#define D_SCAN_COMPQ (1 << 3) +#define D_SCAN_BLKDC (1 << 4) +#define D_SCAN_BLKAC (1 << 5) +#define D_SCAN_ALAH (1 << 6) +#define D_SCAN_SESS (1 << 7) +#define D_SCAN_LAST (1 << 8) +#define D_SCAN_ROWSTART (1 << 9) +#define D_SCAN_ROWEND (1 << 10) +#define D_SCAN_DCHUFF (1 << 11) +#define D_SCAN_ACHUFF (1 << 12) +#define D_SCAN_QTBL (1 << 13) +#define D_SCAN_NZBUFF (1 << 14) +/* mcu row check flags */ +#define D_ROW_CURR (1 << 0) +#define D_ROW_OUTBUF (1 << 1) +#define D_ROW_OUTBUFSIZE (1 << 2) +/* mcu check flags */ +#define D_MCU_OUTADDR (1 << 0) +#define D_MCU_COEFADDR (1 << 1) +/* misc check flags */ +#define D_MISC_ADDR_X (1 << 0) +#define D_MISC_ADDR_Y (1 << 1) + + +#define M_JPEG_INTERFACE_START() \ + int i4Ret = (int)E_HWJPG_OK; + +#define M_JPEG_INTERFACE_END() \ + return i4Ret + + +#define HORI 0 +#define VERT 1 + +#define JPEG_ENC_DST_ADDR_OFFSET_MASK (0x0f) + + + + + +typedef enum _ENUM_JPEG_RET_CODE_T +{ + E_JPG_OK, + E_JPG_ERR_NONFATAL, + E_JPG_ERR_FATAL, + E_JPG_ERR_PARAM, + E_JPG_ERR_NOT_INITED, + E_JPG_ERR_ALREADY, //5 + /* markers */ + E_JPG_ERR_NOT_JPEG_IMAGE, + E_JPG_ERR_NOT_A_MARKER, + E_JPG_ERR_PASS_END, + E_JPG_ERR_MULTI_SOI, + E_JPG_ERR_UNSUPPORT_SOF, //10 + E_JPG_ERR_MULTI_SOF, + E_JPG_ERR_INVALID_SOF, + E_JPG_ERR_SOS_BEFORE_SOF, + E_JPG_ERR_INVALID_SOS, + E_JPG_ERR_INVALID_DHT, //15 + E_JPG_ERR_INVALID_DRI, + E_JPG_ERR_MULTI_APP1, + E_JPG_ERR_INVALID_APP0, + E_JPG_ERR_INVALID_APP1, + E_JPG_ERR_PARSE_FAILED, //20 + E_JPG_ERR_NOT_PARSED, + E_JPG_ERR_MULTI_EOI, + /* instances */ + E_JPG_ERR_ALLOC_PARSER, + E_JPG_ERR_ALLOC_DECODER, + E_JPG_ERR_ALLOC_MEM, //25 + E_JPG_ERR_ALLOC_FLOW, + /* general */ + E_JPG_ERR_UNSUPPORT, + E_JPG_ERR_GENERAL, + E_JPG_ERR_LAST, + E_JPG_ERR_DISPLAY_ADDR, //30 + E_JPG_ERR_INVALID_COMPONENT //code sync +} JpegDecRetCode; + + +typedef enum +{ + E_HWJPG_OK = 0, + E_HWJPG_BUSY, + + E_HWJPG_ERR_FETCH_TIMEOIT = E_JPG_ERR_LAST + 1, + E_HWJPG_ERR_SET_BS, + E_HWJPG_ERR_LOAD_Q, + E_HWJPG_ERR_QTBL_INDEX, + E_HWJPG_ERR_QTBL_NUM, + + E_HWJPG_ERR_PARAM, + E_HWJPG_ERR_TIMEOUT, + + E_HWJPG_ERR_COMP_RANGE, + E_HWJPG_ERR_TBL_RANGE, + E_HWJPG_ERR_BLOCK, + E_HWJPG_ERR_SIZE, + E_HWJPG_ERR_OUTBUF, + + E_HWJPG_ERR_NULL_SCAN, + + E_HWJPG_ERR_GLOB_NOT_READY, + E_HWJPG_ERR_SCAN_NOT_READY, + E_HWJPG_ERR_ROW_NOT_READY, + E_HWJPG_ERR_MCU_NOT_READY, + E_HWJPG_ERR_MISC_NOT_READY, + E_HWJPG_ERR_HUFF_ADDR, + /* last */ + E_HWJPG_ERR_GENERAL +} JpegDrvDecRetCode; + + +typedef enum +{ + JDEC_HAL_DEC_MODE_NONE, + JDEC_HAL_DEC_MODE_BASELINE_PIC, ///< Jpeg baseline picture, decode whole picture + JDEC_HAL_DEC_MODE_BASELINE_MCU, ///< Jpeg baseline picture, decode MCU row + JDEC_HAL_DEC_MODE_BASELINE_MCU_ROW, ///< Jpeg baseline picture, decode MCU + JDEC_HAL_DEC_MODE_BASELINE_VIDEO_OUTPUT, + JDEC_HAL_DEC_MODE_PROGRESSIVE_MCU_MULTI_COLLECT, ///< Jpeg progressive picture, decode MCU milti-collect + JDEC_HAL_DEC_MODE_PROGRESSIVE_MCU_ENHANCE, ///< Jpeg progressive picture, decode MCU enhance decoding + JDEC_HAL_DEC_MODE_PROGRESSIVE_MCU_ROW_MULTI_COLLECT, ///Jpeg progressive MCU-Row Mode + JDEC_HAL_DEC_MODE_PROGRESSIVE_MCU_ROW_ENHANCE, + JDEC_HAL_DEC_MODE_PROGRESSIVE_SCAN_MULTI_COLLECT, + JDEC_HAL_DEC_MODE_PROGRESSIVE_SCAN_ENHANCE +} JpegDrvDecMode; + +/* jpeg format */ +typedef enum _JpegDecFormat +{ + E_JPG_UNKNOWN_FORMAT, + E_JPG_BASELINE, + E_JPG_EX_SEQ_HUFFMAN, + E_JPG_PROGRESSIVE_HUFFMAN, + E_JPG_EX_SEQ_ARITHMETIC, + E_JPG_PROGRESSIVE_ARITHMETIC, + E_JPG_LOSSLESS_HUFFMAN, + E_JPG_DIFFERENTIAL_SEQ_HUFFMAN, + E_JPG_DIFF_PROG_HUFFMAN, + E_JPG_DIFF_LLESS_HUFFMAN, + E_JPG_RESERVED_FOR_EXTENSIONS, + E_JPG_LOSSLESS_ARITHMETIC, + E_JPG_DIFF_SEQ_ARITHMETIC, + E_JPG_DIFF_PROG_ARITHMETIC, + E_JPG_UNSUPPORT_FORMAT +} JpegDecFormat; + + +/* component info in SOF marker */ +typedef struct _JpegDecSOFComp +{ + unsigned char u1CompId; + unsigned char u1HSampFactor; + unsigned char u1VSampFactor; + unsigned char u1QuantTblNo; +} JpegDecSOFComp; + +typedef struct _JpegDecSOS +{ + unsigned int u4ScanPass; /* scan pass */ + unsigned char u1CompInScan; + unsigned char au1CompNoList[MAX_JPEG_COMPONENT]; + unsigned char au1DcId[MAX_JPEG_COMPONENT]; + unsigned char au1AcId[MAX_JPEG_COMPONENT]; + unsigned char u1Ss, u1Se, u1Ah, u1Al, u1AhAl; /* OT: NO USE */ + unsigned char* pu1ScanTableStart; + unsigned char* pu1ScanDataStart; +} JpegDecSOS; + + +/* raw de-huffman table */ +typedef struct +{ + unsigned char au1Bits[17]; + unsigned char au1HuffVal[256]; +} JpegDecDhtHuffTbl; + + + +/* SOF data */ +typedef struct _JpegDecSOF +{ + int fgSOF; /* indicate that already have an SOF marker */ + JpegDecFormat eJpegFormat; + unsigned char u1DataPrecision; + unsigned short u2ImageHeight; + unsigned short u2ImageWidth; + unsigned char u1NumComponents; + unsigned char au1MapId2Index[256]; + JpegDecSOFComp arSofComp[MAX_JPEG_COMPONENT]; +} JpegDecSOF; + + + +/* DHT data */ +typedef struct +{ + unsigned int u4NumDcTbl; + unsigned int u4NumAcTbl; + unsigned int fgDcTblLoaded; /* bit mask for loaded dc table */ + unsigned int fgAcTblLoaded; /* bit mask for loaded ac table */ + JpegDecDhtHuffTbl arDcTbl[4]; + JpegDecDhtHuffTbl arAcTbl[4]; +} JpegDecDHT; + +/* DQT data */ +typedef struct +{ + /* + although we leave 2bytes * 64 space here, + if q table precision is 8bits, we use only + first half (1x64) of this table + */ + unsigned char aau1Qtbl[4][128]; + unsigned int afgPrec[4]; + unsigned char u1NumQ; + unsigned int fgDQT; +} JpegDecDQT; + + +/* new types for flw2 (wired) */ +typedef struct +{ + void *pvFreePoint; /* OT: NO USE */ + unsigned int u4Width; /* OT: NO USE */ + unsigned int u4Height; /* OT: NO USE */ + unsigned int u4McuNumInRow; /* OT: NO USE */ + unsigned int u4McuRows; /* OT: NO USE */ + unsigned int u4TotalMcuNum; /* OT: NO USE */ + unsigned int aau4SampleFactor[3][2]; /* OT: NO USE */ + unsigned int au4CompBlock[3]; /* OT: NO USE */ + unsigned int au4MaxFactor[2]; /* OT: NO USE */ + unsigned int outputBuffer0[3]; + unsigned int outputBuffer1[3]; /* nouse in full frame mode, only use in PauseResume/DirectCouple mode */ + unsigned int au1CoffBuffer[3]; /* OT: NO USE */ + int fgProgScan; /* OT: NO USE */ + /* temp buffers */ + unsigned int apvNzBuffer[3]; /* OT: NO USE */ + +} JpegDrvDecFlow; + + + +//// jpeg decode mode +typedef enum _JpegDecMode +{ + JPEG_DEC_MODE_NONE, + JPEG_DEC_MODE_FRAME, ///< Jpeg baseline picture, decode whole picture + JPEG_DEC_MODE_DC_LINK, ///< Jpeg baseline picture, decode whole picture + JPEG_DEC_MODE_MCU_ROW ///< Jpeg baseline picture, decode MCU row +} JpegDecMode; + + +//// JPEG Decoder Structure +typedef struct +{ + + /* common */ + unsigned int decodeMode; //OK + unsigned int reg_OpMode ; //OK + unsigned int regDecDumpEn; + unsigned int totalMCU ; //OK + unsigned int comp0_DU ; + + unsigned int membershipList ; //OK /* { GRAY, gmcEn, DU9, DU8,..., DU1, DU0} */ + + /* for BRZ (0): 1, (1): 1/2, (2): 1/4, (3): 1/8 */ + unsigned char lumaHorDecimate; //OK + unsigned char lumaVerDecimate; //OK + unsigned char cbcrHorDecimate; //OK + unsigned char cbcrVerDecimate; //OK + + unsigned int srcStreamAddrBase; //OK + unsigned int srcStreamSize; //OK + unsigned int srcStreamAddrWritePtr; //OK + + unsigned int outputBuffer0[3]; //OK + unsigned int outputBuffer1[3]; //OK /* nouse in full frame mode, only use in PauseResume/DirectCouple mode */ + + + // JPEG component information + unsigned int componentNum; //OK + unsigned int componentID[3]; //OK ///< Ci + unsigned int hSamplingFactor[3]; //OK ///< Hi + unsigned int vSamplingFactor[3]; //OK ///< Vi + unsigned int qTableSelector[3]; //OK ///< Tqi (OT: need this field?) + + unsigned int dma_McuInGroup; //OK + unsigned int dma_GroupNum ; //OK + unsigned int dma_LastMcuNum ; //OK + unsigned int gmcEn ; //OK + + + //unsigned int totalMcuRows; //OK ///< number of MCU column in the JPEG file + + unsigned int compImgStride[D_MAX_JPEG_HW_COMP]; //OK // hSamplingFactor[n] * 8 * mcuPerRow (byte pitch of a component) + unsigned int compMemStride[D_MAX_JPEG_HW_COMP]; //OK + unsigned int compTileBufStride[D_MAX_JPEG_HW_COMP]; // hSamplingFactor[n] * 8 * mcuPerRow (byte pitch of a component) + + + + unsigned int mcuPerRow; //OK //move to HAL ///< number of MCU row in the JPEG file + unsigned int pauseRow_en; //OK + unsigned int pauseRowCnt; //move to HAL + unsigned int pauseMCU; //OK + unsigned int tileBufRowNum ; //move to HAL + unsigned int buffer_Y_PA ; //move to HAL + unsigned int buffer_Cb_PA; //move to HAL + unsigned int buffer_Cr_PA; //move to HAL + unsigned int buffer_Y_row_size ; //move to HAL + unsigned int buffer_C_row_size ; //move to HAL + + + //unsigned int compDU[3]; //OK ///< (required by HW decoder) number of DU for each component + //unsigned int duPerMCURow[3]; //OK ///< (required by HW decoder) DU per MCU row for each component (MT6589_NOUSE) + //unsigned int dummyDU[3]; //OK ///< (required by HW decoder) number of dummy DU for each component (MT6589_NOUSE) + //unsigned int samplingFormat; //OK /// how many format? + + + + +}JPEG_DEC_DRV_IN; + + + + + +typedef struct +{ + unsigned int decRowBuf[3]; //OK + unsigned int pauseMCU; //OK + + +}JPEG_DEC_CONFIG_ROW; + + + +typedef struct +{ + unsigned int goNum; + unsigned int pauseMCUidx[64]; + unsigned int decRowBuf0[64]; + unsigned int decRowBuf1[64]; + unsigned int decRowBuf2[64]; + + +}JPEG_DEC_CONFIG_CMDQ; + + + + +typedef struct +{ + // from mt6575 + unsigned int srcStreamAddrBase; + unsigned int srcStreamSize; + unsigned int srcStreamAddrWritePtr; + + unsigned int outputBuffer0[3]; + unsigned int outputBuffer1[3]; /* nouse in full frame mode, only use in PauseResume/DirectCouple mode */ + + unsigned int mcuPerRow; ///< number of MCU row in the JPEG file + unsigned int totalMcuRows; ///< number of MCU column in the JPEG file + + unsigned int compDU[3]; ///< (required by HW decoder) number of DU for each component + unsigned int duPerMCURow[3]; ///< (required by HW decoder) DU per MCU row for each component (MT6589_NOUSE) + unsigned int dummyDU[3]; ///< (required by HW decoder) number of dummy DU for each component (MT6589_NOUSE) + + unsigned int samplingFormat; /// how many format? + + // JPEG component information + unsigned int componentNum; + unsigned int componentID[3]; ///< Ci + unsigned int hSamplingFactor[3]; ///< Hi + unsigned int vSamplingFactor[3]; ///< Vi + unsigned int qTableSelector[3]; ///< Tqi (OT: need this field?) + +/*********************************************************************************/ + + /* common */ + unsigned int totalMCU ; + unsigned char blkNumInMCU; //total drv no use + + unsigned char u1MaxHorSample, u1MaxVerSample; // widest, highest + unsigned int u4PicWidth, u4PicHeight; // picture width and height + unsigned int compImgStride[D_MAX_JPEG_HW_COMP]; // hSamplingFactor[n] * 8 * mcuPerRow (byte pitch of a component) + unsigned int compTileBufStride[D_MAX_JPEG_HW_COMP]; // hSamplingFactor[n] * 8 * mcuPerRow (byte pitch of a component) + unsigned int au4PicWidthInBuf[D_MAX_JPEG_HW_COMP]; + + + // use only in look ahead table + unsigned char au1MemberShip[D_MAX_JPEG_BLOCK_NUM]; // DU mapping to components + unsigned char aau1Qtbl[D_MAX_JPEG_QTBL][128]; // q tables in stream + unsigned int u4RestartInterval; + + /* current scan */ + unsigned char u1NumCompsInCurrScan; // number of components in current scan + int afgCompInScan[D_MAX_JPEG_HW_COMP + 1]; + //unsigned char qTableSelector[D_MAX_JPEG_HW_COMP]; + unsigned char au1BlkDc[D_MAX_JPEG_BLOCK_NUM]; + unsigned char au1BlkAc[D_MAX_JPEG_BLOCK_NUM]; + unsigned char u1Se; /* OT: NO USE */ + unsigned char u1Ss; /* OT: NO USE */ + + /* current mcu row */ + unsigned int u4CurrMcuRow; + unsigned int u4ModTotalRows; + + + /* for single component in p scan */ + unsigned char u1FirstCompInScan; + + /* for BRZ */ + unsigned char lumaHorDecimate; //(0): 1, (1): 1/2, (2): 1/4, (3): 1/8 + unsigned char lumaVerDecimate; + unsigned char cbcrHorDecimate; + unsigned char cbcrVerDecimate; + unsigned int srcColorFormat; + unsigned int dstColorFormat; + unsigned int u4isColorConv; + unsigned int u4ds_width[3] ; + unsigned int u4ds_height[3] ; + + unsigned int decodeMode; + unsigned int gdmaBypassEn; + unsigned int regDecDumpEn; + + unsigned int pauseRow_en; + unsigned int pauseRowCnt; + unsigned int tileBufRowNum ; + unsigned int buffer_Y_PA ; + unsigned int buffer_Cb_PA; + unsigned int buffer_Cr_PA; + unsigned int buffer_Y_row_size ; + unsigned int buffer_C_row_size ; + +} JpegDrvDecConfig; + +typedef struct +{ + unsigned int *pChksum; +} JpegDrvDecResult; + + + + + + + + + + + + + + + + + + + +//========================================================================================== + + +// JPEG Encoder Structure +typedef struct +{ + + unsigned int dstBufferAddr; + unsigned int dstBufferSize; + + unsigned int encWidth; //HW directly fill to header + unsigned int encHeight; //HW directly fill to header + + unsigned char enableEXIF; + unsigned char allocBuffer; + //unsigned char enableSyncReset; //not use in mt6589 + + unsigned int encQuality; + unsigned int encFormat; + + //extend in mt6589 + unsigned int disableGMC; //TBD: not support + unsigned int restartInterval; + unsigned int srcBufferAddr; // YUV420: Luma + unsigned int srcChromaAddr; + unsigned int imgStride ; + unsigned int memStride ; + unsigned int totalEncDU ; + unsigned int dstBufAddrOffset; + unsigned int dstBufAddrOffsetMask; + +}JPEG_ENC_DRV_IN; + + + + + +typedef struct +{ + long timeout; + unsigned int *fileSize; + unsigned int *result; + unsigned int *cycleCount; + +}JPEG_ENC_DRV_OUT; + +typedef struct { + unsigned long startAddr;//In : + unsigned long size; + unsigned long result;// 0 : out of pmem range, 1 : inside pmem range, 2 : partially overlap with pmem range +} JPEG_PMEM_RANGE; + +//==================================================================================== + + +typedef struct +{ + long timeout; + unsigned int *pFileSize; + unsigned int *pResult; + unsigned int *pCycleCount; + +} JpegDrvEncResult; + + + + + + +//typedef struct +//{ +// unsigned int srcBufferAddr; // YUV420: Luma +// unsigned int srcChromaAddr; +// unsigned int dstBufferAddr; +// unsigned int dstBufferSize; +// +// unsigned int srcWidth; +// unsigned int srcHeight; +// +// unsigned char enableEXIF; +// unsigned char disableGMC; //not support +// +// unsigned int restartInterval; +// unsigned int quality; +// unsigned int yuvFormat; +// +//} JpegDrvEncParam; + + + +//====================================================================================== + + + + + + + +#define JPEG_IOCTL_MAGIC 'x' + +#if 0 + #define JPEG_DEC_IOCTL_INIT _IO (JPEG_IOCTL_MAGIC, 1) + //#define JPEG_DEC_IOCTL_CONFIG _IOW (JPEG_IOCTL_MAGIC, 2, JPEG_DEC_DRV_IN) + #define JPEG_DEC_IOCTL_START _IO (JPEG_IOCTL_MAGIC, 3) + #define JPEG_DEC_IOCTL_WAIT _IOWR(JPEG_IOCTL_MAGIC, 6, JPEG_DEC_DRV_OUT) + #define JPEG_DEC_IOCTL_DEINIT _IO (JPEG_IOCTL_MAGIC, 8) + //#define JPEG_DEC_IOCTL_RESUME _IOW(JPEG_IOCTL_MAGIC, 4, JPEG_DEC_RESUME_IN) + //#define JPEG_DEC_IOCTL_RANGE _IOWR(JPEG_IOCTL_MAGIC, 5, JPEG_DEC_RANGE_IN) + //#define JPEG_DEC_IOCTL_COPY _IOWR(JPEG_IOCTL_MAGIC, 7, int) +#endif + +///////////////////// JPEG DEC IOCTL ///////////////////////////////////// +#define JPEG_DEC_IOCTL_INIT _IO (JPEG_IOCTL_MAGIC, 1) +#define JPEG_DEC_IOCTL_CONFIG _IOW (JPEG_IOCTL_MAGIC, 2, JPEG_DEC_DRV_IN) +#define JPEG_DEC_IOCTL_FLOW _IOW (JPEG_IOCTL_MAGIC, 3, JpegDrvDecFlow) +#define JPEG_DEC_IOCTL_START _IO (JPEG_IOCTL_MAGIC, 4) +#define JPEG_DEC_IOCTL_WAIT _IOWR (JPEG_IOCTL_MAGIC, 5, JPEG_DEC_DRV_OUT) +#define JPEG_DEC_IOCTL_DEINIT _IO (JPEG_IOCTL_MAGIC, 6) + +#define JPEG_DEC_IOCTL_RESET _IO (JPEG_IOCTL_MAGIC, 7) +#define JPEG_DEC_IOCTL_CHKSUM _IOWR (JPEG_IOCTL_MAGIC, 8, JpegDrvDecResult) +#define JPEG_DEC_IOCTL_BREAK _IO (JPEG_IOCTL_MAGIC, 9) +#define JPEG_DEC_IOCTL_RW_REG _IO (JPEG_IOCTL_MAGIC, 10) +#define JPEG_DEC_IOCTL_RESUME _IOW (JPEG_IOCTL_MAGIC, 11, JPEG_DEC_CONFIG_ROW) + +#define JPEG_DEC_IOCTL_FLUSH_CMDQ _IOW (JPEG_IOCTL_MAGIC, 17, JPEG_DEC_CONFIG_CMDQ) + +#define JPEG_DEC_IOCTL_DUMP_REG _IO (JPEG_IOCTL_MAGIC, 30) +//#define JPEG_DEC_IOCTL_MAN_GDMA _IOW (JPEG_IOCTL_MAGIC, 31, unsigned char) + + + +///////////////////// JPEG ENC IOCTL ///////////////////////////////////// + + +#define JPEG_ENC_IOCTL_INIT _IO (JPEG_IOCTL_MAGIC, 11) +#define JPEG_ENC_IOCTL_CONFIG _IOW (JPEG_IOCTL_MAGIC, 12, JPEG_ENC_DRV_IN) +#define JPEG_ENC_IOCTL_WAIT _IOWR(JPEG_IOCTL_MAGIC, 13, JPEG_ENC_DRV_OUT) +#define JPEG_ENC_IOCTL_DEINIT _IO (JPEG_IOCTL_MAGIC, 14) +#define JPEG_ENC_IOCTL_START _IO (JPEG_IOCTL_MAGIC, 15) + + +#define JPEG_ENC_IOCTL_WARM_RESET _IO(JPEG_IOCTL_MAGIC, 20) +#define JPEG_ENC_IOCTL_DUMP_REG _IO(JPEG_IOCTL_MAGIC, 21) +#define JPEG_ENC_IOCTL_RW_REG _IO(JPEG_IOCTL_MAGIC, 22) + + +#endif + diff --git a/kernel-headers/mt_smi.h b/kernel-headers/mt_smi.h new file mode 100755 index 0000000..c425ee2 --- /dev/null +++ b/kernel-headers/mt_smi.h @@ -0,0 +1,189 @@ +#ifndef _MTK_SMI_H_ +#define _MTK_SMI_H_ + +#define MTK_SMI_MAJOR_NUMBER 190 + +#define MTK_IOW(num, dtype) _IOW('O', num, dtype) +#define MTK_IOR(num, dtype) _IOR('O', num, dtype) +#define MTK_IOWR(num, dtype) _IOWR('O', num, dtype) +#define MTK_IO(num) _IO('O', num) + +/* -------------------------------------------------------------------------- */ +#define MTK_CONFIG_MM_MAU MTK_IOW(10, unsigned long) + + +typedef struct { + int larb; /* 0~4: the larb you want to monitor */ + int entry; /* 0~2: the mau entry to use */ + unsigned int port_msk; /* port mask to be monitored */ + int virt; /* 1: monitor va (this port is using m4u); */ + /* 0: monitor pa (this port is not using m4u) */ + int monitor_read; /* monitor read transaction 1-enable, 0-disable */ + int monitor_write; /* monitor write transaction 1-enable, 0-disable */ + unsigned int start; /* start address to monitor */ + unsigned int end; /* end address to monitor */ +} MTK_MAU_CONFIG; + + +int mau_config(MTK_MAU_CONFIG* pMauConf); +int mau_dump_status(int larb); + + +/* --------------------------------------------------------------------------- */ +typedef enum { + SMI_BWC_SCEN_NORMAL, + SMI_BWC_SCEN_VR, + SMI_BWC_SCEN_SWDEC_VP, + SMI_BWC_SCEN_VP, + SMI_BWC_SCEN_VR_SLOW, + SMI_BWC_SCEN_MM_GPU, + SMI_BWC_SCEN_WFD, + SMI_BWC_SCEN_VENC, + SMI_BWC_SCEN_ICFP, + SMI_BWC_SCEN_UI_IDLE, + SMI_BWC_SCEN_VSS, + SMI_BWC_SCEN_FORCE_MMDVFS, + SMI_BWC_SCEN_CNT +} MTK_SMI_BWC_SCEN; + +/* MMDVFS */ +typedef enum { + MMDVFS_VOLTAGE_DEFAULT, + MMDVFS_VOLTAGE_0 = MMDVFS_VOLTAGE_DEFAULT, + MMDVFS_VOLTAGE_LOW = MMDVFS_VOLTAGE_0, + MMDVFS_VOLTAGE_1, + MMDVFS_VOLTAGE_HIGH = MMDVFS_VOLTAGE_1, + MMDVFS_VOLTAGE_DEFAULT_STEP, + MMDVFS_VOLTAGE_COUNT +} mmdvfs_voltage_enum; + +typedef struct { + int scenario; + int b_on_off; /* 0 : exit this scenario , 1 : enter this scenario */ +} MTK_SMI_BWC_CONFIG; + +typedef struct +{ + unsigned int* hwc_max_pixel; //0 : exit this scenario , 1 : enter this scenario +} MTK_SMI_BWC_STATE; + +typedef struct { + unsigned int address; + unsigned int value; +} MTK_SMI_BWC_REGISTER_SET; + +typedef struct { + unsigned int address; + unsigned int *return_address; +} MTK_SMI_BWC_REGISTER_GET; + +#define MMDVFS_CAMERA_MODE_FLAG_DEFAULT 1 +#define MMDVFS_CAMERA_MODE_FLAG_PIP (1 << 1) +#define MMDVFS_CAMERA_MODE_FLAG_VFB (1 << 2) +#define MMDVFS_CAMERA_MODE_FLAG_EIS_2_0 (1 << 3) +#define MMDVFS_CAMERA_MODE_FLAG_IVHDR (1 << 4) + +typedef struct { + unsigned int type; + MTK_SMI_BWC_SCEN scen; + + unsigned int sensor_size; + unsigned int sensor_fps; + unsigned int camera_mode; + + unsigned int venc_size; + + unsigned int ret; +} MTK_MMDVFS_CMD; + +#define MTK_MMDVFS_CMD_TYPE_SET 0 +#define MTK_MMDVFS_CMD_TYPE_QUERY 1 + +typedef enum { + SMI_BWC_INFO_CON_PROFILE = 0, + SMI_BWC_INFO_SENSOR_SIZE, + SMI_BWC_INFO_VIDEO_RECORD_SIZE, + SMI_BWC_INFO_DISP_SIZE, + SMI_BWC_INFO_TV_OUT_SIZE, + SMI_BWC_INFO_FPS, + SMI_BWC_INFO_VIDEO_ENCODE_CODEC, + SMI_BWC_INFO_VIDEO_DECODE_CODEC, + SMI_BWC_INFO_HW_OVL_LIMIT, + SMI_BWC_INFO_CNT +} MTK_SMI_BWC_INFO_ID; + +typedef struct { + int property; + int value1; + int value2; +} MTK_SMI_BWC_INFO_SET; + + +typedef struct { + unsigned int flag; /* Reserved */ + int concurrent_profile; + int sensor_size[2]; + int video_record_size[2]; + int display_size[2]; + int tv_out_size[2]; + int fps; + int video_encode_codec; + int video_decode_codec; + int hw_ovl_limit; +} MTK_SMI_BWC_MM_INFO; + + +#define MTK_IOC_SPC_CONFIG MTK_IOW(20, unsigned long) +#define MTK_IOC_SPC_DUMP_REG MTK_IOW(21, unsigned long) +#define MTK_IOC_SPC_DUMP_STA MTK_IOW(22, unsigned long) +#define MTK_IOC_SPC_CMD MTK_IOW(23, unsigned long) +#define MTK_IOC_SMI_BWC_CONFIG MTK_IOW(24, MTK_SMI_BWC_CONFIG) +#define MTK_IOC_SMI_BWC_STATE MTK_IOWR(25, MTK_SMI_BWC_STATE) +#define MTK_IOC_SMI_BWC_REGISTER_SET MTK_IOWR(26, MTK_SMI_BWC_REGISTER_SET) +#define MTK_IOC_SMI_BWC_REGISTER_GET MTK_IOWR(27, MTK_SMI_BWC_REGISTER_GET) + +/* For BWC.MM property setting */ +#define MTK_IOC_SMI_BWC_INFO_SET MTK_IOWR(28, MTK_SMI_BWC_INFO_SET) +/* For BWC.MM property get */ +#define MTK_IOC_SMI_BWC_INFO_GET MTK_IOWR(29, MTK_SMI_BWC_MM_INFO) + +/* GMP end */ + +#define MTK_IOC_SMI_DUMP_LARB MTK_IOWR(66, unsigned int) +#define MTK_IOC_SMI_DUMP_COMMON MTK_IOWR(67, unsigned int) +#define MTK_IOC_MMDVFS_CMD MTK_IOW(88, MTK_MMDVFS_CMD) + + +typedef enum { + SPC_PROT_NO_PROT = 0, + SPC_PROT_SEC_RW_ONLY, + SPC_PROT_SEC_RW_NONSEC_R, + SPC_PROT_NO_ACCESS, + +}SPC_PROT_T; + + +typedef struct { + SPC_PROT_T domain_0_prot; + SPC_PROT_T domain_1_prot; + SPC_PROT_T domain_2_prot; + SPC_PROT_T domain_3_prot; + unsigned int start; /* start address to monitor */ + unsigned int end; /* end address to monitor */ +} MTK_SPC_CONFIG; + +void spc_config(MTK_SPC_CONFIG* pCfg); +unsigned int spc_status_check(void); +unsigned int spc_dump_reg(void); +unsigned int spc_register_isr(void* dev); +unsigned int spc_clear_irq(void); +int spc_test(int code); +int MTK_SPC_Init(void* dev); + +#define MMDVFS_ENABLE_DEFAULT_STEP_QUERY +#define MMDVFS_MMCLOCK_NOTIFICATION +/* MMDVFS kernel API */ +extern int mmdvfs_set_step(MTK_SMI_BWC_SCEN scenario, mmdvfs_voltage_enum step); +extern int mmdvfs_is_default_step_need_perf(void); +extern void mmdvfs_mm_clock_switch_notify(int is_before, int is_to_high); +#endif diff --git a/kernel-headers/videocodec_kernel_driver.h b/kernel-headers/videocodec_kernel_driver.h new file mode 100755 index 0000000..20d785c --- /dev/null +++ b/kernel-headers/videocodec_kernel_driver.h @@ -0,0 +1,48 @@ +#ifndef __MT6589_VCODEC_H__ +#define __MT6589_VCODEC_H__ + +#define MFV_IOC_MAGIC 'M' + +//below is control message +#define MFV_TEST_CMD _IO(MFV_IOC_MAGIC, 0x00) +#define MFV_INIT_CMD _IO(MFV_IOC_MAGIC, 0x01) +#define MFV_DEINIT_CMD _IO(MFV_IOC_MAGIC, 0x02) +#define MFV_SET_CMD_CMD _IOW(MFV_IOC_MAGIC, 0x03, unsigned int) //P_MFV_DRV_CMD_QUEUE_T +#define MFV_SET_PWR_CMD _IOW(MFV_IOC_MAGIC, 0x04, unsigned int) //HAL_POWER_T * +#define MFV_SET_ISR_CMD _IOW(MFV_IOC_MAGIC, 0x05, unsigned int) //HAL_ISR_T * +#define MFV_ALLOC_MEM_CMD _IOW(MFV_IOC_MAGIC, 0x06, unsigned int) +#define MFV_FREE_MEM_CMD _IOW(MFV_IOC_MAGIC, 0x07, unsigned int) +#define MFV_MAKE_PMEM_TO_NONCACHED _IOW(MFV_IOC_MAGIC, 0x08, unsigned int) //unsigned int* +#define MFV_ALLOC_INT_MEM_CMD _IOW(MFV_IOC_MAGIC, 0x09, unsigned int) //VAL_INTMEM_T* +#define MFV_FREE_INT_MEM_CMD _IOW(MFV_IOC_MAGIC, 0x0a, unsigned int)//VAL_INTMEM_T* +#define VCODEC_WAITISR _IOW(MFV_IOC_MAGIC, 0x0b, unsigned int)//HAL_POWER_T * +#define VCODEC_LOCKHW _IOW(MFV_IOC_MAGIC, 0x0d, unsigned int)//VAL_HW_LOCK_T * +#define VCODEC_PMEM_FLUSH _IOW(MFV_IOC_MAGIC, 0x10, unsigned int)//HAL_POWER_T * +#define VCODEC_PMEM_CLEAN _IOW(MFV_IOC_MAGIC, 0x11, unsigned int)//HAL_POWER_T * +#define VCODEC_INC_SYSRAM_USER _IOW(MFV_IOC_MAGIC, 0x13, unsigned int)//VAL_UINT32_T * +#define VCODEC_DEC_SYSRAM_USER _IOW(MFV_IOC_MAGIC, 0x14, unsigned int)//VAL_UINT32_T * +#define VCODEC_INC_ENC_EMI_USER _IOW(MFV_IOC_MAGIC, 0x15, unsigned int)//VAL_UINT32_T * +#define VCODEC_DEC_ENC_EMI_USER _IOW(MFV_IOC_MAGIC, 0x16, unsigned int)//VAL_UINT32_T * +#define VCODEC_INC_DEC_EMI_USER _IOW(MFV_IOC_MAGIC, 0x17, unsigned int)//VAL_UINT32_T * +#define VCODEC_DEC_DEC_EMI_USER _IOW(MFV_IOC_MAGIC, 0x18, unsigned int)//VAL_UINT32_T * +#define VCODEC_INITHWLOCK _IOW(MFV_IOC_MAGIC, 0x20, unsigned int)//VAL_VCODEC_OAL_HW_REGISTER_T * +#define VCODEC_DEINITHWLOCK _IOW(MFV_IOC_MAGIC, 0x21, unsigned int)//VAL_VCODEC_OAL_HW_REGISTER_T * +#define VCODEC_ALLOC_NON_CACHE_BUFFER _IOW(MFV_IOC_MAGIC, 0x22, unsigned int)//VAL_MEMORY_T * +#define VCODEC_FREE_NON_CACHE_BUFFER _IOW(MFV_IOC_MAGIC, 0x23, unsigned int)//VAL_MEMORY_T * +#define VCODEC_SET_THREAD_ID _IOW(MFV_IOC_MAGIC, 0x24, unsigned int)//VAL_VCODEC_THREAD_ID_T * +#define VCODEC_SET_SYSRAM_INFO _IOW(MFV_IOC_MAGIC, 0x25, unsigned int)//VAL_INTMEM_T * +#define VCODEC_GET_SYSRAM_INFO _IOW(MFV_IOC_MAGIC, 0x26, unsigned int)//VAL_INTMEM_T * +#define VCODEC_INC_PWR_USER _IOW(MFV_IOC_MAGIC, 0x27, unsigned int)//HAL_POWER_T * +#define VCODEC_DEC_PWR_USER _IOW(MFV_IOC_MAGIC, 0x28, unsigned int)//HAL_POWER_T * +#define VCODEC_GET_CPU_LOADING_INFO _IOW(MFV_IOC_MAGIC, 0x29, unsigned int)//VAL_VCODEC_CPU_LOADING_INFO_T * +#define VCODEC_GET_CORE_LOADING _IOW(MFV_IOC_MAGIC, 0x30, unsigned int)//VAL_VCODEC_CORE_LOADING_T * +#define VCODEC_GET_CORE_NUMBER _IOW(MFV_IOC_MAGIC, 0x31, unsigned int)//int * +#define VCODEC_SET_CPU_OPP_LIMIT _IOW(MFV_IOC_MAGIC, 0x32, unsigned int)//VAL_VCODEC_CPU_OPP_LIMIT_T * +#define VCODEC_UNLOCKHW _IOW(MFV_IOC_MAGIC, 0x33, unsigned int)//VAL_HW_LOCK_T * +#define VCODEC_MB _IOW(MFV_IOC_MAGIC, 0x34, unsigned int)//VAL_UINT32_T * +#define VCODEC_SET_LOG_COUNT _IOW(MFV_IOC_MAGIC, 0x35, unsigned int)//VAL_BOOL_T * + + +//#define MFV_GET_CACHECTRLADDR_CMD _IOR(MFV_IOC_MAGIC, 0x06, int) + +#endif //__MT6589_MFLEXVIDEO_H__ diff --git a/media_codecs.xml b/media_codecs.xml new file mode 100755 index 0000000..6487008 --- /dev/null +++ b/media_codecs.xml @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- Copyright (C) 2012 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<!-- +<!DOCTYPE MediaCodecs [ +<!ELEMENT MediaCodecs (Decoders,Encoders)> +<!ELEMENT Decoders (MediaCodec*)> +<!ELEMENT Encoders (MediaCodec*)> +<!ELEMENT MediaCodec (Type*,Quirk*)> +<!ATTLIST MediaCodec name CDATA #REQUIRED> +<!ATTLIST MediaCodec type CDATA> +<!ELEMENT Type EMPTY> +<!ATTLIST Type name CDATA #REQUIRED> +<!ELEMENT Quirk EMPTY> +<!ATTLIST Quirk name CDATA #REQUIRED> +]> + +There's a simple and a complex syntax to declare the availability of a +media codec: + +A codec that properly follows the OpenMax spec and therefore doesn't have any +quirks and that only supports a single content type can be declared like so: + + <MediaCodec name="OMX.foo.bar" type="something/interesting" /> + +If a codec has quirks OR supports multiple content types, the following syntax +can be used: + + <MediaCodec name="OMX.foo.bar" > + <Type name="something/interesting" /> + <Type name="something/else" /> + ... + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="output-buffers-are-unreadable" /> + </MediaCodec> + +Only the three quirks included above are recognized at this point: + +"requires-allocate-on-input-ports" + must be advertised if the component does not properly support specification + of input buffers using the OMX_UseBuffer(...) API but instead requires + OMX_AllocateBuffer to be used. + +"requires-allocate-on-output-ports" + must be advertised if the component does not properly support specification + of output buffers using the OMX_UseBuffer(...) API but instead requires + OMX_AllocateBuffer to be used. + +"output-buffers-are-unreadable" + must be advertised if the emitted output buffers of a decoder component + are not readable, i.e. use a custom format even though abusing one of + the official OMX colorspace constants. + Clients of such decoders will not be able to access the decoded data, + naturally making the component much less useful. The only use for + a component with this quirk is to render the output to the screen. + Audio decoders MUST NOT advertise this quirk. + Video decoders that advertise this quirk must be accompanied by a + corresponding color space converter for thumbnail extraction, + matching surfaceflinger support that can render the custom format to + a texture and possibly other code, so just DON'T USE THIS QUIRK. + + 2012/07/13 config for MTK OMX Media Codecs, created by Morris Yang (mtk03147) +--> + +<MediaCodecs> + <Settings> + <Setting name="max-video-encoder-input-buffers" value="10" /> + </Settings> + <Include href="media_codecs_mediatek_audio.xml" /> + <Include href="media_codecs_mediatek_video.xml" /> + <Include href="media_codecs_google_audio.xml" /> + <Include href="media_codecs_google_video_le.xml" /> +</MediaCodecs> diff --git a/media_codecs_mediatek_audio.xml b/media_codecs_mediatek_audio.xml new file mode 100755 index 0000000..a69d73a --- /dev/null +++ b/media_codecs_mediatek_audio.xml @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- Copyright (C) 2012 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<!-- +<!DOCTYPE MediaCodecs [ +<!ELEMENT MediaCodecs (Decoders,Encoders)> +<!ELEMENT Decoders (MediaCodec*)> +<!ELEMENT Encoders (MediaCodec*)> +<!ELEMENT MediaCodec (Type*,Quirk*)> +<!ATTLIST MediaCodec name CDATA #REQUIRED> +<!ATTLIST MediaCodec type CDATA> +<!ELEMENT Type EMPTY> +<!ATTLIST Type name CDATA #REQUIRED> +<!ELEMENT Quirk EMPTY> +<!ATTLIST Quirk name CDATA #REQUIRED> +]> + +There's a simple and a complex syntax to declare the availability of a +media codec: + +A codec that properly follows the OpenMax spec and therefore doesn't have any +quirks and that only supports a single content type can be declared like so: + + <MediaCodec name="OMX.foo.bar" type="something/interesting" /> + +If a codec has quirks OR supports multiple content types, the following syntax +can be used: + + <MediaCodec name="OMX.foo.bar" > + <Type name="something/interesting" /> + <Type name="something/else" /> + ... + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="output-buffers-are-unreadable" /> + </MediaCodec> + +Only the three quirks included above are recognized at this point: + +"requires-allocate-on-input-ports" + must be advertised if the component does not properly support specification + of input buffers using the OMX_UseBuffer(...) API but instead requires + OMX_AllocateBuffer to be used. + +"requires-allocate-on-output-ports" + must be advertised if the component does not properly support specification + of output buffers using the OMX_UseBuffer(...) API but instead requires + OMX_AllocateBuffer to be used. + +"output-buffers-are-unreadable" + must be advertised if the emitted output buffers of a decoder component + are not readable, i.e. use a custom format even though abusing one of + the official OMX colorspace constants. + Clients of such decoders will not be able to access the decoded data, + naturally making the component much less useful. The only use for + a component with this quirk is to render the output to the screen. + Audio decoders MUST NOT advertise this quirk. + Video decoders that advertise this quirk must be accompanied by a + corresponding color space converter for thumbnail extraction, + matching surfaceflinger support that can render the custom format to + a texture and possibly other code, so just DON'T USE THIS QUIRK. + + 2012/07/13 config for MTK OMX Media Codecs, created by Morris Yang (mtk03147) +--> + +<Included> + <Decoders> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.MP3" > + <Type name="audio/mpeg" /> + <Type name="audio/mpeg-L2" /> + <Quirk name="decoder-lies-about-number-of-channels" /> + <Quirk name="supports-multiple-frames-per-input-buffer" /> + </MediaCodec> + + <MediaCodec name="OMX.MTK.AUDIO.DECODER.ADPCM.MS" type="audio/x-adpcm-ms" /> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.ADPCM.DVI" type="audio/x-adpcm-dvi-ima" /> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.GSM" type="audio/gsm" /> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.RAW" type="audio/raw" /> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.G711.ALAW" type="audio/g711-alaw" > + <Quirk name="decoder-lies-about-number-of-channels" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.G711.MLAW" type="audio/g711-mlaw" > + <Quirk name="decoder-lies-about-number-of-channels" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.FLAC" type="audio/flac" /> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.WMA" type="audio/x-ms-wma" /> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.WMAPRO" type="audio/x-ms-wmapro" /> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.APE" type="audio/ape" > + <Quirk name="decoder-lies-about-number-of-channels" /> + <Quirk name="supports-multiple-frames-per-input-buffer" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.AUDIO.DECODER.ALAC" type="audio/alac" /> + + <!-- DOLBY_UDC --> + <MediaCodec name="OMX.dolby.ac3.decoder" > + <Type name="audio/ac3" /> + <Quirk name="needs-flush-before-disable" /> + <Quirk name="requires-flush-complete-emulation" /> + </MediaCodec> + <MediaCodec name="OMX.dolby.ec3.decoder" > + <Type name="audio/eac3" /> + <Quirk name="needs-flush-before-disable" /> + <Quirk name="requires-flush-complete-emulation" /> + </MediaCodec> + <!-- DOLBY_UDC END --> + </Decoders> + + <Encoders> + <MediaCodec name="OMX.MTK.AUDIO.ENCODER.VORBIS" type="audio/vorbis" /> + <MediaCodec name="OMX.MTK.AUDIO.ENCODER.ADPCM.MS" type="audio/x-adpcm-ms" /> + <MediaCodec name="OMX.MTK.AUDIO.ENCODER.ADPCM.DVI" type="audio/x-adpcm-dvi-ima" /> + </Encoders> +</Included> diff --git a/media_codecs_mediatek_video.xml b/media_codecs_mediatek_video.xml new file mode 100755 index 0000000..93b13bb --- /dev/null +++ b/media_codecs_mediatek_video.xml @@ -0,0 +1,219 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- Copyright (C) 2012 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<!-- +<!DOCTYPE MediaCodecs [ +<!ELEMENT MediaCodecs (Decoders,Encoders)> +<!ELEMENT Decoders (MediaCodec*)> +<!ELEMENT Encoders (MediaCodec*)> +<!ELEMENT MediaCodec (Type*,Quirk*)> +<!ATTLIST MediaCodec name CDATA #REQUIRED> +<!ATTLIST MediaCodec type CDATA> +<!ELEMENT Type EMPTY> +<!ATTLIST Type name CDATA #REQUIRED> +<!ELEMENT Quirk EMPTY> +<!ATTLIST Quirk name CDATA #REQUIRED> +]> + +There's a simple and a complex syntax to declare the availability of a +media codec: + +A codec that properly follows the OpenMax spec and therefore doesn't have any +quirks and that only supports a single content type can be declared like so: + + <MediaCodec name="OMX.foo.bar" type="something/interesting" /> + +If a codec has quirks OR supports multiple content types, the following syntax +can be used: + + <MediaCodec name="OMX.foo.bar" > + <Type name="something/interesting" /> + <Type name="something/else" /> + ... + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="output-buffers-are-unreadable" /> + </MediaCodec> + +Only the three quirks included above are recognized at this point: + +"requires-allocate-on-input-ports" + must be advertised if the component does not properly support specification + of input buffers using the OMX_UseBuffer(...) API but instead requires + OMX_AllocateBuffer to be used. + +"requires-allocate-on-output-ports" + must be advertised if the component does not properly support specification + of output buffers using the OMX_UseBuffer(...) API but instead requires + OMX_AllocateBuffer to be used. + +"output-buffers-are-unreadable" + must be advertised if the emitted output buffers of a decoder component + are not readable, i.e. use a custom format even though abusing one of + the official OMX colorspace constants. + Clients of such decoders will not be able to access the decoded data, + naturally making the component much less useful. The only use for + a component with this quirk is to render the output to the screen. + Audio decoders MUST NOT advertise this quirk. + Video decoders that advertise this quirk must be accompanied by a + corresponding color space converter for thumbnail extraction, + matching surfaceflinger support that can render the custom format to + a texture and possibly other code, so just DON'T USE THIS QUIRK. + + 2012/07/13 config for MTK OMX Media Codecs, created by Morris Yang (mtk03147) +--> + +<Included> + <Decoders> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.MPEG2" type="video/mpeg2" > + <Limit name="size" min="16x16" max="1920x1088" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="concurrent-instances" max="16" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.HEVC" type="video/hevc" > + <Limit name="size" min="16x16" max="1920x1088" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Feature name="adaptive-playback"/> + <Limit name="concurrent-instances" max="16" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.HEVC.secure" type="video/hevc" > + <Limit name="size" min="16x16" max="1920x1088" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Feature name="secure-playback" required="true" /> + <Limit name="concurrent-instances" max="1" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.MPEG4" type="video/mp4v-es" > + <Limit name="size" min="16x16" max="1920x1088" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Feature name="adaptive-playback"/> + <Limit name="concurrent-instances" max="16" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.H263" type="video/3gpp" > + <Limit name="size" min="128x96" max="1408x1152" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Feature name="adaptive-playback"/> + <Limit name="concurrent-instances" max="16" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.AVC" type="video/avc" > + <Limit name="size" min="64x64" max="1920x1088" /> + <Quirk name="wants-NAL-fragments" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Feature name="adaptive-playback"/> + <Limit name="concurrent-instances" max="16" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.AVC.secure" type="video/avc" > + <Limit name="size" min="64x64" max="1920x1088" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Feature name="secure-playback" required="true" /> + <Limit name="concurrent-instances" max="1" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.VPX" type="video/x-vnd.on2.vp8" > + <Limit name="size" min="16x16" max="1920x1088" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Feature name="adaptive-playback"/> + <Limit name="concurrent-instances" max="16" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.VP9" type="video/x-vnd.on2.vp9" > + <Limit name="size" min="16x16" max="1920x1088" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Feature name="adaptive-playback"/> + <Limit name="concurrent-instances" max="16" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.VC1" type="video/x-ms-wmv" > + <Limit name="size" min="16x16" max="1920x1088" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="concurrent-instances" max="16" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.DIVX" type="video/divx" > + <Limit name="size" min="16x16" max="1920x1088" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="concurrent-instances" max="16" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.DIVX3" type="video/divx3" > + <Limit name="size" min="16x16" max="1920x1088" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="concurrent-instances" max="16" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.XVID" type="video/xvid" > + <Limit name="size" min="16x16" max="1920x1088" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="concurrent-instances" max="16" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.S263" type="video/flv1" > + <Limit name="size" min="16x16" max="1920x1088" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="concurrent-instances" max="16" /> + </MediaCodec> + </Decoders> + + <Encoders> + <MediaCodec name="OMX.MTK.VIDEO.ENCODER.MPEG4" type="video/mp4v-es" > + <Limit name="size" min="176x144" max="176x144" /> + <Limit name="alignment" value="16x16" /> + <Limit name="block-size" value="16x16" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="concurrent-instances" max="16" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.ENCODER.H263" type="video/3gpp" > + <Limit name="size" min="176x144" max="176x144" /> + <Limit name="alignment" value="16x16" /> + <Limit name="block-size" value="16x16" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="concurrent-instances" max="16" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.ENCODER.AVC" type="video/avc" > + <Limit name="size" min="128x96" max="1920x1080" /> + <Limit name="alignment" value="16x16" /> + <Limit name="block-size" value="16x16" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="concurrent-instances" max="16" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.ENCODER.HEVC" type="video/hevc" > + <Limit name="size" min="160x128" max="3840x2176" /> + <Limit name="alignment" value="16x16" /> + <Limit name="block-size" value="16x16" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Limit name="concurrent-instances" max="16" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.ENCODER.VPX" type="video/x-vnd.on2.vp8" > + <Limit name="size" min="64x64" max="1280x720" /> + <Limit name="alignment" value="16x16" /> + <Limit name="block-size" value="16x16" /> + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="avoid-memcpy-input-recording-frames" /> + <Limit name="concurrent-instances" max="16" /> + </MediaCodec> + </Encoders> +</Included> diff --git a/media_codecs_performance.xml b/media_codecs_performance.xml new file mode 100755 index 0000000..945149c --- /dev/null +++ b/media_codecs_performance.xml @@ -0,0 +1,175 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- Copyright (C) 2012 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<!-- +<!DOCTYPE MediaCodecs [ +<!ELEMENT MediaCodecs (Decoders,Encoders)> +<!ELEMENT Decoders (MediaCodec*)> +<!ELEMENT Encoders (MediaCodec*)> +<!ELEMENT MediaCodec (Type*,Quirk*)> +<!ATTLIST MediaCodec name CDATA #REQUIRED> +<!ATTLIST MediaCodec type CDATA> +<!ELEMENT Type EMPTY> +<!ATTLIST Type name CDATA #REQUIRED> +<!ELEMENT Quirk EMPTY> +<!ATTLIST Quirk name CDATA #REQUIRED> +]> + +There's a simple and a complex syntax to declare the availability of a +media codec: + +A codec that properly follows the OpenMax spec and therefore doesn't have any +quirks and that only supports a single content type can be declared like so: + + <MediaCodec name="OMX.foo.bar" type="something/interesting" /> + +If a codec has quirks OR supports multiple content types, the following syntax +can be used: + + <MediaCodec name="OMX.foo.bar" > + <Type name="something/interesting" /> + <Type name="something/else" /> + ... + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="output-buffers-are-unreadable" /> + </MediaCodec> + +Only the three quirks included above are recognized at this point: + +"requires-allocate-on-input-ports" + must be advertised if the component does not properly support specification + of input buffers using the OMX_UseBuffer(...) API but instead requires + OMX_AllocateBuffer to be used. + +"requires-allocate-on-output-ports" + must be advertised if the component does not properly support specification + of output buffers using the OMX_UseBuffer(...) API but instead requires + OMX_AllocateBuffer to be used. + +"output-buffers-are-unreadable" + must be advertised if the emitted output buffers of a decoder component + are not readable, i.e. use a custom format even though abusing one of + the official OMX colorspace constants. + Clients of such decoders will not be able to access the decoded data, + naturally making the component much less useful. The only use for + a component with this quirk is to render the output to the screen. + Audio decoders MUST NOT advertise this quirk. + Video decoders that advertise this quirk must be accompanied by a + corresponding color space converter for thumbnail extraction, + matching surfaceflinger support that can render the custom format to + a texture and possibly other code, so just DON'T USE THIS QUIRK. + + 2012/07/13 config for MTK OMX Media Codecs, created by Morris Yang (mtk03147) +--> + +<MediaCodecs> + <Encoders> + <!-- MTK codec --> + <MediaCodec name="OMX.MTK.VIDEO.ENCODER.MPEG4" type="video/mp4v-es" update="true"> + <Limit name="measured-frame-rate-176x144" range="235-818" /> + <Limit name="measured-frame-rate-0352x0288" range="145-506" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.ENCODER.H263" type="video/3gpp" update="true"> + <Limit name="measured-frame-rate-176x144" range="238-828" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.ENCODER.AVC" type="video/avc" update="true"> + <Limit name="measured-frame-rate-320x240" range="161-561" /> + <Limit name="measured-frame-rate-720x480" range="67-234" /> + <Limit name="measured-frame-rate-1280x720" range="29-102" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.ENCODER.VPX" type="video/x-vnd.on2.vp8" update="true"> + <Limit name="measured-frame-rate-1280x720" range="20-71" /> + </MediaCodec> + <!-- Google codec --> + <MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" update="true"> + <Limit name="measured-frame-rate-176x144" range="188-653" /> + </MediaCodec> + <MediaCodec name="OMX.google.h263.encoder" type="video/3gpp" update="true"> + <Limit name="measured-frame-rate-176x144" range="165-573" /> + </MediaCodec> + <MediaCodec name="OMX.google.h264.encoder" type="video/avc" update="true"> + <Limit name="measured-frame-rate-320x240" range="104-361" /> + <Limit name="measured-frame-rate-720x480" range="27-95" /> + </MediaCodec> + <MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8" update="true"> + <Limit name="measured-frame-rate-320x240" range="109-379" /> + <Limit name="measured-frame-rate-640x360" range="45-156" /> + </MediaCodec> + </Encoders> + <Decoders> + <!-- MTK codec --> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.MPEG4" type="video/mp4v-es" update="true"> + <Limit name="measured-frame-rate-480x360" range="136-474" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.H263" type="video/3gpp" update="true"> + <Limit name="measured-frame-rate-176x144" range="136-474" /> + <Limit name="measured-frame-rate-352x288" range="120-419" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.AVC" type="video/avc" update="true"> + <Limit name="measured-frame-rate-320x240" range="186-646" /> + <Limit name="measured-frame-rate-720x480" range="124-433" /> + <Limit name="measured-frame-rate-1280x720" range="74-256" /> + <Limit name="measured-frame-rate-1920x1080" range="26-90" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.HEVC" type="video/hevc" update="true"> + <Limit name="measured-frame-rate-352x288" range="177-615" /> + <Limit name="measured-frame-rate-720x480" range="142-494" /> + <Limit name="measured-frame-rate-1280x720" range="75-262" /> + <Limit name="measured-frame-rate-1920x1080" range="38-132" /> + <Limit name="measured-frame-rate-3840x2160" range="14-48" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.VPX" type="video/x-vnd.on2.vp8" update="true"> + <Limit name="measured-frame-rate-320x240" range="158-549" /> + <Limit name="measured-frame-rate-640x360" range="91-315" /> + <Limit name="measured-frame-rate-1280x720" range="32-112" /> + <Limit name="measured-frame-rate-1920x1080" range="23-79" /> + </MediaCodec> + <MediaCodec name="OMX.MTK.VIDEO.DECODER.VP9" type="video/x-vnd.on2.vp9" update="true"> + <Limit name="measured-frame-rate-320x240" range="87-304" /> + <Limit name="measured-frame-rate-640x360" range="92-321" /> + <Limit name="measured-frame-rate-1280x720" range="40-138" /> + <Limit name="measured-frame-rate-1920x1080" range="23-79" /> + <Limit name="measured-frame-rate-3840x2160" range="7-25" /> + </MediaCodec> + <!-- Google codec --> + <MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" update="true"> + <Limit name="measured-frame-rate-176x144" range="204-708" /> + <Limit name="measured-frame-rate-352x288" range="178-618" /> + </MediaCodec> + <MediaCodec name="OMX.google.h264.decoder" type="video/avc" update="true"> + <Limit name="measured-frame-rate-320x240" range="183-636" /> + <Limit name="measured-frame-rate-720x480" range="45-156" /> + <Limit name="measured-frame-rate-1280x720" range="28-96" /> + </MediaCodec> + <MediaCodec name="OMX.google.hevc.decoder" type="video/hevc" update="true"> + <Limit name="measured-frame-rate-352x288" range="182-634" /> + <Limit name="measured-frame-rate-720x480" range="81-282" /> + <Limit name="measured-frame-rate-1280x720" range="25-86" /> + </MediaCodec> + <MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8" update="true"> + <Limit name="measured-frame-rate-320x240" range="288-1003" /> + <Limit name="measured-frame-rate-640x360" range="103-359" /> + <Limit name="measured-frame-rate-1280x720" range="20-68" /> + <Limit name="measured-frame-rate-1920x1080" range="14-50" /> + </MediaCodec> + <MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" update="true"> + <Limit name="measured-frame-rate-320x240" range="144-502" /> + <Limit name="measured-frame-rate-640x360" range="109-378" /> + <Limit name="measured-frame-rate-1280x720" range="30-104" /> + </MediaCodec> + </Decoders> +</MediaCodecs> diff --git a/meta_init.modem.rc b/meta_init.modem.rc new file mode 100755 index 0000000..495819d --- /dev/null +++ b/meta_init.modem.rc @@ -0,0 +1,59 @@ +# 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 /data/nvram/md 0770 root system + mkdir /data/nvram/md3 0770 root system + mkdir /data/md3 0770 root system + +# Build-in Modified - S +# insmod /system/lib/modules/ccci_plat.ko +# insmod /system/lib/modules/ccci.ko +# Build-in Modified - E + chown radio radio /sys/kernel/ccci/boot + +#SeLinux + mkdir /data/ccci_cfg 0770 system radio + restorecon /data/ccci_cfg + restorecon_recursive /protect_f + restorecon_recursive /protect_s + + # Encrypt phone function + setprop vold.post_fs_data_done 1 + +service permission_check /system/bin/permission_check + user root + group system radio + oneshot + +service ccci_fsd /system/bin/ccci_fsd 0 + user radio + group radio system + oneshot + +service ccci_mdinit /system/bin/ccci_mdinit 0 + user system + group radio system + oneshot + +service ccci3_fsd /system/bin/ccci_fsd 2 + user radio + group radio system + oneshot + +service ccci3_mdinit /system/bin/ccci_mdinit 2 + user system + group radio system + oneshot + +service ccci_rpcd /system/bin/ccci_rpcd 0 + user radio + group radio system + oneshot diff --git a/meta_init.rc b/meta_init.rc new file mode 100755 index 0000000..4356f35 --- /dev/null +++ b/meta_init.rc @@ -0,0 +1,457 @@ +# 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 /init.environ.rc +import init.fon.rc +import init.aee.rc +import init.trustonic.rc +import meta_init.connectivity.rc +import meta_init.project.rc +#Make sure meta_init.modem.rc is the last rc file. +import meta_init.modem.rc +import init.microtrust.rc + +on early-init + # Set init and its forked children's oom_adj. + write /proc/1/oom_score_adj -1000 + + # Set the security context of /adb_keys if present. + restorecon /adb_keys + + start ueventd + +#INTERNAL_START + mount debugfs debugfs /sys/kernel/debug + chmod 0755 /sys/kernel/debug +#INTERNAL_END + +on init + sysclktz 0 + +loglevel 5 + write /proc/bootprof "INIT: on init start" + +# Backward compatibility + symlink /system/etc /etc + symlink /sys/kernel/debug /d + +# Right now vendor lives on the same filesystem as system, +# but someday that may change. + symlink /system/vendor /vendor + +# Temp Backward compatibility + symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/boot /dev/bootimg + symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/recovery /dev/recovery + symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/secro /dev/sec_ro + symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/kb /dev/kb + symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/dkb /dev/dkb + symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/seccfg /dev/seccfg + symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/proinfo /dev/pro_info + symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/nvram /dev/nvram + symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/para /dev/misc + symlink /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/logo /dev/logo +# Create cgroup mount point for cpu accounting + mkdir /acct + mount cgroup none /acct cpuacct + mkdir /acct/uid + + mkdir /system + mkdir /data 0771 system system + mkdir /cache 0770 system cache + mkdir /config 0500 root root + + + # Mount staging areas for devices managed by vold + # See storage config details at http://source.android.com/tech/storage/ + mkdir /mnt 0755 root system + mount tmpfs tmpfs /mnt mode=0755,uid=0,gid=1000 + restorecon_recursive /mnt + + mkdir /mnt/secure 0700 root root + mkdir /mnt/secure/asec 0700 root root + mkdir /mnt/asec 0755 root system + mkdir /mnt/obb 0755 root system + mkdir /mnt/media_rw 0750 root media_rw + mkdir /mnt/user 0755 root root + mkdir /mnt/user/0 0755 root root + mkdir /mnt/expand 0771 system system + + # Storage views to support runtime permissions + mkdir /storage 0755 root root + mkdir /mnt/runtime 0700 root root + mkdir /mnt/runtime/default 0755 root root + mkdir /mnt/runtime/default/self 0755 root root + mkdir /mnt/runtime/read 0755 root root + mkdir /mnt/runtime/read/self 0755 root root + mkdir /mnt/runtime/write 0755 root root + mkdir /mnt/runtime/write/self 0755 root root + + # Symlink to keep legacy apps working in multi-user world + symlink /storage/self/primary /sdcard + symlink /mnt/user/0/primary /mnt/runtime/default/self/primary + + write /proc/sys/kernel/panic_on_oops 1 + write /proc/sys/kernel/hung_task_timeout_secs 0 + write /proc/cpu/alignment 4 + write /proc/sys/kernel/sched_latency_ns 10000000 + write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000 + write /proc/sys/kernel/sched_compat_yield 1 + +#INTERNAL_START + mkdir /protect_f 0771 system system + mkdir /protect_s 0771 system system + symlink /sdcard /mnt/sdcard + #Create nvdata mount point + mkdir /nvdata 0771 system system + mkdir /nvcfg 0771 system system + + #Create CIP mount point + mkdir /custom + + mkdir /mnt/cd-rom 0000 system system +#INTERNAL_END +# Healthd can trigger a full boot from charger mode by signaling this +# property when the power button is held. +on property:sys.boot_from_charger_mode=1 + class_stop charger + trigger late-init + +# Load properties from /system/ + /factory after fs mount. +on load_all_props_action + load_all_props + start logd + start logd-reinit + +# Mount filesystems and start core system services. +on late-init + trigger early-fs + trigger fs + trigger post-fs + trigger post-fs-data + + # Load properties from /system/ + /factory after fs mount. Place + # this in another action so that the load will be scheduled after the prior + # issued fs triggers have completed. + trigger load_all_props_action + + trigger early-boot + trigger boot + +on fs + mkdir /dev/usb-ffs 0770 shell shell + mkdir /dev/usb-ffs/adb 0770 shell shell + mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000 + write /sys/class/android_usb/android0/f_ffs/aliases adb +#INTERNAL_START + write /proc/bootprof "INIT:Mount_START" + mount_all /fstab.mt6797 + write /proc/bootprof "INIT:Mount_END" +#INTERNAL_END + +on post-fs + start logd + # once everything is setup, no need to modify / + mount rootfs rootfs / ro remount + # Mount shared so changes propagate into child namespaces + mount rootfs rootfs / shared rec + # Mount default storage into root namespace + mount none /mnt/runtime/default /storage slave bind rec + # Support legacy paths + symlink /sdcard /storage/sdcard0 + + # We chown/chmod /cache again so because mount is run as root + defaults + chown system cache /cache + chmod 0770 /cache + # We restorecon /cache in case the cache partition has been reset. + restorecon_recursive /cache + + #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 + chown system system /protect_f + chmod 0770 /protect_f + + chown system system /protect_s + chmod 0770 /protect_s + + chown system system /nvcfg + chmod 0771 /nvcfg + restorecon_recursive /nvcfg +#INTERNAL_END + +on post-fs-data + # We chown/chmod /data again so because mount is run as root + defaults + chown system system /data + chmod 0771 /data + # We restorecon /data in case the userdata partition has been reset. + restorecon /data + # Make sure we have the device encryption key + start logd + start vold + installkey /data + + # create basic filesystem structure + #mkdir /data/nvram 2770 root system + # We chown/chmod /nvdata again so because mount is run as root + defaults + chown root system /nvdata + chmod 0771 /nvdata + symlink /nvdata /data/nvram + mkdir /nvdata/media 0771 media audio + + #Create cct mount point + mkdir /data/cct + chown root system /data/cct + chmod 0771 /data/cct + + # Set SELinux security contexts on upgrade or policy update. + restorecon_recursive /nvdata + + + mkdir /data/misc 01771 system misc + mkdir /data/misc/bluetoothd 0770 bluetooth bluetooth + mkdir /data/misc/bluetooth 0770 system system + mkdir /data/misc/keystore 0700 keystore keystore + mkdir /data/misc/keychain 0771 system system + mkdir /data/misc/vpn 0770 system vpn + mkdir /data/misc/systemkeys 0700 system system + # give system access to wpa_supplicant.conf for backup and restore + mkdir /data/misc/wifi 0770 wifi wifi + chmod 0660 /data/misc/wifi/wpa_supplicant.conf + chmod 0660 /data/misc/wifi/p2p_supplicant.conf + mkdir /data/local 0751 root root + # For security reasons, /data/local/tmp should always be empty. + # Do not place files or directories in /data/local/tmp + mkdir /data/local/tmp 0771 shell shell + mkdir /data/data 0771 system system + mkdir /data/app-private 0771 system system + mkdir /data/app-asec 0700 root root + mkdir /data/app 0771 system system + mkdir /data/property 0700 root root + mkdir /data/ssh 0750 root shell + mkdir /data/ssh/empty 0700 root root + + # create the lost+found directories, so as to enforce our permissions + mkdir /data/lost+found 0770 root root + mkdir /data/adb 0700 root root + + # double check the perms, in case lost+found already exists, and set owner + chown root root /data/lost+found + chmod 0770 /data/lost+found + + # Separate location for storing security policy files on data + mkdir /data/security 0711 system system + + # Reload policy from /data/security if present. + setprop selinux.reload_policy 1 + + # Set SELinux security contexts on upgrade or policy update. + restorecon_recursive /data + + # If there is no fs-post-data action in the init.<device>.rc file, you + # must uncomment this line, otherwise encrypted filesystems + # won't work. + # Set indication (checked by vold) that we have finished this action + # setprop vold.post_fs_data_done 1 +#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 + chmod 0660 /sys/class/rfkill/rfkill1/state + chown system system /sys/class/rfkill/rfkill1/state + # Turn off wifi by default + write /sys/class/rfkill/rfkill1/state 0 + + # 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 /system/etc/partition_permission.sh + + chmod 0666 /dev/exm0 +#INTERNAL_END + +on boot + + +# basic network init + ifup lo + hostname localhost + domainname localdomain + +#INTERNAL_START + class_start default +#INTERNAL_END + 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:sys.init_log_level=* + loglevel ${sys.init_log_level} + +on property:vold.decrypt=trigger_reset_main + class_reset main + +on property:vold.decrypt=trigger_load_persist_props + load_persist_props + start logd + start logd-reinit + +on property:vold.decrypt=trigger_post_fs_data + trigger post-fs-data + +on property:vold.decrypt=trigger_restart_min_framework + class_start main + +on property:vold.decrypt=trigger_restart_framework + start nvram_daemon + class_start main + class_start late_start + start permission_check + +on property:vold.decrypt=trigger_shutdown_framework + class_reset late_start + class_reset main + +on property:sys.powerctl=* + powerctl ${sys.powerctl} +## Daemon processes to be run by init. +## +service ueventd /sbin/ueventd + class core + critical + seclabel u:r:ueventd:s0 + +service logd /system/bin/logd + class core + socket logd stream 0666 logd logd + socket logdr seqpacket 0666 logd logd + socket logdw dgram 0222 logd logd + +service logd-reinit /system/bin/logd --reinit + oneshot + disabled + +service console /system/bin/sh + class core + console + disabled + user shell + seclabel u:r:shell:s0 + +on property:ro.debuggable=1 + start console + +# adbd is controlled via property triggers in init.<platform>.usb.rc +service adbd /sbin/adbd --root_seclabel=u:r:su:s0 + class core + socket adbd stream 660 system system + disabled + seclabel u:r:adbd:s0 + +service vold /system/bin/vold \ + --blkid_context=u:r:blkid:s0 --blkid_untrusted_context=u:r:blkid_untrusted:s0 \ + --fsck_context=u:r:fsck:s0 --fsck_untrusted_context=u:r:fsck_untrusted:s0 + class core + socket vold stream 0660 root mount + socket cryptd stream 0660 root mount + ioprio be 2 +service debuggerd /system/bin/debuggerd + class main + +service debuggerd64 /system/bin/debuggerd64 + class main + +# One shot invocation to deal with encrypted volume. +service defaultcrypto /system/bin/vdc --wait cryptfs mountdefaultencrypted + disabled + oneshot + # vold will set vold.decrypt to trigger_restart_framework (default + # encryption) or trigger_restart_min_framework (other encryption) + +# One shot invocation to encrypt unencrypted volumes +service encrypt /system/bin/vdc --wait cryptfs enablecrypto inplace default + disabled + oneshot + # vold will set vold.decrypt to trigger_restart_framework (default + # encryption) + +on property:persist.logd.logpersistd=logcatd + # all exec/services are called with umask(077), so no gain beyond 0700 + mkdir /data/misc/logd 0700 logd log + # logd for write to /data/misc/logd, log group for read from pstore (-L) + exec - logd log -- /system/bin/logcat -L -b all -v threadtime -v usec -v printable -D -f /data/misc/logd/logcat -r 64 -n 256 + start logcatd + +service logcatd /system/bin/logcat -b all -v threadtime -v usec -v printable -D -f /data/misc/logd/logcat -r 64 -n 256 + class late_start + disabled + # logd for write to /data/misc/logd, log group for read from log daemon + user logd + group log + + +#INTERNAL_START +service meta_tst /system/bin/meta_tst + +service nvram_daemon /system/bin/nvram_daemon + class main + user root + group system + oneshot + + +service mobile_log_d /system/bin/mobile_log_d + class main + + +#mass_storage,adb,acm +on property:ro.boot.usbconfig=0 + write /sys/class/android_usb/android0/iSerial $ro.serialno + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/idVendor 0e8d + write /sys/class/android_usb/android0/idProduct 2006 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions mass_storage,adb,acm + write /sys/class/android_usb/android0/enable 1 + start adbd + +#acm +on property:ro.boot.usbconfig=1 + write /sys/class/android_usb/android0/enable 0 + write /sys/class/android_usb/android0/iSerial " " + write /sys/class/android_usb/android0/idVendor 0e8d + write /sys/class/android_usb/android0/idProduct 2007 + write /sys/class/android_usb/android0/f_acm/instances 1 + write /sys/class/android_usb/android0/functions acm + write /sys/class/android_usb/android0/bDeviceClass 02 + write /sys/class/android_usb/android0/enable 1 +#INTERNAL_END diff --git a/mtk_clear_motion.cfg b/mtk_clear_motion.cfg new file mode 100755 index 0000000..4398fa8 --- /dev/null +++ b/mtk_clear_motion.cfg @@ -0,0 +1,8 @@ +FLUENCY_LEVEL 255 +MAX_WIDTH 1920 +MAX_HEIGHT 1088 +MIN_WIDTH 256 +MIN_HEIGHT 120 +MIN_FRAMERATE 12 +MAX_FRAMERATE 35 +OUTPUT_FRAMERATE 120 diff --git a/mtk_omx_core.cfg b/mtk_omx_core.cfg new file mode 100755 index 0000000..1fa2f28 --- /dev/null +++ b/mtk_omx_core.cfg @@ -0,0 +1,36 @@ +OMX.MTK.VIDEO.DECODER.HEVC video_decoder.hevc libMtkOmxVdecEx.so 16 +OMX.MTK.VIDEO.DECODER.HEVC.secure video_decoder.hevc libMtkOmxVdecEx.so 1 +OMX.MTK.VIDEO.DECODER.MPEG2 video_decoder.mpeg2 libMtkOmxVdecEx.so 16 +OMX.MTK.VIDEO.DECODER.H263 video_decoder.h263 libMtkOmxVdecEx.so 16 +OMX.MTK.VIDEO.DECODER.MPEG4 video_decoder.mpeg4 libMtkOmxVdecEx.so 16 +OMX.MTK.VIDEO.DECODER.AVC video_decoder.avc libMtkOmxVdecEx.so 16 +OMX.MTK.VIDEO.DECODER.AVC.secure video_decoder.avc libMtkOmxVdecEx.so 1 +OMX.MTK.VIDEO.DECODER.RV video_decoder.rv libMtkOmxVdecEx.so 16 +OMX.MTK.VIDEO.DECODER.VC1 video_decoder.vc1 libMtkOmxVdecEx.so 16 +OMX.MTK.VIDEO.DECODER.VPX video_decoder.vpx libMtkOmxVdecEx.so 16 +OMX.MTK.VIDEO.DECODER.VP9 video_decoder.vp9 libMtkOmxVdecEx.so 16 +OMX.MTK.VIDEO.DECODER.DIVX video_decoder.divx libMtkOmxVdecEx.so 16 +OMX.MTK.VIDEO.DECODER.DIVX3 video_decoder.divx3 libMtkOmxVdecEx.so 16 +OMX.MTK.VIDEO.DECODER.XVID video_decoder.xvid libMtkOmxVdecEx.so 16 +OMX.MTK.VIDEO.DECODER.S263 video_decoder.s263 libMtkOmxVdecEx.so 16 +OMX.MTK.AUDIO.DECODER.RA audio_decoder.ra libMtkOmxCookDec.so 32 +OMX.MTK.AUDIO.DECODER.MP3 audio_decoder.mp3 libMtkOmxMp3Dec.so 32 +OMX.MTK.AUDIO.DECODER.G711.ALAW audio_decoder.g711 libMtkOmxG711Dec.so 32 +OMX.MTK.AUDIO.DECODER.G711.MLAW audio_decoder.g711 libMtkOmxG711Dec.so 32 +OMX.MTK.AUDIO.DECODER.WMAPRO audio_decoder.wma libMtkOmxWmaProDec.so 32 +OMX.MTK.AUDIO.DECODER.WMA audio_decoder.wma libMtkOmxWmaDec.so 32 +OMX.MTK.VIDEO.ENCODER.AVC video_encoder.avc libMtkOmxVenc.so 16 +OMX.MTK.VIDEO.ENCODER.HEVC video_encoder.hevc libMtkOmxVenc.so 16 +OMX.MTK.VIDEO.ENCODER.H263 video_encoder.h263 libMtkOmxVenc.so 16 +OMX.MTK.VIDEO.ENCODER.MPEG4 video_encoder.mpeg4 libMtkOmxVenc.so 16 +OMX.MTK.VIDEO.ENCODER.VPX video_encoder.vp8 libMtkOmxVenc.so 16 +OMX.MTK.AUDIO.ENCODER.VORBIS audio_encoder.vorbis libMtkOmxVorbisEnc.so 32 +OMX.MTK.AUDIO.DECODER.APE audio_decoder.ape libMtkOmxApeDec.so 32 +OMX.MTK.AUDIO.DECODER.FLAC audio_decoder.flac libMtkOmxFlacDec.so 32 +OMX.MTK.AUDIO.DECODER.ADPCM.MS audio_decoder.adpcm libMtkOmxAdpcmDec.so 32 +OMX.MTK.AUDIO.DECODER.ADPCM.DVI audio_decoder.adpcm libMtkOmxAdpcmDec.so 32 +OMX.MTK.AUDIO.ENCODER.ADPCM.MS audio_encoder.adpcm libMtkOmxAdpcmEnc.so 32 +OMX.MTK.AUDIO.ENCODER.ADPCM.DVI audio_encoder.adpcm libMtkOmxAdpcmEnc.so 32 +OMX.MTK.AUDIO.DECODER.RAW audio_decoder.raw libMtkOmxRawDec.so 32 +OMX.MTK.AUDIO.DECODER.GSM audio_decoder.gsm libMtkOmxGsmDec.so 32 +OMX.MTK.AUDIO.DECODER.ALAC audio_decoder.alac libMtkOmxAlacDec.so 32 diff --git a/partition_permission.sh b/partition_permission.sh new file mode 100755 index 0000000..3add273 --- /dev/null +++ b/partition_permission.sh @@ -0,0 +1,22 @@ +#!/system/bin/sh + +#change partition permission +/system/bin/chown root:system /mtd@preloader +/system/bin/chmod 0640 /mtd@preloader +/system/bin/chown root:system /mtd@pro_info +/system/bin/chmod 0660 /mtd@pro_info +/system/bin/chown root:system /mtd@bootimg +/system/bin/chmod 0640 /mtd@bootimg +/system/bin/chown root:system /mtd@recovery +/system/bin/chmod 0640 /mtd@recovery +/system/bin/chown root:system /mtd@sec_ro +/system/bin/chmod 0640 /mtd@sec_ro + +/system/bin/chown root:system /mtd@nvram +/system/bin/chmod 0660 /mtd@nvram +/system/bin/chown root:system /mtd@seccfg +/system/bin/chmod 0660 /mtd@seccfg +/system/bin/chown root:system /mtd@misc +/system/bin/chmod 0660 /mtd@misc + + diff --git a/recovery_emmc.fstab b/recovery_emmc.fstab new file mode 100755 index 0000000..dca6141 --- /dev/null +++ b/recovery_emmc.fstab @@ -0,0 +1,8 @@ +boot /boot emmc defaults defaults +/dev/block/mmcblk0p2 /cache ext4 defaults defaults +/dev/block/mmcblk0p3 /data ext4 defaults defaults +misc /misc emmc defaults defaults +recovery /recovery emmc defaults defaults +/dev/block/mmcblk0p4 /sdcard vfat defaults defaults +/dev/block/mmcblk0p6 /system ext4 defaults defaults +/dev/block/mmcblk0p12 /custom ext4 defaults defaults diff --git a/recovery_ubifs.fstab b/recovery_ubifs.fstab new file mode 100755 index 0000000..485ed28 --- /dev/null +++ b/recovery_ubifs.fstab @@ -0,0 +1,8 @@ +boot /boot mtd defaults defaults +cache /cache ubifs defaults defaults +userdata /data ubifs defaults defaults +misc /misc mtd defaults defaults +recovery /recovery mtd defaults defaults +/dev/block/mmcblk0p1 /sdcard vfat defaults defaults +system /system ubifs defaults defaults + diff --git a/recovery_yaffs2.fstab b/recovery_yaffs2.fstab new file mode 100755 index 0000000..833d1a9 --- /dev/null +++ b/recovery_yaffs2.fstab @@ -0,0 +1,8 @@ +boot /boot mtd defaults defaults +cache /cache yaffs2 defaults defaults +userdata /data yaffs2 defaults defaults +misc /misc mtd defaults defaults +recovery /recovery mtd defaults defaults +/dev/block/mmcblk0p1 /sdcard vfat defaults defaults +system /system yaffs2 defaults defaults + diff --git a/sepolicy/device.te b/sepolicy/device.te new file mode 100755 index 0000000..b79409f --- /dev/null +++ b/sepolicy/device.te @@ -0,0 +1,5 @@ +# ============================================== +# MTK Policy Rule +# ============================================== + +type gps_emi_device, dev_type; diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts new file mode 100755 index 0000000..77156d6 --- /dev/null +++ b/sepolicy/file_contexts @@ -0,0 +1,33 @@ +######################################### +# Platform dependent label definitions +# + +# define raw block partition label +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/proinfo u:object_r:nvram_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/nvram u:object_r:nvram_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/nvdata u:object_r:nvdata_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/frp u:object_r:frp_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/expdb u:object_r:expdb_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/misc2 u:object_r:misc2_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/logo u:object_r:logo_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/para u:object_r:para_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/tee1 u:object_r:tee_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/tee2 u:object_r:tee_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/seccfg u:object_r:seccfg_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/userdata u:object_r:userdata_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/cache u:object_r:cache_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/recovery u:object_r:recovery_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/protect1 u:object_r:protect1_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/protect2 u:object_r:protect2_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/keystore u:object_r:keystore_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/oemkeystore u:object_r:oemkeystore_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/boot u:object_r:boot_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/persist u:object_r:persist_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/system u:object_r:system_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/nvcfg u:object_r:nvcfg_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/md1img u:object_r:md_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/md1dsp u:object_r:dsp_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/md1arm7 u:object_r:md_block_device:s0 +/dev/block/platform/mtk-msdc\.0/[0-9]+\.msdc0/by-name/md3img u:object_r:md_block_device:s0 + +/dev/gps_emi(/.*)? u:object_r:gps_emi_device:s0
\ No newline at end of file diff --git a/sepolicy/mnld.te b/sepolicy/mnld.te new file mode 100755 index 0000000..7662b9a --- /dev/null +++ b/sepolicy/mnld.te @@ -0,0 +1,5 @@ +# add for gps emi download platform + +allow mnld gps_emi_device:chr_file rw_file_perms; +allow mnld storage_file:lnk_file read; +allow mnld mnt_user_file:dir search;
\ No newline at end of file diff --git a/sepolicy/system_server.te b/sepolicy/system_server.te new file mode 100755 index 0000000..ec0d2bd --- /dev/null +++ b/sepolicy/system_server.te @@ -0,0 +1,8 @@ +# ============================================== +# MTK Policy Rule +# ============ + +# Date : WK15.45 +# Operation : Migration +# Purpose : for debug +allow system_server gps_data_file:dir search;
\ No newline at end of file diff --git a/thermal.conf b/thermal.conf new file mode 100755 index 0000000..c6e6fb3 --- /dev/null +++ b/thermal.conf @@ -0,0 +1,110 @@ +/qtrg4s slopnhv4s s"sdrx1x$zz!t + !" +/qtrg4s slopnhv4iw"haecsxn!lg9 +EYKW$;678) +/qtrg4s slopnhv4iw"haecsxn!lg: +mumwwFV'>?012#I]O[(>012# +/qtrg4s slopnhv4s s"sqolg2y% su + !" +/qtrg4s slopnhv4s s"sccwxjx%5!yttvx + !" +/qtrg4s slopnhv4s s6cm/eghz7: +mumwwFV'<A012#I]O[(B9:" +/qtrg4s slopnhv4s s6cm/eghz79 +mumwwFV'<A012#I]O[(B9:" +/qtrg4s slopnhv4s s6cm/eghz78 +mumwwFV'<A012#I]O[(B9:" +/qtrg4s slopnhv4s s6cm/vlzzkw%n13 + !" +/qtrg4s slopnhv4s s"setdq2y% su + !" +/qtrg4s slopnhv4s s"sxow1x$zz!t + !" +/qtrg4s slopnhv4s s"sqc0w#yy " + !" +/qtrg4s slopnhv4s s6cm/fer67 +mumwwgg !nrz"76567(NXJV#9567( +/qtrg4s slopnhv4giklt +EYKW$>?@() +/qtrg4s slopnhv4zzlj93371x$zz!t + !" +/qtrg4s slopnhv4s s6cm/vlzzkw%n14 + !" +/qtrg4s slopnhv4s s6cm/phtlm +EYKW$8678) +/qtrg4s slopnhv4s s6cm/qsNSZ +EYKW$7678) +/qtrg4s slopnhv4s s6cm/dhu3t""t +EYKW$7678) +/qtrg4s slopnhv4s s6cm/nwm lxwo23 + !" +/qtrg4s slopnhv4s s6cm/nwm lxwo24 + !" +/qtrg4s slopnhv4s s6cm/nwm lxwo25 + !" +/qtrg4jyq$es1wljxtiu/u!exxewi an +PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"3$%&'() +/qtrg4jyq$es1wljxtiu/u!exxvhgyascp +PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"4$%&'() +/qtrg4jyq$es1wljxtiu/dneghz +0!784%9<8)162#$%&'() !"#$ +/qtrg4jyq$es1wljxtiu/dndxrezm"tjpj +0!5345&88)16"4$:<7(9 483$5&'() !" +/qtrg4jyq$es1wljxtiu/dndxrezm"tjpj +1!4345&8=)31"4$7<7(;012#6;6'<90!"#$%&' +/qtrg4jyq$es1wljxtiu/dnpyyz +0!634%778)112#656'990!8345&889 37845&'() !" +/qtrg4jyq$es1wljxtiu/dnfxr +2!:8456'=A012#8=678)51234%=<890!75456'?<3123$69<89 74:456'9:512#956'=90!36956'( +/qtrg4jyq$es1wljxtiu/dndfhi +58234%7789 323456'=)3123$5&'() !"#$% +/qtrg4jyq$es1wljxtiu/dnitxesm$em +4!83$86':9 27#$%&'() !"# +/qtrg4jyq$es1wljxtiu/u!ftz +3!344567(9 nvnxxiw"6szuuwy&<@901"3$hv!gjdbrwm kf8)58234%6'kyu`cgeuzp#n_2"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 52#5 +/qtrg4jyq$es1wljxtiu/u!sqni +1!379567(9 nvnxxvtql-t vvxz'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#5567( +/qtrg4jyq$es1wljxtiu/u!eeyzlz' +4!83456'8)mumwwgg !nrz/v"xxz!)49234%6'u"k.eo1gij!92!6:456'8)mum0gq3iklt13#8;678)0!owo2is5kcdv34%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)1123$ +/qtrg4jyq$es1wljxtiu/u!se +1!354567(9 nvn1hr4 quufr s68(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$7678) +/qtrg4jyq$es1wljxtiu/u!gvfs +1!434567(9 nvnxxjyiv-t vvxz'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4% +/qtrg4jyq$es1wljxtiu/u!zqy +1!354567(9 nvnxx"t!6szuuwy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"8456' +/qtrg4jyq$es1wljxtiu/u!exx +3!334567(9 nvnxxvh5!yttvx%<9890!2#qyq4ku-dcp45&<>901"3$fhjk" 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(:012# +/qtrg4jyq$es1wljxtiu/u!ge>88< +1!434567(9 uuge>88<6szuuwy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"4456' +/qtrg4jyq$es1wljxtiu/u!exxvh +4!354567(9 nvn1hr4 quufr s69(:11234%6'u"k.eo1rjvno 223456'8)mum0gq3uwRMT"8;567(9 nvn1hr4imp.oxxy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 2234% +/qtrg4jyq$es1wljxtiu/u!ww6 +1!384567(9 nvn1hr4s!hvvgs!t78)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789 +/qtrg4jyq$es1wljxtiu/u!ww7 +1!384567(9 nvn1hr4s!hvvgs!t79)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789 +/qtrg4jyq$es1wljxtiu/u!ww9 +1!384567(9 nvn1hr4s!hvvgs!t7:)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789 +/qtrg4s s"z0owoyyjx# +mbaois&8() !"#$%& +/qtrg4s s"z0owoyywurc +mbaois&;() !"#$%&'() +/qtrg4s s"z0owoyyii"tft! +mbaois&;() !"#$%&'() +/qtrg4s s"z0owoyywi +mbaois&8() !"#$%&'() !"# +/qtrg4s s"z0owoyy#u" +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyyHX +mbaois&8() !"#$%&'() +/qtrg4s s"z0vvhf?99= +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyyi!!merd +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyy8 +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyy9 +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyy; +mbaois&8() !"#$%&'() +EPH +
diff --git a/thermal.eng.conf b/thermal.eng.conf new file mode 100755 index 0000000..f9049ce --- /dev/null +++ b/thermal.eng.conf @@ -0,0 +1,110 @@ +/qtrg4s slopnhv4s s"sdrx1x$zz!t + !" +/qtrg4s slopnhv4iw"haecsxn!lg9 +EYKW$;678) +/qtrg4s slopnhv4iw"haecsxn!lg: +mumwwFV'>?012#I]O[(>012# +/qtrg4s slopnhv4s s"sqolg2y% su + !" +/qtrg4s slopnhv4s s"sccwxjx%5!yttvx + !" +/qtrg4s slopnhv4s s6cm/eghz7: +mumwwFV'<A012#I]O[(B9:" +/qtrg4s slopnhv4s s6cm/eghz79 +mumwwFV'<A012#I]O[(B9:" +/qtrg4s slopnhv4s s6cm/eghz78 +mumwwFV'<A012#I]O[(B9:" +/qtrg4s slopnhv4s s6cm/vlzzkw%n13 + !" +/qtrg4s slopnhv4s s"setdq2y% su + !" +/qtrg4s slopnhv4s s"sxow1x$zz!t + !" +/qtrg4s slopnhv4s s"sqc0w#yy " + !" +/qtrg4s slopnhv4s s6cm/fer67 +mumwwgg !nrz"76567(NXJV#9567( +/qtrg4s slopnhv4giklt +EYKW$>?@() +/qtrg4s slopnhv4zzlj93371x$zz!t + !" +/qtrg4s slopnhv4s s6cm/vlzzkw%n14 + !" +/qtrg4s slopnhv4s s6cm/phtlm +EYKW$8678) +/qtrg4s slopnhv4s s6cm/qsNSZ +EYKW$7678) +/qtrg4s slopnhv4s s6cm/dhu3t""t +EYKW$7678) +/qtrg4s slopnhv4s s6cm/nwm lxwo23 + !" +/qtrg4s slopnhv4s s6cm/nwm lxwo24 + !" +/qtrg4s slopnhv4s s6cm/nwm lxwo25 + !" +/qtrg4jyq$es1wljxtiu/u!exxewi an +PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"3$%&'() +/qtrg4jyq$es1wljxtiu/u!exxvhgyascp +PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"4$%&'() +/qtrg4jyq$es1wljxtiu/dneghz +0!784%9<8)162#$%&'() !"#$ +/qtrg4jyq$es1wljxtiu/dndxrezm"tjpj +0!5345&88)16"4$<;<(9 483$5&'() !" +/qtrg4jyq$es1wljxtiu/dndxrezm"tjpj +1!4345&8=)31"4$7<7(;012#6;6'<90!"#$%&' +/qtrg4jyq$es1wljxtiu/dnpyyz +0!634%778)112#656'990!8345&889 37845&'() !" +/qtrg4jyq$es1wljxtiu/dnfxr +2!:8456'=A012#8=678)51234%=<890!75456'?<3123$69<89 74:456'9:512#956'=90!36956'( +/qtrg4jyq$es1wljxtiu/dndfhi +58234%7789 323456'=)3123$5&'() !"#$% +/qtrg4jyq$es1wljxtiu/dnitxesm$em +4!83$86':9 27#$%&'() !"# +/qtrg4jyq$es1wljxtiu/u!ftz +3!344567(9 nvnxxiw"6szuuwy&<@901"3$hv!gjdbrwm kf8)58234%6'kyu`cgeuzp#n_2"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 52#5 +/qtrg4jyq$es1wljxtiu/u!sqni +1!379567(9 nvnxxvtql-t vvxz'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#5567( +/qtrg4jyq$es1wljxtiu/u!eeyzlz' +4!83456'8)mumwwgg !nrz/v"xxz!)49234%6'u"k.eo1gij!92!6:456'8)mum0gq3iklt13#8;678)0!owo2is5kcdv34%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)1123$ +/qtrg4jyq$es1wljxtiu/u!se +1!354567(9 nvn1hr4 quufr s68(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$7678) +/qtrg4jyq$es1wljxtiu/u!gvfs +1!434567(9 nvnxxjyiv-t vvxz'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4% +/qtrg4jyq$es1wljxtiu/u!zqy +1!354567(9 nvnxx"t!6szuuwy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"8456' +/qtrg4jyq$es1wljxtiu/u!exx +3!334567(9 nvnxxvh5!yttvx%<9890!2#qyq4ku-dcp45&<>901"3$fhjk" 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(:012# +/qtrg4jyq$es1wljxtiu/u!ge>88< +1!434567(9 uuge>88<6szuuwy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"4456' +/qtrg4jyq$es1wljxtiu/u!exxvh +4!354567(9 nvn1hr4 quufr s69(:11234%6'u"k.eo1rjvno 223456'8)mum0gq3uwRMT"8;567(9 nvn1hr4imp.oxxy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 2234% +/qtrg4jyq$es1wljxtiu/u!ww6 +1!384567(9 nvn1hr4s!hvvgs!t78)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789 +/qtrg4jyq$es1wljxtiu/u!ww7 +1!384567(9 nvn1hr4s!hvvgs!t79)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789 +/qtrg4jyq$es1wljxtiu/u!ww9 +1!384567(9 nvn1hr4s!hvvgs!t7:)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789 +/qtrg4s s"z0owoyyjx# +mbaois&8() !"#$%& +/qtrg4s s"z0owoyywurc +mbaois&;() !"#$%&'() +/qtrg4s s"z0owoyyii"tft! +mbaois&;() !"#$%&'() +/qtrg4s s"z0owoyywi +mbaois&8() !"#$%&'() !"# +/qtrg4s s"z0owoyy#u" +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyyHX +mbaois&8() !"#$%&'() +/qtrg4s s"z0vvhf?99= +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyyi!!merd +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyy8 +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyy9 +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyy; +mbaois&8() !"#$%&'() +EPH +
diff --git a/thermal.fdvrgis.6797.conf b/thermal.fdvrgis.6797.conf new file mode 100755 index 0000000..05e8cb3 --- /dev/null +++ b/thermal.fdvrgis.6797.conf @@ -0,0 +1,110 @@ +/qtrg4s slopnhv4s s"sdrx1x$zz!t + !" +/qtrg4s slopnhv4iw"haecsxn!lg9 +EYKW$;678) +/qtrg4s slopnhv4iw"haecsxn!lg: +mumwwFV'>?012#I]O[(>012# +/qtrg4s slopnhv4s s"sqolg2y% su + !" +/qtrg4s slopnhv4s s"sccwxjx%5!yttvx + !" +/qtrg4s slopnhv4s s6cm/eghz7: +mumwwFV'<A012#I]O[(B9:" +/qtrg4s slopnhv4s s6cm/eghz79 +mumwwFV'<A012#I]O[(B9:" +/qtrg4s slopnhv4s s6cm/eghz78 +mumwwFV'<A012#I]O[(B9:" +/qtrg4s slopnhv4s s6cm/vlzzkw%n13 + !" +/qtrg4s slopnhv4s s"setdq2y% su + !" +/qtrg4s slopnhv4s s"sxow1x$zz!t + !" +/qtrg4s slopnhv4s s"sqc0w#yy " + !" +/qtrg4s slopnhv4s s6cm/fer67 +EYKW$:678) +/qtrg4s slopnhv4giklt +EYKW$>?@() +/qtrg4s slopnhv4zzlj93371x$zz!t + !" +/qtrg4s slopnhv4s s6cm/vlzzkw%n14 + !" +/qtrg4s slopnhv4s s6cm/phtlm +EYKW$8678) +/qtrg4s slopnhv4s s6cm/qsNSZ +EYKW$7678) +/qtrg4s slopnhv4s s6cm/dhu3t""t +EYKW$7678) +/qtrg4s slopnhv4s s6cm/nwm lxwo23 + !" +/qtrg4s slopnhv4s s6cm/nwm lxwo24 + !" +/qtrg4s slopnhv4s s6cm/nwm lxwo25 + !" +/qtrg4jyq$es1wljxtiu/u!exxewi an +PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"3$%&'() +/qtrg4jyq$es1wljxtiu/u!exxvhgyascp +PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"4$%&'() +/qtrg4jyq$es1wljxtiu/dneghz +0!784%9<8)162#$%&'() !"#$ +/qtrg4jyq$es1wljxtiu/dndxrezm"tjpj +0!5345&88)16"4$:<7(9 483$5&'() !" +/qtrg4jyq$es1wljxtiu/dndxrezm"tjpj +1!4345&8=)31"4$7<7(;012#6;6'<90!"#$%&' +/qtrg4jyq$es1wljxtiu/dnpyyz +0!634%778)112#656'990!8345&889 37845&'() !" +/qtrg4jyq$es1wljxtiu/dnfxr +2!:8456'=A012#8=678)51234%=<890!75456'?<3123$69<89 74:456'9:512#956'=90!36956'( +/qtrg4jyq$es1wljxtiu/dndfhi +53234%7789 323456'=)3123$5&'() !"#$% +/qtrg4jyq$es1wljxtiu/dnitxesm$em +4!83$86':9 27#$%&'() !"# +/qtrg4jyq$es1wljxtiu/u!ftz +3!344567(9 nvnxxiw"6szuuwy&<@901"3$hv!gjdbrwm kf8)58234%6'kyu`cgeuzp#n_2"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 52#5 +/qtrg4jyq$es1wljxtiu/u!sqni +1!379567(9 nvnxxvtql-t vvxz'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#5567( +/qtrg4jyq$es1wljxtiu/u!eeyzlz' +4!83456'8)mumwwgg !nrz/v"xxz!)49234%6'u"k.eo1gij!92!6:456'8)mum0gq3iklt13#8;678)0!owo2is5kcdv34%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)1123$ +/qtrg4jyq$es1wljxtiu/u!se +1!354567(9 nvn1hr4 quufr s68(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$7678) +/qtrg4jyq$es1wljxtiu/u!gvfs +1!434567(9 nvnxxjyiv-t vvxz'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4% +/qtrg4jyq$es1wljxtiu/u!zqy +1!354567(9 nvnxx"t!6szuuwy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"8456' +/qtrg4jyq$es1wljxtiu/u!exx +3!334567(9 nvnxxvh5!yttvx%;@890!2#qyq4ku-dcp45&<9901"3$fhjk" 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(:012# +/qtrg4jyq$es1wljxtiu/u!ge>88< +1!434567(9 uuge>88<6szuuwy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"4456' +/qtrg4jyq$es1wljxtiu/u!exxvh +4!354567(9 nvn1hr4 quufr s69(:11234%6'u"k.eo1rjvno 223456'8)mum0gq3uwRMT"8;567(9 nvn1hr4imp.oxxy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 2234% +/qtrg4jyq$es1wljxtiu/u!ww6 +1!384567(9 nvn1hr4s!hvvgs!t78)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789 +/qtrg4jyq$es1wljxtiu/u!ww7 +1!384567(9 nvn1hr4s!hvvgs!t79)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789 +/qtrg4jyq$es1wljxtiu/u!ww9 +1!384567(9 nvn1hr4s!hvvgs!t7:)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789 +/qtrg4s s"z0owoyyjx# +mbaois&8() !"#$%& +/qtrg4s s"z0owoyywurc +mbaois&;() !"#$%&'() +/qtrg4s s"z0owoyyii"tft! +mbaois&;() !"#$%&'() +/qtrg4s s"z0owoyywi +mbaois&8() !"#$%&'() !"# +/qtrg4s s"z0owoyy#u" +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyyHX +mbaois&8() !"#$%&'() +/qtrg4s s"z0vvhf?99= +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyyi!!merd +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyy8 +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyy9 +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyy; +mbaois&8() !"#$%&'() +EPH +
diff --git a/thermal.off.conf b/thermal.off.conf new file mode 100755 index 0000000..22b1d5d --- /dev/null +++ b/thermal.off.conf @@ -0,0 +1,74 @@ +/qtrg4s slopnhv4s s"sdrx1x$zz!t + !" +/qtrg4s slopnhv4s s6cm/vlzzkw%n12 + !" +/qtrg4s slopnhv4iw"haecsxn!lg9 +EYKW$6;789 ! +/qtrg4s slopnhv4s s"sqolg2y% su + !" +/qtrg4s slopnhv4s s"sccwxjx%5!yttvx + !" +/qtrg4s slopnhv4s s"sqc0w#yy " + !" +/qtrg4s slopnhv4s s"setdq2y% su + !" +/qtrg4s slopnhv4s s"sxow1x$zz!t + !" +/qtrg4s slopnhv4s s6cm/vlzzkw%n13 + !" +/qtrg4s slopnhv4s s6cm/vlzzkw%n14 + !" +/qtrg4s slopnhv4s s6cm/eehqsqphu24 + !" +/qtrg4jyq$es1wljxtiu/u!exxewi an +PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"3$%&'() +/qtrg4jyq$es1wljxtiu/u!exxvhgyascp +PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"4$%&'() +/qtrg4jyq$es1wljxtiu/dndxrezm"tjpj +0!4845&88)16"44%<78)3123$:;7(:612#$%&'() +/qtrg4jyq$es1wljxtiu/dnpyyz +0!634%778)112#656'990!8345&889 37845&'() !" +/qtrg4jyq$es1wljxtiu/dnfxr +0!:8456'>@012#8:678)49234%=<890!84456';>5123$;678)29735;&;>?7!48$7;'99012#$ +/qtrg4jyq$es1wljxtiu/u!ftz +3!34;567(9 nvnxxiw"6szuuwy&88>012#4%s s6cm/vlzzkw%n12#<:678)0!esydgkiytjxhc5&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$767(: +/qtrg4jyq$es1wljxtiu/u!sqni +1!379567(9 nvnxxvtql-t vvxz'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#5567( +/qtrg4jyq$es1wljxtiu/u!eeyzlz' +1!83456'8)mumwwgg !nrz/v"xxz!)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789 +/qtrg4jyq$es1wljxtiu/u!se +1!354567(9 nvnxxvh5!yttvx%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!3345& +/qtrg4jyq$es1wljxtiu/u!gvfs +1!434567(9 nvnxxjyiv-t vvxz'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4% +/qtrg4jyq$es1wljxtiu/u!zqy +1!354567(9 nvnxx"t!6szuuwy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"4456' +/qtrg4jyq$es1wljxtiu/u!exx +1!;3456'8)mum0gq3zp#teqzr57'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#5567( +/qtrg4jyq$es1wljxtiu/u!ge>88< +1!434567(9 nvn1hr4 quufr s69(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$6678) +/qtrg4jyq$es1wljxtiu/u!exxvh +1!434567(9 nvn1hr4jjclnlkmz79)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789 +/qtrg4jyq$es1wljxtiu/u!ww6 +0!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2# +/qtrg4jyq$es1wljxtiu/u!ww7 +0!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2# +/qtrg4jyq$es1wljxtiu/u!ww9 +0!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2# +/qtrg4s s"z0owoyyjx# +mbaois&8() !"#$%& +/qtrg4s s"z0owoyywurc +mbaois&;() !"#$%&'() +/qtrg4s s"z0owoyyii"tft! +mbaois&;() !"#$%&'() +/qtrg4s s"z0owoyywi +mbaois&8() !"#$%&'() !"# +/qtrg4s s"z0owoyy#u" +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyyHX +mbaois&;() !"#$%&'() +/qtrg4s s"z0vvhf?99= +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyyi!!merd +mbaois&8() !"#$%&'() +EPH +
diff --git a/thermal.pip.6797.conf b/thermal.pip.6797.conf new file mode 100755 index 0000000..abedd50 --- /dev/null +++ b/thermal.pip.6797.conf @@ -0,0 +1,110 @@ +/qtrg4s slopnhv4s s"sdrx1x$zz!t + !" +/qtrg4s slopnhv4iw"haecsxn!lg9 +EYKW$;678) +/qtrg4s slopnhv4iw"haecsxn!lg: +mumwwFV'>?012#I]O[(>012# +/qtrg4s slopnhv4s s"sqolg2y% su + !" +/qtrg4s slopnhv4s s"sccwxjx%5!yttvx + !" +/qtrg4s slopnhv4s s6cm/eghz7: +mumwwFV'<A012#I]O[(B9:" +/qtrg4s slopnhv4s s6cm/eghz79 +mumwwFV'<A012#I]O[(B9:" +/qtrg4s slopnhv4s s6cm/eghz78 +mumwwFV'<A012#I]O[(B9:" +/qtrg4s slopnhv4s s6cm/vlzzkw%n13 + !" +/qtrg4s slopnhv4s s"setdq2y% su + !" +/qtrg4s slopnhv4s s"sxow1x$zz!t + !" +/qtrg4s slopnhv4s s"sqc0w#yy " + !" +/qtrg4s slopnhv4s s6cm/fer67 +EYKW$:678) +/qtrg4s slopnhv4giklt +EYKW$>?@() +/qtrg4s slopnhv4zzlj93371x$zz!t + !" +/qtrg4s slopnhv4s s6cm/vlzzkw%n14 + !" +/qtrg4s slopnhv4s s6cm/phtlm +EYKW$8678) +/qtrg4s slopnhv4s s6cm/qsNSZ +EYKW$7678) +/qtrg4s slopnhv4s s6cm/dhu3t""t +EYKW$7678) +/qtrg4s slopnhv4s s6cm/nwm lxwo23 + !" +/qtrg4s slopnhv4s s6cm/nwm lxwo24 + !" +/qtrg4s slopnhv4s s6cm/nwm lxwo25 + !" +/qtrg4jyq$es1wljxtiu/u!exxewi an +PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"3$%&'() +/qtrg4jyq$es1wljxtiu/u!exxvhgyascp +PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"4$%&'() +/qtrg4jyq$es1wljxtiu/dneghz +0!784%9<8)162#$%&'() !"#$ +/qtrg4jyq$es1wljxtiu/dndxrezm"tjpj +0!5345&88)16"4$6778)0!594%6'() !"# +/qtrg4jyq$es1wljxtiu/dndxrezm"tjpj +1!4345&8=)31"4$7<7(;012#6;6'<90!"#$%&' +/qtrg4jyq$es1wljxtiu/dnpyyz +0!634%778)112#656'990!8345&889 37845&'() !" +/qtrg4jyq$es1wljxtiu/dnfxr +2!:8456'=A012#8=678)51234%=<890!75456'?<3123$69<89 74:456'9:512#956'=90!36956'( +/qtrg4jyq$es1wljxtiu/dndfhi +53234%7789 323456'=)3123$5&'() !"#$% +/qtrg4jyq$es1wljxtiu/dnitxesm$em +4!83$86':9 27#$%&'() !"# +/qtrg4jyq$es1wljxtiu/u!ftz +3!344567(9 nvnxxiw"6szuuwy&<@901"3$hv!gjdbrwm kf8)58234%6'kyu`cgeuzp#n_2"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 52#5 +/qtrg4jyq$es1wljxtiu/u!sqni +1!379567(9 nvnxxvtql-t vvxz'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#5567( +/qtrg4jyq$es1wljxtiu/u!eeyzlz' +4!83456'8)mumwwgg !nrz/v"xxz!)49234%6'u"k.eo1gij!92!6:456'8)mum0gq3iklt13#8;678)0!owo2is5kcdv34%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)1123$ +/qtrg4jyq$es1wljxtiu/u!se +1!354567(9 nvn1hr4 quufr s68(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$7678) +/qtrg4jyq$es1wljxtiu/u!gvfs +1!434567(9 nvnxxjyiv-t vvxz'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4% +/qtrg4jyq$es1wljxtiu/u!zqy +1!354567(9 nvnxx"t!6szuuwy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"8456' +/qtrg4jyq$es1wljxtiu/u!exx +3!334567(9 nvnxxvh5!yttvx%;@890!2#qyq4ku-dcp45&<9901"3$fhjk" 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(:012# +/qtrg4jyq$es1wljxtiu/u!ge>88< +1!434567(9 uuge>88<6szuuwy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"4456' +/qtrg4jyq$es1wljxtiu/u!exxvh +4!354567(9 nvn1hr4 quufr s69(:11234%6'u"k.eo1rjvno 223456'8)mum0gq3uwRMT"8;567(9 nvn1hr4imp.oxxy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 2234% +/qtrg4jyq$es1wljxtiu/u!ww6 +1!384567(9 nvn1hr4s!hvvgs!t78)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789 +/qtrg4jyq$es1wljxtiu/u!ww7 +1!384567(9 nvn1hr4s!hvvgs!t79)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789 +/qtrg4jyq$es1wljxtiu/u!ww9 +1!384567(9 nvn1hr4s!hvvgs!t7:)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789 +/qtrg4s s"z0owoyyjx# +mbaois&8() !"#$%& +/qtrg4s s"z0owoyywurc +mbaois&;() !"#$%&'() +/qtrg4s s"z0owoyyii"tft! +mbaois&;() !"#$%&'() +/qtrg4s s"z0owoyywi +mbaois&8() !"#$%&'() !"# +/qtrg4s s"z0owoyy#u" +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyyHX +mbaois&8() !"#$%&'() +/qtrg4s s"z0vvhf?99= +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyyi!!merd +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyy8 +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyy9 +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyy; +mbaois&8() !"#$%&'() +EPH +
diff --git a/thermal.wfd.6797.conf b/thermal.wfd.6797.conf new file mode 100755 index 0000000..1e43046 --- /dev/null +++ b/thermal.wfd.6797.conf @@ -0,0 +1,110 @@ +/qtrg4s slopnhv4s s"sdrx1x$zz!t + !" +/qtrg4s slopnhv4iw"haecsxn!lg9 +EYKW$;678) +/qtrg4s slopnhv4iw"haecsxn!lg: +mumwwFV'>?012#I]O[(>012# +/qtrg4s slopnhv4s s"sqolg2y% su + !" +/qtrg4s slopnhv4s s"sccwxjx%5!yttvx + !" +/qtrg4s slopnhv4s s6cm/eghz7: +mumwwFV'<A012#I]O[(B9:" +/qtrg4s slopnhv4s s6cm/eghz79 +mumwwFV'<A012#I]O[(B9:" +/qtrg4s slopnhv4s s6cm/eghz78 +mumwwFV'<A012#I]O[(B9:" +/qtrg4s slopnhv4s s6cm/vlzzkw%n13 + !" +/qtrg4s slopnhv4s s"setdq2y% su + !" +/qtrg4s slopnhv4s s"sxow1x$zz!t + !" +/qtrg4s slopnhv4s s"sqc0w#yy " + !" +/qtrg4s slopnhv4s s6cm/fer67 +EYKW$:678) +/qtrg4s slopnhv4giklt +EYKW$>?@() +/qtrg4s slopnhv4zzlj93371x$zz!t + !" +/qtrg4s slopnhv4s s6cm/vlzzkw%n14 + !" +/qtrg4s slopnhv4s s6cm/phtlm +EYKW$8678) +/qtrg4s slopnhv4s s6cm/qsNSZ +EYKW$7678) +/qtrg4s slopnhv4s s6cm/dhu3t""t +EYKW$7678) +/qtrg4s slopnhv4s s6cm/nwm lxwo23 + !" +/qtrg4s slopnhv4s s6cm/nwm lxwo24 + !" +/qtrg4s slopnhv4s s6cm/nwm lxwo25 + !" +/qtrg4jyq$es1wljxtiu/u!exxewi an +PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"3$%&'() +/qtrg4jyq$es1wljxtiu/u!exxvhgyascp +PVRbV%9@8901"SYUe]WUT!3;45&V^NR`EUMYOJIU_M"76:7789 OVFcYGITN 7"4$%&'() +/qtrg4jyq$es1wljxtiu/dneghz +0!784%9<8)162#$%&'() !"#$ +/qtrg4jyq$es1wljxtiu/dndxrezm"tjpj +0!5345&88)16"4$>67(9 483$5&'() !" +/qtrg4jyq$es1wljxtiu/dndxrezm"tjpj +1!4345&8=)31"4$7<7(;012#6;6'<90!"#$%&' +/qtrg4jyq$es1wljxtiu/dnpyyz +0!634%778)112#656'990!8345&889 37845&'() !" +/qtrg4jyq$es1wljxtiu/dnfxr +2!:8456'=A012#8=678)51234%=<890!75456'?<3123$69<89 74:456'9:512#956'=90!36956'( +/qtrg4jyq$es1wljxtiu/dndfhi +53234%7789 323456'=)3123$5&'() !"#$% +/qtrg4jyq$es1wljxtiu/dnitxesm$em +4!83$86':9 27#$%&'() !"# +/qtrg4jyq$es1wljxtiu/u!ftz +3!344567(9 nvnxxiw"6szuuwy&<@901"3$hv!gjdbrwm kf8)58234%6'kyu`cgeuzp#n_2"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 52#5 +/qtrg4jyq$es1wljxtiu/u!sqni +1!379567(9 nvnxxvtql-t vvxz'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#5567( +/qtrg4jyq$es1wljxtiu/u!eeyzlz' +4!83456'8)mumwwgg !nrz/v"xxz!)49234%6'u"k.eo1gij!92!6:456'8)mum0gq3iklt13#8;678)0!owo2is5kcdv34%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)1123$ +/qtrg4jyq$es1wljxtiu/u!se +1!354567(9 nvn1hr4 quufr s68(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$7678) +/qtrg4jyq$es1wljxtiu/u!gvfs +1!434567(9 nvnxxjyiv-t vvxz'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4% +/qtrg4jyq$es1wljxtiu/u!zqy +1!354567(9 nvnxx"t!6szuuwy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"8456' +/qtrg4jyq$es1wljxtiu/u!exx +3!334567(9 nvnxxvh5!yttvx%;@890!2#qyq4ku-dcp45&<9901"3$fhjk" 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(:012# +/qtrg4jyq$es1wljxtiu/u!ge>88< +1!434567(9 uuge>88<6szuuwy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"4456' +/qtrg4jyq$es1wljxtiu/u!exxvh +4!354567(9 nvn1hr4 quufr s69(:11234%6'u"k.eo1rjvno 223456'8)mum0gq3uwRMT"8;567(9 nvn1hr4imp.oxxy&7(9 oq0gtusm 1"3$su4kxomgu$5&7(wo.ersqky(9 1"qs2ivwues"3$5&uw6cpqoiw&7(9 oq0gtusm 2234% +/qtrg4jyq$es1wljxtiu/u!ww6 +1!384567(9 nvn1hr4s!hvvgs!t78)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789 +/qtrg4jyq$es1wljxtiu/u!ww7 +1!384567(9 nvn1hr4s!hvvgs!t79)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789 +/qtrg4jyq$es1wljxtiu/u!ww9 +1!384567(9 nvn1hr4s!hvvgs!t7:)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%6'8)np/fstrlz)0!2#rt3jwxlft#4%6'vx-dqrpjx'8)0!pr1huvtnr!2#4%tv5lopnhv%7789 +/qtrg4s s"z0owoyyjx# +mbaois&8() !"#$%& +/qtrg4s s"z0owoyywurc +mbaois&;() !"#$%&'() +/qtrg4s s"z0owoyyii"tft! +mbaois&;() !"#$%&'() +/qtrg4s s"z0owoyywi +mbaois&8() !"#$%&'() !"# +/qtrg4s s"z0owoyy#u" +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyyHX +mbaois&8() !"#$%&'() +/qtrg4s s"z0vvhf?99= +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyyi!!merd +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyy8 +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyy9 +mbaois&8() !"#$%&'() +/qtrg4s s"z0owoyy; +mbaois&8() !"#$%&'() +EPH +
diff --git a/throttle.sh b/throttle.sh new file mode 100755 index 0000000..0b0d6b6 --- /dev/null +++ b/throttle.sh @@ -0,0 +1,19 @@ +#!/system/bin/sh +# traffic control; arg1:ifname, arg2: rx, arg 3 tx. +# +export PATH=/data:$PATH + +# clear rules +tc qdisc del dev $1 root +tc qdisc del dev $1 ingress +tc qdisc del dev ifb0 root + +# set interface throttle +tc qdisc add dev $1 root handle 1: htb default 1 r2q 1000 +tc class add dev $1 parent 1: classid 1:1 htb rate $3kbit +ifconfig ifb0 up +tc qdisc add dev ifb0 root handle 1: htb default 1 r2q 1000 +tc class add dev ifb0 parent 1: classid 1:1 htb rate $2kbit +tc qdisc add dev $1 ingress +tc filter add dev $1 parent ffff: protocol ip prio 10 u32 match \ + u32 0 0 flowid 1:1 action mirred egress redirect dev ifb0 diff --git a/ueventd.mt6797.rc b/ueventd.mt6797.rc new file mode 100755 index 0000000..9301247 --- /dev/null +++ b/ueventd.mt6797.rc @@ -0,0 +1,116 @@ +#change partition permission +/dev/block/mmcblk0 0660 root system +/dev/block/mmcblk0boot0 0660 root system +/dev/block/mmcblk0boot1 0660 root system +/dev/misc-sd 0660 root system +/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/misc2 0660 root system +/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/boot 0640 root system +/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/recovery 0640 root system +/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/secro 0640 root system +/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/seccfg 0660 root system +/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/proinfo 0660 root system +/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/nvram 0660 root system +/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/para 0660 root system +/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/logo 0660 root system +/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/frp 0660 root system +/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/md1img 0660 root system +/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/md1dsp 0660 root system +/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/md1arm7 0660 root system +/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/md3img 0660 root system + +# OTP +/dev/otp 0660 system system + +# Connectivity +/dev/stpwmt 0660 system system +/dev/wmtdetect 0660 system system + +# BT +/dev/stpbt 0660 bluetooth net_bt_stack + +# GPS +/dev/stpgps 0660 gps gps +/dev/gps 0660 gps system + +# ANT +/dev/stpant 0660 system system + +# WIFI +/dev/wmtWifi 0660 system system + +# FMRadio +/dev/fm 0660 media media + +# NFC +/dev/msr3110 0666 root root +/dev/mt6605 0660 nfc radio + +# MTK BTIF driver +/dev/btif 0600 system system + +# Trusty driver +/dev/trusty-ipc-dev0 0660 system keystore + +# add the read write right of ttyUSB* +/dev/bus/usb/* 0660 root usb +/dev/ttyUSB0 0660 radio radio +/dev/ttyUSB1 0660 radio radio +/dev/ttyUSB2 0660 radio radio +/dev/ttyUSB3 0660 radio radio +/dev/ttyUSB4 0660 radio radio + +# Anyone can read the logs, but if they're not in the "logs" +# group, then they'll only see log entries for their UID. +/dev/xLog 0600 root root +/dev/log/ksystem 0600 root log + +/dev/ccci* 0660 radio radio +/dev/ttyC* 0660 radio radio +/sys/kernel/ccci modem_info 0644 radio radio +/sys/kernel/ccci md1_postfix 0644 radio radio +/sys/kernel/ccci md2_postfix 0644 radio radio +/dev/eemcs* 0660 radio radio +/dev/emd* 0660 radio radio +/dev/ccci_pcm_rx 0660 audio audio +/dev/ccci_pcm_tx 0660 audio audio +/dev/ccci_aud 0660 audio audio +/dev/ccci2_aud 0660 audio audio +/dev/ccci3_aud 0660 audio audio +/dev/eemcs_aud 0660 audio audio +/dev/irtx 0660 system system +# SGX device node +/dev/pvrsrvkm 0666 root root +/dev/pvr_sync 0666 root root + + +/sys/devices/platform/leds-mt65xx/leds/green delay_on 0664 system system +/sys/devices/platform/leds-mt65xx/leds/green delay_off 0664 system system +/sys/devices/platform/leds-mt65xx/leds/red delay_on 0664 system system +/sys/devices/platform/leds-mt65xx/leds/red delay_off 0664 system system +/sys/devices/platform/leds-mt65xx/leds/blue delay_on 0664 system system +/sys/devices/platform/leds-mt65xx/leds/blue delay_off 0664 system system + +#GPIO +/dev/mtgpio 0600 radio root + + +#FOR VIA MODEM +/dev/ttySDIO* 0660 radio sdcard_rw +/dev/ttyRB* 0660 radio radio + +# Mali node +/dev/mali 0666 system graphics + +# Change ION driver permission +/dev/ion 0666 system graphics + +#touch +/dev/touch 0660 root system +/dev/hotknot 0660 root system + +#hang_detect +/dev/RT_Monitor 0600 system system +/dev/kick_powerkey 0600 system system + +#MTK In-House TEE +/dev/ttyACM0 0660 radio radio |