diff --git a/Android.mk b/Android.mk
index 877406e..ea616a5 100644
--- a/Android.mk
+++ b/Android.mk
@@ -17,4 +17,101 @@ LOCAL_PATH := $(call my-dir)
ifeq ($(TARGET_DEVICE),miatoll)
include $(call all-makefiles-under,$(LOCAL_PATH))
+
+include $(CLEAR_VARS)
+
+FIRMWARE_MOUNT_POINT := $(TARGET_OUT_VENDOR)/firmware_mnt
+$(FIRMWARE_MOUNT_POINT): $(LOCAL_INSTALLED_MODULE)
+ @echo "Creating $(FIRMWARE_MOUNT_POINT)"
+ @mkdir -p $(TARGET_OUT_VENDOR)/firmware_mnt
+
+BT_FIRMWARE_MOUNT_POINT := $(TARGET_OUT_VENDOR)/bt_firmware
+$(BT_FIRMWARE_MOUNT_POINT): $(LOCAL_INSTALLED_MODULE)
+ @echo "Creating $(BT_FIRMWARE_MOUNT_POINT)"
+ @mkdir -p $(TARGET_OUT_VENDOR)/bt_firmware
+
+DSP_MOUNT_POINT := $(TARGET_OUT_VENDOR)/dsp
+$(DSP_MOUNT_POINT): $(LOCAL_INSTALLED_MODULE)
+ @echo "Creating $(DSP_MOUNT_POINT)"
+ @mkdir -p $(TARGET_OUT_VENDOR)/dsp
+
+ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_MOUNT_POINT) $(BT_FIRMWARE_MOUNT_POINT) $(DSP_MOUNT_POINT)
+
+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 /mnt/vendor/persist/rfs/msm/adsp $@/readwrite
+ $(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared
+ $(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos
+ $(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware
+ $(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
+
+RFS_MSM_CDSP_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/cdsp/
+$(RFS_MSM_CDSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
+ @echo "Creating RFS MSM CDSP folder structure: $@"
+ @rm -rf $@/*
+ @mkdir -p $(dir $@)/readonly/vendor
+ $(hide) ln -sf /data/vendor/tombstones/rfs/cdsp $@/ramdumps
+ $(hide) ln -sf /mnt/vendor/persist/rfs/msm/cdsp $@/readwrite
+ $(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared
+ $(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos
+ $(hide) ln -sf /vendor/firmware_mnt $@/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 /mnt/vendor/persist/rfs/msm/mpss $@/readwrite
+ $(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared
+ $(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos
+ $(hide) ln -sf /vendor/firmware_mnt $@/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 /mnt/vendor/persist/rfs/msm/slpi $@/readwrite
+ $(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared
+ $(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos
+ $(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware
+ $(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
+
+WIFI_FIRMWARE_SYMLINKS := $(TARGET_OUT_VENDOR)/firmware/wlan/qca_cld/
+$(WIFI_FIRMWARE_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
+ @echo "Creating wifi firmware symlinks: $@"
+ mkdir -p $@
+ $(hide) ln -sf /vendor/etc/wifi/WCNSS_qcom_cfg.ini $@/WCNSS_qcom_cfg.ini
+
+ALL_DEFAULT_INSTALLED_MODULES += $(RFS_MSM_ADSP_SYMLINKS) $(RFS_MSM_CDSP_SYMLINKS) $(RFS_MSM_MPSS_SYMLINKS) $(RFS_MSM_SLPI_SYMLINKS)
+ALL_DEFAULT_INSTALLED_MODULES += $(WIFI_FIRMWARE_SYMLINKS)
+
+# Symlinks
+EGL_LIBRARIES := \
+ libEGL_adreno.so \
+ libGLESv2_adreno.so \
+ libq3dtools_adreno.so
+
+EGL_32_SYMLINKS := $(addprefix $(TARGET_OUT_VENDOR)/lib/,$(notdir $(EGL_LIBRARIES)))
+$(EGL_32_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
+ @echo "EGL 32 lib link: $@"
+ @mkdir -p $(dir $@)
+ @rm -rf $@
+ $(hide) ln -sf egl/$(notdir $@) $@
+
+EGL_64_SYMLINKS := $(addprefix $(TARGET_OUT_VENDOR)/lib64/,$(notdir $(EGL_LIBRARIES)))
+$(EGL_64_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
+ @echo "EGL lib link: $@"
+ @mkdir -p $(dir $@)
+ @rm -rf $@
+ $(hide) ln -sf egl/$(notdir $@) $@
+
endif
diff --git a/BoardConfig.mk b/BoardConfig.mk
index 8b719c2..0dc5527 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -4,15 +4,77 @@
# SPDX-License-Identifier: Apache-2.0
#
-# Inherit from sm6250-common
-include device/xiaomi/sm6250-common/BoardConfigCommon.mk
-
DEVICE_PATH := device/xiaomi/miatoll
-# HIDL
-ODM_MANIFEST_SKUS += \
- nfc
+BUILD_BROKEN_DUP_RULES := true
+BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true
+# Architecture
+TARGET_ARCH := arm64
+TARGET_ARCH_VARIANT := armv8-2a
+TARGET_CPU_ABI := arm64-v8a
+TARGET_CPU_ABI2 :=
+TARGET_CPU_VARIANT := cortex-a76
+
+TARGET_2ND_ARCH := arm
+TARGET_2ND_ARCH_VARIANT := armv8-a
+TARGET_2ND_CPU_ABI := armeabi-v7a
+TARGET_2ND_CPU_ABI2 := armeabi
+TARGET_2ND_CPU_VARIANT := cortex-a76
+
+# Audio
+AUDIO_FEATURE_ENABLED_AHAL_EXT := false
+AUDIO_FEATURE_ENABLED_DLKM := true
+AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := false
+AUDIO_FEATURE_ENABLED_DTS_EAGLE := false
+AUDIO_FEATURE_ENABLED_DYNAMIC_LOG := false
+AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true
+AUDIO_FEATURE_ENABLED_GEF_SUPPORT := true
+AUDIO_FEATURE_ENABLED_HW_ACCELERATED_EFFECTS := false
+AUDIO_FEATURE_ENABLED_INSTANCE_ID := true
+AUDIO_FEATURE_ENABLED_PROXY_DEVICE := true
+AUDIO_FEATURE_ENABLED_SSR := true
+AUDIO_FEATURE_ENABLED_SVA_MULTI_STAGE := true
+BOARD_SUPPORTS_OPENSOURCE_STHAL := true
+BOARD_SUPPORTS_SOUND_TRIGGER := true
+BOARD_USES_ALSA_AUDIO := true
+USE_CUSTOM_AUDIO_POLICY := 1
+
+# Bluetooth
+BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(DEVICE_PATH)/bluetooth/include
+
+# Bootloader
+TARGET_BOOTLOADER_BOARD_NAME := atoll
+TARGET_NO_BOOTLOADER := true
+
+# Camera
+TARGET_DISABLED_UBWC := true
+
+# Display
+TARGET_SCREEN_DENSITY := 440
+TARGET_USES_COLOR_METADATA := true
+TARGET_USES_DISPLAY_RENDER_INTENTS := true
+TARGET_USES_DRM_PP := true
+TARGET_USES_GRALLOC1 := true
+TARGET_USES_GRALLOC4 := true
+TARGET_USES_HWC2 := true
+TARGET_USES_ION := true
+
+# Filesystem
+TARGET_FS_CONFIG_GEN := $(DEVICE_PATH)/config.fs
+
+# FM
+BOARD_HAVE_QCOM_FM := true
+
+# HIDL
+DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE := \
+ hardware/qcom-caf/common/vendor_framework_compatibility_matrix.xml \
+ $(DEVICE_PATH)/device_framework_matrix.xml \
+ $(DEVICE_PATH)/lineage_device_framework_matrix.xml
+DEVICE_MATRIX_FILE := $(DEVICE_PATH)/compatibility_matrix.xml
+DEVICE_MANIFEST_FILE := $(DEVICE_PATH)/manifest.xml
+
+ODM_MANIFEST_SKUS += nfc
ODM_MANIFEST_NFC_FILES := $(DEVICE_PATH)/manifest_nfc.xml
# Init
@@ -20,10 +82,134 @@ TARGET_INIT_VENDOR_LIB := //$(DEVICE_PATH):init_xiaomi_miatoll
TARGET_RECOVERY_DEVICE_MODULES := init_xiaomi_miatoll
# Kernel
+BOARD_KERNEL_BASE := 0x00000000
+BOARD_KERNEL_IMAGE_NAME := Image
+BOARD_KERNEL_PAGESIZE := 4096
+BOARD_KERNEL_SEPARATED_DTBO := true
+
+BOARD_BOOT_HEADER_VERSION := 2
+BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
+BOARD_INCLUDE_DTB_IN_BOOTIMG := true
+
+TARGET_KERNEL_ADDITIONAL_FLAGS += LD=ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump
TARGET_KERNEL_CONFIG := vendor/xiaomi/miatoll_defconfig
+TARGET_KERNEL_SOURCE := kernel/xiaomi/sm6250
+
+BOARD_KERNEL_CMDLINE := androidboot.console=ttyMSM0
+BOARD_KERNEL_CMDLINE += androidboot.hardware=qcom
+BOARD_KERNEL_CMDLINE += androidboot.memcg=1
+BOARD_KERNEL_CMDLINE += androidboot.usbcontroller=a600000.dwc3
+BOARD_KERNEL_CMDLINE += cgroup.memory=nokmem,nosocket
+BOARD_KERNEL_CMDLINE += console=ttyMSM0,115200n8
+BOARD_KERNEL_CMDLINE += earlycon=msm_geni_serial,0xa88000
+BOARD_KERNEL_CMDLINE += loop.max_part=7
+BOARD_KERNEL_CMDLINE += lpm_levels.sleep_disabled=1
+BOARD_KERNEL_CMDLINE += msm_rtb.enabled=1
+BOARD_KERNEL_CMDLINE += msm_rtb.filter=0x237
+BOARD_KERNEL_CMDLINE += service_locator.enable=1
+BOARD_KERNEL_CMDLINE += swiotlb=1
+BOARD_KERNEL_CMDLINE += video=vfb:640x400,bpp=32,memsize=3072000
# OTA assert
TARGET_OTA_ASSERT_DEVICE := curtana,excalibur,gram,joyeuse,miatoll
+# Partitions
+BOARD_BOOTIMAGE_PARTITION_SIZE := 134217728
+BOARD_CACHEIMAGE_PARTITION_SIZE := 402653184
+BOARD_DTBOIMG_PARTITION_SIZE := 8388608
+BOARD_RECOVERYIMAGE_PARTITION_SIZE := 134217728
+BOARD_SUPER_PARTITION_SIZE := 8589934592
+BOARD_USERDATAIMAGE_PARTITION_SIZE := 112421842944
+
+BOARD_SUPER_PARTITION_GROUPS := qti_dynamic_partitions
+BOARD_QTI_DYNAMIC_PARTITIONS_PARTITION_LIST := system system_ext vendor product
+BOARD_QTI_DYNAMIC_PARTITIONS_SIZE := 8585740288
+
+BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
+BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4
+BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4
+BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := ext4
+BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs
+BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
+
+BOARD_PRODUCTIMAGE_EXTFS_INODE_COUNT := -1
+BOARD_PRODUCTIMAGE_PARTITION_RESERVED_SIZE := 1887436800
+BOARD_SYSTEMIMAGE_EXTFS_INODE_COUNT := -1
+BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE := 1887436800
+BOARD_SYSTEM_EXTIMAGE_EXTFS_INODE_COUNT := -1
+BOARD_SYSTEM_EXTIMAGE_PARTITION_RESERVED_SIZE := 104857600
+BOARD_VENDORIMAGE_PARTITION_RESERVED_SIZE := 104857600
+
+TARGET_COPY_OUT_SYSTEM_EXT := system_ext
+TARGET_COPY_OUT_VENDOR := vendor
+TARGET_COPY_OUT_PRODUCT := product
+
+BOARD_USES_METADATA_PARTITION := true
+
+BOARD_FLASH_BLOCK_SIZE := 131072
+
+# Platform
+BOARD_USES_QCOM_HARDWARE := true
+BOARD_VENDOR := xiaomi
+TARGET_BOARD_PLATFORM := atoll
+
+# Power
+TARGET_TAP_TO_WAKE_NODE := "/sys/touchpanel/double_tap"
+
+# Properties
+TARGET_ODM_PROP += $(DEVICE_PATH)/odm.prop
+TARGET_SYSTEM_PROP += $(DEVICE_PATH)/system.prop
+TARGET_VENDOR_PROP += $(DEVICE_PATH)/vendor.prop
+
+# Recovery
+BOARD_INCLUDE_RECOVERY_DTBO := true
+TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/rootdir/etc/fstab.qcom
+TARGET_RECOVERY_PIXEL_FORMAT := "RGBX_8888"
+TARGET_USERIMAGES_USE_EXT4 := true
+TARGET_USERIMAGES_USE_F2FS := true
+
+# Releasetools
+TARGET_RELEASETOOLS_EXTENSIONS := $(DEVICE_PATH)
+
+# RIL
+ENABLE_VENDOR_RIL_SERVICE := true
+
+# Security patch level
+VENDOR_SECURITY_PATCH := 2022-06-05
+
+# Sepolicy
+include device/qcom/sepolicy_vndr/SEPolicy.mk
+SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/private
+BOARD_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/vendor
+
+# Verified Boot
+BOARD_AVB_ENABLE := true
+BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --flags 3
+BOARD_AVB_RECOVERY_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem
+BOARD_AVB_RECOVERY_ALGORITHM := SHA256_RSA4096
+BOARD_AVB_RECOVERY_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
+BOARD_AVB_RECOVERY_ROLLBACK_INDEX_LOCATION := 1
+BOARD_AVB_VBMETA_SYSTEM := system system_ext product
+BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem
+BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA4096
+BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
+BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 1
+
+# WiFi
+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)
+QC_WIFI_HIDL_FEATURE_DUAL_AP := true
+WIFI_DRIVER_DEFAULT := qca_cld3
+WIFI_DRIVER_STATE_CTRL_PARAM := "/dev/wlan"
+WIFI_DRIVER_STATE_OFF := "OFF"
+WIFI_DRIVER_STATE_ON := "ON"
+WIFI_HIDL_FEATURE_AWARE := true
+WIFI_HIDL_FEATURE_DUAL_INTERFACE := true
+WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY := true
+WPA_SUPPLICANT_VERSION := VER_0_8_X
+
# Inherit proprietary blobs
include vendor/xiaomi/miatoll/BoardConfigVendor.mk
diff --git a/audio/audio_effects.xml b/audio/audio_effects.xml
new file mode 100644
index 0000000..add0925
--- /dev/null
+++ b/audio/audio_effects.xml
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/audio/audio_io_policy.conf b/audio/audio_io_policy.conf
new file mode 100644
index 0000000..0f1f93e
--- /dev/null
+++ b/audio/audio_io_policy.conf
@@ -0,0 +1,126 @@
+# 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
+ }
+ proaudio {
+ flags AUDIO_OUTPUT_FLAG_FAST|AUDIO_OUTPUT_FLAG_RAW
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 48000
+ bit_width 16
+ app_type 69943
+ }
+ voip_rx {
+ flags AUDIO_OUTPUT_FLAG_VOIP_RX|AUDIO_OUTPUT_FLAG_DIRECT
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 8000|16000|32000|48000
+ bit_width 16
+ app_type 69946
+ }
+ 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_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
+ }
+}
+
+inputs {
+ record_16bit {
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 8000|16000|32000|44100|48000|88200|96000|176400|192000
+ bit_width 16
+ app_type 69938
+ }
+ record_24bit {
+ formats AUDIO_FORMAT_PCM_24_BIT_PACKED|AUDIO_FORMAT_PCM_24_BIT
+ sampling_rates 44100|48000|88200|96000|176400|192000
+ bit_width 24
+ app_type 69948
+ }
+ record_32bit {
+ formats AUDIO_FORMAT_PCM_32_BIT|AUDIO_FORMAT_PCM_FLOAT
+ sampling_rates 44100|48000|88200|96000|176400|192000
+ bit_width 32
+ app_type 69949
+ }
+ record_compress_16 {
+ flags AUDIO_INPUT_FLAG_COMPRESS
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 8000|16000|32000|44100|48000|88200|96000|176400|192000
+ bit_width 16
+ app_type 69938
+ }
+ record_compress_24 {
+ flags AUDIO_INPUT_FLAG_COMPRESS
+ formats AUDIO_FORMAT_PCM_24_BIT_PACKED|AUDIO_FORMAT_PCM_24_BIT
+ sampling_rates 44100|48000|88200|96000|176400|192000
+ bit_width 24
+ app_type 69948
+ }
+ record_compress_32 {
+ flags AUDIO_INPUT_FLAG_COMPRESS
+ formats AUDIO_FORMAT_PCM_32_BIT|AUDIO_FORMAT_PCM_FLOAT
+ sampling_rates 44100|48000|88200|96000|176400|192000
+ bit_width 32
+ app_type 69949
+ }
+}
diff --git a/audio/audio_platform_info_intcodec.xml b/audio/audio_platform_info_intcodec.xml
new file mode 100644
index 0000000..009f1ec
--- /dev/null
+++ b/audio/audio_platform_info_intcodec.xml
@@ -0,0 +1,407 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/audio/audio_policy_configuration.xml b/audio/audio_policy_configuration.xml
new file mode 100644
index 0000000..65f95ff
--- /dev/null
+++ b/audio/audio_policy_configuration.xml
@@ -0,0 +1,466 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ - Earpiece
+ - Speaker
+ - Telephony Tx
+ - Built-In Mic
+ - Built-In Back Mic
+ - FM Tuner
+ - Telephony Rx
+
+ Speaker
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/audio/mixer_paths_wcd937x.xml b/audio/mixer_paths_wcd937x.xml
new file mode 100644
index 0000000..dc4c5f8
--- /dev/null
+++ b/audio/mixer_paths_wcd937x.xml
@@ -0,0 +1,3939 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/audio/sound_trigger_mixer_paths.xml b/audio/sound_trigger_mixer_paths.xml
new file mode 100644
index 0000000..7ae3fb1
--- /dev/null
+++ b/audio/sound_trigger_mixer_paths.xml
@@ -0,0 +1,336 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/audio/sound_trigger_platform_info.xml b/audio/sound_trigger_platform_info.xml
new file mode 100644
index 0000000..317f22b
--- /dev/null
+++ b/audio/sound_trigger_platform_info.xml
@@ -0,0 +1,374 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bluetooth/include/bdroid_buildcfg.h b/bluetooth/include/bdroid_buildcfg.h
new file mode 100644
index 0000000..5376040
--- /dev/null
+++ b/bluetooth/include/bdroid_buildcfg.h
@@ -0,0 +1,31 @@
+/*
+ * 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
+ * Copyright (C) 2018, 2022 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.
+ */
+
+#ifndef _BDROID_BUILDCFG_H
+#define _BDROID_BUILDCFG_H
+
+// Disables read remote device feature
+#define MAX_ACL_CONNECTIONS 16
+#define MAX_L2CAP_CHANNELS 16
+#define BLE_VND_INCLUDED TRUE
+/* Increasing SEPs to 12 from 6 to support SHO/MCast i.e. two streams per codec */
+#define AVDT_NUM_SEPS 12
+#endif
diff --git a/compatibility_matrix.xml b/compatibility_matrix.xml
new file mode 100644
index 0000000..7c505a8
--- /dev/null
+++ b/compatibility_matrix.xml
@@ -0,0 +1,82 @@
+
+
+ android.frameworks.schedulerservice
+ 1.0
+
+ ISchedulingPolicyService
+ default
+
+
+
+ android.frameworks.sensorservice
+ 1.0
+
+ ISensorManager
+ default
+
+
+
+ android.hidl.allocator
+ 1.0
+
+ IAllocator
+ ashmem
+
+
+
+ android.hidl.manager
+ 1.0
+
+ IServiceManager
+ default
+
+
+
+ android.hidl.memory
+ 1.0
+
+ IMapper
+ ashmem
+
+
+
+ android.hidl.token
+ 1.0
+
+ ITokenManager
+ default
+
+
+
+ android.system.wifi.keystore
+ 1.0
+
+ IKeystore
+ default
+
+
+
+ vendor.qti.hardware.qccsyshal
+ 1.0
+
+ IQccsyshal
+ qccsyshal
+
+
+
+ vendor.qti.hardware.sigma_miracast
+ 1.0
+
+ Isigma_miracast
+ sigmahal
+
+
+
+ vendor.qti.hardware.wifi.keystore
+ 1.0
+
+ IKeystoreExt
+ default
+
+
+
diff --git a/config.fs b/config.fs
new file mode 100644
index 0000000..04d83f6
--- /dev/null
+++ b/config.fs
@@ -0,0 +1,92 @@
+[AID_VENDOR_QTI_DIAG]
+value:2901
+
+[AID_VENDOR_QDSS]
+value:2902
+
+[AID_VENDOR_RFS]
+value:2903
+
+[AID_VENDOR_RFS_SHARED]
+value:2904
+
+[AID_VENDOR_ADPL_ODL]
+value:2905
+
+[AID_VENDOR_QRTR]
+value:2906
+
+[AID_VENDOR_THERMAL]
+value:2907
+
+[vendor/bin/hw/android.hardware.bluetooth@1.0-service-qti]
+mode: 0755
+user: AID_BLUETOOTH
+group: AID_BLUETOOTH
+caps: BLOCK_SUSPEND NET_ADMIN
+
+[vendor/bin/pm-service]
+mode: 0755
+user: AID_SYSTEM
+group: AID_SYSTEM
+caps: NET_BIND_SERVICE SYS_BOOT
+
+[vendor/bin/pd-mapper]
+mode: 0755
+user: AID_SYSTEM
+group: AID_SYSTEM
+caps: NET_BIND_SERVICE
+
+[vendor/bin/imsdatadaemon]
+mode: 0755
+user: AID_RADIO
+group: AID_RADIO
+caps: NET_BIND_SERVICE
+
+[vendor/bin/ims_rtp_daemon]
+mode: 0755
+user: AID_RADIO
+group: AID_RADIO
+caps: NET_BIND_SERVICE
+
+[vendor/bin/imsrcsd]
+mode: 0755
+user: AID_RADIO
+group: AID_RADIO
+caps: NET_BIND_SERVICE BLOCK_SUSPEND WAKE_ALARM
+
+[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
+
+[vendor/bin/loc_launcher]
+mode: 0755
+user: AID_GPS
+group: AID_GPS
+caps: SETUID SETGID
+
+[vendor/bin/xtwifi-client]
+mode: 0755
+user: AID_GPS
+group: AID_GPS
+caps: NET_BIND_SERVICE BLOCK_SUSPEND WAKE_ALARM
+
+[vendor/bin/sensors.qti]
+mode: 0755
+user: AID_SYSTEM
+group: AID_SYSTEM
+caps: NET_BIND_SERVICE
+
+[vendor/firmware_mnt/image/*]
+mode: 0771
+user: AID_SYSTEM
+group: AID_SYSTEM
+caps: 0
diff --git a/configs/component-overrides.xml b/configs/component-overrides.xml
new file mode 100644
index 0000000..f0d6b4e
--- /dev/null
+++ b/configs/component-overrides.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
diff --git a/configs/excluded-input-devices.xml b/configs/excluded-input-devices.xml
new file mode 100644
index 0000000..6f110ae
--- /dev/null
+++ b/configs/excluded-input-devices.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/configs/powerhint.json b/configs/powerhint.json
new file mode 100644
index 0000000..9bddfb7
--- /dev/null
+++ b/configs/powerhint.json
@@ -0,0 +1,354 @@
+{
+ "Nodes": [
+ {
+ "Name": "CPULittleClusterMaxFreq",
+ "Path": "/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq",
+ "Values": [
+ "9999999",
+ "1324800"
+ ],
+ "DefaultIndex": 0,
+ "ResetOnInit": true
+ },
+ {
+ "Name": "CPULittleClusterMinFreq",
+ "Path": "/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq",
+ "Values": [
+ "9999999",
+ "1708800",
+ "1324800",
+ "576000"
+ ],
+ "ResetOnInit": true
+ },
+ {
+ "Name": "CPUBigClusterMaxFreq",
+ "Path": "/sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq",
+ "Values": [
+ "9999999",
+ "1555200"
+ ],
+ "DefaultIndex": 0,
+ "ResetOnInit": true
+ },
+ {
+ "Name": "CPUBigClusterMinFreq",
+ "Path": "/sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq",
+ "Values": [
+ "9999999",
+ "1900800",
+ "825600",
+ "652800"
+ ],
+ "ResetOnInit": true
+ },
+ {
+ "Name": "GPUMaxFreq",
+ "Path": "/sys/class/kgsl/kgsl-3d0/max_pwrlevel",
+ "Values": [
+ "0",
+ "3"
+ ],
+ "DefaultIndex": 0,
+ "ResetOnInit": true
+ },
+ {
+ "Name": "GPUMinFreq",
+ "Path": "/sys/class/kgsl/kgsl-3d0/min_pwrlevel",
+ "Values": [
+ "0",
+ "5"
+ ],
+ "ResetOnInit": true
+ },
+ {
+ "Name": "GPUForceRailOn",
+ "Path": "/sys/class/kgsl/kgsl-3d0/force_rail_on",
+ "Values": [
+ "1",
+ "0"
+ ],
+ "ResetOnInit": true
+ },
+ {
+ "Name": "GPUForceClkOn",
+ "Path": "/sys/class/kgsl/kgsl-3d0/force_clk_on",
+ "Values": [
+ "1",
+ "0"
+ ],
+ "ResetOnInit": true
+ },
+ {
+ "Name": "GPUIdleTimer",
+ "Path": "/sys/class/kgsl/kgsl-3d0/idle_timer",
+ "Values": [
+ "10000",
+ "80"
+ ],
+ "ResetOnInit": true
+ },
+ {
+ "Name": "CPUBWHystTriggerCount",
+ "Path": "/sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/hyst_trigger_count",
+ "Values": [
+ "0",
+ "3"
+ ],
+ "ResetOnInit": true
+ },
+ {
+ "Name": "CPUBWHistMemory",
+ "Path": "/sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/hist_memory",
+ "Values": [
+ "0",
+ "20"
+ ],
+ "ResetOnInit": true
+ },
+ {
+ "Name": "CPUBWHystLength",
+ "Path": "/sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/hyst_length",
+ "Values": [
+ "0",
+ "10"
+ ],
+ "ResetOnInit": true
+ },
+ {
+ "Name": "CPUBWMinFreq",
+ "Path": "/sys/class/devfreq/soc:qcom,cpu-cpu-llcc-bw/min_freq",
+ "Values": [
+ "14236",
+ "9155",
+ "4577"
+ ],
+ "ResetOnInit": true
+ },
+ {
+ "Name": "LLCCBWMinFreq",
+ "Path": "/sys/class/devfreq/soc:qcom,cpu-llcc-ddr-bw/min_freq",
+ "Values": [
+ "6881",
+ "2929",
+ "1144"
+ ],
+ "ResetOnInit": true
+ },
+ {
+ "Name": "L3LittleClusterMinFreq",
+ "Path": "/sys/class/devfreq/soc:qcom,cpu0-cpu-l3-lat/min_freq",
+ "Values": [
+ "1459200000",
+ "300000000"
+ ],
+ "ResetOnInit": true
+ },
+ {
+ "Name": "L3BigClusterMinFreq",
+ "Path": "/sys/class/devfreq/soc:qcom,cpu6-cpu-l3-lat/min_freq",
+ "Values": [
+ "1459200000",
+ "300000000"
+ ],
+ "ResetOnInit": true
+ },
+ {
+ "Name": "PowerHALMainState",
+ "Path": "vendor.powerhal.state",
+ "Values": [
+ "SUSTAINED_PERFORMANCE",
+ ""
+ ],
+ "Type": "Property"
+ },
+ {
+ "Name": "PowerHALAudioState",
+ "Path": "vendor.powerhal.audio",
+ "Values": [
+ "AUDIO_STREAMING_LOW_LATENCY",
+ ""
+ ],
+ "Type": "Property"
+ },
+ {
+ "Name": "PowerHALRenderingState",
+ "Path": "vendor.powerhal.rendering",
+ "Values": [
+ "EXPENSIVE_RENDERING",
+ ""
+ ],
+ "Type": "Property"
+ }
+ ],
+ "Actions": [
+ {
+ "PowerHint": "SUSTAINED_PERFORMANCE",
+ "Node": "PowerHALMainState",
+ "Duration": 0,
+ "Value": "SUSTAINED_PERFORMANCE"
+ },
+ {
+ "PowerHint": "SUSTAINED_PERFORMANCE",
+ "Node": "CPUBigClusterMaxFreq",
+ "Duration": 0,
+ "Value": "1555200"
+ },
+ {
+ "PowerHint": "SUSTAINED_PERFORMANCE",
+ "Node": "CPULittleClusterMaxFreq",
+ "Duration": 0,
+ "Value": "1324800"
+ },
+ {
+ "PowerHint": "SUSTAINED_PERFORMANCE",
+ "Node": "GPUMaxFreq",
+ "Duration": 0,
+ "Value": "3"
+ },
+ {
+ "PowerHint": "INTERACTION",
+ "Node": "CPUBigClusterMinFreq",
+ "Duration": 0,
+ "Value": "825600"
+ },
+ {
+ "PowerHint": "INTERACTION",
+ "Node": "CPULittleClusterMinFreq",
+ "Duration": 0,
+ "Value": "1324800"
+ },
+ {
+ "PowerHint": "INTERACTION",
+ "Node": "CPUBWHystTriggerCount",
+ "Duration": 0,
+ "Value": "0"
+ },
+ {
+ "PowerHint": "INTERACTION",
+ "Node": "CPUBWHystLength",
+ "Duration": 0,
+ "Value": "0"
+ },
+ {
+ "PowerHint": "INTERACTION",
+ "Node": "CPUBWHistMemory",
+ "Duration": 0,
+ "Value": "0"
+ },
+ {
+ "PowerHint": "INTERACTION",
+ "Node": "CPUBWMinFreq",
+ "Duration": 0,
+ "Value": "9155"
+ },
+ {
+ "PowerHint": "INTERACTION",
+ "Node": "LLCCBWMinFreq",
+ "Duration": 0,
+ "Value": "2929"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Node": "CPUBigClusterMaxFreq",
+ "Duration": 5000,
+ "Value": "9999999"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Node": "CPUBigClusterMinFreq",
+ "Duration": 5000,
+ "Value": "1900800"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Node": "CPULittleClusterMinFreq",
+ "Duration": 5000,
+ "Value": "1708800"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Node": "CPUBWHystTriggerCount",
+ "Duration": 5000,
+ "Value": "0"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Node": "CPUBWHystLength",
+ "Duration": 5000,
+ "Value": "0"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Node": "CPUBWHistMemory",
+ "Duration": 5000,
+ "Value": "0"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Node": "CPUBWMinFreq",
+ "Duration": 5000,
+ "Value": "14236"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Node": "GPUForceClkOn",
+ "Duration": 5000,
+ "Value": "1"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Node": "GPUForceRailOn",
+ "Duration": 5000,
+ "Value": "1"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Node": "GPUIdleTimer",
+ "Duration": 5000,
+ "Value": "10000"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Node": "LLCCBWMinFreq",
+ "Duration": 5000,
+ "Value": "6881"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Node": "L3LittleClusterMinFreq",
+ "Duration": 5000,
+ "Value": "1459200000"
+ },
+ {
+ "PowerHint": "LAUNCH",
+ "Node": "L3BigClusterMinFreq",
+ "Duration": 5000,
+ "Value": "1459200000"
+ },
+ {
+ "PowerHint": "AUDIO_STREAMING_LOW_LATENCY",
+ "Node": "PowerHALAudioState",
+ "Duration": 0,
+ "Value": "AUDIO_STREAMING_LOW_LATENCY"
+ },
+ {
+ "PowerHint": "EXPENSIVE_RENDERING",
+ "Node": "PowerHALRenderingState",
+ "Duration": 0,
+ "Value": "EXPENSIVE_RENDERING"
+ },
+ {
+ "PowerHint": "EXPENSIVE_RENDERING",
+ "Node": "GPUMinFreq",
+ "Duration": 0,
+ "Value": "0"
+ },
+ {
+ "PowerHint": "EXPENSIVE_RENDERING",
+ "Node": "GPUMaxFreq",
+ "Duration": 0,
+ "Value": "0"
+ }
+ ]
+}
diff --git a/configs/thermal_info_config.json b/configs/thermal_info_config.json
new file mode 100644
index 0000000..4b176e8
--- /dev/null
+++ b/configs/thermal_info_config.json
@@ -0,0 +1,242 @@
+{
+ "Sensors":[
+ {
+ "Name":"cpu-0-0-usr",
+ "Type":"CPU",
+ "HotThreshold":[
+ "NAN",
+ "NAN",
+ "NAN",
+ 95.0,
+ "NAN",
+ "NAN",
+ 125.0
+ ],
+ "VrThreshold":"NAN",
+ "Multiplier":0.001
+ },
+ {
+ "Name":"cpu-0-1-usr",
+ "Type":"CPU",
+ "HotThreshold":[
+ "NAN",
+ "NAN",
+ "NAN",
+ 95.0,
+ "NAN",
+ "NAN",
+ 125.0
+ ],
+ "VrThreshold":"NAN",
+ "Multiplier":0.001
+ },
+ {
+ "Name":"cpu-0-2-usr",
+ "Type":"CPU",
+ "HotThreshold":[
+ "NAN",
+ "NAN",
+ "NAN",
+ 95.0,
+ "NAN",
+ "NAN",
+ 125.0
+ ],
+ "VrThreshold":"NAN",
+ "Multiplier":0.001
+ },
+ {
+ "Name":"cpu-0-3-usr",
+ "Type":"CPU",
+ "HotThreshold":[
+ "NAN",
+ "NAN",
+ "NAN",
+ 95.0,
+ "NAN",
+ "NAN",
+ 125.0
+ ],
+ "VrThreshold":"NAN",
+ "Multiplier":0.001
+ },
+ {
+ "Name":"cpu-0-4-usr",
+ "Type":"CPU",
+ "HotThreshold":[
+ "NAN",
+ "NAN",
+ "NAN",
+ 95.0,
+ "NAN",
+ "NAN",
+ 125.0
+ ],
+ "VrThreshold":"NAN",
+ "Multiplier":0.001
+ },
+ {
+ "Name":"cpu-0-5-usr",
+ "Type":"CPU",
+ "HotThreshold":[
+ "NAN",
+ "NAN",
+ "NAN",
+ 95.0,
+ "NAN",
+ "NAN",
+ 125.0
+ ],
+ "VrThreshold":"NAN",
+ "Multiplier":0.001
+ },
+ {
+ "Name":"cpu-1-0-usr",
+ "Type":"CPU",
+ "HotThreshold":[
+ "NAN",
+ "NAN",
+ "NAN",
+ 95.0,
+ "NAN",
+ "NAN",
+ 125.0
+ ],
+ "VrThreshold":"NAN",
+ "Multiplier":0.001
+ },
+ {
+ "Name":"cpu-1-1-usr",
+ "Type":"CPU",
+ "HotThreshold":[
+ "NAN",
+ "NAN",
+ "NAN",
+ 95.0,
+ "NAN",
+ "NAN",
+ 125.0
+ ],
+ "VrThreshold":"NAN",
+ "Multiplier":0.001
+ },
+ {
+ "Name":"cpu-1-2-usr",
+ "Type":"CPU",
+ "HotThreshold":[
+ "NAN",
+ "NAN",
+ "NAN",
+ 95.0,
+ "NAN",
+ "NAN",
+ 125.0
+ ],
+ "VrThreshold":"NAN",
+ "Multiplier":0.001
+ },
+ {
+ "Name":"cpu-1-3-usr",
+ "Type":"CPU",
+ "HotThreshold":[
+ "NAN",
+ "NAN",
+ "NAN",
+ 95.0,
+ "NAN",
+ "NAN",
+ 125.0
+ ],
+ "VrThreshold":"NAN",
+ "Multiplier":0.001
+ },
+ {
+ "Name":"gpuss-0-usr",
+ "Type":"GPU",
+ "HotThreshold":[
+ "NAN",
+ "NAN",
+ "NAN",
+ 95.0,
+ "NAN",
+ "NAN",
+ 125.0
+ ],
+ "VrThreshold":"NAN",
+ "Multiplier":0.001
+ },
+ {
+ "Name":"gpuss-1-usr",
+ "Type":"GPU",
+ "HotThreshold":[
+ "NAN",
+ "NAN",
+ "NAN",
+ 95.0,
+ "NAN",
+ "NAN",
+ 125.0
+ ],
+ "VrThreshold":"NAN",
+ "Multiplier":0.001
+ },
+ {
+ "Name":"battery",
+ "Type":"BATTERY",
+ "HotThreshold":[
+ "NAN",
+ "NAN",
+ "NAN",
+ "NAN",
+ "NAN",
+ "NAN",
+ 60.0
+ ],
+ "VrThreshold":"NAN",
+ "Multiplier":0.001
+ },
+ {
+ "Name":"quiet-therm-usr",
+ "Type":"SKIN",
+ "HotThreshold":[
+ "NAN",
+ 43.0,
+ 45.0,
+ 48.0,
+ 50.0,
+ 54.0,
+ 58.0
+ ],
+ "HotHysteresis":[
+ 0.0,
+ 1.9,
+ 1.9,
+ 1.9,
+ 1.9,
+ 1.9,
+ 1.9
+ ],
+ "VrThreshold":"NAN",
+ "Multiplier":0.001,
+ "Monitor":true
+ }
+ ],
+ "CoolingDevices":[
+ {
+ "Name":"thermal-cpufreq-0",
+ "Type":"CPU"
+ },
+ {
+ "Name":"thermal-cpufreq-7",
+ "Type":"CPU"
+ },
+ {
+ "Name":"thermal-devfreq-0",
+ "Type":"GPU"
+ },
+ {
+ "Name":"battery",
+ "Type":"BATTERY"
+ }
+ ]
+}
diff --git a/device.mk b/device.mk
index 6a2fc06..787b2bb 100644
--- a/device.mk
+++ b/device.mk
@@ -4,8 +4,233 @@
# SPDX-License-Identifier: Apache-2.0
#
-# Inherit from sm6250-common
-$(call inherit-product, device/xiaomi/sm6250-common/atoll.mk)
+# Enable project quotas and casefolding for emulated storage without sdcardfs
+$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)
+
+# Enable updating of APEXes
+$(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk)
+
+# Include GSI keys
+$(call inherit-product, $(SRC_TARGET_DIR)/product/gsi_keys.mk)
+
+# Setup dalvik vm configs
+$(call inherit-product, frameworks/native/build/phone-xhdpi-4096-dalvik-heap.mk)
+
+# AAPT
+PRODUCT_AAPT_CONFIG := normal
+PRODUCT_AAPT_PREF_CONFIG := xxhdpi
+
+# Audio
+PRODUCT_PACKAGES += \
+ android.hardware.audio@6.0-impl \
+ android.hardware.audio.effect@6.0-impl \
+ android.hardware.audio.service \
+ android.hardware.bluetooth.audio@2.1-impl \
+ android.hardware.soundtrigger@2.2-impl
+
+PRODUCT_PACKAGES += \
+ audio.bluetooth.default \
+ audio.primary.atoll \
+ audio.r_submix.default \
+ audio.usb.default \
+
+PRODUCT_PACKAGES += \
+ liba2dpoffload \
+ libbatterylistener \
+ libcomprcapture \
+ libexthwplugin \
+ libhdmiedid \
+ libhfp \
+ libqcompostprocbundle \
+ libqcomvisualizer \
+ libqcomvoiceprocessing \
+ libsndmonitor \
+ libspkrprot \
+ libssrec \
+ libvolumelistener \
+ sound_trigger.primary.atoll:32
+
+PRODUCT_COPY_FILES += \
+ $(call find-copy-subdir-files,*,$(LOCAL_PATH)/audio/,$(TARGET_COPY_OUT_VENDOR)/etc)
+
+PRODUCT_COPY_FILES += \
+ frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
+ frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
+ frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml
+
+# Bluetooth
+PRODUCT_PACKAGES += \
+ android.hardware.bluetooth@1.1.vendor \
+ vendor.qti.hardware.bluetooth_audio@2.1.vendor \
+ vendor.qti.hardware.btconfigstore@1.0.vendor \
+ vendor.qti.hardware.btconfigstore@2.0.vendor
+
+# Camera
+PRODUCT_PACKAGES += \
+ android.hardware.camera.provider@2.4-impl \
+ android.hardware.camera.provider@2.4-service_64 \
+ vendor.qti.hardware.camera.device@1.0.vendor
+
+PRODUCT_PACKAGES += \
+ libMegviiFacepp-0.5.2 \
+ libmegface
+
+PRODUCT_PACKAGES += \
+ libcamera2ndk_vendor \
+ libdng_sdk.vendor \
+ libgui_vendor \
+ libstdc++.vendor
+
+# Component overrides
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/configs/component-overrides.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sysconfig/component-overrides.xml
+
+# DebugFS
+PRODUCT_SET_DEBUGFS_RESTRICTIONS := true
+
+# Display
+PRODUCT_PACKAGES += \
+ android.hardware.graphics.composer@2.4-impl \
+ android.hardware.graphics.composer@2.4-service
+
+PRODUCT_PACKAGES += \
+ android.hardware.graphics.mapper@3.0-impl-qti-display \
+ android.hardware.graphics.mapper@4.0-impl-qti-display
+
+PRODUCT_PACKAGES += \
+ android.hardware.memtrack@1.0-impl \
+ android.hardware.memtrack@1.0-service \
+ memtrack.atoll
+
+PRODUCT_PACKAGES += \
+ disable_configstore \
+ gralloc.atoll \
+ hwcomposer.atoll \
+ libdisplayconfig.qti \
+ libdisplayconfig.system.qti \
+ libqdMetaData \
+ libqdMetaData.system \
+ libsdmcore \
+ libsdmutils \
+ libtinyxml \
+ libvulkan \
+ vendor.display.config@1.5 \
+ vendor.display.config@1.11.vendor \
+ vendor.display.config@2.0 \
+ vendor.display.config@2.0.vendor \
+ vendor.qti.hardware.display.allocator-service \
+ vendor.qti.hardware.display.mapper@1.1.vendor \
+ vendor.qti.hardware.display.mapper@2.0.vendor \
+ vendor.qti.hardware.display.mapper@3.0.vendor \
+ vendor.qti.hardware.display.mapper@4.0.vendor
+
+# DRM
+PRODUCT_PACKAGES += \
+ android.hardware.drm@1.4-service.clearkey
+
+PRODUCT_PACKAGES += \
+ android.hardware.drm@1.4.vendor
+
+# Fastbootd
+PRODUCT_PACKAGES += \
+ fastbootd
+
+# Fingerprint
+PRODUCT_PACKAGES += \
+ android.hardware.biometrics.fingerprint@2.3-service.xiaomi
+
+# FM
+PRODUCT_PACKAGES += \
+ FM2 \
+ libqcomfm_jni \
+ qcom.fmradio
+
+# Gatekeeper
+PRODUCT_PACKAGES += \
+ android.hardware.gatekeeper@1.0.vendor
+
+# GPS
+PRODUCT_PACKAGES += \
+ android.hardware.gnss@1.1.vendor \
+ android.hardware.gnss@2.1.vendor
+
+# Health
+PRODUCT_PACKAGES += \
+ android.hardware.health@2.1-impl \
+ android.hardware.health@2.1-service
+
+# HIDL
+PRODUCT_PACKAGES += \
+ libhwbinder.vendor
+
+# HotwordEnrollement app permissions
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/permissions/privapp-permissions-hotword.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/privapp-permissions-hotword.xml
+
+# Input
+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
+
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/keylayout/gpio-keys.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/gpio-keys.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
+
+# IPACM
+PRODUCT_PACKAGES += \
+ ipacm \
+ IPACM_cfg.xml
+
+# IR
+PRODUCT_PACKAGES += \
+ android.hardware.ir@1.0-impl \
+ android.hardware.ir@1.0-service
+
+# Keymaster
+PRODUCT_PACKAGES += \
+ android.hardware.keymaster@4.1.vendor
+
+# Lights
+PRODUCT_PACKAGES += \
+ android.hardware.light-service.xiaomi
+
+# LiveDisplay
+PRODUCT_PACKAGES += \
+ vendor.lineage.livedisplay@2.0-service-sdm
+
+# Media
+PRODUCT_PACKAGES += \
+ libavservices_minijail \
+ libavservices_minijail.vendor \
+ libcodec2_hidl@1.0.vendor \
+ libcodec2_vndk.vendor
+
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/media/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
+ $(LOCAL_PATH)/media/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \
+ $(LOCAL_PATH)/media/media_codecs_vendor.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_vendor.xml \
+ $(LOCAL_PATH)/media/media_codecs_vendor_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_vendor_audio.xml \
+ $(LOCAL_PATH)/media/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles.xml \
+ $(LOCAL_PATH)/media/media_profiles_V1_0.xml:$(TARGET_COPY_OUT_ODM)/etc/media_profiles_V1_0.xml \
+ $(LOCAL_PATH)/media/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_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2.xml \
+ frameworks/av/media/libstagefright/data/media_codecs_google_c2_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_audio.xml \
+ frameworks/av/media/libstagefright/data/media_codecs_google_c2_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_video.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
+
+# Net
+PRODUCT_PACKAGES += \
+ android.system.net.netd@1.1.vendor \
+
+# Neural networks
+PRODUCT_PACKAGES += \
+ android.hardware.neuralnetworks@1.3.vendor
# NFC
PRODUCT_PACKAGES += \
@@ -26,20 +251,221 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/com.android.nfc_extras.xml:$(TARGET_COPY_OUT_ODM)/etc/permissions/sku_nfc/com.android.nfc_extras.xml \
frameworks/native/data/etc/com.nxp.mifare.xml:$(TARGET_COPY_OUT_ODM)/etc/permissions/sku_nfc/com.nxp.mifare.xml
+# OMX
+PRODUCT_PACKAGES += \
+ libOmxAacEnc \
+ libOmxAmrEnc \
+ libOmxCore \
+ libOmxEvrcEnc \
+ libOmxG711Enc \
+ libOmxQcelp13Enc \
+ libOmxVdec \
+ libOmxVenc \
+ libstagefrighthw
+
+# Overlays
+PRODUCT_ENFORCE_RRO_TARGETS := *
+
+PRODUCT_PACKAGES += \
+ CarrierConfigResCommon \
+ SM6250Frameworks \
+ SM6250SystemUI \
+ TelephonyResCommon \
+ WifiOverlay
+
+PRODUCT_PACKAGES += \
+ SM6250LineageDialer \
+ SM6250LineageSDK
+
+# Partitions
+PRODUCT_USE_DYNAMIC_PARTITIONS := true
+
+# Perf
+PRODUCT_PACKAGES += \
+ libqti-perfd-client
+
+# Permissions
+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.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.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.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.consumerir.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.consumerir.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.se.omapi.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.ese.xml \
+ frameworks/native/data/etc/android.hardware.se.omapi.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.uicc.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.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.telephony.ims.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.ims.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.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level-1.xml \
+ frameworks/native/data/etc/android.hardware.vulkan.version-1_1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version-1_1.xml \
+ frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.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.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml \
+ frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.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.device_id_attestation.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.device_id_attestation.xml \
+ frameworks/native/data/etc/android.software.ipsec_tunnels.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnels.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.opengles.deqp.level-2020-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.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/android.software.verified_boot.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.verified_boot.xml \
+ frameworks/native/data/etc/android.software.vulkan.deqp.level-2020-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml
+
+# Power
+PRODUCT_PACKAGES += \
+ android.hardware.power-service.xiaomi-libperfmgr
+
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/configs/powerhint.json:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.json
+
+# QMI
+PRODUCT_PACKAGES += \
+ libjson \
+ libqti_vndfwk_detect.vendor \
+ libvndfwk_detect_jni.qti.vendor
+
+# RIL
+PRODUCT_PACKAGES += \
+ libprotobuf-cpp-full \
+ librmnetctl \
+ libxml2
+
+PRODUCT_PACKAGES += \
+ android.hardware.radio@1.6.vendor \
+ android.hardware.radio.config@1.3.vendor \
+ android.hardware.radio.deprecated@1.0.vendor \
+ android.hardware.secure_element@1.2.vendor
+
# Rootdir
PRODUCT_PACKAGES += \
- init.device.rc
+ init.qcom.early_boot.sh \
+ init.qcom.sh \
+ init.qti.chg_policy.sh
+
+PRODUCT_PACKAGES += \
+ init.device.rc \
+ init.qcom.power.rc \
+ init.qcom.rc \
+ init.target.rc \
+ fstab.qcom \
+ ueventd.qcom.rc
+
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/rootdir/etc/fstab.qcom:$(TARGET_COPY_OUT_RAMDISK)/fstab.qcom \
+ $(LOCAL_PATH)/rootdir/etc/init.recovery.qcom.rc:recovery/root/init.recovery.qcom.rc
+
+# Sensors
+PRODUCT_PACKAGES += \
+ android.hardware.sensors@2.1-service.multihal
+
+PRODUCT_PACKAGES += \
+ libsensorndkbridge
+
+# Shipping API level
+PRODUCT_SHIPPING_API_LEVEL := 29
# Soong namespaces
PRODUCT_SOONG_NAMESPACES += \
- $(LOCAL_PATH)
+ $(LOCAL_PATH) \
+ hardware/google/interfaces \
+ hardware/google/pixel \
+ hardware/xiaomi
+
+# Telephony
+PRODUCT_PACKAGES += \
+ ims-ext-common \
+ ims_ext_common.xml \
+ qti-telephony-hidl-wrapper \
+ qti_telephony_hidl_wrapper.xml \
+ qti-telephony-utils \
+ qti_telephony_utils.xml \
+ telephony-ext
+
+PRODUCT_BOOT_JARS += \
+ telephony-ext
# Thermal
+PRODUCT_PACKAGES += \
+ android.hardware.thermal@2.0-service.pixel \
+ thermal_symlinks
+
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/configs/thermal_info_config.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config.json
+
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/thermal-engine-curtana.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-curtana.conf \
$(LOCAL_PATH)/configs/thermal-engine-excalibur.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-excalibur.conf \
$(LOCAL_PATH)/configs/thermal-engine-gram.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-gram.conf \
$(LOCAL_PATH)/configs/thermal-engine-joyeuse.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-joyeuse.conf
+# Trust
+PRODUCT_PACKAGES += \
+ vendor.lineage.trust@1.0-service
+
+# USB
+PRODUCT_PACKAGES += \
+ android.hardware.usb@1.0-service
+
+PRODUCT_PACKAGES += \
+ init.qcom.usb.rc \
+ init.qcom.usb.sh
+
+PRODUCT_SOONG_NAMESPACES += \
+ vendor/qcom/opensource/usb/etc
+
+# Vendor service manager
+PRODUCT_PACKAGES += \
+ vndservicemanager
+
+# Vibrator
+PRODUCT_PACKAGES += \
+ vendor.qti.hardware.vibrator.service
+
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/configs/excluded-input-devices.xml:$(TARGET_COPY_OUT_VENDOR)/etc/excluded-input-devices.xml
+
+# WiFi
+PRODUCT_PACKAGES += \
+ android.hardware.wifi@1.0-service \
+ hostapd \
+ libwpa_client \
+ libwifi-hal-ctrl \
+ libwifi-hal-qcom \
+ vendor.qti.hardware.wifi.hostapd@1.2.vendor \
+ vendor.qti.hardware.wifi.supplicant@2.2.vendor \
+ 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
+
+# WiFi Display
+PRODUCT_PACKAGES += \
+ libnl \
+ libwfdaac_vendor
+
+PRODUCT_BOOT_JARS += \
+ WfdCommon
+
# Inherit proprietary targets
$(call inherit-product, vendor/xiaomi/miatoll/miatoll-vendor.mk)
diff --git a/device_framework_matrix.xml b/device_framework_matrix.xml
new file mode 100644
index 0000000..3bbcc85
--- /dev/null
+++ b/device_framework_matrix.xml
@@ -0,0 +1,30 @@
+
+
+ com.fingerprints.extension
+ 1.0
+
+ IFingerprintEngineering
+ default
+
+
+ IFingerprintNavigation
+ default
+
+
+ IFingerprintSensorTest
+ default
+
+
+
+ vendor.goodix.hardware.biometrics.fingerprint
+ 2.0-1
+
+ IGoodixFingerprintDaemon
+ default
+
+
+ IGoodixFingerprintDaemonExt
+ default
+
+
+
diff --git a/extract-files.sh b/extract-files.sh
index 77764a0..4392ceb 100755
--- a/extract-files.sh
+++ b/extract-files.sh
@@ -1,20 +1,76 @@
#!/bin/bash
#
-# Copyright (C) 2021 The LineageOS Project
+# Copyright (C) 2016 The CyanogenMod Project
+# Copyright (C) 2017-2020 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
-# If we're being sourced by the common script that we called,
-# stop right here. No need to go down the rabbit hole.
-if [ "${BASH_SOURCE[0]}" != "${0}" ]; then
- return
-fi
-
set -e
-export DEVICE=miatoll
-export DEVICE_COMMON=sm6250-common
-export VENDOR=xiaomi
+DEVICE=miatoll
+VENDOR=xiaomi
-"./../../${VENDOR}/${DEVICE_COMMON}/extract-files.sh" "$@"
+# Load extract_utils and do some sanity checks
+MY_DIR="${BASH_SOURCE%/*}"
+if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi
+
+ANDROID_ROOT="${MY_DIR}/../../.."
+
+HELPER="${ANDROID_ROOT}/tools/extract-utils/extract_utils.sh"
+if [ ! -f "${HELPER}" ]; then
+ echo "Unable to find helper script at ${HELPER}"
+ exit 1
+fi
+source "${HELPER}"
+
+# Default to sanitizing the vendor folder before extraction
+CLEAN_VENDOR=true
+
+KANG=
+SECTION=
+
+while [ "${#}" -gt 0 ]; do
+ case "${1}" in
+ -n | --no-cleanup )
+ CLEAN_VENDOR=false
+ ;;
+ -k | --kang )
+ KANG="--kang"
+ ;;
+ -s | --section )
+ SECTION="${2}"; shift
+ CLEAN_VENDOR=false
+ ;;
+ * )
+ SRC="${1}"
+ ;;
+ esac
+ shift
+done
+
+if [ -z "${SRC}" ]; then
+ SRC="adb"
+fi
+
+function blob_fixup() {
+ case "${1}" in
+ vendor/etc/init/android.hardware.keymaster@4.0-service-qti.rc)
+ sed -i "s/4\.0/4\.1/g" "${2}"
+ ;;
+ system_ext/etc/init/wfdservice.rc)
+ sed -i "/^service/! s/wfdservice$/wfdservice64/g" "${2}"
+ ;;
+ # Remove dependency on android.hidl.base@1.0 for WFD native library.
+ system_ext/lib64/libwfdnative.so)
+ "${PATCHELF}" --remove-needed "android.hidl.base@1.0.so" "${2}"
+ ;;
+ esac
+}
+
+# Initialize the helper
+setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" false "${CLEAN_VENDOR}"
+
+extract "${MY_DIR}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}"
+
+"${MY_DIR}/setup-makefiles.sh"
diff --git a/idc/uinput-fpc.idc b/idc/uinput-fpc.idc
new file mode 100644
index 0000000..4cb1a4a
--- /dev/null
+++ b/idc/uinput-fpc.idc
@@ -0,0 +1,15 @@
+#
+# FPC1020 Touch sensor driver
+#
+# Copyright (c) 2013,2014 Fingerprint Cards AB
+#
+# 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
diff --git a/idc/uinput-goodix.idc b/idc/uinput-goodix.idc
new file mode 100644
index 0000000..88fbe7a
--- /dev/null
+++ b/idc/uinput-goodix.idc
@@ -0,0 +1,15 @@
+#
+# FPC1020 Touch sensor driver
+#
+# Copyright (c) 2013,2014 Fingerprint Cards AB
+#
+# 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-gf
+keyboard.builtIn = 1
+keyboard.orientationAware = 1
diff --git a/keylayout/gpio-keys.kl b/keylayout/gpio-keys.kl
new file mode 100644
index 0000000..7d5afc3
--- /dev/null
+++ b/keylayout/gpio-keys.kl
@@ -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
diff --git a/keylayout/uinput-fpc.kl b/keylayout/uinput-fpc.kl
new file mode 100644
index 0000000..4fc2161
--- /dev/null
+++ b/keylayout/uinput-fpc.kl
@@ -0,0 +1,14 @@
+#
+# FPC1020 Touch sensor driver
+#
+# Copyright (c) 2013,2014 Fingerprint Cards AB
+#
+# 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
diff --git a/keylayout/uinput-goodix.kl b/keylayout/uinput-goodix.kl
new file mode 100644
index 0000000..edc1642
--- /dev/null
+++ b/keylayout/uinput-goodix.kl
@@ -0,0 +1,14 @@
+#
+# Goodix fingerprint sensor driver
+#
+# Copyright (c) 2013,2014 Fingerprint Cards AB
+#
+# 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
diff --git a/libinit/Android.bp b/libinit/Android.bp
index 02d1568..aac9458 100644
--- a/libinit/Android.bp
+++ b/libinit/Android.bp
@@ -4,10 +4,23 @@
// SPDX-License-Identifier: Apache-2.0
//
+
+cc_library_static {
+ name: "libinit_xiaomi_miatoll",
+ srcs: [
+ "libinit_dalvik_heap.cpp",
+ "libinit_variant.cpp",
+ "libinit_utils.cpp",
+ ],
+ whole_static_libs: ["libbase"],
+ export_include_dirs: ["include"],
+ recovery_available: true,
+}
+
cc_library_static {
name: "init_xiaomi_miatoll",
srcs: ["init_xiaomi_miatoll.cpp"],
- whole_static_libs: ["//device/xiaomi/sm6250-common:libinit_xiaomi_atoll"],
+ whole_static_libs: ["libinit_xiaomi_miatoll"],
include_dirs: ["system/core/init"],
recovery_available: true,
}
diff --git a/libinit/include/libinit_dalvik_heap.h b/libinit/include/libinit_dalvik_heap.h
new file mode 100644
index 0000000..75144b2
--- /dev/null
+++ b/libinit/include/libinit_dalvik_heap.h
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2021 The LineageOS Project
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#ifndef LIBINIT_DALVIK_HEAP_H
+#define LIBINIT_DALVIK_HEAP_H
+
+#include
+
+typedef struct dalvik_heap_info {
+ std::string heapstartsize;
+ std::string heapgrowthlimit;
+ std::string heapsize;
+ std::string heapminfree;
+ std::string heapmaxfree;
+ std::string heaptargetutilization;
+} dalvik_heap_info_t;
+
+void set_dalvik_heap(void);
+
+#endif // LIBINIT_DALVIK_HEAP_H
diff --git a/libinit/include/libinit_utils.h b/libinit/include/libinit_utils.h
new file mode 100644
index 0000000..d5bca51
--- /dev/null
+++ b/libinit/include/libinit_utils.h
@@ -0,0 +1,18 @@
+/*
+ * Copyright (C) 2021-2022 The LineageOS Project
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#ifndef LIBINIT_UTILS_H
+#define LIBINIT_UTILS_H
+
+#include
+
+void property_override(std::string prop, std::string value, bool add = true);
+
+void set_ro_build_prop(const std::string &prop, const std::string &value, bool product = false);
+
+std::string fingerprint_to_description(std::string fingerprint);
+
+#endif // LIBINIT_UTILS_H
diff --git a/libinit/include/libinit_variant.h b/libinit/include/libinit_variant.h
new file mode 100644
index 0000000..fe07fca
--- /dev/null
+++ b/libinit/include/libinit_variant.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2021-2022 The LineageOS Project
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#ifndef LIBINIT_VARIANT_H
+#define LIBINIT_VARIANT_H
+
+#include
+#include
+
+typedef struct variant_info {
+ std::string hwc_value;
+
+ std::string brand;
+ std::string device;
+ std::string model;
+ std::string build_fingerprint;
+
+ bool nfc;
+} variant_info_t;
+
+void search_variant(const std::vector variants);
+
+void set_variant_props(const variant_info_t variant);
+
+#endif // LIBINIT_VARIANT_H
diff --git a/libinit/libinit_dalvik_heap.cpp b/libinit/libinit_dalvik_heap.cpp
new file mode 100644
index 0000000..ba5992e
--- /dev/null
+++ b/libinit/libinit_dalvik_heap.cpp
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2021 The LineageOS Project
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#include
+#include
+
+#include
+
+#define HEAPSTARTSIZE_PROP "dalvik.vm.heapstartsize"
+#define HEAPGROWTHLIMIT_PROP "dalvik.vm.heapgrowthlimit"
+#define HEAPSIZE_PROP "dalvik.vm.heapsize"
+#define HEAPMINFREE_PROP "dalvik.vm.heapminfree"
+#define HEAPMAXFREE_PROP "dalvik.vm.heapmaxfree"
+#define HEAPTARGETUTILIZATION_PROP "dalvik.vm.heaptargetutilization"
+
+#define GB(b) (b * 1024ull * 1024 * 1024)
+
+static const dalvik_heap_info_t dalvik_heap_info_6144 = {
+ .heapstartsize = "16m",
+ .heapgrowthlimit = "256m",
+ .heapsize = "512m",
+ .heapminfree = "8m",
+ .heapmaxfree = "32m",
+ .heaptargetutilization = "0.5",
+};
+
+static const dalvik_heap_info_t dalvik_heap_info_4096 = {
+ .heapstartsize = "8m",
+ .heapgrowthlimit = "256m",
+ .heapsize = "512m",
+ .heapminfree = "8m",
+ .heapmaxfree = "16m",
+ .heaptargetutilization = "0.6",
+};
+
+static const dalvik_heap_info_t dalvik_heap_info_2048 = {
+ .heapstartsize = "8m",
+ .heapgrowthlimit = "192m",
+ .heapsize = "512m",
+ .heapminfree = "512k",
+ .heapmaxfree = "8m",
+ .heaptargetutilization = "0.75",
+};
+
+void set_dalvik_heap() {
+ struct sysinfo sys;
+ const dalvik_heap_info_t *dhi;
+
+ sysinfo(&sys);
+
+ if (sys.totalram > GB(5))
+ dhi = &dalvik_heap_info_6144;
+ else if (sys.totalram > GB(3))
+ dhi = &dalvik_heap_info_4096;
+ else
+ dhi = &dalvik_heap_info_2048;
+
+ property_override(HEAPSTARTSIZE_PROP, dhi->heapstartsize);
+ property_override(HEAPGROWTHLIMIT_PROP, dhi->heapgrowthlimit);
+ property_override(HEAPSIZE_PROP, dhi->heapsize);
+ property_override(HEAPTARGETUTILIZATION_PROP, dhi->heaptargetutilization);
+ property_override(HEAPMINFREE_PROP, dhi->heapminfree);
+ property_override(HEAPMAXFREE_PROP, dhi->heapmaxfree);
+}
diff --git a/libinit/libinit_utils.cpp b/libinit/libinit_utils.cpp
new file mode 100644
index 0000000..ae9dc04
--- /dev/null
+++ b/libinit/libinit_utils.cpp
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2021-2022 The LineageOS Project
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
+#include
+#include
+
+#include
+
+void property_override(std::string prop, std::string value, bool add) {
+ auto pi = (prop_info *) __system_property_find(prop.c_str());
+ if (pi != nullptr) {
+ __system_property_update(pi, value.c_str(), value.length());
+ } else if (add) {
+ __system_property_add(prop.c_str(), prop.length(), value.c_str(), value.length());
+ }
+}
+
+std::vector ro_props_default_source_order = {
+ "odm.",
+ "odm_dlkm.",
+ "product.",
+ "system.",
+ "system_ext.",
+ "vendor.",
+ "vendor_dlkm.",
+ "",
+};
+
+void set_ro_build_prop(const std::string &prop, const std::string &value, bool product) {
+ std::string prop_name;
+
+ for (const auto &source : ro_props_default_source_order) {
+ if (product)
+ prop_name = "ro.product." + source + prop;
+ else
+ prop_name = "ro." + source + "build." + prop;
+
+ property_override(prop_name, value, true);
+ }
+}
+
+#define FIND_AND_REMOVE(s, delimiter, variable_name) \
+ std::string variable_name = s.substr(0, s.find(delimiter)); \
+ s.erase(0, s.find(delimiter) + delimiter.length());
+
+#define APPEND_STRING(s, to_append) \
+ s.append(" "); \
+ s.append(to_append);
+
+std::string fingerprint_to_description(std::string fingerprint) {
+ std::string delimiter = "/";
+ std::string delimiter2 = ":";
+ std::string build_fingerprint_copy = fingerprint;
+
+ FIND_AND_REMOVE(build_fingerprint_copy, delimiter, brand)
+ FIND_AND_REMOVE(build_fingerprint_copy, delimiter, product)
+ FIND_AND_REMOVE(build_fingerprint_copy, delimiter2, device)
+ FIND_AND_REMOVE(build_fingerprint_copy, delimiter, platform_version)
+ FIND_AND_REMOVE(build_fingerprint_copy, delimiter, build_id)
+ FIND_AND_REMOVE(build_fingerprint_copy, delimiter2, build_number)
+ FIND_AND_REMOVE(build_fingerprint_copy, delimiter, build_variant)
+ std::string build_version_tags = build_fingerprint_copy;
+
+ std::string description = product + "-" + build_variant;
+ APPEND_STRING(description, platform_version)
+ APPEND_STRING(description, build_id)
+ APPEND_STRING(description, build_number)
+ APPEND_STRING(description, build_version_tags)
+
+ return description;
+}
diff --git a/libinit/libinit_variant.cpp b/libinit/libinit_variant.cpp
new file mode 100644
index 0000000..23bdfa3
--- /dev/null
+++ b/libinit/libinit_variant.cpp
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2021-2022 The LineageOS Project
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#include
+#include
+
+#include
+
+using android::base::GetProperty;
+
+#define HWC_PROP "ro.boot.hwc"
+#define HWNAME_PROP "ro.boot.hwname"
+#define SKU_PROP "ro.boot.product.hardware.sku"
+
+void search_variant(const std::vector variants) {
+ std::string hwc_value = GetProperty(HWC_PROP, "");
+ std::string hwname_value = GetProperty(HWNAME_PROP, "");
+
+ for (const auto& variant : variants) {
+ if ((variant.hwc_value == "" || variant.hwc_value == hwc_value) && (variant.device == hwname_value)) {
+ set_variant_props(variant);
+ break;
+ }
+ }
+}
+
+void set_variant_props(const variant_info_t variant) {
+ set_ro_build_prop("brand", variant.brand, true);
+ set_ro_build_prop("device", variant.device, true);
+ set_ro_build_prop("model", variant.model, true);
+
+ set_ro_build_prop("fingerprint", variant.build_fingerprint);
+ property_override("ro.bootimage.build.fingerprint", variant.build_fingerprint);
+
+ property_override("ro.build.description", fingerprint_to_description(variant.build_fingerprint));
+
+ if (variant.nfc)
+ property_override(SKU_PROP, "nfc");
+}
diff --git a/libqti-perfd-client/Android.bp b/libqti-perfd-client/Android.bp
new file mode 100644
index 0000000..010d072
--- /dev/null
+++ b/libqti-perfd-client/Android.bp
@@ -0,0 +1,17 @@
+cc_library_shared {
+ name: "libqti-perfd-client",
+ proprietary: true,
+ defaults: ["hidl_defaults"],
+ srcs: [
+ "client.c",
+ ],
+ cflags: [
+ "-Werror",
+ "-Wextra",
+ "-Wall",
+ ],
+ shared_libs: [
+ "liblog",
+ "libutils",
+ ],
+}
diff --git a/libqti-perfd-client/client.c b/libqti-perfd-client/client.c
new file mode 100644
index 0000000..42b3cdc
--- /dev/null
+++ b/libqti-perfd-client/client.c
@@ -0,0 +1,24 @@
+#define LOG_TAG "libqti-perfd-client"
+
+#include
+#include
+
+void perf_get_feedback() {}
+void perf_hint() {}
+int perf_lock_acq(int handle, int duration, int arg3[], int arg4) {
+ ALOGI("perf_lock_acq: handle: %d, duration: %d, arg3[0]: %d, arg4: %d",
+ handle, duration, arg3[0], arg4);
+ if (handle > 0)
+ return handle;
+
+ return 233;
+}
+void perf_lock_cmd() {}
+int perf_lock_rel(int handle) {
+ ALOGI("perf_lock_rel: handle: %d", handle);
+ if (handle > 0)
+ return handle;
+
+ return 233;
+}
+void perf_lock_use_profile() {}
diff --git a/lineage.dependencies b/lineage.dependencies
index b58db2e..1ba15db 100644
--- a/lineage.dependencies
+++ b/lineage.dependencies
@@ -1,6 +1,10 @@
[
{
- "repository": "android_device_xiaomi_sm6250-common",
- "target_path": "device/xiaomi/sm6250-common"
+ "repository": "android_hardware_xiaomi",
+ "target_path": "hardware/xiaomi"
+ },
+ {
+ "repository": "android_kernel_xiaomi_sm6250",
+ "target_path": "kernel/xiaomi/sm6250"
}
]
diff --git a/lineage_device_framework_matrix.xml b/lineage_device_framework_matrix.xml
new file mode 100644
index 0000000..3b58cbf
--- /dev/null
+++ b/lineage_device_framework_matrix.xml
@@ -0,0 +1,18 @@
+
+
+ vendor.lineage.livedisplay
+ 2.0
+
+ IPictureAdjustment
+ default
+
+
+
+ vendor.lineage.trust
+ 1.0
+
+ IUsbRestrict
+ default
+
+
+
diff --git a/manifest.xml b/manifest.xml
new file mode 100644
index 0000000..04a485b
--- /dev/null
+++ b/manifest.xml
@@ -0,0 +1,339 @@
+
+
+ android.hardware.audio
+ hwbinder
+ @6.0::IDevicesFactory/default
+
+
+ android.hardware.audio.effect
+ hwbinder
+ @6.0::IEffectsFactory/default
+
+
+ android.hardware.bluetooth
+ hwbinder
+ @1.0::IBluetoothHci/default
+
+
+ android.hardware.bluetooth.audio
+ hwbinder
+ @2.1::IBluetoothAudioProvidersFactory/default
+
+
+ android.hardware.camera.provider
+ hwbinder
+ @2.4::ICameraProvider/legacy/0
+
+
+ android.hardware.contexthub
+ hwbinder
+ @1.0::IContexthub/default
+
+
+ android.hardware.drm
+ hwbinder
+ @1.3::ICryptoFactory/wfdhdcp
+ @1.3::IDrmFactory/wfdhdcp
+
+
+ android.hardware.gatekeeper
+ hwbinder
+ @1.0::IGatekeeper/default
+
+
+ android.hardware.ir
+ hwbinder
+ @1.0::IConsumerIr/default
+
+
+ android.hardware.keymaster
+ hwbinder
+ @4.1::IKeymasterDevice/default
+
+
+ android.hardware.media.omx
+ hwbinder
+ @1.0::IOmx/default
+ @1.0::IOmxStore/default
+
+
+ android.hardware.memtrack
+ hwbinder
+ @1.0::IMemtrack/default
+
+
+ android.hardware.radio
+ hwbinder
+ @1.2::ISap/slot1
+ @1.2::ISap/slot2
+ @1.5::IRadio/slot1
+ @1.5::IRadio/slot2
+
+
+ android.hardware.radio.config
+ hwbinder
+ @1.1::IRadioConfig/default
+
+
+ android.hardware.renderscript
+ passthrough
+ @1.0::IDevice/default
+
+
+ android.hardware.soundtrigger
+ hwbinder
+ @2.2::ISoundTriggerHw/default
+
+
+ android.hardware.tetheroffload.config
+ hwbinder
+ @1.0::IOffloadConfig/default
+
+
+ android.hardware.tetheroffload.control
+ hwbinder
+ @1.0::IOffloadControl/default
+
+
+ com.fingerprints.extension
+ hwbinder
+ @1.0::IFingerprintEngineering/default
+ @1.0::IFingerprintNavigation/default
+ @1.0::IFingerprintSensorTest/default
+
+
+ com.qualcomm.qti.dpm.api
+ hwbinder
+ @1.0::IdpmQmi/dpmQmiService
+
+
+ com.qualcomm.qti.imscmservice
+ hwbinder
+ @2.2::IImsCmService/qti.ims.connectionmanagerservice
+
+
+ com.qualcomm.qti.uceservice
+ hwbinder
+ @2.3::IUceService/com.qualcomm.qti.uceservice
+
+
+ vendor.display.color
+ hwbinder
+ @1.3::IDisplayColor/default
+
+
+ vendor.display.postproc
+ hwbinder
+ @1.0::IDisplayPostproc/default
+
+
+ vendor.lineage.livedisplay
+ hwbinder
+ @2.0::IPictureAdjustment/default
+
+
+ vendor.qti.data.factory
+ hwbinder
+ @2.2::IFactory/default
+
+
+ vendor.qti.esepowermanager
+ hwbinder
+ @1.1::IEsePowerManager/default
+
+
+ vendor.qti.hardware.alarm
+ hwbinder
+ @1.0::IAlarm/default
+
+
+ vendor.qti.hardware.bluetooth_audio
+ hwbinder
+ @2.1::IBluetoothAudioProvidersFactory/default
+
+
+ vendor.qti.hardware.bluetooth_sar
+ hwbinder
+ @1.1::IBluetoothSar/default
+
+
+ vendor.qti.hardware.btconfigstore
+ hwbinder
+ @2.0::IBTConfigStore/default
+
+
+ vendor.qti.hardware.cacert
+ hwbinder
+ @1.0::IService/default
+
+
+ vendor.qti.hardware.capabilityconfigstore
+ hwbinder
+ @1.0::ICapabilityConfigStore/default
+
+
+ vendor.qti.hardware.cryptfshw
+ hwbinder
+ @1.0::ICryptfsHw/default
+
+
+ vendor.qti.hardware.data.connection
+ hwbinder
+ @1.1::IDataConnection/slot1
+ @1.1::IDataConnection/slot2
+
+
+ vendor.qti.hardware.data.latency
+ hwbinder
+ @1.0::ILinkLatency/default
+
+
+ vendor.qti.hardware.dsp
+ hwbinder
+ @1.0::IDspService/dspservice
+
+
+ vendor.qti.hardware.embmssl
+ hwbinder
+ @1.1::IEmbms/embmsslServer0
+
+
+ vendor.qti.hardware.factory
+ hwbinder
+ @1.1::IFactory/default
+
+
+ vendor.qti.hardware.fm
+ hwbinder
+ @1.0::IFmHci/default
+
+
+ vendor.qti.hardware.fstman
+ hwbinder
+ @1.0::IFstManager/default
+
+
+ vendor.qti.hardware.qccvndhal
+ hwbinder
+ @1.0::IQccvndhal/qccvndhal
+
+
+ vendor.qti.hardware.qseecom
+ hwbinder
+ @1.0::IQSEECom/default
+
+
+ vendor.qti.hardware.qteeconnector
+ hwbinder
+ @1.0::IAppConnector/default
+ @1.0::IGPAppConnector/default
+
+
+ vendor.qti.hardware.radio.am
+ hwbinder
+ @1.0::IQcRilAudio/slot1
+ @1.0::IQcRilAudio/slot2
+
+
+ vendor.qti.hardware.radio.ims
+ hwbinder
+ @1.7::IImsRadio/imsradio0
+ @1.7::IImsRadio/imsradio1
+
+
+ vendor.qti.hardware.radio.internal.deviceinfo
+ hwbinder
+ @1.0::IDeviceInfo/deviceinfo
+
+
+ vendor.qti.hardware.radio.lpa
+ hwbinder
+ @1.0::IUimLpa/UimLpa0
+ @1.0::IUimLpa/UimLpa1
+
+
+ vendor.qti.hardware.radio.qcrilhook
+ hwbinder
+ @1.0::IQtiOemHook/oemhook0
+ @1.0::IQtiOemHook/oemhook1
+
+
+ vendor.qti.hardware.radio.qtiradio
+ hwbinder
+ @1.0::IQtiRadio/slot1
+ @1.0::IQtiRadio/slot2
+
+
+ vendor.qti.hardware.radio.qtiradio
+ hwbinder
+ @2.4::IQtiRadio/slot1
+ @2.4::IQtiRadio/slot2
+
+
+ vendor.qti.hardware.radio.uim
+ hwbinder
+ @1.2::IUim/Uim0
+ @1.2::IUim/Uim1
+
+
+ vendor.qti.hardware.radio.uim_remote_client
+ hwbinder
+ @1.0::IUimRemoteServiceClient/uimRemoteClient0
+ @1.0::IUimRemoteServiceClient/uimRemoteClient1
+
+
+ vendor.qti.hardware.radio.uim_remote_server
+ hwbinder
+ @1.0::IUimRemoteServiceServer/uimRemoteServer0
+ @1.0::IUimRemoteServiceServer/uimRemoteServer1
+
+
+ vendor.qti.hardware.sensorscalibrate
+ hwbinder
+ @1.0::ISensorsCalibrate/default
+
+
+ vendor.qti.hardware.soter
+ hwbinder
+ @1.0::ISoter/default
+
+
+ vendor.qti.hardware.trustedui
+ hwbinder
+ @1.0::ITrustedInput/default
+ @1.0::ITrustedUI/default
+
+
+ vendor.qti.hardware.tui_comm
+ hwbinder
+ @1.0::ITuiComm/default
+
+
+ vendor.qti.hardware.wifi.wifilearner
+ hwbinder
+ @1.0::IWifiStats/wifiStats
+
+
+ vendor.qti.hardware.wifidisplaysession
+ hwbinder
+ @1.0::IWifiDisplaySession/wifidisplaysession
+ @1.0::IWifiDisplaySessionAudioTrack/wifidisplaysessionaudiotrack
+ @1.0::IWifiDisplaySessionImageTrack/wifidisplaysessionimagetrack
+ @1.0::IWifiDisplaySessionVideoTrack/wifidisplaysessionvideotrack
+
+
+ vendor.qti.ims.callinfo
+ hwbinder
+ @1.0::IService/default
+
+
+ vendor.qti.ims.factory
+ hwbinder
+ @1.0::IImsFactory/default
+
+
+ vendor.qti.imsrtpservice
+ hwbinder
+ @3.0::IRTPService/imsrtpservice
+
+
diff --git a/media/media_codecs.xml b/media/media_codecs.xml
new file mode 100644
index 0000000..dd758c9
--- /dev/null
+++ b/media/media_codecs.xml
@@ -0,0 +1,390 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/media/media_codecs_performance.xml b/media/media_codecs_performance.xml
new file mode 100644
index 0000000..3f0fd51
--- /dev/null
+++ b/media/media_codecs_performance.xml
@@ -0,0 +1,194 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/media/media_codecs_vendor.xml b/media/media_codecs_vendor.xml
new file mode 100644
index 0000000..49234b0
--- /dev/null
+++ b/media/media_codecs_vendor.xml
@@ -0,0 +1,398 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/media/media_codecs_vendor_audio.xml b/media/media_codecs_vendor_audio.xml
new file mode 100644
index 0000000..e102b80
--- /dev/null
+++ b/media/media_codecs_vendor_audio.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/media/media_profiles.xml b/media/media_profiles.xml
new file mode 100644
index 0000000..66128d6
--- /dev/null
+++ b/media/media_profiles.xml
@@ -0,0 +1,867 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/media/media_profiles_V1_0.xml b/media/media_profiles_V1_0.xml
new file mode 100644
index 0000000..66128d6
--- /dev/null
+++ b/media/media_profiles_V1_0.xml
@@ -0,0 +1,867 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/media/media_profiles_vendor.xml b/media/media_profiles_vendor.xml
new file mode 100644
index 0000000..c5859d6
--- /dev/null
+++ b/media/media_profiles_vendor.xml
@@ -0,0 +1,1329 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/odm.prop b/odm.prop
new file mode 100644
index 0000000..3e7abe3
--- /dev/null
+++ b/odm.prop
@@ -0,0 +1,2 @@
+# Fwk detect
+ro.vendor.qti.va_odm.support=1
diff --git a/overlay-lineage/SM6250LineageDialer/Android.bp b/overlay-lineage/SM6250LineageDialer/Android.bp
new file mode 100644
index 0000000..16bfef0
--- /dev/null
+++ b/overlay-lineage/SM6250LineageDialer/Android.bp
@@ -0,0 +1,9 @@
+//
+// Copyright (C) 2022 The LineageOS Project
+// SPDX-License-Identifier: Apache-2.0
+//
+
+runtime_resource_overlay {
+ name: "SM6250LineageDialer",
+ product_specific: true,
+}
diff --git a/overlay-lineage/SM6250LineageDialer/AndroidManifest.xml b/overlay-lineage/SM6250LineageDialer/AndroidManifest.xml
new file mode 100644
index 0000000..465ed31
--- /dev/null
+++ b/overlay-lineage/SM6250LineageDialer/AndroidManifest.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/overlay-lineage/SM6250LineageDialer/res/values/config.xml b/overlay-lineage/SM6250LineageDialer/res/values/config.xml
new file mode 100644
index 0000000..7a4e744
--- /dev/null
+++ b/overlay-lineage/SM6250LineageDialer/res/values/config.xml
@@ -0,0 +1,14 @@
+
+
+
+
+ true
+
+ 4
+
+
diff --git a/overlay-lineage/SM6250LineageSDK/Android.bp b/overlay-lineage/SM6250LineageSDK/Android.bp
new file mode 100644
index 0000000..c3ffc30
--- /dev/null
+++ b/overlay-lineage/SM6250LineageSDK/Android.bp
@@ -0,0 +1,9 @@
+//
+// Copyright (C) 2022 The LineageOS Project
+// SPDX-License-Identifier: Apache-2.0
+//
+
+runtime_resource_overlay {
+ name: "SM6250LineageSDK",
+ product_specific: true,
+}
diff --git a/overlay-lineage/SM6250LineageSDK/AndroidManifest.xml b/overlay-lineage/SM6250LineageSDK/AndroidManifest.xml
new file mode 100644
index 0000000..2c4f21b
--- /dev/null
+++ b/overlay-lineage/SM6250LineageSDK/AndroidManifest.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/overlay-lineage/SM6250LineageSDK/res/values/config.xml b/overlay-lineage/SM6250LineageSDK/res/values/config.xml
new file mode 100644
index 0000000..4db8cf7
--- /dev/null
+++ b/overlay-lineage/SM6250LineageSDK/res/values/config.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+ 64
+
+
+ 64
+
+
+ 232
+
+
+ true
+
+
+
+ - restart
+ - restart_recovery
+ - restart_bootloader
+ - restart_fastboot
+
+
+
diff --git a/overlay/CarrierConfigResCommon/Android.bp b/overlay/CarrierConfigResCommon/Android.bp
new file mode 100644
index 0000000..7963a53
--- /dev/null
+++ b/overlay/CarrierConfigResCommon/Android.bp
@@ -0,0 +1,10 @@
+//
+// Copyright (C) 2022 The LineageOS Project
+// SPDX-License-Identifier: Apache-2.0
+//
+
+runtime_resource_overlay {
+ name: "CarrierConfigResCommon",
+ aaptflags: ["--keep-raw-values"],
+ product_specific: true,
+}
diff --git a/overlay/CarrierConfigResCommon/AndroidManifest.xml b/overlay/CarrierConfigResCommon/AndroidManifest.xml
new file mode 100644
index 0000000..4d2cd14
--- /dev/null
+++ b/overlay/CarrierConfigResCommon/AndroidManifest.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/overlay/CarrierConfigResCommon/res/xml/vendor.xml b/overlay/CarrierConfigResCommon/res/xml/vendor.xml
new file mode 100644
index 0000000..0ae4fb5
--- /dev/null
+++ b/overlay/CarrierConfigResCommon/res/xml/vendor.xml
@@ -0,0 +1,2379 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ com.example.android.locationattribution
+
+
+
+
+
+
+
+ connected_mmwave:5GUWB,connected:5g,not_restricted:None,restricted:None
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ China Mobile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ China Unicom
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ China Mobile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ China Unicom
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ China Unicom
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/overlay/SM6250Frameworks/Android.bp b/overlay/SM6250Frameworks/Android.bp
new file mode 100644
index 0000000..82bd324
--- /dev/null
+++ b/overlay/SM6250Frameworks/Android.bp
@@ -0,0 +1,9 @@
+//
+// Copyright (C) 2022 The LineageOS Project
+// SPDX-License-Identifier: Apache-2.0
+//
+
+runtime_resource_overlay {
+ name: "SM6250Frameworks",
+ vendor: true,
+}
diff --git a/overlay/SM6250Frameworks/AndroidManifest.xml b/overlay/SM6250Frameworks/AndroidManifest.xml
new file mode 100644
index 0000000..3ca8488
--- /dev/null
+++ b/overlay/SM6250Frameworks/AndroidManifest.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/overlay/SM6250Frameworks/res/values/config.xml b/overlay/SM6250Frameworks/res/values/config.xml
new file mode 100644
index 0000000..5ef6f23
--- /dev/null
+++ b/overlay/SM6250Frameworks/res/values/config.xml
@@ -0,0 +1,570 @@
+
+
+
+
+
+
+ MEMORY
+
+
+ OFF
+
+
+ OFF
+
+
+ 2
+
+
+
+ - 11373
+ - 5000
+ - 4333
+ - 3666
+ - 3000
+ - 2760
+ - 2520
+ - 2280
+ - 2040
+ - 1800
+ - 800
+ - 527
+ - 500
+ - 470
+ - 396
+ - 322
+ - 248
+ - 174
+ - 99
+ - 99
+
+
+
+
+ - 853
+ - 700
+ - 683
+ - 666
+ - 650
+ - 640
+ - 630
+ - 620
+ - 610
+ - 600
+ - 500
+ - 500
+ - 440
+ - 385
+ - 348
+ - 311
+ - 274
+ - 237
+ - 200
+ - 200
+
+
+
+
+ - 1
+ - 2
+ - 3
+ - 4
+ - 5
+ - 6
+ - 7
+ - 8
+ - 9
+ - 10
+ - 20
+ - 30
+ - 40
+ - 50
+ - 60
+ - 70
+ - 80
+ - 90
+ - 100
+
+
+
+ 2000
+ 4000
+
+
+
+ - 5
+ - 10
+ - 18
+ - 22
+ - 24
+ - 31
+ - 35
+ - 41
+ - 48
+ - 56
+ - 66
+ - 80
+ - 98
+ - 125
+ - 162
+ - 208
+ - 265
+ - 328
+ - 450
+
+
+
+
+ - 1
+ - 2
+ - 3
+ - 4
+ - 8
+ - 12
+ - 20
+ - 33
+ - 55
+ - 90
+ - 148
+ - 245
+ - 403
+ - 665
+ - 1097
+ - 1808
+ - 2981
+ - 5000
+
+
+
+ true
+
+
+
+ - 0
+ - 1
+ - 3
+
+
+
+
+ - 0:2:15
+
+
+
+ true
+
+
+ true
+
+
+ 3300
+
+
+ true
+
+
+
+ - "/system/framework/framework.jar"
+ - "/system/framework/services.jar"
+ - "/apex/com.android.art/javalib/core-oj.jar"
+ - "/apex/com.android.art/javalib/core-libart.jar"
+ - "/system_ext/priv-app/SystemUI/SystemUI.apk"
+ - "/system/bin/surfaceflinger"
+
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+
+ - 0
+ - 1
+ - 3
+
+
+ - 0
+ - 0
+ - 9
+
+
+
+ true
+
+
+ true
+
+
+ com.android.systemui/com.android.systemui.doze.DozeService
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+
+ - 40
+
+
+
+
+ - 0
+ - 1
+ - 20
+ - 21
+
+
+
+ 2
+
+
+ 2
+
+
+
+ M 0,0 H -36 V 102 H 36 V 0 H 0 Z
+
+
+
+
+ - 5gnr:2097152,6291456,16777216,512000,2097152,8388608
+ - lte:2097152,4194304,8388608,262144,524288,1048576
+ - lte_ca:4096,6291456,12582912,4096,1048576,2097152
+ - umts:4094,87380,1220608,4096,16384,1220608
+ - hspa:4094,87380,1220608,4096,16384,1220608
+ - hsupa:4094,87380,1220608,4096,16384,1220608
+ - hsdpa:4094,87380,1220608,4096,16384,1220608
+ - hspap:4094,87380,1220608,4096,16384,1220608
+ - edge:4093,26280,35040,4096,16384,35040
+ - gprs:4092,8760,11680,4096,8760,11680
+ - evdo:4094,87380,524288,4096,16384,262144
+
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ vendor.qti.iwlan
+
+
+
+ - 1
+ - 255
+
+
+
+ 12
+
+
+
+ - 2
+ - 450
+
+
+
+ - 0.26274509804
+
+
+ - 1.0
+
+
+ - 0.0
+
+
+ true
+
+
+
+ - @array/config_sfps_sensor_props_0
+
+
+
+
+ - 1080
+ - 760
+ - 100
+
+
+
+ true
+
+
+ 600
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ true
+
+
+
+ - 0
+ - 10
+ - 20
+ - 30
+
+
+
+ true
+
+
+ vendor.qti.iwlan
+
+
+
+
+
+
+ - wifi,1,1,1,-1,true
+ - mobile,0,0,0,-1,true
+ - mobile_mms,2,0,4,60000,true
+ - mobile_supl,3,0,2,60000,true
+ - mobile_dun,4,0,2,60000,true
+ - mobile_hipri,5,0,3,60000,true
+ - mobile_fota,10,0,2,60000,true
+ - mobile_ims,11,0,2,60000,true
+ - mobile_cbs,12,0,2,60000,true
+ - bluetooth,7,7,2,-1,true
+ - mobile_emergency,15,0,5,-1,true
+ - ethernet,9,9,9,-1,true
+
+
+
+
+
+ - "1,1"
+ - "0,1"
+ - "7,1"
+
+
+
+
+ true
+
+
diff --git a/overlay/SM6250Frameworks/res/values/dimens.xml b/overlay/SM6250Frameworks/res/values/dimens.xml
new file mode 100644
index 0000000..0a83861
--- /dev/null
+++ b/overlay/SM6250Frameworks/res/values/dimens.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+ 93px
+
+
+ 93px
+
+
+ 24dp
+
+
+ 102px
+
+
diff --git a/overlay/SM6250Frameworks/res/xml/power_profile.xml b/overlay/SM6250Frameworks/res/xml/power_profile.xml
new file mode 100644
index 0000000..b4f8466
--- /dev/null
+++ b/overlay/SM6250Frameworks/res/xml/power_profile.xml
@@ -0,0 +1,101 @@
+
+
+ - 5020
+
+ 6
+ 2
+
+ - 4.65
+ - 0.52
+ - 1
+ - 12.10
+ - 16.43
+
+ 300000
+ 576000
+ 768000
+ 1017600
+ 1248000
+ 1324800
+ 1516800
+ 1612800
+ 1708800
+ 1804800
+
+
+ 652800
+ 825600
+ 979200
+ 1113600
+ 1267200
+ 1555200
+ 1708800
+ 1843200
+ 1900800
+ 1996800
+ 2112000
+ 2208000
+
+
+ 4.2
+ 8.28
+ 11.99
+ 15.06
+ 23.81
+ 27.99
+ 38.22
+ 51.99
+ 62.37
+ 71.82
+
+
+ 11.06
+ 23.81
+ 35.09
+ 44.08
+ 73.08
+ 87.18
+ 134.31
+ 192.47
+ 216.45
+ 257.83
+ 289.78
+ 337.24
+
+ - 82.45
+ - 242.93
+ - 245.859
+ - 500
+ - 83.29
+ - 37.41
+ - 2
+ - 220
+ - 150
+ - 3700
+ - 1
+ - 1
+ - 100
+
+ 90
+ 100
+ 110
+ 120
+ 130
+
+ - 3700
+
+ 100
+ 110
+
+ - 3700
+ - 1
+ - 50
+ - 50
+ - 3300
+ - 100
+ - 50
+
+ 7
+ 5
+
+
diff --git a/overlay/SM6250SystemUI/Android.bp b/overlay/SM6250SystemUI/Android.bp
new file mode 100644
index 0000000..a46efd6
--- /dev/null
+++ b/overlay/SM6250SystemUI/Android.bp
@@ -0,0 +1,9 @@
+//
+// Copyright (C) 2022 The LineageOS Project
+// SPDX-License-Identifier: Apache-2.0
+//
+
+runtime_resource_overlay {
+ name: "SM6250SystemUI",
+ vendor: true,
+}
diff --git a/overlay/SM6250SystemUI/AndroidManifest.xml b/overlay/SM6250SystemUI/AndroidManifest.xml
new file mode 100644
index 0000000..0e7f3e7
--- /dev/null
+++ b/overlay/SM6250SystemUI/AndroidManifest.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/overlay/SM6250SystemUI/res/values/dimens.xml b/overlay/SM6250SystemUI/res/values/dimens.xml
new file mode 100644
index 0000000..5b3a67e
--- /dev/null
+++ b/overlay/SM6250SystemUI/res/values/dimens.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ 1080px
+ 760px
+
+
+ 760px
+
+
+ 16dp
+
+
diff --git a/overlay/TelephonyResCommon/Android.bp b/overlay/TelephonyResCommon/Android.bp
new file mode 100644
index 0000000..5e08956
--- /dev/null
+++ b/overlay/TelephonyResCommon/Android.bp
@@ -0,0 +1,9 @@
+//
+// Copyright (C) 2022 The LineageOS Project
+// SPDX-License-Identifier: Apache-2.0
+//
+
+runtime_resource_overlay {
+ name: "TelephonyResCommon",
+ product_specific: true,
+}
diff --git a/overlay/TelephonyResCommon/AndroidManifest.xml b/overlay/TelephonyResCommon/AndroidManifest.xml
new file mode 100644
index 0000000..7630be6
--- /dev/null
+++ b/overlay/TelephonyResCommon/AndroidManifest.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/overlay/TelephonyResCommon/res/values/config.xml b/overlay/TelephonyResCommon/res/values/config.xml
new file mode 100644
index 0000000..0750239
--- /dev/null
+++ b/overlay/TelephonyResCommon/res/values/config.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+ 1
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ com.qualcomm.qti.uimGbaApp
+
+
+ org.codeaurora.ims
+
+
+ org.codeaurora.ims
+
+
+ com.google.android.gms
+
+
diff --git a/overlay/WifiOverlay/Android.bp b/overlay/WifiOverlay/Android.bp
new file mode 100644
index 0000000..b2d9b43
--- /dev/null
+++ b/overlay/WifiOverlay/Android.bp
@@ -0,0 +1,9 @@
+//
+// Copyright (C) 2022 The LineageOS Project
+// SPDX-License-Identifier: Apache-2.0
+//
+
+runtime_resource_overlay {
+ name: "WifiOverlay",
+ vendor: true
+}
diff --git a/overlay/WifiOverlay/AndroidManifest.xml b/overlay/WifiOverlay/AndroidManifest.xml
new file mode 100644
index 0000000..b18ced3
--- /dev/null
+++ b/overlay/WifiOverlay/AndroidManifest.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/overlay/WifiOverlay/res/values/config.xml b/overlay/WifiOverlay/res/values/config.xml
new file mode 100644
index 0000000..8e9d3c9
--- /dev/null
+++ b/overlay/WifiOverlay/res/values/config.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ 524288,1048576,5505024,262144,524288,5505024
+
+
+
+
+
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ 3000
+
+
+ false
+
+
+ true
+
+
+ true
+
+
+ 32
+
+
+ false
+
+
diff --git a/permissions/privapp-permissions-hotword.xml b/permissions/privapp-permissions-hotword.xml
new file mode 100644
index 0000000..7ab2bab
--- /dev/null
+++ b/permissions/privapp-permissions-hotword.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/proprietary-files.txt b/proprietary-files.txt
index 0d1959a..884f052 100644
--- a/proprietary-files.txt
+++ b/proprietary-files.txt
@@ -1,7 +1,347 @@
-# Unpinned blobs from V12.5.7.0.RJZMIXM (JOYEUSEGlobal)
+# Unpinned blobs from V13.0.1.0.SJZMIXM (JOYEUSEGlobal)
# curtana: V12.5.5.0.RJWMIXM (CURTANAGlobal)
# excalibur: V12.5.6.0.RJXINXM (EXCALIBURINGlobal)
+# ACDB
+vendor/etc/acdbdata/IDP/atoll-wcd937x-snd-card/IDP_WCD937X_Bluetooth_cal.acdb
+vendor/etc/acdbdata/IDP/atoll-wcd937x-snd-card/IDP_WCD937X_General_cal.acdb
+vendor/etc/acdbdata/IDP/atoll-wcd937x-snd-card/IDP_WCD937X_Global_cal.acdb
+vendor/etc/acdbdata/IDP/atoll-wcd937x-snd-card/IDP_WCD937X_Handset_cal.acdb
+vendor/etc/acdbdata/IDP/atoll-wcd937x-snd-card/IDP_WCD937X_Hdmi_cal.acdb
+vendor/etc/acdbdata/IDP/atoll-wcd937x-snd-card/IDP_WCD937X_Headset_cal.acdb
+vendor/etc/acdbdata/IDP/atoll-wcd937x-snd-card/IDP_WCD937X_Speaker_cal.acdb
+vendor/etc/acdbdata/IDP/atoll-wcd937x-snd-card/IDP_WCD937X_workspaceFile.qwsp
+vendor/etc/acdbdata/IDP/IDP_Bluetooth_cal.acdb
+vendor/etc/acdbdata/IDP/IDP_General_cal.acdb
+vendor/etc/acdbdata/IDP/IDP_Global_cal.acdb
+vendor/etc/acdbdata/IDP/IDP_Handset_cal.acdb
+vendor/etc/acdbdata/IDP/IDP_Hdmi_cal.acdb
+vendor/etc/acdbdata/IDP/IDP_Headset_cal.acdb
+vendor/etc/acdbdata/IDP/IDP_Speaker_cal.acdb
+vendor/etc/acdbdata/IDP/IDP_workspaceFile.qwsp
+vendor/etc/acdbdata/adsp_avs_config.acdb
+
+# ACDB loader
+vendor/lib/libacdb-fts.so
+vendor/lib/libacdbloader.so
+vendor/lib/libacdbrtac.so
+vendor/lib/libadiertac.so
+vendor/lib/libaudcal.so
+
+# ADSP
+vendor/bin/adsprpcd
+vendor/etc/init/vendor.qti.adsprpc-service.rc
+vendor/lib64/libadsp_default_listener.so
+vendor/lib64/libadsprpc.so
+
+# ADSP Modules
+vendor/lib/rfsa/adsp/capi_v2_aptX_CLHDADV_Encoder.so
+vendor/lib/rfsa/adsp/capi_v2_aptX_CLHDAD_Speech_Decoder.so
+vendor/lib/rfsa/adsp/capi_v2_aptX_Classic.so
+vendor/lib/rfsa/adsp/capi_v2_aptX_HD.so
+vendor/lib/rfsa/adsp/libSuperSensor_skel.so
+vendor/lib/rfsa/adsp/libVC1Dec.so
+vendor/lib/rfsa/adsp/libVC1DecDsp_skel.so
+vendor/lib/rfsa/adsp/libVDHexagonSuperPhoto_skel.so
+vendor/lib/rfsa/adsp/libapps_mem_heap.so
+vendor/lib/rfsa/adsp/libarcsoft_dualcam_refocus_skel.so
+vendor/lib/rfsa/adsp/libcamera_nn_skel.so
+vendor/lib/rfsa/adsp/libcvpdsp_skel.so
+vendor/lib/rfsa/adsp/libdspCV_skel.so
+vendor/lib/rfsa/adsp/libdsp_streamer_add_constant.so
+vendor/lib/rfsa/adsp/libdsp_streamer_binning.so
+vendor/lib/rfsa/adsp/libdsp_streamer_skel.so
+vendor/lib/rfsa/adsp/libfastcvadsp.so
+vendor/lib/rfsa/adsp/libfastcvdsp_skel.so
+vendor/lib/rfsa/adsp/libhexagon_nn_skel.so
+vendor/lib/rfsa/adsp/libmialgo_rfs_cdsp_skel.so
+vendor/lib/rfsa/adsp/libscveObjectSegmentation_skel.so
+vendor/lib/rfsa/adsp/libscveT2T_skel.so
+vendor/lib/rfsa/adsp/libsns_device_mode_skel.so
+vendor/lib/rfsa/adsp/libsns_low_lat_stream_skel.so
+vendor/lib/rfsa/adsp/misound_res.bin
+vendor/lib/rfsa/adsp/tas25xx_TI_0.bin
+
+# Alarm
+product/app/PowerOffAlarm/PowerOffAlarm.apk
+vendor/bin/hw/vendor.qti.hardware.alarm@1.0-service
+vendor/bin/power_off_alarm
+vendor/etc/init/vendor.qti.hardware.alarm@1.0-service.rc
+vendor/lib64/hw/vendor.qti.hardware.alarm@1.0-impl.so
+vendor/lib64/vendor.qti.hardware.alarm@1.0.so
+
+# Audio
+vendor/lib/btaudio_offload_if.so
+vendor/lib/libadm.so
+vendor/lib/libaudioconfigstore.so
+vendor/lib/libaudioparsers.so
+vendor/lib/libdrc.so
+vendor/lib/libhdmipassthru.so
+vendor/lib/libqtigef.so
+vendor/lib/libsurround_3mic_proc.so
+
+# Audio FX modules
+vendor/lib/soundfx/libasphere.so
+vendor/lib/soundfx/libshoebox.so
+
+# Battery
+vendor/bin/batterysecret
+vendor/etc/init/init.batterysecret.rc
+
+# Bluetooth
+vendor/bin/hw/android.hardware.bluetooth@1.0-service-qti
+vendor/etc/init/android.hardware.bluetooth@1.0-service-qti.rc
+vendor/lib64/hw/android.hardware.bluetooth@1.0-impl-qti.so
+vendor/lib64/hw/vendor.qti.hardware.bluetooth_sar@1.1-impl.so
+vendor/lib64/hw/vendor.qti.hardware.btconfigstore@1.0-impl.so
+vendor/lib64/hw/vendor.qti.hardware.btconfigstore@2.0-impl.so
+vendor/lib64/libbtnv.so
+vendor/lib64/vendor.qti.hardware.bluetooth_sar@1.0.so
+vendor/lib64/vendor.qti.hardware.bluetooth_sar@1.1.so
+
+# Bluetooth (Audio)
+vendor/lib/hw/audio.bluetooth_qti.default.so
+vendor/lib/hw/vendor.qti.hardware.bluetooth_audio@2.0-impl.so
+vendor/lib/hw/vendor.qti.hardware.bluetooth_audio@2.1-impl.so
+vendor/lib/libbluetooth_audio_session_qti.so
+vendor/lib/libbluetooth_audio_session_qti_2_1.so
+
+# Bluetooth (aptX) - from sunfish - RQ3A.210805.001.A1/7474174
+system_ext/lib64/libaptXHD_encoder.so|e13fa70c97caaa24d061678bdee608eb8850a69e
+system_ext/lib64/libaptX_encoder.so|df1c89d7af1bb35808d5fe3496b04ba066c10cbc
+
+# Camera - from V12.5.7.0.RJZMIXM
+vendor/lib64/hw/camera.qcom.so|1a077e9266303403fe79e44878472346a734a653
+vendor/lib64/hw/com.qti.chi.override.so|0fbcd935c2632f0e3a0c98e670f82dc5c2e6828a
+vendor/lib64/libFaceGrade.so|b3f316c56ab78ec550e8248c8d3ae7ca720d009e
+vendor/lib64/libHalSuperSensorServer.so|faa4d602f226da8d92b197f49ffe29f0ad506426
+vendor/lib64/libSNPE.so|1655b7995d0fb2efe6e1c1b55b08d720a9cada6c
+vendor/lib64/libSuperSensor.so|dd1a4fd609abbb514c11270722da21bdcf272fdf
+vendor/lib64/libSuperSensorCPU.so|3c1857492209bf8034da0a1e098c2c14ce0cf4dc
+vendor/lib64/libVDClearShot.so|d171672e54e8efab69016e6f3ee8469518ddcb01
+vendor/lib64/libVDSuperPhotoAPI.so|787ecee12dc0c9e95f2012f4097091ab7fd34ace
+vendor/lib64/libXMFD_AgeGender.so|1fcc9780c5873fa60f92070dbd7cecbf88e2bd6a
+vendor/lib64/lib_denoiser3.so|6b3a394b464d0bc4b0e73558f2e16359bb0260ff
+vendor/lib64/libalAILDC.so|cd3436990cf35dfa6592074a413b3b9fd0660ca6
+vendor/lib64/libalCFR.so|5dd62743ea6ad86409b1837cd17b565c41992630
+vendor/lib64/libalLDC.so|18745c35fb78af2ae38f5536384f14178e433221
+vendor/lib64/libalhLDC.so|1cb3ac25d39a535ef8acb1fc30797219559019e1
+vendor/lib64/libarcsat.so|78e3f651edff6907453515670e513b1dbbcf7f52
+vendor/lib64/libarcsoft_beautyshot.so|1faae34b96337876f94503a1048f4ce408219dec
+vendor/lib64/libarcsoft_bodyslim.so|d69e70800b1a809425efcde6ee1d3ea3f825ac5c
+vendor/lib64/libarcsoft_distortion_correction.so|86a6cf76276688aa5b658fd4c9721db84376e355
+vendor/lib64/libarcsoft_dualcam_image_optical_zoom.so|e8611505506c3190f0981fd2ffed406b323ec755
+vendor/lib64/libarcsoft_dualcam_optical_zoom_control.so|58e8deac3c7dca09f6bc06eeca95091daa425049
+vendor/lib64/libarcsoft_dualcam_refocus.so|cd52db63782faea7f8200d6b39d71c68e1818ced
+vendor/lib64/libarcsoft_dualcam_refocus_front.so|fc8c1413fde708a33ab6bda67f3e40f8a4e1abd6
+vendor/lib64/libarcsoft_dualcam_refocus_rear_t.so|dcc29a2f40f8174875a4247df08be1068ffc2697
+vendor/lib64/libarcsoft_dualcam_refocus_rear_w.so|5cbeb9bef2f37a731d8daee473b784bfeb19cd84
+vendor/lib64/libarcsoft_portrait_lighting.so|1bc7b14fe69e617529e4dda74e4ef1081ea2ada0
+vendor/lib64/libarcsoft_portrait_lighting_c.so|ca42fa6fc25e231ca70e1caf80a08b18ccfd3d99
+vendor/lib64/libarcsoft_preview_deflicker.so|6f1da5473c0b79e99da1d2ea27db736f06931774
+vendor/lib64/libarcsoft_supernight.so|1195ad355594e43fde906d6f8befaeb4ca930fc2
+vendor/lib64/libbeauty_face_interface.so|91c986da79ad675e58bd57cb317ff6e409a4a297
+vendor/lib64/libc++_shared.so|8bd494c3b1da5d250e0dc81231ea094fd0bccf88
+vendor/lib64/libcamera_dirty.so|6a45221e62b983f6b6100effd4729099fa4823a3
+vendor/lib64/libcamera_nn_stub.so|976251a2a32e75d0c2e397dcce7e5f7e18e4372e
+vendor/lib64/libcamera_scene.so|99af7a5a3f6930cb2c14ce8f3b877124beac04ce
+vendor/lib64/libcom.qti.chinodeutils.so|d20446e03fd33028aa94afa22e6f5ddacc17ec48
+vendor/lib64/libdng_sdk2vendor.so|df7487d013c78b7c6a77ccd9be10fa8e115ed7c8
+vendor/lib64/libfastcvdsp_stub.so|4eaf9f6db96648f1b1a423fb86c0fcce8a220499
+vendor/lib64/libfastcvopt.so|b4a28cc952eed09b9c71717782019cbc3c1befd3
+vendor/lib64/libft2vendor.so|fd87e8dbbb193d263d60bd352813b686633cba65
+vendor/lib64/libmdsprpc.so|523f6501e39101a9d61baffccd20a0d2848e3524
+vendor/lib64/libmiStereoFactoryRemapLib.so|e9e37ea94b4add65b96e223016dcaff8e71af364
+vendor/lib64/libmiai_portraitsupernight.so|1a841cc3479fea9270716f3eb9a7385348823251
+vendor/lib64/libmiai_supernight.so|c21196ce22948c3d28a4c17e0d0a711008c158de
+vendor/lib64/libmialgo_basic.so|f9dec35cf368faad12d32a99efcb20c8e12da3d7
+vendor/lib64/libmialgo_fs.so|d6ca2dcb85e9a7cd9c5ca6b5d11d86c415c4625f
+vendor/lib64/libmialgo_rfs.so|07bf5268fcc57563753cbab003a95e0e5a3fd3f9
+vendor/lib64/libmialgo_sd.so|5f257c9efedfb221567270e9c005ae10809b1dd3
+vendor/lib64/libmialgo_utils.so|a464d98ab3113cfb6278d8680dd402139df656b3
+vendor/lib64/libmialgoengine.so|23cfdd594e01335dc9fbde650b95c2c8215d0928
+vendor/lib64/libmibokeh_712.so|c9bc357bb02400577470e8bfed005ae9885b5f93
+vendor/lib64/libmpbase.so|e6b51e2d501f434eea15ecdc275011d1498301ae
+vendor/lib64/libremosaic_wrapper.so|199af672a7a747a2f59fb54d5e2cfcb6456ed593
+vendor/lib64/libremosaiclib.so|993df71ae96b5f18ebdf3aeec4f0731cc2fd6218
+vendor/lib64/libsdk_sr.so|fbf9defdb45dd4e0e6d79855c9436db75fbdaf72
+vendor/lib64/libsdsprpc.so|96ed968d5d79c3fe8c37f331082c16cf5212dc52
+vendor/lib64/libsnpe_dsp_domains_v2.so|d7aa954f097f7664cd0822a72a8baaf666bf8539
+vendor/lib64/libsns_fastRPC_util.so|4b65d8aa6f0cf869a2621c423728e7328660b725
+vendor/lib64/libst_sr_models.so|4cd3dfd2a9d37e3a07ee1fa785d807ac559b00da
+vendor/lib64/libswregistrationalgo.so|d47dc0456142d3a0d6d8d4739ac1881ec7887364
+vendor/lib64/libsymphony-cpu.so|27c2c692f34b647d9739dcbd19ab68ad3b43636a
+vendor/lib64/libtriplecam_optical_zoom_control.so|4ed124cf96e346cc11d232bdfec06988cf84e8e3
+vendor/lib64/libtriplecam_video_optical_zoom.so|d06d62a3f9ad5c9330b52d55247f8d68369a6f43
+vendor/lib64/libvideofilter_only.so|395a5b7f119f632e55f3115c736e21e2002c1ab8
+vendor/lib64/libvidhance.so|470394c5db179c6bf185a3306a4c3d14ac302819
+vendor/lib64/libxmi_high_dynamic_range.so|be46a4176dd71ce62decb7452d947094f5ab40cb
+vendor/lib64/libxml2_vendor.so|336de129dd9072f31d8aaee3286e5f10c1bf32fe
+
+# Camera (CamX) - from V12.5.7.0.RJZMIXM
+vendor/lib/libcamxfdalgov7.so|aa05df1b8faa0edf6f0cbf25a735f9e4988c96df
+vendor/lib/libcamxfdalgov8.so|5f3914991c53cd403bb89a67aeae2c4ea63a9b3a
+vendor/lib/libcamxfdengine.so|4c910588cba64efe02b95b84c49e29462417bee8
+vendor/lib/libcamxstatscore.so|7c811efa4a42ce0dd9312cc0ddf1550fb4ac3099
+vendor/lib/libcamxswprocessalgo.so|6abf0158016b513365bfcabc2a156ef5d10b1d40
+vendor/lib/libcamxtintlessalgo.so|642309787c0c26c1919fe57cd9522496795e3520
+vendor/lib64/libcamxfdalgov7.so|2c494f89ba9117f60b211ed83e09de21df976977
+vendor/lib64/libcamxfdalgov8.so|f5c42e019942199820fe28b5e53c4e7af5b214c5
+vendor/lib64/libcamxfdengine.so|903650059a97a7ae4239438d9c6ba5943dbd8ede
+vendor/lib64/libcamxstatscore.so|7aa8bf21d202f95849d32792c63e2a361f72d32b
+vendor/lib64/libcamxswprocessalgo.so|17f311711df93814c858b29d516791f87c2588f0
+vendor/lib64/libcamxtintlessalgo.so|f6a9a9238bf199fb5d3defa652e506fc24b89762
+
+# Camera (components) - from V12.5.7.0.RJZMIXM
+vendor/lib64/camera/components/etc/visidon_clearshot_params.xml|ee064b324f3e4369a2d081b774076d2b71f6246a
+vendor/lib64/camera/components/com.almalence.node.sr.so|5c100b81d501af5659041c33b250b09b94f7a952
+vendor/lib64/camera/components/com.altek.node.depurple.so|9c4658c840246452e4f44ca286ed25e1cc37dfb9
+vendor/lib64/camera/components/com.altek.node.distortioncorrection.so|0d86b2e6d63acaa61ffae17f054262d47dba24c9
+vendor/lib64/camera/components/com.arcsoft.node.bodyslim.so|2c1217d5f569e09008df921abd17cebe79fee21a
+vendor/lib64/camera/components/com.arcsoft.node.capturebokeh.so|185146ccf8b5b2a20793307a45e9b29971b2ec13
+vendor/lib64/camera/components/com.arcsoft.node.capturefusion.so|20b27370fcc48bc1b39470dbf3bfbb93d11249d1
+vendor/lib64/camera/components/com.arcsoft.node.deflicker.so|21d3aacbd4f5f59f0c799e433b405426c5415254
+vendor/lib64/camera/components/com.arcsoft.node.distortioncorrection.so|42b4a1100009081e89af16ebf5990e26d54dd3ce
+vendor/lib64/camera/components/com.arcsoft.node.hdr.so|396a88f4af0152ae4938ba9cf03b18ee3b85cecc
+vendor/lib64/camera/components/com.arcsoft.node.hdrchecker.so|1fc7c4513c35f89173eb022117e4f21232dc143f
+vendor/lib64/camera/components/com.arcsoft.node.realtimebokeh.so|11830ee0d3f5c03ac201aec10cc62c1a8589e9af
+vendor/lib64/camera/components/com.arcsoft.node.skinbeautifier.so|27324324daac7712a213b7924bb4caf591018b66
+vendor/lib64/camera/components/com.arcsoft.node.smooth_transition.so|910354850c2d6f7c87ba80ed3b36cb66b5b1d581
+vendor/lib64/camera/components/com.arcsoft.node.superlowlight.so|a7b0493b3f4d4dde2e089404a1f217f871c34bfc
+vendor/lib64/camera/components/com.mi.node.aiasd.so|5881d36a19f0493462e11585a6b87aae13f79b86
+vendor/lib64/camera/components/com.miai.node.portraitsupernight.so|1e33c25ac467b90426b333d5de8fe45f90294be1
+vendor/lib64/camera/components/com.miai.node.supernight.so|34a3d8288903b338b72878069d35ca5f2c760c41
+vendor/lib64/camera/components/com.qti.camx.chiiqutils.so|e04f8056b7652e7a32d6248258f71aa659974c15
+vendor/lib64/camera/components/com.qti.eisv2.so|82757ee665cf360f6e8c3ffeee50e82f6d5cfdc0
+vendor/lib64/camera/components/com.qti.eisv3.so|0b83a9245574fd4a38ab3827fab2ee56f32ac9b9
+vendor/lib64/camera/components/com.qti.hvx.addconstant.so|8ad6990b9d9733bf445509e93d0d96795acd8cd6
+vendor/lib64/camera/components/com.qti.hvx.binning.so|953eeafb72f3e38f68b399c66fe18f31eea498de
+vendor/lib64/camera/components/com.qti.node.depth.so|d53c2de89f1d85bc21254bec1d73f8b5cf1179a6
+vendor/lib64/camera/components/com.qti.node.dewarp.so|0d33c190928cb3a2a739e0f4b5d9a965cffaa886
+vendor/lib64/camera/components/com.qti.node.dummyrtb.so|de524cf98501cf137c9af092d70ba02f4ff6266f
+vendor/lib64/camera/components/com.qti.node.dummysat.so|ea52a89393c0a9c7cd1c5e57f5bcea0b17c3d668
+vendor/lib64/camera/components/com.qti.node.eisv2.so|aaeb06779da8ea2d1d781b96c1e0c57343d4ff30
+vendor/lib64/camera/components/com.qti.node.eisv3.so|645836874675e574ade9aea05ca138ffb3c61cb7
+vendor/lib64/camera/components/com.qti.node.fcv.so|1118b58ca32cf6f70fab3199301667710bbe63de
+vendor/lib64/camera/components/com.qti.node.gpu.so|b560b792ecbc34c3ec94fc85ba34d86d0cdda35e
+vendor/lib64/camera/components/com.qti.node.memcpy.so|3ee91754c8b48f4a5bb5049ecbb12dff61d17909
+vendor/lib64/camera/components/com.qti.node.photosolid.so|90b08ea76a4f1205d25b7514889d475ebec3cb43
+vendor/lib64/camera/components/com.qti.node.remosaic.so|72d71374d0b0f2c681a30b50647c1a27b781427d
+vendor/lib64/camera/components/com.qti.node.stich.so|032f88ed241860127eb72ec4f5e3597d97530346
+vendor/lib64/camera/components/com.qti.node.swregistration.so|ed136c977f74acd3679350fe1edd3084ed9acdb5
+vendor/lib64/camera/components/com.qti.node.watermark.so|8dd11f82d6609d7f0f154922ac4fbb45d4e988ef
+vendor/lib64/camera/components/com.qti.node.xiaomigenderage.so|b4b2516c70fe422a48524aaad70b42c87a166086
+vendor/lib64/camera/components/com.qti.stats.aec.so|04ee7a6553786fbfc6a7e77e1f8ae1848d4e323f
+vendor/lib64/camera/components/com.qti.stats.aecwrapper.so|ca3ec515bb9b4110543f7c9a164c1793db22dbff
+vendor/lib64/camera/components/com.qti.stats.af.so|dbdcb1af53e0d65043505d5501e0c96851d361d4
+vendor/lib64/camera/components/com.qti.stats.afd.so|66169c91d73d5ee4a73caf3abbd14ddea4ae4d55
+vendor/lib64/camera/components/com.qti.stats.afwrapper.so|cc885a07368aa7ef04783454d59963ed7c6a24f4
+vendor/lib64/camera/components/com.qti.stats.asd.so|971b7bd6d518e714bc401d613c9fa335f53496fe
+vendor/lib64/camera/components/com.qti.stats.awb.so|99fd72086b94fe2ef687b7e8ad4a7b87c524c00e
+vendor/lib64/camera/components/com.qti.stats.awbwrapper.so|6631e9aa9b2d3f787a95a9678d99c1db40c7e897
+vendor/lib64/camera/components/com.qti.stats.haf.so|83a08694493d0a140b1ffde11e2a4ccf47717eab
+vendor/lib64/camera/components/com.qti.stats.hafoverride.so|dda771c5b33e6df8f7eea28c74c73ba168617e32
+vendor/lib64/camera/components/com.qti.stats.localhistogram.so|5dc38a0be5760f98865df7eb7b228dff61584a3b
+vendor/lib64/camera/components/com.qti.stats.pdlib.so|1016490cda4a304548a1576d4396d7bd657cc285
+vendor/lib64/camera/components/com.qti.stats.pdlibsony.so|a3b098f1286195359cbf9e614d6ca2beef0d5ac0
+vendor/lib64/camera/components/com.qti.stats.pdlibwrapper.so|83b74a88e43c132edc110345dc40d2b5897f42d7
+vendor/lib64/camera/components/com.qtistatic.stats.aec.so|a3f81c81c5d4b61e579eefbc1996a34eafc6df76
+vendor/lib64/camera/components/com.qtistatic.stats.af.so|6a7daf793a5325a71283ce81d3ad2969dbb3cb58
+vendor/lib64/camera/components/com.qtistatic.stats.awb.so|c716abb77541e496461ec6f196c32de7f9d7d94b
+vendor/lib64/camera/components/com.qtistatic.stats.pdlib.so|77bcc45327aeeb9adb0f7a35bd8126f068aae4d4
+vendor/lib64/camera/components/com.st.node.sr.so|be775e6b6daee0b3d85f6f9827eec1d7d1cf5335
+vendor/lib64/camera/components/com.vidhance.node.eis.so|c2ca34a16e5d54055b5f42356b58b46afeead5ff
+vendor/lib64/camera/components/com.vidhance.stats.aec_dmbr.so|e10e5fe036cd67a081a8c0092c6158c38da3acf4
+vendor/lib64/camera/components/com.visidon.node.clearshot.so|4e48ee5f937aa466ee7d58ab045d7fa72cf24454
+vendor/lib64/camera/components/com.visidon.node.sr.so|2ff6db8d6969138f6d1356ea0b286e28ad876d37
+vendor/lib64/camera/components/com.xiaomi.node.mibokeh.so|52c270f779d2b55dfb37a10fe95de285e85b167e
+vendor/lib64/camera/components/com.xiaomi.node.mifilter.so|1d590365c15c9a73c5f840a318eef7571d69b8fe
+vendor/lib64/camera/components/com.xiaomi.node.mifragment.so|b7506eeff578e61215f2ecb97ecde12f133b89e6
+vendor/lib64/camera/components/com.xiaomi.node.mimovie.so|cb5c4e8fdf97f424b200204a54d37801824a509a
+vendor/lib64/camera/components/com.xiaomi.node.misegment.so|2c33df2b89d6de8b08f2765b31363b2f806f2d68
+vendor/lib64/camera/components/libdepthmapwrapper.so|b4364143e430bd222742f8585b65e533bc1077b2
+
+# Camera (configs) - from V12.5.7.0.RJZMIXM
+vendor/etc/camera/CFR_para_M_src1.bin|8eeadb3512344730b3f106644352e84bd9015b9a
+vendor/etc/camera/CFR_para_M_src2.bin|8eeadb3512344730b3f106644352e84bd9015b9a
+vendor/etc/camera/CFR_para_M_src3.bin|e44cd55af5471410074a550da53574f198028dcc
+vendor/etc/camera/CFR_para_UW_src1.bin|ac50c289baacb415f86505089c3d0e1c9134dbbb
+vendor/etc/camera/CFR_para_UW_src2.bin|a8c647a7e02235829f6a912106f9a242249394ea
+vendor/etc/camera/CFR_para_UW_src3.bin|ac50c289baacb415f86505089c3d0e1c9134dbbb
+vendor/etc/camera/LDC_FPC_TUNING_DATA.bin|d562d957c22a9fb915f014d9d1fcbff8a1b51ec9
+vendor/etc/camera/LDC_PACKDATA_VENDORID_0x01.bin|646173e2a2ebc6d50dd2d3d1b3e164f5bd8e1c4a
+vendor/etc/camera/LDC_PACKDATA_VENDORID_0x07.bin|150d6a584014f8d9f2dfe40efa0cf1d989c33659
+vendor/etc/camera/almalence_sr_params_tele.config|a5216343ebac981b47670522cf0a56960181f5cd
+vendor/etc/camera/almalence_sr_params_wide.config|9567cf89e5347348ea5e10035c3f2635b9fd8162
+vendor/etc/camera/beauty_ui9_intelligent_params.config|61b3c3b6cd4ac946ddbc41a807b5906bb2c1e113
+vendor/etc/camera/body_slim_ui9_params.config|6a341b766aa06b6f8496fd96c440ea27a023eb0b
+vendor/etc/camera/camxoverridesettings.txt|3ba4f5274d653e4590e0fa55ed147a51cb6ad7eb
+vendor/etc/camera/eisoverridesettings.txt|4ea9ba43f55eaf0ac3106a0b63c49654af741270
+vendor/etc/camera/eyelineblush.cng|f85c3388ab3112ad8963e004c47b131e5d567cca
+vendor/etc/camera/golden_rear_dc_cal_wt.bin|a619dc6b336a187fcb7b2f50e8ce49abf6e33906
+vendor/etc/camera/hdr_ui9_params.config|ae257e7c20f64651b083e06bc75e4ae0658cfd54
+vendor/etc/camera/libsnpe_dsp_v66_domains_v2_skel.so|e3896008cce53c03adf1edace20a993f272eeb0e
+vendor/etc/camera/mibokeh_712_opencl.bin|bfb53cec3eb6feb0388db052ee1d4e97cd9582a2
+vendor/etc/camera/mibokeh_712_parameter.bin|1360bea7d63b1eb28047822176759559e7f4c30e
+vendor/etc/camera/model_back.dlc|93072fd8b363b6aad637e063734b3c601f927869
+vendor/etc/camera/model_front.dlc|0605ed7ef2d45fd73bfc286a2e435cc4c3b7fbc8
+vendor/etc/camera/sceneDetection.xml|0e233ccba0e757b64c42e724f5f6150676b009ba
+vendor/etc/camera/vidhance_calibration|b4c1775771a1a5d03e8401e7a6091798701dc8aa
+vendor/etc/camera/vidhance_calibration_gc8034|836a329142bbfa77525567963e88379686e29b2f
+vendor/etc/camera/vidhance_calibration_imx582|377d5cc5e7dce32bb5c4bccd581f6945744be614
+vendor/etc/camera/vidhance_calibration_ov8856|32b776da7e6189c3045a1f4f01a4601d0f2a60b0
+vendor/etc/camera/vidhance_calibration_s5kgm2|49e036cda525cc1a73dc2a87400fd11c1d7e879e
+vendor/etc/camera/vidhance_calibration_s5kgw1|b4c1775771a1a5d03e8401e7a6091798701dc8aa
+vendor/etc/camera/watermark_font_2300_3199.dat|470c10429888b89966af5eb610b13b843a1a0248
+
+# Camera (firmware) - from V12.5.7.0.RJZMIXM
+vendor/firmware/CAMERA_ICP.elf|4eccbb6081b3171414e838f62f7d7936b8181594
+vendor/firmware/osc_rtp_24K_5s.bin|9f32c9bf0776a566d3254129a028dae9bed76b81
+
+# Camera (sensors) - from V12.5.7.0.RJZMIXM
+vendor/lib64/camera/com.qti.eeprom.sunny_gc8034.so|b5436b76188efc69a6e86f5b549549ea9b4a3180
+vendor/lib64/camera/com.qti.sensor.curtana_gc02m1.so|e35ea281e6ca94d0846c7eb687cf49e5880146d9
+vendor/lib64/camera/com.qti.sensor.curtana_gc8034.so|7f58d106c5146ff6ca9588d4ca8f69baf61ef4fc
+vendor/lib64/camera/com.qti.sensor.curtana_hi556.so|c8fc67969c722e78d9f81fbe2b0036e177fb6fbd
+vendor/lib64/camera/com.qti.sensor.curtana_imx582.so|3d51f313e3c98f16f4cb4f5eab82a54628fe8aae
+vendor/lib64/camera/com.qti.sensor.curtana_ov16a1q.so|5a8c07a5b33b4f64b70b59727b7748128682e4af
+vendor/lib64/camera/com.qti.sensor.curtana_ov2180.so|74b12156aff963b07d0629c418285cb4874a187a
+vendor/lib64/camera/com.qti.sensor.curtana_ov8856.so|dafad7fdb29c8b332e8a8621c1900c26bc1ad48a
+vendor/lib64/camera/com.qti.sensor.curtana_s5k5e9.so|1889282f81138e3223d6bdfebaabfe1d894d81dd
+vendor/lib64/camera/com.qti.sensor.curtana_s5kgm2.so|ebeff8e36f966c309e578639d678122842158df6
+vendor/lib64/camera/com.qti.sensor.excalibur_gc02m1.so|8efe01ca07b02dd74a225176d83efd64d728219c
+vendor/lib64/camera/com.qti.sensor.excalibur_gc8034.so|455a36b8c0502145065c8f5d0f5b3f6d02fdd06e
+vendor/lib64/camera/com.qti.sensor.excalibur_hi556.so|7b71a336e712b92cbf5ba2c36d3967c0fab01cf0
+vendor/lib64/camera/com.qti.sensor.excalibur_ov2180.so|b4e427f7b200ee3781f8321e7f11fd86e9d4457c
+vendor/lib64/camera/com.qti.sensor.excalibur_ov32a1q.so|9e565702a779d0ca46546f12b43a903d0ea3d9b8
+vendor/lib64/camera/com.qti.sensor.excalibur_ov8856.so|14bb8ea2d23fd66c83d21366d2c0635450f3f7f9
+vendor/lib64/camera/com.qti.sensor.excalibur_s5k5e9.so|8afac1f1841750eef35cc36c8e6a96a2c838ee15
+vendor/lib64/camera/com.qti.sensor.excalibur_s5kgw1.so|b45697a5370c9a4d81e50b04a1ec07656972c0e1
+vendor/lib64/camera/com.qti.sensormodule.ofilm_gc02m1.bin|423b7266fa8f0164215b9f7dd0c1fe490a1e75c1
+vendor/lib64/camera/com.qti.sensormodule.ofilm_ov16a1q.bin|15b857613b7e34006370f0d82bec18c03aad47a3
+vendor/lib64/camera/com.qti.sensormodule.ofilm_ov2180.bin|2461ce873bcdd0f0d185b52d95d1751d77260bb0
+vendor/lib64/camera/com.qti.sensormodule.ofilm_ov8856.bin|412faf45092f205f08e72d8376f0d399dff0d5e7
+vendor/lib64/camera/com.qti.sensormodule.ofilm_s5k5e9.bin|9b216ca0c0803d3a988c45589c93c6eb4404f1de
+vendor/lib64/camera/com.qti.sensormodule.sunny_gc02m1.bin|888e29e49b068647223bfe92034f24ae085b6075
+vendor/lib64/camera/com.qti.sensormodule.sunny_gc8034.bin|94c715a27a1d93024e2cc946a4bc1545b2596a83
+vendor/lib64/camera/com.qti.sensormodule.sunny_ov16a1q.bin|a2f57bf6b7aa3c2b295eee794971eaac8206f72a
+vendor/lib64/camera/com.qti.sensormodule.sunny_ov2180.bin|1584033c43aa6499978fc875e7b07ba4509d20f2
+vendor/lib64/camera/com.qti.sensormodule.sunny_ov8856.bin|7b9c098ebebe5db9ca7d2c0357946e66c0cfc3f5
+vendor/lib64/camera/com.qti.sensormodule.sunny_s5k5e9.bin|3ebd6af6201d9d0b11353a889c44d80e42822b4c
+vendor/lib64/camera/com.qti.tuned.default.bin|87838231dff84847b0d7495badecf6a9806254c2
+vendor/lib64/camera/com.qti.tuned.ofilm_ov16a1q.bin|66cbcbc32196b8f8c633127a5e110be1799073c6
+vendor/lib64/camera/com.qti.tuned.ofilm_ov2180.bin|4e10cc1774ca56eb61ca4df866c251bfd218a25e
+vendor/lib64/camera/com.qti.tuned.ofilm_ov8856.bin|50fbb05a9563111ddf1ba7ade2239bc0439027fe
+vendor/lib64/camera/com.qti.tuned.ofilm_s5k5e9.bin|73f37d722640ecd831d2e76a8cc68c635bc4141b
+vendor/lib64/camera/com.qti.tuned.sunny_gc8034.bin|f914875042960f55ea3ee1f3645fe647c5962a98
+vendor/lib64/camera/com.qti.tuned.sunny_ov16a1q.bin|66cbcbc32196b8f8c633127a5e110be1799073c6
+vendor/lib64/camera/com.qti.tuned.sunny_ov2180.bin|4e10cc1774ca56eb61ca4df866c251bfd218a25e
+vendor/lib64/camera/com.qti.tuned.sunny_s5k5e9.bin|c0b60451ae74ca2e5447049b51306f3ae9ebffea
+vendor/lib64/camera/fdconfigpreview.bin|e81c3e77382551ab8f7a3a44a594009976de10b4
+vendor/lib64/camera/fdconfigpreviewlite.bin|e81c3e77382551ab8f7a3a44a594009976de10b4
+vendor/lib64/camera/fdconfigvideo.bin|e81c3e77382551ab8f7a3a44a594009976de10b4
+vendor/lib64/camera/fdconfigvideolite.bin|e81c3e77382551ab8f7a3a44a594009976de10b4
+
# Camera sensors (curtana & gram) - from curtana
vendor/lib64/camera/com.qti.sensormodule.ofilm_gc02m1_filter.bin|4687d1d2eb8d36b5bed2ceafb197ef21d22bd97e
vendor/lib64/camera/com.qti.sensormodule.ofilm_s5kgm2.bin|5ebb58c43e95d598f35a0808a0497f51affdcbd6
@@ -12,24 +352,852 @@ vendor/lib64/camera/com.qti.tuned.ofilm_gc02m1_filter.bin|fdcb7bcb026f889b002d0b
vendor/lib64/camera/com.qti.tuned.ofilm_s5kgm2.bin|8b15943a79f9d82d7ceb6055da2700b89bb29b7d
vendor/lib64/camera/com.qti.tuned.sunny_imx582.bin|a43b96a3d4b361a388c89fba46cdf0409d33da17
-# Camera sensors (curtana & joyeuse)
-vendor/lib64/camera/com.qti.sensormodule.sunny_hi556.bin
-vendor/lib64/camera/com.qti.tuned.sunny_hi556.bin
+# Camera sensors (curtana & joyeuse) - from V12.5.7.0.RJZMIXM
+vendor/lib64/camera/com.qti.sensormodule.sunny_hi556.bin|699854c027d805565ca93fc5f0f9161e83bd7c63
+vendor/lib64/camera/com.qti.tuned.sunny_hi556.bin|f8cabd9bb7167bd47120b2a97beb24f663ee8ab2
-# Camera sensors (excalibur & joyeuse)
-vendor/lib64/camera/com.qti.sensormodule.ofilm_s5kgw1.bin
-vendor/lib64/camera/com.qti.sensormodule.ofilm_s5kgw1_mirrorflip.bin
-vendor/lib64/camera/com.qti.sensormodule.sunny_s5kgw1.bin
-vendor/lib64/camera/com.qti.sensormodule.sunny_s5kgw1_mirrorflip.bin
-vendor/lib64/camera/com.qti.tuned.sunny_gc02m1.bin
-vendor/lib64/camera/com.qti.tuned.sunny_s5kgw1.bin
+# Camera sensors (excalibur & joyeuse) - from V12.5.7.0.RJZMIXM
+vendor/lib64/camera/com.qti.sensormodule.ofilm_s5kgw1.bin|d7d7d51d436d46da23bb985982151cc3595e0634
+vendor/lib64/camera/com.qti.sensormodule.ofilm_s5kgw1_mirrorflip.bin|5f980c2f9520998ac0b53c938d4ce2c952c4c80b
+vendor/lib64/camera/com.qti.sensormodule.sunny_s5kgw1.bin|98a20d97d7babb7aab1406d5a6b0a3d7cfeeae41
+vendor/lib64/camera/com.qti.sensormodule.sunny_s5kgw1_mirrorflip.bin|8e170a3952e7032f8354e9f148893b2a24fc2e7d
+vendor/lib64/camera/com.qti.tuned.sunny_gc02m1.bin|f4764fb7a99b7a61b4569362959f444db910031b
+vendor/lib64/camera/com.qti.tuned.sunny_s5kgw1.bin|042dab61027b054bc176c779e4b079678a9102bf
# Camera sensors (excalibur) - from excalibur
vendor/lib64/camera/com.qti.sensormodule.sunny_ov32a1q.bin|a6f8e2da547f15d315412f81c58d4ba6888641d5
vendor/lib64/camera/com.qti.tuned.sunny_ov32a1q.bin|ea825eadeacdc02debdf1b6406706bf695e11bc0
-# Camera sensors (joyeuse)
-vendor/lib64/camera/com.qti.tuned.ofilm_s5kgw1.bin
+# Camera sensors (joyeuse) - from V12.5.7.0.RJZMIXM
+vendor/lib64/camera/com.qti.tuned.ofilm_s5kgw1.bin|c2cf28a6473bc3927f418623886abf39bd069341
+
+# CDSP
+vendor/bin/cdsprpcd
+vendor/etc/init/vendor.qti.cdsprpc-service.rc
+vendor/lib64/libcdsp_default_listener.so
+vendor/lib64/libcdsprpc.so
+
+# Charger
+vendor/bin/hvdcp_opti
+vendor/etc/init/vendor.qti.hardware.charger_monitor@1.0-service.rc
+vendor/etc/charger_fstab.qti
+
+# CNE
+vendor/app/CneApp/CneApp.apk
+vendor/app/IWlanService/IWlanService.apk
+vendor/bin/cnd
+vendor/etc/cne/wqeclient/ATT/ATT_profile1.xml
+vendor/etc/cne/wqeclient/ATT/ATT_profile2.xml
+vendor/etc/cne/wqeclient/ATT/ATT_profile3.xml
+vendor/etc/cne/wqeclient/ATT/ATT_profile4.xml
+vendor/etc/cne/wqeclient/ATT/ATT_profile5.xml
+vendor/etc/cne/wqeclient/ATT/ATT_profile6.xml
+vendor/etc/cne/wqeclient/ROW/ROW_profile1.xml
+vendor/etc/cne/wqeclient/ROW/ROW_profile15.xml
+vendor/etc/cne/wqeclient/ROW/ROW_profile16.xml
+vendor/etc/cne/wqeclient/ROW/ROW_profile17.xml
+vendor/etc/cne/wqeclient/ROW/ROW_profile18.xml
+vendor/etc/cne/wqeclient/ROW/ROW_profile19.xml
+vendor/etc/cne/wqeclient/ROW/ROW_profile2.xml
+vendor/etc/cne/wqeclient/ROW/ROW_profile20.xml
+vendor/etc/cne/wqeclient/ROW/ROW_profile21.xml
+vendor/etc/cne/wqeclient/ROW/ROW_profile3.xml
+vendor/etc/cne/wqeclient/ROW/ROW_profile32.xml
+vendor/etc/cne/wqeclient/ROW/ROW_profile4.xml
+vendor/etc/cne/wqeclient/ROW/ROW_profile5.xml
+vendor/etc/cne/wqeclient/ROW/ROW_profile6.xml
+vendor/etc/cne/wqeclient/ROW/ROW_profile7.xml
+vendor/etc/cne/wqeclient/VZW/VZW_profile1.xml
+vendor/etc/cne/wqeclient/VZW/VZW_profile2.xml
+vendor/etc/cne/wqeclient/VZW/VZW_profile3.xml
+vendor/etc/cne/wqeclient/VZW/VZW_profile4.xml
+vendor/etc/cne/wqeclient/VZW/VZW_profile5.xml
+vendor/etc/cne/wqeclient/VZW/VZW_profile6.xml
+vendor/etc/cne/mwqem.conf
+vendor/etc/cne/profileMwqem.xml
+vendor/etc/default-permissions/com.qualcomm.qti.cne.xml
+vendor/etc/init/cnd.rc
+vendor/lib64/libcne.so
+vendor/lib64/libcneapiclient.so
+vendor/lib64/libcneoplookup.so
+vendor/lib64/libwms.so
+vendor/lib64/libwqe.so
+vendor/lib64/libxml.so
+vendor/lib64/vendor.qti.data.factory@2.0.so
+vendor/lib64/vendor.qti.data.factory@2.1.so
+vendor/lib64/vendor.qti.data.factory@2.2.so
+vendor/lib64/vendor.qti.data.factory@2.3.so
+vendor/lib64/vendor.qti.data.mwqem@1.0.so
+vendor/lib64/vendor.qti.data.slm@1.0.so
+vendor/lib64/vendor.qti.hardware.data.cne.internal.api@1.0.so
+vendor/lib64/vendor.qti.hardware.data.cne.internal.constants@1.0.so
+vendor/lib64/vendor.qti.hardware.data.cne.internal.server@1.0.so
+vendor/lib64/vendor.qti.hardware.data.connection@1.0.so
+vendor/lib64/vendor.qti.hardware.data.connection@1.1.so
+vendor/lib64/vendor.qti.hardware.data.dynamicdds@1.0.so
+vendor/lib64/vendor.qti.hardware.data.iwlan@1.0.so
+vendor/lib64/vendor.qti.hardware.data.latency@1.0.so
+vendor/lib64/vendor.qti.hardware.data.lce@1.0.so
+vendor/lib64/vendor.qti.hardware.data.qmi@1.0.so
+vendor/lib64/vendor.qti.hardware.mwqemadapter@1.0.so
+vendor/lib64/vendor.qti.hardware.slmadapter@1.0.so
+vendor/lib64/vendor.qti.latency@2.0.so
+vendor/lib64/vendor.qti.latency@2.1.so
+
+# Configstore
+vendor/bin/hw/vendor.qti.hardware.capabilityconfigstore@1.0-service
+vendor/etc/init/vendor.qti.hardware.capabilityconfigstore@1.0-service.rc
+vendor/lib64/hw/vendor.qti.hardware.capabilityconfigstore@1.0-impl.so
+
+# Consumerir
+vendor/lib64/hw/consumerir.default.so:vendor/lib64/hw/consumerir.atoll.so
+
+# CVP
+vendor/lib64/libcvp.so
+vendor/lib64/libcvp_common.so
+vendor/lib64/libcvp_stub.so
+vendor/lib64/vendor.qti.hardware.cvp@1.0.so
+
+# DPM
+system_ext/bin/dpmd
+system_ext/etc/dpm/dpm.conf
+system_ext/etc/init/dpmd.rc
+system_ext/etc/permissions/com.qti.dpmframework.xml
+system_ext/etc/permissions/dpmapi.xml
+system_ext/framework/com.qti.dpmframework.jar
+system_ext/framework/dpmapi.jar
+system_ext/lib64/com.qualcomm.qti.dpm.api@1.0.so
+system_ext/lib64/libdpmctmgr.so
+system_ext/lib64/libdpmfdmgr.so
+system_ext/lib64/libdpmframework.so
+system_ext/lib64/libdpmtcm.so
+system_ext/priv-app/dpmserviceapp/dpmserviceapp.apk
+vendor/bin/dpmQmiMgr
+vendor/etc/init/dpmQmiMgr.rc
+vendor/lib64/com.qualcomm.qti.dpm.api@1.0.so
+vendor/lib64/libdpmqmihal.so
+
+# DRM
+vendor/bin/qseecomd
+vendor/etc/init/qseecomd.rc
+vendor/etc/gpfspath_oem_config.xml
+vendor/lib64/libGPreqcancel.so
+vendor/lib64/libGPreqcancel_svc.so
+vendor/lib64/libQSEEComAPI.so
+vendor/lib64/libcpion.so
+vendor/lib64/libdrmfs.so
+vendor/lib64/libdrmtime.so
+vendor/lib64/libminkdescriptor.so
+vendor/lib64/libminksocket.so
+vendor/lib64/liboemcrypto.so
+vendor/lib64/libops.so
+vendor/lib64/libqisl.so
+vendor/lib64/librpmb.so
+vendor/lib64/libssd.so
+vendor/lib64/libtrustedapploader.so
+
+# DRM (Widevine)
+vendor/bin/hw/android.hardware.drm@1.3-service.widevine
+vendor/etc/init/android.hardware.drm@1.3-service.widevine.rc
+vendor/etc/vintf/manifest/manifest_android.hardware.drm@1.3-service.widevine.xml
+vendor/lib64/libwvhidl.so
+
+# DSP
+vendor/bin/dspservice
+vendor/etc/init/vendor.qti.hardware.dsp@1.0-service.rc
+vendor/etc/seccomp_policy/vendor.qti.hardware.dsp.policy
+vendor/lib64/vendor.qti.hardware.dsp@1.0.so
+
+# Fingerprint
+vendor/lib64/hw/fingerprint.goodix.default.so
+vendor/lib64/com.fingerprints.extension@1.0.so
+vendor/lib64/libgf_ca.so
+vendor/lib64/libgf_hal.so
+vendor/lib64/libgoodixhwfingerprint.so
+vendor/lib64/libvendor.goodix.hardware.biometrics.fingerprint@2.1.so
+
+# Fingerprint - from Kuba Wojciechowski
+vendor/lib64/hw/fingerprint.fpc.default.so|645bf256da2db3ce60dddab9b3282ab7241bbcb0
+
+# FM
+system_ext/lib64/fm_helium.so
+system_ext/lib64/libfm-hci.so
+system_ext/lib64/vendor.qti.hardware.fm@1.0.so
+vendor/lib64/hw/vendor.qti.hardware.fm@1.0-impl.so
+vendor/lib64/ftm_fm_lib.so
+vendor/lib64/vendor.qti.hardware.fm@1.0.so
+
+# Gatekeeper
+vendor/bin/hw/android.hardware.gatekeeper@1.0-service-qti
+vendor/etc/init/android.hardware.gatekeeper@1.0-service-qti.rc
+vendor/lib64/hw/android.hardware.gatekeeper@1.0-impl-qti.so
+
+# Graphics (Adreno)
+vendor/lib/egl/eglSubDriverAndroid.so
+vendor/lib/egl/libEGL_adreno.so
+vendor/lib/egl/libGLESv1_CM_adreno.so
+vendor/lib/egl/libGLESv2_adreno.so
+vendor/lib/egl/libq3dtools_adreno.so
+vendor/lib/egl/libq3dtools_esx.so
+vendor/lib/hw/vulkan.adreno.so
+vendor/lib/libC2D2.so
+vendor/lib/libCB.so
+vendor/lib/libOpenCL.so
+vendor/lib/libVkLayer_q3dtools.so
+vendor/lib/libadreno_app_profiles.so
+vendor/lib/libadreno_utils.so
+vendor/lib/libc2d30_bltlib.so
+vendor/lib/libgpudataproducer.so
+vendor/lib/libgsl.so
+vendor/lib/libllvm-glnext.so
+vendor/lib/libllvm-qcom.so
+vendor/lib64/egl/eglSubDriverAndroid.so
+vendor/lib64/egl/libEGL_adreno.so
+vendor/lib64/egl/libGLESv1_CM_adreno.so
+vendor/lib64/egl/libGLESv2_adreno.so
+vendor/lib64/egl/libq3dtools_adreno.so
+vendor/lib64/egl/libq3dtools_esx.so
+vendor/lib64/hw/vulkan.adreno.so
+vendor/lib64/libC2D2.so
+vendor/lib64/libCB.so
+vendor/lib64/libOpenCL.so
+vendor/lib64/libVkLayer_q3dtools.so
+vendor/lib64/libadreno_app_profiles.so
+vendor/lib64/libadreno_utils.so
+vendor/lib64/libc2d30_bltlib.so
+vendor/lib64/libgpudataproducer.so
+vendor/lib64/libgsl.so
+vendor/lib64/libllvm-glnext.so
+vendor/lib64/libllvm-qcom.so
+
+# Graphics (SDM)
+vendor/etc/SVIConfig.xml
+vendor/lib64/libdisp-aba.so
+vendor/lib64/libdisplayqos.so
+vendor/lib64/libhdr_tm.so
+vendor/lib64/libqseed3.so
+vendor/lib64/libsdedrm.so
+vendor/lib64/libsdm-color.so
+vendor/lib64/libsdm-colormgr-algo.so
+vendor/lib64/libsdm-diag.so
+vendor/lib64/libsdm-disp-vndapis.so
+vendor/lib64/libsdmextension.so
+vendor/lib64/libtinyxml2_1.so
+
+# Graphics firmware
+vendor/firmware/a615_zap.b00
+vendor/firmware/a615_zap.b01
+vendor/firmware/a615_zap.b02
+vendor/firmware/a615_zap.elf
+vendor/firmware/a615_zap.mdt
+vendor/firmware/a618_gmu.bin
+vendor/firmware/a630_sqe.fw
+
+# GPS
+vendor/app/CACertService/CACertService.apk
+vendor/bin/hw/android.hardware.gnss@2.1-service-qti
+vendor/bin/garden_app
+vendor/bin/loc_launcher
+vendor/bin/lowi-server
+vendor/bin/mlid
+vendor/bin/slim_daemon
+vendor/bin/tloc_daemon
+vendor/bin/xtra-daemon
+vendor/bin/xtwifi-client
+vendor/bin/xtwifi-inet-agent
+vendor/etc/init/android.hardware.gnss@2.1-service-qti.rc
+vendor/etc/vintf/manifest/android.hardware.gnss@2.1-service-qti.xml
+vendor/etc/vintf/manifest/vendor.qti.gnss@4.0-service.xml
+vendor/etc/apdr.conf
+vendor/etc/cacert_location.pem
+vendor/etc/flp.conf
+vendor/etc/gps.conf
+vendor/etc/izat.conf
+vendor/etc/lowi.conf
+vendor/etc/sap.conf
+vendor/etc/xtra_root_cert.pem
+vendor/etc/xtwifi.conf
+vendor/lib64/hw/android.hardware.gnss@2.1-impl-qti.so
+vendor/lib64/hw/vendor.qti.gnss@4.0-impl.so
+vendor/lib64/libaoa.so
+vendor/lib64/libbatching.so
+vendor/lib64/libcacertclient.so
+vendor/lib64/libcdfw.so
+vendor/lib64/libcdfw_remote_api.so
+vendor/lib64/libdataitems.so
+vendor/lib64/libgarden.so
+vendor/lib64/libgarden_haltests_e2e.so
+vendor/lib64/libgdtap.so
+vendor/lib64/libgeofencing.so
+vendor/lib64/libgnss.so
+vendor/lib64/libgps.utils.so
+vendor/lib64/libizat_client_api.so
+vendor/lib64/libizat_core.so
+vendor/lib64/libjnihelper.so
+vendor/lib64/liblbs_core.so
+vendor/lib64/libloc_api_v02.so
+vendor/lib64/libloc_core.so
+vendor/lib64/libloc_socket.so
+vendor/lib64/liblocation_api.so
+vendor/lib64/liblocationservice.so
+vendor/lib64/liblocationservice_glue.so
+vendor/lib64/liblowi_client.so
+vendor/lib64/liblowi_wifihal.so
+vendor/lib64/libmmosal.so
+vendor/lib64/libqcc_file_agent.so
+vendor/lib64/libqdma_file_agent.so
+vendor/lib64/libsynergy_loc_api.so
+vendor/lib64/libxtadapter.so
+vendor/lib64/vendor.qti.gnss@1.0.so
+vendor/lib64/vendor.qti.gnss@1.1.so
+vendor/lib64/vendor.qti.gnss@1.2.so
+vendor/lib64/vendor.qti.gnss@2.0.so
+vendor/lib64/vendor.qti.gnss@2.1.so
+vendor/lib64/vendor.qti.gnss@3.0.so
+vendor/lib64/vendor.qti.gnss@4.0-service.so
+vendor/lib64/vendor.qti.gnss@4.0.so
+vendor/lib64/vendor.qti.hardware.cacert@1.0.so
+vendor/lib64/vendor.qti.hardware.qccsyshal@1.0.so
+
+# HotwordEnrollment
+product/priv-app/HotwordEnrollmentOKGoogleHEXAGON/HotwordEnrollmentOKGoogleHEXAGON.apk
+product/priv-app/HotwordEnrollmentXGoogleHEXAGON/HotwordEnrollmentXGoogleHEXAGON.apk
+system_ext/etc/permissions/com.android.hotwordenrollment.common.util.xml
+system_ext/framework/com.android.hotwordenrollment.common.util.jar
+
+# IMS
+system_ext/app/uceShimService/uceShimService.apk
+system_ext/etc/permissions/com.qualcomm.qti.imscmservice-V2.0-java.xml
+system_ext/etc/permissions/com.qualcomm.qti.imscmservice-V2.1-java.xml
+system_ext/etc/permissions/com.qualcomm.qti.imscmservice-V2.2-java.xml
+system_ext/framework/com.qualcomm.qti.imscmservice-V2.0-java.jar
+system_ext/framework/com.qualcomm.qti.imscmservice-V2.1-java.jar
+system_ext/framework/com.qualcomm.qti.imscmservice-V2.2-java.jar
+system_ext/lib64/com.qualcomm.qti.imscmservice@2.0.so
+system_ext/lib64/com.qualcomm.qti.imscmservice@2.1.so
+system_ext/lib64/com.qualcomm.qti.imscmservice@2.2.so
+system_ext/lib64/com.qualcomm.qti.uceservice@2.0.so
+system_ext/lib64/com.qualcomm.qti.uceservice@2.1.so
+system_ext/lib64/com.qualcomm.qti.uceservice@2.2.so
+system_ext/lib64/com.qualcomm.qti.uceservice@2.3.so
+system_ext/lib64/lib-imsvideocodec.so
+system_ext/lib64/lib-imsvt.so
+system_ext/lib64/lib-imsvtextutils.so
+system_ext/lib64/lib-imsvtutils.so
+system_ext/lib64/libdiag_system.so
+system_ext/lib64/libimscamera_jni.so
+system_ext/lib64/libimsmedia_jni.so
+system_ext/lib64/vendor.qti.diaghal@1.0.so
+system_ext/lib64/vendor.qti.hardware.radio.ims@1.0.so
+system_ext/lib64/vendor.qti.hardware.radio.ims@1.1.so
+system_ext/lib64/vendor.qti.hardware.radio.ims@1.2.so
+system_ext/lib64/vendor.qti.hardware.radio.ims@1.3.so
+system_ext/lib64/vendor.qti.hardware.radio.ims@1.4.so
+system_ext/lib64/vendor.qti.ims.callcapability@1.0.so
+system_ext/lib64/vendor.qti.ims.callinfo@1.0.so
+system_ext/lib64/vendor.qti.ims.factory@1.0.so
+system_ext/lib64/vendor.qti.ims.rcsconfig@1.0.so
+system_ext/lib64/vendor.qti.imsrtpservice@3.0.so
+system_ext/priv-app/ims/ims.apk
+vendor/bin/ims_rtp_daemon
+vendor/bin/imsdatadaemon
+vendor/bin/imsqmidaemon
+vendor/bin/imsrcsd
+vendor/etc/init/ims_rtp_daemon.rc
+vendor/etc/init/imsdatadaemon.rc
+vendor/etc/init/imsqmidaemon.rc
+vendor/etc/init/imsrcsd.rc
+vendor/etc/seccomp_policy/imsrtp.policy
+vendor/lib64/com.qualcomm.qti.imscmservice@2.0.so
+vendor/lib64/com.qualcomm.qti.imscmservice@2.1.so
+vendor/lib64/com.qualcomm.qti.imscmservice@2.2.so
+vendor/lib64/com.qualcomm.qti.uceservice@2.0.so
+vendor/lib64/com.qualcomm.qti.uceservice@2.1.so
+vendor/lib64/com.qualcomm.qti.uceservice@2.2.so
+vendor/lib64/com.qualcomm.qti.uceservice@2.3.so
+vendor/lib64/lib-imscmservice.so
+vendor/lib64/lib-imsdpl.so
+vendor/lib64/lib-imsqimf.so
+vendor/lib64/lib-imsrcs-v2.so
+vendor/lib64/lib-imsrcsbaseimpl.so
+vendor/lib64/lib-imsvtcore.so
+vendor/lib64/lib-imsxml.so
+vendor/lib64/lib-rcsconfig.so
+vendor/lib64/lib-rtpcommon.so
+vendor/lib64/lib-rtpcore.so
+vendor/lib64/lib-rtpsl.so
+vendor/lib64/lib-siputility.so
+vendor/lib64/lib-uceservice.so
+vendor/lib64/librcc.so
+vendor/lib64/vendor.qti.hardware.radio.ims@1.0.so
+vendor/lib64/vendor.qti.hardware.radio.ims@1.1.so
+vendor/lib64/vendor.qti.hardware.radio.ims@1.2.so
+vendor/lib64/vendor.qti.hardware.radio.ims@1.3.so
+vendor/lib64/vendor.qti.hardware.radio.ims@1.4.so
+vendor/lib64/vendor.qti.hardware.radio.ims@1.5.so
+vendor/lib64/vendor.qti.hardware.radio.ims@1.6.so
+vendor/lib64/vendor.qti.hardware.radio.ims@1.7.so
+vendor/lib64/vendor.qti.ims.callcapability@1.0.so
+vendor/lib64/vendor.qti.ims.callinfo@1.0.so
+vendor/lib64/vendor.qti.ims.factory@1.0.so
+vendor/lib64/vendor.qti.ims.factory@1.1.so
+vendor/lib64/vendor.qti.ims.rcsconfig@1.0.so
+vendor/lib64/vendor.qti.ims.rcsconfig@1.1.so
+vendor/lib64/vendor.qti.ims.rcsconfig@2.0.so
+vendor/lib64/vendor.qti.ims.rcsconfig@2.1.so
+vendor/lib64/vendor.qti.imsrtpservice@3.0-service-Impl.so
+vendor/lib64/vendor.qti.imsrtpservice@3.0.so
+
+# IPA
+vendor/etc/init/ipa_fws.rc
+vendor/firmware/ipa_fws.b00
+vendor/firmware/ipa_fws.b01
+vendor/firmware/ipa_fws.b02
+vendor/firmware/ipa_fws.b03
+vendor/firmware/ipa_fws.b04
+vendor/firmware/ipa_fws.elf
+vendor/firmware/ipa_fws.mdt
+
+# IRQ balance
+vendor/bin/msm_irqbalance
+vendor/etc/msm_irqbalance.conf
+
+# Keymaster
+vendor/bin/hw/android.hardware.keymaster@4.1-service-qti
+vendor/etc/init/android.hardware.keymaster@4.0-service-qti.rc
+vendor/lib64/libkeymasterdeviceutils.so
+vendor/lib64/libkeymasterutils.so
+vendor/lib64/libqcbor.so
+vendor/lib64/libqtikeymaster4.so
+
+# Listen
+vendor/lib/libcapiv2svacnn.so
+vendor/lib/libcapiv2svarnn.so
+vendor/lib/libcapiv2vop.so
+vendor/lib/libgcs-calwrapper.so
+vendor/lib/libgcs-ipc.so
+vendor/lib/libgcs-osal.so
+vendor/lib/libgcs.so
+vendor/lib/liblistensoundmodel2.so
+vendor/lib/libmulawdec.so
+
+# Media
+vendor/etc/seccomp_policy/mediacodec.policy
+vendor/etc/system_properties.xml
+vendor/lib/libAlacSwDec.so
+vendor/lib/libApeSwDec.so
+vendor/lib/libFlacSwDec.so
+vendor/lib/libMpeg4SwEncoder.so
+vendor/lib/libOmxAacDec.so
+vendor/lib/libOmxAlacDec.so
+vendor/lib/libOmxAlacDecSw.so
+vendor/lib/libOmxAmrwbplusDec.so
+vendor/lib/libOmxApeDec.so
+vendor/lib/libOmxApeDecSw.so
+vendor/lib/libOmxDsdDec.so
+vendor/lib/libOmxEvrcDec.so
+vendor/lib/libOmxQcelp13Dec.so
+vendor/lib/libOmxSwVencMpeg4.so
+vendor/lib/libOmxWmaDec.so
+vendor/lib/libdsd2pcm.so
+vendor/lib/libstagefright_soft_qtiflacdec.so
+vendor/lib/libswvdec.so
+vendor/lib64/libAlacSwDec.so
+vendor/lib64/libApeSwDec.so
+vendor/lib64/libFlacSwDec.so
+vendor/lib64/libMpeg4SwEncoder.so
+vendor/lib64/libOmxAlacDec.so
+vendor/lib64/libOmxAlacDecSw.so
+vendor/lib64/libOmxAmrwbplusDec.so
+vendor/lib64/libOmxApeDec.so
+vendor/lib64/libOmxApeDecSw.so
+vendor/lib64/libOmxEvrcDec.so
+vendor/lib64/libOmxQcelp13Dec.so
+vendor/lib64/libOmxSwVencMpeg4.so
+vendor/lib64/libOmxWmaDec.so
+vendor/lib64/libstagefright_soft_qtiflacdec.so
+vendor/lib64/libswvdec.so
+vendor/lib64/vendor.qti.hardware.vpp@1.1.so
+vendor/lib64/vendor.qti.hardware.vpp@1.2.so
+vendor/lib64/vendor.qti.hardware.vpp@1.3.so
+
+# Neural Networks
+vendor/bin/hw/android.hardware.neuralnetworks@1.3-service-qti
+vendor/bin/npu_launcher
+vendor/etc/init/android.hardware.neuralnetworks@1.3-service-qti.rc
+vendor/etc/vintf/manifest/android.hardware.neuralnetworks@1.3-service-qti-hta.xml
+vendor/etc/vintf/manifest/android.hardware.neuralnetworks@1.3-service-qti.xml
+vendor/lib64/libhexagon_nn_stub.so
+vendor/lib64/libhta_hexagon_runtime.so
+vendor/lib64/libhvx_interface.so
+vendor/lib64/libnpu.so
+vendor/lib64/unnhal-acc-adreno.so
+vendor/lib64/unnhal-acc-common.so
+vendor/lib64/unnhal-acc-hta.so
+vendor/lib64/unnhal-acc-hvx.so
# NFC
vendor/lib/libpn553_fw.so
+
+# Permissions
+product/etc/permissions/telephony_product_privapp-permissions-qti.xml
+system/etc/permissions/privapp-permissions-qti.xml
+system_ext/etc/permissions/telephony_system-ext_privapp-permissions-qti.xml
+
+# Peripheral
+vendor/bin/pm-proxy
+vendor/bin/pm-service
+vendor/lib64/libperipheral_client.so
+
+# Postprocessing
+vendor/bin/hw/vendor.display.color@1.0-service
+vendor/etc/init/vendor.display.color@1.0-service.rc
+vendor/lib64/libdpps.so
+vendor/lib64/vendor.display.color@1.0.so
+vendor/lib64/vendor.display.color@1.1.so
+vendor/lib64/vendor.display.color@1.2.so
+vendor/lib64/vendor.display.color@1.3.so
+vendor/lib64/vendor.display.postproc@1.0.so
+
+# Public libraries
+vendor/etc/public.libraries.txt
+
+# QCV
+vendor/bin/init.qti.qcv.sh
+vendor/etc/init/init.qti.qcv.rc
+vendor/lib64/libsoc_helper.so
+vendor/lib64/libsoc_helper_jni.so
+
+# QMI
+system/etc/sysconfig/qti_whitelist.xml
+system_ext/etc/permissions/qti_libpermissions.xml
+system_ext/etc/permissions/qti_permissions.xml
+system_ext/etc/sysconfig/qti_whitelist_system_ext.xml
+vendor/bin/irsc_util
+vendor/bin/pd-mapper
+vendor/bin/qrtr-ns
+vendor/etc/sec_config
+vendor/lib/libdiag.so
+vendor/lib/libdsutils.so
+vendor/lib/libidl.so
+vendor/lib/libmdmdetect.so
+vendor/lib/libpdmapper.so
+vendor/lib/libpdnotifier.so
+vendor/lib/libqcci_legacy.so
+vendor/lib/libqdi.so
+vendor/lib/libqdp.so
+vendor/lib/libqmi.so
+vendor/lib/libqmi_cci.so
+vendor/lib/libqmi_client_helper.so
+vendor/lib/libqmi_client_qmux.so
+vendor/lib/libqmi_common_so.so
+vendor/lib/libqmi_csi.so
+vendor/lib/libqmi_csvt_srvc.so
+vendor/lib/libqmi_encdec.so
+vendor/lib/libqmi_legacy.so
+vendor/lib/libqmiservices.so
+vendor/lib/libqsocket.so
+vendor/lib64/libdiag.so
+vendor/lib64/libdsutils.so
+vendor/lib64/libidl.so
+vendor/lib64/libmdmdetect.so
+vendor/lib64/libpdmapper.so
+vendor/lib64/libpdnotifier.so
+vendor/lib64/libqcci_legacy.so
+vendor/lib64/libqdi.so
+vendor/lib64/libqdp.so
+vendor/lib64/libqmi.so
+vendor/lib64/libqmi_cci.so
+vendor/lib64/libqmi_client_helper.so
+vendor/lib64/libqmi_client_qmux.so
+vendor/lib64/libqmi_common_so.so
+vendor/lib64/libqmi_csi.so
+vendor/lib64/libqmi_csvt_srvc.so
+vendor/lib64/libqmi_encdec.so
+vendor/lib64/libqmi_legacy.so
+vendor/lib64/libqmiservices.so
+vendor/lib64/libqsocket.so
+
+# QDCM
+vendor/bin/qdcmss
+vendor/etc/init/qdcmss.rc
+vendor/etc/qdcm_calib_data_ft8756_video_mode_dsi_huaxing_panel.xml
+vendor/etc/qdcm_calib_data_nt36675_video_mode_dsi_tianma_panel.xml
+
+# RIL
+system_ext/app/DeviceInfo/DeviceInfo.apk
+system_ext/app/QtiTelephonyService/QtiTelephonyService.apk
+system_ext/etc/permissions/qcrilhook.xml
+system_ext/framework/qcrilhook.jar
+system_ext/priv-app/qcrilmsgtunnel/qcrilmsgtunnel.apk
+vendor/bin/hw/qcrild
+vendor/bin/ATFWD-daemon
+vendor/bin/adpl
+vendor/bin/ipacm-diag
+vendor/bin/netmgrd
+vendor/bin/port-bridge
+vendor/bin/qti
+vendor/bin/rmt_storage
+vendor/bin/tftp_server
+vendor/etc/data/dsi_config.xml
+vendor/etc/data/netmgr_config.xml
+vendor/etc/init/dataadpl.rc
+vendor/etc/init/dataqti.rc
+vendor/etc/init/init-qcril-data.rc
+vendor/etc/init/ipacm-diag.rc
+vendor/etc/init/netmgrd.rc
+vendor/etc/init/port-bridge.rc
+vendor/etc/init/qcrild.rc
+vendor/etc/init/vendor.qti.rmt_storage.rc
+vendor/etc/init/vendor.qti.tftp.rc
+vendor/etc/seccomp_policy/atfwd@2.0.policy
+vendor/etc/Diag.cfg
+vendor/lib64/deviceInfoServiceModule.so
+vendor/lib64/libconfigdb.so
+vendor/lib64/libdsi_netctrl.so
+vendor/lib64/liblqe.so
+vendor/lib64/libnetmgr.so
+vendor/lib64/libnetmgr_common.so
+vendor/lib64/libnetmgr_nr_fusion.so
+vendor/lib64/libnetmgr_rmnet_ext.so
+vendor/lib64/libnlnetmgr.so
+vendor/lib64/libqcmaputils.so
+vendor/lib64/libqcrilFramework.so
+vendor/lib64/libqcrildatactl.so
+vendor/lib64/libqrtr.so
+vendor/lib64/libril-qc-hal-qmi.so
+vendor/lib64/libril-qc-logger.so
+vendor/lib64/libril-qc-ltedirectdisc.so
+vendor/lib64/libril-qc-radioconfig.so
+vendor/lib64/libril-qcril-hook-oem.so
+vendor/lib64/librilqmiservices.so
+vendor/lib64/libsettings.so
+vendor/lib64/libsystem_health_mon.so
+vendor/lib64/qcrild_librilutils.so
+vendor/lib64/qtibus.so
+vendor/lib64/qtimutex.so
+vendor/lib64/vendor.qti.hardware.radio.am@1.0.so
+vendor/lib64/vendor.qti.hardware.radio.atcmdfwd@1.0.so
+vendor/lib64/vendor.qti.hardware.radio.internal.deviceinfo@1.0.so
+vendor/lib64/vendor.qti.hardware.radio.lpa@1.0.so
+vendor/lib64/vendor.qti.hardware.radio.lpa@1.1.so
+vendor/lib64/vendor.qti.hardware.radio.lpa@1.2.so
+vendor/lib64/vendor.qti.hardware.radio.qcrilhook@1.0.so
+vendor/lib64/vendor.qti.hardware.radio.qtiradio@1.0.so
+vendor/lib64/vendor.qti.hardware.radio.qtiradio@2.0.so
+vendor/lib64/vendor.qti.hardware.radio.qtiradio@2.1.so
+vendor/lib64/vendor.qti.hardware.radio.qtiradio@2.2.so
+vendor/lib64/vendor.qti.hardware.radio.qtiradio@2.3.so
+vendor/lib64/vendor.qti.hardware.radio.qtiradio@2.4.so
+vendor/lib64/vendor.qti.hardware.radio.uim@1.0.so
+vendor/lib64/vendor.qti.hardware.radio.uim@1.1.so
+vendor/lib64/vendor.qti.hardware.radio.uim@1.2.so
+vendor/lib64/vendor.qti.hardware.radio.uim_remote_client@1.0.so
+vendor/lib64/vendor.qti.hardware.radio.uim_remote_client@1.1.so
+vendor/lib64/vendor.qti.hardware.radio.uim_remote_client@1.2.so
+vendor/lib64/vendor.qti.hardware.radio.uim_remote_server@1.0.so
+vendor/radio/qcril_database/upgrade/0_initial.sql
+vendor/radio/qcril_database/upgrade/10_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/11_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/12_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/13_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/14_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/15_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/16_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/17_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/18_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/19_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/1_version_intro.sql
+vendor/radio/qcril_database/upgrade/20_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/21_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/22_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/23_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/24_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/25_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/26_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/27_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/28_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/29_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/2_version_add_wps_config.sql
+vendor/radio/qcril_database/upgrade/30_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/31_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/32_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/33_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/34_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/35_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/36_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/37_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/3_version_update_wps_config.sql
+vendor/radio/qcril_database/upgrade/4_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/5_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/6_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/7_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/8_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/9_version_update_ecc_table.sql
+vendor/radio/qcril_database/upgrade/9_version_update_ecc_table_127531.sql
+vendor/radio/qcril_database/qcril.db
+
+# Sensors
+vendor/bin/init.qcom.sensors.sh
+vendor/bin/sensors.qti
+vendor/bin/sscrpcd
+vendor/etc/init/init.vendor.sensors.rc
+vendor/etc/init/vendor.sensors.qti.rc
+vendor/etc/init/vendor.sensors.sscrpcd.rc
+vendor/etc/sensors/config/adux1050_0.json
+vendor/etc/sensors/config/atoll_adux1050_0.json
+vendor/etc/sensors/config/atoll_ak991x_0.json
+vendor/etc/sensors/config/atoll_bmi160_0.json
+vendor/etc/sensors/config/atoll_default_sensors.json
+vendor/etc/sensors/config/atoll_dynamic_sensors.json
+vendor/etc/sensors/config/atoll_icp101xx_0.json
+vendor/etc/sensors/config/atoll_lsm6ds3c_0.json
+vendor/etc/sensors/config/atoll_lsm6dst_0.json
+vendor/etc/sensors/config/atoll_lsm6dst_1.json
+vendor/etc/sensors/config/atoll_qrd_tmd2725.json
+vendor/etc/sensors/config/atoll_stk3x3x_0.json
+vendor/etc/sensors/config/atoll_tmd2725.json
+vendor/etc/sensors/config/bmi160_0.json
+vendor/etc/sensors/config/lsm6ds3c_0.json
+vendor/etc/sensors/config/sns_amd.json
+vendor/etc/sensors/config/sns_amd_sw_disabled.json
+vendor/etc/sensors/config/sns_amd_sw_enabled.json
+vendor/etc/sensors/config/sns_aont.json
+vendor/etc/sensors/config/sns_basic_gestures.json
+vendor/etc/sensors/config/sns_bring_to_ear.json
+vendor/etc/sensors/config/sns_ccd.json
+vendor/etc/sensors/config/sns_ccd_v2_walk.json
+vendor/etc/sensors/config/sns_ccd_v3_1_walk.json
+vendor/etc/sensors/config/sns_ccd_v3_walk.json
+vendor/etc/sensors/config/sns_cm.json
+vendor/etc/sensors/config/sns_dae.json
+vendor/etc/sensors/config/sns_device_orient.json
+vendor/etc/sensors/config/sns_diag_filter.json
+vendor/etc/sensors/config/sns_direct_channel.json
+vendor/etc/sensors/config/sns_distance_bound.json
+vendor/etc/sensors/config/sns_dpc.json
+vendor/etc/sensors/config/sns_facing.json
+vendor/etc/sensors/config/sns_fmv.json
+vendor/etc/sensors/config/sns_fmv_legacy.json
+vendor/etc/sensors/config/sns_geomag_rv.json
+vendor/etc/sensors/config/sns_gyro_cal.json
+vendor/etc/sensors/config/sns_heart_rate.json
+vendor/etc/sensors/config/sns_mag_cal.json
+vendor/etc/sensors/config/sns_mag_cal_legacy.json
+vendor/etc/sensors/config/sns_multishake.json
+vendor/etc/sensors/config/sns_pedometer.json
+vendor/etc/sensors/config/sns_rmd.json
+vendor/etc/sensors/config/sns_rotv.json
+vendor/etc/sensors/config/sns_smd.json
+vendor/etc/sensors/config/sns_tilt.json
+vendor/etc/sensors/config/sns_tilt_sw_disabled.json
+vendor/etc/sensors/config/sns_tilt_sw_enabled.json
+vendor/etc/sensors/config/sns_tilt_to_wake.json
+vendor/etc/sensors/config/sns_wrist_pedo.json
+vendor/etc/sensors/hals.conf
+vendor/etc/sensors/sns_reg_config
+vendor/lib64/libsensorslog.so
+vendor/lib64/libsns_low_lat_stream_stub.so
+vendor/lib64/libsnsapi.so
+vendor/lib64/libsnsdiaglog.so
+vendor/lib64/libssc.so
+vendor/lib64/sensors.ssc.so
+
+# Thermal engine - from sunfish - RQ3A.210805.001.A1/7474174
+vendor/bin/thermal-engine|549f8284d4aca92e2b8187ab2a283a90c40e6dca
+
+# ThermalClient
+vendor/lib64/libthermalclient.so
+
+# Time services
+vendor/app/TimeService/TimeService.apk
+vendor/bin/time_daemon
+vendor/etc/init/init.time_daemon.rc
+vendor/lib64/libtime_genoff.so
+
+# Touchscreen firmware
+vendor/firmware/focaltech_ts_fw_huaxing.bin
+vendor/firmware/novatek_ts_tianma_fw.bin
+vendor/firmware/novatek_ts_tianma_mp.bin
+
+# Vibrator
+vendor/firmware/Drv2624Date.ini
+vendor/firmware/aw8624_haptic.bin
+vendor/firmware/aw8624_rtp_1.bin
+vendor/firmware/drv2624.bin
+vendor/firmware/drv2624.rtp
+
+# WiFi
+vendor/bin/cnss-daemon
+
+# WiFi Display
+system/framework/WfdCommon.jar
+system_ext/bin/wfdservice64
+system_ext/etc/init/wfdservice.rc
+system_ext/etc/permissions/wfd-system-ext-privapp-permissions-qti.xml
+system_ext/etc/seccomp_policy/wfdservice64.policy
+system_ext/etc/wfdconfigsink.xml
+system_ext/lib64/libmmosal.so
+system_ext/lib64/libmmparser_lite.so
+system_ext/lib64/libmmrtpdecoder.so
+system_ext/lib64/libmmrtpencoder.so
+system_ext/lib64/libwfdavenhancements.so
+system_ext/lib64/libwfdclient.so
+system_ext/lib64/libwfdcommonutils.so
+system_ext/lib64/libwfdconfigutils.so
+system_ext/lib64/libwfddisplayconfig.so
+system_ext/lib64/libwfdmminterface.so
+system_ext/lib64/libwfdmmsink.so
+system_ext/lib64/libwfdmmsrc_system.so
+system_ext/lib64/libwfdnative.so
+system_ext/lib64/libwfdrtsp.so
+system_ext/lib64/libwfdservice.so
+system_ext/lib64/libwfdsinksm.so
+system_ext/lib64/libwfduibcinterface.so
+system_ext/lib64/libwfduibcsink.so
+system_ext/lib64/libwfduibcsinkinterface.so
+system_ext/lib64/libwfduibcsrc.so
+system_ext/lib64/libwfduibcsrcinterface.so
+system_ext/lib64/vendor.qti.hardware.wifidisplaysession@1.0.so
+system_ext/priv-app/WfdService/WfdService.apk
+vendor/bin/wfdhdcphalservice
+vendor/bin/wfdvndservice
+vendor/bin/wifidisplayhalservice
+vendor/etc/init/android.hardware.drm@1.1-service.wfdhdcp.rc
+vendor/etc/init/com.qualcomm.qti.wifidisplayhal@1.0-service.rc
+vendor/etc/init/wfdvndservice.rc
+vendor/etc/seccomp_policy/wfdhdcphalservice.policy
+vendor/etc/seccomp_policy/wfdvndservice.policy
+vendor/etc/seccomp_policy/wifidisplayhalservice.policy
+vendor/etc/wfdconfig.xml
+vendor/lib/libFileMux_proprietary.so
+vendor/lib/libOmxVideoDSMode.so
+vendor/lib/libmm-hdcpmgr.so
+vendor/lib/libmmosal.so
+vendor/lib/libmmrtpdecoder_proprietary.so
+vendor/lib/libmmrtpencoder_proprietary.so
+vendor/lib/libwfdcodecv4l2_proprietary.so
+vendor/lib/libwfdcommonutils_proprietary.so
+vendor/lib/libwfdconfigutils_proprietary.so
+vendor/lib/libwfddisplayconfig_proprietary.so
+vendor/lib/libwfdhdcpcp.so
+vendor/lib/libwfdhdcpservice_proprietary.so
+vendor/lib/libwfdmminterface_proprietary.so
+vendor/lib/libwfdmmservice_proprietary.so
+vendor/lib/libwfdmmsrc_proprietary.so
+vendor/lib/libwfdmodulehdcpsession.so
+vendor/lib/libwfdrtsp_proprietary.so
+vendor/lib/libwfdsessionmodule.so
+vendor/lib/libwfdsourcesession_proprietary.so
+vendor/lib/libwfdsourcesm_proprietary.so
+vendor/lib/libwfduibcinterface_proprietary.so
+vendor/lib/libwfduibcsink_proprietary.so
+vendor/lib/libwfduibcsinkinterface_proprietary.so
+vendor/lib/libwfduibcsrc_proprietary.so
+vendor/lib/libwfduibcsrcinterface_proprietary.so
+vendor/lib/libwfdutils_proprietary.so
+vendor/lib/vendor.qti.hardware.wifidisplaysession@1.0.so
+vendor/lib/vendor.qti.hardware.wifidisplaysessionl@1.0-halimpl.so
+vendor/lib64/libwfddisplayconfig_proprietary.so
+vendor/lib64/libwfdhdcpcp.so
+vendor/lib64/vendor.qti.hardware.wifidisplaysession@1.0.so
diff --git a/releasetools.py b/releasetools.py
new file mode 100644
index 0000000..85538b0
--- /dev/null
+++ b/releasetools.py
@@ -0,0 +1,37 @@
+# Copyright (C) 2021 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.
+
+import common
+
+def FullOTA_InstallEnd(info):
+ OTA_InstallEnd(info)
+ return
+
+def IncrementalOTA_InstallEnd(info):
+ OTA_InstallEnd(info)
+ return
+
+def AddImage(info, basename, dest):
+ path = "IMAGES/" + basename
+ if path not in info.input_zip.namelist():
+ return
+
+ data = info.input_zip.read(path)
+ common.ZipWriteStr(info.output_zip, basename, data)
+ info.script.AppendExtra('package_extract_file("%s", "%s");' % (basename, dest))
+
+def OTA_InstallEnd(info):
+ info.script.Print("Patching firmware images...")
+ AddImage(info, "dtbo.img", "/dev/block/bootdevice/by-name/dtbo")
+ AddImage(info, "vbmeta.img", "/dev/block/bootdevice/by-name/vbmeta")
+ AddImage(info, "vbmeta_system.img", "/dev/block/bootdevice/by-name/vbmeta_system")
+ return
diff --git a/rootdir/Android.bp b/rootdir/Android.bp
index 35de9dc..b4890a8 100644
--- a/rootdir/Android.bp
+++ b/rootdir/Android.bp
@@ -4,9 +4,64 @@
// SPDX-License-Identifier: Apache-2.0
//
+// Init scripts
+sh_binary {
+ name: "init.qcom.early_boot.sh",
+ src: "bin/init.qcom.early_boot.sh",
+ vendor: true,
+}
+
+sh_binary {
+ name: "init.qcom.sh",
+ src: "bin/init.qcom.sh",
+ vendor: true,
+}
+
+sh_binary {
+ name: "init.qti.chg_policy.sh",
+ src: "bin/init.qti.chg_policy.sh",
+ vendor: true,
+}
+
+// fstab
+prebuilt_etc {
+ name: "fstab.qcom",
+ src: "etc/fstab.qcom",
+ vendor: true,
+}
+
+// Init configuration files
prebuilt_etc {
name: "init.device.rc",
src: "etc/init.device.rc",
sub_dir: "init/hw",
vendor: true,
}
+
+prebuilt_etc {
+ name: "init.qcom.power.rc",
+ src: "etc/init.qcom.power.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "init.qcom.rc",
+ src: "etc/init.qcom.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "init.target.rc",
+ src: "etc/init.target.rc",
+ sub_dir: "init/hw",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "ueventd.qcom.rc",
+ filename: "ueventd.rc",
+ src: "etc/ueventd.qcom.rc",
+ vendor: true,
+}
diff --git a/rootdir/bin/init.qcom.early_boot.sh b/rootdir/bin/init.qcom.early_boot.sh
new file mode 100644
index 0000000..ff7de5e
--- /dev/null
+++ b/rootdir/bin/init.qcom.early_boot.sh
@@ -0,0 +1,64 @@
+#! /vendor/bin/sh
+
+# Copyright (c) 2012-2013,2016,2018-2020 The Linux Foundation. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of The Linux Foundation nor
+# the names of its contributors may be used to endorse or promote
+# products derived from this software without specific prior written
+# permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+export PATH=/vendor/bin
+
+echo "detect" > /sys/class/drm/card0-DSI-1/status
+#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_perms() {
+ #Usage set_perms
+ chown -h $2 $1
+ chmod $3 $1
+}
+
+set_perms /sys/devices/virtual/hdcp/msm_hdcp/min_level_change system.graphics 0660
+# allow system_graphics group to access pmic secure_mode node
+set_perms /sys/class/lcd_bias/secure_mode system.graphics 0660
+set_perms /sys/class/leds/wled/secure_mode system.graphics 0660
+
+boot_reason=`cat /proc/sys/kernel/boot_reason`
+reboot_reason=`getprop ro.boot.alarmboot`
+if [ "$boot_reason" = "3" ] || [ "$reboot_reason" = "true" ]; then
+ setprop ro.vendor.alarm_boot true
+else
+ setprop ro.vendor.alarm_boot false
+fi
+
+# copy GPU frequencies to vendor 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 vendor.gpu.available_frequencies "$gpu_freq"
+fi
diff --git a/rootdir/bin/init.qcom.sh b/rootdir/bin/init.qcom.sh
new file mode 100644
index 0000000..b48f971
--- /dev/null
+++ b/rootdir/bin/init.qcom.sh
@@ -0,0 +1,52 @@
+#! /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.
+#
+
+#
+# Make modem config folder and copy firmware config to that folder for RIL
+#
+if [ -f /data/vendor/modem_config/ver_info.txt ]; then
+ prev_version_info=`cat /data/vendor/modem_config/ver_info.txt`
+else
+ prev_version_info=""
+fi
+
+cur_version_info=`cat /vendor/firmware_mnt/verinfo/ver_info.txt`
+if [ ! -f /vendor/firmware_mnt/verinfo/ver_info.txt -o "$prev_version_info" != "$cur_version_info" ]; then
+ # add W for group recursively before delete
+ chmod g+w -R /data/vendor/modem_config/*
+ rm -rf /data/vendor/modem_config/*
+ # preserve the read only mode for all subdir and files
+ cp --preserve=m -dr /vendor/firmware_mnt/image/modem_pr/mcfg/configs/* /data/vendor/modem_config
+ cp --preserve=m -d /vendor/firmware_mnt/verinfo/ver_info.txt /data/vendor/modem_config/
+ cp --preserve=m -d /vendor/firmware_mnt/image/modem_pr/mbn_ota.txt /data/vendor/modem_config/
+ # the group must be root, otherwise this script could not add "W" for group recursively
+ chown -hR radio.root /data/vendor/modem_config/*
+fi
+chmod g-w /data/vendor/modem_config
+setprop ro.vendor.ril.mbn_copy_completed 1
diff --git a/rootdir/bin/init.qti.chg_policy.sh b/rootdir/bin/init.qti.chg_policy.sh
new file mode 100644
index 0000000..fe679b3
--- /dev/null
+++ b/rootdir/bin/init.qti.chg_policy.sh
@@ -0,0 +1,48 @@
+#! /vendor/bin/sh
+
+#
+# Copyright (c) 2019-2021 Qualcomm Technologies, Inc.
+# All Rights Reserved.
+# Confidential and Proprietary - Qualcomm Technologies, Inc.
+#
+# Copyright (c) 2019 The Linux Foundation. All rights reserved.
+#
+
+export PATH=/vendor/bin
+
+soc_id=`getprop ro.vendor.qti.soc_id`
+if [ "$soc_id" -eq 415 ] || [ "$soc_id" -eq 439 ] || [ "$soc_id" -eq 450 ] || [ "$soc_id" -eq 475 ] || [ "$soc_id" -eq 497 ] || [ "$soc_id" -eq 498 ] || [ "$soc_id" -eq 499 ] || [ "$soc_id" -eq 515 ]; then
+ setprop persist.vendor.hvdcp_opti.start 2
+ exit 0
+fi
+
+if [ "$soc_id" -eq 441 ] || [ "$soc_id" -eq 471 ]; then
+ #Scuba does not support usb-pd or charge pumps
+ find /sys/class/power_supply/battery/ -type f -maxdepth 1 | xargs chown system.system
+ find /sys/class/power_supply/bms/ -type f -maxdepth 1 | xargs chown system.system
+ find /sys/class/power_supply/main/ -type f -maxdepth 1 | xargs chown system.system
+ find /sys/class/power_supply/usb/ -type f -maxdepth 1 | xargs chown system.system
+else
+ find /sys/class/power_supply/battery/ -type f -maxdepth 1 | xargs chown system.system
+ find /sys/class/power_supply/bms/ -type f -maxdepth 1 | xargs chown system.system
+ find /sys/class/power_supply/main/ -type f -maxdepth 1 | xargs chown system.system
+ find /sys/class/power_supply/usb/ -type f -maxdepth 1 | xargs chown system.system
+ find /sys/class/power_supply/charge_pump_master/ -type f -maxdepth 1 | xargs chown system.system
+ find /sys/class/power_supply/pc_port/ -type f -maxdepth 1 | xargs chown system.system
+ find /sys/class/power_supply/dc/ -type f -maxdepth 1 | xargs chown system.system
+ find /sys/class/power_supply/parallel/ -type f -maxdepth 1 | xargs chown system.system
+ find /sys/class/usbpd/usbpd0/ -type f -maxdepth 1 | xargs chown system.system
+ find /sys/class/qc-vdm/ -type f -maxdepth 1 | xargs chown system.system
+ find /sys/class/charge_pump/ -type f -maxdepth 1 | xargs chown system.system
+ find /sys/class/qcom-battery/ -type f -maxdepth 1 | xargs chown system.system
+
+ for i in 0 1 2 3 4 5 6 7 8 9
+ do
+ devname=`cat /sys/bus/iio/devices/iio:device$i/name`
+ if [[ "$devname" == *smb* ]] || [[ "$devname" == *qg* ]] || [[ "$devname" == *div2_cp* ]] || [[ "$devname" == *div2-cp* ]]; then
+ find /sys/bus/iio/devices/iio:device$i/ -type f -maxdepth 1 | xargs chown system.system
+ fi
+ done
+fi
+
+setprop persist.vendor.hvdcp_opti.start 1
diff --git a/rootdir/etc/fstab.qcom b/rootdir/etc/fstab.qcom
new file mode 100644
index 0000000..3986765
--- /dev/null
+++ b/rootdir/etc/fstab.qcom
@@ -0,0 +1,53 @@
+# Copyright (c) 2018-2019, 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.
+
+# Android fstab file.
+# 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
+
+#
+system /system ext4 ro,barrier=1,discard wait,logical,first_stage_mount,avb=vbmeta_system,avb_keys=/avb/q-gsi.avbpubkey:/avb/r-gsi.avbpubkey:/avb/s-gsi.avbpubkey
+system_ext /system_ext ext4 ro,barrier=1,discard wait,logical,first_stage_mount,avb
+product /product ext4 ro,barrier=1,discard wait,logical,first_stage_mount,avb
+vendor /vendor ext4 ro,barrier=1,discard wait,logical,first_stage_mount,avb=vbmeta
+/dev/block/bootdevice/by-name/cache /cache ext4 nosuid,noatime,nodev,barrier=1 wait
+/dev/block/bootdevice/by-name/boot /boot emmc defaults defaults
+/dev/block/bootdevice/by-name/recovery /recovery emmc defaults defaults
+/dev/block/by-name/metadata /metadata ext4 noatime,nosuid,nodev,discard wait,check,formattable,first_stage_mount
+/dev/block/bootdevice/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065,fsync_mode=nobarrier,inlinecrypt latemount,wait,check,formattable,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized+wrappedkey_v0,metadata_encryption=aes-256-xts:wrappedkey_v0,keydirectory=/metadata/vold/metadata_encryption,quota,reservedsize=128M,sysfs_path=/sys/devices/platform/soc/1d84000.ufshc,checkpoint=fs
+/devices/platform/soc/8804000.sdhci/mmc_host* /storage/sdcard1 vfat nosuid,nodev wait,voldmanaged=sdcard1:auto,encryptable=footer
+/devices/platform/soc/1da4000.ufshc_card/host* /storage/sdcard1 vfat nosuid,nodev wait,voldmanaged=sdcard1:auto,encryptable=footer
+/dev/block/bootdevice/by-name/modem /vendor/firmware_mnt 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/dsp /vendor/dsp ext4 ro,nosuid,nodev,barrier=1 wait
+/dev/block/bootdevice/by-name/persist /mnt/vendor/persist ext4 noatime,nosuid,nodev,barrier=1 wait,check
+/dev/block/bootdevice/by-name/bluetooth /vendor/bt_firmware vfat ro,shortname=lower,uid=1002,gid=3002,dmask=227,fmask=337,context=u:object_r:bt_firmware_file:s0 wait
+/devices/platform/soc/a600000.ssusb/a600000.dwc3/xhci-hcd.0.auto* /storage/usbotg vfat nosuid,nodev wait,voldmanaged=usbotg:auto
+# Need to have this entry in here even though the mount point itself is no longer needed.
+# The update_engine code looks for this entry in order to determine the boot device address
+# and fails if it does not find it.
+/dev/block/bootdevice/by-name/misc /misc emmc defaults defaults
+/dev/block/zram0 none swap defaults zramsize=50%
diff --git a/rootdir/etc/init.qcom.power.rc b/rootdir/etc/init.qcom.power.rc
new file mode 100644
index 0000000..d884649
--- /dev/null
+++ b/rootdir/etc/init.qcom.power.rc
@@ -0,0 +1,128 @@
+# Copyright (c) 2012-2013, 2016-2020, The Linux Foundation. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of The Linux Foundation nor
+# the names of its contributors may be used to endorse or promote
+# products derived from this software without specific prior written
+# permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+on enable-low-power
+ # Apply settings for atoll
+
+ # Enable bus-dcvs
+ write /sys/devices/platform/soc/soc:qcom,cpu-cpu-llcc-bw/devfreq/soc:qcom,cpu-cpu-llcc-bw/governor bw_hwmon
+ write /sys/devices/platform/soc/soc:qcom,cpu-cpu-llcc-bw/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/mbps_zones "2288 4577 7110 9155 12298 14236"
+ write /sys/devices/platform/soc/soc:qcom,cpu-cpu-llcc-bw/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/sample_ms 4
+ write /sys/devices/platform/soc/soc:qcom,cpu-cpu-llcc-bw/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/io_percent 68
+ write /sys/devices/platform/soc/soc:qcom,cpu-cpu-llcc-bw/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/hist_memory 20
+ write /sys/devices/platform/soc/soc:qcom,cpu-cpu-llcc-bw/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/hyst_length 0
+ write /sys/devices/platform/soc/soc:qcom,cpu-cpu-llcc-bw/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/down_thres 80
+ write /sys/devices/platform/soc/soc:qcom,cpu-cpu-llcc-bw/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/guard_band_mbps 0
+ write /sys/devices/platform/soc/soc:qcom,cpu-cpu-llcc-bw/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/up_scale 250
+ write /sys/devices/platform/soc/soc:qcom,cpu-cpu-llcc-bw/devfreq/soc:qcom,cpu-cpu-llcc-bw/bw_hwmon/idle_mbps 1600
+ write /sys/devices/platform/soc/soc:qcom,cpu-cpu-llcc-bw/devfreq/soc:qcom,cpu-cpu-llcc-bw/polling_interval 50
+
+ write /sys/devices/platform/soc/soc:qcom,cpu-llcc-ddr-bw/devfreq/soc:qcom,cpu-llcc-ddr-bw/governor bw_hwmon
+ write /sys/devices/platform/soc/soc:qcom,cpu-llcc-ddr-bw/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/mbps_zones "1144 1720 2086 2929 3879 5931 6881 8137"
+ write /sys/devices/platform/soc/soc:qcom,cpu-llcc-ddr-bw/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/sample_ms 4
+ write /sys/devices/platform/soc/soc:qcom,cpu-llcc-ddr-bw/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/io_percent 68
+ write /sys/devices/platform/soc/soc:qcom,cpu-llcc-ddr-bw/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/hist_memory 20
+ write /sys/devices/platform/soc/soc:qcom,cpu-llcc-ddr-bw/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/hyst_length 0
+ write /sys/devices/platform/soc/soc:qcom,cpu-llcc-ddr-bw/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/down_thres 80
+ write /sys/devices/platform/soc/soc:qcom,cpu-llcc-ddr-bw/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/guard_band_mbps 0
+ write /sys/devices/platform/soc/soc:qcom,cpu-llcc-ddr-bw/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/up_scale 250
+ write /sys/devices/platform/soc/soc:qcom,cpu-llcc-ddr-bw/devfreq/soc:qcom,cpu-llcc-ddr-bw/bw_hwmon/idle_mbps 1600
+ write /sys/devices/platform/soc/soc:qcom,cpu-llcc-ddr-bw/devfreq/soc:qcom,cpu-llcc-ddr-bw/polling_interval 40
+
+ write /sys/devices/virtual/npu/msm_npu/pwr 1
+ write /sys/devices/platform/soc/soc:qcom,npu-npu-ddr-bw/devfreq/soc:qcom,npu-npu-ddr-bw/governor bw_hwmon
+ write /sys/devices/platform/soc/soc:qcom,npu-npu-ddr-bw/devfreq/soc:qcom,npu-npu-ddr-bw/bw_hwmon/mbps_zones "1144 1720 2086 2929 3879 5931 6881 8137"
+ write /sys/devices/platform/soc/soc:qcom,npu-npu-ddr-bw/devfreq/soc:qcom,npu-npu-ddr-bw/bw_hwmon/sample_ms 4
+ write /sys/devices/platform/soc/soc:qcom,npu-npu-ddr-bw/devfreq/soc:qcom,npu-npu-ddr-bw/bw_hwmon/io_percent 80
+ write /sys/devices/platform/soc/soc:qcom,npu-npu-ddr-bw/devfreq/soc:qcom,npu-npu-ddr-bw/bw_hwmon/hist_memory 20
+ write /sys/devices/platform/soc/soc:qcom,npu-npu-ddr-bw/devfreq/soc:qcom,npu-npu-ddr-bw/bw_hwmon/hyst_length 10
+ write /sys/devices/platform/soc/soc:qcom,npu-npu-ddr-bw/devfreq/soc:qcom,npu-npu-ddr-bw/bw_hwmon/down_thres 30
+ write /sys/devices/platform/soc/soc:qcom,npu-npu-ddr-bw/devfreq/soc:qcom,npu-npu-ddr-bw/bw_hwmon/guard_band_mbps 0
+ write /sys/devices/platform/soc/soc:qcom,npu-npu-ddr-bw/devfreq/soc:qcom,npu-npu-ddr-bw/bw_hwmon/up_scale 250
+ write /sys/devices/platform/soc/soc:qcom,npu-npu-ddr-bw/devfreq/soc:qcom,npu-npu-ddr-bw/bw_hwmon/idle_mbps 0
+ write /sys/devices/platform/soc/soc:qcom,npu-npu-ddr-bw/devfreq/soc:qcom,npu-npu-ddr-bw/polling_interval 40
+ write /sys/devices/platform/soc/soc:qcom,npudsp-npu-ddr-bw/devfreq/soc:qcom,npudsp-npu-ddr-bw/governor bw_hwmon
+ write /sys/devices/platform/soc/soc:qcom,npudsp-npu-ddr-bw/devfreq/soc:qcom,npudsp-npu-ddr-bw/bw_hwmon/mbps_zones "1144 1720 2086 2929 3879 5931 6881 8137"
+ write /sys/devices/platform/soc/soc:qcom,npudsp-npu-ddr-bw/devfreq/soc:qcom,npudsp-npu-ddr-bw/bw_hwmon/sample_ms 4
+ write /sys/devices/platform/soc/soc:qcom,npudsp-npu-ddr-bw/devfreq/soc:qcom,npudsp-npu-ddr-bw/bw_hwmon/io_percent 80
+ write /sys/devices/platform/soc/soc:qcom,npudsp-npu-ddr-bw/devfreq/soc:qcom,npudsp-npu-ddr-bw/bw_hwmon/hist_memory 20
+ write /sys/devices/platform/soc/soc:qcom,npudsp-npu-ddr-bw/devfreq/soc:qcom,npudsp-npu-ddr-bw/bw_hwmon/hyst_length 10
+ write /sys/devices/platform/soc/soc:qcom,npudsp-npu-ddr-bw/devfreq/soc:qcom,npudsp-npu-ddr-bw/bw_hwmon/down_thres 30
+ write /sys/devices/platform/soc/soc:qcom,npudsp-npu-ddr-bw/devfreq/soc:qcom,npudsp-npu-ddr-bw/bw_hwmon/guard_band_mbps 0
+ write /sys/devices/platform/soc/soc:qcom,npudsp-npu-ddr-bw/devfreq/soc:qcom,npudsp-npu-ddr-bw/bw_hwmon/up_scale 250
+ write /sys/devices/platform/soc/soc:qcom,npudsp-npu-ddr-bw/devfreq/soc:qcom,npudsp-npu-ddr-bw/bw_hwmon/idle_mbps 0
+ write /sys/devices/platform/soc/soc:qcom,npudsp-npu-ddr-bw/devfreq/soc:qcom,npudsp-npu-ddr-bw/polling_interval 40
+ write /sys/devices/virtual/npu/msm_npu/pwr 0
+
+ # Enable mem_latency governor for L3, LLCC, and DDR scaling
+ write /sys/devices/platform/soc/soc:qcom,cpu0-cpu-llcc-lat/devfreq/soc:qcom,cpu0-cpu-llcc-lat/governor mem_latency
+ write /sys/devices/platform/soc/soc:qcom,cpu0-cpu-llcc-lat/devfreq/soc:qcom,cpu0-cpu-llcc-lat/polling_interval 10
+ write /sys/devices/platform/soc/soc:qcom,cpu0-cpu-llcc-lat/devfreq/soc:qcom,cpu0-cpu-llcc-lat/mem_latency/ratio_ceil 400
+
+ write /sys/devices/platform/soc/soc:qcom,cpu0-cpu-l3-lat/devfreq/soc:qcom,cpu0-cpu-l3-lat/governor mem_latency
+ write /sys/devices/platform/soc/soc:qcom,cpu0-cpu-l3-lat/devfreq/soc:qcom,cpu0-cpu-l3-lat/polling_interval 10
+ write /sys/devices/platform/soc/soc:qcom,cpu0-cpu-l3-lat/devfreq/soc:qcom,cpu0-cpu-l3-lat/mem_latency/ratio_ceil 400
+
+ write /sys/devices/platform/soc/soc:qcom,cpu0-llcc-ddr-lat/devfreq/soc:qcom,cpu0-llcc-ddr-lat/governor mem_latency
+ write /sys/devices/platform/soc/soc:qcom,cpu0-llcc-ddr-lat/devfreq/soc:qcom,cpu0-llcc-ddr-lat/polling_interval 10
+ write /sys/devices/platform/soc/soc:qcom,cpu0-llcc-ddr-lat/devfreq/soc:qcom,cpu0-llcc-ddr-lat/mem_latency/ratio_ceil 400
+
+ write /sys/devices/platform/soc/soc:qcom,cpu6-cpu-llcc-lat/devfreq/soc:qcom,cpu6-cpu-llcc-lat/governor mem_latency
+ write /sys/devices/platform/soc/soc:qcom,cpu6-cpu-llcc-lat/devfreq/soc:qcom,cpu6-cpu-llcc-lat/polling_interval 10
+ write /sys/devices/platform/soc/soc:qcom,cpu6-cpu-llcc-lat/devfreq/soc:qcom,cpu6-cpu-llcc-lat/mem_latency/ratio_ceil 400
+
+ write /sys/devices/platform/soc/soc:qcom,cpu6-cpu-l3-lat/devfreq/soc:qcom,cpu6-cpu-l3-lat/governor mem_latency
+ write /sys/devices/platform/soc/soc:qcom,cpu6-cpu-l3-lat/devfreq/soc:qcom,cpu6-cpu-l3-lat/polling_interval 10
+ # Gold L3 ratio ceil is 4000
+ write /sys/devices/platform/soc/soc:qcom,cpu6-cpu-l3-lat/devfreq/soc:qcom,cpu6-cpu-l3-lat/mem_latency/ratio_ceil 4000
+
+ write /sys/devices/platform/soc/soc:qcom,cpu6-llcc-ddr-lat/devfreq/soc:qcom,cpu6-llcc-ddr-lat/governor mem_latency
+ write /sys/devices/platform/soc/soc:qcom,cpu6-llcc-ddr-lat/devfreq/soc:qcom,cpu6-llcc-ddr-lat/polling_interval 10
+ write /sys/devices/platform/soc/soc:qcom,cpu6-llcc-ddr-lat/devfreq/soc:qcom,cpu6-llcc-ddr-lat/mem_latency/ratio_ceil 400
+
+ # Enable cdspl3 governor for L3 cdsp nodes
+ write /sys/devices/platform/soc/soc:qcom,cdsp-cdsp-l3-lat/devfreq/soc:qcom,cdsp-cdsp-l3-lat/governor cdspl3
+
+ # Enable compute governor for gold latfloor
+ write /sys/devices/platform/soc/soc:qcom,cpu6-cpu-ddr-latfloor/devfreq/soc:qcom,cpu6-cpu-ddr-latfloor/governor compute
+ write /sys/devices/platform/soc/soc:qcom,cpu6-cpu-ddr-latfloor/devfreq/soc:qcom,cpu6-cpu-ddr-latfloor/polling_interval 10
+
+ # Turn on sleep modes
+ write /sys/module/lpm_levels/parameters/sleep_disabled 0
+
+ # Enable idle state listener
+ write /sys/class/drm/card0/device/idle_encoder_mask 1
+ write /sys/class/drm/card0/device/idle_timeout_ms 100
+
+ # Enable PowerHAL hint processing
+ setprop vendor.powerhal.init 1
+
+on property:sys.boot_completed=1
+ trigger enable-low-power
+
+on property:init.svc.recovery=running
+ trigger enable-low-power
diff --git a/rootdir/etc/init.qcom.rc b/rootdir/etc/init.qcom.rc
new file mode 100644
index 0000000..ab4032c
--- /dev/null
+++ b/rootdir/etc/init.qcom.rc
@@ -0,0 +1,879 @@
+# Copyright (c) 2009-2012, 2014-2020, The Linux Foundation. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of The Linux Foundation nor
+# the names of its contributors may be used to endorse or promote
+# products derived from this software without specific prior written
+# permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+import /vendor/etc/init/hw/init.qcom.usb.rc
+import /vendor/etc/init/hw/init.qcom.power.rc
+import /vendor/etc/init/hw/init.device.rc
+import /vendor/etc/init/hw/init.target.rc
+
+on early-init
+ mount debugfs debugfs /sys/kernel/debug
+ chmod 0755 /sys/kernel/debug
+
+ # create symlink for vendor mount points
+ symlink /vendor/firmware_mnt /firmware
+ symlink /vendor/bt_firmware /bt_firmware
+ symlink /vendor/dsp /dsp
+
+ # Change ownership of hw_recovery related nodes
+ chown system graphics /sys/kernel/debug/dri/0/debug/dump
+ chown system graphics /sys/kernel/debug/dri/0/debug/recovery_reg
+ chown system graphics /sys/kernel/debug/dri/0/debug/recovery_dbgbus
+ chown system graphics /sys/kernel/debug/dri/0/debug/recovery_vbif_dbgbus
+ chown system graphics /sys/kernel/debug/dri/0/debug/recovery_dsi_dbgbus
+
+ # Change ownership of sysfs power control node
+ chown system graphics /sys/class/drm/card0/device/power/control
+
+ # Change ownership of sw_sync node
+ chown system graphics /sys/kernel/debug/sync/sw_sync
+ chmod 0666 /sys/kernel/debug/sync/sw_sync
+
+ #Disable UFS clock scaling
+ write /sys/bus/platform/devices/1d84000.ufshc/clkscale_enable 0
+
+ chown root system /dev/kmsg
+ chmod 0620 /dev/kmsg
+ # Load WIGIG platform driver
+ exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules msm_11ad_proxy
+
+on init
+ # Create cgroup mount point for memory
+ mkdir /sys/fs/cgroup/memory/bg 0750 root system
+ write /sys/fs/cgroup/memory/bg/memory.swappiness 140
+ write /sys/fs/cgroup/memory/bg/memory.move_charge_at_immigrate 1
+ chown root system /sys/fs/cgroup/memory/bg/tasks
+ chmod 0660 /sys/fs/cgroup/memory/bg/tasks
+
+on post-fs
+ chmod 0755 /sys/kernel/debug/tracing
+ chmod 0660 /sys/class/leds/red/brightness
+ chown system system /sys/class/leds/red/brightness
+
+ mkdir /mnt/vendor/dsp 0770 root root
+ copy /vendor/dsp/cdsp/fastrpc_shell_3 /mnt/vendor/dsp/fastrpc_shell_3
+ chmod 0644 /mnt/vendor/dsp/fastrpc_shell_3
+ mount none /mnt/vendor/dsp/fastrpc_shell_3 /vendor/dsp/cdsp/fastrpc_shell_3 bind
+
+on early-boot
+ # set RLIMIT_MEMLOCK to 64MB
+ setrlimit 8 67108864 67108864
+ # Allow subsystem (modem etc) debugging
+ write /sys/kernel/boot_adsp/boot 1
+ write /sys/kernel/boot_cdsp/boot 1
+ write /sys/devices/virtual/npu/msm_npu/boot 1
+ write /sys/devices/virtual/cvp/cvp/boot 1
+ exec u:r:vendor_qti_init_shell:s0 -- /vendor/bin/init.qcom.early_boot.sh
+
+ chown system system /mnt/vendor/persist/data/pfm/licenses
+ chmod 0775 /mnt/vendor/persist/data/pfm/licenses
+ chown system system /mnt/vendor/persist/data/pfm/licenses/store_0
+ chmod 0664 /mnt/vendor/persist/data/pfm/licenses/store_0
+ chown system system /mnt/vendor/persist/data/pfm/licenses/store_1
+ chmod 0664 /mnt/vendor/persist/data/pfm/licenses/store_1
+ chown system system /mnt/vendor/persist/data/pfm/licenses/store_2
+ chmod 0664 /mnt/vendor/persist/data/pfm/licenses/store_2
+ chown system system /mnt/vendor/persist/data/pfm/licenses/store_3
+ chmod 0664 /mnt/vendor/persist/data/pfm/licenses/store_3
+ chown system system /mnt/vendor/persist/data/pfm/licenses/store_4
+ chmod 0664 /mnt/vendor/persist/data/pfm/licenses/store_4
+
+ # SSR
+ write /sys/bus/msm_subsys/devices/subsys0/restart_level RELATED
+ write /sys/bus/msm_subsys/devices/subsys1/restart_level RELATED
+ write /sys/bus/msm_subsys/devices/subsys2/restart_level RELATED
+ write /sys/bus/msm_subsys/devices/subsys3/restart_level RELATED
+ write /sys/bus/msm_subsys/devices/subsys4/restart_level RELATED
+ write /sys/bus/msm_subsys/devices/subsys5/restart_level RELATED
+ write /sys/bus/msm_subsys/devices/subsys6/restart_level RELATED
+
+on boot
+ chown bluetooth bluetooth /sys/module/bluetooth_power/parameters/power
+ chown bluetooth net_bt /sys/class/rfkill/rfkill0/type
+ chown bluetooth net_bt /sys/class/rfkill/rfkill0/state
+ chown bluetooth bluetooth /proc/bluetooth/sleep/proto
+ chown bluetooth bluetooth /sys/module/hci_uart/parameters/ath_lpm
+ chown bluetooth bluetooth /sys/module/hci_uart/parameters/ath_btwrite
+ chown system system /sys/module/sco/parameters/disable_esco
+ chown bluetooth bluetooth /sys/module/hci_smd/parameters/hcismd_set
+ chown system system /sys/module/msm_core/parameters/polling_interval
+ chown system system /sys/module/msm_core/parameters/disabled
+ chown system system /sys/kernel/debug/msm_core/enable
+ chown system system /sys/kernel/debug/msm_core/ptable
+ chown system system /sys/kernel/boot_slpi/ssr
+ chown system system /sys/module/radio_iris_transport/parameters/fmsmd_set
+ chmod 0660 /sys/module/bluetooth_power/parameters/power
+ chmod 0660 /sys/module/hci_smd/parameters/hcismd_set
+ chmod 0660 /sys/module/radio_iris_transport/parameters/fmsmd_set
+ chmod 0660 /sys/class/rfkill/rfkill0/state
+ chmod 0660 /proc/bluetooth/sleep/proto
+ chown bluetooth net_bt /dev/ttyHS0
+ chmod 0660 /sys/module/hci_uart/parameters/ath_lpm
+ chmod 0660 /sys/module/hci_uart/parameters/ath_btwrite
+ chmod 0660 /dev/ttyHS0
+ chown bluetooth bluetooth /sys/devices/platform/msm_serial_hs.0/clock
+ chmod 0660 /sys/devices/platform/msm_serial_hs.0/clock
+
+ chmod 0660 /dev/ttyHS2
+ chown bluetooth bluetooth /dev/ttyHS2
+
+ chown bluetooth net_bt /sys/class/rfkill/rfkill0/device/extldo
+ chmod 0660 /sys/class/rfkill/rfkill0/device/extldo
+
+ #add flashlight
+ chmod 0660 /sys/class/leds/flashlight/brightness
+ chown system system /sys/class/leds/flashlight/brightness
+
+ #define back flash and front flash
+ chmod 0660 /sys/class/leds/led:flash_0/brightness
+ chmod 0660 /sys/class/leds/led:flash_1/brightness
+ chmod 0660 /sys/class/leds/led:flash_2/brightness
+ chmod 0660 /sys/class/leds/led:torch_0/brightness
+ chmod 0660 /sys/class/leds/led:torch_1/brightness
+ chmod 0660 /sys/class/leds/led:torch_2/brightness
+ chmod 0660 /sys/class/leds/led:switch_0/brightness
+ chmod 0660 /sys/class/leds/led:switch_1/brightness
+ chmod 0660 /sys/class/leds/flashlight/brightness
+ chmod 0777 /sys/class/ant_class/ant_state
+ chmod 0777 /sys/class/ant_div_class/ant_div_state
+ chown system system /sys/class/leds/led:flash_0/brightness
+ chown system system /sys/class/leds/led:flash_1/brightness
+ chown system system /sys/class/leds/led:flash_2/brightness
+ chown system system /sys/class/leds/led:torch_0/brightness
+ chown system system /sys/class/leds/led:torch_1/brightness
+ chown system system /sys/class/leds/led:torch_2/brightness
+ chown system system /sys/class/leds/led:switch_0/brightness
+ chown system system /sys/class/leds/led:switch_1/brightness
+ chown system system /sys/class/leds/flashlight/brightness
+ chown system system /sys/class/ant_class/ant_state
+ chown system system /sys/class/ant_div_class/ant_div_state
+ # This location is used by QCRIL to host UNIX domain
+ # socket files used for internal IPC within QCRIL
+ # modules
+ mkdir /dev/socket/qmux_radio 0770 radio radio
+ chmod 2770 /dev/socket/qmux_radio
+
+ mkdir /persist/drm 0770 system system
+ mkdir /persist/bluetooth 0770 bluetooth bluetooth
+ mkdir /persist/misc 0770 system system
+ mkdir /persist/alarm 0770 system system
+ mkdir /mnt/vendor/persist/time 0770 system system
+ mkdir /mnt/vendor/persist/secnvm 0770 system system
+ mkdir /mnt/vendor/persist/iar_db 0770 system system
+ mkdir /mnt/vendor/spunvm 0770 system system
+
+ #Create WIGIG socket area
+ mkdir /dev/socket/wigig 0770 wifi wifi
+
+ setprop wifi.interface wlan0
+
+ setprop ro.telephony.call_ring.multiple false
+
+ #Remove SUID bit for iproute2 ip tool
+ chmod 0755 /system/bin/ip
+
+
+ chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state
+
+ setprop net.tcp.2g_init_rwnd 10
+
+ # To prevent out of order acknowledgements from making
+ # connection tracking to treat them as not belonging to
+ # the connection they belong to.
+ # Otherwise, a weird issue happens in which some long
+ # connections on high-throughput links get dropped when
+ # an ack packet comes out of order
+ write /proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal 1
+
+ # Set the console loglevel to < KERN_WARN
+ # Set the default message loglevel to KERN_INFO
+ write /proc/sys/kernel/printk "4 6 1 7"
+
+ # Allow access for CCID command/response timeout configuration
+ chown system system /sys/module/ccid_bridge/parameters/bulk_msg_timeout
+
+ # bond0 used by FST Manager
+ chown wifi wifi /sys/class/net/bond0/bonding/queue_id
+
+ # Allow access to emmc rawdump block partition and dload sysfs node
+ chown root system /dev/block/bootdevice/by-name/rawdump
+ chmod 0660 /dev/block/bootdevice/by-name/rawdump
+ chown root system /sys/kernel/dload/emmc_dload
+ chmod 0660 /sys/kernel/dload/emmc_dload
+ chown root system /dev/block/bootdevice/by-name/ramdump
+ chmod 0660 /dev/block/bootdevice/by-name/ramdump
+ chown root system /sys/kernel/dload/dload_mode
+ chmod 0660 /sys/kernel/dload/dload_mode
+
+ chown system system /sys/class/backlight/panel0-backlight/brightness
+ chown system system /sys/class/backlight/panel0-backlight/max_brightness
+ chown system system /sys/class/backlight/panel1-backlight/brightness
+ chown system system /sys/class/backlight/panel1-backlight/max_brightness
+
+ # Allow access to sensors device attributes
+ chown system system /sys/class/sensors/MPU6050-accel/enable
+ chown system system /sys/class/sensors/MPU6050-accel/poll_delay
+ chown system system /sys/class/sensors/MPU6050-gyro/enable
+ chown system system /sys/class/sensors/MPU6050-gyro/poll_delay
+ chown system system /sys/class/sensors/apds9930-light/enable
+ chown system system /sys/class/sensors/apds9930-light/poll_delay
+ chown system system /sys/class/sensors/apds9930-proximity/enable
+ chown system system /sys/class/sensors/apds9930-proximity/poll_delay
+
+ # Create directory used for display
+ # for backward compatibility
+ mkdir /persist/display 0770 system graphics
+ mkdir /mnt/vendor/persist/display 0770 system graphics
+
+ # Enable qcrild and data services on boot so process starts in main
+ enable vendor.qcrild
+ enable vendor.qcrild2
+ enable vendor.dataqti
+ enable vendor.dataadpl
+
+ # Create vpp directory
+ mkdir /mnt/vendor/persist/vpp 0770 media media
+
+
+ # Create hvdcp_opti directory
+ mkdir /mnt/vendor/persist/hvdcp_opti 0770 root system
+
+ #Create camera directory
+ mkdir /mnt/vendor/persist/camera 0755 system cameraserver
+
+ # Create pa-cal driver directory lct-20181009
+ mkdir /mnt/vendor/persist/audio 0770 audio audio
+
+
+ # limit discard size to 128MB in order to avoid long IO latency
+ write /sys/block/sda/queue/discard_max_bytes 134217728
+
+# msm specific files that need to be created on /data
+on post-fs-data
+ mkdir /data/vendor/misc 01771 system system
+
+ # Create directory used by display clients
+ mkdir /data/vendor/display 0770 system graphics
+
+ # Change lm related dirs
+ mkdir /data/vendor/lm 0700 root root
+
+ # Create directory used by powermodule
+ mkdir /data/vendor/pwr 0700 root root
+
+ # Create directory used by media clients
+ mkdir /data/vendor/media 0770 mediacodec media
+
+ # Create /data/vendor/tzstorage directory for SFS listener
+ mkdir /data/vendor/tzstorage 0770 system system
+
+ # Create directory for apps access via QTEEConnector
+ mkdir /data/vendor/qtee 0770 system system
+
+ #Create folder of camera
+ mkdir /data/vendor/camera 0770 system camera
+
+
+ #Create directory for tftp
+ mkdir /data/vendor/tombstones 0771 system system
+ mkdir /data/vendor/tombstones/rfs 0771 system system
+
+ mkdir /data/vendor/ramdump 0771 root system
+ mkdir /data/vendor/bluetooth 0770 bluetooth bluetooth
+ mkdir /data/vendor/ramdump/bluetooth 0770 bluetooth bluetooth
+
+ # Create the directories used by the Wireless subsystem
+ mkdir /data/vendor/wifi 0770 wifi wifi
+ mkdir /data/vendor/wifi/sockets 0770 wifi wifi
+ mkdir /data/vendor/wifi/hostapd 0770 wifi wifi
+ mkdir /data/vendor/wifi/hostapd/ctrl 0770 wifi wifi
+ mkdir /data/vendor/wifi/wpa_supplicant 0770 wifi wifi
+ mkdir /data/vendor/wifi/wigig_hostapd 0770 wifi wifi
+ mkdir /data/vendor/wifi/wpa 0770 wifi wifi
+ mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi
+
+ # Create the directories used by WiGig Sensing
+ mkdir /data/vendor/sensing 0770 system wifi
+
+ # Create the directories used by CnE subsystem
+ mkdir /data/vendor/connectivity 0771 radio radio
+ chown radio radio /data/vendor/connectivity
+
+ # Create directory used by audio subsystem
+ mkdir /data/vendor/audio 0770 audio audio
+
+ # Create directory for audio delta files
+ mkdir /data/vendor/audio/acdbdata 0770 media audio
+ mkdir /data/vendor/audio/acdbdata/delta 0770 media audio
+
+ # Create directory for radio
+ mkdir /data/vendor/radio 0770 system radio
+ rm /data/vendor/radio/shmbus
+
+ # Create directory for modem_config
+ mkdir /data/vendor/modem_config 0570 radio root
+
+ # Mounting of persist is moved to 'on emmc-fs' and 'on fs' sections
+ # We chown/chmod /persist again so because mount is run as root + defaults
+ chown root system /persist
+ chmod 0771 /persist
+ chown system system /persist/WCNSS_qcom_wlan_nv.bin
+ chmod 0664 /sys/devices/platform/msm_sdcc.1/polling
+ chmod 0664 /sys/devices/platform/msm_sdcc.2/polling
+ chmod 0664 /sys/devices/platform/msm_sdcc.3/polling
+ chmod 0664 /sys/devices/platform/msm_sdcc.4/polling
+
+ # Chown polling nodes as needed from UI running on system server
+ chown system system /sys/devices/platform/msm_sdcc.1/polling
+ chown system system /sys/devices/platform/msm_sdcc.2/polling
+ chown system system /sys/devices/platform/msm_sdcc.3/polling
+ chown system system /sys/devices/platform/msm_sdcc.4/polling
+
+ #Create the symlink to qcn wpa_supplicant folder for ar6000 wpa_supplicant
+ #symlink /data/misc/wifi/wpa_supplicant /data/system/wpa_supplicant
+
+ #Create directories for Location services
+ mkdir /data/vendor/location 0770 gps gps
+ mkdir /data/vendor/location/mq 0770 gps gps
+ mkdir /data/vendor/location/xtwifi 0770 gps gps
+ mkdir /dev/socket/location 0770 gps gps
+ mkdir /dev/socket/location/mq 0770 gps gps
+ mkdir /dev/socket/location/xtra 0770 gps gps
+ mkdir /dev/socket/location/dgnss 0770 gps gps
+
+ #Create directories for wifihal services
+ mkdir /dev/socket/wifihal 0770 wifi wifi
+ chmod 2770 /dev/socket/wifihal
+
+ # Create /data/time folder for time-services
+ mkdir /data/vendor/time/ 0700 system system
+
+ setprop vold.post_fs_data_done 1
+
+ #Create a folder for SRS to be able to create a usercfg file
+ #mkdir /data/data/media 0770 media media
+
+ #Create FM dir for patchdownloader
+ mkdir /data/vendor/fm 0770 system system
+ chmod 0770 /data/vendor/fm
+
+ mkdir /data/vendor/secure_element 0777 system system
+
+ # Mark the copy complete flag to not completed
+ write /data/vendor/radio/copy_complete 0
+ chown radio radio /data/vendor/radio/copy_complete
+ chmod 0660 /data/vendor/radio/copy_complete
+
+ # copy prebuilt qcril.db files always
+ copy /vendor/radio/qcril_database/qcril.db /data/vendor/radio/qcril_prebuilt.db
+ chown radio radio /data/vendor/radio/qcril_prebuilt.db
+ chmod 0660 /data/vendor/radio/qcril_prebuilt.db
+ copy /vendor/radio/qcril_database/qcrilNr.db /data/vendor/radio/qcrilNr_prebuilt.db
+ copy /vendor/etc/qcril_database/qcrilNr.db /data/vendor/radio/qcrilNr_prebuilt.db
+ chown radio radio /data/vendor/radio/qcrilNr_prebuilt.db
+ chmod 0660 /data/vendor/radio/qcrilNr_prebuilt.db
+
+ # File flags for prebuilt ril db file
+ write /data/vendor/radio/prebuilt_db_support 1
+ chown radio radio /data/vendor/radio/prebuilt_db_support
+ chmod 0400 /data/vendor/radio/prebuilt_db_support
+ write /data/vendor/radio/db_check_done 0
+ chown radio radio /data/vendor/radio/db_check_done
+ chmod 0660 /data/vendor/radio/db_check_done
+
+ # qti-logkit data
+ mkdir /data/vendor/qti-logkit/ 0771 system system
+ mkdir /data/vendor/qti-logkit/shared-privileged/ 2770 system system
+ mkdir /data/vendor/qti-logkit/shared-public/ 2770 system diag
+ mkdir /data/vendor/qti-logkit/socket-privileged/ 2770 system system
+ mkdir /data/vendor/qti-logkit/socket-public/ 2750 system diag
+ mkdir /data/vendor/qti-logkit/logdata/ 2750 system shell
+
+ #Create SWAP related dirs
+ mkdir /data/vendor/swap 0770 root system
+ chmod 2770 /data/vendor/swap
+
+ # Create vpp directory
+ mkdir /data/vendor/vpp 0770 media media
+
+ #Create dir for TUI
+ mkdir /data/vendor/tui 0700 system drmrpc
+
+service nqnfcinfo /system/vendor/bin/nqnfcinfo
+ class late_start
+ group nfc
+ user system
+ oneshot
+
+service iop /system/vendor/bin/iop
+ class main
+ user root
+ group root
+ disabled
+ socket iop seqpacket 0666 root system
+
+service qcomsysd /system/vendor/bin/qcom-system-daemon
+ class main
+ user root
+ group root diag oem_2901
+ disabled
+
+on property:persist.vendor.qcomsysd.enabled=1
+ enable qcomsysd
+
+on property:persist.vendor.qcomsysd.enabled=0
+ stop qcomsysd
+
+on property:ro.vendor.iocgrp.config=1
+ mkdir /dev/blkio
+ mount cgroup none /dev/blkio blkio
+ chown system system /dev/blkio
+ chown system system /dev/blkio/tasks
+ chmod 0664 /dev/blkio/tasks
+ mkdir /dev/blkio/bg 0755 system system
+ chown system system /dev/blkio/bg/tasks
+ chmod 0664 /dev/blkio/bg/tasks
+ write /dev/blkio/blkio.weight 1000
+ write /dev/blkio/bg/blkio.weight 100
+
+on property:persist.sys.mba_boot_timeout=*
+ write /sys/module/pil_msa/parameters/pbl_mba_boot_timeout_ms ${persist.sys.mba_boot_timeout}
+
+on property:persist.sys.modem_auth_timeout=*
+ write /sys/module/pil_msa/parameters/modem_auth_timeout_ms ${persist.sys.modem_auth_timeout}
+
+on property:persist.sys.pil_proxy_timeout=*
+ write /sys/module/peripheral_loader/parameters/proxy_timeout_ms ${persist.sys.pil_proxy_timeout}
+
+on property:persist.vendor.sys.rawdump_copy=1
+ write /sys/kernel/dload/emmc_dload 1
+
+on property:persist.vendor.sys.rawdump_copy=0
+ write /sys/kernel/dload/emmc_dload 0
+
+on property:sys.boot_completed=1
+ write /dev/kmsg "Boot completed "
+ #Enable UFS clock scaling back
+ write /sys/bus/platform/devices/1d84000.ufshc/clkscale_enable 1
+ #WDSP FW boot sysfs node used by STHAL
+ chown media audio /sys/kernel/wdsp0/boot
+ chown media audio /sys/kernel/wcd_cpe0/fw_name
+ #Reinit lmkd to reconfigure lmkd properties
+ setprop lmkd.reinit 1
+
+# corefile limit
+on property:persist.debug.trace=1
+ mkdir /data/core 0777 root root
+ write /proc/sys/kernel/core_pattern "/data/core/%E.%p.%e"
+
+on property:vendor.media.target.version=*
+ setprop vendor.sys.media.target.version ${vendor.media.target.version}
+
+on property:vendor.netflix.bsp_rev=*
+ setprop ro.netflix.bsp_rev ${vendor.netflix.bsp_rev}
+
+on property:vendor.media.target_variant=*
+ setprop ro.media.xml_variant.codecs ${vendor.media.target_variant}
+ setprop ro.media.xml_variant.codecs_performance ${vendor.media.target_variant}
+
+on property:vold.decrypt=trigger_restart_framework
+ start wcnss-service
+
+service vendor.qrtr-ns /vendor/bin/qrtr-ns -f
+ class core
+ user vendor_qrtr
+ group vendor_qrtr
+ capabilities NET_BIND_SERVICE
+
+service irsc_util /vendor/bin/irsc_util "/vendor/etc/sec_config"
+ class core
+ user root
+ oneshot
+
+service qmiproxy /system/bin/qmiproxy
+ class main
+ user radio
+ group radio diag
+ disabled
+
+# Data Migration
+service vendor.move_wifi_data /system/bin/move_wifi_data.sh
+ class main
+ user wifi
+ group wifi
+ disabled
+ oneshot
+
+service vendor.sensingdaemon /vendor/bin/sensingdaemon
+ class hal
+ socket wigig/sensingdaemon stream 660 system wifi
+ user system
+ group wifi
+ disabled
+
+service dhcpcd_wlan0 /system/bin/dhcpcd -ABKLG
+ class late_start
+ disabled
+ oneshot
+
+service dhcpcd_bond0 /system/bin/dhcpcd -ABKLG
+ class late_start
+ disabled
+ oneshot
+
+service dhcpcd_p2p /system/bin/dhcpcd -ABKLG
+ class late_start
+ disabled
+ oneshot
+
+service dhcpcd_wigig0 /system/bin/dhcpcd -ABKLG
+ class late_start
+ disabled
+ oneshot
+
+service iprenew_wlan0 /system/bin/dhcpcd -n
+ class late_start
+ disabled
+ oneshot
+
+service iprenew_bond0 /system/bin/dhcpcd -n
+ class late_start
+ disabled
+ oneshot
+
+service iprenew_p2p /system/bin/dhcpcd -n
+ class late_start
+ disabled
+ oneshot
+
+service iprenew_wigig0 /system/bin/dhcpcd -n
+ class late_start
+ disabled
+ oneshot
+
+service ptt_socket_app /system/vendor/bin/ptt_socket_app -d
+ class main
+ user wifi
+ group wifi system inet net_admin
+ capabilities NET_ADMIN
+ oneshot
+
+service ptt_ffbm /system/vendor/bin/ptt_socket_app -f -d
+ user root
+ group root
+ disabled
+ oneshot
+
+service wifi_ftmd /system/vendor/bin/wifi_ftmd
+ user system
+ group system inet net_admin
+ socket wififtmd_server dgram 0660 system system
+ disabled
+ oneshot
+
+on property:vendor.wifi.ftmd.load=true
+ insmod /system/lib/modules/pronto/pronto_wlan.ko con_mode=5
+
+service cnss-daemon /system/vendor/bin/cnss-daemon -n -l
+ class late_start
+ user system
+ group system inet net_admin wifi
+ capabilities NET_ADMIN
+
+on property:sys.shutdown.requested=*
+ write /sys/kernel/shutdown_wlan/shutdown 1
+ stop cnss-daemon
+
+service dhcpcd_bt-pan /system/bin/dhcpcd -BKLG
+ class late_start
+ disabled
+ oneshot
+
+service iprenew_bt-pan /system/bin/dhcpcd -n
+ class late_start
+ disabled
+ oneshot
+
+service ssgqmigd /vendor/bin/ssgqmigd
+ class late_start
+ user radio
+ group radio gps system
+ socket ssgqmig seqpacket 0660 radio inet
+
+service mlid /vendor/bin/mlid
+ class late_start
+ user gps
+ group gps
+ socket mlid stream 0666 gps gps
+
+service loc_launcher /system/vendor/bin/loc_launcher
+ class late_start
+ user gps
+ group gps
+
+service qcom-sh /vendor/bin/init.qcom.sh
+ class late_start
+ user root
+ group root system radio
+ oneshot
+
+on property:ro.vendor.ril.mbn_copy_completed=1
+ write /data/vendor/radio/copy_complete 1
+
+service qvop-daemon /vendor/bin/qvop-daemon
+ class late_start
+ user system
+ group system drmrpc
+
+service vendor.atfwd /vendor/bin/ATFWD-daemon
+ class late_start
+ user system
+ group system radio
+
+service hostapd_fst /vendor/bin/hw/hostapd -dd -g /data/vendor/wifi/hostapd/global
+ class main
+ capabilities NET_ADMIN NET_RAW
+ user wifi
+ group wifi
+ disabled
+ oneshot
+
+service battery_monitor /system/bin/battery_monitor
+ user system
+ group system
+ disabled
+
+service vendor.ril-daemon2 /vendor/bin/hw/rild -c 2
+ class main
+ user radio
+ disabled
+ group radio cache inet misc audio sdcard_r sdcard_rw diag oem_2901 log
+ capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW
+
+service vendor.ril-daemon3 /vendor/bin/hw/rild -c 3
+ class main
+ user radio
+ disabled
+ group radio cache inet misc audio sdcard_r sdcard_rw diag oem_2901 log
+ capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW
+
+service profiler_daemon /system/bin/profiler_daemon
+ class late_start
+ user root
+ group root
+ disabled
+
+service charger /system/bin/charger
+ class charger
+ user system
+ group system graphics input
+ capabilities SYS_BOOT
+ seclabel u:r:charger:s0
+
+service vendor.ssr_diag /system/vendor/bin/ssr_diag
+ class late_start
+ user system
+ group system
+ disabled
+
+service hvdcp /system/bin/hvdcp
+ class core
+ user root
+ disabled
+
+on property:persist.usb.hvdcp.detect=true
+ start hvdcp
+
+on property:persist.usb.hvdcp.detect=false
+ stop hvdcp
+
+service charger_monitor /system/bin/charger_monitor
+ user root
+ group root
+ disabled
+
+service qbcharger /charger -m 1
+ disabled
+ oneshot
+
+on property:sys.qbcharger.enable=true
+ start qbcharger
+
+on property:sys.qbcharger.enable=false
+ stop qbcharger
+
+# service diag_mdlog_start /system/vendor/bin/diag_mdlog
+service diag_mdlog_start /system/bin/diag_mdlog_system -n 40 -s 500
+ class late_start
+ user shell
+# group system oem_2901 sdcard_rw sdcard_r media_rw
+ group system diag oem_2901 sdcard_rw sdcard_r media_rw
+ disabled
+ oneshot
+
+#service diag_mdlog_stop /system/vendor/bin/diag_mdlog -k
+service diag_mdlog_stop /system/bin/diag_mdlog_system -k
+ class late_start
+ user shell
+# group system oem_2901 sdcard_rw sdcard_r media_rw
+ group system diag oem_2901 sdcard_rw sdcard_r media_rw
+ disabled
+ oneshot
+
+on property:persist.vendor.mdlog.enable=true
+ start diag_mdlog_start
+on property:persist.vendor.mdlog.enable=false
+ start diag_mdlog_stop
+
+service qlogd /system/xbin/qlogd
+ socket qlogd stream 0662 system system
+ class main
+ disabled
+on property:persist.vendor.qlogd=1
+ start qlogd
+on property:persist.vendor.qlogd=0
+ stop qlogd
+
+service vm_bms /vendor/bin/vm_bms
+ user root
+ group root
+ disabled
+
+service vendor.msm_irqbalance /vendor/bin/msm_irqbalance -f /system/vendor/etc/msm_irqbalance.conf
+ class core
+ user root
+ group root
+
+# service for USERDEBUG
+service vendor.LKCore-dbg /vendor/bin/LKCore
+ class late_start
+ oneshot
+ disabled
+ user root
+ group root system log diag net_raw
+
+
+# service for USER
+service vendor.LKCore-rel /vendor/bin/LKCore
+ class late_start
+ oneshot
+ disabled
+ user system
+ group system log diag
+
+service qseeproxydaemon /system/vendor/bin/qseeproxydaemon
+ class late_start
+ user system
+ group system
+
+service esepmdaemon /system/vendor/bin/esepmdaemon
+ class core
+ user system
+ group nfc
+
+on charger
+ setprop persist.sys.usb.config mass_storage
+
+#add poweroffhandler
+service poweroffhandler /system/vendor/bin/poweroffhandler
+ class core
+ user media
+ group graphics audio
+ disabled
+ oneshot
+
+service time_daemon /vendor/bin/time_daemon
+ class main
+ user system
+ group system
+ capabilities SYS_TIME
+
+# Set vendor-ril lib path based on Meta version
+on property:vendor.rild.libpath=*
+ setprop rild.libpath ${vendor.rild.libpath}
+
+on property:ro.vendor.radio.noril=*
+ setprop ro.radio.noril ${ro.vendor.radio.noril}
+
+service vendor.power_off_alarm /vendor/bin/power_off_alarm
+ class core
+ group system
+ disabled
+ oneshot
+
+service vendor.hbtp /vendor/bin/hbtp_daemon
+ class main
+ user system
+ group system
+ capabilities SYS_NICE
+ disabled
+
+service chre /vendor/bin/chre
+ class late_start
+ user system
+ group system
+ socket chre seqpacket 0660 root system
+ shutdown critical
+
+on property:vendor.chre.enabled=0
+ stop chre
+
+service bugreport /system/bin/dumpstate -d -p -B -z -o /data/user_de/0/com.android.shell/files/bugreports/bugreport
+ class main
+ disabled
+ oneshot
+ keycodes 114 115 116
+
+#Set GPU Opengles version
+on property:vendor.opengles.version=*
+ setprop ro.opengles.version ${vendor.opengles.version}
+
+#Set gpu available frequencies property
+on property:vendor.gpu.available_frequencies=*
+ setprop ro.vendor.gpu.available_frequencies ${vendor.gpu.available_frequencies}
+
+service vendor.audio-hal /vendor/bin/hw/android.hardware.audio.service
+ override
+ class hal
+ user audioserver
+ # media gid needed for /dev/fm (radio) and for /data/misc/media (tee)
+ group audio camera drmrpc inet media mediadrm net_bt net_bt_admin net_bw_acct oem_2901 wakelock
+ capabilities BLOCK_SUSPEND
+ ioprio rt 4
+ writepid /dev/cpuset/foreground/tasks /dev/stune/foreground/tasks
+ socket audio_hw_socket seqpacket 0666 system system
+ onrestart restart audioserver
+
+service vendor.hwcomposer-2-4 /vendor/bin/hw/android.hardware.graphics.composer@2.4-service
+ override
+ class hal animation
+ user system
+ group graphics drmrpc
+ capabilities SYS_NICE
+ onrestart restart surfaceflinger
+ writepid /dev/cpuset/system-background/tasks
+ socket pps stream 0660 system system
diff --git a/rootdir/etc/init.recovery.qcom.rc b/rootdir/etc/init.recovery.qcom.rc
new file mode 100644
index 0000000..c0fa50d
--- /dev/null
+++ b/rootdir/etc/init.recovery.qcom.rc
@@ -0,0 +1,38 @@
+# Copyright (c) 2017-2018,2020 The Linux Foundation. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of The Linux Foundation nor
+# the names of its contributors may be used to endorse or promote
+# products derived from this software without specific prior written
+# permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+on init
+ write /sys/class/backlight/panel0-backlight/brightness 200
+ setprop sys.usb.configfs 1
+
+on property:ro.boot.usbcontroller=*
+ setprop sys.usb.controller ${ro.boot.usbcontroller}
+ write /sys/class/udc/${ro.boot.usbcontroller}/device/../mode peripheral
+
+on fs
+ wait /dev/block/platform/soc/${ro.boot.bootdevice}
+ symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice
diff --git a/rootdir/etc/init.target.rc b/rootdir/etc/init.target.rc
new file mode 100644
index 0000000..67b24b5
--- /dev/null
+++ b/rootdir/etc/init.target.rc
@@ -0,0 +1,219 @@
+# Copyright (c) 2013-2018,2020, The Linux Foundation. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+# * Neither the name of The Linux Foundation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+#
+
+on early-init
+ # configure governor settings
+ write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor schedutil
+ write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us 500
+ write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us 20000
+ write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 576000
+
+ # configure governor settings for big cluster
+ write /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor schedutil
+ write /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us 500
+ write /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us 20000
+ write /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq 652800
+
+on init
+ write /sys/module/qpnp_rtc/parameters/poweron_alarm 1
+ wait /dev/block/platform/soc/${ro.boot.bootdevice}
+ symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice
+
+ # Boot time cpuset and stune
+ write /dev/cpuset/top-app/cpus 0-7
+ write /dev/cpuset/foreground/cpus 0-7
+ write /dev/cpuset/background/cpus 0-5
+ write /dev/cpuset/system-background/cpus 0-5
+ write /dev/cpuset/restricted/cpus 2-5
+ write /dev/stune/foreground/schedtune.prefer_idle 1
+ write /dev/stune/foreground/schedtune.prefer_high_cap 1
+ write /dev/stune/foreground/schedtune.boost 100
+ write /dev/stune/schedtune.prefer_idle 1
+ write /dev/stune/schedtune.prefer_high_cap 1
+ write /dev/stune/schedtune.boost 100
+ write /dev/stune/top-app/schedtune.prefer_idle 1
+ write /dev/stune/top-app/schedtune.prefer_high_cap 1
+ write /dev/stune/top-app/schedtune.boost 100
+
+ mkdir /dev/cpuset/camera-daemon
+ write /dev/cpuset/camera-daemon/cpus 0-7
+ write /dev/cpuset/camera-daemon/mems 0
+ chown cameraserver cameraserver /dev/cpuset/camera-daemon
+ chown cameraserver cameraserver /dev/cpuset/camera-daemon/tasks
+ chmod 0660 /dev/cpuset/camera-daemon/tasks
+
+on early-fs
+ start vold
+
+on fs
+ start hwservicemanager
+ mount_all --early
+ chown root system /mnt/vendor/persist
+ chmod 0771 /mnt/vendor/persist
+ restorecon_recursive /mnt/vendor/persist
+ mkdir /mnt/vendor/persist/data 0700 system system
+ mkdir /mnt/vendor/persist/subsys 0770 root system
+ mkdir /mnt/vendor/persist/audio 0755 system system
+ mkdir /mnt/vendor/persist/haptics 0755 system system
+
+on post-fs
+ write /dev/ipa 1
+
+on late-fs
+ wait_for_prop hwservicemanager.ready true
+ exec_start wait_for_keymaster
+ mount_all --late
+
+on post-fs-data
+ mkdir /data/vendor/fpc 0770 system system
+ mkdir /data/vendor/goodix 0770 system system
+ mkdir /data/vendor/touchpad 0775 system system
+ mkdir /data/vendor/hbtp 0750 system system
+ mkdir /persist/qti_fp 0700 system system
+ mkdir /data/vendor/nnhal 0700 system system
+ mkdir /data/vendor/mac_addr 0771 system system
+
+on boot
+ chown system system /sys/class/drm/card0-DSI-1/disp_param
+ chmod 0664 /sys/class/drm/card0-DSI-1/disp_param
+ chown system system /sys/class/drm/card0-DSI-1/mipi_reg
+ chmod 0664 /sys/class/drm/card0-DSI-1/mipi_reg
+ chown system system /sys/class/drm/card0-DSI-1/panel_info
+ chmod 0444 /sys/class/drm/card0-DSI-1/panel_info
+ chown system system /sys/kernel/hbtp/display_pwr
+ start rmt_storage
+ start rfs_access
+
+ chmod 0666 sys/devices/platform/soc/890000.i2c/i2c-1/1-005a/cali
+ chmod 0666 sys/devices/platform/soc/890000.i2c/i2c-1/1-005a/cali_save
+ chmod 0666 sys/devices/platform/soc/890000.i2c/i2c-1/1-005a/f0_save
+ chmod 0666 sys/devices/platform/soc/890000.i2c/i2c-1/1-005a/osc_save
+ chmod 0666 sys/devices/platform/soc/890000.i2c/i2c-1/1-005a/osc_cali
+
+# access permissions for fingerprint
+ chown system system /sys/bus/platform/devices/soc/soc:fpc1020/irq
+ chown system system /sys/bus/platform/devices/soc/soc:fpc1020/wakeup_enable
+ chown system system /sys/bus/platform/devices/soc/soc:fpc1020/modalias
+ chmod 0666 /dev/qseecom
+ chmod 0644 /dev/goodix_fp
+ chown system system /dev/goodix_fp
+
+#USB controller configuration
+ setprop vendor.usb.rndis.func.name "gsi"
+ setprop vendor.usb.rmnet.func.name "gsi"
+ setprop vendor.usb.rmnet.inst.name "rmnet"
+ setprop vendor.usb.dpl.inst.name "dpl"
+ setprop vendor.usb.qdss.inst.name "qdss"
+ setprop vendor.usb.controller a600000.dwc3
+
+#pd-mapper
+service vendor.pd_mapper /vendor/bin/pd-mapper
+ class core
+ user system
+ group system
+
+#Peripheral manager
+service vendor.per_mgr /vendor/bin/pm-service
+ class core
+ user system
+ group system
+ ioprio rt 4
+
+service vendor.per_proxy /vendor/bin/pm-proxy
+ class core
+ user system
+ group system
+ disabled
+
+service vendor.thermal-engine /vendor/bin/thermal-engine -c /vendor/etc/thermal-engine-${ro.boot.hwname}.conf
+ class main
+ user root
+ group root
+
+on property:init.svc.vendor.per_mgr=running
+ start vendor.per_proxy
+
+on property:sys.shutdown.requested=*
+ stop vendor.per_proxy
+
+on charger
+ mkdir /mnt/vendor/persist
+ chown root system /mnt/vendor/persist
+ chmod 0771 /mnt/vendor/persist
+ mkdir /mnt/vendor/persist/subsys 0770 root system
+ setprop sys.usb.controller a600000.dwc3
+ setprop sys.usb.configfs 1
+ chown system system /sys/class/leds/red/brightness
+ chmod 0666 /sys/class/leds/red/brightness
+ chmod 0666 /sys/class/backlight/panel0-backlight/brightness
+ start vendor.power_off_alarm
+
+on property:sys.boot_completed=1
+ # Read only one page at a time
+ write /proc/sys/vm/page-cluster 0
+ # Swap more aggressively
+ write /proc/sys/vm/swappiness 100
+ # Set zRAM compression algorithm to LZ4
+ write /sys/block/zram0/comp_algorithm lz4
+ # Enable zRAM data deduplication feature
+ write /sys/block/zram0/use_dedup 1
+ # Mount swap partitions specified in fstab
+ swapon_all /vendor/etc/fstab.qcom
+
+ # Back to default VM settings
+ write /proc/sys/vm/dirty_expire_centisecs 3000
+ write /proc/sys/vm/dirty_background_ratio 10
+
+ # Setup runtime cpusets
+ write /dev/cpuset/top-app/cpus 0-7
+ write /dev/cpuset/foreground/cpus 0-5,7
+ write /dev/cpuset/background/cpus 4-5
+ write /dev/cpuset/system-background/cpus 2-5
+ write /dev/cpuset/restricted/cpus 2-5
+
+ # Setup runtime schedTune
+ write /dev/stune/foreground/schedtune.prefer_idle 1
+ write /dev/stune/foreground/schedtune.prefer_high_cap 0
+ write /dev/stune/foreground/schedtune.boost 0
+ write /dev/stune/schedtune.prefer_idle 0
+ write /dev/stune/schedtune.prefer_high_cap 0
+ write /dev/stune/schedtune.boost 0
+ write /dev/stune/top-app/schedtune.prefer_idle 1
+ write /dev/stune/top-app/schedtune.prefer_high_cap 0
+ write /dev/stune/top-app/schedtune.boost 10
+
+ # Setup runtime blkio
+ # value for group_idle is us
+ write /dev/blkio/blkio.weight 1000
+ write /dev/blkio/background/blkio.weight 200
+ write /dev/blkio/blkio.group_idle 2000
+ write /dev/blkio/background/blkio.group_idle 0
+
+on property:ro.boot.multisim_config=*
+ setprop persist.radio.multisim.config ${ro.boot.multisim_config}
diff --git a/rootdir/etc/ueventd.qcom.rc b/rootdir/etc/ueventd.qcom.rc
new file mode 100644
index 0000000..5b18473
--- /dev/null
+++ b/rootdir/etc/ueventd.qcom.rc
@@ -0,0 +1,481 @@
+# Copyright (c) 2012-2015, 2017-2020, The Linux Foundation. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of The Linux Foundation nor
+# the names of its contributors may be used to endorse or promote
+# products derived from this software without specific prior written
+# permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+# Firmware directory Path
+# Below macro will be read by uevent and path will
+# be added to search path for firmware loading
+firmware_directories /vendor/firmware_mnt/image/
+
+# the DIAG device node is not world writable/readable.
+/dev/diag 0660 system oem_2901
+/dev/mhi_*_pipe_4 0660 system system
+
+/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/membuf 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/ipa_odl_ctl 0660 radio radio
+/dev/ipa_adpl 0660 system oem_2905
+/dev/synx_device 0660 root camera
+/dev/hab 0666 system system
+/dev/hgsl 0666 system system
+/dev/iio:device* 0664 system system
+
+#permissions for UFS RPMB BSG device node
+/dev/0:0:0:49476 0600 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/cvp* 0660 system camera
+/dev/media* 0660 system camera
+/dev/v4l-subdev* 0660 system camera
+/dev/qseecom 0660 system drmrpc
+/dev/qce 0660 system drmrpc
+/dev/smcinvoke 0660 system drmrpc
+/dev/qsee_ipc_irq_spss 0660 system drmrpc
+/dev/seemplog 0660 system system
+/dev/pft 0660 system drmrpc
+/dev/spcom 0660 system system
+/dev/spss_utils 0660 system system
+/dev/sp_kernel 0660 system system
+/dev/sp_nvm 0660 system system
+/dev/sp_ssr 0660 system system
+/dev/sp_keymaster 0660 system system
+/dev/sp_keymaster_ssr 0660 system system
+/dev/sec_nvm_* 0660 system system
+/dev/cryptoapp 0660 system system
+/dev/spdaemon_ssr 0660 system system
+/dev/spu_hal_ssr 0660 system system
+/dev/iuicc* 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/adsprpc-smd-secure 0644 system system
+/dev/system_health_monitor 0644 radio system
+/dev/mdss_rotator 0664 system system
+
+#QDSS
+/dev/byte-cntr 0660 system oem_2902
+/dev/mhi_qdss 0660 system oem_2902
+/sys/class/qdss_bridge/mhi_qdss mode 0660 system oem_2902
+
+#qg
+/dev/qg 0660 system system
+/dev/qg_battery 0660 system system
+
+#qvr
+/dev/qvr_external_sensor_ioctl 0660 system system
+/sys/kernel/qvr_external_sensor fd 0660 system system
+/dev/bus/usb/* 0660 root usb
+/dev/hidraw* 0660 root usb
+
+# 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
+/sys/devices/platform/soc/*.qcom,icnss/net/wlan*/queues/rx-* rps_cpus 0660 system system
+/sys/devices/platform/soc/1c00000.qcom,pcie/pci0000:00/0000:00:00.0/0000:01:00.0/net/wlan*/queues/rx-* rps_cpus 0660 system system
+/sys/devices/platform/soc/17a10040.qcom,wcn6750/net/wlan*/queues/rx-* rps_cpus 0660 system system
+/dev/spidev0.0 0660 system audio
+/dev/spidev0.1 0660 system system
+/dev/i2c-7 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
+/dev/spidev2.0 0660 system audio
+/dev/spidev22.0 0660 system audio
+/dev/spidev10.0 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
+/dev/sensors 0660 system system
+/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
+/sys/devices/platform/soc/a98000.i2c/i2c-2/2-0020/input/input* secure_touch 0440 system drmrpc
+/sys/devices/platform/soc/a98000.i2c/i2c-2/2-0020/input/input* secure_touch_enable 0660 system drmrpc
+/sys/devices/platform/soc/a84000.i2c/i2c-2/2-0020/input/input* secure_touch 0440 system drmrpc
+/sys/devices/platform/soc/a84000.i2c/i2c-2/2-0020/input/input* secure_touch_enable 0660 system drmrpc
+/sys/devices/platform/soc/soc:fpc1020* fingerdown_wait 0220 system system
+
+# GNSS Device premissions
+/dev/gnss_sirf 0660 gps gps
+
+# 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/qbt* 0660 system system
+/sys/class/fts/touch_aoi aoi_set 0660 root system
+/sys/class/fts/touch_aoi power_set 0660 root 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
+/dev/block/platform/soc/7c4000.sdhci/by-name/frp 0600 system system
+/dev/block/platform/soc/4744000.sdhci/by-name/frp 0600 system system
+/dev/block/platform/soc/4804000.ufshc/by-name/frp 0600 system system
+
+# This is temporary while using SD card for initial bring-up
+/dev/block/platform/soc/8804000.sdhci/by-name/frp 0600 system system
+
+# Kmsg device
+/dev/kmsg 0620 root system
+
+# LED class devices
+/sys/class/leds/red delay_on 0640 system system
+/sys/class/leds/red delay_off 0640 system system
+/sys/class/leds/red breath 0640 system system
+/sys/class/leds/red trigger 0640 system system
+/sys/class/leds/green delay_on 0640 system system
+/sys/class/leds/green delay_off 0640 system system
+/sys/class/leds/green breath 0640 system system
+/sys/class/leds/green trigger 0640 system system
+/sys/class/leds/blue delay_on 0640 system system
+/sys/class/leds/blue delay_off 0640 system system
+/sys/class/leds/blue breath 0640 system system
+/sys/class/leds/blue trigger 0640 system system
+
+# NPU device
+/dev/msm_npu 0644 system system
+
+# USB role switch
+/sys/class/dual_role_usb/* data_role 0660 system system
+/sys/class/dual_role_usb/* power_role 0660 system system
+/sys/class/dual_role_usb/* mode 0660 system system
+
+#Memory Offline
+/sys/devices/system/memory/memory* state 0660 system system
+
+/sys/devices/virtual/hdcp/msm_hdcp min_level_change 0664 system graphics
+
+# sys-fs display
+/sys/class/graphics/fb* hpd 0664 system graphics
+/sys/class/graphics/fb* res_info 0664 system graphics
+/sys/class/graphics/fb* vendor_name 0664 system graphics
+/sys/class/graphics/fb* product_description 0664 system graphics
+/sys/class/graphics/fb* video_mode 0664 system graphics
+/sys/class/graphics/fb* format_3d 0664 system graphics
+/sys/class/graphics/fb* s3d_mode 0664 system graphics
+/sys/class/graphics/fb* dynamic_fps 0664 system graphics
+/sys/class/graphics/fb* msm_fb_dfps_mode 0664 system graphics
+/sys/class/graphics/fb* hdr_stream 0664 system graphics
+/sys/class/graphics/fb* cec/enable 0664 system graphics
+/sys/class/graphics/fb* cec/logical_addr 0664 system graphics
+/sys/class/graphics/fb* cec/rd_msg 0664 system graphics
+/sys/class/graphics/fb* pa 0664 system graphics
+/sys/class/graphics/fb* cec/wr_msg 0600 system graphics
+/sys/class/graphics/fb* hdcp/tp 0664 system graphics
+/sys/class/graphics/fb* hdcp2p2/min_level_change 0660 system graphics
+/sys/class/graphics/fb* hdmi_audio_cb 0600 audioserver audio
+
+/sys/class/graphics/fb* lineptr_value 0664 system graphics
+/sys/class/graphics/fb* msm_fb_persist_mode 0664 system graphics
+
+/sys/class/graphics/fb0 idle_time 0664 system graphics
+/sys/class/graphics/fb0 dynamic_fps 0664 system graphics
+/sys/class/graphics/fb0 dyn_pu 0664 system graphics
+/sys/class/graphics/fb0 modes 0664 system graphics
+/sys/class/graphics/fb0 mode 0664 system graphics
+/sys/class/graphics/fb0 msm_cmd_autorefresh_en 0664 system graphics
+
+/sys/devices/platform/soc/ae00000.qcom,mdss_mdp power/control 0664 system graphics
+
+#asm330 sensor
+#common sensors files
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* buffer/enable 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* buffer/length 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* buffer/watermark 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* discharded_samples 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* current_timestamp_clock 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* hwfifo_flush 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* hwfifo_watermark 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* hwfifo_watermark_max 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* mount_matrix 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* name 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* sampling_frequency 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* sampling_frequency_available 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_timestamp_en 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_timestamp_index 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_timestamp_type 0664 system system
+
+# standard iio accel attributes
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_scale_available 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_x_raw 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_x_scale 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_y_raw 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_y_scale 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_z_raw 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_accel_z_scale 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_x_en 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_x_index 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_x_type 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_y_en 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_y_index 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_y_type 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_z_en 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_z_index 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_accel_z_type 0664 system system
+
+# standard iio gyro attributes
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_scale_available 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_x_raw 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_x_scale 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_y_raw 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_y_scale 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_z_raw 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_anglvel_z_scale 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_x_en 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_x_index 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_x_type 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_y_en 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_y_index 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_y_type 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_z_en 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_z_index 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* scan_elements/in_anglvel_z_type 0664 system system
+
+
+# standard iio temp attributes
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_temp_offset 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_temp_raw 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_temp_scale 0664 system system
+/sys/devices/platform/soc/*.i2c/i2c-*/*-*/iio:device* in_temp_scale_available 0664 system system
diff --git a/sepolicy/private/property_contexts b/sepolicy/private/property_contexts
new file mode 100644
index 0000000..c847b7e
--- /dev/null
+++ b/sepolicy/private/property_contexts
@@ -0,0 +1,2 @@
+# WiFi Display
+persist.vendor.setWFDInfo. u:object_r:vendor_wfd_sys_debug_prop:s0
diff --git a/sepolicy/private/system_server.te b/sepolicy/private/system_server.te
new file mode 100644
index 0000000..0071ee2
--- /dev/null
+++ b/sepolicy/private/system_server.te
@@ -0,0 +1 @@
+get_prop(system_server, vendor_wfd_sys_debug_prop)
diff --git a/sepolicy/private/vendor_wfd_app.te b/sepolicy/private/vendor_wfd_app.te
new file mode 100644
index 0000000..4e78cfb
--- /dev/null
+++ b/sepolicy/private/vendor_wfd_app.te
@@ -0,0 +1 @@
+get_prop(vendor_wfd_app, vendor_wfd_sys_debug_prop)
diff --git a/sepolicy/vendor/adsprpcd.te b/sepolicy/vendor/adsprpcd.te
new file mode 100644
index 0000000..5227744
--- /dev/null
+++ b/sepolicy/vendor/adsprpcd.te
@@ -0,0 +1,2 @@
+r_dir_file(vendor_adsprpcd, public_adsprpcd_file)
+r_dir_file(vendor_adsprpcd, vendor_sysfs_graphics)
diff --git a/sepolicy/vendor/app.te b/sepolicy/vendor/app.te
new file mode 100644
index 0000000..7cf5cde
--- /dev/null
+++ b/sepolicy/vendor/app.te
@@ -0,0 +1,6 @@
+allow { appdomain -isolated_app } adsprpcd_file:dir r_dir_perms;
+allow { appdomain -isolated_app } public_adsprpcd_file:file r_file_perms;
+allow { appdomain -isolated_app } vendor_xdsp_device:chr_file r_file_perms;
+
+get_prop({ appdomain -isolated_app }, vendor_fingerprint_prop)
+get_prop({ appdomain -isolated_app }, vendor_tee_listener_prop)
diff --git a/sepolicy/vendor/batterysecret.te b/sepolicy/vendor/batterysecret.te
new file mode 100644
index 0000000..c6a6425
--- /dev/null
+++ b/sepolicy/vendor/batterysecret.te
@@ -0,0 +1,49 @@
+type batterysecret, domain;
+type batterysecret_exec, exec_type, vendor_file_type, file_type;
+
+init_daemon_domain(batterysecret)
+
+r_dir_file(batterysecret, cgroup)
+r_dir_file(batterysecret, mnt_vendor_file)
+r_dir_file(batterysecret, vendor_sysfs_battery_supply)
+r_dir_file(batterysecret, sysfs_batteryinfo)
+r_dir_file(batterysecret, sysfs_type)
+r_dir_file(batterysecret, vendor_sysfs_usb_supply)
+r_dir_file(batterysecret, vendor_sysfs_usbpd_device)
+
+allow batterysecret {
+ mnt_vendor_file
+ persist_subsys_file
+ rootfs
+}:dir rw_dir_perms;
+
+allow batterysecret {
+ persist_subsys_file
+ vendor_sysfs_battery_supply
+ sysfs_usb
+ vendor_sysfs_usb_supply
+ vendor_sysfs_usbpd_device
+}:file w_file_perms;
+
+allow batterysecret kmsg_device:chr_file rw_file_perms;
+
+allow batterysecret self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl;
+
+allow batterysecret self:global_capability_class_set {
+ sys_tty_config
+ sys_boot
+};
+
+allow batterysecret self:capability {
+ chown
+ fsetid
+};
+
+allow batterysecret {
+ system_suspend_hwservice
+ hidl_manager_hwservice
+}:hwservice_manager find;
+
+binder_call(batterysecret, system_suspend_server)
+
+wakelock_use(batterysecret)
diff --git a/sepolicy/vendor/cdsprpcd.te b/sepolicy/vendor/cdsprpcd.te
new file mode 100644
index 0000000..cead8a9
--- /dev/null
+++ b/sepolicy/vendor/cdsprpcd.te
@@ -0,0 +1 @@
+r_dir_file(vendor_cdsprpcd, public_adsprpcd_file)
diff --git a/sepolicy/vendor/device.te b/sepolicy/vendor/device.te
new file mode 100644
index 0000000..98f6bdd
--- /dev/null
+++ b/sepolicy/vendor/device.te
@@ -0,0 +1,3 @@
+type fingerprint_device, dev_type;
+
+type lirc_device, dev_type;
diff --git a/sepolicy/vendor/file.te b/sepolicy/vendor/file.te
new file mode 100644
index 0000000..2dc5e24
--- /dev/null
+++ b/sepolicy/vendor/file.te
@@ -0,0 +1,19 @@
+type audio_socket, file_type;
+
+type camera_persist_file, file_type, vendor_persist_type;
+
+type fingerprint_data_file, data_file_type, core_data_file_type, file_type;
+
+type persist_subsys_file, vendor_persist_type, file_type;
+
+type public_adsprpcd_file, file_type;
+
+type sysfs_msm_boot, fs_type, sysfs_type;
+
+type sysfs_msm_subsys, sysfs_type, fs_type;
+
+type thermal_link_device, dev_type;
+
+type sysfs_touchpanel, fs_type, sysfs_type;
+
+type vendor_sysfs_iio, fs_type, sysfs_type;
diff --git a/sepolicy/vendor/file_contexts b/sepolicy/vendor/file_contexts
new file mode 100644
index 0000000..e382555
--- /dev/null
+++ b/sepolicy/vendor/file_contexts
@@ -0,0 +1,45 @@
+# Audio
+/dev/socket/audio_hw_socket u:object_r:audio_socket:s0
+
+# Camera
+/mnt/vendor/persist/camera(/.*)? u:object_r:camera_persist_file:s0
+
+# Charger
+/vendor/bin/batterysecret u:object_r:batterysecret_exec:s0
+
+# Fingerprint
+/vendor/bin/hw/android\.hardware\.biometrics\.fingerprint@2.3-service\.xiaomi u:object_r:hal_fingerprint_default_exec:s0
+
+# Fingerprint - devices
+/dev/goodix_fp u:object_r:fingerprint_device:s0
+
+# Fingerprint - data
+/data/vendor/goodix(/.*)? u:object_r:fingerprint_vendor_data_file:s0
+/data/vendor/fpc(/.*)? u:object_r:fingerprint_vendor_data_file:s0
+
+# Hexagon DSP-side executable needed for Halide operation
+# This is labeled as public_adsprpcd_file as it needs to be read by apps
+# (e.g. Google Camera App)
+/mnt/vendor/dsp/fastrpc_shell_3 u:object_r:public_adsprpcd_file:s0
+
+# IR
+/dev/spidev0.1 u:object_r:lirc_device:s0
+
+# Lights
+/vendor/bin/hw/android\.hardware\.light-service\.xiaomi u:object_r:hal_light_default_exec:s0
+
+# Persist subsystem
+/mnt/vendor/persist/subsys(/.*)? u:object_r:persist_subsys_file:s0
+
+# Power
+/vendor/bin/hw/android\.hardware\.power-service\.xiaomi-libperfmgr u:object_r:hal_power_default_exec:s0
+
+# Sys
+/sys/bus/iio/devices u:object_r:vendor_sysfs_iio:s0
+/sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:vadc@3100/iio:device0(/.*)? u:object_r:vendor_sysfs_iio:s0
+/sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-04/c440000.qcom,spmi:qcom,pm6150l@4:vadc@3100/iio:device1(/.*)? u:object_r:vendor_sysfs_iio:s0
+
+# Thermal
+/vendor/bin/hw/android\.hardware\.thermal@2\.0-service\.pixel u:object_r:hal_thermal_default_exec:s0
+/vendor/bin/thermal_symlinks u:object_r:init-thermal-symlinks-sh_exec:s0
+/dev/thermal(/.*)? u:object_r:thermal_link_device:s0
diff --git a/sepolicy/vendor/genfs_contexts b/sepolicy/vendor/genfs_contexts
new file mode 100644
index 0000000..d197842
--- /dev/null
+++ b/sepolicy/vendor/genfs_contexts
@@ -0,0 +1,59 @@
+# DSP
+genfscon sysfs /kernel/boot_cdsp/boot u:object_r:sysfs_msm_boot:s0
+
+# Display
+genfscon sysfs /devices/platform/soc/5000000.qcom,kgsl-3d0 u:object_r:sysfs_msm_subsys:s0
+genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/idle_state u:object_r:vendor_sysfs_graphics:s0
+genfscon sysfs /devices/platform/soc/soc:qcom,cpu-cpu-llcc-bw u:object_r:sysfs_msm_subsys:s0
+genfscon sysfs /devices/platform/soc/soc:qcom,cpu-llcc-ddr-bw u:object_r:sysfs_msm_subsys:s0
+genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-cpu-l3-lat u:object_r:sysfs_msm_subsys:s0
+genfscon sysfs /devices/platform/soc/soc:qcom,cpu6-cpu-l3-lat u:object_r:sysfs_msm_subsys:s0
+genfscon sysfs /devices/platform/soc/soc:qcom,dsi-display u:object_r:vendor_sysfs_graphics:s0
+genfscon sysfs /devices/platform/soc/soc:qcom,gpubw u:object_r:sysfs_msm_subsys:s0
+genfscon sysfs /devices/platform/soc/soc:qcom,gpubw/devfreq u:object_r:sysfs_msm_subsys:s0
+
+# Health
+genfscon sysfs /class/power_supply/battery/capacity u:object_r:vendor_sysfs_battery_supply:s0
+genfscon sysfs /devices/platform/soc/soc:maxim_ds28e16/power_supply/batt_verify u:object_r:vendor_sysfs_battery_supply:s0
+
+# LED
+genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,leds@d000/leds/white u:object_r:sysfs_leds:s0
+
+# Touchpanel
+genfscon sysfs /touchpanel u:object_r:sysfs_touchpanel:s0
+
+# Wakeup source stats
+genfscon sysfs /devices/platform/soc/18800000.qcom,icnss/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/88c000.qcom,qup_uart/tty/ttyHS0/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/88e0000.qcom,msm-eud/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/890000.i2c/i2c-1/1-005a/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/a600000.ssusb/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,power-on@800/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,qpnp-smb5/power_supply/battery/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,qpnp-smb5/power_supply/dc/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,qpnp-smb5/power_supply/main/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,qpnp-smb5/power_supply/pc_port/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,qpnp-smb5/power_supply/usb/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,qpnp-smb5/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,usb-pdphy@1700/usbpd/usbpd0/otg_default/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,usb-pdphy@1700/usbpd/usbpd0/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qpnp,qg/power_supply/bms/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-04/c440000.qcom,spmi:qcom,pm6150l@4:qcom,power-on@800/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/soc:gpio_keys/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/soc:qcom,msm-audio-apr/soc:qcom,msm-audio-apr:qcom,q6core-audio/soc:qcom,msm-audio-apr:qcom,q6core-audio:bolero-cdc/rx-macro/rx_swr_ctrl/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/soc:qcom,msm-audio-apr/soc:qcom,msm-audio-apr:qcom,q6core-audio/soc:qcom,msm-audio-apr:qcom,q6core-audio:bolero-cdc/tx-macro/tx_swr_ctrl/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/virtual/input/input1/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/virtual/misc/msm_aac/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/virtual/misc/msm_alac/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/virtual/misc/msm_amrnb/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/virtual/misc/msm_amrwbplus/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/virtual/misc/msm_amrwb/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/virtual/misc/msm_ape/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/virtual/misc/msm_evrc/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/virtual/misc/msm_g711alaw/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/virtual/misc/msm_g711mlaw/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/virtual/misc/msm_mp3/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/virtual/misc/msm_multi_aac/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/virtual/misc/msm_qcelp/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/virtual/misc/msm_wma/power/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/virtual/misc/msm_wmapro/power/wakeup u:object_r:sysfs_wakeup:s0
diff --git a/sepolicy/vendor/hal_audio_default.te b/sepolicy/vendor/hal_audio_default.te
new file mode 100644
index 0000000..a981cff
--- /dev/null
+++ b/sepolicy/vendor/hal_audio_default.te
@@ -0,0 +1,14 @@
+# For interfacing with PowerHAL
+hal_client_domain(hal_audio_default, hal_power)
+
+# Allow hal_audio_default to read vendor_persist_audio_file
+r_dir_file(hal_audio_default, vendor_persist_audio_file)
+
+r_dir_file(hal_audio_default, sysfs)
+
+binder_call(hal_audio_default, system_suspend_server)
+
+set_prop(hal_audio_default, vendor_audio_prop)
+
+allow hal_audio_default audio_socket:sock_file rw_file_perms;
+allow hal_audio_default system_suspend_hwservice:hwservice_manager find;
diff --git a/sepolicy/vendor/hal_bluetooth_default.te b/sepolicy/vendor/hal_bluetooth_default.te
new file mode 100644
index 0000000..d63e66c
--- /dev/null
+++ b/sepolicy/vendor/hal_bluetooth_default.te
@@ -0,0 +1,2 @@
+# Allow hal_bluetooth_default to read files in vendor_wifi_vendor_data_file
+r_dir_file(hal_bluetooth_default, vendor_wifi_vendor_data_file)
diff --git a/sepolicy/vendor/hal_camera_default.te b/sepolicy/vendor/hal_camera_default.te
new file mode 100644
index 0000000..892d7ec
--- /dev/null
+++ b/sepolicy/vendor/hal_camera_default.te
@@ -0,0 +1,20 @@
+# For interfacing with PowerHAL
+hal_client_domain(hal_camera_default, hal_power)
+
+# Allow hal_camera_default to read to vendor_sysfs_kgsl
+r_dir_file(hal_camera_default, vendor_sysfs_kgsl)
+
+# Allow hal_camera_default to read to mnt/vendor/persist/camera
+r_dir_file(hal_camera_default, camera_persist_file)
+r_dir_file(hal_camera_default, mnt_vendor_file)
+r_dir_file(hal_camera_default, vendor_persist_sensors_file)
+
+allow hal_camera_default proc_stat:file read;
+
+set_prop(hal_camera_default, vendor_camera_prop)
+
+allow hal_camera_default socket_device:sock_file write;
+allow hal_camera_default proc_stat:file { open };
+
+allow hal_camera_default public_adsprpcd_file:file r_file_perms;
+allow hal_camera_default vendor_xdsp_device:chr_file r_file_perms;
diff --git a/sepolicy/vendor/hal_fingerprint_default.te b/sepolicy/vendor/hal_fingerprint_default.te
new file mode 100644
index 0000000..c08e947
--- /dev/null
+++ b/sepolicy/vendor/hal_fingerprint_default.te
@@ -0,0 +1,33 @@
+typeattribute hal_fingerprint_default data_between_core_and_vendor_violators;
+
+allow hal_fingerprint_default fingerprint_data_file:dir rw_dir_perms;
+allow hal_fingerprint_default fingerprint_data_file:file create_file_perms;
+
+allow hal_fingerprint_default {
+ fingerprint_device
+ input_device
+ tee_device
+ uhid_device
+}: chr_file rw_file_perms;
+
+allow hal_fingerprint_default self:netlink_socket create_socket_perms_no_ioctl;
+
+allow hal_fingerprint_default {
+ input_device
+ vendor_sysfs_graphics
+ sysfs_msm_subsys
+}: dir r_dir_perms;
+
+allow hal_fingerprint_default {
+ vendor_sysfs_fingerprint
+ vendor_sysfs_fps_attr
+ vendor_sysfs_graphics
+ sysfs_msm_subsys
+}: file rw_file_perms;
+
+r_dir_file(hal_fingerprint_default, firmware_file)
+
+set_prop(hal_fingerprint_default, vendor_fingerprint_prop)
+
+allow hal_fingerprint_default vendor_sysfs_spss:dir { search };
+allow hal_fingerprint_default vendor_sysfs_spss:file { open read };
diff --git a/sepolicy/vendor/hal_health_default.te b/sepolicy/vendor/hal_health_default.te
new file mode 100644
index 0000000..6cecf70
--- /dev/null
+++ b/sepolicy/vendor/hal_health_default.te
@@ -0,0 +1,2 @@
+allow hal_health_default sysfs_wakeup:dir r_dir_perms;
+allow hal_health_default sysfs_wakeup:file r_file_perms;
diff --git a/sepolicy/vendor/hal_ir_default.te b/sepolicy/vendor/hal_ir_default.te
new file mode 100644
index 0000000..b945493
--- /dev/null
+++ b/sepolicy/vendor/hal_ir_default.te
@@ -0,0 +1,4 @@
+allow hal_ir_default lirc_device:{
+ chr_file
+ file
+} rw_file_perms;
diff --git a/sepolicy/vendor/hal_light_default.te b/sepolicy/vendor/hal_light_default.te
new file mode 100644
index 0000000..50ede18
--- /dev/null
+++ b/sepolicy/vendor/hal_light_default.te
@@ -0,0 +1,5 @@
+allow hal_light_default {
+ sysfs_leds
+}:file rw_file_perms;
+
+r_dir_file(hal_light_default, sysfs_leds)
diff --git a/sepolicy/vendor/hal_neuralnetworks_default.te b/sepolicy/vendor/hal_neuralnetworks_default.te
new file mode 100644
index 0000000..7dfa669
--- /dev/null
+++ b/sepolicy/vendor/hal_neuralnetworks_default.te
@@ -0,0 +1,3 @@
+r_dir_file(vendor_hal_neuralnetworks_default, public_adsprpcd_file)
+
+get_prop(vendor_hal_neuralnetworks_default, vendor_adsprpc_prop)
diff --git a/sepolicy/vendor/hal_nfc_default.te b/sepolicy/vendor/hal_nfc_default.te
new file mode 100644
index 0000000..59872eb
--- /dev/null
+++ b/sepolicy/vendor/hal_nfc_default.te
@@ -0,0 +1,3 @@
+# Data file accesses.
+allow hal_nfc_default vendor_nfc_vendor_data_file:dir create_dir_perms;
+allow hal_nfc_default vendor_nfc_vendor_data_file:file create_file_perms;
diff --git a/sepolicy/vendor/hal_power_default.te b/sepolicy/vendor/hal_power_default.te
new file mode 100644
index 0000000..8b29578
--- /dev/null
+++ b/sepolicy/vendor/hal_power_default.te
@@ -0,0 +1,34 @@
+# Allow hal_power_default to write to dt2w nodes
+allow hal_power_default input_device:dir r_dir_perms;
+allow hal_power_default input_device:chr_file rw_file_perms;
+
+r_dir_file(hal_power_default, input_device)
+
+allow hal_power_default {
+ vendor_sysfs_devfreq
+ sysfs_msm_subsys
+ sysfs_touchpanel
+}:dir search;
+
+allow hal_power_default {
+ cgroup
+ proc
+ vendor_sysfs_devfreq
+ sysfs_devices_system_cpu
+ vendor_sysfs_graphics
+ vendor_sysfs_kgsl
+ sysfs_msm_subsys
+ sysfs_touchpanel
+ vendor_sysfs_scsi_host
+}:{
+ file
+ lnk_file
+} rw_file_perms;
+
+allow hal_power_default vendor_latency_device:chr_file rw_file_perms;
+
+# Rule for hal_power_default to access graphics composer process
+unix_socket_connect(hal_power_default, vendor_pps, hal_graphics_composer_default);
+
+# To get/set powerhal state property
+set_prop(hal_power_default, vendor_power_prop)
diff --git a/sepolicy/vendor/hal_power_stats_default.te b/sepolicy/vendor/hal_power_stats_default.te
new file mode 100644
index 0000000..3ccdf89
--- /dev/null
+++ b/sepolicy/vendor/hal_power_stats_default.te
@@ -0,0 +1,2 @@
+allow hal_power_stats_default vendor_sysfs_iio:dir r_dir_perms;
+allow hal_power_stats_default vendor_sysfs_iio:file r_file_perms;
diff --git a/sepolicy/vendor/hal_sensors_default.te b/sepolicy/vendor/hal_sensors_default.te
new file mode 100644
index 0000000..028f3c6
--- /dev/null
+++ b/sepolicy/vendor/hal_sensors_default.te
@@ -0,0 +1,9 @@
+unix_socket_connect(hal_sensors_default, audio, hal_audio_default)
+
+allow hal_sensors_default audio_socket:sock_file rw_file_perms;
+allow hal_sensors_default socket_device:sock_file rw_file_perms;
+allow hal_sensors_default iio_device:chr_file rw_file_perms;
+allow hal_sensors_default vendor_sysfs_iio:dir r_dir_perms;
+allow hal_sensors_default vendor_sysfs_iio:file rw_file_perms;
+
+get_prop(hal_sensors_default, vendor_adsprpc_prop)
diff --git a/sepolicy/vendor/hal_thermal_default.te b/sepolicy/vendor/hal_thermal_default.te
new file mode 100644
index 0000000..42ce07e
--- /dev/null
+++ b/sepolicy/vendor/hal_thermal_default.te
@@ -0,0 +1,11 @@
+allow hal_thermal_default sysfs_thermal:dir r_dir_perms;
+allow hal_thermal_default sysfs_thermal:file rw_file_perms;
+allow hal_thermal_default sysfs_thermal:lnk_file r_file_perms;
+allow hal_thermal_default thermal_link_device:dir r_dir_perms;
+allow hal_thermal_default proc_stat:file r_file_perms;
+
+allow hal_thermal_default self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl;
+
+hal_client_domain(hal_thermal_default, hal_power);
+
+get_prop(hal_thermal_default, vendor_thermal_prop)
diff --git a/sepolicy/vendor/hwservice_contexts b/sepolicy/vendor/hwservice_contexts
new file mode 100644
index 0000000..d37b6d6
--- /dev/null
+++ b/sepolicy/vendor/hwservice_contexts
@@ -0,0 +1,2 @@
+vendor.goodix.hardware.biometrics.fingerprint::IGoodixFingerprintDaemon u:object_r:hal_fingerprint_hwservice:s0
+vendor.goodix.hardware.biometrics.fingerprint::IGoodixFingerprintDaemonExt u:object_r:hal_fingerprint_hwservice:s0
diff --git a/sepolicy/vendor/init-thermal-symlinks.sh.te b/sepolicy/vendor/init-thermal-symlinks.sh.te
new file mode 100644
index 0000000..093512c
--- /dev/null
+++ b/sepolicy/vendor/init-thermal-symlinks.sh.te
@@ -0,0 +1,12 @@
+type init-thermal-symlinks-sh, domain;
+type init-thermal-symlinks-sh_exec, exec_type, vendor_file_type, file_type;
+
+init_daemon_domain(init-thermal-symlinks-sh)
+
+allow init-thermal-symlinks-sh vendor_toolbox_exec:file rx_file_perms;
+allow init-thermal-symlinks-sh thermal_link_device:dir rw_dir_perms;
+allow init-thermal-symlinks-sh thermal_link_device:lnk_file create_file_perms;
+allow init-thermal-symlinks-sh sysfs_thermal:dir r_dir_perms;
+allow init-thermal-symlinks-sh sysfs_thermal:file r_file_perms;
+allow init-thermal-symlinks-sh sysfs_thermal:lnk_file r_file_perms;
+set_prop(init-thermal-symlinks-sh, vendor_thermal_prop)
diff --git a/sepolicy/vendor/init.te b/sepolicy/vendor/init.te
new file mode 100644
index 0000000..8b97871
--- /dev/null
+++ b/sepolicy/vendor/init.te
@@ -0,0 +1,3 @@
+allow init same_process_hal_file:file execute;
+
+allow init adsprpcd_file:file mounton;
diff --git a/sepolicy/vendor/property.te b/sepolicy/vendor/property.te
new file mode 100644
index 0000000..d16a64a
--- /dev/null
+++ b/sepolicy/vendor/property.te
@@ -0,0 +1,5 @@
+vendor_internal_prop(vendor_power_prop)
+
+vendor_internal_prop(vendor_thermal_prop)
+
+vendor_restricted_prop(vendor_fingerprint_prop);
diff --git a/sepolicy/vendor/property_contexts b/sepolicy/vendor/property_contexts
new file mode 100644
index 0000000..0ec0083
--- /dev/null
+++ b/sepolicy/vendor/property_contexts
@@ -0,0 +1,20 @@
+# Camera
+persist.vendor.camera.mi.module. u:object_r:vendor_camera_prop:s0
+vendor.camera. u:object_r:vendor_camera_prop:s0
+persist.camera. u:object_r:vendor_camera_prop:s0
+
+# Fingerprint
+persist.vendor.sys.fp. u:object_r:vendor_fingerprint_prop:s0
+ro.hardware.fp u:object_r:vendor_fingerprint_prop:s0
+vendor.fps_hal. u:object_r:vendor_fingerprint_prop:s0
+vendor.sys.fp u:object_r:vendor_fingerprint_prop:s0
+
+# Power
+vendor.powerhal.state u:object_r:vendor_power_prop:s0
+vendor.powerhal.audio u:object_r:vendor_power_prop:s0
+vendor.powerhal.lpm u:object_r:vendor_power_prop:s0
+vendor.powerhal.init u:object_r:vendor_power_prop:s0
+vendor.powerhal.rendering u:object_r:vendor_power_prop:s0
+
+# Thermal
+vendor.thermal. u:object_r:vendor_thermal_prop:s0
diff --git a/sepolicy/vendor/radio.te b/sepolicy/vendor/radio.te
new file mode 100644
index 0000000..4670c6a
--- /dev/null
+++ b/sepolicy/vendor/radio.te
@@ -0,0 +1 @@
+get_prop(radio, vendor_audio_prop)
diff --git a/sepolicy/vendor/sensors.te b/sepolicy/vendor/sensors.te
new file mode 100644
index 0000000..2dc5c72
--- /dev/null
+++ b/sepolicy/vendor/sensors.te
@@ -0,0 +1,2 @@
+# Allow sensors to access backlight sysfs state
+r_dir_file(vendor_sensors, vendor_sysfs_graphics)
diff --git a/sepolicy/vendor/system_app.te b/sepolicy/vendor/system_app.te
new file mode 100644
index 0000000..2c1079d
--- /dev/null
+++ b/sepolicy/vendor/system_app.te
@@ -0,0 +1,6 @@
+allow system_app vendor_sysfs_battery_supply:dir { search };
+allow system_app vendor_sysfs_battery_supply:file { read };
+allow system_app vendor_sysfs_battery_supply:file { open };
+allow system_app vendor_sysfs_battery_supply:file { getattr };
+
+r_dir_file(system_app, vendor_sysfs_battery_supply)
diff --git a/sepolicy/vendor/tee.te b/sepolicy/vendor/tee.te
new file mode 100644
index 0000000..fcb5b52
--- /dev/null
+++ b/sepolicy/vendor/tee.te
@@ -0,0 +1,9 @@
+typeattribute tee data_between_core_and_vendor_violators;
+
+allow tee fingerprint_data_file:dir create_dir_perms;
+allow tee {
+ fingerprint_data_file
+ mnt_vendor_file
+}:file create_file_perms;
+
+allow tee mnt_vendor_file:dir rw_dir_perms;
diff --git a/sepolicy/vendor/thermal-engine.te b/sepolicy/vendor/thermal-engine.te
new file mode 100644
index 0000000..3f87c39
--- /dev/null
+++ b/sepolicy/vendor/thermal-engine.te
@@ -0,0 +1,11 @@
+allow vendor_thermal-engine {
+ vendor_sysfs_devfreq
+ sysfs_msm_subsys
+}:dir r_dir_perms;
+
+allow vendor_thermal-engine vendor_sysfs_devfreq:file rw_file_perms;
+
+# Rule for vendor_thermal-engine to access init process
+unix_socket_connect(vendor_thermal-engine, property, init);
+
+set_prop(vendor_thermal-engine, vendor_thermal_prop)
diff --git a/sepolicy/vendor/uevent.te b/sepolicy/vendor/uevent.te
new file mode 100644
index 0000000..ae98f62
--- /dev/null
+++ b/sepolicy/vendor/uevent.te
@@ -0,0 +1 @@
+allow ueventd self:capability sys_nice;
diff --git a/sepolicy/vendor/vendor_hal_perf_default.te b/sepolicy/vendor/vendor_hal_perf_default.te
new file mode 100644
index 0000000..aa21090
--- /dev/null
+++ b/sepolicy/vendor/vendor_hal_perf_default.te
@@ -0,0 +1 @@
+allow vendor_hal_perf_default sysfs_msm_subsys:dir search;
diff --git a/sepolicy/vendor/vendor_init.te b/sepolicy/vendor/vendor_init.te
new file mode 100644
index 0000000..2553fc4
--- /dev/null
+++ b/sepolicy/vendor/vendor_init.te
@@ -0,0 +1,16 @@
+set_prop(vendor_init, vendor_power_prop)
+set_prop(vendor_init, vendor_alarm_boot_prop)
+set_prop(vendor_init, vendor_video_prop)
+
+allow vendor_init {
+ proc_dirty
+ proc
+}:file w_file_perms;
+
+allow vendor_init block_device:lnk_file setattr;
+allow vendor_init vendor_camera_prop:property_service set;
+
+allow vendor_init input_device:chr_file { create setattr unlink rw_file_perms };
+
+allow vendor_init thermal_link_device:dir r_dir_perms;
+allow vendor_init thermal_link_device:lnk_file r_file_perms;
diff --git a/sepolicy/vendor/vendor_qti_init_shell.te b/sepolicy/vendor/vendor_qti_init_shell.te
new file mode 100644
index 0000000..d5bb7ed
--- /dev/null
+++ b/sepolicy/vendor/vendor_qti_init_shell.te
@@ -0,0 +1,4 @@
+allow vendor_qti_init_shell configfs:dir rw_dir_perms;
+allow vendor_qti_init_shell configfs:file create_file_perms;
+allow vendor_qti_init_shell ctl_stop_prop:property_service set;
+allow vendor_qti_init_shell sysfs_wakeup:file setattr;
diff --git a/setup-makefiles.sh b/setup-makefiles.sh
index 46e4cac..1b5d4bb 100755
--- a/setup-makefiles.sh
+++ b/setup-makefiles.sh
@@ -1,14 +1,36 @@
#!/bin/bash
#
-# Copyright (C) 2021 The LineageOS Project
+# Copyright (C) 2016 The CyanogenMod Project
+# Copyright (C) 2017-2020 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
set -e
-export DEVICE=miatoll
-export DEVICE_COMMON=sm6250-common
-export VENDOR=xiaomi
+DEVICE=miatoll
+VENDOR=xiaomi
-"./../../${VENDOR}/${DEVICE_COMMON}/setup-makefiles.sh" "$@"
+# Load extract_utils and do some sanity checks
+MY_DIR="${BASH_SOURCE%/*}"
+if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi
+
+ANDROID_ROOT="${MY_DIR}/../../.."
+
+HELPER="${ANDROID_ROOT}/tools/extract-utils/extract_utils.sh"
+if [ ! -f "${HELPER}" ]; then
+ echo "Unable to find helper script at ${HELPER}"
+ exit 1
+fi
+source "${HELPER}"
+
+# Initialize the helper
+setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}"
+
+# Warning headers and guards
+write_headers
+
+write_makefiles "${MY_DIR}/proprietary-files.txt" true
+
+# Finish
+write_footers
diff --git a/system.prop b/system.prop
new file mode 100644
index 0000000..04a17a4
--- /dev/null
+++ b/system.prop
@@ -0,0 +1,33 @@
+# Audio
+audio.offload.min.duration.secs=30
+
+# Charger
+ro.charger.enable_suspend=true
+
+# CNE
+persist.vendor.cne.feature=1
+
+# Display
+debug.sf.enable_hwc_vds=1
+
+# DPM
+persist.vendor.dpm.feature=11
+
+# FUSE
+persist.sys.fuse.passthrough.enable=true
+
+# Fwk detect
+ro.vendor.qti.va_aosp.support=1
+
+# IMS
+persist.dbg.volte_avail_ovr=1
+persist.dbg.vt_avail_ovr=1
+persist.dbg.wfc_avail_ovr=1
+
+# Media
+media.settings.xml=/vendor/etc/media_profiles_vendor.xml
+vendor.mm.enable.qcom_parser=16777215
+
+# WFD
+persist.debug.wfd.enable=1
+vendor.sys.video.disable.ubwc=1
diff --git a/vendor.prop b/vendor.prop
new file mode 100644
index 0000000..5706010
--- /dev/null
+++ b/vendor.prop
@@ -0,0 +1,193 @@
+# Audio
+aaudio.hw_burst_min_usec=2000
+aaudio.mmap_exclusive_policy=2
+aaudio.mmap_policy=2
+persist.vendor.audio.avs.afe_api_version=2
+persist.vendor.audio.fluence.speaker=true
+persist.vendor.audio.fluence.tmic.enabled=false
+persist.vendor.audio.fluence.voicecall=true
+persist.vendor.audio.fluence.voicecomm=false
+persist.vendor.audio.fluence.voicerec=false
+persist.vendor.audio.ras.enabled=false
+persist.vendor.audio.spv3.enable=true
+persist.vendor.audio.voicecall.speaker.stereo=false
+ro.vendor.audio.sdk.fluencetype=fluence
+ro.vendor.audio.sdk.ssr=false
+vendor.audio.adm.buffering.ms=2
+vendor.audio.dolby.ds2.enabled=false
+vendor.audio.dolby.ds2.hardbypass=false
+vendor.audio.enable.mirrorlink=false
+vendor.audio.feature.a2dp_offload.enable=true
+vendor.audio.feature.afe_proxy.enable=true
+vendor.audio.feature.anc_headset.enable=true
+vendor.audio.feature.audiozoom.enable=false
+vendor.audio.feature.battery_listener.enable=true
+vendor.audio.feature.compr_cap.enable=false
+vendor.audio.feature.compr_voip.enable=false
+vendor.audio.feature.compress_in.enable=true
+vendor.audio.feature.compress_meta_data.enable=true
+vendor.audio.feature.concurrent_capture.enable=true
+vendor.audio.feature.custom_stereo.enable=true
+vendor.audio.feature.deepbuffer_as_primary.enable=false
+vendor.audio.feature.display_port.enable=true
+vendor.audio.feature.dsm_feedback.enable=false
+vendor.audio.feature.dynamic_ecns.enable=true
+vendor.audio.feature.ext_hw_plugin.enable=false
+vendor.audio.feature.external_dsp.enable=false
+vendor.audio.feature.external_speaker.enable=false
+vendor.audio.feature.external_speaker_tfa.enable=false
+vendor.audio.feature.fluence.enable=true
+vendor.audio.feature.fm.enable=true
+vendor.audio.feature.hdmi_edid.enable=true
+vendor.audio.feature.hdmi_passthrough.enable=true
+vendor.audio.feature.hfp.enable=true
+vendor.audio.feature.hifi_audio.enable=false
+vendor.audio.feature.hwdep_cal.enable=false
+vendor.audio.feature.incall_music.enable=true
+vendor.audio.feature.keep_alive.enable=true
+vendor.audio.feature.kpi_optimize.enable=false
+vendor.audio.feature.maxx_audio.enable=false
+vendor.audio.feature.multi_voice_session.enable=true
+vendor.audio.feature.ras.enable=true
+vendor.audio.feature.record_play_concurency.enable=false
+vendor.audio.feature.snd_mon.enable=true
+vendor.audio.feature.spkr_prot.enable=true
+vendor.audio.feature.src_trkn.enable=true
+vendor.audio.feature.ssrec.enable=true
+vendor.audio.feature.usb_offload.enable=true
+vendor.audio.feature.usb_offload_burst_mode.enable=true
+vendor.audio.feature.usb_offload_sidetone_volume.enable=false
+vendor.audio.feature.vbat.enable=true
+vendor.audio.feature.wsa.enable=false
+vendor.audio.flac.sw.decoder.24bit=true
+vendor.audio.hal.output.suspend.supported=true
+vendor.audio.hw.aac.encoder=true
+vendor.audio.offload.buffer.size.kb=256
+vendor.audio.offload.gapless.enabled=true
+vendor.audio.offload.multiaac.enable=true
+vendor.audio.offload.multiple.enabled=false
+vendor.audio.offload.passthrough=false
+vendor.audio.offload.track.enable=true
+vendor.audio.parser.ip.buffer.size=262144
+vendor.audio.safx.pbe.enabled=false
+vendor.audio.tunnel.encode=false
+vendor.audio.use.sw.alac.decoder=true
+vendor.audio.use.sw.ape.decoder=true
+vendor.audio.use.sw.mpegh.decoder=true
+vendor.audio.volume.headset.gain.depcal=true
+vendor.audio.hal.boot.timeout.ms=20000
+vendor.audio_hal.in_period_size=144
+vendor.audio_hal.period_multiplier=3
+vendor.audio_hal.period_size=192
+vendor.voice.path.for.pcm.voip=true
+
+# Bluetooth
+persist.bluetooth.a2dp_offload.cap=sbc-aac-aptx-aptxhd-ldac-lc3
+persist.bluetooth.a2dp_offload.disabled=false
+persist.vendor.bt.aac_frm_ctl.enabled=true
+persist.vendor.qcom.bluetooth.a2dp_offload_cap=sbc-aptx-aptxtws-aptxhd-aac-ldac-aptxadaptiver2
+persist.vendor.qcom.bluetooth.aac_frm_ctl.enabled=true
+persist.vendor.qcom.bluetooth.aac_vbr_ctl.enabled=false
+persist.vendor.qcom.bluetooth.enable.splita2dp=true
+persist.vendor.qcom.bluetooth.soc=cherokee
+ro.bluetooth.a2dp_offload.supported=true
+ro.vendor.bluetooth.wipower=false
+vendor.qcom.bluetooth.soc=cherokee
+
+# Camera
+camera.disable_zsl_mode=true
+vendor.camera.aux.packagelist=org.codeaurora.snapcam,com.android.camera
+
+# Chipset
+ro.soc.manufacturer=QTI
+ro.soc.model=SM7125
+
+# Crypto
+ro.crypto.dm_default_key.options_format.version=2
+ro.crypto.volume.metadata.method=dm-default-key
+ro.crypto.volume.filenames_mode=aes-256-cts
+ro.crypto.volume.options=::v2
+
+# Dalvik
+dalvik.vm.dex2oat64.enabled=true
+
+# Display
+ro.surface_flinger.force_hwc_copy_for_virtual_displays=true
+ro.surface_flinger.has_wide_color_display=true
+ro.surface_flinger.has_HDR_display=true
+ro.surface_flinger.max_frame_buffer_acquired_buffers=3
+ro.surface_flinger.max_virtual_display_dimension=4096
+ro.surface_flinger.protected_contents=true
+ro.surface_flinger.use_color_management=true
+ro.surface_flinger.wcg_composition_dataspace=143261696
+ro.vendor.display.sensortype=2
+ro.vendor.display.svi=1
+vendor.display.dataspace_saturation_matrix=1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0
+vendor.display.disable_decimation=1
+vendor.display.disable_excl_rect=0
+vendor.display.disable_excl_rect_partial_fb=1
+vendor.display.disable_hw_recovery=1
+vendor.display.disable_hw_recovery_dump=1
+vendor.display.disable_inline_rotator=1
+vendor.display.disable_ui_3d_tonemap=1
+vendor.display.enable_default_color_mode=0
+vendor.display.enable_null_display=0
+vendor.display.enable_optimize_refresh=1
+vendor.display.qdcm.disable_factory_mode=1
+vendor.display.qdcm.mode_combine=1
+vendor.display.svi.config=1
+vendor.display.svi.config_path=/vendor/etc/SVIConfig.xml
+
+# DRM
+drm.service.enabled=true
+
+# FRP
+ro.frp.pst=/dev/block/bootdevice/by-name/frp
+
+# Graphics
+persist.sys.sf.color_mode=9
+persist.sys.sf.color_saturation=1.0
+persist.sys.sf.native_mode=2
+ro.hardware.egl=adreno
+ro.hardware.vulkan=adreno
+ro.opengles.version=196610
+
+# Keystore
+ro.hardware.keystore_desede=true
+
+# Netflix
+ro.netflix.bsp_rev=Q6250-19132-1
+
+# Media
+debug.stagefright.ccodec=1
+debug.stagefright.omx_default_rank=0
+vendor.video.disable.ubwc=1
+
+# Perf
+ro.vendor.extension_library=libqti-perfd-client.so
+
+# Radio
+persist.radio.multisim.config=dsds
+persist.vendor.radio.custom_ecc=1
+persist.vendor.radio.data_con_rprt=1
+persist.vendor.radio.procedure_bytes=SKIP
+persist.vendor.radio.rat_on=combine
+persist.vendor.radio.snapshot_enabled=1
+persist.vendor.radio.snapshot_timer=5
+ro.telephony.default_network=22,20
+ro.telephony.iwlan_operation_mode=legacy
+
+# Sensors
+persist.vendor.sensors.allow_non_default_discovery=true
+persist.vendor.sensors.enable.mag_filter=true
+persist.vendor.sensors.support_direct_channel=false
+
+# USB
+vendor.usb.diag.func.name=diag
+vendor.usb.use_ffs_mtp=0
+
+# Volume steps
+ro.config.vc_call_vol_steps=10
+
+# WiFi
+wifi.aware.interface=wifi-aware0
diff --git a/wifi/WCNSS_qcom_cfg.ini b/wifi/WCNSS_qcom_cfg.ini
new file mode 100644
index 0000000..6d78201
--- /dev/null
+++ b/wifi/WCNSS_qcom_cfg.ini
@@ -0,0 +1,439 @@
+# This file allows user to override the factory
+# defaults for the WLAN Driver
+
+# Enable IMPS or not
+gEnableImps=1
+
+# Enable BMPS or not
+gEnableBmps=1
+
+# Phy Mode (auto, b, g, n, etc)
+# Valid values are 0-9, with 0 = Auto, 4 = 11n, 9 = 11ac
+# 1 = 11abg, 2 = 11b, 3 = 11g, 5 = 11g only, 6 = 11n only
+# 7 = 11b only 8 = 11ac only.
+gDot11Mode=0
+
+# Assigned MAC Addresses - This will be used until NV items are in place
+# Each byte of MAC address is represented in Hex format as XX
+Intf0MacAddress=000AF58989FF
+Intf1MacAddress=000AF58989FE
+
+# UAPSD service interval for VO,VI, BE, BK traffic
+InfraUapsdVoSrvIntv=0
+InfraUapsdViSrvIntv=0
+InfraUapsdBeSrvIntv=0
+InfraUapsdBkSrvIntv=0
+
+# Flag to allow STA send AddTspec even when ACM is Off
+gAddTSWhenACMIsOff=1
+
+#Flag to enable HostARPOffload feature or not
+hostArpOffload=1
+
+#Flag to enable HostNSOffload feature or not
+hostNSOffload=1
+
+# 802.11n Protection flag
+gEnableApProt=1
+
+#Enable OBSS protection
+gEnableApOBSSProt=1
+
+#Enable/Disable UAPSD for SoftAP
+gEnableApUapsd=1
+
+# Fragmentation Threshold
+# gFragmentationThreshold=2346
+
+# RTS threshold
+RTSThreshold=2346
+
+# Intra-BSS forward
+gDisableIntraBssFwd=0
+
+# WMM Enable/Disable
+WmmIsEnabled=0
+
+# 802.11d support
+g11dSupportEnabled=0
+
+# 802.11h support
+g11hSupportEnabled=1
+
+# DFS Master Capability
+gEnableDFSMasterCap=1
+
+# ESE Support and fast transition
+EseEnabled=0
+
+ImplicitQosIsEnabled=0
+
+gNeighborScanTimerPeriod=200
+gNeighborLookupThreshold=76
+gNeighborScanChannelMinTime=20
+gNeighborScanChannelMaxTime=30
+
+# Legacy (non-ESE, non-802.11r) Fast Roaming Support
+# To enable, set FastRoamEnabled=1
+# To disable, set FastRoamEnabled=0
+FastRoamEnabled=1
+
+# Check if the AP to which we are roaming is better than current AP in
+# terms of RSSI. Checking is disabled if set to Zero.Otherwise it will
+# use this value as to how better the RSSI of the new/roamable AP should
+# be for roaming
+RoamRssiDiff=5
+
+# To enable, set gRoamIntraBand=1 (Roaming within band)
+# To disable, set gRoamIntraBand=0 (Roaming across band)
+gRoamIntraBand=0
+
+#Short Guard Interval Enable/disable
+gShortGI20Mhz=1
+gShortGI40Mhz=1
+
+#Auto Shutdown wlan : Value in Seconds. 0 means disabled. Max 1 day = 86400 sec
+gWlanAutoShutdown = 0
+
+#Preferred band (both or 2.4 only or 5 only)
+BandCapability=0
+
+#Channel Bonding
+gChannelBondingMode5GHz=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
+#is idle for last 10 seconds.) For both active and power save clients.
+
+#Power save clients: DUT set TIM bit from 10th second onwards and till client
+#honors TIM bit. If doesn't honor for 5 seconds then DUT remove client.
+
+#Active clients: DUT send Qos Null frame for 10th seconds onwards if it is not
+#success still we try on 11th second if not tries on 12th and so on till 15th
+#second. Hence before disconnection DUT will send 5 NULL frames. Hence in any
+#case DUT will detect client got removed in (10+5) seconds.
+#i.e., (gGoKeepAlivePeriod + gGoLinkMonitorPeriod)..
+
+#gGoLinkMonitorPeriod/ gApLinkMonitorPeriod is period where link is idle and
+#it is period where we send NULL frame.
+#gApLinkMonitorPeriod = 10
+#gGoLinkMonitorPeriod = 10
+
+#gGoKeepAlivePeriod/gApKeepAlivePeriod is time to spend to check whether frame
+#are succeed to send or not. Hence total effective detection time is
+# (gGoLinkMonitorPeriod + gGoKeepAlivePeriod) /
+# (gApLinkMonitorPeriod + gApKeepAlivePeriod)
+gGoKeepAlivePeriod = 20
+gApKeepAlivePeriod = 20
+
+#If set to 0, will not scan DFS channels
+gEnableDFSChnlScan=1
+
+# Enable DFS channel roam
+# 0: DISABLE, 1: ENABLED_NORMAL, 2: ENABLED_ACTIVE
+gAllowDFSChannelRoam=1
+
+gVhtChannelWidth=2
+
+#Data Inactivity Timeout when in powersave (in ms)
+gDataInactivityTimeout=200
+
+# Set txchainmask and rxchainmask
+# These parameters are used only if gEnable2x2 is 0
+# Valid values are 1,2
+# Set gSetTxChainmask1x1=1 or gSetRxChainmask1x1=1 to select chain0.
+# Set gSetTxChainmask1x1=2 or gSetRxChainmask1x1=2 to select chain1.
+gSetTxChainmask1x1=1
+gSetRxChainmask1x1=1
+
+# Scan Timing Parameters
+# gPassiveMaxChannelTime=110
+gActiveMaxChannelTime=40
+
+#If set to 0, MCC is not allowed.
+gEnableMCCMode=1
+
+# MCC to SCC Switch mode:
+# 0-Disable
+# 1-Enable
+# 2-Force SCC if same band, with SAP restart
+# 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 = 3
+
+# 1=enable STBC; 0=disable STBC
+gEnableRXSTBC=1
+
+# 1=enable tx STBC; 0=disable
+gEnableTXSTBC=1
+
+# 1=enable rx LDPC; 0=disable
+gEnableRXLDPC=1
+
+#Enable/Disable Tx beamforming
+gTxBFEnable=1
+
+#Enable/Disable Tx beamformee in SAP mode
+gEnableTxBFeeSAP=1
+
+# Enable Tx beamforming in VHT20MHz
+# Valid values are 0,1. If commented out, the default value is 0.
+# 0=disable, 1=enable
+gEnableTxBFin20MHz=1
+
+#Enable/Disable SU Tx beamformer support.
+gEnableTxSUBeamformer=1
+
+gEnableFastRoamInConcurrency=1
+
+# 802.11K support
+gRrmEnable=1
+
+#Enable firmware uart print
+gEnablefwprint=0
+
+# Firmware log mode
+# Valid values are 0,1,2
+# 0=Disable, 1=WMI, 2=DIAG
+gEnablefwlog=0
+
+# Maximum Receive AMPDU size (VHT only. Valid values:
+# 0->8k 1->16k 2->32k 3->64k 4->128k)
+gVhtAmpduLenExponent=7
+
+# Maximum MPDU length (VHT only. Valid values:
+# 0->3895 octets, 1->7991 octets, 2->11454 octets)
+gVhtMpduLen=2
+
+# WOW Enable/Disable.
+# 0 - Disable both magic pattern match and pattern byte match.
+# 1 - Enable magic pattern match on all interfaces.
+# 2 - Enable pattern byte match on all interfaces.
+# 3 - Enable both magic pattern and pattern byte match on all interfaces.
+# Default value of gEnableWoW is 3.
+# gEnableWoW=0
+
+# Enable or Disable MCC Adaptive Scheduler at the FW
+# 1=Enable (default), 0=Disable
+gEnableMCCAdaptiveScheduler=1
+
+#Enable or Disable p2p device address administered
+isP2pDeviceAddrAdministrated=0
+
+# Remove Overlap channel restriction
+gEnableOverLapCh=0
+
+#Enable VHT on 2.4Ghz
+gEnableVhtFor24GHzBand=1
+# Configure channel Bonding in 2.4GHz
+gChannelBondingMode24GHz=1
+
+#Maximum number of offload peers supported
+# gMaxOffloadPeers=2
+
+# controlling the following offload patterns
+# through ini parameter. Default value is 1
+# to disable set it to zero. ssdp = 0
+# Setup multicast pattern for mDNS 224.0.0.251,
+# SSDP 239.255.255.250 and LLMNR 224.0.0.252
+ssdp=0
+
+#Enable Memory Deep Sleep
+gEnableMemDeepSleep=1
+
+# RA filtering rate limit param, the current value would not
+# help if the lifetime in RA is less than 3*60=3min. Then
+# we need to change it, though it is uncommon.
+# gRAFilterEnable=0
+gRArateLimitInterval=600
+
+# Maximum number of concurrent connections
+gMaxConcurrentActiveSessions=3
+
+# Disable/Enable GreenAP
+# 0 to disable, 1 to enable, default: 1
+gEnableGreenAp=0
+
+# Radar PRI multiplier
+gDFSradarMappingPriMultiplier=4
+
+gPNOScanSupport=1
+
+#Enable/Disable LPASS support
+# 0 to disable, 1 to enable
+gEnableLpassSupport=1
+
+# Whether userspace country code setting shld have priority
+gCountryCodePriority=1
+
+# Enable or Disable Multi-user MIMO
+# 1=Enable (default), 0=Disable
+gEnableMuBformee=1
+
+# Inactivity time (in ms) to end TX Service Period while in IBSS power save mode
+gIbssTxSpEndInactivityTime=10
+
+# Enable TDLS External Control. That is, user space application has to
+# first configure a peer MAC in wlan driver towards which TDLS is desired.
+# Device will establish TDLS only towards those configured peers whenever
+# TDLS criteria (throughput and RSSI threshold) is met and teardown TDLS
+# when teardown criteria (idle packet count and RSSI) is met. However,
+# device will accept TDLS connection if it is initiated from any other peer,
+# even if that peer is not configured.
+# 0 - disable
+# 1 - enable
+# For TDLS External Control, Implicit Trigger must also be enabled.
+gTDLSExternalControl=1
+
+# Enable support for TDLS off-channel operation
+# 0 - disable
+# 1 - enable
+# TDLS off-channel operation will be invoked when there is only one
+# TDLS connection.
+gEnableTDLSOffChannel=0
+
+# Enable or Disable Random MAC (Spoofing)
+# 1=Enable (default), 0=Disable
+gEnableMacAddrSpoof=1
+
+################ Datapath feature set Begin ################
+# Bus bandwidth threshold values in terms of number of packets
+gBusBandwidthHighThreshold=2000
+gBusBandwidthMediumThreshold=500
+gBusBandwidthLowThreshold=150
+
+# Bus bandwidth compute timeout value in ms
+gBusBandwidthComputeInterval=100
+
+# VHT Tx/Rx MCS values
+# Valid values are 0,1,2. If commented out, the default value is 0.
+# 0=MCS0-7, 1=MCS0-8, 2=MCS0-9
+gVhtRxMCS=2
+gVhtTxMCS=2
+
+# VHT Tx/Rx MCS values for 2x2
+# Valid values are 0,1,2. If commented out, the default value is 0.
+# 0=MCS0-7, 1=MCS0-8, 2=MCS0-9
+gEnable2x2=1
+gVhtRxMCS2x2=2
+gVhtTxMCS2x2=2
+
+#IPA config is a bit mask and following are the configurations.
+#bit0 IPA Enable
+#bit1 IPA PRE Filter enable
+#bit2 IPv6 enable
+#bit3 IPA Resource Manager (RM) enable
+#bit4 IPA Clock scaling enable
+#bit5 IPA uC ENABLE
+#bit6 IPA uC STA ENABLE
+#bit8 IPA Real Time Debugging
+gIPAConfig=0x7d
+gIPADescSize=800
+
+# Enable/Disable RX full reorder offload
+gReorderOffloadSupported=1
+
+# Enable CE classification
+# 1 - enable(default) 0 - disable
+gCEClassifyEnable=1
+
+# Enable Rx handling options
+# Rx_thread=1 RPS=2(default for ROME) NAPI=4(default for ihelium)
+rx_mode=5
+
+# Enable(Tx) fastpath for data traffic.
+# 1 - enable(default) 0 - disable
+gEnableFastPath=1
+
+# This flag enables IP, TCP and UDP checksum offload
+# 1 - enable(default) 0 - disable
+gEnableIpTcpUdpChecksumOffload=1
+
+# Enable TCP Segmentation Offload
+# 1 - enable 0 - disable
+TSOEnable=1
+
+# Enable Generic Receive Offload
+# 1 - enable(default) 0 - disable
+GROEnable=1
+
+# Enable HT MPDU Density
+# 4 for 2 micro sec
+ght_mpdu_density=4
+
+# Enable flow steering to enable multiple CEs for Rx flows.
+# Multiple Rx CEs<==>Multiple Rx IRQs<==>probably different CPUs.
+# Parallel Rx paths.
+# 1 - enable 0 - disable(default)
+gEnableFlowSteering=1
+
+# Time in microseconds after which a NAPI poll must yield
+ce_service_max_yield_time=500
+
+#Maximum number of HTT messages to be processed per NAPI poll
+ce_service_max_rx_ind_flush=1
+
+# Maximum number of MSDUs the firmware will pack in one HTT_T2H_MSG_TYPE_RX_IN_ORD_PADDR_IND
+maxMSDUsPerRxInd=8
+
+# Enable NUD tracking feature
+# 1 - enable 0 - disable(default)
+gEnableNUDTracking=1
+
+# Enable PEER UNMAP CONF SUPPORT
+# 1 - enable 0 - disable(default)
+gEnablePeerUnmapConfSupport=1
+
+################ Datapath feature set End ################
+
+################ NAN feature set start ###################
+
+# Enable NAN discovery (NAN 1.0)
+# 1 - enable 0 - disable(default)
+gEnableNanSupport=1
+# Enable NAN Datapath
+genable_nan_datapath=1
+
+################ NAN feature set end #####################
+
+adaptive_dwell_mode_enabled=1
+
+hostscan_adaptive_dwell_mode=1
+
+adapt_dwell_lpf_weight=80
+
+adapt_dwell_wifi_act_threshold=10
+
+MAWCEnabled=0
+
+# Enable/Disable rtt sta mac randomization
+enable_rtt_mac_randomization=1
+
+#Enable/Disable SNR monitoring
+gEnableSNRMonitoring=1
+
+# Skip DFS Channel in case of P2P Search
+# 0 - disable (Scan DFS Channel in P2P Search)
+# 1 - enable (Skip DFS Channel)
+gSkipDfsChannelInP2pSearch=0
+
+################ Xiaomi changes #####################
+
+# Sets RSSI preference for 5GHz over 2.4GHz AP
+gSelect5GHzMargin=5
+# Sets dense roam RSSI Threshold diff
+groam_dense_rssi_thresh_offset=5
+# Self Recovery
+gEnableSelfRecovery=1
+# Enable/Disable FT open feature
+enable_ftopen=0
+# Enable/disable ETSI SRD channels in master mode PCL and ACS functionality
+etsi13_srd_chan_in_master_mode=1
+
+#####################################################
+
+END
+
+# Note: Configuration parser would not read anything past the END marker
+
diff --git a/wifi/p2p_supplicant_overlay.conf b/wifi/p2p_supplicant_overlay.conf
new file mode 100644
index 0000000..4de5bc6
--- /dev/null
+++ b/wifi/p2p_supplicant_overlay.conf
@@ -0,0 +1,5 @@
+disable_scan_offload=1
+p2p_no_group_iface=1
+persistent_reconnect=1
+bss_max_count=400
+p2p_go_intent=14
diff --git a/wifi/wpa_supplicant_overlay.conf b/wifi/wpa_supplicant_overlay.conf
new file mode 100644
index 0000000..2b924ac
--- /dev/null
+++ b/wifi/wpa_supplicant_overlay.conf
@@ -0,0 +1,8 @@
+disable_scan_offload=1
+p2p_disabled=1
+tdls_external_control=1
+wowlan_triggers=magic_pkt
+bss_max_count=400
+interworking=1
+config_methods=virtual_display virtual_push_button keypad
+driver_param="use_p2p_group_interface=1 no_rrm=1"