wayne: Initial bringup

Change-Id: I211da5781d8c7a16199fd8a18e1b00cfc9e01944
Signed-off-by: Isaac Chen <isaacchen@isaacchen.cn>
This commit is contained in:
Isaac Chen 2018-07-13 10:11:03 +08:00
parent 103f8c68ff
commit 71ad0c9e53
83 changed files with 19903 additions and 1711 deletions

96
Android.mk Executable file → Normal file
View file

@ -14,29 +14,95 @@
# limitations under the License.
#
# This contains the module build definitions for the hardware-specific
# components for this device.
#
# As much as possible, those components should be built unconditionally,
# with device-specific names to avoid collisions, to avoid device-specific
# bitrot and build breakages. Building a component unconditionally does
# *not* include it on all devices, so it is safe even with hardware-specific
# components.
LOCAL_PATH := $(call my-dir)
ifeq ($(TARGET_DEVICE),wayne)
ifneq ($(filter wayne,$(TARGET_DEVICE)),)
include $(call all-makefiles-under,$(LOCAL_PATH))
$(shell mkdir -p $(TARGET_OUT_VENDOR)/firmware; \
ln -sf /dev/block/bootdevice/by-name/msadp \
$(TARGET_OUT_VENDOR)/firmware/msadp)
include $(CLEAR_VARS)
WCNSS_INI_SYMLINK := $(TARGET_OUT_VENDOR)/firmware/wlan/qca_cld/WCNSS_qcom_cfg.ini
$(WCNSS_INI_SYMLINK): $(LOCAL_INSTALLED_MODULE)
@echo "WCNSS config ini link: $@"
LOCAL_MODULE := wifi_symlinks
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := FAKE
LOCAL_MODULE_SUFFIX := -timestamp
include $(BUILD_SYSTEM)/base_rules.mk
$(LOCAL_BUILT_MODULE): ACTUAL_INI_FILE := /vendor/etc/wifi/WCNSS_qcom_cfg.ini
$(LOCAL_BUILT_MODULE): WCNSS_INI_SYMLINK := $(TARGET_OUT_VENDOR)/firmware/wlan/qca_cld/WCNSS_qcom_cfg.ini
$(LOCAL_BUILT_MODULE): ACTUAL_BIN_FILE := /persist/wlan_mac.bin
$(LOCAL_BUILT_MODULE): WCNSS_BIN_SYMLINK := $(TARGET_OUT_VENDOR)/firmware/wlan/qca_cld/wlan_mac.bin
$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/Android.mk
$(LOCAL_BUILT_MODULE):
$(hide) echo "Making symlinks for wifi"
$(hide) mkdir -p $(dir $@)
$(hide) mkdir -p $(dir $(WCNSS_INI_SYMLINK))
$(hide) rm -rf $@
$(hide) rm -rf $(WCNSS_INI_SYMLINK)
$(hide) ln -sf $(ACTUAL_INI_FILE) $(WCNSS_INI_SYMLINK)
$(hide) rm -rf $(WCNSS_BIN_SYMLINK)
$(hide) ln -sf $(ACTUAL_BIN_FILE) $(WCNSS_BIN_SYMLINK)
$(hide) touch $@
include $(call all-makefiles-under,$(LOCAL_PATH))
IMS_LIBS := libimscamera_jni.so libimsmedia_jni.so
IMS_SYMLINKS := $(addprefix $(TARGET_OUT_APPS)/ims/lib/arm64/,$(notdir $(IMS_LIBS)))
$(IMS_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "IMS lib link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /vendor/etc/wifi/$(notdir $@) $@
$(hide) ln -sf /system/lib64/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(WCNSS_INI_SYMLINK)
ALL_DEFAULT_INSTALLED_MODULES += $(IMS_SYMLINKS)
RFS_MSM_ADSP_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/adsp/
$(RFS_MSM_ADSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MSM ADSP folder structure: $@"
@rm -rf $@/*
@mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/lpass $@/ramdumps
$(hide) ln -sf /persist/rfs/msm/adsp $@/readwrite
$(hide) ln -sf /persist/rfs/shared $@/shared
$(hide) ln -sf /persist/hlos_rfs/shared $@/hlos
$(hide) ln -sf /firmware $@/readonly/firmware
$(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
RFS_MSM_MPSS_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/mpss/
$(RFS_MSM_MPSS_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MSM MPSS folder structure: $@"
@rm -rf $@/*
@mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/modem $@/ramdumps
$(hide) ln -sf /persist/rfs/msm/mpss $@/readwrite
$(hide) ln -sf /persist/rfs/shared $@/shared
$(hide) ln -sf /persist/hlos_rfs/shared $@/hlos
$(hide) ln -sf /firmware $@/readonly/firmware
$(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
RFS_MSM_SLPI_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/slpi/
$(RFS_MSM_SLPI_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MSM SLPI folder structure: $@"
@rm -rf $@/*
@mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/slpi $@/ramdumps
$(hide) ln -sf /persist/rfs/msm/slpi $@/readwrite
$(hide) ln -sf /persist/rfs/shared $@/shared
$(hide) ln -sf /persist/hlos_rfs/shared $@/hlos
$(hide) ln -sf /firmware $@/readonly/firmware
ALL_DEFAULT_INSTALLED_MODULES += \
$(RFS_MSM_ADSP_SYMLINKS) \
$(RFS_MSM_MPSS_SYMLINKS) \
$(RFS_MSM_SLPI_SYMLINKS)
include $(call all-makefiles-under,$(LOCAL_PATH))
endif

341
BoardConfig.mk Executable file → Normal file
View file

@ -1,153 +1,264 @@
# config.mk
#
# Product-specific compile-time definitions.
# Copyright (C) 2018 The LineageOS 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.
#
#
# This file sets variables that control the way modules are built
# thorughout the system. It should not be used to conditionally
# disable makefiles (the proper mechanism to control what gets
# included in a build is to use PRODUCT_PACKAGES in a product
# definition file).
#
DEVICE_PATH := device/xiaomi/wayne
TARGET_BOARD_PLATFORM := sdm660
TARGET_BOARD_SUFFIX := _64
TARGET_BOOTLOADER_BOARD_NAME :=sdm660
BOARD_VENDOR := xiaomi
# Use Snapdragon LLVM, if available
TARGET_USE_SDCLANG := true
# Bootloader
TARGET_BOOTLOADER_BOARD_NAME := sdm660
TARGET_NO_BOOTLOADER := true
# Platform
TARGET_BOARD_PLATFORM := sdm660
TARGET_BOARD_PLATFORM_GPU := qcom-adreno512
# Architecture
TARGET_ARCH := arm64
TARGET_ARCH_VARIANT := armv8-a
TARGET_CPU_ABI := arm64-v8a
TARGET_CPU_ABI2 :=
TARGET_CPU_VARIANT := generic
TARGET_CPU_VARIANT := kryo
TARGET_2ND_ARCH := arm
TARGET_2ND_ARCH_VARIANT := armv7-a-neon
TARGET_2ND_CPU_ABI := armeabi-v7a
TARGET_2ND_CPU_ABI2 := armeabi
TARGET_2ND_CPU_VARIANT := cortex-a53
TARGET_2ND_CPU_VARIANT := kryo
TARGET_NO_BOOTLOADER := false
TARGET_USES_UEFI := true
TARGET_NO_KERNEL := false
-include $(QCPATH)/common/sdm660_64/BoardConfigVendor.mk
# Some framework code requires this to enable BT
BOARD_HAVE_BLUETOOTH := true
BOARD_USES_WIPOWER := true
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/qcom/common
USE_OPENGL_RENDERER := true
BOARD_USE_LEGACY_UI := true
TARGET_USERIMAGES_USE_EXT4 := true
BOARD_BOOTIMAGE_PARTITION_SIZE := 0x04000000
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 0x04000000
BOARD_CACHEIMAGE_PARTITION_SIZE := 268435456
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
#TARGET_RECOVERY_UPDATER_LIBS += librecovery_updater_msm
TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/rootdir/etc/recovery.fstab
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 3221225472
BOARD_USERDATAIMAGE_PARTITION_SIZE := 48318382080
BOARD_PERSISTIMAGE_PARTITION_SIZE := 33554432
BOARD_PERSISTIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_FLASH_BLOCK_SIZE := 131072 # (BOARD_KERNEL_PAGESIZE * 64)
ifeq ($(ENABLE_VENDOR_IMAGE), true)
BOARD_VENDORIMAGE_PARTITION_SIZE := 838860800
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
TARGET_COPY_OUT_VENDOR := vendor
BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
endif
# Enable suspend during charger mode
BOARD_CHARGER_ENABLE_SUSPEND := true
TARGET_USES_ION := true
TARGET_USES_NEW_ION_API :=true
TARGET_USES_QCOM_DISPLAY_BSP := true
#Gralloc h/w specif flags
TARGET_USES_HWC2 := true
TARGET_USES_GRALLOC1 := true
ifeq ($(BOARD_KERNEL_CMDLINE),)
ifeq ($(TARGET_KERNEL_VERSION),4.4)
BOARD_KERNEL_CMDLINE += console=ttyMSM0,115200,n8 androidboot.console=ttyMSM0 earlycon=msm_serial_dm,0xc170000
else
BOARD_KERNEL_CMDLINE += console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 earlycon=msm_hsl_uart,0xc1b0000
endif
BOARD_KERNEL_CMDLINE += androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 sched_enable_hmp=1 sched_enable_power_aware=1 service_locator.enable=1 swiotlb=1 androidboot.configfs=true androidboot.usbcontroller=a800000.dwc3
endif
BOARD_SECCOMP_POLICY := $(DEVICE_PATH)/seccomp
BOARD_KERNEL_BASE := 0x00000000
BOARD_KERNEL_PAGESIZE := 4096
BOARD_KERNEL_TAGS_OFFSET := 0x01E00000
BOARD_RAMDISK_OFFSET := 0x02000000
TARGET_USES_64_BIT_BINDER := true
# Kernel
BOARD_KERNEL_CMDLINE := console=ttyMSM0,115200,n8 androidboot.console=ttyMSM0 earlycon=msm_serial_dm,0xc170000 androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 sched_enable_hmp=1 sched_enable_power_aware=1 service_locator.enable=1 swiotlb=1 androidboot.configfs=true androidboot.usbcontroller=a800000.dwc3
BOARD_KERNEL_CMDLINE += androidboot.selinux=permissive
BOARD_KERNEL_BASE := 0x00000000
BOARD_KERNEL_PAGESIZE := 4096
BOARD_KERNEL_TAGS_OFFSET := 0x00000100
BOARD_RAMDISK_OFFSET := 0x01000000
BOARD_KERNEL_IMAGE_NAME := Image.gz-dtb
TARGET_KERNEL_ARCH := arm64
TARGET_KERNEL_HEADER_ARCH := arm64
TARGET_KERNEL_SOURCE := kernel/xiaomi/sdm660
TARGET_KERNEL_CONFIG := wayne-perf_defconfig
TARGET_KERNEL_CROSS_COMPILE_PREFIX := aarch64-linux-android-
TARGET_USES_UNCOMPRESSED_KERNEL := false
# QCOM hardware
BOARD_USES_QCOM_HARDWARE := true
# ANT+
BOARD_ANT_WIRELESS_DEVICE := "qualcomm-hidl"
# Audio
BOARD_USES_ALSA_AUDIO := true
USE_CUSTOM_AUDIO_POLICY := 1
USE_XML_AUDIO_POLICY_CONF := 1
BOARD_SUPPORTS_SOUND_TRIGGER := true
AUDIO_FEATURE_ENABLED_COMPRESS_CAPTURE := false
AUDIO_FEATURE_ENABLED_COMPRESS_VOIP := true
AUDIO_FEATURE_ENABLED_EXT_AMPLIFIER := false
AUDIO_FEATURE_ENABLED_EXT_HDMI := true
AUDIO_FEATURE_ENABLED_EXTN_FORMATS := true
AUDIO_FEATURE_ENABLED_EXTN_FLAC_DECODER := true
AUDIO_FEATURE_ENABLED_EXTN_RESAMPLER := false
AUDIO_FEATURE_ENABLED_PCM_OFFLOAD := true
AUDIO_FEATURE_ENABLED_PCM_OFFLOAD_24 := true
AUDIO_FEATURE_ENABLED_FLAC_OFFLOAD := true
AUDIO_FEATURE_ENABLED_VORBIS_OFFLOAD := true
AUDIO_FEATURE_ENABLED_WMA_OFFLOAD := true
AUDIO_FEATURE_ENABLED_ALAC_OFFLOAD := true
AUDIO_FEATURE_ENABLED_APE_OFFLOAD := true
AUDIO_FEATURE_ENABLED_AAC_ADTS_OFFLOAD := true
AUDIO_FEATURE_ENABLED_PROXY_DEVICE := true
AUDIO_FEATURE_ENABLED_HW_ACCELERATED_EFFECTS := false
AUDIO_FEATURE_ENABLED_AUDIOSPHERE := true
AUDIO_FEATURE_ENABLED_USB_TUNNEL_AUDIO := true
AUDIO_FEATURE_ENABLED_SPLIT_A2DP := true
AUDIO_FEATURE_ENABLED_3D_AUDIO := false
AUDIO_FEATURE_ENABLED_VBAT_MONITOR := true
AUDIO_FEATURE_ENABLED_ANC_HEADSET := true
AUDIO_FEATURE_ENABLED_CUSTOMSTEREO := true
AUDIO_FEATURE_ENABLED_FLUENCE := true
AUDIO_FEATURE_ENABLED_HDMI_EDID := true
AUDIO_FEATURE_ENABLED_HFP := true
AUDIO_FEATURE_ENABLED_INCALL_MUSIC := false
AUDIO_FEATURE_ENABLED_MULTI_VOICE_SESSIONS := true
AUDIO_FEATURE_ENABLED_KPI_OPTIMIZE := true
AUDIO_FEATURE_ENABLED_SPKR_PROTECTION := true
AUDIO_FEATURE_ENABLED_ACDB_LICENSE := true
AUDIO_FEATURE_ENABLED_DEV_ARBI := false
AUDIO_FEATURE_ENABLED_SOURCE_TRACKING := true
AUDIO_FEATURE_ENABLED_GEF_SUPPORT := true
AUDIO_FEATURE_ENABLED_RAS := true
AUDIO_FEATURE_ENABLED_SND_MONITOR := true
AUDIO_FEATURE_ENABLED_DYNAMIC_LOG := false
TARGET_USES_QCOM_MM_AUDIO := true
AUDIO_USE_LL_AS_PRIMARY_OUTPUT := true
# Bluetooth
BOARD_HAVE_BLUETOOTH := true
BOARD_HAVE_BLUETOOTH_QCOM := true
BOARD_HAS_QCA_BT_SOC := "cherokee"
BLUETOOTH_HCI_USE_MCT := true
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(DEVICE_PATH)/bluetooth
QCOM_BT_USE_BTNV := true
QCOM_BT_USE_SMD_TTY := true
# Camera
USE_DEVICE_SPECIFIC_CAMERA := true
TARGET_USES_QTI_CAMERA_DEVICE := true
TARGET_USES_QTI_CAMERA2CLIENT := true
BOARD_QTI_CAMERA_32BIT_ONLY := true
TARGET_USES_MEDIA_EXTENSIONS := true
# Charger
BOARD_CHARGER_ENABLE_SUSPEND := true
BOARD_CHARGER_DISABLE_INIT_BLANK := true
# CNE and DPM
BOARD_USES_QCNE := true
# Crypto
TARGET_HW_DISK_ENCRYPTION := true
# Display
TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS := true
TARGET_USES_HWC2 := true
TARGET_USES_GRALLOC1 := true
TARGET_USES_ION := true
TARGET_USES_NEW_ION_API :=true
TARGET_USES_OVERLAY := true
USE_OPENGL_RENDERER := true
MAX_EGL_CACHE_KEY_SIZE := 12*1024
MAX_EGL_CACHE_SIZE := 2048*1024
TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS := true
MAX_VIRTUAL_DISPLAY_DIMENSION := 4096
BOARD_USES_GENERIC_AUDIO := true
USE_CAMERA_STUB := false
BOARD_QTI_CAMERA_32BIT_ONLY := true
TARGET_NO_RPC := true
OVERRIDE_RS_DRIVER := libRSDriver_adreno.so
TARGET_PLATFORM_DEVICE_BASE := /devices/soc.0/
TARGET_INIT_VENDOR_LIB := libinit_msm
VSYNC_EVENT_PHASE_OFFSET_NS := 2000000
SF_VSYNC_EVENT_PHASE_OFFSET_NS := 6000000
NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
TARGET_KERNEL_APPEND_DTB := true
TARGET_COMPILE_WITH_MSM_KERNEL := true
#Enable PD locater/notifier
TARGET_PD_SERVICE_ENABLED := true
#Enable HW based full disk encryption
TARGET_HW_DISK_ENCRYPTION := true
TARGET_CRYPTFS_HW_PATH := device/qcom/common/cryptfs_hw
# Enable dex pre-opt to speed up initial boot
# Enable dexpreopt to speed boot time
ifeq ($(HOST_OS),linux)
ifeq ($(WITH_DEXPREOPT),)
WITH_DEXPREOPT := true
WITH_DEXPREOPT_PIC := true
ifneq ($(TARGET_BUILD_VARIANT),user)
# Retain classes.dex in APK's for non-user builds
DEX_PREOPT_DEFAULT := nostripping
endif
endif
ifneq ($(TARGET_BUILD_VARIANT),eng)
WITH_DEXPREOPT := true
endif
endif
WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY := true
#Enable peripheral manager
# FM
AUDIO_FEATURE_ENABLED_FM_POWER_OPT := true
BOARD_HAS_QCA_FM_SOC := cherokee
BOARD_HAVE_QCOM_FM := true
# GPS
TARGET_NO_RPC := true
USE_DEVICE_SPECIFIC_GPS := true
BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE := $(TARGET_BOARD_PLATFORM)
# HIDL
DEVICE_MANIFEST_FILE := $(DEVICE_PATH)/manifest.xml
DEVICE_MATRIX_FILE := $(DEVICE_PATH)/compatibility_matrix.xml
# Init
TARGET_PLATFORM_DEVICE_BASE := /devices/soc/
# Keystore
TARGET_PROVIDES_KEYMASTER := true
# Lights
TARGET_PROVIDES_LIBLIGHT := true
# Partitions
BOARD_FLASH_BLOCK_SIZE := 262144
BOARD_BOOTIMAGE_PARTITION_SIZE := 67108864
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 67108864
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_CACHEIMAGE_PARTITION_SIZE := 268435456
BOARD_SYSTEMIMAGE_PARTITION_TYPE := ext4
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 3221225472
BOARD_USERDATAIMAGE_PARTITION_SIZE := 23886544384
BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_VENDORIMAGE_PARTITION_SIZE := 2147483648
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
TARGET_EXFAT_DRIVER := exfat
TARGET_COPY_OUT_VENDOR := vendor
TARGET_USERIMAGES_USE_EXT4 := true
TARGET_USES_MKE2FS := true
TARGET_FS_CONFIG_GEN := $(DEVICE_PATH)/config.fs
# Peripheral manager
TARGET_PER_MGR_ENABLED := true
#Enable SSC Feature
TARGET_USES_SSC := true
# Power
TARGET_USES_INTERACTION_BOOST := true
# Enable sensor multi HAL
USE_SENSOR_MULTI_HAL := true
# Properties
BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
TARGET_VENDOR_PROP := $(DEVICE_PATH)/vendor.prop
#Enable CPUSets
ENABLE_CPUSETS := true
ENABLE_SCHEDBOOST := true
# Recovery
TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/rootdir/etc/recovery.fstab
BOARD_HAS_LARGE_FILESYSTEM := true
#Enabling IMS Feature
TARGET_USES_IMS := true
# RIL
TARGET_RIL_VARIANT := caf
PROTOBUF_SUPPORTED := true
#Add NON-HLOS files for ota upgrade
ADD_RADIO_FILES := true
TARGET_RECOVERY_UI_LIB := librecovery_ui_msm
# SELinux
include device/qcom/sepolicy/sepolicy.mk
ifneq ($(AB_OTA_UPDATER),true)
TARGET_RECOVERY_UPDATER_LIBS += librecovery_updater_msm
endif
# Treble
PRODUCT_FULL_TREBLE_OVERRIDE := true
PRODUCT_COMPATIBILITY_MATRIX_LEVEL_OVERRIDE := 27
PRODUCT_SHIPPING_API_LEVEL := 27
PRODUCT_VENDOR_MOVE_ENABLED := true
# Timeservice
BOARD_USES_QC_TIME_SERVICES := true
# Wifi
BOARD_HAS_QCOM_WLAN := true
BOARD_HAS_QCOM_WLAN_SDK := true
BOARD_WLAN_DEVICE := qcwcn
BOARD_HOSTAPD_DRIVER := NL80211
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
WIFI_DRIVER_FW_PATH_AP := "ap"
WIFI_DRIVER_FW_PATH_STA := "sta"
WIFI_DRIVER_FW_PATH_P2P := "p2p"
WIFI_DRIVER_OPERSTATE_PATH := "/sys/class/net/wlan0/operstate"
WPA_SUPPLICANT_VERSION := VER_0_8_X
# Inherit the proprietary files
-include vendor/xiaomi/wayne/BoardConfigVendor.mk

36
README.md Normal file
View file

@ -0,0 +1,36 @@
This repository contains device configuration for Xiaomi MI 6X (wayne)
Basic | Spec Sheet
-------:|:----------
CPU | Quad-core 1.84 GHz Qualcomm Kryo 260 LP
CPU | Quad-core 2.20 GHz Qualcomm Kryo 260 HP
Chipset | Qualcomm Snapdragon 660, SDM660
GPU | Adreno 512
ROM | 32/64/128GB
RAM | 3/4/6GB
Android | 8.1.0
Battery | 3010 mAh
Display | 1080x2160 pixels, 5.99
Rear Camera | 12MP+20MP, AI Dual Camera
Front Camera | 20 MP
![Xiaomi MI 6X](https://cdn.cnbj0.fds.api.mi-img.com/b2c-mimall-media/a4842f9afc615164af83c2088a412fc0.jpg "Xiaomi MI 6X")
## Copyright
```
#
# Copyright (C) 2018 The LineageOS 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.
#

353
audio/audio_effects.conf Normal file
View file

@ -0,0 +1,353 @@
# List of effect libraries to load. Each library element must contain a "path" element
# giving the full path of the library .so file.
# libraries {
# <lib name> {
# path <lib path>
# }
# }
libraries {
bundle {
path /vendor/lib/soundfx/libbundlewrapper.so
}
reverb {
path /vendor/lib/soundfx/libreverbwrapper.so
}
qcbassboost {
path /vendor/lib/soundfx/libqcbassboost.so
}
qcvirt {
path /vendor/lib/soundfx/libqcvirt.so
}
qcreverb {
path /vendor/lib/soundfx/libqcreverb.so
}
visualizer_sw {
path /vendor/lib/soundfx/libvisualizer.so
}
visualizer_hw {
path /vendor/lib/soundfx/libqcomvisualizer.so
}
downmix {
path /vendor/lib/soundfx/libdownmix.so
}
loudness_enhancer {
path /vendor/lib/soundfx/libldnhncr.so
}
proxy {
path /vendor/lib/soundfx/libeffectproxy.so
}
offload_bundle {
path /vendor/lib/soundfx/libqcompostprocbundle.so
}
audio_pre_processing {
path /vendor/lib/soundfx/libqcomvoiceprocessing.so
}
volume_listener {
path /vendor/lib/soundfx/libvolumelistener.so
}
audiosphere {
path /vendor/lib/soundfx/libasphere.so
}
}
# Default pre-processing library. Add to audio_effect.conf "libraries" section if
# audio HAL implements support for default software audio pre-processing effects
#
# pre_processing {
# path /vendor/lib/soundfx/libaudiopreprocessing.so
# }
# list of effects to load. Each effect element must contain a "library" and a "uuid" element.
# The value of the "library" element must correspond to the name of one library element in the
# "libraries" element.
# The name of the effect element is indicative, only the value of the "uuid" element
# designates the effect.
# The uuid is the implementation specific UUID as specified by the effect vendor. This is not the
# generic effect type UUID.
# effects {
# <fx name> {
# library <lib name>
# uuid <effect uuid>
# }
# ...
# }
effects {
# additions for the proxy implementation
# Proxy implementation
#effectname {
#library proxy
#uuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
# SW implemetation of the effect. Added as a node under the proxy to
# indicate this as a sub effect.
#libsw {
#library libSW
#uuid yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
#} End of SW effect
# HW implementation of the effect. Added as a node under the proxy to
# indicate this as a sub effect.
#libhw {
#library libHW
#uuid zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz
#}End of HW effect
#} End of effect proxy
bassboost {
library proxy
uuid 14804144-a5ee-4d24-aa88-0002a5d5c51b
libsw {
library qcbassboost
uuid 23aca180-44bd-11e2-bcfd-0800200c9a66
}
libhw {
library offload_bundle
uuid 2c4a8c24-1581-487f-94f6-0002a5d5c51b
}
}
virtualizer {
library proxy
uuid d3467faa-acc7-4d34-acaf-0002a5d5c51b
libsw {
library qcvirt
uuid e6c98a16-22a3-11e2-b87b-f23c91aec05e
}
libhw {
library offload_bundle
uuid 509a4498-561a-4bea-b3b1-0002a5d5c51b
}
}
equalizer {
library proxy
uuid c8e70ecd-48ca-456e-8a4f-0002a5d5c51b
libsw {
library bundle
uuid ce772f20-847d-11df-bb17-0002a5d5c51b
}
libhw {
library offload_bundle
uuid a0dac280-401c-11e3-9379-0002a5d5c51b
}
}
volume {
library bundle
uuid 119341a0-8469-11df-81f9-0002a5d5c51b
}
reverb_env_aux {
library proxy
uuid 48404ac9-d202-4ccc-bf84-0002a5d5c51b
libsw {
library qcreverb
uuid a8c1e5f3-293d-43cd-95ec-d5e26c02e217
}
libhw {
library offload_bundle
uuid 79a18026-18fd-4185-8233-0002a5d5c51b
}
}
reverb_env_ins {
library proxy
uuid b707403a-a1c1-4291-9573-0002a5d5c51b
libsw {
library qcreverb
uuid 791fff8b-8129-4655-83a4-59bc61034c3a
}
libhw {
library offload_bundle
uuid eb64ea04-973b-43d2-8f5e-0002a5d5c51b
}
}
reverb_pre_aux {
library proxy
uuid 1b78f587-6d1c-422e-8b84-0002a5d5c51b
libsw {
library qcreverb
uuid 53ef1db5-c0c0-445b-b060-e34d20ebb70a
}
libhw {
library offload_bundle
uuid 6987be09-b142-4b41-9056-0002a5d5c51b
}
}
reverb_pre_ins {
library proxy
uuid f3e178d2-ebcb-408e-8357-0002a5d5c51b
libsw {
library qcreverb
uuid b08a0e38-22a5-11e2-b87b-f23c91aec05e
}
libhw {
library offload_bundle
uuid aa2bebf6-47cf-4613-9bca-0002a5d5c51b
}
}
visualizer {
library proxy
uuid 1d0a1a53-7d5d-48f2-8e71-27fbd10d842c
libsw {
library visualizer_sw
uuid d069d9e0-8329-11df-9168-0002a5d5c51b
}
libhw {
library visualizer_hw
uuid 7a8044a0-1a71-11e3-a184-0002a5d5c51b
}
}
downmix {
library downmix
uuid 93f04452-e4fe-41cc-91f9-e475b6d1d69f
}
hw_acc {
library offload_bundle
uuid 7d1580bd-297f-4683-9239-e475b6d1d69f
}
loudness_enhancer {
library loudness_enhancer
uuid fa415329-2034-4bea-b5dc-5b381c8d1e2c
}
aec {
library audio_pre_processing
uuid 0f8d0d2a-59e5-45fe-b6e4-248c8a799109
}
ns {
library audio_pre_processing
uuid 1d97bb0b-9e2f-4403-9ae3-58c2554306f8
}
music_helper {
library volume_listener
uuid 08b8b058-0590-11e5-ac71-0025b32654a0
}
ring_helper {
library volume_listener
uuid 0956df94-0590-11e5-bdbe-0025b32654a0
}
alarm_helper {
library volume_listener
uuid 09f303e2-0590-11e5-8fdb-0025b32654a0
}
# voice_helper is called when stream type is voice_call in VoIP usecase
voice_helper {
library volume_listener
uuid 0ace5c08-0590-11e5-ae9e-0025b32654a0
}
notification_helper {
library volume_listener
uuid 0b776dde-0590-11e5-81ba-0025b32654a0
}
audiosphere {
library audiosphere
uuid 184e62ab-2d19-4364-9d1b-c0a40733866c
}
}
# additional effect from vendor
# UUID generated using version 1
output_session_processing {
music {
music_helper {
}
}
ring {
ring_helper {
}
}
alarm {
alarm_helper {
}
}
# stream type voice_call is used for VoIP call
voice_call {
voice_helper {
}
}
notification {
notification_helper {
}
}
}
# Added aec, ns effects for voice_communication, which are supported by the board
pre_processing {
voice_communication {
aec {
}
ns {
}
}
}
# Default pre-processing effects. Add to audio_effect.conf "effects" section if
# audio HAL implements support for them.
#
# agc {
# library pre_processing
# uuid aa8130e0-66fc-11e0-bad0-0002a5d5c51b
# }
# aec {
# library pre_processing
# uuid bb392ec0-8d4d-11e0-a896-0002a5d5c51b
# }
# ns {
# library pre_processing
# uuid c06c8400-8e06-11e0-9cb6-0002a5d5c51b
# }
# Audio preprocessor configurations.
# The pre processor configuration consists in a list of elements each describing
# pre processor settings for a given input source. Valid input source names are:
# "mic", "camcorder", "voice_recognition", "voice_communication"
# Each input source element contains a list of effects elements. The name of the effect
# element must be the name of one of the effects in the "effects" list of the file.
# Each effect element may optionally contain a list of parameters and their
# default value to apply when the pre processor effect is created.
# A parameter is defined by a "param" element and a "value" element. Each of these elements
# consists in one or more elements specifying a type followed by a value.
# The types defined are: "int", "short", "float", "bool" and "string"
# When both "param" and "value" are a single int, a simple form is allowed where just
# the param and value pair is present in the parameter description
# pre_processing {
# <input source name> {
# <fx name> {
# <param 1 name> {
# param {
# int|short|float|bool|string <value>
# [ int|short|float|bool|string <value> ]
# ...
# }
# value {
# int|short|float|bool|string <value>
# [ int|short|float|bool|string <value> ]
# ...
# }
# }
# <param 2 name > {<param> <value>}
# ...
# }
# ...
# }
# ...
# }
#
# TODO: add default audio pre processor configurations after debug and tuning phase
#

View file

@ -0,0 +1,70 @@
# List of profiles for the output device session where stream is routed.
# A stream opened with the inputs attributes which match the "flags" and
# "formats" as specified in the profile is routed to a device at
# sample rate specified under "sampling_rates" and bit width under
# "bit_width" and the topology extracted from the acdb data against
# the "app_type".
#
# the flags and formats are specified using the strings corresponding to
# enums in audio.h and audio_policy.h. They are concatenated with "|"
# without space or "\n".
# the flags and formats should match the ones in "audio_policy.conf"
outputs {
default {
flags AUDIO_OUTPUT_FLAG_PRIMARY
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 48000
bit_width 16
app_type 69937
}
deep_buffer {
flags AUDIO_OUTPUT_FLAG_DEEP_BUFFER
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 48000
bit_width 16
app_type 69936
}
direct_pcm_16 {
flags AUDIO_OUTPUT_FLAG_DIRECT
formats AUDIO_FORMAT_PCM_16_BIT|AUDIO_FORMAT_PCM_24_BIT_PACKED|AUDIO_FORMAT_PCM_8_24_BIT|AUDIO_FORMAT_PCM_32_BIT
sampling_rates 44100|48000|88200|96000|176400|192000
bit_width 16
app_type 69936
}
direct_pcm_24 {
flags AUDIO_OUTPUT_FLAG_DIRECT
formats AUDIO_FORMAT_PCM_24_BIT_PACKED|AUDIO_FORMAT_PCM_8_24_BIT|AUDIO_FORMAT_PCM_32_BIT
sampling_rates 44100|48000|88200|96000|176400|192000|352800|384000
bit_width 24
app_type 69940
}
direct_pcm_32 {
flags AUDIO_OUTPUT_FLAG_DIRECT
formats AUDIO_FORMAT_PCM_32_BIT
sampling_rates 44100|48000|88200|96000|176400|192000|352800|384000
bit_width 32
app_type 69942
}
compress_passthrough {
flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING|AUDIO_OUTPUT_FLAG_COMPRESS_PASSTHROUGH
formats AUDIO_FORMAT_AC3|AUDIO_FORMAT_E_AC3|AUDIO_FORMAT_E_AC3_JOC|AUDIO_FORMAT_DTS|AUDIO_FORMAT_DTS_HD|AUDIO_FORMAT_DSD
sampling_rates 32000|44100|48000|88200|96000|176400|192000|352800
bit_width 16
app_type 69941
}
compress_offload_16 {
flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING
formats AUDIO_FORMAT_MP3|AUDIO_FORMAT_PCM_16_BIT_OFFLOAD|AUDIO_FORMAT_PCM_24_BIT_OFFLOAD|AUDIO_FORMAT_FLAC|AUDIO_FORMAT_ALAC|AUDIO_FORMAT_APE|AUDIO_FORMAT_AAC_LC|AUDIO_FORMAT_AAC_HE_V1|AUDIO_FORMAT_AAC_HE_V2|AUDIO_FORMAT_WMA|AUDIO_FORMAT_WMA_PRO|AUDIO_FORMAT_VORBIS|AUDIO_FORMAT_AAC_ADTS_LC|AUDIO_FORMAT_AAC_ADTS_HE_V1|AUDIO_FORMAT_AAC_ADTS_HE_V2
sampling_rates 44100|48000|88200|96000|176400|192000
bit_width 16
app_type 69936
}
compress_offload_24 {
flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING
formats AUDIO_FORMAT_PCM_24_BIT_OFFLOAD|AUDIO_FORMAT_FLAC|AUDIO_FORMAT_ALAC|AUDIO_FORMAT_APE|AUDIO_FORMAT_VORBIS|AUDIO_FORMAT_WMA|AUDIO_FORMAT_WMA_PRO
sampling_rates 44100|48000|88200|96000|176400|192000
bit_width 24
app_type 69940
}
}

View file

@ -0,0 +1,269 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2014, 2016-2017, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<audio_platform_info>
<bit_width_configs>
<device name="SND_DEVICE_OUT_SPEAKER" bit_width="24"/>
</bit_width_configs>
<interface_names>
<device name="AUDIO_DEVICE_IN_BUILTIN_MIC" interface="SLIMBUS_0" codec_type="external"/>
<device name="AUDIO_DEVICE_IN_BACK_MIC" interface="SLIMBUS_0" codec_type="external"/>
<device name="AUDIO_DEVICE_IN_BUILTIN_MIC" interface="INT3_MI2S" codec_type="internal"/>
<device name="AUDIO_DEVICE_IN_BACK_MIC" interface="INT3_MI2S" codec_type="internal"/>
</interface_names>
<pcm_ids>
<usecase name="USECASE_AUDIO_PLAYBACK_LOW_LATENCY" type="out" id="13"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD" type="out" id="8"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD2" type="out" id="15"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD3" type="out" id="16"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD4" type="out" id="28"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD5" type="out" id="29"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD6" type="out" id="30"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD7" type="out" id="31"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD8" type="out" id="32"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD9" type="out" id="33"/>
<usecase name="USECASE_VOICEMMODE1_CALL" type="in" id="2"/>
<usecase name="USECASE_VOICEMMODE1_CALL" type="out" id="2"/>
<usecase name="USECASE_VOICEMMODE2_CALL" type="in" id="19"/>
<usecase name="USECASE_VOICEMMODE2_CALL" type="out" id="19"/>
<usecase name="USECASE_VOWLAN_CALL" type="in" id="-1"/>
<usecase name="USECASE_VOWLAN_CALL" type="out" id="-1"/>
<usecase name="USECASE_AUDIO_PLAYBACK_FM" type="out" id="5"/>
<usecase name="USECASE_AUDIO_PLAYBACK_FM" type="in" id="34"/>
<usecase name="USECASE_AUDIO_SPKR_CALIB_RX" type="out" id="5"/>
<usecase name="USECASE_AUDIO_SPKR_CALIB_TX" type="in" id="40"/>
<usecase name="USECASE_AUDIO_PLAYBACK_AFE_PROXY" type="out" id="6"/>
<usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="7"/>
<usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="17" />
<usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="17" />
<usecase name="USECASE_AUDIO_PLAYBACK_EXT_DISP_SILENCE" type="out" id="27" />
<usecase name="USECASE_AUDIO_HFP_SCO" type="in" id="12" />
<usecase name="USECASE_AUDIO_HFP_SCO_WB" type="in" id="12" />
</pcm_ids>
<config_params>
<!-- In the below value string, the value indicates default mono -->
<!-- speaker. It can be set to either left or right -->
<param key="mono_speaker" value="left"/>
<param key="spkr_1_tz_name" value="wsatz.11"/>
<param key="spkr_2_tz_name" value="wsatz.12"/>
<param key="true_32_bit" value="true"/>
<param key="native_audio_mode" value="true"/>
<param key="hfp_pcm_dev_id" value="39"/>
<param key="input_mic_max_count" value="4"/>
</config_params>
<acdb_ids>
<device name="SND_DEVICE_OUT_SPEAKER" acdb_id="15"/>
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED" acdb_id="124"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED" acdb_id="101"/>
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT" acdb_id="124"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT" acdb_id="101"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK" acdb_id="102"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED" acdb_id="150"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED_VBAT" acdb_id="150"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK_MONO_1" acdb_id="151"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK_MONO_2" acdb_id="152"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES" acdb_id="124"/>
<device name="SND_DEVICE_OUT_VOICE_HANDSET" acdb_id="18"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" acdb_id="34"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2" acdb_id="34"/>
<device name="SND_DEVICE_OUT_VOICE_HEADPHONES" acdb_id="52"/>
<device name="SND_DEVICE_OUT_VOICE_USB_HEADSET" acdb_id="52"/>
<device name="SND_DEVICE_OUT_VOICE_USB_HEADPHONES" acdb_id="52"/>
<device name="SND_DEVICE_OUT_BT_SCO" acdb_id="66"/>
<device name="SND_DEVICE_OUT_BT_SCO_WB" acdb_id="578"/>
<device name="SND_DEVICE_OUT_VOICE_TX" acdb_id="52"/>
<device name="SND_DEVICE_OUT_TRANSMISSION_FM" acdb_id="0"/>
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED" acdb_id="124"/>
<device name="SND_DEVICE_IN_VOICE_REC_QMIC_FLUENCE" acdb_id="131"/>
<device name="SND_DEVICE_IN_VOICE_REC_TMIC" acdb_id="131"/>
<device name="SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE" acdb_id="132"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED" acdb_id="546"/>
<device name="SND_DEVICE_IN_HANDSET_MIC" acdb_id="19"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC" acdb_id="41"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC" acdb_id="35"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC" acdb_id="37"/>
<device name="SND_DEVICE_IN_HEADSET_MIC" acdb_id="51"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" acdb_id="291"/>
<device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" acdb_id="307"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC" acdb_id="323"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" acdb_id="835"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC_WB" acdb_id="1347"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC_WB_NREC" acdb_id="1859"/>
<device name="SND_DEVICE_IN_CAMCORDER_MIC" acdb_id="4"/>
<device name="SND_DEVICE_IN_VOICE_DMIC" acdb_id="277"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_DMIC" acdb_id="293"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_DMIC_ECHO" acdb_id="293"/>
<device name="SND_DEVICE_IN_VOICE_RX" acdb_id="819"/>
<device name="SND_DEVICE_IN_VOICE_REC_MIC" acdb_id="4"/>
<device name="SND_DEVICE_IN_CAPTURE_FM" acdb_id="0"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK" acdb_id="102"/>
<device name="SND_DEVICE_IN_MAIN_MIC" acdb_id="4"/>
<device name="SND_DEVICE_IN_TOP_MIC" acdb_id="11"/>
<device name="SND_DEVICE_IN_FRONT_MIC" acdb_id="11"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_MUSIC" acdb_id="21"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_VOICE" acdb_id="533"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_NS" acdb_id="533"/>
<device name="SND_DEVICE_IN_VOICE_REC_MIC_NS" acdb_id="533"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_INTERVIEW" acdb_id="1045"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_HD" acdb_id="2581"/>
<device name="SND_DEVICE_IN_HANDSET_STEREO_DMIC" acdb_id="2069"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_TMIC" acdb_id="295"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_TMIC_CONF" acdb_id="1319"/>
<device name="SND_DEVICE_IN_CAMCORDER_DMIC" acdb_id="85"/>
<device name="SND_DEVICE_IN_CAMCORDER_TMIC" acdb_id="87"/>
<device name="SND_DEVICE_IN_CAMCORDER_TMIC_FAR_END" acdb_id="599"/>
<device name="SND_DEVICE_IN_CAMCORDER_TMIC_NEAR_END" acdb_id="1111"/>
<device name="SND_DEVICE_IN_VOICE_USB_HEADSET_MIC" acdb_id="357"/>
</acdb_ids>
<backend_names>
<device name="SND_DEVICE_OUT_HEADPHONES" backend="headphones" interface="INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_HEADPHONES_KARAOKE" backend="headphones" interface="INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_HEADPHONES_CE" backend="headphones" interface="INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_HEADPHONES_NO_CE" backend="headphones" interface="INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_BT_SCO_WB" backend="bt-sco-wb" interface="SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_BT_SCO" backend="bt-sco" interface="SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_BT_A2DP" backend="bt-a2dp" interface="SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_LINE" backend="headphones" interface="INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_ANC_HEADSET" backend="headphones" interface="INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES" backend="speaker-and-headphones" interface="PRI_MI2S_RX-and-INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_CE" backend="speaker-and-headphones" interface="PRI_MI2S_RX-and-INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_NO_CE" backend="speaker-and-headphones" interface="PRI_MI2S_RX-and-INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_LINE" backend="speaker-and-headphones" interface="PRI_MI2S_RX-and-INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_ANC_HEADSET" backend="speaker-and-headphones" interface="PRI_MI2S_RX-and-INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_HEADPHONES" backend="headphones" interface="INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_ANC_HEADSET" backend="headphones" interface="INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_LINE" backend="headphones" interface="INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES" backend="headphones" interface="INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES" backend="headphones" interface="INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_HANDSET" interface="INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_EXTERNAL_1" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_EXTERNAL_2" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_REVERSE" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_VBAT" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_EXTERNAL_1" interface="PRI_MI2S_RX-and-INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_EXTERNAL_2" interface="PRI_MI2S_RX-and-INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_HANDSET" interface="INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_VBAT" backend="speaker" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HDMI" interface="PRI_MI2S_RX-and-HDMI"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_DISPLAY_PORT" interface="PRI_MI2S_RX-and-DISPLAY_PORT"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP" interface="PRI_MI2S_RX-and-SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET" interface="INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_ANC_FB_HEADSET" interface="INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_ANC_FB_HEADSET" interface="INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_ANC_HANDSET" interface="INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED" interface="INT4_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED" interface="INT4_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED" interface="INT4_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT" interface="INT4_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT" interface="INT4_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED_VBAT" interface="INT4_MI2S_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_WSA" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_WSA" interface="PRI_MI2S_RX"/>
<device name="SND_DEVICE_IN_HANDSET_MIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_EXTERNAL" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_NS" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC_NS" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_NS" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_NS" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_NS" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_HEADSET_MIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_VOICE" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_MUSIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_INTERVIEW" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_HD" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_TMIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_TMIC_CONF" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_CAMCORDER_DMIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_CAMCORDER_TMIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_CAMCORDER_TMIC_FAR_END" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_CAMCORDER_TMIC_NEAR_END" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_USB_HEADSET_MIC" interface="USB_AUDIO_TX"/>
<device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_HDMI_MIC" interface="HDMI"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC_WB" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC_WB_NREC" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_CAMCORDER_MIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_DMIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_DMIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_DMIC_ECHO" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_QMIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_REC_MIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_REC_MIC_NS" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_REC_DMIC_STEREO" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_AANC_HANDSET_MIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_QUAD_MIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_HANDSET_STEREO_DMIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_SPEAKER_STEREO_DMIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK" interface="INT5_MI2S_TX"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK_MONO_1" interface="INT5_MI2S_TX"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK_MONO_2" interface="INT5_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_DMIC_BROADSIDE" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_BROADSIDE" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_BROADSIDE" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_NS_BROADSIDE" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS_BROADSIDE" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_FLUENCE_DMIC_AANC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_HANDSET_QMIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_SPEAKER_QMIC_AEC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_SPEAKER_QMIC_NS" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_SPEAKER_QMIC_AEC_NS" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_THREE_MIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_HANDSET_TMIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_VOICE_REC_TMIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_UNPROCESSED_MIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_UNPROCESSED_THREE_MIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_UNPROCESSED_QUAD_MIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" interface="INT3_MI2S_TX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_HEADPHONES" backend="speaker-and-headphones" interface="INT4_MI2S_RX-and-INT0_MI2S_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_ANC_HEADSET" backend="speaker-and-headphones" interface="INT4_MI2S_RX-and-INT0_MI2S_RX"/>
</backend_names>
</audio_platform_info>

View file

@ -0,0 +1,348 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) 2016-2017, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 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.
-->
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
<!-- Global configuration Decalaration -->
<globalConfiguration speaker_drc_enabled="true"/>
<!-- Modules section:
There is one section per audio HW module present on the platform.
Each module section will contains two mandatory tags for audio HAL “halVersion” and “name”.
The module names are the same as in current .conf file:
“primary”, “A2DP”, “remote_submix”, “USB”
Each module will contain the following sections:
“devicePorts”: a list of device descriptors for all input and output devices accessible via this
module.
This contains both permanently attached devices and removable devices.
“mixPorts”: listing all output and input streams exposed by the audio HAL
“routes”: list of possible connections between input and output devices or between stream and
devices.
"route": is defined by an attribute:
-"type": <mux|mix> means all sources are mutual exclusive (mux) or can be mixed (mix)
-"sink": the sink involved in this route
-"sources": all the sources than can be connected to the sink via vis route
“attachedDevices”: permanently attached devices.
The attachedDevices section is a list of devices names. The names correspond to device names
defined in <devicePorts> section.
“defaultOutputDevice”: device to be used by default when no policy rule applies
-->
<modules>
<!-- Primary Audio HAL -->
<module name="primary" halVersion="2.0">
<attachedDevices>
<item>Earpiece</item>
<item>Speaker</item>
<item>Telephony Tx</item>
<item>Built-In Mic</item>
<item>Built-In Back Mic</item>
<item>FM Tuner</item>
<item>Telephony Rx</item>
</attachedDevices>
<defaultOutputDevice>Speaker</defaultOutputDevice>
<mixPorts>
<mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_FAST|AUDIO_OUTPUT_FLAG_PRIMARY">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="deep_buffer" role="source"
flags="AUDIO_OUTPUT_FLAG_DEEP_BUFFER">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="hifi_playback" role="source" />
<mixPort name="compress_passthrough" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
<profile name="" format="dynamic"
samplingRates="dynamic" channelMasks="dynamic"/>
</mixPort>
<mixPort name="direct_pcm" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,352800,384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,352800,384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,352800,384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
</mixPort>
<mixPort name="compressed_offload" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
<profile name="" format="AUDIO_FORMAT_MP3"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_FLAC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_ALAC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_APE"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_LC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_HE_V1"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_HE_V2"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_DTS"
samplingRates="32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1"/>
<profile name="" format="AUDIO_FORMAT_DTS_HD"
samplingRates="32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<!-- remove wma by wangyuhao lct 2018/1/17
<profile name="" format="AUDIO_FORMAT_WMA"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_WMA_PRO"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
end-->
<profile name="" format="AUDIO_FORMAT_VORBIS"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_LC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_HE_V1"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_HE_V2"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
</mixPort>
<mixPort name="dsd_compress_passthrough" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
<profile name="" format="AUDIO_FORMAT_DSD"
samplingRates="2822400,5644800"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
</mixPort>
<mixPort name="voice_tx" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="voip_rx" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_VOIP_RX">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</mixPort>
<mixPort name="primary input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</mixPort>
<mixPort name="surround_sound" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6"/>
</mixPort>
<mixPort name="record_24" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
<profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
</mixPort>
<mixPort name="voice_rx" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
</mixPort>
<mixPort name="hifi_input" role="sink" />
</mixPorts>
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Wired Headset" type="AUDIO_DEVICE_OUT_WIRED_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Wired Headphones" type="AUDIO_DEVICE_OUT_WIRED_HEADPHONE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Line" type="AUDIO_DEVICE_OUT_LINE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="BT SCO" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="BT SCO Headset" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="BT SCO Car Kit" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="BT SCO All" type="AUDIO_DEVICE_OUT_ALL_SCO" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Telephony Tx" type="AUDIO_DEVICE_OUT_TELEPHONY_TX" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="HDMI" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
</devicePort>
<devicePort tagName="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
</devicePort>
<devicePort tagName="FM" type="AUDIO_DEVICE_OUT_FM" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<!-- Input devices declaration, i.e. Source DEVICE PORT -->
<devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</devicePort>
<devicePort tagName="Built-In Back Mic" type="AUDIO_DEVICE_IN_BACK_MIC" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</devicePort>
<devicePort tagName="FM Tuner" type="AUDIO_DEVICE_IN_FM_TUNER" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
</devicePort>
<devicePort tagName="Wired Headset Mic" type="AUDIO_DEVICE_IN_WIRED_HEADSET" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</devicePort>
<devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</devicePort>
<devicePort tagName="Telephony Rx" type="AUDIO_DEVICE_IN_TELEPHONY_RX" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</devicePort>
<devicePort tagName="USB Device In" type="AUDIO_DEVICE_IN_USB_DEVICE" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
<profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="USB Headset In" type="AUDIO_DEVICE_IN_USB_HEADSET" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
<profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
</devicePorts>
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Earpiece"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="Speaker"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="Wired Headset"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,dsd_compress_passthrough,voip_rx"/>
<route type="mix" sink="Wired Headphones"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,dsd_compress_passthrough,voip_rx"/>
<route type="mix" sink="Line"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,dsd_compress_passthrough,voip_rx"/>
<route type="mix" sink="HDMI"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,compress_passthrough"/>
<route type="mix" sink="Proxy"
sources="primary output,deep_buffer,direct_pcm,compressed_offload"/>
<route type="mix" sink="FM"
sources="primary output"/>
<route type="mix" sink="BT SCO All"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="USB Device Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,hifi_playback"/>
<route type="mix" sink="USB Headset Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,hifi_playback"/>
<route type="mix" sink="Telephony Tx"
sources="voice_tx"/>
<route type="mix" sink="voice_rx"
sources="Telephony Rx"/>
<route type="mix" sink="primary input"
sources="Wired Headset Mic,BT SCO Headset Mic,FM Tuner,USB Device In,USB Headset In,Telephony Rx"/>
<route type="mix" sink="surround_sound"
sources="Built-In Mic,Built-In Back Mic"/>
<route type="mix" sink="record_24"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic"/>
<route type="mix" sink="hifi_input" sources="USB Device In,USB Headset In" />
</routes>
</module>
<!-- Remote Submix Audio HAL -->
<xi:include href="/vendor/etc/r_submix_audio_policy_configuration.xml"/>
<!-- A2dp Audio HAL -->
<xi:include href="/vendor/etc/a2dp_audio_policy_configuration.xml"/>
<!-- Usb Audio HAL -->
<xi:include href="/vendoe/etc/usb_audio_policy_configuration.xml"/>
</modules>
<!-- End of Modules section -->
<!-- Volume section -->
<xi:include href="/vendor/etc/audio_policy_volumes.xml"/>
<xi:include href="/vendor/etc/default_volume_tables.xml"/>
<!-- End of Volume section -->
</audioPolicyConfiguration>

View file

@ -0,0 +1,41 @@
#RAS_TEST_SPKR_PHONE_SPKR_STEREO
acdb_dev_id:136
!Playback
Rxdevice:0
enable
INT4_MI2S_RX Channels:Two
RX4 MIX1 INP1:RX4
RX5 MIX1 INP1:RX5
COMP1 Switch:1
COMP2 Switch:1
SpkrLeft COMP Switch:1
SpkrLeft BOOST Switch:1
SpkrLeft VISENSE Switch:1
SpkrLeft SWR DAC_Port Switch:1
SpkrRight COMP Switch:1
SpkrRight BOOST Switch:1
SpkrRight VISENSE Switch:1
SpkrRight SWR DAC_Port Switch:1
SpkrLeft WSA PA Mute:0
SpkrRight WSA PA Mute:0
INT4_MI2S_RX Audio Mixer MultiMedia1:1
disable
INT4_MI2S_RX Channels:One
RX4 MIX1 INP1:ZERO
RX5 MIX1 INP1:ZERO
COMP1 Switch:0
COMP2 Switch:0
SpkrLeft COMP Switch:0
SpkrLeft BOOST Switch:0
SpkrLeft VISENSE Switch:0
SpkrLeft SWR DAC_Port Switch:0
SpkrRight COMP Switch:0
SpkrRight BOOST Switch:0
SpkrRight VISENSE Switch:0
SpkrRight SWR DAC_Port Switch:0
SpkrLeft WSA PA Mute:0
SpkrRight WSA PA Mute:0
INT4_MI2S_RX Audio Mixer MultiMedia1:0

View file

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--- Copyright (c) 2016, The Linux Foundation. All rights reserved. -->
<!--- -->
<!--- Redistribution and use in source and binary forms, with or without -->
<!--- modification, are permitted provided that the following conditions are -->
<!--- met: -->
<!--- * Redistributions of source code must retain the above copyright -->
<!--- notice, this list of conditions and the following disclaimer. -->
<!--- * Redistributions in binary form must reproduce the above -->
<!--- copyright notice, this list of conditions and the following -->
<!--- disclaimer in the documentation and/or other materials provided -->
<!--- with the distribution. -->
<!--- * Neither the name of The Linux Foundation nor the names of its -->
<!--- contributors may be used to endorse or promote products derived -->
<!--- from this software without specific prior written permission. -->
<!--- -->
<!--- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!--- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!--- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!--- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!--- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!--- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!--- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!--- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<graphite_ipc_platform_info>
<no_of_glink_channels value="4">
</no_of_glink_channels>
<!-- channel 1 configuration -->
<glink_channel name="g_glink_ctrl" latency_in_us="5000"
no_of_intents="1" intents_size="1024">
</glink_channel>
<!-- channel 2 configuration -->
<glink_channel name="g_glink_persistent_data_ild" latency_in_us="30000"
no_of_intents="0">
</glink_channel>
<!-- channel 3 configuration -->
<glink_channel name="g_glink_persistent_data_nild" latency_in_us="30000"
no_of_intents="0">
</glink_channel>
<!-- channel 4 configuration -->
<glink_channel name="g_glink_audio_data" latency_in_us="10000"
no_of_intents="2" intents_size="4096, 4096">
</glink_channel>
</graphite_ipc_platform_info>

View file

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--- Copyright (c) 2014, 2016, The Linux Foundation. All rights reserved. -->
<!--- -->
<!--- Redistribution and use in source and binary forms, with or without -->
<!--- modification, are permitted provided that the following conditions are -->
<!--- met: -->
<!--- * Redistributions of source code must retain the above copyright -->
<!--- notice, this list of conditions and the following disclaimer. -->
<!--- * Redistributions in binary form must reproduce the above -->
<!--- copyright notice, this list of conditions and the following -->
<!--- disclaimer in the documentation and/or other materials provided -->
<!--- with the distribution. -->
<!--- * Neither the name of The Linux Foundation nor the names of its -->
<!--- contributors may be used to endorse or promote products derived -->
<!--- from this software without specific prior written permission. -->
<!--- -->
<!--- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!--- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!--- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!--- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!--- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!--- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!--- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!--- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<listen_platform_info>
<device name="DEVICE_HANDSET_APE_ACDB_ID" acdb_id="100" />
<device name="DEVICE_HANDSET_CPE_ACDB_ID" acdb_id="128" />
<ctrl name="execution_type" value="CPE" /> <!-- value: "CPE" "APE" -->
<ctrl name="max_cpe_sessions" value="1" />
<ctrl name="max_cpe_keywords" value="6" />
<ctrl name="max_cpe_kw_user_pairs" value="6" />
<ctrl name="max_ape_sessions" value="8" />
<ctrl name="max_ape_keywords" value="10" />
<ctrl name="max_ape_kw_user_pairs" value="10" />
<ctrl name="dump_lab_data" value="false" /> <!-- value: "true" "false" -->
<!-- If value is true, it requires write permissions to /data folder to -->
<!-- dump lab data to file under /data/LHAL foloder. Do "chmod 777 /data/" -->
</listen_platform_info>

2498
audio/mixer_paths.xml Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,178 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--- Copyright (c) 2014-2017, The Linux Foundation. All rights reserved. -->
<!--- -->
<!--- Redistribution and use in source and binary forms, with or without -->
<!--- modification, are permitted provided that the following conditions are -->
<!--- met: -->
<!--- * Redistributions of source code must retain the above copyright -->
<!--- notice, this list of conditions and the following disclaimer. -->
<!--- * Redistributions in binary form must reproduce the above -->
<!--- copyright notice, this list of conditions and the following -->
<!--- disclaimer in the documentation and/or other materials provided -->
<!--- with the distribution. -->
<!--- * Neither the name of The Linux Foundation nor the names of its -->
<!--- contributors may be used to endorse or promote products derived -->
<!--- from this software without specific prior written permission. -->
<!--- -->
<!--- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!--- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!--- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!--- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!--- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!--- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!--- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!--- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<mixer>
<!-- These are the initial mixer settings -->
<ctl name="LSM1 Mixer INT3_MI2S_TX" value="0" />
<ctl name="LSM2 Mixer INT3_MI2S_TX" value="0" />
<ctl name="LSM3 Mixer INT3_MI2S_TX" value="0" />
<ctl name="LSM4 Mixer INT3_MI2S_TX" value="0" />
<ctl name="LSM5 Mixer INT3_MI2S_TX" value="0" />
<ctl name="LSM6 Mixer INT3_MI2S_TX" value="0" />
<ctl name="LSM7 Mixer INT3_MI2S_TX" value="0" />
<ctl name="LSM8 Mixer INT3_MI2S_TX" value="0" />
<ctl name="LSM1 Port" value="None" />
<ctl name="LSM2 Port" value="None" />
<ctl name="LSM3 Port" value="None" />
<ctl name="LSM4 Port" value="None" />
<ctl name="LSM5 Port" value="None" />
<ctl name="LSM6 Port" value="None" />
<ctl name="LSM7 Port" value="None" />
<ctl name="LSM8 Port" value="None" />
<ctl name="INT3_MI2S_TX LSM Function" value="None" />
<ctl name="DEC1 MUX" value="ZERO" />
<ctl name="DEC2 MUX" value="ZERO" />
<ctl name="DEC3 MUX" value="ZERO" />
<ctl name="DEC4 MUX" value="ZERO" />
<ctl name="I2S TX2 INP1" value="ZERO" />
<ctl name="I2S TX2 INP2" value="ZERO" />
<path name="listen-voice-wakeup-1">
<ctl name="INT3_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM1 Port" value="INT3_MI2S_TX" />
<ctl name="LSM1 Mixer INT3_MI2S_TX" value="1" />
</path>
<path name="listen-voice-wakeup-2">
<ctl name="INT3_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM2 Port" value="INT3_MI2S_TX" />
<ctl name="LSM2 Mixer INT3_MI2S_TX" value="1" />
</path>
<path name="listen-voice-wakeup-3">
<ctl name="INT3_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM3 Port" value="INT3_MI2S_TX" />
<ctl name="LSM3 Mixer INT3_MI2S_TX" value="1" />
</path>
<path name="listen-voice-wakeup-4">
<ctl name="INT3_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM4 Port" value="INT3_MI2S_TX" />
<ctl name="LSM4 Mixer INT3_MI2S_TX" value="1" />
</path>
<path name="listen-voice-wakeup-5">
<ctl name="INT3_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM5 Port" value="INT3_MI2S_TX" />
<ctl name="LSM5 Mixer INT3_MI2S_TX" value="1" />
</path>
<path name="listen-voice-wakeup-6">
<ctl name="INT3_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM6 Port" value="INT3_MI2S_TX" />
<ctl name="LSM6 Mixer INT3_MI2S_TX" value="1" />
</path>
<path name="listen-voice-wakeup-7">
<ctl name="INT3_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM7 Port" value="INT3_MI2S_TX" />
<ctl name="LSM7 Mixer INT3_MI2S_TX" value="1" />
</path>
<path name="listen-voice-wakeup-8">
<ctl name="INT3_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM8 Port" value="INT3_MI2S_TX" />
<ctl name="LSM8 Mixer INT3_MI2S_TX" value="1" />
</path>
<path name="listen-voice-wakeup-1 preproc">
<ctl name="INT3_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM1 Port" value="ADM_LSM_TX" />
<ctl name="LSM1 Mixer INT3_MI2S_TX" value="1" />
</path>
<path name="listen-voice-wakeup-2 preproc">
<ctl name="INT3_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM2 Port" value="ADM_LSM_TX" />
<ctl name="LSM2 Mixer INT3_MI2S_TX" value="1" />
</path>
<path name="listen-voice-wakeup-3 preproc">
<ctl name="INT3_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM3 Port" value="ADM_LSM_TX" />
<ctl name="LSM3 Mixer INT3_MI2S_TX" value="1" />
</path>
<path name="listen-voice-wakeup-4 preproc">
<ctl name="INT3_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM4 Port" value="ADM_LSM_TX" />
<ctl name="LSM4 Mixer INT3_MI2S_TX" value="1" />
</path>
<path name="listen-voice-wakeup-5 preproc">
<ctl name="INT3_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM5 Port" value="ADM_LSM_TX" />
<ctl name="LSM5 Mixer INT3_MI2S_TX" value="1" />
</path>
<path name="listen-voice-wakeup-6 preproc">
<ctl name="INT3_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM6 Port" value="ADM_LSM_TX" />
<ctl name="LSM6 Mixer INT3_MI2S_TX" value="1" />
</path>
<path name="listen-voice-wakeup-7 preproc">
<ctl name="INT3_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM7 Port" value="ADM_LSM_TX" />
<ctl name="LSM7 Mixer INT3_MI2S_TX" value="1" />
</path>
<path name="listen-voice-wakeup-8 preproc">
<ctl name="INT3_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM8 Port" value="ADM_LSM_TX" />
<ctl name="LSM8 Mixer INT3_MI2S_TX" value="1" />
</path>
<path name="listen-ape-handset-mic">
<ctl name="DEC1 Volume" value="84" />
<ctl name="DEC1 MUX" value="DMIC3" />
</path>
<path name="listen-ape-handset-mic-preproc">
<path name="listen-ape-handset-mic"/>
</path>
<path name="listen-ape-handset-qmic">
<ctl name="INT3_MI2S_TX Channels" value="Four" />
<ctl name="DEC1 MUX" value="DMIC2" />
<ctl name="DEC2 MUX" value="DMIC1" />
<ctl name="DEC3 MUX" value="DMIC3" />
<ctl name="I2S TX2 INP1" value="DEC3" />
<ctl name="DEC4 MUX" value="DMIC4" />
<ctl name="I2S TX2 INP2" value="DEC4" />
</path>
<path name="echo-reference">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="INT4_MI2S_RX"/>
<ctl name="EC Reference Channels" value="Two"/>
<ctl name="EC Reference Bit Format" value="S16_LE"/>
<ctl name="EC Reference SampleRate" value="48000"/>
</path>
</mixer>

View file

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--- Copyright (c) 2013-2017, The Linux Foundation. All rights reserved. -->
<!--- -->
<!--- Redistribution and use in source and binary forms, with or without -->
<!--- modification, are permitted provided that the following conditions are -->
<!--- met: -->
<!--- * Redistributions of source code must retain the above copyright -->
<!--- notice, this list of conditions and the following disclaimer. -->
<!--- * Redistributions in binary form must reproduce the above -->
<!--- copyright notice, this list of conditions and the following -->
<!--- disclaimer in the documentation and/or other materials provided -->
<!--- with the distribution. -->
<!--- * Neither the name of The Linux Foundation nor the names of its -->
<!--- contributors may be used to endorse or promote products derived -->
<!--- from this software without specific prior written permission. -->
<!--- -->
<!--- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!--- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!--- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!--- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!--- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!--- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!--- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!--- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<sound_trigger_platform_info>
<param version="0x0101" /> <!-- this must be the first param -->
<common_config>
<param max_cpe_sessions="1" />
<param max_wdsp_sessions="2" />
<param max_ape_sessions="8" />
<param enable_failure_detection="false" />
<!-- Below backend params must match with port used in mixer path file -->
<!-- param used to configure backend sample rate, format and channels -->
<param backend_port_name="SLIM_0_TX" />
<!-- Param used to match and obtain device backend index -->
<param backend_dai_name="SLIMBUS_0_TX" />
</common_config>
<acdb_ids>
<param DEVICE_HANDSET_MIC_APE="100" />
<param DEVICE_HANDSET_MIC_CPE="128" />
<param DEVICE_HANDSET_MIC_ECPP_CPE="128" />
<param DEVICE_HANDSET_MIC_PP_APE="137" />
<param DEVICE_HANDSET_QMIC_APE="138" />
</acdb_ids>
<!-- Multiple sound_model_config tags can be listed, each with unique -->
<!-- vendor_uuid. The below tag represents QTI SVA engine sound model -->
<!-- configuration. ISV must use their own unique vendor_uuid. -->
<sound_model_config>
<param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b" />
<param execution_type="WDSP" /> <!-- value: "WDSP" "ADSP" "DYNAMIC" -->
<param app_type="2" /> <!-- app type used in ACDB -->
<param library="libsmwrapper.so" />
<param max_cpe_phrases="6" />
<param max_cpe_users="3" />
<param max_ape_phrases="10" />
<param max_ape_users="10" />
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param channel_count="1"/>
<!-- adm_cfg_profile should match with the one defined under adm_config -->
<!-- Set it to NONE if LSM directly connects to AFE -->
<param adm_cfg_profile="NONE" />
<!-- fluence_type: "FLUENCE", FLUENCE_DMIC", FLUENCE_QMIC" -->
<!-- param value is valid when adm_cfg_profile="FLUENCE" -->
<param fluence_type="FLUENCE_QMIC" />
<gcs_usecase>
<param uid="0x1" />
<!-- module_id, instance_id, param_id -->
<param load_sound_model_ids="0x00012C0D, 0x2, 0x00012C14" />
<param confidence_levels_ids="0x00012C0D, 0x2, 0x00012C28" />
<param detection_event_ids="0x00012C0D, 0x2, 0x00012C29" />
<param read_cmd_ids="0x00020013, 0x2, 0x00020015" />
<param read_rsp_ids="0x00020013, 0x2, 0x00020016" />
</gcs_usecase>
<gcs_usecase>
<param uid="0x2" />
<param load_sound_model_ids="0x00012C0D, 0x3, 0x00012C14" />
<param confidence_levels_ids="0x00012C0D, 0x3, 0x00012C28" />
<param detection_event_ids="0x00012C0D, 0x3, 0x00012C29" />
<param read_cmd_ids="0x00020013, 0x3, 0x00020015" />
<param read_rsp_ids="0x00020013, 0x3, 0x00020016" />
</gcs_usecase>
<!-- Module and param ids with which the algorithm is integrated
in non-graphite firmware (note these must come after gcs params)
Extends flexibility to have different ids based on execution mode.
valid execution_mode values: "WDSP" "ADSP" -->
<lsm_usecase>
<param execution_mode="ADSP" />
<param load_sound_model_ids="0x00012C1C, 0x00012C14" />
<param unload_sound_model_ids="0x00012C1C, 0x00012C15" />
<param confidence_levels_ids="0x00012C1C, 0x00012C07" />
<param operation_mode_ids="0x00012C1C, 0x00012C02" />
<param polling_enable_ids="0x00012C1C, 0x00012C1B" />
</lsm_usecase>
<lsm_usecase>
<param execution_mode="WDSP" />
<param load_sound_model_ids="0x00012C0D, 0x00012C14" />
<param unload_sound_model_ids="0x00012C0D, 0x00012C15" />
<param confidence_levels_ids="0x00012C0D, 0x00012C07" />
<param operation_mode_ids="0x00012C0D, 0x00012C02" />
</lsm_usecase>
<!-- format: "ADPCM_packet" or "PCM_packet" !-->
<!-- transfer_mode: "FTRT" or "RT" -->
<!-- kw_duration is in milli seconds. It is valid only for FTRT
transfer mode -->
<param capture_keyword="PCM_packet, RT, 2000" />
<param client_capture_read_delay="2000" />
</sound_model_config>
<!-- Multiple adm_config tags can be listed, each with unique profile name. -->
<!-- app_type to match corresponding value from ACDB -->
<adm_config>
<param adm_cfg_profile="DEFAULT" />
<param app_type="69938" />
<param sample_rate="16000" />
<param bit_width="16" />
</adm_config>
<adm_config>
<param adm_cfg_profile="FLUENCE" />
<param app_type="69943" />
<param sample_rate="16000" />
<param bit_width="16" />
</adm_config>
<!-- backend_type tag defines backend type for each device -->
<!-- Default value is assumed for devices that are not listed here -->
<backend_type>
<param DEVICE_HANDSET_MIC_ECPP_CPE="BACKEND_ECPP" />
</backend_type>
</sound_trigger_platform_info>

View file

@ -0,0 +1,34 @@
/*
*
* Copyright (c) 2013, The Linux Foundation. All rights reserved.
* Not a Contribution, Apache license notifications and license are retained
* for attribution purposes only.
*
* 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.
*/
#ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H
#define BTM_DEF_LOCAL_NAME "MI 6X"
// Disables read remote device feature
#define MAX_ACL_CONNECTIONS 16
#define MAX_L2CAP_CHANNELS 16
#define BLE_VND_INCLUDED TRUE
// skips conn update at conn completion
#define BT_CLEAN_TURN_ON_DISABLED 1
/* Increasing SEPs to 12 from 6 to support SHO/MCast i.e. two streams per codec */
#define AVDT_NUM_SEPS 12
#endif

91
compatibility_matrix.xml Normal file
View file

@ -0,0 +1,91 @@
<!-- Copyright (c) 2017, The Linux Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of The Linux Foundation nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<compatibility-matrix version="1.0" type="device">
<hal format="hidl" optional="false">
<name>android.frameworks.schedulerservice</name>
<version>1.0</version>
<interface>
<name>ISchedulingPolicyService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.frameworks.sensorservice</name>
<version>1.0</version>
<interface>
<name>ISensorManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.hidl.allocator</name>
<version>1.0</version>
<interface>
<name>IAllocator</name>
<instance>ashmem</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.hidl.manager</name>
<version>1.0</version>
<interface>
<name>IServiceManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.hidl.memory</name>
<version>1.0</version>
<interface>
<name>IMapper</name>
<instance>ashmem</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.hidl.token</name>
<version>1.0</version>
<interface>
<name>ITokenManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.system.wifi.keystore</name>
<version>1.0</version>
<interface>
<name>IKeystore</name>
<instance>default</instance>
</interface>
</hal>
<vndk>
<version>0.0.0</version>
</vndk>
</compatibility-matrix>

167
config.fs Normal file
View file

@ -0,0 +1,167 @@
[AID_QCOM_DIAG]
value:2950
[AID_QTI_DIAG]
value:2901
[AID_RFS]
value:2951
[AID_RFS_SHARED]
value:2952
[vendor/bin/wcnss_filter]
mode: 0755
user: AID_BLUETOOTH
group: AID_BLUETOOTH
caps: BLOCK_SUSPEND
[system/vendor/bin/wcnss_filter]
mode: 0755
user: AID_BLUETOOTH
group: AID_BLUETOOTH
caps: BLOCK_SUSPEND
[vendor/bin/hw/android.hardware.bluetooth@1.0-service-qti]
mode: 0755
user: AID_BLUETOOTH
group: AID_BLUETOOTH
caps: BLOCK_SUSPEND NET_ADMIN
[system/vendor/bin/hw/android.hardware.bluetooth@1.0-service-qti]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: BLOCK_SUSPEND NET_ADMIN
[system/bin/cnss-daemon]
mode: 0755
user: AID_BLUETOOTH
group: AID_BLUETOOTH
caps: NET_BIND_SERVICE
[vendor/bin/pm-service]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE
[system/vendor/bin/pm-service]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE
[system/bin/pm-service]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE
[vendor/bin/pd-mapper]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE
[system/vendor/bin/pd-mapper]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE
[system/bin/pd-mapper]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE
[vendor/bin/imsdatadaemon]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE
[system/vendor/bin/imsdatadaemon]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE
[vendor/bin/ims_rtp_daemon]
mode: 0755
user: AID_SYSTEM
group: AID_RADIO
caps: NET_BIND_SERVICE
[system/vendor/bin/ims_rtp_daemon]
mode: 0755
user: AID_SYSTEM
group: AID_RADIO
caps: NET_BIND_SERVICE
[vendor/bin/imsrcsd]
mode: 0755
user: AID_SYSTEM
group: AID_RADIO
caps: WAKE_ALARM
[system/vendor/bin/imsrcsd]
mode: 0755
user: AID_SYSTEM
group: AID_RADIO
caps: WAKE_ALARM
[vendor/bin/cnd]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE BLOCK_SUSPEND NET_ADMIN
[system/vendor/bin/cnd]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE BLOCK_SUSPEND NET_ADMIN
[vendor/bin/slim_daemon]
mode: 0755
user: AID_GPS
group: AID_GPS
caps: NET_BIND_SERVICE
[system/vendor/bin/slim_daemon]
mode: 0755
user: AID_GPS
group: AID_GPS
caps: NET_BIND_SERVICE
[vendor/bin/xtwifi-client]
mode: 0755
user: AID_GPS
group: AID_GPS
caps: NET_BIND_SERVICE BLOCK_SUSPEND
[firmware/]
mode: 0771
user: AID_SYSTEM
group: AID_SYSTEM
caps: 0
[bt_firmware/]
mode: 0771
user: AID_SYSTEM
group: AID_SYSTEM
caps: 0
[persist/]
mode: 0771
user: AID_SYSTEM
group: AID_SYSTEM
caps: 0
[dsp/]
mode: 0771
user: AID_MEDIA
group: AID_MEDIA
caps: 0

View file

@ -1,81 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!--
/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-->
<!--
/* Three lists exists,
* GamedRoBlackList: the name pf the apps
* for which the gamed profile should never be applied.
* GamedROGame lists: the name of the apps for which gamed
* profile should always be applied.
* The above two lists are never modified. And contain at
* max of 20 entries.
* ReadWriteGamed lists is the list of the apps for which the
* decision to apply a game-profile is based on the type of
* the app. This list can contain 100 entries.
* Can be over-written during the execution of the program.It
* is maintained as a circular list.
*
* Activity Type for GamedAppList is determined as follows
* GAME =1 , Benchmark =2 , App =3.
*/ -->
<AppCatalog>
<GamedROBlackList>
<AppAttributes
PackageName="com.android.launcher2"
ActivityType="3" />
<AppAttributes
PackageName="com.android.launcher3"
ActivityType="3" />
<AppAttributes
PackageName="com.android.systemui"
ActivityType="3" />
<AppAttributes
PackageName="com.google.android.talk"
ActivityType="3" />
<AppAttributes
PackageName="com.facebook.katana"
ActivityType="3" />
</GamedROBlackList>
<GamedROGameList>
<AppAttributes
PackageName="com.ea.games.r3_row"
ActivityType="1" />
<AppAttributes
PackageName="com.kiloo.subwaysurf"
ActivityType="1" />
</GamedROGameList>
<GamedRWAppList>
</GamedRWAppList>
</AppCatalog>

91
configs/gps/flp.conf Normal file
View file

@ -0,0 +1,91 @@
###################################
##### FLP settings #####
###################################
###################################
# FLP BATCHING SIZE
###################################
# The number of batched locations
# requested to modem. The desired number
# defined below may not be satisfied, as
# the modem can only return the number
# of batched locations that can be allocated,
# which is limited by memory. The default
# batch size defined as 20 as below.
BATCH_SIZE=20
# The number of batched locations
# requested to modem for outdoor
# trip batching. The desired number
# defined below may not be satisfied, as
# the modem can only return the number
# of batched locations that can be allocated,
# which is limited by memory. The default
# trip batch size defined as 600 as below.
OUTDOOR_TRIP_BATCH_SIZE=600
###################################
# FLP BATCHING SESSION TIMEOUT
###################################
# Duration with which batch session timeout
# happens in milliseconds. If not specified
# or set to zero, batching session timeout
# defaults to 20 seconds by the modem.
# BATCH_SESSION_TIMEOUT=20000
###################################
# FLP CAPABILITIES BIT MASK
###################################
# GEOFENCE = 0x01
# BATCHING = 0x02
# default = GEOFENCE | BATCHING
CAPABILITIES=0x03
###################################
# FLP BATCHING ACCURACY
###################################
# Set to one of the defined values below
# to define the accuracy of batching.
# If not specified, accuracy defaults
# to LOW.
# FLP BATCHING ACCURACY values:
# Low accuracy = 0
# Medium accuracy = 1
# High accuracy = 2
ACCURACY=1
###################################
# FLP GEOFENCE RESPONSIVENESS
###################################
# If set to one of the defined values below,
# it will override the responsiveness for
# FLP geofence, which implements the fused
# location API. If not set to a value defined
# below, which is default, it will not
# override the responsivness.
# FLP_GEOFENCE_RESPONSIVENESS_OVERRIDE Values:
# 1: LOW responsiveness
# 2: MEDIUM responsiveness
# 3: HIGH responsiveness
FLP_GEOFENCE_RESPONSIVENESS_OVERRIDE = 0
####################################
# By default APPS must support LB only if modem support
# LB 1.5 and above. This parameter adds an exception
# for targets where modem only supports LB 1.0.
# This might be useful for primarily outdoor devices.
# 0: MUST NOT ALLOW LB IF MODEM ONLY SUPPORTS
# LB 1.0
# 1: ALLOW LB IF MODEM ONLY SUPPORTS LB 1.0
####################################
ALLOW_LB_1_0 = 0
####################################
# By default if network fixes are not sensor assisted
# these fixes must be dropped. This parameter adds an exception
# for targets where there is no PDR and we still want to
# report out network fixes
# 0: MUST NOT ALLOW NETWORK FIXES
# 1: ALLOW NETWORK FIXES
####################################
ALLOW_NETWORK_FIXES = 0

212
configs/gps/gps.conf Normal file
View file

@ -0,0 +1,212 @@
#Uncommenting these urls would only enable
#the power up auto injection and force injection(test case).
#XTRA_SERVER_1=http://xtrapath1.izatcloud.net/xtra2.bin
#XTRA_SERVER_2=http://xtrapath2.izatcloud.net/xtra2.bin
#XTRA_SERVER_3=http://xtrapath3.izatcloud.net/xtra2.bin
#Version check for XTRA
#DISABLE = 0
#AUTO = 1
#XTRA2 = 2
#XTRA3 = 3
XTRA_VERSION_CHECK=0
XTRA_TEST_ENABLED = 1
XTRA_THROTTLE_ENABLED = 0
# Error Estimate
# _SET = 1
# _CLEAR = 0
ERR_ESTIMATE=0
#NTP server
NTP_SERVER=time.izatcloud.net
#XTRA CA path
XTRA_CA_PATH=/system/etc/security/cacerts
# DEBUG LEVELS: 0 - none, 1 - Error, 2 - Warning, 3 - Info
# 4 - Debug, 5 - Verbose
# If DEBUG_LEVEL is commented, Android's logging levels will be used
DEBUG_LEVEL = 5
# Intermediate position report, 1=enable, 0=disable
INTERMEDIATE_POS=0
# Below bit mask configures how GPS functionalities
# should be locked when user turns off GPS on Settings
# Set bit 0x1 if MO GPS functionalities are to be locked
# Set bit 0x2 if NI GPS functionalities are to be locked
# default - non is locked for backward compatibility
#GPS_LOCK = 0
# supl version 1.0
SUPL_VER=0x20000
# Emergency SUPL, 1=enable, 0=disable
#SUPL_ES=0
#Choose PDN for Emergency SUPL
#1 - Use emergency PDN
#0 - Use regular SUPL PDN for Emergency SUPL
USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL=0
#SUPL_MODE is a bit mask set in config.xml per carrier by default.
#If it is uncommented here, this value will overwrite the value from
#config.xml.
#MSA=0X2
#MSB=0X1
#SUPL_MODE=
# GPS Capabilities bit mask
# SCHEDULING = 0x01
# MSB = 0x02
# MSA = 0x04
# ON_DEMAND_TIME = 0x10
# GEOFENCE = 0x20
# default = ON_DEMAND_TIME | MSA | MSB | SCHEDULING | GEOFENCE
CAPABILITIES=0x37
# Accuracy threshold for intermediate positions
# less accurate positions are ignored, 0 for passing all positions
# ACCURACY_THRES=5000
################################
##### AGPS server settings #####
################################
# FOR SUPL SUPPORT, set the following
SUPL_HOST=supl.qxwz.com
SUPL_PORT=7275
# FOR C2K PDE SUPPORT, set the following
# C2K_HOST=c2k.pde.com or IP
# C2K_PORT=1234
# Bitmask of slots that are available
# for write/install to, where 1s indicate writable,
# and the default value is 0 where no slots
# are writable. For example, AGPS_CERT_WRITABLE_MASK
# of b1000001010 makes 3 slots available
# and the remaining 7 slots unwritable.
#AGPS_CERT_WRITABLE_MASK=0
####################################
# LTE Positioning Profile Settings
####################################
# 0: Enable RRLP on LTE(Default)
# 1: Enable LPP_User_Plane on LTE
# 2: Enable LPP_Control_Plane
# 3: Enable both LPP_User_Plane and LPP_Control_Plane
LPP_PROFILE = 3
################################
# EXTRA SETTINGS
################################
# NMEA provider (1=Modem Processor, 0=Application Processor)
NMEA_PROVIDER=0
# Mark if it is a SGLTE target (1=SGLTE, 0=nonSGLTE)
SGLTE_TARGET=0
##################################################
# Select Positioning Protocol on A-GLONASS system
##################################################
# 0x1: RRC CPlane
# 0x2: RRLP UPlane
# 0x4: LLP Uplane
A_GLONASS_POS_PROTOCOL_SELECT = 0
##################################################
# Select technology for LPPe Control Plane
##################################################
# 0x1: DBH for LPPe CP
# 0x2: WLAN AP Measurements for LPPe CP
# 0x4: SRN AP measurement for CP
# 0x8: Sensor Barometer Measurement LPPe CP
LPPE_CP_TECHNOLOGY = 0
##################################################
# Select technology for LPPe User Plane
##################################################
# 0x1: DBH for LPPe UP
# 0x2: WLAN AP Measurements for LPPe UP
# 0x4: SRN AP measurement for UP
# 0x8: Sensor Barometer Measurement LPPe UP
LPPE_UP_TECHNOLOGY = 0
##################################################
# AGPS_CONFIG_INJECT
##################################################
# enable/disable injection of AGPS configurations:
# SUPL_VER
# SUPL_HOST
# SUPL_PORT
# C2K_HOST
# C2K_PORT
# LPP_PROFILE
# A_GLONASS_POS_PROTOCOL_SELECT
# 0: disable
# 1: enable
AGPS_CONFIG_INJECT = 1
##################################################
# GNSS settings for automotive use cases
# Configurations in following section are
# specific to automotive use cases, others
# please do not change, keep the default values
##################################################
# AP Coarse Timestamp Uncertainty
##################################################
# default : 10
# AP time stamp uncertainty, until GNSS receiver
# is able to acquire better timing information
AP_TIMESTAMP_UNCERTAINTY = 10
##################################################
# QDR engine availability status
##################################################
# 0 : NO QDR (default)
# 1 : QDR enabled
# This settings enables QDR Configuration for
# automotive use case, if enabled then
# DR_AP_Service needs to be enabled in izat.conf
#EXTERNAL_DR_ENABLED = 0
#####################################
# DR_SYNC Pulse Availability
#####################################
# 0 : DR_SYNC pulse not available (default)
# 1 : DR_SYNC pulse available
# This configuration enables the driver to make use
# of PPS events generated by DR_SYNC pulse
# Standard Linux PPS driver needs to be enabled
DR_SYNC_ENABLED = 0
#####################################
# PPS Device name
#####################################
PPS_DEVICENAME = /dev/pps0
#####################################
# AP Clock Accuracy
#####################################
# Quality of APPS processor clock (in PPM).
# Value specified is used for calculation of
# APPS time stamp uncertainty
AP_CLOCK_PPM = 100
#####################################
# MAX ms difference to detect missing pulse
#####################################
# Specifies time threshold in ms to validate any missing PPS pulses
MISSING_PULSE_TIME_DELTA = 900
#####################################
# Propagation time uncertainty
#####################################
# This settings enables time uncertainty propagation
# logic incase of missing PPS pulse
PROPAGATION_TIME_UNCERTAINTY = 1

279
configs/gps/izat.conf Normal file
View file

@ -0,0 +1,279 @@
#########################################
# Log verbosity control for izat modules
#########################################
# OFF = 0, ERROR = 1, WARNING = 2, INFO = 3, DEBUG = 4, VERBOSE = 5
IZAT_DEBUG_LEVEL = 5
##################################################
# Select WIFI Wait Timeout value in seconds for SUPL
##################################################
WIFI_WAIT_TIMEOUT_SELECT = 0
##################################################
# Time interval of injecting SRN scan data to modem
# time in seconds.
# Note: recommended value is between 1-5 sec
##################################################
LPPE_SRN_DATA_SCAN_INJECT_TIME=2
################################
# NLP Settings
################################
# NLP_MODE 1: OSNLP Only, 2: QNP Only, 3: Combo, 4: QNP preferred
# For Automotive products, please use NLP_MODE = 4 only.
# NLP_TOLERANCE_TIME_FIRST: Time in ms used in Combo mode
# to determine how much Tolerance for first position
# NLP_TOLERANCE_TIME_AFTER: Time in ms used in Combo mode
# to determine how much Tolerance for positions after first
# NLP_THRESHOLD: Sets how many failures needed before
# switching preferred NLP in Combo mode
# NLP_ACCURACY_MULTIPLE: Determines how far off the accuracy
# must be, in multiples, between two NLP location reports to
# be considered much worse accuracy. Used in switching logic
# NLP COMBO MODE USES QNP WITH NO EULA CONSENT: Determines
# whether or not to still send network location requests to
# QNP when the EULA is not consented to by the user. QNP can
# still return ZPP locations or injected locations even
# without EULA consent, but the uncertainty can be high.
# QNP preferred mode prefers QNP when there is EULA consent,
# otherwise OSNLP is used.
NLP_MODE = 1
NLP_MODE_EMERGENCY = 2
NLP_TOLERANCE_TIME_FIRST = 5000
NLP_TOLERANCE_TIME_AFTER = 20000
NLP_THRESHOLD = 3
NLP_ACCURACY_MULTIPLE = 2
NLP_COMBO_MODE_USES_QNP_WITH_NO_EULA_CONSENT = 1
#########################################
# NLP PACKAGE AND ACTION SETTINGS
#########################################
# OSNLP_PACKAGE/OSNLP_ACTION: name/action of default NLP package
#OSNLP_PACKAGE = com.google.android.gms
#OSNLP_ACTION = com.android.location.service.v3.NetworkLocationProvider
# REGION_OSNLP_PACKAGE/REGION_OSNLP_ACTION:
# These two values will be used as alternative
# for particular region where default NLP is not functional.
#REGION_OSNLP_PACKAGE = com.baidu.map.location
#REGION_OSNLP_ACTION = com.android.location.service.v3.NetworkLocationProvider
# Threshold period for ZPP triggers
ZPP_TRIGGER_THRESHOLD=60000
# Accuracy threshold for ZPP positions
# less accurate positions are ignored
ZPP_ACCURACY_THRESHOLD=20000
###################################
# GEOFENCE SERVICES
###################################
# If set to one of the defined values below, it will override
# the responsiveness for geofence services, which implements
# the Proximity Alert API. If not set to a value defined below,
# which is default, it will not override the responsivness.
# The geofence HAL API is unaffected by this value.
# GEOFENCE_SERVICES_RESPONSIVENESS_OVERRIDE Values:
# 1: LOW responsiveness
# 2: MEDIUM responsiveness
# 3: HIGH responsiveness
GEOFENCE_SERVICES_RESPONSIVENESS_OVERRIDE = 0
#####################################
#GTP Opt-In app
#####################################
#GTP privacy policy version url
#https support is required
GTP_PRIVACY_VERSION_URL = https://info.izatcloud.net/privacy/version.html
#GTP privacy policy version download retry interval
#unit is second. default is 86400
GTP_PRIVACY_RETRY_INTERVAL = 86400
#####################################
# IZAT PREMIUM FEATURE SETTINGS
#####################################
#Possible states of a feature:
#DISABLED
#BASIC
#PREMIUM
#GTP_CELL_PROC valid options:
# AP
# MODEM
GTP_CELL_PROC=MODEM
#GTP_CELL valid modes:
# DISABLED
# BASIC
GTP_CELL=DISABLED
#GTP_WIFI valid modes:
# DISABLED
# BASIC
GTP_WIFI=DISABLED
#GTP_WAA valid modes:
# DISABLED
# BASIC
GTP_WAA=DISABLED
#SAP valid modes:
# DISABLED
# BASIC
# PREMIUM
SAP=PREMIUM
#ODCPI valid modes:
#DISABLED
#BASIC
ODCPI=BASIC
#FREE_WIFI_SCAN_INJECT valid modes:
#DISABLED
#BASIC
FREE_WIFI_SCAN_INJECT=BASIC
#SUPL_WIFI valid modes:
#DISABLED
#BASIC
SUPL_WIFI=BASIC
#WIFI_SUPPLICANT_INFO valid modes:
#DISABLED
#BASIC
WIFI_SUPPLICANT_INFO=BASIC
#####################################
# Location process launcher settings
#####################################
# DO NOT MODIFY
# Modifying below attributes without
# caution can have serious implications.
#Values for PROCESS_STATE:
# ENABLED
# DISABLED
#PROCESS_NAME
# Name of the executable file.
#FEATURE MASKS:
# GTP-WIFI 0X03
# GTP-AP-CELL 0X0c
# GTP-MP-CELL 0xc00
# GTP-WAA 0X300
# SAP 0Xc0
# ODCPI 0x1000
# FREE_WIFI_SCAN_INJECT 0x2000
# SUPL_WIFI 0x4000
# WIFI_SUPPLICANT_INFO 0x8000
#Values for PLATFORMS can be:
#1. Any valid values obtained from ro.board.platform separated by single space. For example: msm8960 msm8226
#2. 'all' or 'all exclude' -> for All platforms
#3. 'all exclude XXXX' -> All platforms exclude XXXX. For example: all exclude msm8937
#Values for BASEBAND can be:
#1. Any valid values obtained from ro.baseband separated by single space. For example: sglte sglte2
#2. 'all' or 'all exclude' -> for all basebands
#3. 'all exclude XXXX' -> All basebands exclude XXXX. For example: all exclude sglte
PROCESS_NAME=DR_AP_Service
PROCESS_ARGUMENT=
PROCESS_STATE=DISABLED
PROCESS_GROUPS=gps diag
PREMIUM_FEATURE=0
IZAT_FEATURE_MASK=0
PLATFORMS=all
BASEBAND=all
LEAN_TARGETS=DISABLED
HARDWARE_TYPE=automotive
#Valyes for LEAN_TARGETS can be:
#ENABLED -> if this process is supposed to run on lean and mean targets
#DISABLED -> if this process is to be disabled on lean and mean targets
PROCESS_NAME=garden_app
PROCESS_ARGUMENT=-l 0 -T 1
PROCESS_STATE=DISABLED
PROCESS_GROUPS=gps diag
PREMIUM_FEATURE=0
IZAT_FEATURE_MASK=0
PLATFORMS=all
BASEBAND=all
LEAN_TARGETS=DISABLED
HARDWARE_TYPE=automotive
PROCESS_NAME=gpsone_daemon
PROCESS_ARGUMENT=
PROCESS_STATE=ENABLED
PROCESS_GROUPS=inet
PREMIUM_FEATURE=0
IZAT_FEATURE_MASK=0
PLATFORMS=msm7630_fusion
BASEBAND=svlte2a sglte sglte2
LEAN_TARGETS=DISABLED
HARDWARE_TYPE=all
PROCESS_NAME=lowi-server
PROCESS_ARGUMENT=
PROCESS_STATE=ENABLED
PROCESS_GROUPS=gps net_admin wifi inet qcom_diag
PREMIUM_FEATURE=0
IZAT_FEATURE_MASK=0xf303
PLATFORMS=all
BASEBAND=all
LEAN_TARGETS=DISABLED
HARDWARE_TYPE=all
PROCESS_NAME=xtwifi-inet-agent
PROCESS_ARGUMENT=
PROCESS_STATE=ENABLED
PROCESS_GROUPS=inet gps
PREMIUM_FEATURE=1
IZAT_FEATURE_MASK=0xf0f
PLATFORMS=all
BASEBAND=all
LEAN_TARGETS=DISABLED
HARDWARE_TYPE=all
PROCESS_NAME=xtwifi-client
PROCESS_ARGUMENT=
PROCESS_STATE=ENABLED
PROCESS_GROUPS=wifi inet gps system oem_2952
PREMIUM_FEATURE=1
IZAT_FEATURE_MASK=0xf0f
PLATFORMS=all
BASEBAND=all
LEAN_TARGETS=DISABLED
HARDWARE_TYPE=all
PROCESS_NAME=slim_daemon
PROCESS_ARGUMENT=
PROCESS_STATE=DISABLED
PROCESS_GROUPS=gps qcom_diag can
PREMIUM_FEATURE=1
IZAT_FEATURE_MASK=0xf0
PLATFORMS=all
BASEBAND=all
LEAN_TARGETS=DISABLED
HARDWARE_TYPE=all
PROCESS_NAME=xtra-daemon
PROCESS_ARGUMENT=
PROCESS_STATE=ENABLED
PROCESS_GROUPS=inet gps system
PREMIUM_FEATURE=0
IZAT_FEATURE_MASK=0
PLATFORMS=all
BASEBAND=all
LEAN_TARGETS=DISABLED
HARDWARE_TYPE=all
##################################################
# The name of process which launches XTRA client.
# Default process name in software which launches
# XTRA client is system-server. Uncomment the below
# to set the desired process which will start the
# XTRA client.
##################################################
# XC20_LAUNCH_PROCESS_NAME=garden_app

21
configs/gps/lowi.conf Normal file
View file

@ -0,0 +1,21 @@
#*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
#
# LOWI Config file
#
# GENERAL DESCRIPTION
# This file contains the config params for LOWI
#
# Copyright (c) 2012-2013 Qualcomm Atheros, Inc.
# All Rights Reserved.
# Qualcomm Atheros Confidential and Proprietary.
#
# Export of this technology or software is regulated by the U.S. Government.
# Diversion contrary to U.S. law prohibited.
#=============================================================================*/
# X86 ONLY - UBUNTU:
# Copy this file in the same directory where the executable is
# Log level
# EL_LOG_OFF = 0, EL_ERROR = 1, EL_WARNING = 2, EL_INFO = 3, EL_DEBUG = 4, EL_VERBOSE = 5, EL_LOG_ALL = 100
LOWI_LOG_LEVEL = 3

70
configs/gps/sap.conf Normal file
View file

@ -0,0 +1,70 @@
################################
# Sensor Settings
################################
#The following parameters are optional.
#Internal defaults support MEMS sensors
#native to most handset devices.
#Device specific sensor characterization
#for improved performance is possible as
#described in SAP application notes.
#GYRO_BIAS_RANDOM_WALK=
#ACCEL_RANDOM_WALK_SPECTRAL_DENSITY=
#ANGLE_RANDOM_WALK_SPECTRAL_DENSITY=
#RATE_RANDOM_WALK_SPECTRAL_DENSITY=
#VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY=
# Sensor Sampling Rate Parameters for Low-Data Rate Filter (should be greater than 0)
# used in loc_eng_reinit
SENSOR_ACCEL_BATCHES_PER_SEC=2
SENSOR_ACCEL_SAMPLES_PER_BATCH=5
SENSOR_GYRO_BATCHES_PER_SEC=2
SENSOR_GYRO_SAMPLES_PER_BATCH=5
# Sensor Sampling Rate Parameters for High-Data Rate Filter (should be greater than 0)
SENSOR_ACCEL_BATCHES_PER_SEC_HIGH=4
SENSOR_ACCEL_SAMPLES_PER_BATCH_HIGH=25
SENSOR_GYRO_BATCHES_PER_SEC_HIGH=4
SENSOR_GYRO_SAMPLES_PER_BATCH_HIGH=25
# Sensor Control Mode (0=AUTO, 1=FORCE_ON)
# used in loc_eng_reinit
SENSOR_CONTROL_MODE=0
# Enable or Disable Sensors for GPS use (0=Enable, 1=Disable)
# used in loc_eng_reinit
SENSOR_USAGE=0
# Choose GSIFF sensor provider (1=Snapdragon Sensors Core, 2=Android NDK)
SENSOR_PROVIDER=1
# Bit mask used to define which sensor algorithms are used.
# Setting each bit has the following definition:
# 0x1 - DISABLE_INS_POSITIONING_FILTER
# 0x0 - ENABLE_INS_POSITIONING_FILTER
SENSOR_ALGORITHM_CONFIG_MASK=0x1
#Vehicle Network Provider configuration
#Service configuration strings
#The number before colon in VN_X items defines version of the format of the rest of the string
#VN_ACCEL_CFG=0:5
#VN_GYRO_CFG=0:5.5
#VN_ODOMETRY_CFG=0:2,4.5
VN_ACCEL_CFG=1:128,0,12,0.0048828125,12,12,0.0048828125,24,12,0.0048828125
VN_GYRO_CFG=1:129,0,16,0.00006103515625,16,16,0.00006103515625,32,16,0.00006103515625
VN_ODOMETRY_CFG=1:130,0,1,5,6,32
VN_SPEED_CFG=1:131,5,8,1,2,3,1,1,9,2,14,2
VN_DWS_CFG=1:132,5,8,1,2,3,1,1,5,2,7,2,9,2,11,2,13,2,15,2,17,2,19,2
VN_GEAR_CFG=1:422,20,4,0,4,1,9,0,1,2,3,4,5,6,7,8
#Procesors clock ratio: AP and CAN bus microcontroller
VN_PROC_CLOCK_RATIO=1.93165618815148
# Time source used by Sensor HAL
# Setting this value controls accuracy of location sensor services.
# 0 - Unknown
# 1 - CLOCK_BOOTTIME
# 2 - CLOCK_MONOTONIC
# 3 - CLOCK_REALTIME
# 4 - CLOCK_BOOTTIME using Alarm timer interface
NDK_PROVIDER_TIME_SOURCE=1

75
configs/gps/xtwifi.conf Normal file
View file

@ -0,0 +1,75 @@
#GTP AP Project client core config file
#
#GENERAL DESCRIPTION
#This is used by client core
#
#Copyright (c) 2012-2014 Qualcomm Atheros, Inc.
#All Rights Reserved.
#Qualcomm Atheros Confidential and Proprietary.
#
#Copyright (c) 2017 Qualcomm Technologies, Inc.
#All Rights Reserved.
#Confidential and Proprietary - Qualcomm Technologies, Inc.
##############################################################################
# non-IOT devices configuration items #
# For non-IOT devices, configure below configuration items #
# according to the app note: 80-NK218-1 and remove the configuration items #
# in section of "IOT devices configuration items". #
##############################################################################
# ASN URI v2 to be used by some GTP AP modules that
# need to run with ASN URI v2 protocol.
XT_SERVER_ROOT_URL = https://gtp1.izatcloud.net:443/uds/v2
# ASN URI v3 to be used by GTP AP modules that
# can support ASN URI v3 protocol.
XT_SERVER_ROOT_URL_V3 = https://gtp1.izatcloud.net:443/uds/v3
# size, in bytes, of the cache on device
SIZE_BYTE_TOTAL_CACHE = 5000000
##############################################################################
# IOT devices configuration items #
# For IOT devices, configure below configuration items #
# according to the app note and remove the configuration items in section of #
# "non-IOT devices configuration items". #
##############################################################################
# ASN URI v3 to be used by GTP AP modules that
# can support ASN URI v3 protocol.
# XT_SERVER_ROOT_URL_V3 = https://gtpma1.izatcloud.net:443/uds/v3
# 1: default mode, where mobile downloads tiles and partitions
# 2: mode for memory and bandwidth limited devices, where mobile
# downloads AP list and cell list
# GTP_AP_MODE = 2
# 1: MP cell features relies on GTP AP for either download or upload
# 0: MP cell features does not rely on GTP AP
# GTP_AP_NEEDED_BY_MP_CELL = 1
##############################################################################
# Configuration items applicable to all devices #
##############################################################################
# Log verbosity control for most of the GTP WiFi system, including native and
# Java componenets
# OFF = 0, ERROR = 1, WARNING = 2, INFO = 3, DEBUG = 4, VERBOSE = 5, ALL = 100
DEBUG_GLOBAL_LOG_LEVEL = 2
# this is used at the server side to distinguish uploads from different maker/model
# default "Qualcomm"
OEM_ID_IN_REQUEST_TO_SERVER = "Qualcomm"
# this is used at the server side to distinguish uploads from different maker/model
# default "UNKNOWN"
MODEL_ID_IN_REQUEST_TO_SERVER = "UNKNOWN"
##############################################################################
# Qualcomm Network Location Provider config #
##############################################################################
# Accuracy Threshold for NLP position. Position exceeds thsi threshold will be filtered out.
# Default is 25000 meters.
LARGE_ACCURACY_THRESHOLD_TO_FILTER_NLP_POSITION = 25000

View file

@ -192,11 +192,6 @@ Only the three quirks included above are recognized at this point:
</MediaCodec>
</Encoders>
<Decoders>
<!-- Audio Hardware -->
<!-- Audio Software -->
<MediaCodec name="OMX.qti.audio.decoder.flac" type="audio/flac" >
<Limit name="concurrent-instances" max="10" />
</MediaCodec>
<!-- Video Hardware -->
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />

View file

@ -118,7 +118,7 @@
<Limit name="measured-frame-rate-640x360" range="210-215" />
<Limit name="measured-frame-rate-720x480" range="120-125" />
<Limit name="measured-frame-rate-1280x720" range="70-85" />
<Limit name="measured-frame-rate-1920x1080" range="16-18" />
<Limit name="measured-frame-rate-1920x1080" range="27-29" />
</MediaCodec>
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="190-210" />

View file

@ -0,0 +1,428 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2013 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 MediaSettings [
<!ELEMENT MediaSettings (CamcorderProfiles,
EncoderOutputFileFormat+,
VideoEncoderCap+,
AudioEncoderCap+,
VideoDecoderCap,
AudioDecoderCap)>
<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
<!ELEMENT EncoderProfile (Video, Audio)>
<!ATTLIST EncoderProfile quality (high|low) #REQUIRED>
<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
<!ATTLIST EncoderProfile cameraId (0|1) #REQUIRED>
<!ELEMENT Video EMPTY>
<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
<!ATTLIST Video bitRate CDATA #REQUIRED>
<!ATTLIST Video width CDATA #REQUIRED>
<!ATTLIST Video height CDATA #REQUIRED>
<!ATTLIST Video frameRate CDATA #REQUIRED>
<!ELEMENT Audio EMPTY>
<!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
<!ATTLIST Audio bitRate CDATA #REQUIRED>
<!ATTLIST Audio sampleRate CDATA #REQUIRED>
<!ATTLIST Audio channels (1|2) #REQUIRED>
<!ELEMENT ImageEncoding EMPTY>
<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
<!ELEMENT ImageDecoding EMPTY>
<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
<!ELEMENT Camera EMPTY>
<!ELEMENT EncoderOutputFileFormat EMPTY>
<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
<!ELEMENT VideoEncoderCap EMPTY>
<!ATTLIST VideoEncoderCap name (h264|h263|m4v|wmv) #REQUIRED>
<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
<!ELEMENT AudioEncoderCap EMPTY>
<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma) #REQUIRED>
<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap minChannels (1|2) #REQUIRED>
<!ATTLIST AudioEncoderCap maxChannels (1|2) #REQUIRED>
<!ELEMENT VideoDecoderCap EMPTY>
<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
<!ELEMENT AudioDecoderCap EMPTY>
<!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
<!ELEMENT VideoEditorCap EMPTY>
<!ATTLIST VideoEditorCap maxInputFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEditorCap maxInputFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEditorCap maxOutputFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEditorCap maxOutputFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEditorCap maxPrefetchYUVFrames CDATA #REQUIRED>
<!ELEMENT ExportVideoProfile EMPTY>
<!ATTLIST ExportVideoProfile name (h264|h263|m4v) #REQUIRED>
<!ATTLIST ExportVideoProfile profile CDATA #REQUIRED>
<!ATTLIST ExportVideoProfile level CDATA #REQUIRED>
]>
<!--
This file is used to declare the multimedia profiles and capabilities
on an android-powered device.
-->
<MediaSettings>
<!-- Each camcorder profile defines a set of predefined configuration parameters -->
<CamcorderProfiles cameraId="0">
<EncoderProfile quality="qvga" fileFormat="3gp" duration="60">
<Video codec="m4v"
bitRate="128000"
width="320"
height="240"
frameRate="15" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="cif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<CamcorderProfiles cameraId="1">
<EncoderProfile quality="qvga" fileFormat="3gp" duration="60">
<Video codec="m4v"
bitRate="128000"
width="320"
height="240"
frameRate="15" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="cif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<EncoderOutputFileFormat name="3gp" />
<EncoderOutputFileFormat name="mp4" />
<!--
If a codec is not enabled, it is invisible to the applications
In other words, the applications won't be able to use the codec
or query the capabilities of the codec at all if it is disabled
-->
<VideoEncoderCap name="h264" enabled="true"
minBitRate="64000" maxBitRate="40000000"
minFrameWidth="176" maxFrameWidth="1920"
minFrameHeight="144" maxFrameHeight="1080"
minFrameRate="15" maxFrameRate="30" />
<VideoEncoderCap name="h263" enabled="true"
minBitRate="64000" maxBitRate="2000000"
minFrameWidth="176" maxFrameWidth="800"
minFrameHeight="144" maxFrameHeight="480"
minFrameRate="15" maxFrameRate="30" />
<VideoEncoderCap name="m4v" enabled="true"
minBitRate="64000" maxBitRate="40000000"
minFrameWidth="176" maxFrameWidth="1920"
minFrameHeight="144" maxFrameHeight="1080"
minFrameRate="15" maxFrameRate="30" />
<AudioEncoderCap name="aac" enabled="true"
minBitRate="758" maxBitRate="288000"
minSampleRate="8000" maxSampleRate="48000"
minChannels="1" maxChannels="1" />
<AudioEncoderCap name="heaac" enabled="true"
minBitRate="8000" maxBitRate="64000"
minSampleRate="16000" maxSampleRate="48000"
minChannels="1" maxChannels="1" />
<AudioEncoderCap name="aaceld" enabled="true"
minBitRate="16000" maxBitRate="192000"
minSampleRate="16000" maxSampleRate="48000"
minChannels="1" maxChannels="1" />
<AudioEncoderCap name="amrwb" enabled="true"
minBitRate="6600" maxBitRate="23050"
minSampleRate="16000" maxSampleRate="16000"
minChannels="1" maxChannels="1" />
<AudioEncoderCap name="amrnb" enabled="true"
minBitRate="5525" maxBitRate="12200"
minSampleRate="8000" maxSampleRate="8000"
minChannels="1" maxChannels="1" />
<!--
FIXME:
We do not check decoder capabilities at present
At present, we only check whether windows media is visible
for TEST applications. For other applications, we do
not perform any checks at all.
-->
<VideoDecoderCap name="wmv" enabled="false"/>
<AudioDecoderCap name="wma" enabled="false"/>
<!--
The VideoEditor Capability configuration:
- maxInputFrameWidth: maximum video width of imported video clip.
- maxInputFrameHeight: maximum video height of imported video clip.
- maxOutputFrameWidth: maximum video width of exported video clip.
- maxOutputFrameHeight: maximum video height of exported video clip.
- maxPrefetchYUVFrames: maximum prefetch YUV frames for encoder,
used to limit the amount of memory for prefetched YUV frames.
For this platform, it allows maximum 30MB(3MB per 1080p frame x 10
frames) memory.
-->
<VideoEditorCap maxInputFrameWidth="1920"
maxInputFrameHeight="1080" maxOutputFrameWidth="1920"
maxOutputFrameHeight="1080" maxPrefetchYUVFrames="10"/>
<!--
The VideoEditor Export codec profile and level values
correspond to the values in OMX_Video.h.
E.g. for h264, profile value 1 means OMX_VIDEO_AVCProfileBaseline
and level 4096 means OMX_VIDEO_AVCLevel41.
Please note that the values are in decimal.
These values are for video encoder.
-->
<!--
Codec = h.264, Baseline profile, level 4.0
-->
<ExportVideoProfile name="h264" profile= "1" level="2048"/>
<!--
Codec = h.263, Baseline profile, level 70
-->
<ExportVideoProfile name="h263" profile= "1" level="128"/>
<!--
Codec = mpeg4, Simple profile, level 5
-->
<ExportVideoProfile name="m4v" profile= "1" level="128"/>
</MediaSettings>

View file

@ -37,7 +37,7 @@
<!ATTLIST Video height CDATA #REQUIRED>
<!ATTLIST Video frameRate CDATA #REQUIRED>
<!ELEMENT Audio EMPTY>
<!ATTLIST Audio codec (amrnb|amrwb|aac|lpcm) #REQUIRED>
<!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
<!ATTLIST Audio bitRate CDATA #REQUIRED>
<!ATTLIST Audio sampleRate CDATA #REQUIRED>
<!ATTLIST Audio channels (1|2|6) #REQUIRED>
@ -63,7 +63,7 @@
<!ATTLIST VideoEncoderCap maxHFRFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxHFRMode CDATA #REQUIRED>
<!ELEMENT AudioEncoderCap EMPTY>
<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma|lpcm) #REQUIRED>
<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma) #REQUIRED>
<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
@ -188,45 +188,6 @@
channels="2" />
</EncoderProfile>
<EncoderProfile quality="qhd" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="2560"
height="1440"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="2k" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="20000000"
width="2048"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="4kdci" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="4096"
height="2160"
frameRate="24" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="2160p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
@ -253,19 +214,6 @@
channels="1" />
</EncoderProfile>
<EncoderProfile quality="vga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
width="640"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="192000"
@ -337,20 +285,6 @@
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsevga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
width="640"
height="480"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
@ -393,47 +327,6 @@
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapseqhd" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="2560"
height="1440"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse2k" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="20000000"
width="2048"
height="1080"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse4kdci" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="4096"
height="2160"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
@ -560,19 +453,6 @@
channels="1" />
</EncoderProfile>
<EncoderProfile quality="vga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
width="640"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<!-- TIMELAPSE profiles for front camera -->
<EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
<Video codec="h264"
@ -644,20 +524,6 @@
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsevga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
width="640"
height="480"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="5000000"
@ -800,45 +666,6 @@
channels="2" />
</EncoderProfile>
<EncoderProfile quality="qhd" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="2560"
height="1440"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="2k" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="20000000"
width="2048"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="4kdci" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="4096"
height="2160"
frameRate="24" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="2160p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
@ -865,19 +692,6 @@
channels="1" />
</EncoderProfile>
<EncoderProfile quality="vga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
width="640"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="192000"
@ -949,20 +763,6 @@
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsevga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
width="640"
height="480"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
@ -1005,47 +805,6 @@
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapseqhd" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="2560"
height="1440"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse2k" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="20000000"
width="2048"
height="1080"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse4kdci" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="4096"
height="2160"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
@ -1159,45 +918,6 @@
channels="2" />
</EncoderProfile>
<EncoderProfile quality="qhd" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="2560"
height="1440"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="2k" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="20000000"
width="2048"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="4kdci" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="4096"
height="2160"
frameRate="24" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="2160p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
@ -1224,19 +944,6 @@
channels="1" />
</EncoderProfile>
<EncoderProfile quality="vga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
width="640"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="192000"
@ -1308,20 +1015,6 @@
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsevga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
width="640"
height="480"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
@ -1364,47 +1057,6 @@
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapseqhd" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="2560"
height="1440"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse2k" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="20000000"
width="2048"
height="1080"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse4kdci" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="4096"
height="2160"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
@ -1490,11 +1142,6 @@
minSampleRate="8000" maxSampleRate="8000"
minChannels="1" maxChannels="1" />
<AudioEncoderCap name="lpcm" enabled="true"
minBitRate="768000" maxBitRate="4608000"
minSampleRate="8000" maxSampleRate="48000"
minChannels="1" maxChannels="6" />
<!--
FIXME:
We do not check decoder capabilities at present

0
configs/msm_irqbalance.conf Executable file → Normal file
View file

View file

@ -0,0 +1,100 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (c) 2017, The Linux Foundation. All rights reserved.
~ Not a Contribution.
-->
<!--
~ Copyright (C) 2016 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
-->
<!--
This XML file declares which signature|privileged permissions should be
granted to privileged applications on QTI devices.
It allows additional grants on top of privapp-permissions-platform.xml
-->
<permissions>
<privapp-permissions package="com.quicinc.cne.CNEService">
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
<permission name="android.permission.PACKET_KEEPALIVE_OFFLOAD"/>
</privapp-permissions>
<privapp-permissions package="com.qti.dpmserviceapp">
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
</privapp-permissions>
<privapp-permissions package="com.qualcomm.qcrilmsgtunnel">
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
</privapp-permissions>
<privapp-permissions package="se.dirac.acs">
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
</privapp-permissions>
<privapp-permissions package="android.ext.services">
<permission name="android.permission.PROVIDE_RESOLVER_RANKER_SERVICE"/>
</privapp-permissions>
<privapp-permissions package="android.ext.services">
<permission name="android.permission.PROVIDE_RESOLVER_RANKER_SERVICE"/>
</privapp-permissions>
<privapp-permissions package="com.longcheertel.AutoTest">
<permission name="android.permission.ACCESS_CHECKIN_PROPERTIES"/>
</privapp-permissions>
<privapp-permissions package="com.longcheertel.AutoTest">
<permission name="android.permission.CALL_PRIVILEGED"/>
</privapp-permissions>
<privapp-permissions package="com.longcheertel.AutoTest">
<permission name="android.permission.CHANGE_CONFIGURATION"/>
</privapp-permissions>
<privapp-permissions package="com.longcheertel.AutoTest">
<permission name="android.permission.MODIFY_PHONE_STATE"/>
</privapp-permissions>
<privapp-permissions package="com.longcheertel.AutoTest">
<permission name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
</privapp-permissions>
<privapp-permissions package="com.longcheertel.AutoTest">
<permission name="android.permission.WRITE_SECURE_SETTINGS"/>
</privapp-permissions>
<privapp-permissions package="com.longcheertel.cit">
<permission name="android.permission.ACCESS_CHECKIN_PROPERTIES"/>
</privapp-permissions>
<privapp-permissions package="com.longcheertel.cit">
<permission name="android.permission.CALL_PRIVILEGED"/>
</privapp-permissions>
<privapp-permissions package="com.longcheertel.cit">
<permission name="android.permission.CHANGE_CONFIGURATION"/>
</privapp-permissions>
<privapp-permissions package="com.longcheertel.cit">
<permission name="android.permission.MODIFY_PHONE_STATE"/>
</privapp-permissions>
<privapp-permissions package="com.longcheertel.cit">
<permission name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
</privapp-permissions>
<privapp-permissions package="com.longcheertel.cit">
<permission name="android.permission.WRITE_SECURE_SETTINGS"/>
</privapp-permissions>
<privapp-permissions package="com.android.systemui">
<permission name="com.android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS"/>
</privapp-permissions>
<privapp-permissions package="com.caf.fmradio">
<permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
</privapp-permissions>
<privapp-permissions package="com.caf.fmradio">
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
</privapp-permissions>
</permissions>

45
configs/appboosts.xml → configs/qti_whitelist.xml Executable file → Normal file
View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!--
/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@ -30,33 +30,16 @@
*/
-->
<PerfBoosts>
<!--Boost params mappings need to be defined for target-->
<BoostParamsMappings>
<BoostAttributes
MapType="freq"
Target="sdm660"
Resolution="1080p"
Mappings="890, 1100, 1400, 1700, 2400" />
<BoostAttributes
MapType="freq"
Target="sdm660"
Resolution="2560"
Mappings="890, 1100, 1400, 1700, 2400" />
<BoostAttributes
MapType="cluster"
Target="sdm660"
Resolution="any"
Mappings="0, 1, 1" />
<BoostAttributes
MapType="freq"
Target="sdm630"
Resolution="1080p"
Mappings="787, 1344, 1670, 1881, 2300" />
<BoostAttributes
MapType="cluster"
Target="sdm630"
Resolution="any"
Mappings="0, 1, 1" />
</BoostParamsMappings>
</PerfBoosts>
<config>
<!-- These are telephony components that need to freely run in the background -->
<allow-in-power-save package="com.qualcomm.atfwd" />
<allow-in-power-save package="com.qualcomm.qti.telephonyservice" />
<allow-in-power-save package="com.qulacomm.qcrilmsgtunnel" />
<allow-in-power-save package="com.qualcomm.qti.ims" />
<allow-in-power-save package="com.qualcomm.qti.radioconfiginterface" />
<allow-in-power-save package="com.qualcomm.simcontacts" />
<allow-in-power-save package="com.qualcomm.qti.autoregistration" />
<allow-in-power-save package="com.qualcomm.qti.server.wigigapp" />
<allow-in-power-save package="com.qualcomm.qti.StatsPollManager" />
<allow-in-power-save package="com.qualcomm.qti.gsma.services.nfc" />
</config>

322
configs/sec_config Normal file
View file

@ -0,0 +1,322 @@
/* IPC Security Config */
/* <GPS QMI Service ID - 16>:<GPS QMI Instance ID - all instances>:<Client Group ID> */
16:4294967295:1000:1021
/* <LOWI QMI Service ID - 38>:<LOWI QMI Instance ID - all instances>:<Client Group ID> */
56:4294967295:1021
/* Allow SS CTL service to be used by system and net_raw processes */
43:4294967295:1000:3004
/* <UIMHTTP QMI Service ID - 16>:<UIMHTTP QMI Instance ID - all instances>:<Client Group ID> */
71:4294967295:1001
/* <UIMRMT QMI Service ID - 16>:<UIMRMT QMI Instance ID - all instances>:<Client Group ID> */
50:4294967295:1001
/* QMI-SLIM service permitted to gps and net_raw */
55:4294967295:1021
/* Allow Sensor services to be used by sensor process */
256:4294967295:1000:1006:1013:1021:1047
257:4294967295:1000:1006:1013:1021:1047
258:4294967295:1000:1006:1013:1021:1047
259:4294967295:1000:1006:1013:1021:1047
260:4294967295:1000:1006:1013:1021:1047
261:4294967295:1000:1006:1013:1021:1047
262:4294967295:1000:1006:1013:1021:1047
263:4294967295:1000:1006:1013:1021:1047
264:4294967295:1000:1006:1013:1021:1047
265:4294967295:1000:1006:1013:1021:1047
266:4294967295:1000:1006:1013:1021:1047
267:4294967295:1000:1006:1013:1021:1047
268:4294967295:1000:1006:1013:1021:1047
269:4294967295:1000:1006:1013:1021:1047
270:4294967295:1000:1006:1013:1021:1047
271:4294967295:1000:1006:1013:1021:1047
272:4294967295:1000:1006:1013:1021:1047
273:4294967295:1000:1006:1013:1021:1047
274:4294967295:1000:1006:1013:1021:1047
275:4294967295:1000:1006:1013:1021:1047
276:4294967295:1000:1006:1013:1021:1047
277:4294967295:1000:1006:1013:1021:1047
278:4294967295:1000:1006:1013:1021:1047
279:4294967295:1000:1006:1013:1021:1047
280:4294967295:1000:1006:1013:1021:1047
281:4294967295:1000:1006:1013:1021:1047
282:4294967295:1000:1006:1013:1021:1047
283:4294967295:1000:1006:1013:1021:1047
284:4294967295:1000:1006:1013:1021:1047
285:4294967295:1000:1006:1013:1021:1047
286:4294967295:1000:1006:1013:1021:1047
287:4294967295:1000:1006:1013:1021:1047
288:4294967295:1000:1006:1013:1021:1047
289:4294967295:1000:1006:1013:1021:1047
290:4294967295:1000:1006:1013:1021:1047
291:4294967295:1000:1006:1013:1021:1047
292:4294967295:1000:1006:1013:1021:1047
293:4294967295:1000:1006:1013:1021:1047
294:4294967295:1000:1006:1013:1021:1047
295:4294967295:1000:1006:1013:1021:1047
296:4294967295:1000:1006:1013:1021:1047
297:4294967295:1000:1006:1013:1021:1047
298:4294967295:1000:1006:1013:1021:1047
299:4294967295:1000:1006:1013:1021:1047
300:4294967295:1000:1006:1013:1021:1047
301:4294967295:1000:1006:1013:1021:1047
302:4294967295:1000:1006:1013:1021:1047
303:4294967295:1000:1006:1013:1021:1047
304:4294967295:1000:1006:1013:1021:1047
305:4294967295:1000:1006:1013:1021:1047
306:4294967295:1000:1006:1013:1021:1047
307:4294967295:1000:1006:1013:1021:1047
308:4294967295:1000:1006:1013:1021:1047
309:4294967295:1000:1006:1013:1021:1047
310:4294967295:1000:1006:1013:1021:1047
311:4294967295:1000:1006:1013:1021:1047
312:4294967295:1000:1006:1013:1021:1047
313:4294967295:1000:1006:1013:1021:1047
314:4294967295:1000:1006:1013:1021:1047
315:4294967295:1000:1006:1013:1021:1047
316:4294967295:1000:1006:1013:1021:1047
317:4294967295:1000:1006:1013:1021:1047
318:4294967295:1000:1006:1013:1021:1047
319:4294967295:1000:1006:1013:1021:1047
320:4294967295:1000:1006:1013:1021:1047
321:4294967295:1000:1006:1013:1021:1047
322:4294967295:1000:1006:1013:1021:1047
323:4294967295:1000:1006:1013:1021:1047
324:4294967295:1000:1006:1013:1021:1047
325:4294967295:1000:1006:1013:1021:1047
326:4294967295:1000:1006:1013:1021:1047
327:4294967295:1000:1006:1013:1021:1047
328:4294967295:1000:1006:1013:1021:1047
329:4294967295:1000:1006:1013:1021:1047
330:4294967295:1000:1006:1013:1021:1047
331:4294967295:1000:1006:1013:1021:1047
332:4294967295:1000:1006:1013:1021:1047
333:4294967295:1000:1006:1013:1021:1047
334:4294967295:1000:1006:1013:1021:1047
335:4294967295:1000:1006:1013:1021:1047
336:4294967295:1000:1006:1013:1021:1047
337:4294967295:1000:1006:1013:1021:1047
338:4294967295:1000:1006:1013:1021:1047
339:4294967295:1000:1006:1013:1021:1047
340:4294967295:1000:1006:1013:1021:1047
341:4294967295:1000:1006:1013:1021:1047
342:4294967295:1000:1006:1013:1021:1047
343:4294967295:1000:1006:1013:1021:1047
344:4294967295:1000:1006:1013:1021:1047
345:4294967295:1000:1006:1013:1021:1047
346:4294967295:1000:1006:1013:1021:1047
347:4294967295:1000:1006:1013:1021:1047
348:4294967295:1000:1006:1013:1021:1047
349:4294967295:1000:1006:1013:1021:1047
350:4294967295:1000:1006:1013:1021:1047
351:4294967295:1000:1006:1013:1021:1047
352:4294967295:1000:1006:1013:1021:1047
353:4294967295:1000:1006:1013:1021:1047
354:4294967295:1000:1006:1013:1021:1047
355:4294967295:1000:1006:1013:1021:1047
356:4294967295:1000:1006:1013:1021:1047
357:4294967295:1000:1006:1013:1021:1047
358:4294967295:1000:1006:1013:1021:1047
359:4294967295:1000:1006:1013:1021:1047
360:4294967295:1000:1006:1013:1021:1047
361:4294967295:1000:1006:1013:1021:1047
362:4294967295:1000:1006:1013:1021:1047
363:4294967295:1000:1006:1013:1021:1047
364:4294967295:1000:1006:1013:1021:1047
365:4294967295:1000:1006:1013:1021:1047
366:4294967295:1000:1006:1013:1021:1047
367:4294967295:1000:1006:1013:1021:1047
368:4294967295:1000:1006:1013:1021:1047
369:4294967295:1000:1006:1013:1021:1047
370:4294967295:1000:1006:1013:1021:1047
371:4294967295:1000:1006:1013:1021:1047
372:4294967295:1000:1006:1013:1021:1047
373:4294967295:1000:1006:1013:1021:1047
374:4294967295:1000:1006:1013:1021:1047
375:4294967295:1000:1006:1013:1021:1047
376:4294967295:1000:1006:1013:1021:1047
377:4294967295:1000:1006:1013:1021:1047
378:4294967295:1000:1006:1013:1021:1047
379:4294967295:1000:1006:1013:1021:1047
380:4294967295:1000:1006:1013:1021:1047
381:4294967295:1000:1006:1013:1021:1047
382:4294967295:1000:1006:1013:1021:1047
383:4294967295:1000:1006:1013:1021:1047
384:4294967295:1000:1006:1013:1021:1047
385:4294967295:1000:1006:1013:1021:1047
386:4294967295:1000:1006:1013:1021:1047
387:4294967295:1000:1006:1013:1021:1047
388:4294967295:1000:1006:1013:1021:1047
389:4294967295:1000:1006:1013:1021:1047
390:4294967295:1000:1006:1013:1021:1047
391:4294967295:1000:1006:1013:1021:1047
392:4294967295:1000:1006:1013:1021:1047
393:4294967295:1000:1006:1013:1021:1047
394:4294967295:1000:1006:1013:1021:1047
395:4294967295:1000:1006:1013:1021:1047
396:4294967295:1000:1006:1013:1021:1047
397:4294967295:1000:1006:1013:1021:1047
398:4294967295:1000:1006:1013:1021:1047
399:4294967295:1000:1006:1013:1021:1047
400:4294967295:1000:1006:1013:1021:1047
401:4294967295:1000:1006:1013:1021:1047
402:4294967295:1000:1006:1013:1021:1047
403:4294967295:1000:1006:1013:1021:1047
404:4294967295:1000:1006:1013:1021:1047
405:4294967295:1000:1006:1013:1021:1047
406:4294967295:1000:1006:1013:1021:1047
407:4294967295:1000:1006:1013:1021:1047
408:4294967295:1000:1006:1013:1021:1047
409:4294967295:1000:1006:1013:1021:1047
410:4294967295:1000:1006:1013:1021:1047
411:4294967295:1000:1006:1013:1021:1047
412:4294967295:1000:1006:1013:1021:1047
413:4294967295:1000:1006:1013:1021:1047
414:4294967295:1000:1006:1013:1021:1047
415:4294967295:1000:1006:1013:1021:1047
416:4294967295:1000:1006:1013:1021:1047
417:4294967295:1000:1006:1013:1021:1047
418:4294967295:1000:1006:1013:1021:1047
419:4294967295:1000:1006:1013:1021:1047
420:4294967295:1000:1006:1013:1021:1047
421:4294967295:1000:1006:1013:1021:1047
422:4294967295:1000:1006:1013:1021:1047
423:4294967295:1000:1006:1013:1021:1047
424:4294967295:1000:1006:1013:1021:1047
425:4294967295:1000:1006:1013:1021:1047
426:4294967295:1000:1006:1013:1021:1047
427:4294967295:1000:1006:1013:1021:1047
428:4294967295:1000:1006:1013:1021:1047
429:4294967295:1000:1006:1013:1021:1047
430:4294967295:1000:1006:1013:1021:1047
431:4294967295:1000:1006:1013:1021:1047
432:4294967295:1000:1006:1013:1021:1047
433:4294967295:1000:1006:1013:1021:1047
434:4294967295:1000:1006:1013:1021:1047
435:4294967295:1000:1006:1013:1021:1047
436:4294967295:1000:1006:1013:1021:1047
437:4294967295:1000:1006:1013:1021:1047
438:4294967295:1000:1006:1013:1021:1047
439:4294967295:1000:1006:1013:1021:1047
440:4294967295:1000:1006:1013:1021:1047
441:4294967295:1000:1006:1013:1021:1047
442:4294967295:1000:1006:1013:1021:1047
443:4294967295:1000:1006:1013:1021:1047
444:4294967295:1000:1006:1013:1021:1047
445:4294967295:1000:1006:1013:1021:1047
446:4294967295:1000:1006:1013:1021:1047
447:4294967295:1000:1006:1013:1021:1047
448:4294967295:1000:1006:1013:1021:1047
449:4294967295:1000:1006:1013:1021:1047
450:4294967295:1000:1006:1013:1021:1047
451:4294967295:1000:1006:1013:1021:1047
452:4294967295:1000:1006:1013:1021:1047
453:4294967295:1000:1006:1013:1021:1047
454:4294967295:1000:1006:1013:1021:1047
455:4294967295:1000:1006:1013:1021:1047
456:4294967295:1000:1006:1013:1021:1047
457:4294967295:1000:1006:1013:1021:1047
458:4294967295:1000:1006:1013:1021:1047
459:4294967295:1000:1006:1013:1021:1047
460:4294967295:1000:1006:1013:1021:1047
461:4294967295:1000:1006:1013:1021:1047
462:4294967295:1000:1006:1013:1021:1047
463:4294967295:1000:1006:1013:1021:1047
464:4294967295:1000:1006:1013:1021:1047
465:4294967295:1000:1006:1013:1021:1047
466:4294967295:1000:1006:1013:1021:1047
467:4294967295:1000:1006:1013:1021:1047
468:4294967295:1000:1006:1013:1021:1047
469:4294967295:1000:1006:1013:1021:1047
470:4294967295:1000:1006:1013:1021:1047
471:4294967295:1000:1006:1013:1021:1047
472:4294967295:1000:1006:1013:1021:1047
473:4294967295:1000:1006:1013:1021:1047
474:4294967295:1000:1006:1013:1021:1047
475:4294967295:1000:1006:1013:1021:1047
476:4294967295:1000:1006:1013:1021:1047
477:4294967295:1000:1006:1013:1021:1047
478:4294967295:1000:1006:1013:1021:1047
479:4294967295:1000:1006:1013:1021:1047
480:4294967295:1000:1006:1013:1021:1047
481:4294967295:1000:1006:1013:1021:1047
482:4294967295:1000:1006:1013:1021:1047
483:4294967295:1000:1006:1013:1021:1047
484:4294967295:1000:1006:1013:1021:1047
485:4294967295:1000:1006:1013:1021:1047
486:4294967295:1000:1006:1013:1021:1047
487:4294967295:1000:1006:1013:1021:1047
488:4294967295:1000:1006:1013:1021:1047
489:4294967295:1000:1006:1013:1021:1047
490:4294967295:1000:1006:1013:1021:1047
491:4294967295:1000:1006:1013:1021:1047
492:4294967295:1000:1006:1013:1021:1047
493:4294967295:1000:1006:1013:1021:1047
494:4294967295:1000:1006:1013:1021:1047
495:4294967295:1000:1006:1013:1021:1047
496:4294967295:1000:1006:1013:1021:1047
497:4294967295:1000:1006:1013:1021:1047
498:4294967295:1000:1006:1013:1021:1047
499:4294967295:1000:1006:1013:1021:1047
500:4294967295:1000:1006:1013:1021:1047
501:4294967295:1000:1006:1013:1021:1047
502:4294967295:1000:1006:1013:1021:1047
503:4294967295:1000:1006:1013:1021:1047
504:4294967295:1000:1006:1013:1021:1047
505:4294967295:1000:1006:1013:1021:1047
506:4294967295:1000:1006:1013:1021:1047
507:4294967295:1000:1006:1013:1021:1047
508:4294967295:1000:1006:1013:1021:1047
509:4294967295:1000:1006:1013:1021:1047
510:4294967295:1000:1006:1013:1021:1047
511:4294967295:1000:1006:1013:1021:1047
/* Allow RCS service to aquire net_raw permission */
18:4294967295:1001:3004
/* Allow QMID service to aquire net_raw permission */
3:4294967295:1001:1021:3004
2:4294967295:1000:1001:3004
42:4294967295:1001:3004
18:4294967295:1001:3004
9:4294967295:1001:3004
1:4294967295:1001:3004:1000
4:4294967295:1001:3004
7:4294967295:1001:3004
8:4294967295:1001:3004:1000
68:4294967295:1001:3004
/* DPM */
47:4294967295:1001:3004
/* Allow communication to some QMI services with radio privilages */
/* Format is <Service id>:<all instances>:<radio> */
/* PBM */
12:4294967295:1001
/* WMS */
5:4294967295:1001
/* IMS VT */
32:4294967295:1001
/* IMSP */
31:4294967295:1001
/* PDC */
36:4294967295:1001
/* SAR */
17:4294967295:1001
/* RFRPE */
41:4294967295:1001
/*UIM*/
11:4294967295:1001
/*CAT*/
10:4294967295:1001
/*IMSA*/
33:4294967295:1001
/* CSVT */
29:4294967295:1001
/*SERVREG_NOTIF*/
64:4294967295:1001
66:4294967295:1001
/*LTE*/
70:4294967295:1001
/* Allow Data dpmd to access QMI DFS */
48:4294967295:1000:3004
/* DIAG */
4097:4294967295:2002:2950:3009:2901
/* <WLFW QMI Service ID - 0x45>:<WLFW QMI Instance ID - all instances>:<Client Group ID> */
69:4294967295:1000
/* <WLPS QMI Service ID - 0x39>:<WLFW QMI Instance ID - all instances>:<Client Group ID> */
57:4294967295:1000

36
configs/whitelistedapps.xml Executable file → Normal file
View file

@ -1,32 +1,9 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!--
/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
/* Copyright (c) 2017 Qualcomm Technologies, Inc.
* All Rights Reserved.
* Confidential and Proprietary - Qualcomm Technologies, Inc.
*/
-->
@ -75,9 +52,12 @@
<AppAttributes
PackageName="com.tencent.mm" />
</NetTriggerApps>
<AppTriggerApps>
<HWAccelApps>
<AppAttributes PackageName="com.autonavi.xmgd.navigator" />
<AppAttributes PackageName="com.tencent.qqpimsecure" />
<AppAttributes PackageName="com.ludashi.benchmark" />
</AppTriggerApps>
<AppAttributes PackageName="com.tencent.mobileqq" />
<AppAttributes PackageName="com.taobao.taobao" />
<AppAttributes PackageName="com.youdao.dict" />
</HWAccelApps>
</AppCatalog>

684
device.mk
View file

@ -1,160 +1,179 @@
TARGET_USES_AOSP := true
DEVICE_PACKAGE_OVERLAYS := $(LOCAL_PATH)/overlay
# Default vendor configuration.
ifeq ($(ENABLE_VENDOR_IMAGE),)
ENABLE_VENDOR_IMAGE := true
endif
# Disable QTIC until it's brought up in split system/vendor
# configuration to avoid compilation breakage.
ifeq ($(ENABLE_VENDOR_IMAGE), true)
#TARGET_USES_QTIC := false
endif
TARGET_USES_AOSP_FOR_AUDIO := false
TARGET_ENABLE_QC_AV_ENHANCEMENTS := true
TARGET_DISABLE_DASH := true
TARGET_KERNEL_VERSION := 4.4
BOARD_FRP_PARTITION_NAME := frp
BOARD_HAVE_QCOM_FM := true
TARGET_USES_NQ_NFC := true
ifeq ($(TARGET_USES_NQ_NFC),true)
# Flag to enable and support NQ3XX chipsets
NQ3XX_PRESENT := true
endif
# enable the SVA in UI area
TARGET_USE_UI_SVA := true
#QTIC flag
-include $(QCPATH)/common/config/qtic-config.mk
# Add soft home, back and multitask keys
PRODUCT_PROPERTY_OVERRIDES += \
qemu.hw.mainkeys=0
# Video codec configuration files
ifeq ($(TARGET_ENABLE_QC_AV_ENHANCEMENTS), true)
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/media_profiles.xml:system/etc/media_profiles.xml \
$(LOCAL_PATH)/configs/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_vendor.xml \
$(LOCAL_PATH)/configs/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
$(LOCAL_PATH)/configs/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml
endif #TARGET_ENABLE_QC_AV_ENHANCEMENTS
# video seccomp policy files
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/seccomp/mediacodec-seccomp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy \
$(LOCAL_PATH)/seccomp/mediaextractor-seccomp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediaextractor.policy
PRODUCT_COPY_FILES += $(LOCAL_PATH)/configs/whitelistedapps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/whitelistedapps.xml \
$(LOCAL_PATH)/configs/gamedwhitelist.xml:$(TARGET_COPY_OUT_VENDOR)/etc/gamedwhitelist.xml \
$(LOCAL_PATH)/configs/appboosts.xml:$(TARGET_COPY_OUT_VENDOR)/etc/appboosts.xml
PRODUCT_PROPERTY_OVERRIDES += \
video.disable.ubwc=1
ifneq ($(TARGET_DISABLE_DASH), true)
PRODUCT_BOOT_JARS += qcmediaplayer
endif
# Power
PRODUCT_PACKAGES += \
android.hardware.power@1.0-service \
android.hardware.power@1.0-impl
# Override heap growth limit due to high display density on device
PRODUCT_PROPERTY_OVERRIDES += \
dalvik.vm.heapgrowthlimit=256m
$(call inherit-product, frameworks/native/build/phone-xhdpi-2048-dalvik-heap.mk)
$(call inherit-product, device/qcom/common/common64.mk)
# default is nosdcard, S/W button enabled in resource
PRODUCT_CHARACTERISTICS := nosdcard
# When can normal compile this module, need module owner enable below commands
# font rendering engine feature switch
#-include $(QCPATH)/common/config/rendering-engine.mk
#ifneq (,$(strip $(wildcard $(PRODUCT_RENDERING_ENGINE_REVLIB))))
# MULTI_LANG_ENGINE := REVERIE
# MULTI_LANG_ZAWGYI := REVERIE
#endif
# Enable features in video HAL that can compile only on this platform
TARGET_USES_MEDIA_EXTENSIONS := true
# WLAN chipset
WLAN_CHIPSET := qca_cld3
#
# system prop for opengles version
# Copyright (C) 2018 The LineageOS 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.
#
#
# This file sets variables that control the way modules are built
# thorughout the system. It should not be used to conditionally
# disable makefiles (the proper mechanism to control what gets
# included in a build is to use PRODUCT_PACKAGES in a product
# definition file).
#
# 196610 is decimal for 0x30002 to report major/minor versions as 3/2
PRODUCT_PROPERTY_OVERRIDES += \
ro.opengles.version=196610
#Android EGL implementation
PRODUCT_PACKAGES += libGLES_android
PRODUCT_BOOT_JARS += tcmiface
PRODUCT_BOOT_JARS += telephony-ext
# Inherit proprietary files
$(call inherit-product, vendor/xiaomi/wayne/wayne-vendor.mk)
PRODUCT_PACKAGES += telephony-ext
# Screen density
PRODUCT_AAPT_CONFIG := normal
PRODUCT_AAPT_PREF_CONFIG := xxhdpi
ifneq ($(strip $(QCPATH)),)
PRODUCT_BOOT_JARS += WfdCommon
#Android oem shutdown hook
PRODUCT_BOOT_JARS += oem-services
endif
# Boot animation
TARGET_SCREEN_HEIGHT := 2160
TARGET_SCREEN_WIDTH := 1080
# system prop for Bluetooth SOC type
PRODUCT_PROPERTY_OVERRIDES += \
qcom.bluetooth.soc=cherokee
# Overlays
DEVICE_PACKAGE_OVERLAYS += \
$(LOCAL_PATH)/overlay \
$(LOCAL_PATH)/overlay-lineage
ifeq ($(strip $(BOARD_HAVE_QCOM_FM)),true)
PRODUCT_BOOT_JARS += qcom.fmradio
endif #BOARD_HAVE_QCOM_FM
# Permissions
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/privapp-permissions-qti.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/privapp-permissions-qti.xml
DEVICE_MANIFEST_FILE := $(LOCAL_PATH)/manifest.xml
DEVICE_MATRIX_FILE := device/qcom/common/compatibility_matrix.xml
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml \
frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml \
frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml \
frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \
frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.flash-autofocus.xml \
frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \
frameworks/native/data/etc/android.hardware.camera.full.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.full.xml \
frameworks/native/data/etc/android.hardware.camera.raw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.raw.xml \
frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml \
frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml \
frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml \
frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \
frameworks/native/data/etc/android.hardware.sensor.barometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.barometer.xml \
frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \
frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \
frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml \
frameworks/native/data/etc/android.hardware.sensor.proximity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.proximity.xml \
frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \
frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml \
frameworks/native/data/etc/android.hardware.telephony.cdma.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.cdma.xml \
frameworks/native/data/etc/android.hardware.telephony.gsm.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.gsm.xml \
frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \
frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \
frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \
frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute-0.xml \
frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \
frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \
frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml \
frameworks/native/data/etc/android.software.sip.voip.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.sip.voip.xml \
frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \
frameworks/native/data/etc/android.software.verified_boot.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.verified_boot.xml \
frameworks/native/data/etc/android.software.webview.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.webview.xml \
frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml \
frameworks/native/data/etc/android.hardware.vulkan.level-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level-0.xml \
frameworks/native/data/etc/android.hardware.vulkan.version-1_0_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version-1_0_3.xml \
frameworks/native/data/etc/android.hardware.ethernet.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.ethernet.xml
# HIDL
# Audio
PRODUCT_PACKAGES += \
android.hidl.base@1.0 \
android.hidl.manager@1.0
android.hardware.audio@2.0-impl \
android.hardware.audio@2.0-service \
android.hardware.audio.effect@2.0-impl \
android.hardware.audio.effect@2.0-service \
android.hardware.soundtrigger@2.0-impl \
android.hardware.soundtrigger@2.0-service \
audio.a2dp.default \
audio_amplifier.sdm660 \
audio.primary.sdm660 \
audio.r_submix.default \
audio.usb.default \
libaudio-resampler \
libqcompostprocbundle \
libqcomvisualizer \
libqcomvoiceprocessing \
libvolumelistener \
tinymix
# Audio configuration file
-include $(TOPDIR)hardware/qcom/audio/configs/sdm660/sdm660.mk
PRODUCT_PACKAGES += android.hardware.media.omx@1.0-impl
# Sensor HAL conf file
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/sensors/hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/hals.conf
$(LOCAL_PATH)/audio/audio_effects.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.conf \
$(LOCAL_PATH)/audio/audio_output_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_output_policy.conf \
$(LOCAL_PATH)/audio/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
$(LOCAL_PATH)/audio/listen_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/listen_platform_info.xml \
$(LOCAL_PATH)/audio/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \
$(LOCAL_PATH)/audio/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml \
$(LOCAL_PATH)/audio/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
$(LOCAL_PATH)/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
$(LOCAL_PATH)/audio/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer.txt \
$(LOCAL_PATH)/audio/graphite_ipc_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/graphite_ipc_platform_info.xml
# WLAN host driver
ifneq ($(WLAN_CHIPSET),)
PRODUCT_PACKAGES += $(WLAN_CHIPSET)_wlan.ko
endif
# WLAN driver configuration file
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/wifi/WCNSS_qcom_cfg.ini:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/WCNSS_qcom_cfg.ini \
$(LOCAL_PATH)/wifi/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf \
$(LOCAL_PATH)/wifi/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf
$(TOPDIR)frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
#ANT+ stack
# ANT+
PRODUCT_PACKAGES += \
AntHalService \
libantradio \
antradio_app \
libvolumelistener
com.dsi.ant.antradio_library \
libantradio
PRODUCT_COPY_FILES += \
external/ant-wireless/antradio-library/com.dsi.ant.antradio_library.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.dsi.ant.antradio_library.xml
# Bluetooth
PRODUCT_PACKAGES += \
libbt-vendor
PRODUCT_PACKAGES += \
Snap
PRODUCT_PACKAGES += \
android.hardware.camera.provider@2.4-impl \
android.hardware.camera.provider@2.4-service \
camera.device@1.0-impl \
camera.device@3.2-impl \
camera.device@3.3-impl \
vendor.qti.hardware.camera.device@1.0 \
vendor.qti.hardware.camera.device@1.0_vendor
# Connectivity Engine support (CNE)
PRODUCT_PACKAGES += \
libcnefeatureconfig \
cneapiclient \
com.quicinc.cne \
services-ext
# Configstore
PRODUCT_PACKAGES += \
android.hardware.configstore@1.0-service
# Consumerir
PRODUCT_PACKAGES += \
android.hardware.ir@1.0-impl \
android.hardware.ir@1.0-service
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.consumerir.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.consumerir.xml
# Display
PRODUCT_PACKAGES += \
gralloc.sdm660 \
hwcomposer.sdm660 \
memtrack.sdm660 \
libdisplayconfig \
liboverlay \
libtinyxml \
libqdMetaData \
libqdMetaData.system
#Display/Graphics
PRODUCT_PACKAGES += \
android.hardware.graphics.allocator@2.0-impl \
android.hardware.graphics.allocator@2.0-service \
@ -163,136 +182,281 @@ PRODUCT_PACKAGES += \
android.hardware.graphics.composer@2.1-service \
android.hardware.memtrack@1.0-impl \
android.hardware.memtrack@1.0-service \
android.hardware.light@2.0-impl \
android.hardware.light@2.0-service \
android.hardware.configstore@1.0-service \
android.hardware.broadcastradio@1.0-impl
android.hardware.renderscript@1.0-impl \
android.frameworks.displayservice@1.0 \
vendor.display.config@1.1 \
vendor.display.config@1.1_vendor
# DRM
PRODUCT_PACKAGES += \
android.hardware.drm@1.0-impl \
android.hardware.drm@1.0-service \
android.hardware.drm@1.0-service.widevine
# FM
PRODUCT_PACKAGES += \
FM2 \
libqcomfm_jni \
qcom.fmradio \
qcom.fmradio.xml
PRODUCT_PACKAGES += \
vendor.display.color@1.0-service \
vendor.display.color@1.0-impl
android.hardware.broadcastradio@1.0-impl
# GPS / Location
PRODUCT_PACKAGES += \
android.hardware.gnss@1.0-impl-qti \
android.hardware.gnss@1.0-service-qti \
libgnss \
libgps.utils \
liblocation_api \
libloc_core \
libloc_pla \
libvehiclenetwork-native
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/gps/flp.conf:$(TARGET_COPY_OUT_VENDOR)/etc/flp.conf \
$(LOCAL_PATH)/configs/gps/gps.conf:$(TARGET_COPY_OUT_VENDOR)/etc/gps.conf \
$(LOCAL_PATH)/configs/gps/izat.conf:$(TARGET_COPY_OUT_VENDOR)/etc/izat.conf \
$(LOCAL_PATH)/configs/gps/lowi.conf:$(TARGET_COPY_OUT_VENDOR)/etc/lowi.conf \
$(LOCAL_PATH)/configs/gps/sap.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sap.conf \
$(LOCAL_PATH)/configs/gps/xtwifi.conf:$(TARGET_COPY_OUT_VENDOR)/etc/xtwifi.conf
# Healthd
PRODUCT_PACKAGES += \
android.hardware.health@1.0-convert \
android.hardware.health@1.0-impl \
android.hardware.health@1.0-service
# HIDL
PRODUCT_PACKAGES += \
android.hidl.base@1.0 \
android.hidl.manager@1.0
# IDC
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/idc/uinput-fpc.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/uinput-fpc.idc \
$(LOCAL_PATH)/idc/uinput-goodix.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/uinput-goodix.idc
# Init
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/rootdir/bin/init.qti.qseecomd.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.qti.qseecomd.sh
PRODUCT_PACKAGES += \
init.class_main.sh \
init.msm.usb.configfs.rc \
init.qcom.early_boot.sh \
init.qcom.class_core.sh \
init.qcom.coex.sh \
init.qcom.crashdata.sh \
init.qcom.efs.sync.sh \
init.qcom.post_boot.sh \
init.qcom.rc \
init.qcom.sensors.sh \
init.qcom.sh \
init.qcom.sdio.sh \
init.qcom.syspart_fixup.sh \
init.qcom.usb.rc \
init.qcom.usb.sh \
init.qcom.wifi.sh \
init.qti.fm.sh \
init.qti.ims.sh \
init.target.rc \
qca6234-service.sh \
ueventd.qcom.rc \
fstab.qcom
# IPv6
PRODUCT_PACKAGES += \
ebtables \
ethertypes \
libebtc
# IRQ
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/msm_irqbalance.conf:$(TARGET_COPY_OUT_VENDOR)/etc/msm_irqbalance.conf
# IRSC
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/sec_config:$(TARGET_COPY_OUT_VENDOR)/etc/sec_config
# Keylayout
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/keylayout/gpio-keys.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/gpio-keys.kl \
$(LOCAL_PATH)/keylayout/sdm660-snd-card_Button_Jack.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/sdm660-snd-card_Button_Jack.kl \
$(LOCAL_PATH)/keylayout/uinput-fpc.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/uinput-fpc.kl \
$(LOCAL_PATH)/keylayout/uinput-goodix.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/uinput-goodix.kl
# Lights
PRODUCT_PACKAGES += \
lights.sdm660
PRODUCT_PACKAGES += \
android.hardware.light@2.0-impl \
android.hardware.light@2.0-service
# LiveDisplay native
PRODUCT_PACKAGES += \
vendor.lineage.livedisplay@1.0-service-sdm
# Media
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
$(LOCAL_PATH)/configs/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \
$(LOCAL_PATH)/configs/media_profiles_V1_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml \
$(LOCAL_PATH)/configs/media_profiles_vendor.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_vendor.xml
PRODUCT_COPY_FILES += \
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_video_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video_le.xml
# Media Extensions
PRODUCT_PACKAGES += \
libavmediaserviceextensions \
libmediametrics \
libregistermsext \
mediametrics
# Netutils
PRODUCT_PACKAGES += \
android.system.net.netd@1.0 \
libandroid_net \
netutils-wrapper-1.0
# OMX
PRODUCT_PACKAGES += \
libc2dcolorconvert \
libextmedia_jni \
libhypv_intercept \
libmm-omxcore \
libOmxCore \
libOmxAacEnc \
libOmxAmrEnc \
libOmxEvrcEnc \
libOmxQcelp13Enc \
libOmxVdec \
libOmxVenc \
libstagefrighthw
# Power
PRODUCT_PACKAGES += \
power.sdm660 \
android.hardware.power@1.1-service-qti \
# Low power Whitelist
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/qti_whitelist.xml:system/etc/sysconfig/qti_whitelist.xml \
$(LOCAL_PATH)/configs/whitelistedapps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/perf/whitelistedapps.xml \
# QMI
PRODUCT_PACKAGES += \
libjson
# RCS
PRODUCT_PACKAGES += \
rcs_service_aidl \
rcs_service_aidl.xml \
rcs_service_api \
rcs_service_api.xml
# RenderScript HAL
PRODUCT_PACKAGES += \
android.hardware.renderscript@1.0-impl
# RIL
PRODUCT_PACKAGES += \
rild \
librmnetctl \
libxml2 \
libprotobuf-cpp-full
PRODUCT_PACKAGES += \
ims-ext-common \
telephony-ext
PRODUCT_BOOT_JARS += \
qcrilhook \
telephony-ext
# Seccomp policy
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/seccomp/mediacodec-seccomp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy \
$(LOCAL_PATH)/seccomp/mediaextractor-seccomp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediaextractor.policy
# Sensors
PRODUCT_PACKAGES += \
sensors.sdm660 \
android.hardware.sensors@1.0-impl \
android.hardware.sensors@1.0-service
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/sensors/hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/hals.conf \
$(LOCAL_PATH)/sensors/sensor_def_qcomdev.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/sensor_def_qcomdev.conf
# Tetheroffload
PRODUCT_PACKAGES += \
ipacm \
IPACM_cfg.xml \
libipanat \
liboffloadhal
# TextClassifier smart selection model files
PRODUCT_PACKAGES += \
textclassifier.smartselection.bundle1
# Thermal
PRODUCT_PACKAGES += \
android.hardware.thermal@1.0-impl \
android.hardware.thermal@1.0-service \
thermal.sdm660
# USB
PRODUCT_PACKAGES += \
android.hardware.usb@1.0-service \
com.android.future.usb.accessory
# Vibrator
PRODUCT_PACKAGES += \
android.hardware.vibrator@1.0-impl \
android.hardware.vibrator@1.0-service \
# Camera configuration file. Shared by passthrough/binderized camera HAL
PRODUCT_PACKAGES += camera.device@3.2-impl
PRODUCT_PACKAGES += camera.device@1.0-impl
PRODUCT_PACKAGES += android.hardware.camera.provider@2.4-impl
# Enable binderized camera HAL
PRODUCT_PACKAGES += android.hardware.camera.provider@2.4-service
PRODUCT_PACKAGES += \
android.hardware.usb@1.0-service
# Ramdisk
PRODUCT_PACKAGES += \
init.target.rc \
fstab.qcom
# Sensor features
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \
frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \
frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \
frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml \
frameworks/native/data/etc/android.hardware.sensor.proximity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.proximity.xml \
frameworks/native/data/etc/android.hardware.sensor.barometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.barometer.xml \
frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \
frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml \
frameworks/native/data/etc/android.hardware.sensor.ambient_temperature.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.ambient_temperature.xml \
frameworks/native/data/etc/android.hardware.sensor.relative_humidity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.relative_humidity.xml \
frameworks/native/data/etc/android.hardware.sensor.hifi_sensors.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.hifi_sensors.xml
#Facing, CMC and Gesture
PRODUCT_PROPERTY_OVERRIDES += \
ro.vendor.sensors.facing=false \
ro.vendor.sensors.cmc=false \
ro.vendor.sdk.sensors.gestures=false
# FBE support
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/rootdir/bin/init.qti.qseecomd.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.qti.qseecomd.sh
# MIDI feature
PRODUCT_COPY_FILES += frameworks/native/data/etc/android.software.midi.xml:system/etc/permissions/android.software.midi.xml
# MSM IRQ Balancer configuration file for SDM660
PRODUCT_COPY_FILES += $(LOCAL_PATH)/configs/msm_irqbalance.conf:$(TARGET_COPY_OUT_VENDOR)/etc/msm_irqbalance.conf
# dm-verity configuration
PRODUCT_SUPPORTS_VERITY := true
PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/bootdevice/by-name/system
ifeq ($(ENABLE_VENDOR_IMAGE), true)
PRODUCT_VENDOR_VERITY_PARTITION := /dev/block/bootdevice/by-name/vendor
endif
PRODUCT_FULL_TREBLE_OVERRIDE := true
PRODUCT_VENDOR_MOVE_ENABLED := true
#for android_filesystem_config.h
PRODUCT_PACKAGES += \
fs_config_files
# Add the overlay path
#PRODUCT_PACKAGE_OVERLAYS := $(QCPATH)/qrdplus/Extension/res \
# $(QCPATH)/qrdplus/globalization/multi-language/res-overlay \
# $(PRODUCT_PACKAGE_OVERLAYS)
# Enable logdumpd service only for non-perf bootimage
ifeq ($(findstring perf,$(KERNEL_DEFCONFIG)),)
ifeq ($(TARGET_BUILD_VARIANT),user)
PRODUCT_DEFAULT_PROPERTY_OVERRIDES+= \
ro.logdumpd.enabled=0
else
PRODUCT_DEFAULT_PROPERTY_OVERRIDES+= \
ro.logdumpd.enabled=1
endif
else
PRODUCT_DEFAULT_PROPERTY_OVERRIDES+= \
ro.logdumpd.enabled=0
endif
#for wlan
PRODUCT_PACKAGES += \
wificond \
wifilogd
#Healthd packages
PRODUCT_PACKAGES += android.hardware.health@1.0-impl \
android.hardware.health@1.0-convert \
android.hardware.health@1.0-service \
libhealthd.msm
#FEATURE_OPENGLES_EXTENSION_PACK support string config file
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml
TARGET_SUPPORT_SOTER := true
#Enable QTI KEYMASTER and GATEKEEPER HIDLs
ifeq ($(ENABLE_VENDOR_IMAGE), true)
KMGK_USE_QTI_SERVICE := true
endif
#Enable AOSP KEYMASTER and GATEKEEPER HIDLs
ifneq ($(KMGK_USE_QTI_SERVICE), true)
PRODUCT_PACKAGES += android.hardware.gatekeeper@1.0-impl \
android.hardware.gatekeeper@1.0-service \
android.hardware.keymaster@3.0-impl \
android.hardware.keymaster@3.0-service
endif
PRODUCT_PROPERTY_OVERRIDES += rild.libpath=/system/vendor/lib64/libril-qc-qmi-1.so
#Thermal
PRODUCT_PACKAGES += android.hardware.thermal@1.0-impl \
android.hardware.thermal@1.0-service
android.hardware.vibrator@1.0-service
# VNDK-SP:
PRODUCT_PACKAGES += \
vndk-sp
# Wifi
PRODUCT_PACKAGES += \
android.hardware.wifi@1.0-service \
hostapd \
libqsap_sdk \
libQWiFiSoftApCfg \
libwifi-hal-qcom \
wcnss_service \
wificond \
wpa_supplicant \
wpa_supplicant.conf
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/wifi/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf \
$(LOCAL_PATH)/wifi/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf \
$(LOCAL_PATH)/wifi/WCNSS_qcom_cfg.ini:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/WCNSS_qcom_cfg.ini
# HWUI
PRODUCT_PROPERTY_OVERRIDES += \
ro.hwui.texture_cache_size=72 \
ro.hwui.layer_cache_size=48 \
ro.hwui.path_cache_size=32 \
ro.hwui.gradient_cache_size=1 \
ro.hwui.drop_shadow_cache_size=6 \
ro.hwui.r_buffer_cache_size=8 \
ro.hwui.texture_cache_flushrate=0.4 \
ro.hwui.text_small_cache_width=1024 \
ro.hwui.text_small_cache_height=1024 \
ro.hwui.text_large_cache_width=2048 \
ro.hwui.text_large_cache_height=2048
# Density
PRODUCT_PROPERTY_OVERRIDES += \
ro.sf.lcd_density=440

15
idc/uinput-fpc.idc Normal file
View file

@ -0,0 +1,15 @@
#
# FPC1020 Touch sensor driver
#
# Copyright (c) 2013,2014 Fingerprint Cards AB <tech@fingerprints.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License Version 2
# as published by the Free Software Foundation.
#
device.internal = 1
keyboard.layout = uinput-fpc
keyboard.builtIn = 1
keyboard.orientationAware = 1

15
idc/uinput-goodix.idc Normal file
View file

@ -0,0 +1,15 @@
#
# FPC1020 Touch sensor driver
#
# Copyright (c) 2013,2014 Fingerprint Cards AB <tech@fingerprints.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License Version 2
# as published by the Free Software Foundation.
#
device.internal = 1
keyboard.layout = uinput-goodix
keyboard.builtIn = 1
keyboard.orientationAware = 1

32
keylayout/gpio-keys.kl Normal file
View file

@ -0,0 +1,32 @@
# Copyright (c) 2013, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of The Linux Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
key 115 VOLUME_UP
key 114 VOLUME_DOWN
key 102 HOME
key 528 FOCUS
key 766 CAMERA

View file

@ -0,0 +1,5 @@
# xuke @ 20160104 Import MIUI patch for headset buttons.
key 226 HEADSETHOOK WAKE
key 257 MEDIA_PREVIOUS WAKE
key 258 MEDIA_NEXT WAKE

15
keylayout/uinput-fpc.kl Normal file
View file

@ -0,0 +1,15 @@
#
# FPC1020 Touch sensor driver
#
# Copyright (c) 2013,2014 Fingerprint Cards AB <tech@fingerprints.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License Version 2
# as published by the Free Software Foundation.
#
#key 96 DPAD_CENTER
#key 102 HOME
#key 105 DPAD_LEFT
#key 106 DPAD_RIGHT

View file

@ -0,0 +1,14 @@
#
# Goodix fingerprint sensor driver
#
# Copyright (c) 2013,2014 Fingerprint Cards AB <tech@fingerprints.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License Version 2
# as published by the Free Software Foundation.
#
#key 96 DPAD_CENTER
#key 96 DPAD_CENTER
#key 102 HOME
#key 105 DPAD_LEFT
#key 106 DPAD_RIGHT

32
liblight/Android.mk Normal file
View file

@ -0,0 +1,32 @@
# Copyright (C) 2008 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.
LOCAL_PATH:= $(call my-dir)
# HAL module implemenation stored in
# hw/<COPYPIX_HARDWARE_MODULE_ID>.<ro.board.platform>.so
include $(CLEAR_VARS)
LOCAL_C_INCLUDES += $(TARGET_OUT_HEADERS)/common/inc
LOCAL_C_INCLUDES += $(TARGET_OUT_HEADERS)/qdcm/inc
LOCAL_SRC_FILES := lights.c lights_prv.cpp
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SHARED_LIBRARIES := liblog libcutils libsdm-disp-vndapis
LOCAL_CFLAGS := -DLOG_TAG=\"qdlights\"
LOCAL_CLANG := true
LOCAL_MODULE := lights.$(TARGET_BOARD_PLATFORM)
LOCAL_MODULE_TAGS := optional
LOCAL_VENDOR_MODULE := true
include $(BUILD_SHARED_LIBRARY)

View file

@ -0,0 +1,59 @@
#ifndef __DISP_COLOR_APIS_H__
#define __DISP_COLOR_APIS_H__
#ifdef __cplusplus
extern "C" {
#endif
#include <stdlib.h>
#include <sys/types.h>
#include <cutils/log.h>
typedef uint64_t DISPAPI_HANDLE;
/*=========================================================================
FUNCTION
disp_api_init()
DESCRIPTION
This API initializes the display API library.
This function must be called before calling any display APIs.
The function returns a context handle that must be used on all subsequent
calls.
hctx -- returns context handle on a successful call
flags -- Reserved
RETURN VALUE
ZERO (SUCCESS)- success.
Negative Value - error\failure
=========================================================================*/
int32_t disp_api_init(DISPAPI_HANDLE *hctx, uint32_t flags);
/*=========================================================================
FUNCTION
disp_api_set_panel_brightness_level_ext()
DESCRIPTION
This API adjusts the backlight brightness.
hctx -- Context handle.
disp_id -- Display ID type
level -- Color balance adjustement, the larger the value the warmer the color
flags -- Reserved
RETURN VALUE
ZERO (SUCCESS)- success.
Negative Value - error\failure
=========================================================================*/
int32_t disp_api_set_panel_brightness_level_ext(DISPAPI_HANDLE hctx, uint32_t disp_id, int32_t level,
uint32_t flags);
#ifdef __cplusplus
}
#endif
#endif // __DISP_COLOR_APIS_H__

413
liblight/lights.c Normal file
View file

@ -0,0 +1,413 @@
/*
* Copyright (C) 2014, 2017 The Linux Foundation. All rights reserved.
* Not a contribution
* Copyright (C) 2008 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.
*/
// #define LOG_NDEBUG 0
#include <cutils/log.h>
#include <cutils/properties.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <fcntl.h>
#include <pthread.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <hardware/lights.h>
#include "lights_prv.h"
#ifndef DEFAULT_LOW_PERSISTENCE_MODE_BRIGHTNESS
#define DEFAULT_LOW_PERSISTENCE_MODE_BRIGHTNESS 0x80
#endif
/******************************************************************************/
static pthread_once_t g_init = PTHREAD_ONCE_INIT;
static pthread_mutex_t g_lock = PTHREAD_MUTEX_INITIALIZER;
static struct light_state_t g_notification;
static struct light_state_t g_battery;
static int g_last_backlight_mode = BRIGHTNESS_MODE_USER;
static int g_attention = 0;
static int g_brightness_max = 0;
char const*const RED_LED_FILE
= "/sys/class/leds/red/brightness";
char const*const GREEN_LED_FILE
= "/sys/class/leds/green/brightness";
char const*const BLUE_LED_FILE
= "/sys/class/leds/blue/brightness";
char const*const LCD_FILE
= "/sys/class/leds/lcd-backlight/brightness";
char const*const LCD_FILE2
= "/sys/class/backlight/panel0-backlight/brightness";
char const*const BUTTON_FILE
= "/sys/class/leds/button-backlight/brightness";
char const*const RED_BLINK_FILE
= "/sys/class/leds/red/blink";
char const*const GREEN_BLINK_FILE
= "/sys/class/leds/green/blink";
char const*const BLUE_BLINK_FILE
= "/sys/class/leds/blue/blink";
char const*const PERSISTENCE_FILE
= "/sys/class/graphics/fb0/msm_fb_persist_mode";
/**
* device methods
*/
void init_globals(void)
{
// init the mutex
pthread_mutex_init(&g_lock, NULL);
}
static int
write_int(char const* path, int value)
{
int fd;
static int already_warned = 0;
fd = open(path, O_RDWR);
if (fd >= 0) {
char buffer[20];
int bytes = snprintf(buffer, sizeof(buffer), "%d\n", value);
ssize_t amt = write(fd, buffer, (size_t)bytes);
close(fd);
return amt == -1 ? -errno : 0;
} else {
if (already_warned == 0) {
ALOGE("write_int failed to open %s\n", path);
already_warned = 1;
}
return -errno;
}
}
static int
is_lit(struct light_state_t const* state)
{
return state->color & 0x00ffffff;
}
static int
rgb_to_brightness(struct light_state_t const* state)
{
int color = state->color & 0x00ffffff;
return ((77*((color>>16)&0x00ff))
+ (150*((color>>8)&0x00ff)) + (29*(color&0x00ff))) >> 8;
}
static int
set_light_backlight(struct light_device_t* dev,
struct light_state_t const* state)
{
int err = 0;
int brightness = rgb_to_brightness(state);
unsigned int lpEnabled =
state->brightnessMode == BRIGHTNESS_MODE_LOW_PERSISTENCE;
if(!dev) {
return -1;
}
pthread_mutex_lock(&g_lock);
// Toggle low persistence mode state
if ((g_last_backlight_mode != state->brightnessMode && lpEnabled) ||
(!lpEnabled &&
g_last_backlight_mode == BRIGHTNESS_MODE_LOW_PERSISTENCE)) {
if ((err = write_int(PERSISTENCE_FILE, lpEnabled)) != 0) {
ALOGE("%s: Failed to write to %s: %s\n", __FUNCTION__,
PERSISTENCE_FILE, strerror(errno));
}
if (lpEnabled != 0) {
brightness = DEFAULT_LOW_PERSISTENCE_MODE_BRIGHTNESS;
}
}
g_last_backlight_mode = state->brightnessMode;
brightness *= brightness;
if (!err) {
if (!access(LCD_FILE, F_OK)) {
err = write_int(LCD_FILE, brightness);
} else {
err = write_int(LCD_FILE2, brightness);
}
}
pthread_mutex_unlock(&g_lock);
return err;
}
static int
set_light_backlight_ext(struct light_device_t* dev,
struct light_state_t const* state)
{
int err = 0;
if(!dev) {
return -1;
}
int brightness = state->color & 0x00ffffff;
pthread_mutex_lock(&g_lock);
if (brightness >= 0 && brightness <= g_brightness_max) {
set_brightness_ext_level(brightness);
}
pthread_mutex_unlock(&g_lock);
return err;
}
static int
set_speaker_light_locked(struct light_device_t* dev,
struct light_state_t const* state)
{
int red, green, blue;
int blink;
int onMS, offMS;
unsigned int colorRGB;
if(!dev) {
return -1;
}
switch (state->flashMode) {
case LIGHT_FLASH_TIMED:
onMS = state->flashOnMS;
offMS = state->flashOffMS;
break;
case LIGHT_FLASH_NONE:
default:
onMS = 0;
offMS = 0;
break;
}
colorRGB = state->color;
#if 0
ALOGD("set_speaker_light_locked mode %d, colorRGB=%08X, onMS=%d, offMS=%d\n",
state->flashMode, colorRGB, onMS, offMS);
#endif
red = (colorRGB >> 16) & 0xFF;
green = (colorRGB >> 8) & 0xFF;
blue = colorRGB & 0xFF;
if (onMS > 0 && offMS > 0) {
/*
* if ON time == OFF time
* use blink mode 2
* else
* use blink mode 1
*/
if (onMS == offMS)
blink = 2;
else
blink = 1;
} else {
blink = 0;
}
if (blink) {
if (red) {
if (write_int(RED_BLINK_FILE, blink))
write_int(RED_LED_FILE, 0);
}
if (green) {
if (write_int(GREEN_BLINK_FILE, blink))
write_int(GREEN_LED_FILE, 0);
}
if (blue) {
if (write_int(BLUE_BLINK_FILE, blink))
write_int(BLUE_LED_FILE, 0);
}
} else {
write_int(RED_LED_FILE, red);
write_int(GREEN_LED_FILE, green);
write_int(BLUE_LED_FILE, blue);
}
return 0;
}
static void
handle_speaker_battery_locked(struct light_device_t* dev)
{
if (is_lit(&g_battery)) {
set_speaker_light_locked(dev, &g_battery);
} else {
set_speaker_light_locked(dev, &g_notification);
}
}
static int
set_light_battery(struct light_device_t* dev,
struct light_state_t const* state)
{
pthread_mutex_lock(&g_lock);
g_battery = *state;
handle_speaker_battery_locked(dev);
pthread_mutex_unlock(&g_lock);
return 0;
}
static int
set_light_notifications(struct light_device_t* dev,
struct light_state_t const* state)
{
pthread_mutex_lock(&g_lock);
g_notification = *state;
handle_speaker_battery_locked(dev);
pthread_mutex_unlock(&g_lock);
return 0;
}
static int
set_light_attention(struct light_device_t* dev,
struct light_state_t const* state)
{
pthread_mutex_lock(&g_lock);
if (state->flashMode == LIGHT_FLASH_HARDWARE) {
g_attention = state->flashOnMS;
} else if (state->flashMode == LIGHT_FLASH_NONE) {
g_attention = 0;
}
handle_speaker_battery_locked(dev);
pthread_mutex_unlock(&g_lock);
return 0;
}
static int
set_light_buttons(struct light_device_t* dev,
struct light_state_t const* state)
{
int err = 0;
if(!dev) {
return -1;
}
pthread_mutex_lock(&g_lock);
err = write_int(BUTTON_FILE, state->color & 0xFF);
pthread_mutex_unlock(&g_lock);
return err;
}
/** Close the lights device */
static int
close_lights(struct light_device_t *dev)
{
if (dev) {
free(dev);
}
return 0;
}
/******************************************************************************/
/**
* module methods
*/
/** Open a new instance of a lights device using name */
static int open_lights(const struct hw_module_t* module, char const* name,
struct hw_device_t** device)
{
int (*set_light)(struct light_device_t* dev,
struct light_state_t const* state);
if (0 == strcmp(LIGHT_ID_BACKLIGHT, name)) {
char property[PROPERTY_VALUE_MAX];
property_get("persist.extend.brightness", property, "0");
if(!(strncmp(property, "1", PROPERTY_VALUE_MAX)) ||
!(strncmp(property, "true", PROPERTY_VALUE_MAX))) {
property_get("persist.display.max_brightness", property, "255");
g_brightness_max = atoi(property);
set_brightness_ext_init();
set_light = set_light_backlight_ext;
} else
set_light = set_light_backlight;
} else if (0 == strcmp(LIGHT_ID_BATTERY, name))
set_light = set_light_battery;
else if (0 == strcmp(LIGHT_ID_NOTIFICATIONS, name))
set_light = set_light_notifications;
else if (0 == strcmp(LIGHT_ID_BUTTONS, name)) {
if (!access(BUTTON_FILE, F_OK)) {
// enable light button when the file is present
set_light = set_light_buttons;
} else {
return -EINVAL;
}
}
else if (0 == strcmp(LIGHT_ID_ATTENTION, name))
set_light = set_light_attention;
else
return -EINVAL;
pthread_once(&g_init, init_globals);
struct light_device_t *dev = malloc(sizeof(struct light_device_t));
if(!dev)
return -ENOMEM;
memset(dev, 0, sizeof(*dev));
dev->common.tag = HARDWARE_DEVICE_TAG;
dev->common.version = LIGHTS_DEVICE_API_VERSION_2_0;
dev->common.module = (struct hw_module_t*)module;
dev->common.close = (int (*)(struct hw_device_t*))close_lights;
dev->set_light = set_light;
*device = (struct hw_device_t*)dev;
return 0;
}
static struct hw_module_methods_t lights_module_methods = {
.open = open_lights,
};
/*
* The lights Module
*/
struct hw_module_t HAL_MODULE_INFO_SYM = {
.tag = HARDWARE_MODULE_TAG,
.version_major = 1,
.version_minor = 0,
.id = LIGHTS_HARDWARE_MODULE_ID,
.name = "lights Module",
.author = "Google, Inc.",
.methods = &lights_module_methods,
};

54
liblight/lights_prv.cpp Normal file
View file

@ -0,0 +1,54 @@
/*
* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <hardware/hwcomposer_defs.h>
#include "disp_color_apis.h"
#include "lights_prv.h"
/******************************************************************************/
static DISPAPI_HANDLE g_ctx;
/**
* device methods
*/
void set_brightness_ext_init(void)
{
disp_api_init((DISPAPI_HANDLE*) &g_ctx, 0);
}
int set_brightness_ext_level(int level)
{
int err = disp_api_set_panel_brightness_level_ext(g_ctx, HWC_DISPLAY_PRIMARY,
level, 0);
return err;
}

43
liblight/lights_prv.h Normal file
View file

@ -0,0 +1,43 @@
/*
* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef LIGHTS_PRV_H
#define LIGHTS_PRV_H
#ifdef __cplusplus
extern "C" {
#endif
extern void set_brightness_ext_init(void);
extern int set_brightness_ext_level(int level);
#ifdef __cplusplus
}
#endif
#endif

1227
manifest.xml Executable file → Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015-2016 The CyanogenMod Project
2017 The LineageOS 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.
-->
<resources>
<!-- All the capabilities of the LEDs on this device, stored as a bit field.
This integer should equal the sum of the corresponding value for each
of the following capabilities present:
LIGHTS_RGB_NOTIFICATION_LED = 1
LIGHTS_RGB_BATTERY_LED = 2
LIGHTS_MULTIPLE_NOTIFICATION_LED = 4 (deprecated)
LIGHTS_PULSATING_LED = 8
LIGHTS_SEGMENTED_BATTERY_LED = 16
LIGHTS_ADJUSTABLE_NOTIFICATION_LED_BRIGHTNESS = 32
LIGHTS_BATTERY_LED = 64
For example, a device with notification and battery lights that supports
pulsating and RGB control would set this config to 75. -->
<integer name="config_deviceLightCapabilities">104</integer>
<!-- Hardware keys present on the device, stored as a bit field.
This integer should equal the sum of the corresponding value for each
of the following keys present:
1 - Home
2 - Back
4 - Menu
8 - Assistant (search)
16 - App switch
32 - Camera
64 - Volume rocker
For example, a device with Home, Back and Menu keys would set this
config to 7. -->
<integer name="config_deviceHardwareKeys">64</integer>
<!-- Hardware keys present on the device with the ability to wake, stored as a bit field.
This integer should equal the sum of the corresponding value for each
of the following keys present:
1 - Home
2 - Back
4 - Menu
8 - Assistant (search)
16 - App switch
32 - Camera
64 - Volume rocker
For example, a device with Home, Back and Menu keys would set this
config to 7. -->
<integer name="config_deviceHardwareWakeKeys">64</integer>
</resources>

View file

@ -1,43 +1,467 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2016, The Linux Foundation. All rights reserved.
<!-- Copyright (C) 2009 The Android Open Source Project
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of The Linux Foundation nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
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
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
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.
-->
<resources>
<!-- The duration (in milliseconds) for the outgoing sms authorization request to timeout.-->
<integer name="config_sms_authorization_timeout_ms">15000</integer>
<!-- Enable SMS authorization support -->
<bool name="config_sms_authorization_enabled">true</bool>
<!-- List of regexpressions describing the interface (if any) that represent tetherable
Wifi interfaces. If the device doesn't want to support tethering over Wifi this
should be empty. An example would be "softap.*" -->
<string-array translatable="false" name="config_tether_wifi_regexs">
<item>"wigig0"</item>
<item>"softap0"</item>
</string-array>
<!-- These resources are around just to allow their values to be customized
for different hardware and product builds. Do not translate. -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Flag indicating whether the we should enable the automatic brightness in Settings.
Software implementation will be used if config_hardware_auto_brightness_available is not set -->
<bool name="config_automatic_brightness_available">true</bool>
<!-- Array of light sensor LUX values to define our levels for auto backlight brightness support.
The N entries of this array define N + 1 control points as follows:
(1-based arrays)
Point 1: (0, value[1]): lux <= 0
Point 2: (level[1], value[2]): 0 < lux <= level[1]
Point 3: (level[2], value[3]): level[2] < lux <= level[3]
...
Point N+1: (level[N], value[N+1]): level[N] < lux
The control points must be strictly increasing. Each control point
corresponds to an entry in the brightness backlight values arrays.
For example, if LUX == level[1] (first element of the levels array)
then the brightness will be determined by value[2] (second element
of the brightness values array).
Spline interpolation is used to determine the auto-brightness
backlight values for LUX levels between these control points.
Must be overridden in platform specific overlays -->
<integer-array name="config_autoBrightnessLevels">
<item>1</item> <!-- pitch black -->
<item>5</item> <!-- dark indoor -->
<item>10</item> <!-- twilight -->
<item>50</item> <!-- dim indoor -->
<item>100</item> <!-- home -->
<item>300</item> <!-- office -->
<item>500</item> <!-- sunrise -->
<item>1000</item> <!-- overcast -->
<item>3000</item> <!-- indirect sun -->
<item>10000</item> <!-- daylight -->
</integer-array>
<!-- Array of output values for LCD backlight corresponding to the LUX values
in the config_autoBrightnessLevels array. This array should have size one greater
than the size of the config_autoBrightnessLevels array.
The brightness values must be between 0 and 255 and be non-decreasing.
This must be overridden in platform specific overlays -->
<integer-array name="config_autoBrightnessLcdBacklightValues">
<item>16</item>
<item>20</item>
<item>24</item>
<item>31</item>
<item>48</item>
<item>74</item>
<item>107</item>
<item>152</item>
<item>194</item>
<item>254</item>
<item>255</item>
</integer-array>
<!-- Screen brightness used to dim the screen when the user activity
timeout expires. May be less than the minimum allowed brightness setting
that can be set by the user. -->
<integer name="config_screenBrightnessDim">10</integer>
<!-- Default screen brightness setting.
Must be in the range specified by minimum and maximum. -->
<integer name="config_screenBrightnessSettingDefault">128</integer>
<!-- Minimum screen brightness setting allowed by the power manager.
The user is forbidden from setting the brightness below this level. -->
<integer name="config_screenBrightnessSettingMinimum">1</integer>
<!-- Stability requirements in milliseconds for accepting a new brightness level. This is used
for debouncing the light sensor. Different constants are used to debounce the light sensor
when adapting to brighter or darker environments. This parameter controls how quickly
brightness changes occur in response to an observed change in light level that exceeds the
hysteresis threshold. -->
<integer name="config_autoBrightnessBrighteningLightDebounce">2000</integer>
<integer name="config_autoBrightnessDarkeningLightDebounce">6000</integer>
<!-- The maximum range of gamma adjustment possible using the screen
auto-brightness adjustment setting. -->
<fraction name="config_autoBrightnessAdjustmentMaxGamma">200%</fraction>
<!-- Period of time in which to consider light samples in milliseconds. -->
<integer name="config_autoBrightnessAmbientLightHorizon">16000</integer>
<!-- If this is true, the screen will come on when you unplug usb/power/whatever. -->
<bool name="config_unplugTurnsOnScreen">true</bool>
<!-- Boolean indicating if restoring network selection should be skipped -->
<!-- The restoring is handled by modem if it is true-->
<bool translatable="false" name="skip_restoring_network_selection">true</bool>
<!-- Set to true to add links to Cell Broadcast app from Settings and MMS app. -->
<bool name="config_cellBroadcastAppLinks">true</bool>
<!-- MMS user agent string -->
<string name="config_mms_user_agent" translatable="false">Android-Mms/2.0</string>
<!-- MMS user agent prolfile url -->
<string name="config_mms_user_agent_profile_url" translatable="false">http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
<!-- Is the notification LED intrusive? Used to decide if there should be a disable option -->
<bool name="config_intrusiveNotificationLed">true</bool>
<!-- List of regexpressions describing the interface (if any) that represent tetherable
USB interfaces. If the device doesn't want to support tething over USB this should
be empty. An example would be "usb.*" -->
<string-array translatable="false" name="config_tether_usb_regexs">
<item>"usb\\d"</item>
<item>"rndis\\d"</item>
</string-array>
<!-- List of regexpressions describing the interface (if any) that represent tetherable
Wifi interfaces. If the device doesn't want to support tethering over Wifi this
should be empty. An example would be "softap.*" -->
<string-array translatable="false" name="config_tether_wifi_regexs">
<item>"wlan0"</item>
<item>"wigig0"</item>
</string-array>
<!-- List of regexpressions describing the interface (if any) that represent tetherable
bluetooth interfaces. If the device doesn't want to support tethering over bluetooth this
should be empty. -->
<string-array translatable="false" name="config_tether_bluetooth_regexs">
<item>"bnep\\d"</item>
<item>"bt-pan"</item>
</string-array>
<!-- Array of allowable ConnectivityManager network types for tethering -->
<!-- Common options are [1, 4] for TYPE_WIFI and TYPE_MOBILE_DUN or
[0,1,5,7] for TYPE_MOBILE, TYPE_WIFI, TYPE_MOBILE_HIPRI and TYPE_BLUETOOTH -->
<integer-array translatable="false" name="config_tether_upstream_types">
<item>0</item>
<item>1</item>
<item>5</item>
<item>7</item>
</integer-array>
<!-- Dhcp range (min, max) to use for tethering purposes -->
<!-- USB is 192.168.42.1 and 255.255.255.0
Wifi is 192.168.43.1 and 255.255.255.0
BT is limited to max default of 5 connections. 192.168.44.1 to 192.168.48.1
with 255.255.255.0
P2P is 192.168.49.1 and 255.255.255.0
Wigig is 192.168.50.1 and 255.255.255.0
Wigig P2P is 192.168.51.1 and 255.255.255.0
-->
<string-array name="config_tether_dhcp_range">
<item>192.168.42.2</item>
<item>192.168.42.254</item>
<item>192.168.43.2</item>
<item>192.168.43.254</item>
<item>192.168.44.2</item>
<item>192.168.44.254</item>
<item>192.168.45.2</item>
<item>192.168.45.254</item>
<item>192.168.46.2</item>
<item>192.168.46.254</item>
<item>192.168.47.2</item>
<item>192.168.47.254</item>
<item>192.168.48.2</item>
<item>192.168.48.254</item>
<item>192.168.49.2</item>
<item>192.168.49.254</item>
<item>192.168.50.2</item>
<item>192.168.50.254</item>
<item>192.168.51.2</item>
<item>192.168.51.254</item>
</string-array>
<!-- This string array should be overridden by the device to present a list of network
attributes. This is used by the connectivity manager to decide which networks can coexist
based on the hardware -->
<!-- An Array of "[Connection name],[ConnectivityManager.TYPE_xxxx],
[associated radio-type],[priority],[restoral-timer(ms)],[dependencyMet] -->
<!-- the 5th element "resore-time" indicates the number of milliseconds to delay
before automatically restore the default connection. Set -1 if the connection
does not require auto-restore. -->
<!-- the 6th element indicates boot-time dependency-met value. -->
<string-array translatable="false" name="networkAttributes">
<item>wifi,1,1,1,-1,true</item>
<item>mobile,0,0,0,-1,true</item>
<item>mobile_mms,2,0,4,300000,true</item>
<item>mobile_supl,3,0,2,300000,true</item>
<item>mobile_dun,4,0,2,300000,true</item>
<item>mobile_hipri,5,0,3,300000,true</item>
<item>mobile_fota,10,0,2,300000,true</item>
<item>mobile_ims,11,0,2,300000,true</item>
<item>mobile_cbs,12,0,2,300000,true</item>
<item>bluetooth,7,7,2,-1,true</item>
<item>ethernet,9,9,4,-1,true</item>
</string-array>
<!-- This string array should be overridden by the device to present a list of radio
attributes. This is used by the connectivity manager to decide which networks can coexist
based on the hardware -->
<!-- An Array of "[ConnectivityManager connectionType],
[# simultaneous connection types]" -->
<string-array translatable="false" name="radioAttributes">
<item>"1,1"</item>
<item>"0,1"</item>
<item>"7,1"</item>
<item>"9,1"</item>
</string-array>
<!-- Whether WiFi display is supported by this device.
There are many prerequisites for this feature to work correctly.
Here are a few of them:
* The WiFi radio must support WiFi P2P.
* The WiFi radio must support concurrent connections to the WiFi display and
to an access point.
* The Audio Flinger audio_policy.conf file must specify a rule for the "r_submix"
remote submix module. This module is used to record and stream system
audio output to the WiFi display encoder in the media server.
* The remote submix module "audio.r_submix.default" must be installed on the device.
* The device must be provisioned with HDCP keys (for protected content).
-->
<bool name="config_enableWifiDisplay">true</bool>
<!-- Set to true if the wifi display supports compositing content stored
in gralloc protected buffers. For this to be true, there must exist
a protected hardware path for surface flinger to composite and send
protected buffers to the wifi display video encoder.
If this flag is false, we advise applications not to use protected
buffers (if possible) when presenting content to a wifi display because
the content may be blanked.
This flag controls whether the {@link Display#FLAG_SUPPORTS_PROTECTED_BUFFERS}
flag is set for wifi displays.
-->
<bool name="config_wifiDisplaySupportsProtectedBuffers">true</bool>
<!-- Boolean indicating whether the wifi chipset has dual frequency band support -->
<bool translatable="false" name="config_wifi_dual_band_support">true</bool>
<!-- Boolean indicating whether the wifi chipset has background scan support -->
<bool translatable="false" name="config_wifi_background_scan_support">true</bool>
<!-- Wifi driver supports batched scan -->
<bool translatable="false" name="config_wifi_batched_scan_supported">true</bool>
<!-- When true use the linux /dev/input/event subsystem to detect the switch changes
on the headphone/microphone jack. When false use the older uevent framework. -->
<bool name="config_useDevInputEventForAudioJack">true</bool>
<!-- Indicate whether closing the lid causes the device to go to sleep and opening
it causes the device to wake up.
The default is false. -->
<bool name="config_lidControlsSleep">true</bool>
<!-- Enables or disables fading edges when marquee is enabled in TextView.
Off by default, since the framebuffer readback used to implement the
fading edges is prohibitively expensive on most GPUs. -->
<bool name="config_ui_enableFadingMarquee">false</bool>
<!-- ComponentName of a dream to show whenever the system would otherwise have
gone to sleep. When the PowerManager is asked to go to sleep, it will instead
try to start this dream if possible. The dream should typically call startDozing()
to put the display into a low power state and allow the application processor
to be suspended. When the dream ends, the system will go to sleep as usual.
Specify the component name or an empty string if none.
Note that doze dreams are not subject to the same start conditions as ordinary dreams.
Doze dreams will run whenever the power manager is in a dozing state. -->
<string name="config_dozeComponent">com.android.systemui/com.android.systemui.doze.DozeService</string>
<!-- If true, the doze component is not started until after the screen has been
turned off and the screen off animation has been performed. -->
<bool name="config_dozeAfterScreenOff">true</bool>
<!-- Power Management: Specifies whether to decouple the auto-suspend state of the
device from the display on/off state.
When false, autosuspend_disable() will be called before the display is turned on
and autosuspend_enable() will be called after the display is turned off.
This mode provides best compatibility for devices using legacy power management
features such as early suspend / late resume.
When true, autosuspend_display() and autosuspend_enable() will be called
independently of whether the display is being turned on or off. This mode
enables the power manager to suspend the application processor while the
display is on.
This resource should be set to "true" when a doze component has been specified
to maximize power savings but not all devices support it.
Refer to autosuspend.h for details.
-->
<bool name="config_powerDecoupleAutoSuspendModeFromDisplay">false</bool>
<!-- Power Management: Specifies whether to decouple the interactive state of the
device from the display on/off state.
When false, setInteractive(..., true) will be called before the display is turned on
and setInteractive(..., false) will be called after the display is turned off.
This mode provides best compatibility for devices that expect the interactive
state to be tied to the display state.
When true, setInteractive(...) will be called independently of whether the display
is being turned on or off. This mode enables the power manager to reduce
clocks and disable the touch controller while the display is on.
This resource should be set to "true" when a doze component has been specified
to maximize power savings but not all devices support it.
Refer to power.h for details.
-->
<bool name="config_powerDecoupleInteractiveModeFromDisplay">true</bool>
<!-- Screen brightness used to dim the screen while dozing in a very low power state.
May be less than the minimum allowed brightness setting
that can be set by the user. -->
<integer name="config_screenBrightnessDoze">17</integer>
<!-- Whether device supports double tap to wake -->
<bool name="config_supportDoubleTapWake">true</bool>
<!-- Configure mobile tcp buffer sizes in the form:
rat-name:rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max
If no value is found for the rat-name in use, the system default will be applied.
-->
<string-array name="config_mobile_tcp_buffers">
<item>umts:131072,262144,1452032,4096,16384,399360</item>
<item>hspa:131072,262144,2441216,4096,16384,399360</item>
<item>hsupa:131072,262144,2441216,4096,16384,399360</item>
<item>hsdpa:131072,262144,2441216,4096,16384,399360</item>
<item>hspap:131072,262144,2441216,4096,16384,399360</item>
<item>edge:16384,32768,131072,4096,16384,65536</item>
<item>gprs:4096,8192,24576,4096,8192,24576</item>
<item>1xrtt:16384,32768,131070,4096,16384,102400</item>
<item>evdo:131072,262144,1048576,4096,16384,524288</item>
<item>lte:524288,1048576,8388608,262144,524288,4194304</item>
</string-array>
<!-- Configure wifi tcp buffersizes in the form:
rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max -->
<string name="config_wifi_tcp_buffers" translatable="false">524288,2097152,8388608,262144,524288,4194304</string>
<!-- Flag specifying whether VoLTE is available on device -->
<bool name="config_device_volte_available">true</bool>
<!-- Flag specifying whether VoLTE should be available for carrier: independent of
carrier provisioning. If false: hard disabled. If true: then depends on carrier
provisioning, availability etc -->
<bool name="config_carrier_volte_available">true</bool>
<!-- Flag specifying whether WFC over IMS is available on device -->
<bool name="config_device_wfc_ims_available">true</bool>
<!-- Flag specifying whether WFC over IMS should be available for carrier: independent of
carrier provisioning. If false: hard disabled. If true: then depends on carrier
provisioning, availability etc -->
<bool name="config_carrier_wfc_ims_available">true</bool>
<!-- ImsService package name to bind to by default, if config_dynamic_bind_ims is true -->
<string name="config_ims_package">org.codeaurora.ims</string>
<!-- Flag specifying whether or not IMS will use the ImsResolver dynamically -->
<bool name="config_dynamic_bind_ims">true</bool>
<!-- Config determines whether to update phone object when voice registration
state changes. Voice radio tech change will always trigger an update of
phone object irrespective of this config -->
<bool name="config_switch_phone_on_voice_reg_state_change">false</bool>
<!-- Boolean indicating if current platform supports BLE peripheral mode -->
<bool name="config_bluetooth_le_peripheral_mode_supported">true</bool>
<!-- Is the device capable of hot swapping an ICC Card -->
<bool name="config_hotswapCapable">true</bool>
<!-- If true, the screen can be rotated via the accelerometer in all 4
rotations as the default behavior. -->
<bool name="config_allowAllRotations">true</bool>
<!-- Integer parameters of the wifi to cellular handover feature
wifi should not stick to bad networks -->
<integer name="config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz">-100</integer>
<integer name="config_wifi_framework_wifi_score_low_rssi_threshold_5GHz">-100</integer>
<integer name="config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz">-100</integer>
<integer name="config_wifi_framework_wifi_score_low_rssi_threshold_24GHz">-100</integer>
<!-- Flag indicating if the speed up audio on mt call code should be executed -->
<bool name="config_speed_up_audio_on_mt_calls">true</bool>
<!-- Vibrator pattern for feedback about a long screen/key press -->
<integer-array name="config_longPressVibePattern">
<item>0</item>
<item>28</item>
<item>10</item>
</integer-array>
<!-- Vibrator pattern for feedback about touching a virtual key -->
<integer-array name="config_virtualKeyVibePattern">
<item>0</item>
<item>28</item>
<item>8</item>
</integer-array>
<!-- Vibrator pattern for a very short but reliable vibration for soft keyboard tap -->
<integer-array name="config_keyboardTapVibePattern">
<item>28</item>
</integer-array>
<!-- Control the behavior when the user long presses the home button.
0 - Nothing
1 - Menu key
2 - Recent apps view in SystemUI
3 - Launch assist intent
4 - Voice Search
5 - In-app Search
This needs to match the constants in
policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
-->
<integer name="config_longPressOnHomeBehavior">3</integer>
<!-- Operating volatage for bluetooth controller. 0 by default-->
<integer name="config_bluetooth_operating_voltage_mv">3300</integer>
<!-- Enable overlay for all location components. -->
<string name="config_networkLocationProviderPackageName" translatable="false">com.qualcomm.location</string>
<string name="config_fusedLocationProviderPackageName" translatable="false">com.qualcomm.location</string>
<!-- Define Google play service package for FRP-->
<string name="config_persistentDataPackageName" translatable="false">com.google.android.gms</string>
<!-- Boolean indicating whether the HWC setColorTransform function can be performed efficiently
in hardware. -->
<bool name="config_setColorTransformAccelerated">true</bool>
<!-- Default list of files pinned by the Pinner Service -->
<string-array translatable="false" name="config_defaultPinnerServiceFiles">
<item>"/system/framework/arm64/boot-framework.oat"</item>
<item>"/system/framework/arm64/boot-framework.vdex"</item>
<item>"/system/framework/oat/arm64/services.odex"</item>
<item>"/system/framework/oat/arm64/services.vdex"</item>
<item>"/system/framework/arm64/boot.oat"</item>
<item>"/system/framework/arm64/boot.vdex"</item>
<item>"/system/framework/arm64/boot-core-libart.oat"</item>
<item>"/system/framework/arm64/boot-core-libart.vdex"</item>
</string-array>
<!-- True if camera app should be pinned via Pinner Service -->
<bool name="config_pinnerCameraApp">true</bool>
<!-- Default value for led color when battery is low on charge -->
<integer name="config_notificationsBatteryLowARGB">0xFFFFFFFF</integer>
<!-- Default value for led color when battery is medium charged -->
<integer name="config_notificationsBatteryMediumARGB">0xFFFFFFFF</integer>
<!-- Default value for led color when battery is fully charged -->
<integer name="config_notificationsBatteryFullARGB">0xFFFFFFFF</integer>
</resources>

View file

@ -1,115 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2016, The Linux Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of The Linux Foundation nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
-->
<device name="Android">
<!-- Most values are the incremental current used by a feature,
in mA (measured at nominal voltage).
The default values are deliberately incorrect dummy values.
OEM's must measure and provide actual values before
shipping a device.
Example real-world values are given in comments, but they
are totally dependent on the platform and can vary
significantly, so should be measured on the shipping platform
with a power meter. -->
<item name="none">0</item>
<item name="screen.on">63</item> <!-- ~200mA -->
<item name="screen.full">261</item> <!-- ~300mA -->
<!-- A list of heterogeneous CPU clusters, where the value for each cluster represents the
number of CPU cores for that cluster.
Ex:
<array name="cpu.clusters.cores">
<value>4</value> // cluster 0 has cpu0, cpu1, cpu2, cpu3
<value>2</value> // cluster 1 has cpu4, cpu5
</array> -->
<array name="cpu.clusters.cores">
<value>4</value> <!-- cluster 0 has cpu0, cpu1, cpu2, cpu3 -->
<value>4</value> <!-- cluster 1 has cpu4, cpu5, cpu6, cpu7 -->
</array>
<!-- Different CPU speeds for cluster 0 as reported in
/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state.
There must be one of these for each cluster, labeled:
cpu.speeds.cluster0, cpu.speeds.cluster1, etc... -->
<array name="cpu.speeds.cluster0">
<value>633000</value> <!-- 633 MHz CPU speed -->
<value>902000</value> <!-- 902 MHz CPU speed -->
<value>1113000</value> <!-- 1113 MHz CPU speed -->
<value>1401000</value> <!-- 1401 MHz CPU speed -->
<value>1536000</value> <!-- 1536 MHz CPU speed -->
<value>1747000</value> <!-- 1747 MHz CPU speed -->
<value>1843000</value> <!-- 1843 MHz CPU speed -->
</array>
<!-- Current at each CPU speed for cluster 0, as per 'cpu.speeds.cluster0'.
Like cpu.speeds.cluster0, there must be one of these present for
each heterogeneous CPU cluster. -->
<array name="cpu.active.cluster0">
<value>34</value> <!-- ~34mA -->
<value>60</value> <!-- ~60mA -->
<value>85</value> <!-- ~85mA -->
<value>128</value> <!-- ~128mA -->
<value>163</value> <!-- ~163mA -->
<value>202</value> <!-- ~202mA -->
<value>253</value> <!-- ~253mA -->
</array>
<array name="cpu.speeds.cluster1">
<value>1113000</value> <!-- 1113 MHz CPU speed -->
<value>1401000</value> <!-- 1401 MHz CPU speed -->
<value>1747000</value> <!-- 1747 MHz CPU speed -->
<value>1958000</value> <!-- 1958 MHz CPU speed -->
<value>2150000</value> <!-- 2150 MHz CPU speed -->
</array>
<!-- Current at each CPU speed for cluster 1, as per 'cpu.speeds.cluster1'.
Like cpu.speeds.cluster1, there must be one of these present for
each heterogeneous CPU cluster. -->
<array name="cpu.active.cluster1">
<value>226</value> <!-- ~226mA -->
<value>331</value> <!-- ~331mA -->
<value>497</value> <!-- ~497mA -->
<value>614</value> <!-- ~614mA -->
<value>777</value> <!-- ~777mA -->
</array>
<!-- Current when CPU is awake -->
<item name="cpu.awake">1.6</item>
<!-- Current when CPU is idle -->
<item name="cpu.idle">0.1</item>
<!-- This is the battery capacity in mAh (measured at nominal voltage) -->
<item name="battery.capacity">1000</item>
<item name="screen.on">95</item>
<item name="screen.full">275</item>
<array name="cpu.clusters.cores">
<value>4</value>
<value>4</value>
</array>
<array name="cpu.speeds.cluster0">
<value>633000</value>
<value>902000</value>
<value>1113000</value>
<value>1401000</value>
<value>1536000</value>
<value>1747000</value>
<value>1843000</value>
</array>
<array name="cpu.active.cluster0">
<value>12</value>
<value>23</value>
<value>30</value>
<value>40</value>
<value>50</value>
<value>55</value>
<value>65</value>
</array>
<array name="cpu.speeds.cluster1">
<value>1113600</value>
<value>1401600</value>
<value>1747200</value>
<value>1958400</value>
<value>2150000</value>
<value>2208000</value>
</array>
<array name="cpu.active.cluster1">
<value>75</value>
<value>110</value>
<value>155</value>
<value>220</value>
<value>285</value>
<value>310</value>
</array>
<item name="cpu.awake">9</item>
<item name="cpu.idle">6</item>
<item name="battery.capacity">3010</item>
<item name="bluetooth.active">70</item>
<item name="bluetooth.at">2</item>
<item name="bluetooth.on">2</item>
<item name="wifi.on">2</item>
<item name="wifi.active">175</item>
<item name="wifi.scan">180</item>
</device>

View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/**
* Copyright (c) 2015, 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.
*/
-->
<resources>
<!-- Set the automatic brightness mode on by default -->
<bool name="def_screen_brightness_automatic_mode">true</bool>
</resources>

View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2015 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.
-->
<!-- Telecomm resources that may need to be customized
for different hardware or product builds. -->
<resources>
<!-- Flag indicating if the tty is enabled -->
<bool name="tty_enabled">true</bool>
</resources>

View file

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 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.
-->
<!-- NOTE: Many variables that used to be in this file have been migrated to
CarrierConfigManager.java. Please consider whether new variables belong
there before adding to this file. Variables here should be more closely
related to devices than to networks. -->
<!-- Phone app resources that may need to be customized
for different hardware or product builds. -->
<resources>
<!-- Determine whether calls to mute the microphone in PhoneUtils
are routed through the android.media.AudioManager class (true) or through
the com.android.internal.telephony.Phone interface (false). -->
<bool name="send_mic_mute_to_AudioManager">true</bool>
<!-- Flag indicating if hac is enabled -->
<bool name="hac_enabled">true</bool>
<!-- Show enabled lte option for lte device -->
<bool name="config_enabled_lte" translatable="false">true</bool>
<!-- Show Preferred Network Type options in No SIM case -->
<bool name="config_no_sim_display_network_modes">true</bool>
</resources>

174
rootdir/Android.mk Executable file → Normal file
View file

@ -4,17 +4,171 @@ include $(CLEAR_VARS)
# files that live under device/qcom/common/rootdir/etc/
include $(CLEAR_VARS)
LOCAL_MODULE := init.target.rc
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.target.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
LOCAL_MODULE := init.qcom.early_boot.sh
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := bin/init.qcom.early_boot.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := fstab.qcom
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/fstab.qcom
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)
LOCAL_MODULE := init.qcom.class_core.sh
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := bin/init.qcom.class_core.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.coex.sh
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := bin/init.qcom.coex.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.crashdata.sh
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := bin/init.qcom.crashdata.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.efs.sync.sh
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := bin/init.qcom.efs.sync.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.sdio.sh
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := bin/init.qcom.sdio.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.syspart_fixup.sh
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := bin/init.qcom.syspart_fixup.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.wifi.sh
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := bin/init.qcom.wifi.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := qca6234-service.sh
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := bin/qca6234-service.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.post_boot.sh
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := bin/init.qcom.post_boot.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qti.ims.sh
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := bin/init.qti.ims.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.rc
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.qcom.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.sh
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := bin/init.qcom.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.class_main.sh
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := bin/init.class_main.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.usb.rc
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.qcom.usb.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.msm.usb.configfs.rc
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.msm.usb.configfs.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.usb.sh
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := bin/init.qcom.usb.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := ueventd.qcom.rc
LOCAL_MODULE_STEM := ueventd.rc
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/ueventd.qcom.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.sensors.sh
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := bin/init.qcom.sensors.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.target.rc
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.target.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := fstab.qcom
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/fstab.qcom
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)
include $(BUILD_PREBUILT)

102
rootdir/bin/init.class_main.sh Executable file
View file

@ -0,0 +1,102 @@
#! /vendor/bin/sh
# Copyright (c) 2013-2014, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of The Linux Foundation nor
# the names of its contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#
# start ril-daemon only for targets on which radio is present
#
baseband=`getprop ro.baseband`
sgltecsfb=`getprop persist.vendor.radio.sglte_csfb`
datamode=`getprop persist.data.mode`
case "$baseband" in
"apq" | "sda" )
setprop ro.radio.noril yes
stop ril-daemon
esac
case "$baseband" in
"msm" | "csfb" | "svlte2a" | "mdm" | "mdm2" | "sglte" | "sglte2" | "dsda2" | "unknown" | "dsda3")
start qmuxd
esac
case "$baseband" in
"msm" | "csfb" | "svlte2a" | "mdm" | "mdm2" | "sglte" | "sglte2" | "dsda2" | "unknown" | "dsda3" | "sdm" | "sdx")
start ipacm-diag
start ipacm
case "$baseband" in
"svlte2a" | "csfb")
start qmiproxy
;;
"sglte" | "sglte2" )
if [ "x$sgltecsfb" != "xtrue" ]; then
start qmiproxy
else
setprop persist.vendor.radio.voice.modem.index 0
fi
;;
"dsda2")
setprop persist.radio.multisim.config dsda
esac
multisim=`getprop persist.radio.multisim.config`
if [ "$multisim" = "dsds" ] || [ "$multisim" = "dsda" ]; then
start ril-daemon2
elif [ "$multisim" = "tsts" ]; then
start ril-daemon2
start ril-daemon3
fi
case "$datamode" in
"tethered")
start qti
start port-bridge
;;
"concurrent")
start qti
start netmgrd
start port-bridge
;;
*)
start netmgrd
;;
esac
esac
#
# Allow persistent faking of bms
# User needs to set fake bms charge in persist.bms.fake_batt_capacity
#
fake_batt_capacity=`getprop persist.bms.fake_batt_capacity`
case "$fake_batt_capacity" in
"") ;; #Do nothing here
* )
echo "$fake_batt_capacity" > /sys/class/power_supply/battery/capacity
;;
esac

35
rootdir/bin/init.crda.sh Executable file
View file

@ -0,0 +1,35 @@
#! /vendor/bin/sh
# Copyright (c) 2012, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of The Linux Foundation nor
# the names of its contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
country=`getprop wlan.crda.country`
# crda takes input in COUNTRY environment variable
if [ $country != "" ]
then
COUNTRY="$country" /system/bin/crda
fi

34
rootdir/bin/init.mdm.sh Executable file
View file

@ -0,0 +1,34 @@
#! /vendor/bin/sh
# Copyright (c) 2013, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of Linux Foundation nor
# the names of its contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
baseband=`getprop ro.baseband`
if [ "$baseband" = "mdm" ] || [ "$baseband" = "mdm2" ]; then
start mdm_helper
fi

View file

@ -0,0 +1,216 @@
#!/vendor/bin/sh
# Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of The Linux Foundation nor
# the names of its contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# Set platform variables
target=`getprop ro.board.platform`
if [ -f /sys/devices/soc0/hw_platform ]; then
soc_hwplatform=`cat /sys/devices/soc0/hw_platform` 2> /dev/null
else
soc_hwplatform=`cat /sys/devices/system/soc/soc0/hw_platform` 2> /dev/null
fi
if [ -f /sys/devices/soc0/soc_id ]; then
soc_hwid=`cat /sys/devices/soc0/soc_id` 2> /dev/null
else
soc_hwid=`cat /sys/devices/system/soc/soc0/id` 2> /dev/null
fi
if [ -f /sys/devices/soc0/platform_version ]; then
soc_hwver=`cat /sys/devices/soc0/platform_version` 2> /dev/null
else
soc_hwver=`cat /sys/devices/system/soc/soc0/platform_version` 2> /dev/null
fi
# Dynamic Memory Managment (DMM) provides a sys file system to the userspace
# that can be used to plug in/out memory that has been configured as unstable.
# This unstable memory can be in Active or In-Active State.
# Each of which the userspace can request by writing to a sys file.
#
# ro.dev.dmm = 1; Indicates that DMM is enabled in the Android User Space. This
# property is set in the Android system properties file.
#
# If ro.dev.dmm.dpd.start_address is set here then the target has a memory
# configuration that supports DynamicMemoryManagement.
init_DMM()
{
block=-1
case "$target" in
"msm7630_surf" | "msm7630_1x" | "msm7630_fusion" | "msm8960")
;;
*)
return
;;
esac
mem="/sys/devices/system/memory"
op=`cat $mem/movable_start_bytes`
case "$op" in
"0")
log -p i -t DMM DMM Disabled. movable_start_bytes not set: $op
;;
"$mem/movable_start_bytes: No such file or directory ")
log -p i -t DMM DMM Disabled. movable_start_bytes does not exist: $op
;;
*)
log -p i -t DMM DMM available. movable_start_bytes at $op
movable_start_bytes=0x`cat $mem/movable_start_bytes`
block_size_bytes=0x`cat $mem/block_size_bytes`
block=$((#${movable_start_bytes}/${block_size_bytes}))
chown -h system.system $mem/memory$block/state
chown -h system.system $mem/probe
chown -h system.system $mem/active
chown -h system.system $mem/remove
case "$target" in
"msm7630_surf" | "msm7630_1x" | "msm7630_fusion")
echo $movable_start_bytes > $mem/probe
case "$?" in
"0")
log -p i -t DMM $movable_start_bytes to physical hotplug succeeded.
;;
*)
log -p e -t DMM $movable_start_bytes to physical hotplug failed.
return
;;
esac
echo online > $mem/memory$block/state
case "$?" in
"0")
log -p i -t DMM \'echo online\' to logical hotplug succeeded.
;;
*)
log -p e -t DMM \'echo online\' to logical hotplug failed.
return
;;
esac
;;
esac
setprop ro.dev.dmm.dpd.start_address $movable_start_bytes
setprop ro.dev.dmm.dpd.block $block
;;
esac
case "$target" in
"msm8960")
return
;;
esac
# For 7X30 targets:
# ro.dev.dmm.dpd.start_address is set when the target has a 2x256Mb memory
# configuration. This is also used to indicate that the target is capable of
# setting EBI-1 to Deep Power Down or Self Refresh.
op=`cat $mem/low_power_memory_start_bytes`
case "$op" in
"0")
log -p i -t DMM Self-Refresh-Only Disabled. low_power_memory_start_bytes not set:$op
;;
"$mem/low_power_memory_start_bytes No such file or directory ")
log -p i -t DMM Self-Refresh-Only Disabled. low_power_memory_start_bytes does not exist:$op
;;
*)
log -p i -t DMM Self-Refresh-Only available. low_power_memory_start_bytes at $op
;;
esac
}
#
# For controlling console and shell on console on 8960 - perist.serial.enable 8960
# On other target use default ro.debuggable property.
#
serial=`getprop persist.serial.enable`
dserial=`getprop ro.debuggable`
case "$target" in
"msm8960")
case "$serial" in
"0")
echo 0 > /sys/devices/platform/msm_serial_hsl.0/console
;;
"1")
echo 1 > /sys/devices/platform/msm_serial_hsl.0/console
start console
;;
*)
case "$dserial" in
"1")
start console
;;
esac
;;
esac
;;
"msm8610" | "msm8974" | "msm8226")
case "$serial" in
"0")
echo 0 > /sys/devices/f991f000.serial/console
;;
"1")
echo 1 > /sys/devices/f991f000.serial/console
start console
;;
*)
case "$dserial" in
"1")
start console
;;
esac
;;
esac
;;
*)
case "$dserial" in
"1")
start console
;;
esac
;;
esac
case "$target" in
"msm7630_surf" | "msm7630_1x" | "msm7630_fusion")
insmod /system/lib/modules/ss_mfcinit.ko
insmod /system/lib/modules/ss_vencoder.ko
insmod /system/lib/modules/ss_vdecoder.ko
chmod -h 0666 /dev/ss_mfc_reg
chmod -h 0666 /dev/ss_vdec
chmod -h 0666 /dev/ss_venc
init_DMM
;;
"msm8960")
init_DMM
;;
esac

115
rootdir/bin/init.qcom.coex.sh Executable file
View file

@ -0,0 +1,115 @@
#! /vendor/bin/sh
# Copyright (c) 2009-2010, 2012, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of The Linux Foundation nor
# the names of its contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
LOG_TAG="qcom-bt-wlan-coex"
LOG_NAME="${0}:"
coex_pid=""
ath_wlan_supported=`getprop wlan.driver.ath`
loge ()
{
/system/bin/log -t $LOG_TAG -p e "$LOG_NAME $@"
}
logi ()
{
/system/bin/log -t $LOG_TAG -p i "$LOG_NAME $@"
}
failed ()
{
loge "$1: exit code $2"
exit $2
}
start_coex ()
{
case "$ath_wlan_supported" in
"2")
echo "ATH WLAN Chip ID AR6004 is enabled"
/system/bin/abtfilt -d -z -n -m -a -w wlan0 &
;;
"1")
echo "ATH WLAN Chip ID is enabled"
# Must have -d -z -n -v -s -w wlan0 parameters for atheros btfilter.
/system/bin/abtfilt -d -z -n -v -q -s -w wlan0 &
;;
"0")
echo "WCN WLAN Chip ID is enabled"
# Must have -o turned on to avoid daemon (otherwise we cannot get pid)
/system/bin/btwlancoex -o $opt_flags &
;;
*)
echo "NO WLAN Chip ID is enabled, so enabling ATH as default"
# Must have -d -z -n -v -s -w wlan0 parameters for atheros btfilter.
/system/bin/abtfilt -d -z -n -v -q -s -w wlan0 &
;;
esac
coex_pid=$!
logi "start_coex: pid = $coex_pid"
}
kill_coex ()
{
logi "kill_coex: pid = $coex_pid"
kill -TERM $coex_pid
# this shell doesn't exit now -- wait returns for normal exit
}
# mimic coex options parsing -- maybe a waste of effort
USAGE="${0} [-o] [-c] [-r] [-i] [-h]"
while getopts "ocrih" f
do
case $f in
o | c | r | i | h) opt_flags="$opt_flags -$f" ;;
\?) echo $USAGE; exit 1;;
esac
done
# init does SIGTERM on ctl.stop for service
trap "kill_coex" TERM INT
#Selectively start coex module
target=`getprop ro.board.platform`
if [ "$target" == "msm8960" ] && [ "$ath_wlan_supported" != "2" ]; then
logi "btwlancoex/abtfilt is not needed"
else
# Build settings may not produce the coex executable
if ls /system/bin/btwlancoex || ls /system/bin/abtfilt
then
start_coex
wait $coex_pid
logi "Coex stopped"
else
logi "btwlancoex/abtfilt not available"
fi
fi
exit 0

View file

@ -0,0 +1,48 @@
#!/vendor/bin/sh
# Copyright (c) 2017, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of The Linux Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
abnormalcnt="persist.vendor.crash.cnt"
abnormal_cnt=`getprop $abnormalcnt`
crash_detect=`getprop persist.vendor.crash.detect`
if [ "$abnormal_cnt" = "" ]
then
setprop $abnormalcnt 0
fi
if [ "$crash_detect" = "true" ]
then
abnormal_cnt=`expr $abnormal_cnt + 1`
setprop $abnormalcnt $abnormal_cnt
elif [ "$crash_detect" = "false" ];then
setprop persist.vendor.crash.detect true
else
setprop persist.vendor.crash.detect true
fi

View file

@ -0,0 +1,530 @@
#! /vendor/bin/sh
# Copyright (c) 2012-2013,2016 The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of The Linux Foundation nor
# the names of its contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
export PATH=/vendor/bin
# Set platform variables
if [ -f /sys/devices/soc0/hw_platform ]; then
soc_hwplatform=`cat /sys/devices/soc0/hw_platform` 2> /dev/null
else
soc_hwplatform=`cat /sys/devices/system/soc/soc0/hw_platform` 2> /dev/null
fi
if [ -f /sys/devices/soc0/soc_id ]; then
soc_hwid=`cat /sys/devices/soc0/soc_id` 2> /dev/null
else
soc_hwid=`cat /sys/devices/system/soc/soc0/id` 2> /dev/null
fi
if [ -f /sys/devices/soc0/platform_version ]; then
soc_hwver=`cat /sys/devices/soc0/platform_version` 2> /dev/null
else
soc_hwver=`cat /sys/devices/system/soc/soc0/platform_version` 2> /dev/null
fi
if [ -f /sys/class/graphics/fb0/virtual_size ]; then
res=`cat /sys/class/graphics/fb0/virtual_size` 2> /dev/null
fb_width=${res%,*}
fi
log -t BOOT -p i "MSM target '$1', SoC '$soc_hwplatform', HwID '$soc_hwid', SoC ver '$soc_hwver'"
#For drm based display driver
vbfile=/sys/module/drm/parameters/vblankoffdelay
if [ -w $vbfile ]; then
echo -1 > $vbfile
else
log -t DRM_BOOT -p w "file: '$vbfile' or perms doesn't exist"
fi
function set_density_by_fb() {
#put default density based on width
if [ -z $fb_width ]; then
setprop ro.sf.lcd_density 320
else
if [ $fb_width -ge 1440 ]; then
setprop ro.sf.lcd_density 560
elif [ $fb_width -ge 1080 ]; then
setprop ro.sf.lcd_density 480
elif [ $fb_width -ge 720 ]; then
setprop ro.sf.lcd_density 320 #for 720X1280 resolution
elif [ $fb_width -ge 480 ]; then
setprop ro.sf.lcd_density 240 #for 480X854 QRD resolution
else
setprop ro.sf.lcd_density 160
fi
fi
}
target=`getprop ro.board.platform`
case "$target" in
"msm7630_surf" | "msm7630_1x" | "msm7630_fusion")
case "$soc_hwplatform" in
"FFA" | "SVLTE_FFA")
# linking to surf_keypad_qwerty.kcm.bin instead of surf_keypad_numeric.kcm.bin so that
# the UI keyboard works fine.
ln -s /system/usr/keychars/surf_keypad_qwerty.kcm.bin /system/usr/keychars/surf_keypad.kcm.bin
;;
"Fluid")
setprop ro.sf.lcd_density 240
setprop qcom.bt.dev_power_class 2
;;
*)
ln -s /system/usr/keychars/surf_keypad_qwerty.kcm.bin /system/usr/keychars/surf_keypad.kcm.bin
;;
esac
;;
"msm8660")
case "$soc_hwplatform" in
"Fluid")
setprop ro.sf.lcd_density 240
;;
"Dragon")
setprop ro.sound.alsa "WM8903"
;;
esac
;;
"msm8960")
# lcd density is write-once. Hence the separate switch case
case "$soc_hwplatform" in
"Liquid")
if [ "$soc_hwver" == "196608" ]; then # version 0x30000 is 3D sku
setprop ro.sf.hwrotation 90
fi
setprop ro.sf.lcd_density 160
;;
"MTP")
setprop ro.sf.lcd_density 240
;;
*)
case "$soc_hwid" in
"109")
setprop ro.sf.lcd_density 160
;;
*)
setprop ro.sf.lcd_density 240
;;
esac
;;
esac
#Set up composition type based on the target
case "$soc_hwid" in
87)
#8960
setprop debug.composition.type dyn
;;
153|154|155|156|157|138)
#8064 V2 PRIME | 8930AB | 8630AB | 8230AB | 8030AB | 8960AB
setprop debug.composition.type c2d
;;
*)
esac
;;
"msm8974")
case "$soc_hwplatform" in
"Liquid")
setprop ro.sf.lcd_density 160
# Liquid do not have hardware navigation keys, so enable
# Android sw navigation bar
setprop ro.hw.nav_keys 0
;;
"Dragon")
setprop ro.sf.lcd_density 240
;;
*)
setprop ro.sf.lcd_density 320
;;
esac
;;
"msm8226")
case "$soc_hwplatform" in
*)
setprop ro.sf.lcd_density 320
;;
esac
;;
"msm8610" | "apq8084" | "mpq8092")
case "$soc_hwplatform" in
*)
setprop ro.sf.lcd_density 240
;;
esac
;;
"apq8084")
case "$soc_hwplatform" in
"Liquid")
setprop ro.sf.lcd_density 320
# Liquid do not have hardware navigation keys, so enable
# Android sw navigation bar
setprop ro.hw.nav_keys 0
;;
"SBC")
setprop ro.sf.lcd_density 200
# SBC do not have hardware navigation keys, so enable
# Android sw navigation bar
setprop qemu.hw.mainkeys 0
;;
*)
setprop ro.sf.lcd_density 480
;;
esac
;;
"msm8996")
case "$soc_hwplatform" in
"Dragon")
setprop ro.sf.lcd_density 240
setprop qemu.hw.mainkeys 0
;;
"ADP")
setprop ro.sf.lcd_density 160
setprop qemu.hw.mainkeys 0
;;
"SBC")
setprop ro.sf.lcd_density 240
setprop qemu.hw.mainkeys 0
;;
*)
setprop ro.sf.lcd_density 560
;;
esac
;;
"msm8937" | "msm8940")
# Set ro.opengles.version based on chip id.
# MSM8937 and MSM8940 variants supports OpenGLES 3.1
# 196608 is decimal for 0x30000 to report version 3.0
# 196609 is decimal for 0x30001 to report version 3.1
# 196610 is decimal for 0x30002 to report version 3.2
case "$soc_hwid" in
294|295|296|297|298|313)
setprop ro.opengles.version 196610
;;
303|307|308|309|320)
# Vulkan is not supported for 8917 variants
setprop ro.opengles.version 196608
setprop persist.graphics.vulkan.disable true
;;
*)
setprop ro.opengles.version 196608
;;
esac
;;
"msm8909")
case "$soc_hwplatform" in
*)
setprop persist.graphics.vulkan.disable true
;;
esac
;;
"msm8998" | "apq8098_latv")
case "$soc_hwplatform" in
*)
setprop ro.sf.lcd_density 560
if [ ! -e /dev/kgsl-3d0 ]; then
setprop persist.sys.force_sw_gles 1
setprop sdm.idle_time 0
else
setprop persist.sys.force_sw_gles 0
fi
;;
esac
case "$soc_hwid" in
"319") #apq8098_latv
echo "\n==Loading ALX module==\n"
insmod /system/lib/modules/alx.ko
;;
esac
;;
"sdm845")
case "$soc_hwplatform" in
*)
setprop ro.sf.lcd_density 560
if [ ! -e /dev/kgsl-3d0 ]; then
setprop persist.sys.force_sw_gles 1
setprop sdm.idle_time 0
else
setprop persist.sys.force_sw_gles 0
fi
;;
esac
;;
"msm8953")
cap_ver=`cat /sys/devices/soc/1d00000.qcom,vidc/capability_version` 2> /dev/null
if [ $cap_ver -eq 1 ]; then
setprop media.msm8953.version 1
fi
;;
"msm8952")
case "$soc_hwid" in
278)
setprop media.msm8956hw 1
if [ -f /sys/devices/soc0/platform_version ]; then
hw_ver=`cat /sys/devices/soc.0/1d00000.qcom,vidc/version` 2> /dev/null
if [ $hw_ver -eq 1 ]; then
setprop media.msm8956.version 1
fi
fi
;;
266|277)
setprop media.msm8956hw 1
if [ -f /sys/devices/soc0/platform_version ]; then
hw_ver=`cat /sys/devices/soc.0/1d00000.qcom,vidc/version` 2> /dev/null
if [ $hw_ver -eq 1 ]; then
setprop media.msm8956.version 1
fi
fi
;;
264)
setprop persist.graphics.vulkan.disable true
;;
esac
;;
esac
# In mpss AT version is greater than 3.1, need
# to use the new vendor-ril which supports L+L feature
# otherwise use the existing old one.
if [ -f /firmware/verinfo/ver_info.txt ]; then
modem=`cat /firmware/verinfo/ver_info.txt |
sed -n 's/^[^:]*modem[^:]*:[[:blank:]]*//p' |
sed 's/.*AT.\(.*\)/\1/g' | cut -d \- -f 1`
zygote=`getprop ro.zygote`
case "$zygote" in
"zygote64_32")
if [ "$modem" \< "3.1" ]; then
setprop vendor.rild.libpath "/vendor/lib64/libril-qc-qmi-1.so"
else
setprop vendor.rild.libpath "/vendor/lib64/libril-qc-hal-qmi.so"
fi
;;
"zygote32")
if [ "$modem" \< "3.1" ]; then
setprop vendor.rild.libpath "/vendor/lib/libril-qc-qmi-1.so"
else
setprop vendor.rild.libpath "/vendor/lib/libril-qc-hal-qmi.so"
fi
;;
esac
fi
if [ -f /firmware/verinfo/ver_info.txt ]; then
# In mpss AT version is greater than 3.1, need
# to use the new vendor-ril which supports L+L feature
# otherwise use the existing old one.
modem=`cat /firmware/verinfo/ver_info.txt |
sed -n 's/^[^:]*modem[^:]*:[[:blank:]]*//p' |
sed 's/.*MPSS.\(.*\)/\1/g' | cut -d \. -f 1`
if [ "$modem" = "AT" ]; then
version=`cat /firmware/verinfo/ver_info.txt |
sed -n 's/^[^:]*modem[^:]*:[[:blank:]]*//p' |
sed 's/.*AT.\(.*\)/\1/g' | cut -d \- -f 1`
if [ ! -z $version ]; then
zygote=`getprop ro.zygote`
case "$zygote" in
"zygote64_32")
if [ "$version" \< "3.1" ]; then
setprop vendor.rild.libpath "/vendor/lib64/libril-qc-qmi-1.so"
else
setprop vendor.rild.libpath "/vendor/lib64/libril-qc-hal-qmi.so"
fi
;;
"zygote32")
if [ "$version" \< "3.1" ]; then
echo "legacy qmi load for TA less than 3.1"
setprop vendor.rild.libpath "/vendor/lib/libril-qc-qmi-1.so"
else
setprop vendor.rild.libpath "/vendor/lib/libril-qc-hal-qmi.so"
fi
;;
esac
fi
# In mpss TA version is greater than 3.0, need
# to use the new vendor-ril which supports L+L feature
# otherwise use the existing old one.
elif [ "$modem" = "TA" ]; then
version=`cat /firmware/verinfo/ver_info.txt |
sed -n 's/^[^:]*modem[^:]*:[[:blank:]]*//p' |
sed 's/.*TA.\(.*\)/\1/g' | cut -d \- -f 1`
if [ ! -z $version ]; then
zygote=`getprop ro.zygote`
case "$zygote" in
"zygote64_32")
if [ "$version" \< "3.0" ]; then
setprop vendor.rild.libpath "/vendor/lib64/libril-qc-qmi-1.so"
else
setprop vendor.rild.libpath "/vendor/lib64/libril-qc-hal-qmi.so"
fi
;;
"zygote32")
if [ "$version" \< "3.0" ]; then
setprop vendor.rild.libpath "/vendor/lib/libril-qc-qmi-1.so"
else
setprop vendor.rild.libpath "/vendor/lib/libril-qc-hal-qmi.so"
fi
;;
esac
fi
fi;
fi
baseband=`getprop ro.baseband`
#enable atfwd daemon all targets except sda, apq, qcs
case "$baseband" in
"apq" | "sda" | "qcs" )
setprop persist.radio.atfwd.start false;;
*)
setprop persist.radio.atfwd.start true;;
esac
#set default lcd density
#Since lcd density has read only
#property, it will not overwrite previous set
#property if any target is setting forcefully.
set_density_by_fb
# Setup display nodes & permissions
# HDMI can be fb1 or fb2
# Loop through the sysfs nodes and determine
# the HDMI(dtv panel)
function set_perms() {
#Usage set_perms <filename> <ownership> <permission>
chown -h $2 $1
chmod $3 $1
}
function setHDMIPermission() {
file=/sys/class/graphics/fb$1
dev_file=/dev/graphics/fb$1
dev_gfx_hdmi=/devices/virtual/switch/hdmi
set_perms $file/hpd system.graphics 0664
set_perms $file/res_info system.graphics 0664
set_perms $file/vendor_name system.graphics 0664
set_perms $file/product_description system.graphics 0664
set_perms $file/video_mode system.graphics 0664
set_perms $file/format_3d system.graphics 0664
set_perms $file/s3d_mode system.graphics 0664
set_perms $file/dynamic_fps system.graphics 0664
set_perms $file/msm_fb_dfps_mode system.graphics 0664
set_perms $file/hdr_stream system.graphics 0664
set_perms $file/cec/enable system.graphics 0664
set_perms $file/cec/logical_addr system.graphics 0664
set_perms $file/cec/rd_msg system.graphics 0664
set_perms $file/pa system.graphics 0664
set_perms $file/cec/wr_msg system.graphics 0600
set_perms $file/hdcp/tp system.graphics 0664
set_perms $file/hdmi_audio_cb audioserver.audio 0600
set_perms $file/pll_enable system.graphics 0664
set_perms $file/hdmi_ppm system.graphics 0664
ln -s $dev_file $dev_gfx_hdmi
}
# check for the type of driver FB or DRM
fb_driver=/sys/class/graphics/fb0
if [ -e "$fb_driver" ]
then
# check for HDMI connection
for fb_cnt in 0 1 2 3
do
file=/sys/class/graphics/fb$fb_cnt/msm_fb_panel_info
if [ -f "$file" ]
then
cat $file | while read line; do
case "$line" in
*"is_pluggable"*)
case "$line" in
*"1"*)
setHDMIPermission $fb_cnt
esac
esac
done
fi
done
# check for mdp caps
file=/sys/class/graphics/fb0/mdp/caps
if [ -f "$file" ]
then
setprop debug.gralloc.gfx_ubwc_disable 1
cat $file | while read line; do
case "$line" in
*"ubwc"*)
setprop debug.gralloc.enable_fb_ubwc 1
setprop debug.gralloc.gfx_ubwc_disable 0
esac
done
fi
file=/sys/class/graphics/fb0
if [ -d "$file" ]
then
set_perms $file/idle_time system.graphics 0664
set_perms $file/dynamic_fps system.graphics 0664
set_perms $file/dyn_pu system.graphics 0664
set_perms $file/modes system.graphics 0664
set_perms $file/mode system.graphics 0664
set_perms $file/msm_cmd_autorefresh_en system.graphics 0664
fi
# set lineptr permissions for all displays
for fb_cnt in 0 1 2 3
do
file=/sys/class/graphics/fb$fb_cnt
if [ -f "$file/lineptr_value" ]; then
set_perms $file/lineptr_value system.graphics 0664
fi
if [ -f "$file/msm_fb_persist_mode" ]; then
set_perms $file/msm_fb_persist_mode system.graphics 0664
fi
done
fi
boot_reason=`cat /proc/sys/kernel/boot_reason`
reboot_reason=`getprop ro.boot.alarmboot`
power_off_alarm_file=`cat /persist/alarm/powerOffAlarmSet`
if [ "$boot_reason" = "3" ] || [ "$reboot_reason" = "true" ]; then
if [ "$power_off_alarm_file" = "1" ]
then
setprop ro.alarm_boot true
setprop debug.sf.nobootanimation 1
fi
else
setprop ro.alarm_boot false
fi
# copy GPU frequencies to system property
if [ -f /sys/class/kgsl/kgsl-3d0/gpu_available_frequencies ]; then
gpu_freq=`cat /sys/class/kgsl/kgsl-3d0/gpu_available_frequencies` 2> /dev/null
setprop ro.gpu.available_frequencies "$gpu_freq"
fi

View file

@ -0,0 +1,35 @@
#! /vendor/bin/sh
# Copyright (c) 2012, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of The Linux Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#
PATH=/system/bin:$PATH
export PATH
cat /sys/devices/platform/rs300000a7.65536/force_sync
cat /sys/devices/platform/rs300100a7.65536/force_sync

3200
rootdir/bin/init.qcom.post_boot.sh Executable file

File diff suppressed because it is too large Load diff

78
rootdir/bin/init.qcom.sdio.sh Executable file
View file

@ -0,0 +1,78 @@
#! /vendor/bin/sh
# Copyright (c) 2010, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of The Linux Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# For successful WLAN card detection, WLAN needs SDIO polling turned on.
# This script can be used to turn on/off SDIO polling on appropriate
# SDIO slot on the MSM target (e.g. slot 3 on 7x30 surf).
arg=$1
target=`getprop ro.board.platform`
case "$target" in
"msm7627_6x")
echo 1 > /sys/devices/platform/msm_sdcc.1/polling
echo 1 > /sys/devices/platform/msm_sdcc.2/polling
;;
"msm7627_ffa")
echo 1 > /sys/devices/platform/msm_sdcc.2/polling
;;
"msm7627_surf")
echo 1 > /sys/devices/platform/msm_sdcc.1/polling
echo 1 > /sys/devices/platform/msm_sdcc.2/polling
;;
"msm7627a")
echo 1 > /sys/devices/platform/msm_sdcc.2/polling
;;
"msm7630_surf")
echo 1 > /sys/devices/platform/msm_sdcc.3/polling
;;
"msm7630_1x")
echo 1 > /sys/devices/platform/msm_sdcc.3/polling
;;
"msm7630_fusion")
echo 1 > /sys/devices/platform/msm_sdcc.3/polling
;;
"msm8660")
echo 1 > /sys/devices/platform/msm_sdcc.4/polling
;;
"msm8660_csfb")
echo 1 > /sys/devices/platform/msm_sdcc.4/polling
;;
esac
exit 0

View file

@ -0,0 +1,43 @@
#!/vendor/bin/sh
# Copyright (c) 2015, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of The Linux Foundation nor
# the names of its contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#
# Function to start sensors for SSC enabled platforms
#
start_sensors()
{
if [ -c /dev/msm_dsps -o -c /dev/sensors ]; then
chmod -h 775 /persist/sensors
chmod -h 664 /persist/sensors/sensors_settings
mkdir -p /persist/sensors/registry/registry
chown -h system.root /persist/sensors/sensors_settings
start sensors
fi
}
start_sensors

470
rootdir/bin/init.qcom.sh Executable file
View file

@ -0,0 +1,470 @@
#! /vendor/bin/sh
# Copyright (c) 2009-2016, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of The Linux Foundation nor
# the names of its contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
target=`getprop ro.board.platform`
if [ -f /sys/devices/soc0/soc_id ]; then
platformid=`cat /sys/devices/soc0/soc_id`
else
platformid=`cat /sys/devices/system/soc/soc0/id`
fi
start_battery_monitor()
{
if ls /sys/bus/spmi/devices/qpnp-bms-*/fcc_data ; then
chown -h root.system /sys/module/pm8921_bms/parameters/*
chown -h root.system /sys/module/qpnp_bms/parameters/*
chown -h root.system /sys/bus/spmi/devices/qpnp-bms-*/fcc_data
chown -h root.system /sys/bus/spmi/devices/qpnp-bms-*/fcc_temp
chown -h root.system /sys/bus/spmi/devices/qpnp-bms-*/fcc_chgcyl
chmod 0660 /sys/module/qpnp_bms/parameters/*
chmod 0660 /sys/module/pm8921_bms/parameters/*
mkdir -p /data/bms
chown -h root.system /data/bms
chmod 0770 /data/bms
start battery_monitor
fi
}
start_charger_monitor()
{
if ls /sys/module/qpnp_charger/parameters/charger_monitor; then
chown -h root.system /sys/module/qpnp_charger/parameters/*
chown -h root.system /sys/class/power_supply/battery/input_current_max
chown -h root.system /sys/class/power_supply/battery/input_current_trim
chown -h root.system /sys/class/power_supply/battery/input_current_settled
chown -h root.system /sys/class/power_supply/battery/voltage_min
chmod 0664 /sys/class/power_supply/battery/input_current_max
chmod 0664 /sys/class/power_supply/battery/input_current_trim
chmod 0664 /sys/class/power_supply/battery/input_current_settled
chmod 0664 /sys/class/power_supply/battery/voltage_min
chmod 0664 /sys/module/qpnp_charger/parameters/charger_monitor
start charger_monitor
fi
}
start_vm_bms()
{
if [ -e /dev/vm_bms ]; then
chown -h root.system /sys/class/power_supply/bms/current_now
chown -h root.system /sys/class/power_supply/bms/voltage_ocv
chmod 0664 /sys/class/power_supply/bms/current_now
chmod 0664 /sys/class/power_supply/bms/voltage_ocv
start vm_bms
fi
}
start_msm_irqbalance_8939()
{
if [ -f /system/vendor/bin/msm_irqbalance ]; then
case "$platformid" in
"239" | "293" | "294" | "295" | "304" | "313")
start vendor.msm_irqbalance;;
esac
fi
}
start_msm_irqbalance_8952()
{
if [ -f /system/vendor/bin/msm_irqbalance ]; then
case "$platformid" in
"241" | "263" | "264" | "268" | "269" | "270" | "271")
start vendor.msm_irqbalance;;
esac
case "$platformid" in
"266" | "274" | "277" | "278")
start vendor.msm_irqbal_lb;;
esac
fi
}
start_msm_irqbalance660()
{
if [ -f /vendor/bin/msm_irqbalance ]; then
case "$platformid" in
"317" | "324" | "325" | "326" | "345" | "346")
start vendor.msm_irqbalance;;
"318" | "327")
start vendor.msm_irqbl_sdm630;;
esac
fi
}
start_msm_irqbalance()
{
if [ -f /vendor/bin/msm_irqbalance ]; then
start vendor.msm_irqbalance
fi
}
start_copying_prebuilt_qcril_db()
{
if [ -f /vendor/radio/qcril_database/qcril.db -a ! -f /data/vendor/radio/qcril.db ]; then
cp /vendor/radio/qcril_database/qcril.db /data/vendor/radio/qcril.db
chown -h radio.radio /data/vendor/radio/qcril.db
fi
}
baseband=`getprop ro.baseband`
echo 1 > /proc/sys/net/ipv6/conf/default/accept_ra_defrtr
case "$baseband" in
"svlte2a")
start bridgemgrd
;;
esac
case "$target" in
"msm7630_surf" | "msm7630_1x" | "msm7630_fusion")
if [ -f /sys/devices/soc0/hw_platform ]; then
value=`cat /sys/devices/soc0/hw_platform`
else
value=`cat /sys/devices/system/soc/soc0/hw_platform`
fi
case "$value" in
"Fluid")
start profiler_daemon;;
esac
;;
"msm8660" )
if [ -f /sys/devices/soc0/hw_platform ]; then
platformvalue=`cat /sys/devices/soc0/hw_platform`
else
platformvalue=`cat /sys/devices/system/soc/soc0/hw_platform`
fi
case "$platformvalue" in
"Fluid")
start profiler_daemon;;
esac
;;
"msm8960")
case "$baseband" in
"msm")
start_battery_monitor;;
esac
if [ -f /sys/devices/soc0/hw_platform ]; then
platformvalue=`cat /sys/devices/soc0/hw_platform`
else
platformvalue=`cat /sys/devices/system/soc/soc0/hw_platform`
fi
case "$platformvalue" in
"Fluid")
start profiler_daemon;;
"Liquid")
start profiler_daemon;;
esac
;;
"msm8974")
platformvalue=`cat /sys/devices/soc0/hw_platform`
case "$platformvalue" in
"Fluid")
start profiler_daemon;;
"Liquid")
start profiler_daemon;;
esac
case "$baseband" in
"msm")
start_battery_monitor
;;
esac
start_charger_monitor
;;
"sdm660")
if [ -f /sys/devices/soc0/soc_id ]; then
soc_id=`cat /sys/devices/soc0/soc_id`
else
soc_id=`cat /sys/devices/system/soc/soc0/id`
fi
if [ -f /sys/devices/soc0/hw_platform ]; then
hw_platform=`cat /sys/devices/soc0/hw_platform`
else
hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
fi
case "$soc_id" in
"317" | "324" | "325" | "326" | "318" | "327" )
case "$hw_platform" in
"Surf")
setprop qemu.hw.mainkeys 0
;;
"MTP")
setprop qemu.hw.mainkeys 0
;;
"RCM")
setprop qemu.hw.mainkeys 0
;;
"QRD")
setprop qemu.hw.mainkeys 0
;;
esac
;;
esac
start_msm_irqbalance660
;;
"apq8084")
platformvalue=`cat /sys/devices/soc0/hw_platform`
case "$platformvalue" in
"Fluid")
start profiler_daemon;;
"Liquid")
start profiler_daemon;;
esac
;;
"msm8226")
start_charger_monitor
;;
"msm8610")
start_charger_monitor
;;
"msm8916")
start_vm_bms
start_msm_irqbalance_8939
if [ -f /sys/devices/soc0/soc_id ]; then
soc_id=`cat /sys/devices/soc0/soc_id`
else
soc_id=`cat /sys/devices/system/soc/soc0/id`
fi
if [ -f /sys/devices/soc0/platform_subtype_id ]; then
platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
fi
if [ -f /sys/devices/soc0/hw_platform ]; then
hw_platform=`cat /sys/devices/soc0/hw_platform`
fi
case "$soc_id" in
"239")
case "$hw_platform" in
"Surf")
case "$platform_subtype_id" in
"1")
setprop qemu.hw.mainkeys 0
;;
esac
;;
"MTP")
case "$platform_subtype_id" in
"3")
setprop qemu.hw.mainkeys 0
;;
esac
;;
esac
;;
esac
;;
"msm8994" | "msm8992" | "msm8998" | "apq8098_latv" | "sdm845")
start_msm_irqbalance
;;
"msm8996")
if [ -f /sys/devices/soc0/hw_platform ]; then
hw_platform=`cat /sys/devices/soc0/hw_platform`
fi
case "$hw_platform" in
"MTP" | "CDP")
#Loop through the sysfs nodes and determine the correct sysfs to change the permission and ownership.
for count in 0 1 2 3 4 5 6 7 8 9 10
do
dir="/sys/devices/soc/75ba000.i2c/i2c-12/12-0020/input/input"$count
if [ -d "$dir" ]; then
chmod 0660 $dir/secure_touch_enable
chmod 0440 $dir/secure_touch
chown system.drmrpc $dir/secure_touch_enable
chown system.drmrpc $dir/secure_touch
break
fi
done
;;
esac
;;
"msm8909")
start_vm_bms
;;
"msm8952")
start_msm_irqbalance_8952
if [ -f /sys/devices/soc0/soc_id ]; then
soc_id=`cat /sys/devices/soc0/soc_id`
else
soc_id=`cat /sys/devices/system/soc/soc0/id`
fi
if [ -f /sys/devices/soc0/platform_subtype_id ]; then
platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
fi
if [ -f /sys/devices/soc0/hw_platform ]; then
hw_platform=`cat /sys/devices/soc0/hw_platform`
fi
case "$soc_id" in
"264")
case "$hw_platform" in
"Surf")
case "$platform_subtype_id" in
"1" | "2")
setprop qemu.hw.mainkeys 0
;;
esac
;;
"MTP")
case "$platform_subtype_id" in
"3")
setprop qemu.hw.mainkeys 0
;;
esac
;;
"QRD")
case "$platform_subtype_id" in
"0")
setprop qemu.hw.mainkeys 0
;;
esac
;;
esac
;;
"266" | "274" | "277" | "278")
case "$hw_platform" in
"Surf" | "RCM")
if [ $panel_xres -eq 1440 ]; then
setprop qemu.hw.mainkeys 0
fi
;;
"MTP" | "QRD")
setprop qemu.hw.mainkeys 0
;;
esac
;;
esac
;;
"msm8937")
start_msm_irqbalance_8939
if [ -f /sys/devices/soc0/soc_id ]; then
soc_id=`cat /sys/devices/soc0/soc_id`
else
soc_id=`cat /sys/devices/system/soc/soc0/id`
fi
if [ -f /sys/devices/soc0/hw_platform ]; then
hw_platform=`cat /sys/devices/soc0/hw_platform`
else
hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
fi
case "$soc_id" in
"294" | "295" | "303" | "307" | "308" | "309" | "313" | "320")
case "$hw_platform" in
"Surf")
setprop qemu.hw.mainkeys 0
;;
"MTP")
setprop qemu.hw.mainkeys 0
;;
"RCM")
setprop qemu.hw.mainkeys 0
;;
"QRD")
setprop qemu.hw.mainkeys 0
;;
esac
;;
esac
;;
"msm8953")
start_msm_irqbalance_8939
if [ -f /sys/devices/soc0/soc_id ]; then
soc_id=`cat /sys/devices/soc0/soc_id`
else
soc_id=`cat /sys/devices/system/soc/soc0/id`
fi
if [ -f /sys/devices/soc0/hw_platform ]; then
hw_platform=`cat /sys/devices/soc0/hw_platform`
else
hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
fi
case "$soc_id" in
"293" | "304" | "338" | "351" )
case "$hw_platform" in
"Surf")
setprop qemu.hw.mainkeys 0
;;
"MTP")
setprop qemu.hw.mainkeys 0
;;
"RCM")
setprop qemu.hw.mainkeys 0
;;
"QRD")
setprop qemu.hw.mainkeys 0
;;
esac
;;
esac
;;
esac
#
# Copy qcril.db if needed for RIL
#
start_copying_prebuilt_qcril_db
echo 1 > /data/vendor/radio/db_check_done
#
# Make modem config folder and copy firmware config to that folder for RIL
#
if [ -f /data/vendor/radio/ver_info.txt ]; then
prev_version_info=`cat /data/vendor/radio/ver_info.txt`
else
prev_version_info=""
fi
cur_version_info=`cat /firmware/verinfo/ver_info.txt`
if [ ! -f /firmware/verinfo/ver_info.txt -o "$prev_version_info" != "$cur_version_info" ]; then
rm -rf /data/vendor/radio/modem_config
mkdir /data/vendor/radio/modem_config
chmod 770 /data/vendor/radio/modem_config
cp -r /firmware/image/modem_pr/mcfg/configs/* /data/vendor/radio/modem_config
chown -hR radio.radio /data/vendor/radio/modem_config
cp /firmware/verinfo/ver_info.txt /data/vendor/radio/ver_info.txt
chown radio.radio /data/vendor/radio/ver_info.txt
fi
cp /firmware/image/modem_pr/mbn_ota.txt /data/vendor/radio/modem_config
chown radio.radio /data/vendor/radio/modem_config/mbn_ota.txt
echo 1 > /data/vendor/radio/copy_complete
#check build variant for printk logging
#current default minimum boot-time-default
buildvariant=`getprop ro.build.type`
case "$buildvariant" in
"userdebug" | "eng")
#set default loglevel to KERN_INFO
echo "6 6 1 7" > /proc/sys/kernel/printk
;;
*)
#set default loglevel to KERN_WARNING
echo "4 4 1 4" > /proc/sys/kernel/printk
;;
esac

View file

@ -0,0 +1,80 @@
#! /vendor/bin/sh
# Copyright (c) 2012, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of The Linux Foundation nor
# the names of its contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
target="$1"
serial="$2"
# No path is set up at this point so we have to do it here.
PATH=/sbin:/system/sbin:/system/bin:/system/xbin
export PATH
mount_needed=false;
if [ ! -f /system/etc/boot_fixup ];then
# This should be the first command
# remount system as read-write.
mount -o rw,remount,barrier=1 /system
mount_needed=true;
fi
# **** WARNING *****
# This runs in a single-threaded, critical path portion
# of the Android bootup sequence. This is to guarantee
# all necessary system partition fixups are done before
# the rest of the system starts up. Run any non-
# timing critical tasks in a separate process to
# prevent slowdown at boot.
# Run modem link script
if [ -f /system/etc/init.qcom.modem_links.sh ]; then
/system/vendor/bin/init.qcom.modem_links.sh
fi
# Run mdm link script
if [ -f /system/etc/init.qcom.mdm_links.sh ]; then
/system/vendor/bin/init.qcom.mdm_links.sh
fi
# Run wifi script
if [ -f /vendor/bin/init.qcom.wifi.sh ]; then
/vendor/bin/init.qcom.wifi.sh "$target" "$serial"
fi
# Run the sensor script
if [ -f /system/etc/init.qcom.sensor.sh ]; then
/system/vendor/bin/init.qcom.sensor.sh
fi
touch /system/etc/boot_fixup
if $mount_needed ;then
# This should be the last command
# remount system as read-only.
mount -o ro,remount,barrier=1 /system
fi

291
rootdir/bin/init.qcom.usb.sh Executable file
View file

@ -0,0 +1,291 @@
#!/vendor/bin/sh
# Copyright (c) 2012-2017, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of The Linux Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#
chown -h root.system /sys/devices/platform/msm_hsusb/gadget/wakeup
chmod -h 220 /sys/devices/platform/msm_hsusb/gadget/wakeup
# Set platform variables
if [ -f /sys/devices/soc0/hw_platform ]; then
soc_hwplatform=`cat /sys/devices/soc0/hw_platform` 2> /dev/null
else
soc_hwplatform=`cat /sys/devices/system/soc/soc0/hw_platform` 2> /dev/null
fi
if [ -f /sys/devices/soc0/machine ]; then
soc_machine=`cat /sys/devices/soc0/machine` 2> /dev/null
else
soc_machine=`cat /sys/devices/system/soc/soc0/machine` 2> /dev/null
fi
# Get hardware revision
if [ -f /sys/devices/soc0/revision ]; then
soc_revision=`cat /sys/devices/soc0/revision` 2> /dev/null
else
soc_revision=`cat /sys/devices/system/soc/soc0/revision` 2> /dev/null
fi
#
# Allow persistent usb charging disabling
# User needs to set usb charging disabled in persist.usb.chgdisabled
#
target=`getprop ro.board.platform`
usbchgdisabled=`getprop persist.usb.chgdisabled`
case "$usbchgdisabled" in
"") ;; #Do nothing here
* )
case $target in
"msm8660")
echo "$usbchgdisabled" > /sys/module/pmic8058_charger/parameters/disabled
echo "$usbchgdisabled" > /sys/module/smb137b/parameters/disabled
;;
"msm8960")
echo "$usbchgdisabled" > /sys/module/pm8921_charger/parameters/disabled
;;
esac
esac
usbcurrentlimit=`getprop persist.usb.currentlimit`
case "$usbcurrentlimit" in
"") ;; #Do nothing here
* )
case $target in
"msm8960")
echo "$usbcurrentlimit" > /sys/module/pm8921_charger/parameters/usb_max_current
;;
esac
esac
#
# Check ESOC for external MDM
#
# Note: currently only a single MDM is supported
#
if [ -d /sys/bus/esoc/devices ]; then
for f in /sys/bus/esoc/devices/*; do
if [ -d $f ]; then
if [ `grep "^MDM" $f/esoc_name` ]; then
esoc_link=`cat $f/esoc_link`
break
fi
fi
done
fi
target=`getprop ro.board.platform`
# soc_ids for 8937
if [ -f /sys/devices/soc0/soc_id ]; then
soc_id=`cat /sys/devices/soc0/soc_id`
else
soc_id=`cat /sys/devices/system/soc/soc0/id`
fi
#
# Allow USB enumeration with default PID/VID
#
baseband=`getprop ro.baseband`
echo 1 > /sys/class/android_usb/f_mass_storage/lun/nofua
# set USB controller's device node
case "$target" in
"msm8996")
setprop sys.usb.controller "6a00000.dwc3"
setprop sys.usb.rndis.func.name "rndis_bam"
setprop sys.usb.rmnet.func.name "rmnet_bam"
;;
"msm8998" | "apq8098_latv")
setprop sys.usb.controller "a800000.dwc3"
setprop sys.usb.rndis.func.name "gsi"
setprop sys.usb.rmnet.func.name "gsi"
;;
"sdm660")
setprop sys.usb.controller "a800000.dwc3"
setprop sys.usb.rndis.func.name "rndis_bam"
setprop sys.usb.rmnet.func.name "rmnet_bam"
echo 15916 > /sys/module/usb_f_qcrndis/parameters/rndis_dl_max_xfer_size
;;
"sdm845")
setprop sys.usb.controller "a600000.dwc3"
setprop sys.usb.rndis.func.name "gsi"
setprop sys.usb.rmnet.func.name "gsi"
;;
*)
;;
esac
# check configfs is mounted or not
if [ -d /config/usb_gadget ]; then
msm_serial=`cat /sys/devices/soc0/serial_number`;
msm_serial_hex=`printf %08X $msm_serial`
# ADB requires valid iSerialNumber; if ro.serialno is missing, use dummy
serialnumber=`cat /config/usb_gadget/g1/strings/0x409/serialnumber` 2> /dev/null
if [ "$serialnumber" == "" ]; then
serialno=1234567
echo $serialno > /config/usb_gadget/g1/strings/0x409/serialnumber
fi
persist_comp=`getprop persist.sys.usb.config`
comp=`getprop sys.usb.config`
echo $persist_comp
echo $comp
if [ "$comp" != "$persist_comp" ]; then
echo "setting sys.usb.config"
setprop sys.usb.config $persist_comp
fi
setprop sys.usb.configfs 1
else
persist_comp=`getprop persist.sys.usb.config`
comp=`getprop sys.usb.config`
echo $persist_comp
echo $comp
if [ "$comp" != "$persist_comp" ]; then
echo "setting sys.usb.config"
setprop sys.usb.config $persist_comp
fi
fi
#
# Do target specific things
#
case "$target" in
"msm8974")
# Select USB BAM - 2.0 or 3.0
echo ssusb > /sys/bus/platform/devices/usb_bam/enable
;;
"apq8084")
if [ "$baseband" == "apq" ]; then
echo "msm_hsic_host" > /sys/bus/platform/drivers/xhci_msm_hsic/unbind
fi
;;
"msm8226")
if [ -e /sys/bus/platform/drivers/msm_hsic_host ]; then
if [ ! -L /sys/bus/usb/devices/1-1 ]; then
echo msm_hsic_host > /sys/bus/platform/drivers/msm_hsic_host/unbind
fi
fi
;;
"msm8994" | "msm8992" | "msm8996" | "msm8953")
echo BAM2BAM_IPA > /sys/class/android_usb/android0/f_rndis_qc/rndis_transports
echo 131072 > /sys/module/g_android/parameters/mtp_tx_req_len
echo 131072 > /sys/module/g_android/parameters/mtp_rx_req_len
;;
"msm8937")
case "$soc_id" in
"313" | "320")
echo BAM2BAM_IPA > /sys/class/android_usb/android0/f_rndis_qc/rndis_transports
;;
esac
;;
esac
#
# set module params for embedded rmnet devices
#
rmnetmux=`getprop persist.rmnet.mux`
case "$baseband" in
"mdm" | "dsda" | "sglte2")
case "$rmnetmux" in
"enabled")
echo 1 > /sys/module/rmnet_usb/parameters/mux_enabled
echo 8 > /sys/module/rmnet_usb/parameters/no_fwd_rmnet_links
echo 17 > /sys/module/rmnet_usb/parameters/no_rmnet_insts_per_dev
;;
esac
echo 1 > /sys/module/rmnet_usb/parameters/rmnet_data_init
# Allow QMUX daemon to assign port open wait time
chown -h radio.radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait
;;
"dsda2")
echo 2 > /sys/module/rmnet_usb/parameters/no_rmnet_devs
echo hsicctl,hsusbctl > /sys/module/rmnet_usb/parameters/rmnet_dev_names
case "$rmnetmux" in
"enabled") #mux is neabled on both mdms
echo 3 > /sys/module/rmnet_usb/parameters/mux_enabled
echo 8 > /sys/module/rmnet_usb/parameters/no_fwd_rmnet_links
echo 17 > write /sys/module/rmnet_usb/parameters/no_rmnet_insts_per_dev
;;
"enabled_hsic") #mux is enabled on hsic mdm
echo 1 > /sys/module/rmnet_usb/parameters/mux_enabled
echo 8 > /sys/module/rmnet_usb/parameters/no_fwd_rmnet_links
echo 17 > /sys/module/rmnet_usb/parameters/no_rmnet_insts_per_dev
;;
"enabled_hsusb") #mux is enabled on hsusb mdm
echo 2 > /sys/module/rmnet_usb/parameters/mux_enabled
echo 8 > /sys/module/rmnet_usb/parameters/no_fwd_rmnet_links
echo 17 > /sys/module/rmnet_usb/parameters/no_rmnet_insts_per_dev
;;
esac
echo 1 > /sys/module/rmnet_usb/parameters/rmnet_data_init
# Allow QMUX daemon to assign port open wait time
chown -h radio.radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait
;;
esac
#
# Add support for exposing lun0 as cdrom in mass-storage
#
cdromname="/system/etc/cdrom_install.iso"
platformver=`cat /sys/devices/soc0/hw_platform`
case "$target" in
"msm8226" | "msm8610" | "msm8916")
case $platformver in
"QRD")
echo "mounting usbcdrom lun"
echo $cdromname > /sys/class/android_usb/android0/f_mass_storage/rom/file
chmod 0444 /sys/class/android_usb/android0/f_mass_storage/rom/file
;;
esac
;;
esac
#
# Initialize RNDIS Diag option. If unset, set it to 'none'.
#
diag_extra=`getprop persist.sys.usb.config.extra`
if [ "$diag_extra" == "" ]; then
setprop persist.sys.usb.config.extra none
fi
# soc_ids for 8937
if [ -f /sys/devices/soc0/soc_id ]; then
soc_id=`cat /sys/devices/soc0/soc_id`
else
soc_id=`cat /sys/devices/system/soc/soc0/id`
fi
# enable rps cpus on msm8937 target
setprop sys.usb.rps_mask 0
case "$soc_id" in
"294" | "295")
setprop sys.usb.rps_mask 40
;;
esac

505
rootdir/bin/init.qcom.wifi.sh Executable file
View file

@ -0,0 +1,505 @@
#! /vendor/bin/sh
# Copyright (c) 2010-2013, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of The Linux Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# This script will load and unload the wifi driver to put the wifi in
# in deep sleep mode so that there won't be voltage leakage.
# Loading/Unloading the driver only incase if the Wifi GUI is not going
# to Turn ON the Wifi. In the Script if the wlan driver status is
# ok(GUI loaded the driver) or loading(GUI is loading the driver) then
# the script won't do anything. Otherwise (GUI is not going to Turn On
# the Wifi) the script will load/unload the driver
# This script will get called after post bootup.
target="$1"
serialno="$2"
btsoc=""
# No path is set up at this point so we have to do it here.
PATH=/sbin:/system/sbin:/system/bin:/system/xbin
export PATH
# Trigger WCNSS platform driver
trigger_wcnss()
{
# We need to trigger WCNSS platform driver, WCNSS driver
# will export a file which we must touch so that the
# driver knows that userspace is ready to handle firmware
# download requests.
# See if an appropriately named device file is present
wcnssnode=`ls /dev/wcnss*`
case "$wcnssnode" in
*wcnss*)
# Before triggering wcnss, let it know that
# caldata is available at userspace.
if [ -e /data/misc/wifi/WCNSS_qcom_wlan_cal.bin ]; then
calparm=`ls /sys/module/wcnsscore/parameters/has_calibrated_data`
if [ -e $calparm ] && [ ! -e /data/misc/wifi/WCN_FACTORY ]; then
echo 1 > $calparm
fi
fi
# There is a device file. Write to the file
# so that the driver knows userspace is
# available for firmware download requests
echo 1 > $wcnssnode
;;
*)
# There is not a device file present, so
# the driver must not be available
echo "No WCNSS device node detected"
;;
esac
# Plumb down the device serial number
if [ -f /sys/devices/*wcnss-wlan/serial_number ]; then
cd /sys/devices/*wcnss-wlan
echo $serialno > serial_number
cd /
elif [ -f /sys/devices/platform/wcnss_wlan.0/serial_number ]; then
echo $serialno > /sys/devices/platform/wcnss_wlan.0/serial_number
fi
}
case "$target" in
msm8974* | msm8226* | msm8610*)
# Check whether device is plugged on the HSIC bus
# Currently HSIC bus will be the first index
if [ -e /sys/bus/platform/drivers/msm_hsic_host ]; then
if [ ! -L /sys/bus/usb/devices/1-1 ]; then
echo msm_hsic_host > /sys/bus/platform/drivers/msm_hsic_host/unbind
fi
chown -h system.system /sys/bus/platform/drivers/msm_hsic_host/bind
chown -h system.system /sys/bus/platform/drivers/msm_hsic_host/unbind
chmod -h 0200 /sys/bus/platform/drivers/msm_hsic_host/bind
chmod -h 0200 /sys/bus/platform/drivers/msm_hsic_host/unbind
fi
wlanchip=""
# force ar6004 is ar6004_wlan.conf existed.
if [ -f /system/etc/firmware/ath6k/AR6004/ar6004_wlan.conf ]; then
wlanchip=`cat /system/etc/firmware/ath6k/AR6004/ar6004_wlan.conf`
fi
# auto detect ar6004-sdio card
# for ar6004-sdio card, the vendor id and device id is as the following
# vendor id device id
# 0x0271 0x0400
# 0x0271 0x0401
if [ "$wlanchip" == "" ]; then
sdio_vendors=`echo \`cat /sys/bus/mmc/devices/*/*/vendor\``
sdio_devices=`echo \`cat /sys/bus/mmc/devices/*/*/device\``
ven_idx=0
for vendor in $sdio_vendors; do
case "$vendor" in
"0x0271")
dev_idx=0
for device in $sdio_devices; do
if [ $ven_idx -eq $dev_idx ]; then
case "$device" in
"0x0400" | "0x0401" | "0x0402")
wlanchip="AR6004-SDIO"
;;
*)
;;
esac
fi
dev_idx=$(( $dev_idx + 1))
done
;;
*)
;;
esac
ven_idx=$(( $ven_idx + 1))
done
# auto detect ar6004-sdio card end
fi
# for ar6004-usb card, the vendor id and device id is as the following
# vendor id product id
# 0x0cf3 0x9374
# 0x0cf3 0x9372
if [ "$wlanchip" == "" ]; then
usb_vendors=`echo \`cat /sys/bus/usb/devices/*/*/idVendor\``
usb_products=`echo \`cat /sys/bus/usb/devices/*/*/idProduct\``
ven_idx=0
for vendor in $usb_vendors; do
case "$vendor" in
"0cf3")
dev_idx=0
for product in $usb_products; do
if [ $ven_idx -eq $dev_idx ]; then
case "$product" in
"9374" | "9372")
wlanchip="AR6004-USB"
;;
*)
;;
esac
fi
dev_idx=$(( $dev_idx + 1))
done
;;
*)
;;
esac
ven_idx=$(( $ven_idx + 1))
done
# auto detect ar6004-usb card end
fi
echo "The WLAN Chip ID is $wlanchip"
case "$wlanchip" in
"AR6004-USB")
echo msm_hsic_host > /sys/bus/platform/drivers/msm_hsic_host/unbind
setprop wlan.driver.ath 2
setprop qcom.bluetooth.soc ath3k
btsoc="ath3k"
rm /system/lib/modules/wlan.ko
ln -s /system/lib/modules/ath6kl-3.5/ath6kl_usb.ko \
/system/lib/modules/wlan.ko
rm /system/etc/firmware/ath6k/AR6004/hw1.3/fw.ram.bin
rm /system/etc/firmware/ath6k/AR6004/hw1.3/bdata.bin
ln -s /system/etc/firmware/ath6k/AR6004/hw1.3/fw.ram.bin_usb \
/system/etc/firmware/ath6k/AR6004/hw1.3/fw.ram.bin
ln -s /system/etc/firmware/ath6k/AR6004/hw1.3/bdata.bin_usb \
/system/etc/firmware/ath6k/AR6004/hw1.3/bdata.bin
rm /system/etc/firmware/ath6k/AR6004/hw3.0/bdata.bin
ln -s /system/etc/firmware/ath6k/AR6004/hw3.0/bdata.bin_usb \
/system/etc/firmware/ath6k/AR6004/hw3.0/bdata.bin
# Use different wpa_supplicant.conf template between wcn driver
# and ath6kl driver
rm /system/etc/wifi/wpa_supplicant.conf
ln -s /system/etc/wifi/wpa_supplicant_ath6kl.conf \
/system/etc/wifi/wpa_supplicant.conf
;;
"AR6004-SDIO")
setprop wlan.driver.ath 2
setprop qcom.bluetooth.soc ath3k
btsoc="ath3k"
# Chown polling nodes as needed from UI running on system server
chmod -h 0200 /sys/devices/msm_sdcc.1/polling
chmod -h 0200 /sys/devices/msm_sdcc.2/polling
chmod -h 0200 /sys/devices/msm_sdcc.3/polling
chmod -h 0200 /sys/devices/msm_sdcc.4/polling
chown -h system.system /sys/devices/msm_sdcc.1/polling
chown -h system.system /sys/devices/msm_sdcc.2/polling
chown -h system.system /sys/devices/msm_sdcc.3/polling
chown -h system.system /sys/devices/msm_sdcc.4/polling
rm /system/lib/modules/wlan.ko
ln -s /system/lib/modules/ath6kl-3.5/ath6kl_sdio.ko \
/system/lib/modules/wlan.ko
rm /system/etc/firmware/ath6k/AR6004/hw1.3/fw.ram.bin
rm /system/etc/firmware/ath6k/AR6004/hw1.3/bdata.bin
ln -s /system/etc/firmware/ath6k/AR6004/hw1.3/fw.ram.bin_sdio \
/system/etc/firmware/ath6k/AR6004/hw1.3/fw.ram.bin
ln -s /system/etc/firmware/ath6k/AR6004/hw1.3/bdata.bin_sdio \
/system/etc/firmware/ath6k/AR6004/hw1.3/bdata.bin
rm /system/etc/firmware/ath6k/AR6004/hw3.0/bdata.bin
ln -s /system/etc/firmware/ath6k/AR6004/hw3.0/bdata.bin_sdio \
/system/etc/firmware/ath6k/AR6004/hw3.0/bdata.bin
# Use different wpa_supplicant.conf template between wcn driver
# and ath6kl driver
rm /system/etc/wifi/wpa_supplicant.conf
ln -s /system/etc/wifi/wpa_supplicant_ath6kl.conf \
/system/etc/wifi/wpa_supplicant.conf
;;
*)
echo "*** WI-FI chip ID is not specified in /persist/wlan_chip_id **"
echo "*** Use the default WCN driver. **"
setprop wlan.driver.ath 0
rm /system/lib/modules/wlan.ko
ln -s /system/lib/modules/pronto/pronto_wlan.ko \
/system/lib/modules/wlan.ko
# Populate the writable driver configuration file
if [ ! -s /data/misc/wifi/WCNSS_qcom_cfg.ini ]; then
cp /system/etc/wifi/WCNSS_qcom_cfg.ini \
/data/misc/wifi/WCNSS_qcom_cfg.ini
chown -h system:wifi /data/misc/wifi/WCNSS_qcom_cfg.ini
chmod -h 660 /data/misc/wifi/WCNSS_qcom_cfg.ini
fi
# The property below is used in Qcom SDK for softap to determine
# the wifi driver config file
setprop wlan.driver.config /data/misc/wifi/WCNSS_qcom_cfg.ini
# Use different wpa_supplicant.conf template between wcn driver
# and ath6kl driver
rm /system/etc/wifi/wpa_supplicant.conf
ln -s /system/etc/wifi/wpa_supplicant_wcn.conf \
/system/etc/wifi/wpa_supplicant.conf
# Trigger WCNSS platform driver
trigger_wcnss &
;;
esac
;;
apq8084*)
echo "*** Use the CNSS CLD driver.**"
setprop wlan.driver.ath 0
# Use different wpa_supplicant.conf template between wcn driver
# and ath6kl driver
rm /system/etc/wifi/wpa_supplicant.conf
ln -s /system/etc/wifi/wpa_supplicant_wcn.conf \
/system/etc/wifi/wpa_supplicant.conf
;;
msm8960*)
# Move cfg80211.ko to prima directory, the default cfg80211.ko is
# for wcnss solution
if [ ! -L /system/lib/modules/cfg80211.ko ]; then
mv /system/lib/modules/cfg80211.ko /system/lib/modules/prima/
fi
wlanchip=""
if [ -f /system/etc/firmware/ath6k/AR6004/ar6004_wlan.conf ]; then
wlanchip=`cat /system/etc/firmware/ath6k/AR6004/ar6004_wlan.conf`
fi
if [ "$wlanchip" == "" ]; then
# auto detect ar6004-usb card
# for ar6004-usb card, the vendor id and device id is as the following
# vendor id product id
# 0x0cf3 0x9374
# 0x0cf3 0x9372
usb_vendors=`echo \`cat /sys/bus/usb/devices/*/*/idVendor\``
usb_products=`echo \`cat /sys/bus/usb/devices/*/*/idProduct\``
ven_idx=0
for vendor in $usb_vendors; do
case "$vendor" in
"0cf3")
dev_idx=0
for product in $usb_products; do
if [ $ven_idx -eq $dev_idx ]; then
case "$product" in
"9374" | "9372")
wlanchip="AR6004-USB"
;;
*)
;;
esac
fi
dev_idx=$(( $dev_idx + 1))
done
;;
*)
;;
esac
ven_idx=$(( $ven_idx + 1))
done
# auto detect ar6004-usb card end
fi
if [ "$wlanchip" == "" ]; then
# auto detect ar6004-sdio card
# for ar6004-sdio card, the vendor id and device id is
# as the following
# vendor id device id
# 0x0271 0x0400
# 0x0271 0x0401
sdio_vendors=`echo \`cat /sys/bus/mmc/devices/*/*/vendor\``
sdio_devices=`echo \`cat /sys/bus/mmc/devices/*/*/device\``
ven_idx=0
for vendor in $sdio_vendors; do
case "$vendor" in
"0x0271")
dev_idx=0
for device in $sdio_devices; do
if [ $ven_idx -eq $dev_idx ]; then
case "$device" in
"0x0400" | "0x0401")
wlanchip="AR6004-SDIO"
;;
*)
;;
esac
fi
dev_idx=$(( $dev_idx + 1))
done
;;
*)
;;
esac
ven_idx=$(( $ven_idx + 1))
done
# auto detect ar6004-sdio card end
fi
echo "The WLAN Chip ID is $wlanchip"
case "$wlanchip" in
"AR6004-USB")
setprop wlan.driver.ath 2
rm /system/lib/modules/wlan.ko
rm /system/lib/modules/cfg80211.ko
ln -s /system/lib/modules/ath6kl-3.5/ath6kl_usb.ko \
/system/lib/modules/wlan.ko
ln -s /system/lib/modules/ath6kl-3.5/cfg80211.ko \
/system/lib/modules/cfg80211.ko
rm /system/etc/firmware/ath6k/AR6004/hw1.3/fw.ram.bin
rm /system/etc/firmware/ath6k/AR6004/hw1.3/bdata.bin
ln -s /system/etc/firmware/ath6k/AR6004/hw1.3/fw.ram.bin_usb \
/system/etc/firmware/ath6k/AR6004/hw1.3/fw.ram.bin
ln -s /system/etc/firmware/ath6k/AR6004/hw1.3/bdata.bin_usb \
/system/etc/firmware/ath6k/AR6004/hw1.3/bdata.bin
# Use different wpa_supplicant.conf template between wcn driver
# and ath6kl driver
rm /system/etc/wifi/wpa_supplicant.conf
ln -s /system/etc/wifi/wpa_supplicant_ath6kl.conf \
/system/etc/wifi/wpa_supplicant.conf
;;
"AR6004-SDIO")
setprop wlan.driver.ath 2
setprop qcom.bluetooth.soc ath3k
btsoc="ath3k"
rm /system/lib/modules/wlan.ko
rm /system/lib/modules/cfg80211.ko
ln -s /system/lib/modules/ath6kl-3.5/ath6kl_sdio.ko \
/system/lib/modules/wlan.ko
ln -s /system/lib/modules/ath6kl-3.5/cfg80211.ko \
/system/lib/modules/cfg80211.ko
rm /system/etc/firmware/ath6k/AR6004/hw1.3/fw.ram.bin
rm /system/etc/firmware/ath6k/AR6004/hw1.3/bdata.bin
ln -s /system/etc/firmware/ath6k/AR6004/hw1.3/fw.ram.bin_sdio \
/system/etc/firmware/ath6k/AR6004/hw1.3/fw.ram.bin
ln -s /system/etc/firmware/ath6k/AR6004/hw1.3/bdata.bin_sdio \
/system/etc/firmware/ath6k/AR6004/hw1.3/bdata.bin
# Use different wpa_supplicant.conf template between wcn driver
# and ath6kl driver
rm /system/etc/wifi/wpa_supplicant.conf
ln -s /system/etc/wifi/wpa_supplicant_ath6kl.conf \
/system/etc/wifi/wpa_supplicant.conf
;;
*)
echo "*** WI-FI chip ID is not specified in /persist/wlan_chip_id **"
echo "*** Use the default WCN driver. **"
setprop wlan.driver.ath 0
rm /system/lib/modules/wlan.ko
rm /system/lib/modules/cfg80211.ko
ln -s /system/lib/modules/prima/prima_wlan.ko \
/system/lib/modules/wlan.ko
ln -s /system/lib/modules/prima/cfg80211.ko \
/system/lib/modules/cfg80211.ko
# The property below is used in Qcom SDK for softap to determine
# the wifi driver config file
setprop wlan.driver.config /data/misc/wifi/WCNSS_qcom_cfg.ini
# Use different wpa_supplicant.conf template between wcn driver
# and ath6kl driver
rm /system/etc/wifi/wpa_supplicant.conf
ln -s /system/etc/wifi/wpa_supplicant_wcn.conf \
/system/etc/wifi/wpa_supplicant.conf
# Trigger WCNSS platform driver
trigger_wcnss &
;;
esac
;;
msm7627a*)
# The default cfg80211 module is for volans
if [ ! -L /system/lib/modules/cfg80211.ko ]; then
mv /system/lib/modules/cfg80211.ko /system/lib/modules/volans/
fi
wlanchip=`cat /persist/wlan_chip_id`
echo "The WLAN Chip ID is $wlanchip"
case "$wlanchip" in
"ATH6KL")
setprop wlan.driver.ath 1
rm /system/lib/modules/wlan.ko
rm /system/lib/modules/cfg80211.ko
ln -s /system/lib/modules/ath6kl/ath6kl_sdio.ko \
/system/lib/modules/wlan.ko
ln -s /system/lib/modules/ath6kl/cfg80211.ko \
/system/lib/modules/cfg80211.ko
;;
"WCN1314")
setprop wlan.driver.ath 0
rm /system/lib/modules/wlan.ko
rm /system/lib/modules/cfg80211.ko
ln -s /system/lib/modules/volans/WCN1314_rf.ko \
/system/lib/modules/wlan.ko
ln -s /system/lib/modules/volans/cfg80211.ko \
/system/lib/modules/cfg80211.ko
;;
*)
setprop wlan.driver.ath 1
rm /system/lib/modules/wlan.ko
rm /system/lib/modules/cfg80211.ko
ln -s /system/lib/modules/ath6kl/ath6kl_sdio.ko \
/system/lib/modules/wlan.ko
ln -s /system/lib/modules/ath6kl/cfg80211.ko \
/system/lib/modules/cfg80211.ko
echo "************************************************************"
echo "*** Error:WI-FI chip ID is not specified in"
echo "/persist/wlan_chip_id"
echo "******* WI-FI may not work ***************************"
;;
esac
;;
msm7627*)
ln -s /data/hostapd/qcom_cfg.ini /etc/firmware/wlan/qcom_cfg.ini
ln -s /persist/qcom_wlan_nv.bin /etc/firmware/wlan/qcom_wlan_nv.bin
;;
msm8660*)
;;
msm7630*)
;;
*)
;;
esac

57
rootdir/bin/init.qti.ims.sh Executable file
View file

@ -0,0 +1,57 @@
#! /vendor/bin/sh
# Copyright (c) 2014, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of The Linux Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#
dir0=/data
trigger_file=$dir0/ims_diabled
ims_disabled=`getprop persist.ims.disabled`
target=`getprop ro.build.product`
#if [ ! -e $trigger_file ]; then
# for future use in doing conditional debugging
#else
#
#fi
echo "$ims_disabled"
echo "$target"
if [ "$ims_disabled" = "0" ]; then
echo "ims will be enabled"
setprop service.qti.ims.enabled 1
exit
fi
if [ "$ims_disabled" = "1" ] || [ "$target" = "msm8909_512" ]; then
echo "ims is disabled"
setprop service.qti.ims.enabled 0
else
echo "ims is enabled"
setprop service.qti.ims.enabled 1
fi

87
rootdir/bin/qca6234-service.sh Executable file
View file

@ -0,0 +1,87 @@
#! /vendor/bin/sh
# Copyright (c) 2010-2014, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of The Linux Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Check whether device is plugged on the HSIC bus
# Currently HSIC bus will be the first index
PATH=/sbin:/system/sbin:/system/bin:/system/xbin
export PATH
deviceprop=`getprop ro.baseband`
boardprop=`getprop ro.board.platform`
if [ -e /sys/bus/platform/drivers/msm_hsic_host ]; then
if [ ! -L /sys/bus/usb/devices/1-1 ]; then
echo msm_hsic_host > /sys/bus/platform/drivers/msm_hsic_host/unbind
fi
chown -h system.system /sys/bus/platform/drivers/msm_hsic_host/bind
chown -h system.system /sys/bus/platform/drivers/msm_hsic_host/unbind
chmod -h 0200 /sys/bus/platform/drivers/msm_hsic_host/bind
chmod -h 0200 /sys/bus/platform/drivers/msm_hsic_host/unbind
fi
wlanchip=""
if [ "$deviceprop" == "apq" ] && [ "$boardprop" == "msm8974" ]; then
wlanchip="AR6004-USB"
fi
# force ar6004 is ar6004_wlan.conf existed.
if [ -f /system/etc/firmware/ath6k/AR6004/ar6004_wlan.conf ]; then
wlanchip=`cat /system/etc/firmware/ath6k/AR6004/ar6004_wlan.conf`
fi
echo "The WLAN Chip ID is $wlanchip"
if [ "$wlanchip" == "AR6004-USB" ]; then
echo msm_hsic_host > /sys/bus/platform/drivers/msm_hsic_host/unbind
setprop wlan.driver.ath 2
setprop qcom.bluetooth.soc ath3k
setprop wlan.driver.name /system/lib/modules/ath6kl-3.5/ath6kl_usb.ko
setprop wlan.supp.template /system/etc/wifi/wpa_supplicant_ath6kl.conf
btsoc="ath3k"
elif [ "$wlanchip" == "AR6004-SDIO" ]; then
setprop wlan.driver.ath 2
setprop qcom.bluetooth.soc ath3k
setprop wlan.driver.name /system/lib/modules/ath6kl-3.5/ath6kl_sdio.ko
setprop wlan.supp.template /system/etc/wifi/wpa_supplicant_ath6kl.conf
btsoc="ath3k"
# Chown polling nodes as needed from UI running on system server
chmod -h 0200 /sys/devices/msm_sdcc.1/polling
chmod -h 0200 /sys/devices/msm_sdcc.2/polling
chmod -h 0200 /sys/devices/msm_sdcc.3/polling
chmod -h 0200 /sys/devices/msm_sdcc.4/polling
chown -h system.system /sys/devices/msm_sdcc.1/polling
chown -h system.system /sys/devices/msm_sdcc.2/polling
chown -h system.system /sys/devices/msm_sdcc.3/polling
chown -h system.system /sys/devices/msm_sdcc.4/polling
fi

9
rootdir/etc/fstab.qcom Executable file → Normal file
View file

@ -7,12 +7,11 @@
# Non-A/B fstab.qcom variant
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/dev/block/bootdevice/by-name/userdata /data ext4 nosuid,nodev,barrier=1,noauto_da_alloc,discard,noatime,lazytime,errors=panic wait,resize,check,forceencrypt=footer,crashcheck,quota
/dev/block/bootdevice/by-name/cust /cust ext4 ro,nosuid,nodev,barrier=1 wait,check
/dev/block/bootdevice/by-name/userdata /data ext4 nosuid,nodev,barrier=1,noauto_da_alloc,discard,noatime,lazytime,errors=panic wait,resize,check,encryptable=footer,crashcheck,quota
/dev/block/bootdevice/by-name/misc /misc emmc defaults defaults
/dev/block/bootdevice/by-name/modem /firmware vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0 wait
/dev/block/bootdevice/by-name/bluetooth /bt_firmware vfat ro,shortname=lower,uid=1002,gid=3002,dmask=227,fmask=337,context=u:object_r:bt_firmware_file:s0 wait
/devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto* /storage/usbotg vfat nosuid,nodev wait,voldmanaged=usbotg:auto
/devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto* /storage/usbotg vfat nosuid,nodev wait,voldmanaged=usbotg:auto
/dev/block/bootdevice/by-name/dsp /dsp ext4 ro,nosuid,nodev,barrier=1 wait
/dev/block/bootdevice/by-name/cache /cache ext4 nosuid,nodev,noatime,barrier=1 wait
/dev/block/bootdevice/by-name/persist /persist ext4 nosuid,nodev,barrier=1,noatime wait,check
/dev/block/bootdevice/by-name/cache /cache ext4 nosuid,nodev,noatime,barrier=1 wait
/dev/block/bootdevice/by-name/persist /persist ext4 nosuid,nodev,barrier=1,noatime wait,check

View file

@ -0,0 +1,863 @@
# Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of The Linux Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# MIUI ADD
on property:vold.decrypt=trigger_restart_framework
setprop sys.usb.config ${persist.sys.usb.config}
# USB compositions
on property:sys.usb.config=mass_storage && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "msc"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0xF000
symlink /config/usb_gadget/g1/functions/mass_storage.0 /config/usb_gadget/g1/configs/b.1/f1
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=mass_storage,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mass_storage,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_msc"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x9015
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/mass_storage.0 /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x901D
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x900E
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,serial_cdev,rmnet,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,serial_cdev,rmnet,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Default composition"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x9091
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,serial_cdev,rmnet && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Default comp without ADB"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x9092
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,adb,serial_cdev,serial_nmea,rmnet && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,adb,serial_cdev,serial_nmea,rmnet && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_adb_dun_nmea_rmnet"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x9025
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/cser.nmea.1 /config/usb_gadget/g1/configs/b.1/f4
symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.tethering=true
write /sys/class/net/rndis0/queues/rx-0/rps_cpus ${sys.usb.rps_mask}
on property:sys.usb.config=rndis
setprop sys.usb.config rndis,${persist.sys.usb.config.extra}
on property:sys.usb.config=rndis,none && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x2717
write /config/usb_gadget/g1/idProduct 0xFF80
symlink /config/usb_gadget/g1/functions/${sys.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
write /config/usb_gadget/g1/configs/b.1/f1/wceis 1
setprop sys.usb.state rndis
on property:sys.usb.config=rndis,adb
setprop sys.usb.config rndis,${persist.sys.usb.config.extra},adb
on property:sys.usb.config=rndis,none,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,none,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x2717
write /config/usb_gadget/g1/idProduct 0xFF88
symlink /config/usb_gadget/g1/functions/${sys.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
write /config/usb_gadget/g1/configs/b.1/f1/wceis 1
setprop sys.usb.state rndis,adb
on property:sys.usb.config=rndis,diag && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x902C
symlink /config/usb_gadget/g1/functions/${sys.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state rndis
on property:sys.usb.config=rndis,diag,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,diag,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x902D
symlink /config/usb_gadget/g1/functions/${sys.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state rndis,adb
on property:sys.usb.config=rndis,serial_cdev && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_dun"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90B3
symlink /config/usb_gadget/g1/functions/${sys.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state rndis
on property:sys.usb.config=rndis,serial_cdev,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,serial_cdev,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_dun_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90B4
symlink /config/usb_gadget/g1/functions/${sys.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state rndis,adb
on property:sys.usb.config=rndis,serial_cdev,diag && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_dun_diag"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90B5
symlink /config/usb_gadget/g1/functions/${sys.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state rndis
on property:sys.usb.config=rndis,serial_cdev,diag,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,serial_cdev,diag,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_dun_diag"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90B6
symlink /config/usb_gadget/g1/functions/${sys.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state rndis,adb
on property:sys.usb.config=mtp,diag && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_diag"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x901B
symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=mtp,diag,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,diag,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_diag_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x903A
symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,qdss && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_qdss"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x904A
write /config/usb_gadget/g1/functions/qdss.qdss/enable_debug_inface 1
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,qdss,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,qdss,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_qdss_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x9060
write /config/usb_gadget/g1/functions/qdss.qdss/enable_debug_inface 1
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,qdss,rmnet && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_qdss_rmnet"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x9083
write /config/usb_gadget/g1/functions/qdss.qdss/enable_debug_inface 1
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,qdss,rmnet,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,qdss,rmnet,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_qdss_rmnet_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x9084
write /config/usb_gadget/g1/functions/qdss.qdss/enable_debug_inface 1
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis,diag,qdss && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_qdss"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x9081
write /config/usb_gadget/g1/functions/qdss.qdss/enable_debug_inface 1
symlink /config/usb_gadget/g1/functions/${sys.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis,diag,qdss,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,diag,qdss,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_qdss_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x9082
write /config/usb_gadget/g1/functions/qdss.qdss/enable_debug_inface 1
symlink /config/usb_gadget/g1/functions/${sys.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=ncm && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ncm"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0xA4A1
symlink /config/usb_gadget/g1/functions/ncm.0 /config/usb_gadget/g1/configs/b.1/f1
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=ncm,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ncm,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ncm_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x908C
symlink /config/usb_gadget/g1/functions/ncm.0 /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,serial_cdev && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x9004
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,adb,serial_cdev && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,adb,serial_cdev && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_adb_dun"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x901f
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,serial_cdev,rmnet,dpl && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun_rmnet_dpl"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90b7
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.dpl /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,serial_cdev,rmnet,dpl,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,serial_cdev,rmnet,dpl,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun_rmnet_dpl_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90b8
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.dpl /config/usb_gadget/g1/configs/b.1/f4
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis,diag,dpl && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_dpl"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90bf
symlink /config/usb_gadget/g1/functions/gsi.rndis /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.dpl /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state rndis
on property:sys.usb.config=rndis,diag,dpl,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,diag,dpl,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_dpl_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90c0
symlink /config/usb_gadget/g1/functions/gsi.rndis /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.dpl /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state rndis,adb
on property:sys.usb.config=ccid && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ccid"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90CE
symlink /config/usb_gadget/g1/functions/ccid.ccid /config/usb_gadget/g1/configs/b.1/f1
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=ccid,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ccid,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ccid_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90CF
symlink /config/usb_gadget/g1/functions/ccid.ccid /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=ccid,diag && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ccid_diag"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90D0
symlink /config/usb_gadget/g1/functions/ccid.ccid /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=ccid,diag,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ccid,diag,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ccid_diag_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90D1
symlink /config/usb_gadget/g1/functions/ccid.ccid /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,serial_cdev,rmnet,ccid && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun_rmnet_ccid"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90D2
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/ccid.ccid /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,serial_cdev,rmnet,ccid,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,serial_cdev,rmnet,ccid,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun_rmnet_ccid_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90D3
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/ccid.ccid /config/usb_gadget/g1/configs/b.1/f4
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,rmnet && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_mdm,qdss_qdss_mdm_dun_dun_mdm_rmnet"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90D7
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/diag.diag_mdm /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f4
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f5
symlink /config/usb_gadget/g1/functions/cser.dun.2 /config/usb_gadget/g1/configs/b.1/f6
symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f7
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,rmnet,adb && property:sys.usb.configfs=1
start adbd
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,rmnet,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_mdm,qdss_qdss_mdm_dun_dun_mdm_rmnet_adb"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
rm /config/usb_gadget/g1/configs/b.1/f6
rm /config/usb_gadget/g1/configs/b.1/f7
rm /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x90D8
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/diag.diag_mdm /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f4
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f5
symlink /config/usb_gadget/g1/functions/cser.dun.2 /config/usb_gadget/g1/configs/b.1/f6
symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f7
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f8
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x2717
write /config/usb_gadget/g1/idProduct 0xFF08
on property:sys.usb.config=mtp && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x2717
write /config/usb_gadget/g1/idProduct 0xFF40
on property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x2717
write /config/usb_gadget/g1/idProduct 0xFF48
on property:sys.usb.config=ptp && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x2717
write /config/usb_gadget/g1/idProduct 0xFF10
on property:sys.usb.config=ptp,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x2717
write /config/usb_gadget/g1/idProduct 0xFF18
on property:sys.usb.config=accessory && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x18d1
write /config/usb_gadget/g1/idProduct 0x2d00
on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x18d1
write /config/usb_gadget/g1/idProduct 0x2d01
on property:sys.usb.config=audio_source && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x18d1
write /config/usb_gadget/g1/idProduct 0x2d02
on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x18d1
write /config/usb_gadget/g1/idProduct 0x2d03
on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x18d1
write /config/usb_gadget/g1/idProduct 0x2d04
on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x18d1
write /config/usb_gadget/g1/idProduct 0x2d05
on property:sys.usb.config=midi && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x18d1
write /config/usb_gadget/g1/idProduct 0x4ee8
on property:sys.usb.config=midi,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x18d1
write /config/usb_gadget/g1/idProduct 0x4ee9

1299
rootdir/etc/init.qcom.rc Executable file

File diff suppressed because it is too large Load diff

1682
rootdir/etc/init.qcom.usb.rc Executable file

File diff suppressed because it is too large Load diff

237
rootdir/etc/init.target.rc Normal file → Executable file
View file

@ -40,6 +40,8 @@ on init
write /dev/stune/system-background/schedtune.colocate 0
write /dev/stune/foreground/schedtune.colocate 0
write /dev/stune/top-app/schedtune.colocate 1
chown media media /dev/dbmdx-1
chmod 0770 /dev/dbmdx-1
on fs
wait /dev/block/platform/soc/${ro.boot.bootdevice}
@ -51,12 +53,23 @@ on fs
# these partition flashed on the device. Failure to mount any partition in fstab file
# results in failure to launch late-start class.
wait /dev/block/bootdevice/by-name/persist
mount ext4 /dev/block/bootdevice/by-name/persist /persist nosuid nodev noatime barrier=1
mkdir /persist/data 0700 system system
mkdir /persist/bms 0700 root system
restorecon_recursive /persist
mkdir /persist/wlan_bt 0777 root system
#add by Quanyu.Lee for MI-feature
#only needed on Factory version,DO NOT push to MIUI!
chmod 0644 /persist/wlan_bt/bt.mac
chmod 0644 /persist/wlan_bt/wlan.mac
chown system system /persist/wlan_bt/bt.mac
chown system system /persist/wlan_bt/wlan.mac
write /sys/kernel/boot_adsp/boot 1
chown system system /dev/goodix_fp
#chmod 0644 /dev/goodix_fp
chmod 0664 /sys/class/thermal/thermal_message/sconfig
chown system system /sys/class/thermal/thermal_message/sconfig
on post-fs
start qseecomd
@ -75,6 +88,9 @@ on post-fs-data
mkdir /persist/qti_fp 0700 system system
mkdir /data/misc/seemp 0700 system system
mkdir /data/misc/tloc 0700 system drmrpc
mkdir /data/thermal 0771 system system
mkdir /data/thermal/config 0771 system system
start pa-cal-load
on boot
start rmt_storage
@ -101,9 +117,9 @@ on boot
chown system system /persist/speccfg/vendor_persist.prop
chown system system /persist/speccfg/submask
chown system system /persist/speccfg/partition
#Load WLAN driver
insmod /vendor/lib/modules/qca_cld3/qca_cld3_wlan.ko
insmod -f /vendor/lib/modules/qca_cld3/qca_cld3_wlan.ko
chown wifi wifi /sys/module/wlan/parameters/fwpath
setprop wlan.driver.status "ok"
#Peripheral manager
@ -193,11 +209,6 @@ service time_daemon /system/vendor/bin/time_daemon
user root
group root
service adsprpcd_root /system/bin/adsprpcd
class main
user media
group media
service adsprpcd /system/vendor/bin/adsprpcd audiopd
class main
user media
@ -371,10 +382,12 @@ service vendor.imsrcsservice /system/vendor/bin/imsrcsd
group radio diag inet log
disabled
# add for HMI_L8866_A01-502: begin
on property:vendor.ims.DATA_DAEMON_STATUS=1
start ims_rtp_daemon
start vendor.imsrcsservice
setprop persist.rcs.supported 0
# add for HMI_L8866_A01-502: end
service ppd /system/vendor/bin/mm-pp-dpps
class late_start
@ -453,3 +466,207 @@ service smcinvoked /system/bin/smcinvoked
user system
group system
# smart pa cal wangshiyou 11/09
service smart-pa-tfa-cal /system/vendor/bin/smart-pa-tfa-cal
user root
group root
disabled
oneshot
# smart pa cal tsx 08/26
service pa-cal-load /system/vendor/bin/smart-pa-cal -load
user root
group root
disabled
oneshot
# smart pa cal tsx 08/26
service smart-pa-cal /system/vendor/bin/smart-pa-cal -t 25 -c /system/vendor/etc/speaker.ftcfg -v -u
user root
group root
disabled
oneshot
on property:sys.pa-cal=0
stop smart-pa-cal
on property:sys.pa-cal=1
start smart-pa-cal
on property:sys.pa-tfa-cal=0
stop smart-pa-tfa-cal
on property:sys.pa-tfa-cal=1
start smart-pa-tfa-cal
# audio loopback test begin tsx 08/26
service loopback_spk1 /system/vendor/bin/loopback.sh 1 1
user root
group root
disabled
oneshot
service loopback_spk0 /system/vendor/bin/loopback.sh 1 0
user root
group root
disabled
oneshot
service loopback_rec1 /system/vendor/bin/loopback.sh 2 1
user root
group root
disabled
oneshot
service loopback_rec0 /system/vendor/bin/loopback.sh 2 0
user root
group root
disabled
oneshot
service loopback_hand1 /system/vendor/bin/loopback.sh 3 1
user root
group root
disabled
oneshot
service loopback_hand0 /system/vendor/bin/loopback.sh 3 0
user root
group root
disabled
oneshot
service loopback_sec1 /system/vendor/bin/loopback.sh 4 1
user root
group root
disabled
oneshot
service loopback_sec0 /system/vendor/bin/loopback.sh 4 0
user root
group root
disabled
oneshot
service spk_playback1 /system/vendor/bin/loopback.sh 5 1
user root
group root
disabled
oneshot
service spk_playback0 /system/vendor/bin/loopback.sh 5 0
user root
group root
disabled
oneshot
on property:sys.loopback-spk=1
start loopback_spk1
on property:sys.loopback-spk=0
start loopback_spk0
on property:sys.loopback-rec=1
start loopback_rec1
on property:sys.loopback-rec=0
start loopback_rec0
on property:sys.loopback-mic1=1
start loopback_hand1
on property:sys.loopback-mic1=0
start loopback_hand0
on property:sys.loopback-mic2=1
start loopback_sec1
on property:sys.loopback-mic2=0
start loopback_sec0
on property:sys.spk-playback=1
start spk_playback1
on property:sys.spk-playback=0
start spk_playback0
service tinyhostless_spk /system/vendor/bin/tinyhostless -D 0 -P 35 -C 11 -p 8 -n 2 -c 1 -r 48000
user root
group root
disabled
oneshot
service tinyhostless /system/vendor/bin/tinyhostless -D 0 -P 5 -C 11 -p 8 -n 2 -c 1 -r 48000
user root
group root
disabled
oneshot
on property:sys.tinyhostless=0
stop tinyhostless
on property:sys.tinyhostless=1
start tinyhostless
on property:sys.tinyhostless-spk=0
stop tinyhostless_spk
on property:sys.tinyhostless-spk=1
start tinyhostless_spk
#audio loopback test end
on property:persist.sys.display_srgb=1
write /sys/class/graphics/fb0/msm_fb_srgb 1
on property:persist.sys.display_srgb=2
write /sys/class/graphics/fb0/msm_fb_srgb 2
on property:sys.dynamic_debug=1
write /sys/kernel/debug/dynamic_debug/control "file q6afe.c +p"
write /sys/kernel/debug/dynamic_debug/control "file q6adm.c +p"
write /sys/kernel/debug/dynamic_debug/control "file msm-pcm-routing-v2.c +p"
write /sys/kernel/debug/dynamic_debug/control "file msm-dai-q6-v2.c +p"
write /sys/kernel/debug/dynamic_debug/control "file soc-core.c +p"
write /sys/kernel/debug/dynamic_debug/control "file soc-dapm.c +p"
write /sys/kernel/debug/dynamic_debug/control "file sdm660-internal.c +p"
write /sys/kernel/debug/dynamic_debug/control "file sdm660-common.c +p"
write /sys/kernel/debug/dynamic_debug/control "file msm-analog-cdc.c +p"
write /sys/kernel/debug/dynamic_debug/control "file msm-digital-cdc.c +p"
write /sys/kernel/debug/dynamic_debug/control "file wcd-mbhc-v2.c +p"
on property:sys.dynamic_debug=0
write /sys/kernel/debug/dynamic_debug/control "file q6afe.c -p"
write /sys/kernel/debug/dynamic_debug/control "file q6adm.c -p"
write /sys/kernel/debug/dynamic_debug/control "file msm-pcm-routing-v2.c -p"
write /sys/kernel/debug/dynamic_debug/control "file msm-dai-q6-v2.c -p"
write /sys/kernel/debug/dynamic_debug/control "file soc-core.c -p"
write /sys/kernel/debug/dynamic_debug/control "file soc-dapm.c -p"
write /sys/kernel/debug/dynamic_debug/control "file sdm660-internal.c -p"
write /sys/kernel/debug/dynamic_debug/control "file sdm660-common.c -p"
write /sys/kernel/debug/dynamic_debug/control "file msm-analog-cdc.c -p"
write /sys/kernel/debug/dynamic_debug/control "file msm-digital-cdc.c -p"
write /sys/kernel/debug/dynamic_debug/control "file wcd-mbhc-v2.c -p"
on property:persist.sys.display_ce=4
write /sys/class/graphics/fb0/msm_fb_ce 1
on property:persist.sys.display_ce=0
write /sys/class/graphics/fb0/msm_fb_ce 2
on property:persist.sys.display_cabc=1
write /sys/class/graphics/fb0/msm_fb_cabc 1
on property:persist.sys.display_cabc=2
write /sys/class/graphics/fb0/msm_fb_cabc 2
on property:persist.sys.display_gamma=1
write /sys/class/graphics/fb0/msm_fb_gamma 1
on property:persist.sys.display_gamma=2
write /sys/class/graphics/fb0/msm_fb_gamma 2
on property:sys.antgpio=0
write /sys/class/ant_class/ant_state 0
on property:sys.antgpio=1
write /sys/class/ant_class/ant_state 1

View file

@ -2,27 +2,23 @@
# 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
# mount point fstype device device2 flags
/boot emmc /dev/block/bootdevice/by-name/boot
/cache ext4 /dev/block/bootdevice/by-name/cache
/data ext4 /dev/block/bootdevice/by-name/userdata flags=encryptable=footer
/misc emmc /dev/block/bootdevice/by-name/misc
/recovery emmc /dev/block/bootdevice/by-name/recovery flags=backup=1
/system ext4 /dev/block/bootdevice/by-name/system
/system_image emmc /dev/block/bootdevice/by-name/system
/vendor ext4 /dev/block/bootdevice/by-name/vendor flags=display="vendor";backup=1;wipeingui
/firmware vfat /dev/block/bootdevice/by-name/modem flags=display="Firmware";mounttodecrypt;fsflags=ro
/cust ext4 /dev/block/bootdevice/by-name/cust
/modem emmc /dev/block/bootdevice/by-name/modem flags=backup=1;display="Modem"
/bluetooth emmc /dev/block/bootdevice/by-name/bluetooth flags=backup=1;subpartitionof=/modem
/dsp emmc /dev/block/bootdevice/by-name/dsp flags=backup=1;subpartitionof=/modem
/efs1 emmc /dev/block/bootdevice/by-name/modemst1 flags=backup=1;display=EFS
/efs2 emmc /dev/block/bootdevice/by-name/modemst2 flags=backup=1;subpartitionof=/efs1
/efsg emmc /dev/block/bootdevice/by-name/fsg flags=backup=1;subpartitionof=/efs1
/efsc emmc /dev/block/bootdevice/by-name/fsc flags=backup=1;subpartitionof=/efs1
# Removable storage
/usb_otg vfat /dev/block/sda1 /dev/block/sda flags=fsflags=utf8;display="USB-OTG";storage;wipeingui;removable
/external_sd vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1 flags=fsflags=utf8;display="SDcard";storage;wipeingui;removable
#TODO: Add 'check' as fs_mgr_flags with data partition.
# Currently we dont have e2fsck compiled. So fs check would failed.
# Non-A/B fstab.qcom variant
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/dev/block/bootdevice/by-name/boot /boot emmc defaults defaults
/dev/block/bootdevice/by-name/recovery /recovery emmc defaults defaults
/dev/block/bootdevice/by-name/system /system ext4 ro wait
/dev/block/bootdevice/by-name/vendor /vendor ext4 ro wait
/dev/block/bootdevice/by-name/userdata /data ext4 nosuid,nodev,noauto_da_alloc,noatime,lazytime,errors=panic wait,resize,check,reservedsize=128M,encryptable=footer,quota,formattable
/devices/soc/c084000.sdhci/mmc_host* /storage/sdcard1 vfat nosuid,nodev wait,voldmanaged=sdcard1:auto,encryptable=footer
/dev/block/bootdevice/by-name/cust /cust ext4 ro,nosuid,nodev wait,check
/dev/block/bootdevice/by-name/misc /misc emmc defaults defaults
/dev/block/bootdevice/by-name/modem /firmware vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0 wait
/dev/block/bootdevice/by-name/bluetooth /bt_firmware vfat ro,shortname=lower,uid=1002,gid=3002,dmask=227,fmask=337,context=u:object_r:bt_firmware_file:s0 wait
/devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto* /storage/usbotg vfat nosuid,nodev wait,voldmanaged=usbotg:auto
/dev/block/bootdevice/by-name/dsp /dsp ext4 ro,nosuid,nodev wait
/dev/block/bootdevice/by-name/cache /cache ext4 nosuid,nodev,noatime wait,check,formattable
/dev/block/bootdevice/by-name/persist /persist ext4 nosuid,nodev,noatime wait,check
/dev/block/bootdevice/by-name/persistbak /persistbak ext4 nosuid,nodev,noatime wait,check

302
rootdir/etc/ueventd.qcom.rc Normal file
View file

@ -0,0 +1,302 @@
# Copyright (c) 2012-2015, 2017, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of The Linux Foundation nor
# the names of its contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# the DIAG device node is not world writable/readable.
/dev/diag 0660 system oem_2901
/dev/genlock 0666 system system
/dev/wlan 0660 wifi wifi
/dev/kgsl 0666 system system
/dev/kgsl-3d0 0666 system system
/dev/kgsl-2d0 0666 root root
/dev/kgsl-2d1 0666 root root
/dev/ion 0664 system system
/dev/rtc0 0660 system system
/dev/smd0 0660 system system
/dev/smd4 0660 system system
/dev/smd_cxm_qmi 0640 radio radio
/dev/smd5 0660 system system
/dev/smd6 0660 system system
/dev/smd7 0660 bluetooth bluetooth
/dev/ccid_bridge 0660 system system
/dev/ipa 0660 radio radio
/dev/wwan_ioctl 0660 radio radio
/dev/ipaNatTable 0660 radio radio
/dev/rmnet_ctrl 0660 usb usb
/dev/dpl_ctrl 0660 usb usb
/dev/spidev7.1 0660 system system
#permissions for CSVT
/dev/smd11 0660 radio radio
#permsissions for BT/FM
/dev/smd2 0660 bluetooth bluetooth
/dev/smd3 0660 bluetooth bluetooth
/dev/btpower 0660 bluetooth system
#permissions for pta
/dev/pta 0660 system system
/dev/radio0 0640 system system
/dev/rfcomm0 0660 bluetooth bluetooth
/dev/ttyUSB0 0660 bluetooth bluetooth
/dev/smdcntl0 0640 radio radio
/dev/smdcntl1 0640 radio radio
/dev/smdcntl2 0640 radio radio
/dev/smdcntl3 0640 radio radio
/dev/smdcntl4 0640 radio radio
/dev/smdcntl5 0640 radio radio
/dev/smdcntl6 0640 radio radio
/dev/smdcntl7 0640 radio radio
/dev/smdcntl8 0640 radio radio
/dev/smdcnt_rev0 0640 radio radio
/dev/smdcnt_rev1 0640 radio radio
/dev/smdcnt_rev2 0640 radio radio
/dev/smdcnt_rev3 0640 radio radio
/dev/smdcnt_rev4 0640 radio radio
/dev/smdcnt_rev5 0640 radio radio
/dev/smdcnt_rev6 0640 radio radio
/dev/smdcnt_rev7 0640 radio radio
/dev/smdcnt_rev8 0640 radio radio
/dev/smuxctl32 0640 radio radio
/dev/sdioctl0 0640 radio radio
/dev/sdioctl1 0640 radio radio
/dev/sdioctl2 0640 radio radio
/dev/sdioctl3 0640 radio radio
/dev/sdioctl4 0640 radio radio
/dev/sdioctl5 0640 radio radio
/dev/sdioctl6 0640 radio radio
/dev/sdioctl7 0640 radio radio
/dev/sdioctl8 0640 radio radio
/dev/rmnet_mux_ctrl 0640 radio radio
/dev/hsicctl0 0640 radio radio
/dev/hsicctl1 0640 radio radio
/dev/hsicctl2 0640 radio radio
/dev/hsicctl3 0640 radio radio
/dev/hsicctl4 0640 radio radio
/dev/hsicctl5 0640 radio radio
/dev/hsicctl6 0640 radio radio
/dev/hsicctl7 0640 radio radio
/dev/hsicctl8 0640 radio radio
/dev/hsicctl9 0640 radio radio
/dev/hsicctl10 0640 radio radio
/dev/hsicctl11 0640 radio radio
/dev/hsicctl12 0640 radio radio
/dev/hsicctl13 0640 radio radio
/dev/hsicctl14 0640 radio radio
/dev/hsicctl15 0640 radio radio
/dev/hsicctl16 0640 radio radio
/dev/mhi_pipe_14 0640 radio radio
/dev/mhi_pipe_16 0640 radio radio
/dev/mhi_pipe_32 0640 radio radio
/dev/at_usb0 0640 radio radio
/dev/at_mdm0 0640 radio radio
/dev/video* 0660 system camera
/dev/media* 0660 system camera
/dev/v4l-subdev* 0660 system camera
/dev/qseecom 0660 system drmrpc
/dev/smcinvoke 0660 system system
/dev/qsee_ipc_irq_spss 0660 system drmrpc
/dev/seemplog 0660 system system
/dev/pft 0660 system drmrpc
/dev/spcom 0660 system system
/dev/sp_kernel 0660 system system
/dev/sp_ssr 0660 system system
/dev/sp_keymaster 0660 system system
/dev/cryptoapp 0660 system system
/dev/gemini0 0660 system camera
/dev/jpeg0 0660 system camera
/dev/jpeg1 0660 system camera
/dev/jpeg2 0660 system camera
/dev/jpeg3 0660 system camera
/dev/adsprpc-smd 0664 system system
/dev/system_health_monitor 0644 radio system
/dev/mdss_rotator 0664 system system
# fpc fingerprint
/sys/devices/soc/soc:fpc1020* hw_reset 0660 system system
/sys/devices/soc/soc:fpc1020* irq 0660 system system
/sys/devices/soc/soc:fpc1020* wakeup_enable 0660 system system
/sys/devices/soc/soc:fpc1020* fingerdown_wait 0220 system system
# wlan
/dev/wcnss_wlan 0660 system system
/dev/wcnss_ctrl 0660 system system
/sys/devices/soc/a000000.qcom,wcnss-wlan/net/wlan0/queues/rx-* rps_cpus 0660 system system
/sys/devices/soc/a000000.qcom,wcnss-wlan/net/p2p0/queues/rx-* rps_cpus 0660 system system
/dev/spidev0.0 0660 system audio
/dev/msm_camera/* 0660 system camera
/dev/gemini/ 0660 system camera
/dev/mercury0 0660 system camera
/dev/msm_vidc_reg 0660 system audio
/dev/msm_vidc_dec 0660 system audio
/dev/msm_vidc_dec_sec 0660 system audio
/dev/msm_vidc_enc 0660 system audio
/dev/msm_rotator 0660 system system
/dev/hw_random 0600 root root
/dev/sdsprpc-smd 0660 system system
#permissions for audio
/dev/wcd_dsp0_control 0660 system audio
/dev/wcd-dsp-glink 0660 system audio
/dev/audio_slimslave 0660 system audio
/dev/msm_qcelp 0660 system audio
/dev/msm_evrc 0660 system audio
/dev/msm_wma 0660 system audio
/dev/msm_wmapro 0660 system audio
/dev/msm_alac 0660 system audio
/dev/msm_ape 0660 system audio
/dev/msm_amrnb 0660 system audio
/dev/msm_amrwb 0660 system audio
/dev/msm_amrwbplus 0660 system audio
/dev/msm_aac 0660 system audio
/dev/msm_multi_aac 0660 system audio
/dev/msm_aac_in 0660 system audio
/dev/msm_qcelp_in 0660 system audio
/dev/msm_evrc_in 0660 system audio
/dev/msm_amrnb_in 0660 system audio
/dev/msm_amrwb_in 0660 system audio
/dev/msm_a2dp_in 0660 system audio
/dev/msm_ac3 0660 system audio
/dev/msm_audio_cal 0660 system audio
/dev/msm_hweffects 0660 system audio
/dev/msm_cad 0660 system audio
/dev/msm_fm 0660 system audio
/dev/msm_mvs 0660 system audio
/dev/msm_pcm_lp_dec 0660 system audio
/dev/msm_preproc_ctl 0660 system audio
/dev/msm_rtac 0660 system audio
/dev/msm_voicememo 0660 system audio
/dev/ttyHSL1 0660 system system
/dev/ttyHS1 0660 system system
/dev/mdm 0660 system radio
/sys/devices/virtual/smdpkt/smdcntl* open_timeout 0664 radio radio
/dev/sdio_tty_ciq_00 0660 system system
/dev/tty_sdio_00 0660 system system
/dev/ttyGS0 0660 system system
/dev/i2c-5 0660 media media
/dev/avtimer 0660 system audio
# DVB devices
/dev/dvb/adapter0/demux* 0440 media media
/dev/dvb/adapter0/dvr* 0660 media media
/dev/dvb/adapter0/video* 0660 media media
# Broadcast devices
/dev/tsc_mux0 0660 media media
/dev/tsc_ci0 0660 media media
# sensors
/sys/devices/i2c-12/12-* pollrate_ms 0664 system system
/sys/devices/f9925000.i2c/i2c-0/0-* enable 0660 input system
/sys/devices/f9925000.i2c/i2c-0/0-* poll_delay 0660 input system
/sys/devices/soc.0/78b6000.i2c/i2c-0/0-* enable 0660 input system
/sys/devices/soc.0/78b6000.i2c/i2c-0/0-* poll_delay 0660 input system
/sys/devices/soc.0/78b6000.i2c/i2c-0/0-* enable_wakeup 0660 input system
/sys/devices/soc.0/78b6000.i2c/i2c-0/0-* max_latency 0660 input system
/sys/devices/soc.0/78b6000.i2c/i2c-0/0-* flush 0660 input system
/sys/devices/soc.0/78b6000.i2c/i2c-0/0-* calibrate 0660 input system
/sys/devices/soc.0/78b5000.i2c/i2c-1/1-* enable 0660 input system
/sys/devices/soc.0/78b5000.i2c/i2c-1/1-* poll_delay 0660 input system
/sys/devices/soc.0/78b5000.i2c/i2c-1/1-* enable_wakeup 0660 input system
/sys/devices/soc.0/78b5000.i2c/i2c-1/1-* max_latency 0660 input system
/sys/devices/soc.0/78b5000.i2c/i2c-1/1-* flush 0660 input system
/sys/devices/soc.0/78b5000.i2c/i2c-1/1-* calibrate 0660 input system
/sys/devices/virtual/optical_sensors/proximity ps_adc 0660 input system
/sys/devices/virtual/optical_sensors/proximity ps_poll_delay 0660 input system
/sys/devices/virtual/optical_sensors/lightsensor ls_auto 0660 input system
/sys/devices/virtual/optical_sensors/lightsensor ls_poll_delay 0660 input system
/sys/devices/virtual/input/input* poll 0660 input system
/sys/devices/virtual/input/input* pollrate_ms 0660 input system
/sys/devices/soc/78b7000.i2c/i2c-3/3-0020/input/input* secure_touch 0440 system drmrpc
/sys/devices/soc/78b7000.i2c/i2c-3/3-0020/input/input* secure_touch_enable 0660 system drmrpc
/sys/devices/soc/78b7000.i2c/i2c-3/3-0038/input/input* secure_touch 0440 system drmrpc
/sys/devices/soc/78b7000.i2c/i2c-3/3-0038/input/input* secure_touch_enable 0660 system drmrpc
/sys/devices/soc/78b7000.i2c/i2c-3/3-004b/input/input* secure_touch 0440 system drmrpc
/sys/devices/soc/78b7000.i2c/i2c-3/3-004b/input/input* secure_touch_enable 0660 system drmrpc
/sys/devices/soc/c179000.i2c/i2c-5/5-0020/input/input* secure_touch 0440 system drmrpc
/sys/devices/soc/c179000.i2c/i2c-5/5-0020/input/input* secure_touch_enable 0660 system drmrpc
# laser sensor access
/sys/devices/virtual/input/input* enable_ps_sensor 0660 system input
/sys/devices/virtual/input/input* set_delay_ms 0660 system input
/sys/devices/virtual/input/input* do_flush 0660 system input
# vm_bms
/dev/vm_bms 0660 system system
/dev/battery_data 0660 system system
# wlan
/dev/wcnss_wlan 0660 system system
/dev/wcnss_ctrl 0660 system system
/sys/devices/soc/600000.qcom,pcie/pci0000:00/0000:00:00.0/0000:01:00.0/net/wlan0/queues/rx-* rps_cpus 0660 system system
/sys/devices/soc/600000.qcom,pcie/pci0000:00/0000:00:00.0/0000:01:00.0/net/p2p0/queues/rx-* rps_cpus 0660 system system
# wigig
/sys/bus/pci/drivers/wil6210* 0000:01:00.0/wil6210/fst_link_loss 0660 wifi wifi
/sys/bus/pci/drivers/wil6210* 0000:01:00.0/wil6210/thermal_throttling 0660 system system
/sys/bus/pci/drivers/wil6210* 0000:01:00.0/wil6210/snr_thresh 0660 wifi wifi
/sys/bus/pci/drivers/wil6210* 0000:01:00.0/net/wigig0/queues/rx-0/rps_cpus 0660 system system
/sys/bus/pci/drivers/wil6210* 0000:01:00.0/net/wigig0/gro_flush_timeout 0660 system system
/sys/devices/virtual/net/bond0 queues/rx-0/rps_cpus 0660 system system
#nfc permissions
/dev/nfc-nci 0660 nfc nfc
/dev/nq-nci 0660 nfc nfc
/dev/assd 0660 nfc nfc
# UIO devices
/dev/uio0 0660 system system
/dev/uio1 0660 system system
/dev/uio2 0660 system system
# SSR devices
/dev/subsys_* 0640 system system
# Ultrasound device
/dev/usf1 0660 system system
# Ramdump devices
/dev/ramdump* 0640 system system
# Fingerprint device
/dev/qbt1000 0660 system system
#ImproveTouch device
/dev/hbtp_input 0660 system system
/dev/hbtp_vm 0660 system system
# Add device block for FRP
/dev/block/platform/soc/7824900.sdhci/by-name/config 0600 system system
/dev/block/platform/soc/7464900.sdhci/by-name/frp 0600 system system
/dev/block/platform/soc/624000.ufshc/by-name/frp 0600 system system
/dev/block/platform/soc/1da4000.ufshc/by-name/frp 0600 system system
/dev/block/platform/soc/c0c4000.sdhci/by-name/frp 0600 system system
/dev/block/platform/soc/1d84000.ufshc/by-name/frp 0600 system system
# Kmsg device
/dev/kmsg 0620 root system

0
sensors/hals.conf Executable file → Normal file
View file

View file

@ -0,0 +1,627 @@
#
# File: sensor_def_qcomdev.conf
#
# Tihs file contains default sensor registry values for Qualcomm development
# test platforms.
#
# Copyright (c) 2013-2016 Qualcomm Technologies, Inc.
# All Rights Reserved.
# Confidential and Proprietary - Qualcomm Technologies, Inc.
# File format:
#
# Lines starting with "#" are comments and ignored.
#
# File metadata uses this format:
# :key value1 value2
#
# The following keys are defined:
# - "version" : value1 is non-zero positive version number of the file. This
# number will be stored in the sensors registry. It should be equal to the
# largest version of any item. It will be saved in the sensors registry for
# later use when initializing values. See the item format below.
# This value should only be specified once in the file.
#
# - "hardware" : The value1 will be compared to the "Hardware" string from
# the property of ro.board.platform.
# Items will only be used as default values in the registry if the hardware
# string value is a substring of the ro.board.platform string.
# This metadata key can be used more than once, so that one file can support
# more than one type of hardware.
# The value may be NULL, indicating common item values for all hardware.
# Common conf entries for multiple hardware can be mentioned as below.
# configuration below this string is common for 8952,8956 and 8974
# :hardware 8952 8956 8974
# hardware list gets overwritten with the new one every time when "hardware"
# tag appears while parsing conf file.
#
# - "platform" : Similar to the "hardware" key, but this string will need to
# match the text of either /sys/devices/soc0/hw_platform or
# /sys/devices/soc0/platform_subtype.
# Common conf entries for multiple platform can be mentioned as below.
# configuration below this string is common for MTP and QRD
# :platfrom MTP QRD
# platform list gets overwritten with the new one every time when "platfrom"
# tag appears while parsing conf file.
#
#
# - "soc_id" : Similar to the "hardware" key, but this string will need to
# match the text of /sys/devices/soc0/soc_id.
# Common conf entries for multiple soc_id can be mentioned as below.
# configuration below this string is common for soc_id 264 and 278
# :soc_id 264 278
# soc_id list gets overwritten with the new one every time when "soc_id"
# tag appears while parsing conf file.
#
# - "subtype" : Similar to the "hardware" key, but this string will need to
# match the text of /sys/devices/soc0/platform_subtype.
# Common conf entries for multiple subtype can be mentioned as below.
# configuration below this string is common for subtype X and Y
# :subtype X Y
# subtype list gets overwritten with the new one every time when "subtype"
# tag appears while parsing conf file.
#
# - "sub_id" : Similar to the "hardware" key, but this string will need to
# match the text of /sys/devices/soc0/platform_subtype_id.
# Common conf entries for multiple sub_id can be mentioned as below.
# configuration below this string is common for sub_id
# :sub_id 0 10
# sub_id list gets overwritten with the new one every time when "sub_id"
# tag appears while parsing conf file.
#
# - "soc_rev" : Similar to the "hardware" key, but this string will need to
# match the text of /sys/devices/soc0/revision.
# Common conf entries for multiple soc_rev can be mentioned as below.
# configuration below this string is common for soc_rev 1.0,2.0 and 3.0
# :soc_rev 1.0 2.0 3.0
# soc_rev list gets overwritten with the new one every time when "soc_rev"
# tag appears while parsing conf file.
#
# - "plat_ver" : Similar to the "hardware" key, but this string will need to
# match the text of /sys/devices/soc0/platform_version.
# Common conf entries for multiple plat_ver can be mentioned as below.
# configuration below this string is common for plat_ver 131072 and 1179648
# :plat_ver 131072 1179648
# plat_ver list gets overwritten with the new one every time when "plat_ver"
# tag appears while parsing conf file.
#
# - "property" : value1 is the Android system property key, and value2 is
# the desired property value. If the system property value matches the
# desired property value, then the following items will be applied.
# This metadata key can be used more than once, in which case the new
# property value overrides the old.
# value1 and 2 may be NULL, indicating common item values for all properties.
#
# Registry items are in lines with the following format:
# <itemID> <value> <version>
# Where:
# itemID is the numeric item ID defined in sns_reg_api_v02.h
#
# "value" is the numeric value of the item.
#
# "version" is a non-zero version of the item value.
# The version field will be compared against the previous saved
# value in the sensors registry. If this value is greater than the
# saved value, the default will be applied. Otherwise, the default
# will be skipped.
#
# Registry item values will only be applied if the hardware, platform, and
# property values match for the current hardware configuration.
#
# The numeric fields are parsed with the strtoull function, base 0.
#
:version 0x00010001
#######################################################################
### sdm660 Chipsets
#######################################################################
:hardware sdm660
:platform
:property
:soc_id
:soc_rev
:subtype
# Orientation of sensors
# accel x/y/z
700 1 0x00010001 #accel-x-axis
701 -2 0x00010001 #accel-y-axis
702 -3 0x00010001 #accel-z-axis
# accel x/y/z
720 2 0x00010001 #accel-x-axis
721 -1 0x00010001 #accel-y-axis
722 -3 0x00010001 #accel-z-axis
# gyro x/y/z
800 1 0x00010001 #gyro-x-axis
801 -2 0x00010001 #gyro-y-axis
802 -3 0x00010001 #gyro-z-axis
# mag x/y/z
900 -2 0x00010001 #max-x-axis
901 -1 0x00010001 #mag-y-axis
902 -3 0x00010001 #mag-z-axis
# SSI SMGR Version
1900 0 0x00010001 #Maj Ver
1901 2 0x00010001 #Min Ver
# SAM config
#
203 65536 0x10001 # AMD
225 983040 0x10001 # RMD
504 65536 0x10001 # Gyro Cal
1703 65536 0x10001 # Ped
2800 983040 0x10001 # basic ges
2900 983040 0x10001 # Facing
3400 65536 0x10001 # CMC
609 983040 0x10001 # FMV
1005 983040 0x10001 # Grav
1103 983040 0x10001 # orientation
3000 983040 0x10001 # gyro quat
3100 983040 0x10001 # rot vec
3500 983040 0x10001 # game rv
4112 65536 0x10001 # SMD
4103 5 0x10001 # SMD_ACC_WIN_TIME
#AMD parameters
200 0x000a0000 0x00010001 #AMD_ACC_SAMP_RATE_HZ_Q16
201 0x00000cd2 0x00010001 #AMD_INT_cfg_prm1
202 0x00008000 0x00010001 #AMD_INT_cfg_prm2
#RMD parameters
220 0x001e0000 0x00010001 #RMD_ACC_SAMP_RATE_HZ_Q16
221 0x0001b333 0x00010001 #RMD_INT_cfg_prm1
222 0x00003333 0x00010001 #RMD_INT_cfg_prm2
223 0x00001657 0x00010001 #RMD_INT_cfg_prm3
224 0x00003333 0x00010001 #RMD_INT_cfg_prm4
# SSI ACC SENSOR
2000 2 0x00010001 #auto detect
2001 3 0x00010001 #no. devices
# SSI SMGR Cfg 0: ICM206xx [INVN ACCEL]
2002 0xc14075963795c661 0x00010001 #UUID
2003 0x0b25b8431bfd46bc 0x00010001 #UUID
2004 100000 0x00010001 #off_to_idle
2005 20000 0x00010001 #idle_to_ready
2006 68 0x00010001 #gpio1 [0xFFFF:Polling; 42(0x2A):Acc Interrupt Pin]
2007 1000 0x00010001 #reg_group_id
2008 0 0x00010001 #cal_grp_id
2009 3 0x00010001 #i2c_bus
2010 0x68 0x00010001 #i2c_address
2011 2 0x00010001 #sens_default
2012 0xD0 0x00010001 #flags [0:Polling; 0x80:DRI]
2068 0x83 0x00010001 #vdd [ LDO3B: 3V ]
2069 0x8E 0x00010001 #vddio [ LDO14A: 1.8V]
# SSI SMGR Cfg 1: BMI160 ACCEL
2013 0xd646cb83ec0cd5a5 0x00010001 #UUID
2014 0x0f4d0fd654c7eab5 0x00010001 #UUID
2015 30000 0x00010001 #off_to_idle
2016 0 0x00010001 #idle_to_ready
2017 68 0x00010001 #gpio1
2018 1000 0x00010001 #reg_group_id
2019 0 0x00010001 #cal_grp_id
2020 3 0x00010001 #i2c_bus
2021 0x68 0x00010001 #i2c address
2022 4 0x00010001 #sens_defatult
2023 0xD0 0x00010001 #flag
2070 0x83 0x00010001 #vdd [ LDO3B: 3V ]
2071 0x8E 0x00010001 #vddio [ LDO14A: 1.8V]
# SSI SMGR Cfg 1: lsm6dsm ACCEL
2024 0xbe48af52e826fd3c 0x00010001 #UUID
2025 0x68534cfc401dc2ac 0x00010001 #UUID
2026 100000 0x00010001 #off_to_idle
2027 250000 0x00010001 #idle_to_ready
2028 68 0x00010001 #gpio1
2029 1001 0x00010001 #reg_group_id
2030 0 0x00010001 #cal_grp_id
2031 3 0x00010001 #i2c_bus
2032 0x6a 0x00010001 #i2c address
2033 4 0x00010001 #sens_defatult
2034 0xD0 0x00010001 #flag
2072 0x83 0x00010001 #vdd [ LDO3B: 3V ]
2073 0x8E 0x00010001 #vddio [ LDO14A: 1.8V]
# SSI G SENSOR
2100 2 0x00010001 #auto detect
2101 3 0x00010001 #no. devices
# SSI SMGR Cfg 0: ICM206xx [INVN GYRO]
2102 0xc14075963795c661 0x00010001 #UUID
2103 0x0b25b8431bfd46bc 0x00010001 #UUID
2104 100000 0x00010001 #off_to_idle
2105 80000 0x00010001 #idle_to_ready
2106 69 0x00010001 #gpio1 [0xFFFF:Polling; 42(0x2A):Gyro Interrupt Pin]
2107 1010 0x00010001 #reg_group_id
2108 10 0x00010001 #cal_grp_id
2109 3 0x00010001 #i2c_bus
2110 0x68 0x00010001 #i2c_address
2111 3 0x00010001 #sens_default
2112 0xD0 0x00010001 #flags [0:Polling; 0x80:DRI]
2168 0x83 0x00010001 #vdd
2169 0x8E 0x00010001 #vddio
# SSI SMGR Cfg 1: BMI160 GYRO
2113 0xd646cb83ec0cd5a5 0x00010001 #UUID
2114 0x0f4d0fd654c7eab5 0x00010001 #UUID
2115 30000 0x00010001 #off_to_idle
2116 0 0x00010001 #idle_to_ready
2117 69 0x00010001 #gpio1
2118 1010 0x00010001 #reg_group_id
2119 10 0x00010001 #cal_grp_id
2120 3 0x00010001 #i2c_bus
2121 0x68 0x00010001 #i2c address
2122 4 0x00010001 #sens_defatult
2123 0xD0 0x00010001 #flag
2170 0x83 0x00010001 #vdd
2171 0x8E 0x00010001 #vddio
# SSI SMGR Cfg 1: lsm6dsm GYRO
2124 0xbe48af52e826fd3c 0x00010001 #UUID
2125 0x68534cfc401dc2ac 0x00010001 #UUID
2126 100000 0x00010001 #off_to_idle
2127 250000 0x00010001 #idle_to_ready
2128 69 0x00010001 #gpio1
2129 1010 0x00010001 #reg_group_id
2130 10 0x00010001 #cal_grp_id
2131 3 0x00010001 #i2c_bus
2132 0x6a 0x00010001 #i2c address
2133 4 0x00010001 #sens_defatult
2134 0xD0 0x00010001 #flag
2172 0x83 0x00010001 #vdd
2173 0x8E 0x00010001 #vddio
# SSI M SENSOR
2200 2 0x00010001 #auto detect
2201 1 0x00010001 #no. devices
# SSI SMGR Cfg 0: AKM099xx_FIFO mag FIFO/DRI
2202 0x564d2b94fe80aef6 0x00010001 #UUID
2203 0x90611b98d561168f 0x00010001 #UUID
2204 3000 0x00010001 #off_to_idle
2205 10000 0x00010001 #idle_to_ready
2206 0xFFFF 0x00010001 #gpio1
2207 1020 0x00010001 #reg_group_id
2208 0xFFFF 0x00010001 #cal_grp_id
2209 3 0x00010001 #i2c_bus
2210 0x0c 0x00010001 #i2c address
2211 0 0x00010001 #sens_defatult
2212 0 0x00010001 #flag
2268 0x83 0x00010001 #vdd
2269 0x8E 0x00010001 #vddio
# SSI ALS/PS SENSOR
2300 2 0x00010001 #auto detect
2301 2 0x00010001 #no. devices
# SSI SMGR Cfg 4: LTR578 DRI
2303 0x014101d151c1e1b1 0x00010001 #UUID should same to ADSP
2302 0xd141c181e101d1a1 0x00010001 #UUID
2304 3000 0x00010001 #off_to_idle
2305 10000 0x00010001 #idle_to_ready
2306 0xFFFF 0x00010001 #gpio1
2307 1040 0x00010001 #reg_group_id
2308 0xFFFF 0x00010001 #cal_grp_id
2309 3 0x00010001 #i2c_bus
2310 0x53 0x00010001 #i2c_address
2311 0 0x00010001 #sens_default
2312 0x00 0x00010001 #flags
2368 0x83 0x00010001 #vdd
2369 0x8E 0x00010001 #vddio
# SSI SMGR Cfg 4: STK3X1X DRI
2314 0x8b11a21aa55e6586 0x00010001 #UUID should same to ADSP
2313 0xa4524f726702e351 0x00010001 #UUID
2315 7500 0x00010001 #off_to_idle
2316 10000 0x00010001 #idle_to_ready
2317 0xFFFF 0x00010001 #gpio1
2318 1040 0x00010001 #reg_group_id
2319 0xFFFF 0x00010001 #cal_grp_id
2320 3 0x00010001 #i2c_bus
2321 0x48 0x00010001 #i2c_address
2322 0 0x00010001 #sens_default
2323 0x00 0x00010001 #flags
2370 0x83 0x00010001 #vdd
2371 0x8E 0x00010001 #vddio
#pressure sensor
2400 2 0x00010001 #min ver
2401 1 0x00010001 #uuid number
# SSI SMGR Cfg 3: BMP285 pressure POLL
2403 0x32c31ec17f1c0abd 0x00010001 #UUID
2402 0x5c473990a806b072 0x00010001 #UUID
2404 5000 0x00010001 #off_to_idle
2405 50000 0x00010001 #idle_to_ready
2406 0xFFFF 0x00010001 #gpio1
2407 0xFFFF 0x00010001 #reg_group_id
2408 0xFFFF 0x00010001 #cal_grp_id
2409 3 0x00010001 #i2c_bus
2410 0x76 0x00010001 #i2c_address
2411 0 0x00010001 #sens_default
2412 0 0x00010001 #flags
2468 0x8E 0x00010001 #vdd
2469 0x8E 0x00010001 #vddio
# SSI SMGR Version
3600 1 0x00010001 #Maj Ver
3601 2 0x00010001 #Min Ver
#RGB sensor
4300 2 0x00010001 #min ver
4301 1 0x00010001 #uuid number
# SSI SMGR Cfg 5: TMG490X RGB DRI
4303 0x3a83587c79f2d5ad 0x00010001 #UUID
4302 0xd24fdac0d73b50aa 0x00010001 #UUID
4304 5700 0x00010001 #off_to_idle
4305 5000 0x00010001 #idle_to_ready
4306 0xFFFF 0x00010001 #gpio1
4307 0xFFFF 0x00010001 #reg_group_id
4308 0xFFFF 0x00010001 #cal_grp_id
4309 3 0x00010001 #i2c_bus
4310 0x39 0x00010001 #i2c_address
4311 0 0x00010001 #sens_default
4312 0x80 0x00010001 #flags
4368 0x83 0x00010001 #vdd
4369 0x8E 0x00010001 #vddio
#Humidity sensor
4200 2 0x00010001 #min ver
4201 1 0x00010001 #uuid number
## SSI SMGR Cfg 6: SHTW1 Humidity Onchange
4203 0xcc631478716da795 0x00010001 #UUID
4202 0x40410cafc67cfbbe 0x00010001 #UUID
4204 10000 0x00010001 #off_to_idle
4205 10000 0x00010001 #idle_to_ready
4206 0xFFFF 0x00010001 #gpio1
4207 0xFFFF 0x00010001 #reg_group_id
4208 0xFFFF 0x00010001 #cal_grp_id
4209 3 0x00010001 #i2c_bus
4210 0x70 0x00010001 #i2c_address
4211 0 0x00010001 #sens_default
4212 0x80 0x00010001 #flags
4268 1 0x00010001 #device_select
4269 0x8E 0x00010001 #vdd
# Hall Effect BU52053NVX DRI
4700 2 0x00010001 #min ver
4701 1 0x00010001 #uuid number
## SSI SMGR Cfg 7: Hall Effect BU52053NVX DRI
4703 0x5da5cb55d3c7bd84 0x00010001 #UUID
4702 0x7e412494d22ec81e 0x00010001 #UUID
4704 100 0x00010001 #off_to_idle
4705 100 0x00010001 #idle_to_ready
4706 0xFFFF 0x00010001 #gpio1
4707 0xFFFF 0x00010001 #reg_group_id
4708 0xFFFF 0x00010001 #cal_grp_id
4709 3 0x00010001 #i2c_bus
4710 0x20 0x00010001 #i2c_address, dummy
4711 0 0x00010001 #sens_default
4712 0x80 0x00010001 #flags
4768 0x8E 0x00010001 #vdd
4769 0x8E 0x00010001 #vddio
#
# SSI GPIO configuration
#-----------------------------
2700 1 0x00010001 #maj ver
2701 0 0x00010001 #min ver
2706 0xFFFF 0x00010001 #RESET pin
# Mag Cal config
#-----------------------------
3801 1 0x00010001
3804 0x000a0000 0x10001 #Sample Rate
#
# IOD AUTOCAL configuration
#-----------------------------
6000 1 0x00010001 #version
6001 1 0x00010001 #converge staus
6002 0x3F86CBFB 0x00010001 #coefficient
#
# SSC GPIO CFG (Unused)
#-----------------------------
#
6300 1 0x00010001 # version
6301 0x0104 0x00010001 # gpio num
6302 2 0x00010001 # active func sel
6303 1 0x00010001 # active dir
6304 0 0x00010001 # active pull
6305 3 0x00010001 # active drive
6306 2 0x00010001 # inactive func sel
6307 0 0x00010001 # inactive dir
6308 2 0x00010001 # inactive pull
6309 3 0x00010001 # inactive drive
6310 1 0x00010001 # version
6311 0x0105 0x00010001 # gpio num
6312 2 0x00010001 # active func sel
6313 1 0x00010001 # active dir
6314 0 0x00010001 # active pull
6315 3 0x00010001 # active drive
6316 2 0x00010001 # inactive func sel
6317 0 0x00010001 # inactive dir
6318 2 0x00010001 # inactive pull
6319 3 0x00010001 # inactive drive
6320 1 0x00010001 # version
6321 0x0106 0x00010001 # gpio num
6322 2 0x00010001 # active func sel
6323 1 0x00010001 # active dir
6324 0 0x00010001 # active pull
6325 3 0x00010001 # active drive
6326 2 0x00010001 # inactive func sel
6327 0 0x00010001 # inactive dir
6328 2 0x00010001 # inactive pull
6329 3 0x00010001 # inactive drive
6330 1 0x00010001 # version
6331 0x0107 0x00010001 # gpio num
6332 2 0x00010001 # active func sel
6333 0 0x00010001 # active dir
6334 0 0x00010001 # active pull
6335 3 0x00010001 # active drive
6336 2 0x00010001 # inactive func sel
6337 0 0x00010001 # inactive dir
6338 2 0x00010001 # inactive pull
6339 3 0x00010001 # inactive drive
6340 1 0x00010001 # version
6341 0x010C 0x00010001 # gpio num
6342 1 0x00010001 # active func sel
6343 1 0x00010001 # active dir
6344 0 0x00010001 # active pull
6345 3 0x00010001 # active drive
6346 1 0x00010001 # inactive func sel
6347 0 0x00010001 # inactive dir
6348 2 0x00010001 # inactive pull
6349 3 0x00010001 # inactive drive
6350 1 0x00010001 # version
6351 0x010D 0x00010001 # gpio num
6352 1 0x00010001 # active func sel
6353 0 0x00010001 # active dir
6354 0 0x00010001 # active pull
6355 3 0x00010001 # active drive
6356 1 0x00010001 # inactive func sel
6357 0 0x00010001 # inactive dir
6358 2 0x00010001 # inactive pull
6359 3 0x00010001 # inactive drive
6360 1 0x00010001 # version
6361 0x010E 0x00010001 # gpio num
6362 1 0x00010001 # active func sel
6363 1 0x00010001 # active dir
6364 0 0x00010001 # active pull
6365 3 0x00010001 # active drive
6366 1 0x00010001 # inactive func sel
6367 0 0x00010001 # inactive dir
6368 2 0x00010001 # inactive pull
6369 3 0x00010001 # inactive drive
6490 1 0x00010001 # version
6491 0x010F 0x00010001 # gpio num
6492 1 0x00010001 # active func sel
6493 0 0x00010001 # active dir
6494 0 0x00010001 # active pull
6495 3 0x00010001 # active drive
6496 1 0x00010001 # inactive func sel
6497 0 0x00010001 # inactive dir
6498 2 0x00010001 # inactive pull
6499 3 0x00010001 # inactive drive
6370 1 0x00010001 # version
6371 0x0110 0x00010001 # gpio num
6372 1 0x00010001 # active func sel
6373 1 0x00010001 # active dir
6374 0 0x00010001 # active pull
6375 3 0x00010001 # active drive
6376 1 0x00010001 # inactive func sel
6377 0 0x00010001 # inactive dir
6378 2 0x00010001 # inactive pull
6379 3 0x00010001 # inactive drive
6380 1 0x00010001 # version
6381 0x0111 0x00010001 # gpio num
6382 1 0x00010001 # active func sel
6383 1 0x00010001 # active dir
6384 0 0x00010001 # active pull
6385 3 0x00010001 # active drive
6386 1 0x00010001 # inactive func sel
6387 0 0x00010001 # inactive dir
6388 2 0x00010001 # inactive pull
6389 3 0x00010001 # inactive drive
#
# SSC GPIO CFG (Used)
#-----------------------------
6420 1 0x00010001 # version
6421 0x0100 0x00010001 # gpio num
6422 1 0x00010001 # active func sel
6423 1 0x00010001 # active dir
6424 0 0x00010001 # active pull
6425 0 0x00010001 # active drive
6426 1 0x00010001 # inactive func sel
6427 0 0x00010001 # inactive dir
6428 2 0x00010001 # inactive pull
6429 0 0x00010001 # inactive drive
6430 1 0x00010001 # version
6431 0x0102 0x00010001 # gpio num
6432 1 0x00010001 # active func sel
6433 1 0x00010001 # active dir
6434 0 0x00010001 # active pull
6435 0 0x00010001 # active drive
6436 1 0x00010001 # inactive func sel
6437 0 0x00010001 # inactive dir
6438 2 0x00010001 # inactive pull
6439 0 0x00010001 # inactive drive
6440 1 0x00010001 # version
6441 0x0103 0x00010001 # gpio num
6442 1 0x00010001 # active func sel
6443 1 0x00010001 # active dir
6444 0 0x00010001 # active pull
6445 0 0x00010001 # active drive
6446 1 0x00010001 # inactive func sel
6447 0 0x00010001 # inactive dir
6448 2 0x00010001 # inactive pull
6449 0 0x00010001 # inactive drive
6450 1 0x00010001 # version
6451 0x0108 0x00010001 # gpio num
6452 1 0x00010001 # active func sel
6453 1 0x00010001 # active dir
6454 0 0x00010001 # active pull
6455 3 0x00010001 # active drive
6456 1 0x00010001 # inactive func sel
6457 0 0x00010001 # inactive dir
6458 2 0x00010001 # inactive pull
6459 3 0x00010001 # inactive drive
6460 1 0x00010001 # version
6461 0x0109 0x00010001 # gpio num
6462 1 0x00010001 # active func sel
6463 1 0x00010001 # active dir
6464 0 0x00010001 # active pull
6465 3 0x00010001 # active drive
6466 1 0x00010001 # inactive func sel
6467 0 0x00010001 # inactive dir
6468 2 0x00010001 # inactive pull
6469 3 0x00010001 # inactive drive
6470 1 0x00010001 # version
6471 0x010A 0x00010001 # gpio num
6472 1 0x00010001 # active func sel
6473 1 0x00010001 # active dir
6474 0 0x00010001 # active pull
6475 3 0x00010001 # active drive
6476 1 0x00010001 # inactive func sel
6477 0 0x00010001 # inactive dir
6478 2 0x00010001 # inactive pull
6479 3 0x00010001 # inactive drive
6480 1 0x00010001 # version
6481 0x010B 0x00010001 # gpio num
6482 1 0x00010001 # active func sel
6483 0 0x00010001 # active dir
6484 0 0x00010001 # active pull
6485 3 0x00010001 # active drive
6486 1 0x00010001 # inactive func sel
6487 0 0x00010001 # inactive dir
6488 2 0x00010001 # inactive pull
6489 3 0x00010001 # inactive drive

View file

@ -1,10 +1,63 @@
persist.sys.whetstone.level=2
video.disable.ubwc=1
persist.vendor.qcomsysd.enabled=1
ro.vendor.extension_library=libqti-perfd-client.so
persist.radio.apm_sim_not_pwdn=1
persist.vendor.radio.sib16_support=1
persist.vendor.radio.custom_ecc=1
persist.vendor.radio.rat_on=combine
persist.radio.schd.cache=3500
ro.frp.pst=/dev/block/bootdevice/by-name/frp
ro.opengles.version=196610
qcom.bluetooth.soc=cherokee
af.fast_track_multiplier=1
vendor.audio_hal.period_size=192
ro.vendor.audio.sdk.fluencetype=none
persist.vendor.audio.fluence.voicecall=true
persist.vendor.audio.fluence.voicerec=false
persist.vendor.audio.fluence.speaker=true
vendor.audio.tunnel.encode=false
persist.vendor.audio.ras.enabled=false
vendor.audio.offload.buffer.size.kb=64
audio.offload.min.duration.secs=30
audio.offload.video=true
vendor.audio.offload.track.enable=false
audio.deep_buffer.media=true
vendor.voice.path.for.pcm.voip=true
vendor.audio.offload.multiaac.enable=true
vendor.audio.dolby.ds2.enabled=false
vendor.audio.dolby.ds2.hardbypass=false
vendor.audio.offload.multiple.enabled=false
vendor.audio.offload.passthrough=false
ro.vendor.audio.sdk.ssr=false
vendor.audio.offload.gapless.enabled=true
vendor.audio.safx.pbe.enabled=true
vendor.audio.parser.ip.buffer.size=262144
vendor.audio.flac.sw.decoder.24bit=true
persist.vendor.bt.a2dp_offload_cap=sbc-aac
vendor.audio.use.sw.alac.decoder=true
vendor.audio.use.sw.ape.decoder=true
vendor.audio.hw.aac.encoder=true
vendor.fm.a2dp.conc.disabled=true
vendor.audio.noisy.broadcast.delay=600
persist.vendor.audio.hifi.int_codec=true
vendor.audio.offload.pstimeout.secs=3
audio.adm.buffering.ms=6
ro.vendor.sensors.facing=false
ro.vendor.sensors.cmc=false
ro.vendor.sdk.sensors.gestures=false
sys.haptic.down.weak=9,11
sys.haptic.down.normal=5,15
sys.haptic.down.strong=0,20
ro.build.version.internal=
ro.build.version.external=
ro.build.version.bsp=0.0.1_180426
ro.build.hardware.version=D7s-1
#
# system.prop for sdm660
#
#rild.libpath=/system/lib/libreference-ril.so
rild.libpath=/system/vendor/lib64/libril-qc-qmi-1.so
#rild.libargs=-d /dev/smd0
persist.rild.nitz_plmn=
persist.rild.nitz_long_ons_0=
persist.rild.nitz_long_ons_1=
@ -21,6 +74,7 @@ DEVICE_PROVISIONED=1
# Set network mode to (T/L/G/W/1X/EVDO, T/G/W/L) for 7+5 mode device on DSDS mode
#
ro.telephony.default_network=22,20
persist.radio.multisim.config=dsds
debug.sf.enable_hwc_vds=1
debug.sf.hw=1
@ -36,6 +90,10 @@ persist.demo.hdmirotationlock=false
#
persist.cne.feature=1
# # system props for the dpm module
persist.dpm.feature=1
#
#system props for the MM modules
media.stagefright.enable-player=true
media.stagefright.enable-http=true
@ -47,7 +105,7 @@ media.aac_51_output_enabled=true
mm.enable.smoothstreaming=true
media.settings.xml=/vendor/etc/media_profiles_vendor.xml
#codecs:(PARSER_)AAC AC3 AMR_NB AMR_WB ASF AVI DTS FLV 3GP 3G2 MKV MP2PS MP2TS MP3 OGG QCP WAV FLAC AIFF APE DSD
mm.enable.qcom_parser=13631487
mm.enable.qcom_parser=13631471
persist.mm.enable.prefetch=true
#property to enable narrow search range for video encoding
@ -75,11 +133,15 @@ persist.timed.enable=true
# system property for maximum number of HFP client connections
bt.max.hfpclient.connections=1
#force disable Bluetooth AAC by default
persist.bt.a2dp.aac_disable=true
# System property for cabl
ro.qualcomm.cabl=2
ro.qualcomm.cabl=0
# add for ad
ro.qcom.ad=1
#ro.qcom.ad.calib.data=/vendor/etc/calib.cfg
ro.qcom.ad.calib.data=/system/etc/calib.cfg
ro.qcom.ad.sensortype=2
#
# System props for telephony
@ -123,9 +185,6 @@ persist.debug.coresight.config=stm-events
##property to choose between virtual/external wfd display
persist.sys.wfd.virtual=0
# system prop for NFC DT
ro.nfc.port=I2C
#property for vendor specific library
ro.vendor.at_library=libqti-at.so
@ -133,19 +192,6 @@ ro.vendor.at_library=libqti-at.so
ro.vendor.qti.core_ctl_min_cpu=2
ro.vendor.qti.core_ctl_max_cpu=4
#hwui properties
ro.hwui.texture_cache_size=72
ro.hwui.layer_cache_size=48
ro.hwui.r_buffer_cache_size=8
ro.hwui.path_cache_size=32
ro.hwui.gradient_cache_size=1
ro.hwui.drop_shadow_cache_size=6
ro.hwui.texture_cache_flushrate=0.4
ro.hwui.text_small_cache_width=1024
ro.hwui.text_small_cache_height=1024
ro.hwui.text_large_cache_width=2048
ro.hwui.text_large_cache_height=2048
#Bringup properties
persist.radio.atfwd.start=true
@ -153,11 +199,11 @@ persist.radio.atfwd.start=true
persist.hwc.enable_vds=1
#Increase cached app limit
ro.vendor.qti.sys.fw.bg_apps_limit=60
#ro.vendor.qti.sys.fw.bg_apps_limit=60
#Settings to enable sensors
#Device Orientation sensor
ro.vendor.sensors.dev_ori=true
ro.vendor.sensors.dev_ori=false
#Persistent Motion Detector
ro.vendor.sensors.pmd=true
#Stationary Detector
@ -166,17 +212,45 @@ ro.vendor.sensors.sta_detect=true
ro.vendor.sensors.mot_detect=true
#Expose aux camera for below packages
camera.aux.packagelist=org.codeaurora.snapcam
camera.aux.packagelist=org.codeaurora.snapcam,com.android.camera,com.qualcomm.qti.qmmi
vendor.camera.aux.packagelist=org.codeaurora.snapcam,com.android.camera,com.qualcomm.qti.qmmi
#disable UBWC for camera
persist.camera.preview.ubwc=0
persist.camera.stats.test=0
persist.camera.depth.focus.cb=0
persist.camera.isp.clock.optmz=0
persist.camera.linkpreview=0
persist.camera.isp.turbo=1
persist.camera.set.afd=4
# Create zram disk
ro.vendor.qti.config.zram=true
#exif info for camera
persist.sys.exif.make=Xiaomi
persist.sys.exif.model=MI 6X
#properties for camera front flash lux
persist.imx376_sunny.low.lux=310
persist.imx376_sunny.light.lux=280
persist.imx376_ofilm.low.lux=310
persist.imx376_ofilm.light.lux=280
#properties for bokeh switch master and slave lux
persist.bokeh.switch.lux=290
#enable aux and dual-cam
persist.camera.expose.aux=1
#set maximum supported adapter voltage
persist.chg.max_volt_mv=9000
#add for dirac algo tsx 9/12
persist.dirac.acs.controller=qem
persist.dirac.acs.storeSettings=1
persist.dirac.acs.ignore_error=1
#set for xiaomi headset effect
ro.audio.soundfx.dirac=true
#Property to enable display default color mode
vendor.display.enable_default_color_mode=1
@ -184,6 +258,20 @@ vendor.display.enable_default_color_mode=1
persist.backup.ntpServer="0.pool.ntp.org"
# enable IZat OptInApp overlay
persist.vendor.overlay.izat.optin=rro
#Disable Skip Validate
sdm.debug.disable_skip_validate=1
#paper mode
sys.paper_mode_max_level=32
sys.tianma_nt36672_offset=12
sys.tianma_nt36672_length=46
sys.jdi_nt36672_offset=9
sys.jdi_nt36672_length=45
#system property determining camera to be used for a Video call
persist.vendor.qti.telephony.vt_cam_interface=1
# enable new autobrightness algo
sys.autobrightness_optimize=true
#enable all system restart_level to relative
persist.sys.ssr.restart_level=ALL_ENABLE

2
vendorsetup.sh Normal file
View file

@ -0,0 +1,2 @@
add_lunch_combo lineage_wayne-userdebug
add_lunch_combo lineage_wayne-eng

17
wifi/WCNSS_qcom_cfg.ini Executable file → Normal file
View file

@ -120,6 +120,7 @@ BandCapability=0
#Channel Bonding
gChannelBondingMode5GHz=1
gChannelBondingMode24GHz=1
#Say gGoKeepAlivePeriod(5 seconds) and gGoLinkMonitorPeriod(10 seconds).
#For every 10 seconds DUT send Qos Null frame(i.e., Keep Alive frame if link
@ -186,7 +187,7 @@ gEnableMCCMode=1
# 3-Force SCC if same band, without SAP restart by sending (E)CSA
# 4-Force SCC if same band (or) use SAP mandatory channel for DBS,
# without SAP restart by sending (E)CSA
gWlanMccToSccSwitchMode = 0
gWlanMccToSccSwitchMode = 3
# 1=enable STBC; 0=disable STBC
gEnableRXSTBC=1
@ -223,7 +224,7 @@ gMaxMediumTime = 6000
gRrmEnable=1
#Enable Power Save offload
gEnablePowerSaveOffload=2
gEnablePowerSaveOffload=1
#Enable firmware uart print
gEnablefwprint=0
@ -434,6 +435,9 @@ ght_mpdu_density=4
# 1 - enable 0 - disable(default)
gEnableFlowSteering=1
#set get linklayer status support
gEnableLLStats=1
################ Datapath feature set End ################
################ NAN feature set start ###################
@ -443,6 +447,15 @@ gEnableFlowSteering=1
gEnableNanSupport=1
################ NAN feature set end #####################
# Enable Packet filters before going into suspend
# will clear those when resume
# bit-0 : drop MAC multicast and IPv4 multicast
# bit-1 : drop MAC unicast and IPv4 multicast
# bit-2 : drop IPv4 broadcast
# bit-3 : drop XID - Exchange station Identification packet
# bit-4 : drop STP - Spanning Tree Protocol
# bit-5 : drop DTP/LLC/CDP
g_enable_packet_filter_bitmap=3
END
# Note: Configuration parser would not read anything past the END marker

1
wifi/p2p_supplicant_overlay.conf Executable file → Normal file
View file

@ -1,3 +1,4 @@
disable_scan_offload=1
p2p_no_group_iface=1
persistent_reconnect=1
p2p_go_intent=15

0
wifi/wpa_supplicant_overlay.conf Executable file → Normal file
View file