diff --git a/AndroidProducts.mk b/AndroidProducts.mk
new file mode 100644
index 0000000..2971ef4
--- /dev/null
+++ b/AndroidProducts.mk
@@ -0,0 +1,13 @@
+#
+# Copyright (C) 2020 The ArrowOS
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+PRODUCT_MAKEFILES := \
+ $(LOCAL_DIR)/aosp_miatoll.mk
+
+COMMON_LUNCH_CHOICES := \
+ aosp_miatoll-user \
+ aosp_miatoll-userdebug \
+ aosp_miatoll-eng
diff --git a/BoardConfigCommon.mk b/BoardConfig.mk
similarity index 82%
rename from BoardConfigCommon.mk
rename to BoardConfig.mk
index aee7448..bb85758 100644
--- a/BoardConfigCommon.mk
+++ b/BoardConfig.mk
@@ -4,7 +4,10 @@
# SPDX-License-Identifier: Apache-2.0
#
-COMMON_PATH := device/xiaomi/sm6250-common
+# Inherit proprietary blobs
+include vendor/xiaomi/miatoll/BoardConfigVendor.mk
+
+DEVICE_PATH := device/xiaomi/miatoll
BUILD_BROKEN_DUP_RULES := true
@@ -39,11 +42,12 @@ USE_CUSTOM_AUDIO_POLICY := 1
USE_XML_AUDIO_POLICY_CONF := 1
# Bluetooth
-BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(COMMON_PATH)/bluetooth/include
+BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(DEVICE_PATH)/bluetooth/include
TARGET_USE_QTI_BT_STACK := true
# Bootloader
TARGET_NO_BOOTLOADER := true
+TARGET_BOOTLOADER_BOARD_NAME := miatoll
# Build broken
BUILD_BROKEN_USES_BUILD_COPY_HEADERS := true
@@ -63,7 +67,7 @@ TARGET_SCREEN_DENSITY := 440
TARGET_USES_HWC2 := true
# Filesystem
-TARGET_FS_CONFIG_GEN := $(COMMON_PATH)/config.fs
+TARGET_FS_CONFIG_GEN := $(DEVICE_PATH)/configs/config.fs
# FM
AUDIO_FEATURE_ENABLED_FM_POWER_OPT := true
@@ -105,17 +109,25 @@ BOARD_KERNEL_CMDLINE += video=vfb:640x400,bpp=32,memsize=3072000
BOARD_KERNEL_CMDLINE += androidboot.selinux=permissive
# HIDL
-DEVICE_MANIFEST_FILE := $(COMMON_PATH)/manifest.xml
-DEVICE_MATRIX_FILE := $(COMMON_PATH)/compatibility_matrix.xml
+DEVICE_MANIFEST_FILE := $(DEVICE_PATH)/manifest.xml
+DEVICE_MATRIX_FILE := $(DEVICE_PATH)/compatibility_matrix.xml
+
+ODM_MANIFEST_SKUS += \
+ joyeuse
+
+ODM_MANIFEST_JOYEUSE_FILES := $(DEVICE_PATH)/configs/manifest_joyeuse.xml
# Init
-TARGET_INIT_VENDOR_LIB := //$(COMMON_PATH):libinit_xiaomi_sm6250
-TARGET_RECOVERY_DEVICE_MODULES := libinit_xiaomi_sm6250
+TARGET_INIT_VENDOR_LIB := //$(DEVICE_PATH):libinit_miatoll
+TARGET_RECOVERY_DEVICE_MODULES := libinit_miatoll
# Media
TARGET_USES_ION := true
TARGET_DISABLED_UBWC := true
+# OTA assert
+TARGET_OTA_ASSERT_DEVICE := curtana,excalibur,gram,joyeuse
+
# Partitions
BOARD_BOOTIMAGE_PARTITION_SIZE := 134217728
BOARD_CACHEIMAGE_PARTITION_SIZE := 402653184
@@ -159,10 +171,10 @@ BOARD_FLASH_BLOCK_SIZE := 131072
TARGET_BOARD_PLATFORM := atoll
# Properties
-TARGET_ODM_PROP += $(COMMON_PATH)/odm.prop
-TARGET_PRODUCT_PROP += $(COMMON_PATH)/product.prop
-TARGET_SYSTEM_PROP += $(COMMON_PATH)/system.prop
-TARGET_VENDOR_PROP += $(COMMON_PATH)/vendor.prop
+TARGET_ODM_PROP += $(DEVICE_PATH)/odm.prop
+TARGET_PRODUCT_PROP += $(DEVICE_PATH)/product.prop
+TARGET_SYSTEM_PROP += $(DEVICE_PATH)/system.prop
+TARGET_VENDOR_PROP += $(DEVICE_PATH)/vendor.prop
# QCOM
BOARD_USES_QCOM_HARDWARE := true
@@ -170,14 +182,14 @@ TARGET_FWK_SUPPORTS_FULL_VALUEADDS := true
# Recovery
BOARD_INCLUDE_RECOVERY_DTBO := true
-TARGET_RECOVERY_FSTAB := $(COMMON_PATH)/rootdir/etc/fstab.qcom
+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
TARGET_USES_MKE2FS := true
# Releasetools
-TARGET_RELEASETOOLS_EXTENSIONS := $(COMMON_PATH)
+TARGET_RELEASETOOLS_EXTENSIONS := $(DEVICE_PATH)
# RenderScript
OVERRIDE_RS_DRIVER := libRSDriver_adreno.so
@@ -191,9 +203,12 @@ VENDOR_SECURITY_PATCH := 2020-07-01
# Sepolicy
include device/qcom/sepolicy_vndr/SEPolicy.mk
-BOARD_PLAT_PRIVATE_SEPOLICY_DIR += $(COMMON_PATH)/sepolicy/private
-BOARD_PLAT_PUBLIC_SEPOLICY_DIR += $(COMMON_PATH)/sepolicy/public
-BOARD_SEPOLICY_DIRS += $(COMMON_PATH)/sepolicy/vendor
+BOARD_PLAT_PRIVATE_SEPOLICY_DIR += $(DEVICE_PATH)/sepolicy/private
+BOARD_PLAT_PUBLIC_SEPOLICY_DIR += $(DEVICE_PATH)/sepolicy/public
+BOARD_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/vendor
+
+# Side FP key for InputDispatcher to skip
+TARGET_INPUTDISPATCHER_SKIP_EVENT_KEY := 96
# Verified Boot
BOARD_AVB_ENABLE := true
diff --git a/README.md b/README.md
index 288c67b..aeea7bf 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,26 @@
-Copyright (C) 2020 - The LineageOS Project
+Device configuration for MI POCO M2 Pro,Redmi Note 9 Pro,Redmi Note 9 Pro Max
+=============================================================================
-Common device tree for Xiaomi SM6250 based devices
-==============
+The MI POCO M2 Pro,Redmi Note 9 Pro,Redmi Note 9 Pro Max, unified/codenamed _"miatoll"_, is a mid-range smartphone from Xiaomi.
+
+It was announced and released in Year 2021.
+
+## Device specifications
+
+Basic | Spec Sheet
+-------:|:-------------------------
+CPU | Octa-core (2x2.3 GHz Kryo 465 Gold & 6x1.8 GHz Kryo 465 Silver)
+Chipset | Qualcomm SM7125 Snapdragon 720G
+GPU | Adreno 618
+Memory | 4/6/8 GB RAM
+Shipped OS Version | Android 10 with MIUI 12
+Storage | 64/128GB (UFS 2.1)
+Battery | Non-removable Li-Po 5020 mAh
+Dimensions | 165.8 x 76.7 x 8.8 mm (209G)
+Display | 1080 x 2400 pixels, 6.67 inches (~395 ppi pixel density)
+Rear Camera Setup | 48MP/64MP(MAX) wide, 8MP ultrawide and 5MP/13MP macro/depth lenses respectively
+Front Camera | 16MP/32MP (MAX)
+
+## Device picture
+
+
diff --git a/aosp.dependencies b/aosp.dependencies
new file mode 100644
index 0000000..1b4fbbe
--- /dev/null
+++ b/aosp.dependencies
@@ -0,0 +1,26 @@
+[
+ {
+ "repository": "LineageOS/android_hardware_xiaomi",
+ "target_path": "hardware/xiaomi",
+ "branch": "lineage-18.1",
+ "remote": "github"
+ },
+ {
+ "remote": "github",
+ "repository": "ArrowOS-Devices/android_kernel_xiaomi_sm6250",
+ "target_path": "kernel/xiaomi/sm6250",
+ "branch": "arrow-11.0"
+ },
+ {
+ "remote": "github",
+ "repository": "ArrowOS-Devices/android_vendor_xiaomi_sm6250-common",
+ "target_path": "vendor/xiaomi/sm6250-common",
+ "branch": "arrow-11.0"
+ },
+ {
+ "remote": "github",
+ "repository": "ArrowOS-Devices/android_vendor_xiaomi_miatoll",
+ "target_path": "vendor/xiaomi/miatoll",
+ "branch": "arrow-11.0"
+ }
+]
diff --git a/aosp_miatoll.mk b/aosp_miatoll.mk
new file mode 100644
index 0000000..252d5e9
--- /dev/null
+++ b/aosp_miatoll.mk
@@ -0,0 +1,32 @@
+#
+# Copyright (C) 2020 The ArrowOS
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+# Inherit from miatoll device
+$(call inherit-product, device/xiaomi/miatoll/device.mk)
+
+# Inherit some common AOSP stuff
+$(call inherit-product, vendor/aosp/config/common_full_phone.mk)
+
+# Gapps
+IS_PHONE := true
+TARGET_INCLUDE_GAPPS := true
+TARGET_GAPPS_ARCH := arm64
+TARGET_SUPPORTS_GOOGLE_RECORDER := true
+TARGET_INCLUDE_STOCK_ARCORE := true
+TARGET_INCLUDE_LIVE_WALLPAPERS := true
+
+# Bootanimation Resolution
+TARGET_BOOT_ANIMATION_RES := 1080
+
+# Device identifier
+PRODUCT_NAME := aosp_miatoll
+PRODUCT_DEVICE := miatoll
+PRODUCT_BRAND := Xiaomi
+PRODUCT_MODEL := SM6250
+PRODUCT_MANUFACTURER := Xiaomi
+
+PRODUCT_GMS_CLIENTID_BASE := android-xiaomi
+
diff --git a/config.fs b/configs/config.fs
similarity index 100%
rename from config.fs
rename to configs/config.fs
diff --git a/idc/uinput-fpc.idc b/configs/idc/uinput-fpc.idc
similarity index 100%
rename from idc/uinput-fpc.idc
rename to configs/idc/uinput-fpc.idc
diff --git a/idc/uinput-goodix.idc b/configs/idc/uinput-goodix.idc
similarity index 100%
rename from idc/uinput-goodix.idc
rename to configs/idc/uinput-goodix.idc
diff --git a/keylayout/gpio-keys.kl b/configs/keylayout/gpio-keys.kl
similarity index 100%
rename from keylayout/gpio-keys.kl
rename to configs/keylayout/gpio-keys.kl
diff --git a/keylayout/uinput-fpc.kl b/configs/keylayout/uinput-fpc.kl
similarity index 100%
rename from keylayout/uinput-fpc.kl
rename to configs/keylayout/uinput-fpc.kl
diff --git a/keylayout/uinput-goodix.kl b/configs/keylayout/uinput-goodix.kl
similarity index 100%
rename from keylayout/uinput-goodix.kl
rename to configs/keylayout/uinput-goodix.kl
diff --git a/configs/manifest_joyeuse.xml b/configs/manifest_joyeuse.xml
new file mode 100644
index 0000000..02182c0
--- /dev/null
+++ b/configs/manifest_joyeuse.xml
@@ -0,0 +1,11 @@
+
+
+ android.hardware.nfc
+ hwbinder
+ 1.2
+
+ INfc
+ default
+
+
+
diff --git a/media/media_codecs.xml b/configs/media/media_codecs.xml
similarity index 100%
rename from media/media_codecs.xml
rename to configs/media/media_codecs.xml
diff --git a/media/media_codecs_performance.xml b/configs/media/media_codecs_performance.xml
similarity index 100%
rename from media/media_codecs_performance.xml
rename to configs/media/media_codecs_performance.xml
diff --git a/media/media_profiles_vendor.xml b/configs/media/media_profiles_vendor.xml
similarity index 100%
rename from media/media_profiles_vendor.xml
rename to configs/media/media_profiles_vendor.xml
diff --git a/media/system_properties.xml b/configs/media/system_properties.xml
similarity index 100%
rename from media/system_properties.xml
rename to configs/media/system_properties.xml
diff --git a/configs/nfc/libnfc-nci.conf b/configs/nfc/libnfc-nci.conf
new file mode 100644
index 0000000..6bcef5f
--- /dev/null
+++ b/configs/nfc/libnfc-nci.conf
@@ -0,0 +1,103 @@
+###################### Start of libnfc-common.conf #######################
+
+###############################################################################
+# Application options
+APPL_TRACE_LEVEL=0xFF
+PROTOCOL_TRACE_LEVEL=0xFFFFFFFF
+
+NFC_DEBUG_ENABLED=0x01
+
+###############################################################################
+# File used for NFA storage
+NFA_STORAGE="/data/nfc"
+
+###############################################################################
+# Force UICC to only listen to the following technology(s).
+# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h.
+# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_B | NFA_TECHNOLOGY_MASK_F
+UICC_LISTEN_TECH_MASK=0x07
+
+###############################################################################
+# Configure the default Destination Gate used by HCI (the default is 4, which
+# is the ETSI loopback gate.
+NFA_HCI_DEFAULT_DEST_GATE=0xF0
+
+###############################################################################
+# Forcing HOST to listen for a selected protocol
+# 0x00 : Disable Host Listen
+# 0x01 : Enable Host to Listen (A) for ISO-DEP tech A
+# 0x02 : Enable Host to Listen (B) for ISO-DEP tech B
+# 0x04 : Enable Host to Listen (F) for T3T Tag Type Protocol tech F
+# 0x07 : Enable Host to Listen (ABF)for ISO-DEP tech AB & T3T Tag Type Protocol tech F
+HOST_LISTEN_TECH_MASK=0x07
+
+###############################################################################
+# Enabling/Disabling Forward functionality
+# Disable 0x00
+# Enable 0x01
+NXP_FWD_FUNCTIONALITY_ENABLE=0x01
+
+###############################################################################
+# AID for Empty Select command
+# If specified, this AID will be substituted when an Empty SELECT command is
+# detected. The first byte is the length of the AID. Maximum length is 16.
+AID_FOR_EMPTY_SELECT={08:A0:00:00:01:51:00:00:00}
+
+###############################################################################
+# When screen is turned off, specify the desired power state of the controller.
+# 0: power-off-sleep state; DEFAULT
+# 1: full-power state
+# 2: screen-off card-emulation (CE4/CE3/CE1 modes are used)
+SCREEN_OFF_POWER_STATE=1
+
+###############################################################################
+# Default poll duration (in ms)
+# The defualt is 500ms if not set (see nfc_target.h)
+#NFA_DM_DISC_DURATION_POLL=333
+
+###############################################################################
+# Force tag polling for the following technology(s).
+# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h.
+# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_B |
+# NFA_TECHNOLOGY_MASK_F | NFA_TECHNOLOGY_MASK_ISO15693 |
+# NFA_TECHNOLOGY_MASK_B_PRIME | NFA_TECHNOLOGY_MASK_KOVIO |
+# NFA_TECHNOLOGY_MASK_A_ACTIVE | NFA_TECHNOLOGY_MASK_F_ACTIVE.
+#
+# Notable bits:
+# NFA_TECHNOLOGY_MASK_A 0x01 /* NFC Technology A */
+# NFA_TECHNOLOGY_MASK_B 0x02 /* NFC Technology B */
+# NFA_TECHNOLOGY_MASK_F 0x04 /* NFC Technology F */
+# NFA_TECHNOLOGY_MASK_ISO15693 0x08 /* Proprietary Technology */
+# NFA_TECHNOLOGY_MASK_KOVIO 0x20 /* Proprietary Technology */
+# NFA_TECHNOLOGY_MASK_A_ACTIVE 0x40 /* NFC Technology A active mode */
+# NFA_TECHNOLOGY_MASK_F_ACTIVE 0x80 /* NFC Technology F active mode */
+POLLING_TECH_MASK=0xEF
+
+###############################################################################
+# Force P2P to only listen for the following technology(s).
+# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h.
+# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_F |
+# NFA_TECHNOLOGY_MASK_A_ACTIVE | NFA_TECHNOLOGY_MASK_F_ACTIVE
+#
+# Notable bits:
+# NFA_TECHNOLOGY_MASK_A 0x01 /* NFC Technology A */
+# NFA_TECHNOLOGY_MASK_F 0x04 /* NFC Technology F */
+# NFA_TECHNOLOGY_MASK_A_ACTIVE 0x40 /* NFC Technology A active mode */
+# NFA_TECHNOLOGY_MASK_F_ACTIVE 0x80 /* NFC Technology F active mode */
+P2P_LISTEN_TECH_MASK=0xC5
+
+PRESERVE_STORAGE=0x01
+
+###############################################################################
+# Deactivate notification wait time out in seconds used in ETSI Reader mode
+# 0 - Infinite wait
+NFA_DM_DISC_NTF_TIMEOUT=0
+
+###############################################################################
+# AID_MATCHING constants
+# AID_MATCHING_EXACT_ONLY 0x00
+# AID_MATCHING_EXACT_OR_PREFIX 0x01
+# AID_MATCHING_PREFIX_ONLY 0x02
+AID_MATCHING_MODE=0x01
+
+###############################################################################
\ No newline at end of file
diff --git a/configs/nfc/libnfc-nxp.conf b/configs/nfc/libnfc-nxp.conf
new file mode 100644
index 0000000..2b7e5fa
--- /dev/null
+++ b/configs/nfc/libnfc-nxp.conf
@@ -0,0 +1,409 @@
+## This file is used by NFC NXP NCI HAL(external/libnfc-nci/halimpl/pn547)
+## and NFC Service Java Native Interface Extensions (packages/apps/Nfc/nci/jni/extns/pn547)
+###############################################################################
+# Application options
+# Logging Levels
+# NXPLOG_DEFAULT_LOGLEVEL 0x01
+# ANDROID_LOG_DEBUG 0x03
+# ANDROID_LOG_WARN 0x02
+# ANDROID_LOG_ERROR 0x01
+# ANDROID_LOG_SILENT 0x00
+NXPLOG_EXTNS_LOGLEVEL=0x03
+NXPLOG_NCIHAL_LOGLEVEL=0x03
+NXPLOG_NCIX_LOGLEVEL=0x03
+NXPLOG_NCIR_LOGLEVEL=0x03
+NXPLOG_FWDNLD_LOGLEVEL=0x03
+NXPLOG_TML_LOGLEVEL=0x03
+
+###############################################################################
+# Nfc Device Node name
+NXP_NFC_DEV_NODE="/dev/nq-nci"
+
+###############################################################################
+# Extension for Mifare reader enable
+MIFARE_READER_ENABLE=0x01
+
+###############################################################################
+# Vzw Feature enable
+VZW_FEATURE_ENABLE=0x01
+
+###############################################################################
+# File name for Firmware
+NXP_FW_NAME="libpn553_fw.so"
+
+###############################################################################
+# System clock source selection configuration
+#define CLK_SRC_XTAL 1
+#define CLK_SRC_PLL 2
+NXP_SYS_CLK_SRC_SEL=0x02
+
+###############################################################################
+# System clock frequency selection configuration
+#define CLK_FREQ_13MHZ 1
+#define CLK_FREQ_19_2MHZ 2
+#define CLK_FREQ_24MHZ 3
+#define CLK_FREQ_26MHZ 4
+#define CLK_FREQ_32MHZ 5
+#define CLK_FREQ_38_4MHZ 6
+#define CLK_FREQ_52MHZ 7
+NXP_SYS_CLK_FREQ_SEL=0x02
+
+###############################################################################
+# The timeout value to be used for clock request acknowledgment
+# min value = 0x01 to max = 0x06
+NXP_SYS_CLOCK_TO_CFG=0x01
+
+###############################################################################
+# NXP proprietary settings
+NXP_ACT_PROP_EXTN={2F, 02, 00}
+
+###############################################################################
+# NFC forum profile settings
+NXP_NFC_PROFILE_EXTN={20, 02, 05, 01, A0, 44, 01, 00}
+
+###############################################################################
+# NXP TVDD configurations settings
+# Allow NFCC to configure External TVDD, two configurations (1 and 2) supported,
+# out of them only one can be configured at a time.
+NXP_EXT_TVDD_CFG=0x01
+
+###############################################################################
+#config1:SLALM, 3.3V for both RM and CM
+NXP_EXT_TVDD_CFG_1={20, 02, 0F, 01, A0, 0E, 0B, 11, 01, 01, 31, 00, 00, 00, 10, 00, 10, 0C}
+
+###############################################################################
+#config2: use DCDC in CE, use Tx_Pwr_Req, set CFG2 mode, SLALM,
+#monitoring 5V from DCDC, 3.3V for both RM and CM, DCDCWaitTime=4.2ms
+NXP_EXT_TVDD_CFG_2={20, 02, 0F, 01, A0, 0E, 0B, 11, 01, C2, C2, 00, BA, 1E, 15, 00, D0, 0C}
+
+###############################################################################
+# Set configuration optimization decision setting
+# Enable = 0x01
+# Disable = 0x00
+NXP_SET_CONFIG_ALWAYS=0x01
+
+###############################################################################
+# Core configuration rf field filter settings to enable set to 01 to disable set
+# to 00 last bit
+NXP_CORE_RF_FIELD={ 20, 02, 05, 01, A0, 62, 01, 00 }
+
+###############################################################################
+# To enable i2c fragmentation set i2c fragmentation enable 0x01 to disable set
+# to 0x00
+NXP_I2C_FRAGMENTATION_ENABLED=0x00
+
+###############################################################################
+# Mifare Classic Key settings
+#NXP_CORE_MFCKEY_SETTING={20, 02, 25,04, A0, 51, 06, A0, A1, A2, A3, A4, A5,
+# A0, 52, 06, D3, F7, D3, F7, D3, F7,
+# A0, 53, 06, FF, FF, FF, FF, FF, FF,
+# A0, 54, 06, 00, 00, 00, 00, 00, 00}
+
+###############################################################################
+#Enable SWP full power mode when phone is power off
+NXP_SWP_FULL_PWR_ON=0x00
+
+###############################################################################
+#### Select the CHIP ####
+#PN547C2 0x01
+#PN65T 0x02
+#PN548AD 0x03
+#PN66T 0x04
+#PN551 0x05
+#PN67T 0x06
+#PN553 0x07
+#PN80T 0x08
+NXP_NFC_CHIP=0x07
+
+###############################################################################
+# CE when Screen state is locked
+# This setting is for DEFAULT_AID_ROUTE,
+# DEFAULT_DESFIRE_ROUTE and DEFAULT_MIFARE_CLT_ROUTE
+# Disable 0x00
+# Enable 0x01
+NXP_CE_ROUTE_STRICT_DISABLE=0x01
+
+###############################################################################
+#Timeout in secs to get NFCEE Discover notification
+NXP_DEFAULT_NFCEE_DISC_TIMEOUT=20
+
+###############################################################################
+NXP_DEFAULT_NFCEE_TIMEOUT=20
+
+###############################################################################
+#Timeout in secs
+NXP_SWP_RD_START_TIMEOUT=0x0A
+
+###############################################################################
+#Timeout in secs
+NXP_SWP_RD_TAG_OP_TIMEOUT=0x01
+
+###############################################################################
+#Set the default AID route Location :
+#This settings will be used when application does not set this parameter
+# host 0x00
+# eSE 0x01
+# UICC 0x02
+DEFAULT_AID_ROUTE=0x02
+
+###############################################################################
+# Configure the default NfcA/IsoDep techology and protocol route. Can be
+# either a secure element (e.g. 0xF4) or the host (0x00)
+# host 0x00
+# eSE 0x01
+# UICC 0x02
+DEFAULT_ISODEP_ROUTE=0x02
+
+###############################################################################
+# Configure the single default SE to use. The default is to use the first
+# SE that is detected by the stack. This value might be used when the phone
+# supports multiple SE (e.g. 0xC0 and 0x80) but you want to force it to use
+# one of them (e.g. 0xC0).
+# host 0x00
+# eSE 0x01
+# UICC 0x02
+DEFAULT_OFFHOST_ROUTE=0x02
+
+###############################################################################
+# Configure the single default SE to use. The default is to use the first
+# SE that is detected by the stack. This value might be used when the phone
+# supports multiple SE (e.g. 0xF3 and 0xF4) but you want to force it to use
+# one of them (e.g. 0xF4).
+# host 0x00
+# eSE 0x01
+# UICC 0x02
+DEFAULT_TECH_ABF_ROUTE=0x01
+
+###############################################################################
+#Set the default Felica T3T System Code OffHost route Location :
+#This settings will be used when application does not set this parameter
+# host 0x00
+# eSE 0x01
+DEFAULT_SYS_CODE_ROUTE=0x02
+
+###############################################################################
+#Set the default AID Power state :
+#This settings will be used when application does not set this parameter
+# bit pos 0 = Switch On
+# bit pos 1 = Switch Off
+# bit pos 2 = Battery Off
+# bit pos 3 = Screen Off
+# bit pos 4 = Screen Lock
+DEFAULT_AID_PWR_STATE=0x3B
+
+###############################################################################
+#Set the Mifare Desfire Power state :
+#This settings will be used when application does not set this parameter
+# bit pos 0 = Switch On
+# bit pos 1 = Switch Off
+# bit pos 2 = Battery Off
+# bit pos 3 = Screen Off
+# bit pos 4 = Screen Lock
+DEFAULT_ISODEP_PWR_STATE=0x3B
+
+###############################################################################
+#Set the Mifare CLT Power state :
+#This settings will be used when application does not set this parameter
+# bit pos 0 = Switch On
+# bit pos 1 = Switch Off
+# bit pos 2 = Battery Off
+# bit pos 3 = Screen Off
+# bit pos 4 = Screen Lock
+DEFAULT_OFFHOST_PWR_STATE=0x3B
+
+###############################################################################
+#Set Tech A,B,F Power state :
+#This settings will be used when application does not set this parameter
+# bit pos 0 = Switch On
+# bit pos 1 = Switch Off
+# bit pos 2 = Battery Off
+# bit pos 3 = Screen Off
+# bit pos 4 = Screen Lock
+DEFAULT_NFCF_PWR_STATE=0x3B
+
+###############################################################################
+#Set the SYS_CODE Power state :
+#This settings will be used when application does not set this parameter
+# bit pos 0 = Switch On
+# bit pos 1 = Switch Off
+# bit pos 2 = Battery Off
+# bit pos 3 = Screen Off
+# bit pos 4 = Screen Lock
+DEFAULT_SYS_CODE_PWR_STATE=0x3B
+
+###############################################################################
+# Configure the NFC Extras to open and use a static pipe. If the value is
+# not set or set to 0, then the default is use a dynamic pipe based on a
+# destination gate (see NFA_HCI_DEFAULT_DEST_GATE). Note there is a value
+# for each UICC (where F3="UICC0" and F4="UICC1")
+OFF_HOST_ESE_PIPE_ID=0x19
+OFF_HOST_SIM_PIPE_ID=0x0A
+
+###############################################################################
+# Bail out mode
+# If set to 1, NFCC is using bail out mode for either Type A or Type B poll.
+NFA_POLL_BAIL_OUT_MODE=0x01
+
+###############################################################################
+# AID Matching platform options
+# AID_MATCHING_L 0x01
+# AID_MATCHING_K 0x02
+AID_MATCHING_PLATFORM=0x01
+
+###############################################################################
+#CHINA_TIANJIN_RF_SETTING
+#Enable 0x01
+#Disable 0x00
+NXP_CHINA_TIANJIN_RF_ENABLED=0x01
+
+###############################################################################
+#SWP_SWITCH_TIMEOUT_SETTING
+# Allowed range of swp timeout setting is 0x00 to 0x3C [0 - 60].
+# Timeout in milliseconds, for example
+# No Timeout 0x00
+# 10 millisecond timeout 0x0A
+NXP_SWP_SWITCH_TIMEOUT=0x0A
+
+###############################################################################
+# Loader service version
+# NFC service checks for LS version 2.0 or 2.1
+# LS2.0 0x20
+# LS2.1 0x21
+# LS2.2 0x22
+# AT NFC service intialization
+NXP_LOADER_SERVICE_VERSION=0x22
+
+###############################################################################
+#Timeout value in milliseconds for NFCC standby mode.The range is between 5000
+#msec to 20000 msec and zero is to disable.
+NXP_NFCC_STANDBY_TIMEOUT=20000
+
+###############################################################################
+#Dynamic RSSI feature enable
+# Disable 0x00
+# Enable 0x01
+NXP_AGC_DEBUG_ENABLE=0x00
+
+###############################################################################
+#Virtual Mode ESE and Wired Mode ongoing delay Wired Mode
+# For Technology routing to ESE Technology Mask = 4
+# For ISO-DEP Protocol routing to ESE Mask = 2
+# It can also take TECH|PROTO = 6
+# To ignore the delay set mask to = 0
+NXP_ESE_WIRED_PRT_MASK=0x00
+
+###############################################################################
+#Virtual Mode UICC and Wired Mode ongoing delay Wired Mode
+#For Technology routing to UICC Technology Mask = 4
+#For ISO-DEP Protocol routing to UICC set Mask = 2
+#For Select AID Routing to UICC set Mask = 1
+#It can also take values TECH|PROTO|SELECT_AID = 7 , 6 , 5 ,3 .To ignore delay
+#set mask = 0
+NXP_UICC_WIRED_PRT_MASK=0x00
+
+###############################################################################
+#RF field true delay Wired Mode
+# delay wired mode = 1
+# allow wired mode = 0
+NXP_WIRED_MODE_RF_FIELD_ENABLE=0x00
+
+###############################################################################
+#Config to allow adding aids
+#NFC on/off is required after this config
+#1 = enabling adding aid to NFCC routing table.
+#0 = disabling adding aid to NFCC routing table.
+NXP_ENABLE_ADD_AID=0x01
+
+###############################################################################
+# JCOP-3.3 continuous process timeout in msec and value should be in Hexadecimal
+# JCOP CP TIMEOUT
+NXP_CP_TIMEOUT={00, 77}
+
+###############################################################################
+# Enable/Disable checking default proto SE Id
+# Disable 0x00
+# Enable 0x01
+NXP_CHECK_DEFAULT_PROTO_SE_ID=0x01
+
+###############################################################################
+#NXP_CN_TRANSIT_BLK_NUM_CHECK_ENABLE
+#Enable/Disable block number checks for china transit use case
+#Enable 0x01
+#Disable 0x00
+NXP_CN_TRANSIT_BLK_NUM_CHECK_ENABLE=0x01
+
+###############################################################################
+#Enable NXP NCI runtime parser library
+#Enable 0x01
+#Disable 0x00
+NXP_NCI_PARSER_LIBRARY=0x00
+
+###############################################################################
+#This config will enable different level of Rf transaction debugs based on the
+#following values provided. Decoded information will be printed in adb logcat
+#Debug Mode Levels
+#Disable Debug 0x00
+#L1 Debug 0x01
+#L2 Debug 0x02
+#L1 & L2 Debug 0x03
+#L1 & L2 & RSSI 0x04
+#L1 & L2 & Felica 0x05
+#NXP_CORE_PROP_SYSTEM_DEBUG=0x00
+
+###############################################################################
+# Enable/Disable Block Route feature.
+# Block Route will restrict routing to first matched rule
+# Block Route enable 0x01
+# Block Route disable 0x00
+AID_BLOCK_ROUTE=0x01
+
+###############################################################################
+# Enable or Disable RF_STATUS_UPDATE to EseHal module
+# Disable 0x00
+# Enable 0x01
+RF_STATUS_UPDATE_ENABLE=0x00
+
+###############################################################################
+# Timeout value in milliseconds to send response for Felica command received
+NXP_HCEF_CMD_RSP_TIMEOUT_VALUE=5000
+###############################################################################
+# Vendor Specific Proprietary Protocol & Discovery Configuration
+# Set to 0xFF if unsupported
+# byte[0] NCI_PROTOCOL_18092_ACTIVE
+# byte[1] NCI_PROTOCOL_B_PRIME
+# byte[2] NCI_PROTOCOL_DUAL
+# byte[3] NCI_PROTOCOL_15693
+# byte[4] NCI_PROTOCOL_KOVIO
+# byte[5] NCI_PROTOCOL_MIFARE
+# byte[6] NCI_DISCOVERY_TYPE_POLL_KOVIO
+# byte[7] NCI_DISCOVERY_TYPE_POLL_B_PRIME
+# byte[8] NCI_DISCOVERY_TYPE_LISTEN_B_PRIME
+NFA_PROPRIETARY_CFG={05, FF, FF, 06, 81, 80, 70, FF, FF}
+
+###############################################################################
+#White list of Hosts
+#This values will be the Hosts(NFCEEs) in the HCI Network.
+DEVICE_HOST_WHITE_LIST={C0, 02}
+
+###############################################################################
+#OffHost UICC route location for MultiSE
+#UICC1 = 02
+#UICC2 = 03
+OFFHOST_ROUTE_UICC={02}
+
+###############################################################################
+# Choose the presence-check algorithm for type-4 tag. If not defined, the default value is 1.
+# 0 NFA_RW_PRES_CHK_DEFAULT; Let stack selects an algorithm
+# 1 NFA_RW_PRES_CHK_I_BLOCK; ISO-DEP protocol's empty I-block
+# 2 NFA_RW_PRES_CHK_ISO_DEP_NAK; Type - 4 tag protocol iso-dep nak presence check
+PRESENCE_CHECK_ALGORITHM=2
+
+###############################################################################
+# Extended APDU length for ISO_DEP
+ISO_DEP_MAX_TRANSCEIVE=0xFEFF
+
+###############################################################################
+# Fix Card Emulation issue when power off
+NXP_CORE_PWR_OFF_AUTONOMOUS_ENABLE=0x01
+
+###############################################################################
diff --git a/configs/thermal/thermal-engine-camera-curtana.conf b/configs/thermal/thermal-engine-camera-curtana.conf
new file mode 100644
index 0000000..e8e0603
--- /dev/null
+++ b/configs/thermal/thermal-engine-camera-curtana.conf
@@ -0,0 +1,70 @@
+# SENSOR : ALIAS
+
+#debug
+#Conf file: /vendor/etc/thermal-engine-normal.conf (curtana)
+
+[SS-QUIET-THERMAL-S1]
+algo_type ss
+sampling 5000
+sensor nvm-therm-usr
+device cpu0
+set_point 51000
+set_point_clr 49000
+time_constant 0
+device_max_limit 1324800
+
+[SS-QUIET-THERMAL-G1]
+algo_type ss
+sampling 5000
+sensor nvm-therm-usr
+device cpu6
+set_point 49000
+set_point_clr 47000
+time_constant 0
+device_max_limit 1555200
+
+[LCD_MONITOR]
+algo_type monitor
+sampling 5000
+sensor backlight_therm
+thresholds 40000 44000 47000
+thresholds_clr 38000 42000 45000
+actions lcd lcd lcd
+action_info 409 614 819
+
+[BATTERY_CHARGING_STL]
+algo_type monitor
+sampling 1000
+sensor quiet-therm-usr
+thresholds 36000 37000 38000 39000 40000 41000 42000 43000
+thresholds_clr 35000 36000 37000 38000 39000 40000 41000 42000
+actions battery battery battery battery battery battery battery battery
+action_info 1 2 3 4 5 6 8 9
+
+[LCD_MONITOR_STATE]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 60000
+thresholds_clr 57000
+actions lcd
+action_info 3685
+
+[CPU_HOTPLUG_MONITOR]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 61000
+thresholds_clr 58000
+actions hotplug_1+hotplug_2+hotplug_3+hotplug_4+hotplug_5+hotplug_6
+action_info 1+1+1+1+1+1
+
+[HIGH_TEMP_STATE]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 60000
+thresholds_clr 57000
+actions temp_state
+action_info 4
+
diff --git a/configs/thermal/thermal-engine-camera-excalibur.conf b/configs/thermal/thermal-engine-camera-excalibur.conf
new file mode 100644
index 0000000..6230641
--- /dev/null
+++ b/configs/thermal/thermal-engine-camera-excalibur.conf
@@ -0,0 +1,70 @@
+# SENSOR : ALIAS
+
+#debug
+#Conf file: /vendor/etc/thermal-engine-normal.conf (curtana)
+
+[SS-QUIET-THERMAL-S1]
+algo_type ss
+sampling 5000
+sensor nvm-therm-usr
+device cpu0
+set_point 49000
+set_point_clr 47000
+time_constant 0
+device_max_limit 1248000
+
+[SS-QUIET-THERMAL-G1]
+algo_type ss
+sampling 5000
+sensor nvm-therm-usr
+device cpu6
+set_point 47000
+set_point_clr 45000
+time_constant 0
+device_max_limit 1267200
+
+[LCD_MONITOR]
+algo_type monitor
+sampling 5000
+sensor backlight_therm
+thresholds 40000 44000 47000
+thresholds_clr 38000 42000 45000
+actions lcd lcd lcd
+action_info 409 614 819
+
+[BATTERY_CHARGING_STL]
+algo_type monitor
+sampling 1000
+sensor quiet-therm-usr
+thresholds 36000 37000 38000 39000 41000 42000
+thresholds_clr 35000 36000 37000 38000 39000 40000
+actions battery battery battery battery battery battery
+action_info 2 6 9 12 13 15
+
+[LCD_MONITOR_STATE]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 60000
+thresholds_clr 57000
+actions lcd
+action_info 3685
+
+[CPU_HOTPLUG_MONITOR]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 61000
+thresholds_clr 58000
+actions hotplug_1+hotplug_2+hotplug_3+hotplug_4+hotplug_5+hotplug_6
+action_info 1+1+1+1+1+1
+
+[HIGH_TEMP_STATE]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 60000
+thresholds_clr 57000
+actions temp_state
+action_info 4
+
diff --git a/configs/thermal/thermal-engine-camera-gram.conf b/configs/thermal/thermal-engine-camera-gram.conf
new file mode 100644
index 0000000..6230641
--- /dev/null
+++ b/configs/thermal/thermal-engine-camera-gram.conf
@@ -0,0 +1,70 @@
+# SENSOR : ALIAS
+
+#debug
+#Conf file: /vendor/etc/thermal-engine-normal.conf (curtana)
+
+[SS-QUIET-THERMAL-S1]
+algo_type ss
+sampling 5000
+sensor nvm-therm-usr
+device cpu0
+set_point 49000
+set_point_clr 47000
+time_constant 0
+device_max_limit 1248000
+
+[SS-QUIET-THERMAL-G1]
+algo_type ss
+sampling 5000
+sensor nvm-therm-usr
+device cpu6
+set_point 47000
+set_point_clr 45000
+time_constant 0
+device_max_limit 1267200
+
+[LCD_MONITOR]
+algo_type monitor
+sampling 5000
+sensor backlight_therm
+thresholds 40000 44000 47000
+thresholds_clr 38000 42000 45000
+actions lcd lcd lcd
+action_info 409 614 819
+
+[BATTERY_CHARGING_STL]
+algo_type monitor
+sampling 1000
+sensor quiet-therm-usr
+thresholds 36000 37000 38000 39000 41000 42000
+thresholds_clr 35000 36000 37000 38000 39000 40000
+actions battery battery battery battery battery battery
+action_info 2 6 9 12 13 15
+
+[LCD_MONITOR_STATE]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 60000
+thresholds_clr 57000
+actions lcd
+action_info 3685
+
+[CPU_HOTPLUG_MONITOR]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 61000
+thresholds_clr 58000
+actions hotplug_1+hotplug_2+hotplug_3+hotplug_4+hotplug_5+hotplug_6
+action_info 1+1+1+1+1+1
+
+[HIGH_TEMP_STATE]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 60000
+thresholds_clr 57000
+actions temp_state
+action_info 4
+
diff --git a/configs/thermal/thermal-engine-camera-joyeuse.conf b/configs/thermal/thermal-engine-camera-joyeuse.conf
new file mode 100644
index 0000000..6230641
--- /dev/null
+++ b/configs/thermal/thermal-engine-camera-joyeuse.conf
@@ -0,0 +1,70 @@
+# SENSOR : ALIAS
+
+#debug
+#Conf file: /vendor/etc/thermal-engine-normal.conf (curtana)
+
+[SS-QUIET-THERMAL-S1]
+algo_type ss
+sampling 5000
+sensor nvm-therm-usr
+device cpu0
+set_point 49000
+set_point_clr 47000
+time_constant 0
+device_max_limit 1248000
+
+[SS-QUIET-THERMAL-G1]
+algo_type ss
+sampling 5000
+sensor nvm-therm-usr
+device cpu6
+set_point 47000
+set_point_clr 45000
+time_constant 0
+device_max_limit 1267200
+
+[LCD_MONITOR]
+algo_type monitor
+sampling 5000
+sensor backlight_therm
+thresholds 40000 44000 47000
+thresholds_clr 38000 42000 45000
+actions lcd lcd lcd
+action_info 409 614 819
+
+[BATTERY_CHARGING_STL]
+algo_type monitor
+sampling 1000
+sensor quiet-therm-usr
+thresholds 36000 37000 38000 39000 41000 42000
+thresholds_clr 35000 36000 37000 38000 39000 40000
+actions battery battery battery battery battery battery
+action_info 2 6 9 12 13 15
+
+[LCD_MONITOR_STATE]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 60000
+thresholds_clr 57000
+actions lcd
+action_info 3685
+
+[CPU_HOTPLUG_MONITOR]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 61000
+thresholds_clr 58000
+actions hotplug_1+hotplug_2+hotplug_3+hotplug_4+hotplug_5+hotplug_6
+action_info 1+1+1+1+1+1
+
+[HIGH_TEMP_STATE]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 60000
+thresholds_clr 57000
+actions temp_state
+action_info 4
+
diff --git a/configs/thermal/thermal-engine-map-curtana.conf b/configs/thermal/thermal-engine-map-curtana.conf
new file mode 100644
index 0000000..db515c3
--- /dev/null
+++ b/configs/thermal/thermal-engine-map-curtana.conf
@@ -0,0 +1,12 @@
+[0:thermal-engine-normal-curtana.conf]
+[1:thermal-engine-high-curtana.conf]
+[2:thermal-engine-extreme-curtana.conf]
+[8:thermal-engine-phone-curtana.conf]
+[9:thermal-engine-sgame-curtana.conf]
+[10:thermal-engine-nolimits-curtana.conf]
+[11:thermal-engine-class0-curtana.conf]
+[12:thermal-engine-camera-curtana.conf]
+[13:thermal-engine-pubgmhd-curtana.conf]
+[14:thermal-engine-youtobe-curtana.conf]
+[15:thermal-engine-arvr-curtana.conf]
+[16:thermal-engine-tgame-curtana.conf]
diff --git a/configs/thermal/thermal-engine-map-excalibur.conf b/configs/thermal/thermal-engine-map-excalibur.conf
new file mode 100644
index 0000000..c249fa6
--- /dev/null
+++ b/configs/thermal/thermal-engine-map-excalibur.conf
@@ -0,0 +1,12 @@
+[0:thermal-engine-normal-excalibur.conf]
+[1:thermal-engine-high-excalibur.conf]
+[2:thermal-engine-extreme-excalibur.conf]
+[8:thermal-engine-phone-excalibur.conf]
+[9:thermal-engine-sgame-excalibur.conf]
+[10:thermal-engine-nolimits-excalibur.conf]
+[11:thermal-engine-class0-excalibur.conf]
+[12:thermal-engine-camera-excalibur.conf]
+[13:thermal-engine-pubgmhd-excalibur.conf]
+[14:thermal-engine-youtobe-excalibur.conf]
+[15:thermal-engine-arvr-excalibur.conf]
+[16:thermal-engine-tgame-excalibur.conf]
diff --git a/configs/thermal/thermal-engine-map-gram.conf b/configs/thermal/thermal-engine-map-gram.conf
new file mode 100644
index 0000000..102f02c
--- /dev/null
+++ b/configs/thermal/thermal-engine-map-gram.conf
@@ -0,0 +1,12 @@
+[0:thermal-engine-normal-gram.conf]
+[1:thermal-engine-high-gram.conf]
+[2:thermal-engine-extreme-gram.conf]
+[8:thermal-engine-phone-gram.conf]
+[9:thermal-engine-sgame-gram.conf]
+[10:thermal-engine-nolimits-gram.conf]
+[11:thermal-engine-class0-gram.conf]
+[12:thermal-engine-camera-gram.conf]
+[13:thermal-engine-pubgmhd-gram.conf]
+[14:thermal-engine-youtobe-gram.conf]
+[15:thermal-engine-arvr-gram.conf]
+[16:thermal-engine-tgame-gram.conf]
diff --git a/configs/thermal/thermal-engine-map-joyeuse.conf b/configs/thermal/thermal-engine-map-joyeuse.conf
new file mode 100644
index 0000000..6b05d24
--- /dev/null
+++ b/configs/thermal/thermal-engine-map-joyeuse.conf
@@ -0,0 +1,12 @@
+[0:thermal-engine-normal-joyeuse.conf]
+[1:thermal-engine-high-joyeuse.conf]
+[2:thermal-engine-extreme-joyeuse.conf]
+[8:thermal-engine-phone-joyeuse.conf]
+[9:thermal-engine-sgame-joyeuse.conf]
+[10:thermal-engine-nolimits-joyeuse.conf]
+[11:thermal-engine-class0-joyeuse.conf]
+[12:thermal-engine-camera-joyeuse.conf]
+[13:thermal-engine-pubgmhd-joyeuse.conf]
+[14:thermal-engine-youtobe-joyeuse.conf]
+[15:thermal-engine-arvr-joyeuse.conf]
+[16:thermal-engine-tgame-joyeuse.conf]
diff --git a/configs/thermal/thermal-engine-map.conf b/configs/thermal/thermal-engine-map.conf
new file mode 100644
index 0000000..20b4c84
--- /dev/null
+++ b/configs/thermal/thermal-engine-map.conf
@@ -0,0 +1 @@
+# Dummy file
diff --git a/configs/thermal/thermal-engine-normal-curtana.conf b/configs/thermal/thermal-engine-normal-curtana.conf
new file mode 100644
index 0000000..5202a53
--- /dev/null
+++ b/configs/thermal/thermal-engine-normal-curtana.conf
@@ -0,0 +1,70 @@
+# SENSOR : ALIAS
+
+#debug
+#Conf file: /vendor/etc/thermal-engine-normal.conf (curtana)
+
+[SS-QUIET-THERMAL-S1]
+algo_type ss
+sampling 5000
+sensor nvm-therm-usr
+device cpu0
+set_point 53000
+set_point_clr 51000
+time_constant 0
+device_max_limit 1324800
+
+[SS-QUIET-THERMAL-G1]
+algo_type ss
+sampling 5000
+sensor nvm-therm-usr
+device cpu6
+set_point 50000
+set_point_clr 48000
+time_constant 0
+device_max_limit 1555200
+
+[LCD_MONITOR]
+algo_type monitor
+sampling 5000
+sensor backlight_therm
+thresholds 40000 44000 47000
+thresholds_clr 38000 42000 45000
+actions lcd lcd lcd
+action_info 409 614 819
+
+[BATTERY_CHARGING_STL]
+algo_type monitor
+sampling 1000
+sensor quiet-therm-usr
+thresholds 36000 37000 38000 40000 41000 42000 43000
+thresholds_clr 35000 36000 37000 39000 40000 41000 42000
+actions battery battery battery battery battery battery battery
+action_info 1 2 3 4 5 6 8
+
+[LCD_MONITOR_STATE]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 60000
+thresholds_clr 57000
+actions lcd
+action_info 3685
+
+[CPU_HOTPLUG_MONITOR]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 61000
+thresholds_clr 58000
+actions hotplug_1+hotplug_2+hotplug_3+hotplug_4+hotplug_5+hotplug_6
+action_info 1+1+1+1+1+1
+
+[HIGH_TEMP_STATE]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 60000
+thresholds_clr 57000
+actions temp_state
+action_info 4
+
diff --git a/configs/thermal/thermal-engine-normal-excalibur.conf b/configs/thermal/thermal-engine-normal-excalibur.conf
new file mode 100644
index 0000000..24ef6df
--- /dev/null
+++ b/configs/thermal/thermal-engine-normal-excalibur.conf
@@ -0,0 +1,70 @@
+# SENSOR : ALIAS
+
+#debug
+#Conf file: /vendor/etc/thermal-engine-normal.conf (curtana)
+
+[SS-QUIET-THERMAL-S1]
+algo_type ss
+sampling 5000
+sensor nvm-therm-usr
+device cpu0
+set_point 53000
+set_point_clr 51000
+time_constant 0
+device_max_limit 1324800
+
+[SS-QUIET-THERMAL-G1]
+algo_type ss
+sampling 5000
+sensor nvm-therm-usr
+device cpu6
+set_point 50000
+set_point_clr 48000
+time_constant 0
+device_max_limit 1555200
+
+[LCD_MONITOR]
+algo_type monitor
+sampling 5000
+sensor backlight_therm
+thresholds 40000 44000 47000
+thresholds_clr 38000 42000 45000
+actions lcd lcd lcd
+action_info 409 614 819
+
+[BATTERY_CHARGING_STL]
+algo_type monitor
+sampling 1000
+sensor quiet-therm-usr
+thresholds 37000 38000 39000 40000 41000 42000 43000
+thresholds_clr 36000 37000 38000 39000 40000 41000 42000
+actions battery battery battery battery battery battery battery
+action_info 2 6 9 11 13 14 15
+
+[LCD_MONITOR_STATE]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 60000
+thresholds_clr 57000
+actions lcd
+action_info 3685
+
+[CPU_HOTPLUG_MONITOR]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 61000
+thresholds_clr 58000
+actions hotplug_1+hotplug_2+hotplug_3+hotplug_4+hotplug_5+hotplug_6
+action_info 1+1+1+1+1+1
+
+[HIGH_TEMP_STATE]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 60000
+thresholds_clr 57000
+actions temp_state
+action_info 4
+
diff --git a/configs/thermal/thermal-engine-normal-gram.conf b/configs/thermal/thermal-engine-normal-gram.conf
new file mode 100644
index 0000000..24ef6df
--- /dev/null
+++ b/configs/thermal/thermal-engine-normal-gram.conf
@@ -0,0 +1,70 @@
+# SENSOR : ALIAS
+
+#debug
+#Conf file: /vendor/etc/thermal-engine-normal.conf (curtana)
+
+[SS-QUIET-THERMAL-S1]
+algo_type ss
+sampling 5000
+sensor nvm-therm-usr
+device cpu0
+set_point 53000
+set_point_clr 51000
+time_constant 0
+device_max_limit 1324800
+
+[SS-QUIET-THERMAL-G1]
+algo_type ss
+sampling 5000
+sensor nvm-therm-usr
+device cpu6
+set_point 50000
+set_point_clr 48000
+time_constant 0
+device_max_limit 1555200
+
+[LCD_MONITOR]
+algo_type monitor
+sampling 5000
+sensor backlight_therm
+thresholds 40000 44000 47000
+thresholds_clr 38000 42000 45000
+actions lcd lcd lcd
+action_info 409 614 819
+
+[BATTERY_CHARGING_STL]
+algo_type monitor
+sampling 1000
+sensor quiet-therm-usr
+thresholds 37000 38000 39000 40000 41000 42000 43000
+thresholds_clr 36000 37000 38000 39000 40000 41000 42000
+actions battery battery battery battery battery battery battery
+action_info 2 6 9 11 13 14 15
+
+[LCD_MONITOR_STATE]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 60000
+thresholds_clr 57000
+actions lcd
+action_info 3685
+
+[CPU_HOTPLUG_MONITOR]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 61000
+thresholds_clr 58000
+actions hotplug_1+hotplug_2+hotplug_3+hotplug_4+hotplug_5+hotplug_6
+action_info 1+1+1+1+1+1
+
+[HIGH_TEMP_STATE]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 60000
+thresholds_clr 57000
+actions temp_state
+action_info 4
+
diff --git a/configs/thermal/thermal-engine-normal-joyeuse.conf b/configs/thermal/thermal-engine-normal-joyeuse.conf
new file mode 100644
index 0000000..ca0a270
--- /dev/null
+++ b/configs/thermal/thermal-engine-normal-joyeuse.conf
@@ -0,0 +1,70 @@
+# SENSOR : ALIAS
+
+#debug
+#Conf file: /vendor/etc/thermal-engine-normal.conf (curtana)
+
+[SS-QUIET-THERMAL-S1]
+algo_type ss
+sampling 5000
+sensor nvm-therm-usr
+device cpu0
+set_point 53000
+set_point_clr 51000
+time_constant 0
+device_max_limit 1324800
+
+[SS-QUIET-THERMAL-G1]
+algo_type ss
+sampling 5000
+sensor nvm-therm-usr
+device cpu6
+set_point 50000
+set_point_clr 48000
+time_constant 0
+device_max_limit 1555200
+
+[LCD_MONITOR]
+algo_type monitor
+sampling 5000
+sensor backlight_therm
+thresholds 40000 44000 47000
+thresholds_clr 38000 42000 45000
+actions lcd lcd lcd
+action_info 409 614 819
+
+[BATTERY_CHARGING_STL]
+algo_type monitor
+sampling 1000
+sensor quiet-therm-usr
+thresholds 37000 38000 39000 40000 41000 42000 43000
+thresholds_clr 36000 37000 38000 39000 40000 41000 42000
+actions battery battery battery battery battery battery battery
+action_info 2 6 8 9 11 13 14
+
+[LCD_MONITOR_STATE]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 60000
+thresholds_clr 57000
+actions lcd
+action_info 3685
+
+[CPU_HOTPLUG_MONITOR]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 61000
+thresholds_clr 58000
+actions hotplug_1+hotplug_2+hotplug_3+hotplug_4+hotplug_5+hotplug_6
+action_info 1+1+1+1+1+1
+
+[HIGH_TEMP_STATE]
+algo_type monitor
+sampling 5000
+sensor quiet-therm-usr
+thresholds 60000
+thresholds_clr 57000
+actions temp_state
+action_info 4
+
diff --git a/common.mk b/device.mk
similarity index 80%
rename from common.mk
rename to device.mk
index 70c85e1..acf59ae 100644
--- a/common.mk
+++ b/device.mk
@@ -8,7 +8,8 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
# Inherit proprietary targets
-$(call inherit-product-if-exists, vendor/xiaomi/sm6250-common/sm6250-common-vendor.mk)
+$(call inherit-product, vendor/xiaomi/sm6250-common/sm6250-common-vendor.mk)
+$(call inherit-product, vendor/xiaomi/miatoll/miatoll-vendor.mk)
# Enable updating of APEXes
$(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk)
@@ -199,7 +200,8 @@ PRODUCT_PACKAGES += \
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/rootdir/etc/init.qcom.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.qcom.rc \
$(LOCAL_PATH)/rootdir/etc/init.qcom.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.qcom.usb.rc \
- $(LOCAL_PATH)/rootdir/etc/init.target.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.target.rc
+ $(LOCAL_PATH)/rootdir/etc/init.target.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.target.rc \
+ $(LOCAL_PATH)/rootdir/etc/init.device.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.device.rc
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/rootdir/bin/init.qcom.post_boot.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.qcom.post_boot.sh \
@@ -208,13 +210,13 @@ PRODUCT_COPY_FILES += \
# Input
PRODUCT_COPY_FILES += \
- $(LOCAL_PATH)/idc/uinput-fpc.idc:system/usr/idc/uinput-fpc.idc \
- $(LOCAL_PATH)/idc/uinput-goodix.idc:system/usr/idc/uinput-goodix.idc
+ $(LOCAL_PATH)/configs/idc/uinput-fpc.idc:system/usr/idc/uinput-fpc.idc \
+ $(LOCAL_PATH)/configs/idc/uinput-goodix.idc:system/usr/idc/uinput-goodix.idc
PRODUCT_COPY_FILES += \
- $(LOCAL_PATH)/keylayout/gpio-keys.kl:system/usr/keylayout/gpio-keys.kl \
- $(LOCAL_PATH)/keylayout/uinput-fpc.kl:system/usr/keylayout/uinput-fpc.kl \
- $(LOCAL_PATH)/keylayout/uinput-goodix.kl:system/usr/keylayout/uinput-goodix.kl
+ $(LOCAL_PATH)/configs/keylayout/gpio-keys.kl:system/usr/keylayout/gpio-keys.kl \
+ $(LOCAL_PATH)/configs/keylayout/uinput-fpc.kl:system/usr/keylayout/uinput-fpc.kl \
+ $(LOCAL_PATH)/configs/keylayout/uinput-goodix.kl:system/usr/keylayout/uinput-goodix.kl
# IPACM
PRODUCT_PACKAGES += \
@@ -251,7 +253,7 @@ PRODUCT_PACKAGES += \
libstagefrighthw
PRODUCT_COPY_FILES += \
- $(call find-copy-subdir-files,*,$(LOCAL_PATH)/media/,$(TARGET_COPY_OUT_VENDOR)/etc)
+ $(call find-copy-subdir-files,*,$(LOCAL_PATH)/configs/media/,$(TARGET_COPY_OUT_VENDOR)/etc)
PRODUCT_COPY_FILES += \
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \
@@ -266,10 +268,28 @@ PRODUCT_PACKAGES += \
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.software.ipsec_tunnels.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnels.xml
+# NFC
+PRODUCT_PACKAGES += \
+ NfcNci \
+ Tag
+
+PRODUCT_PACKAGES += \
+ android.hardware.nfc@1.2-service
+
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/configs/nfc/libnfc-nci.conf:$(TARGET_COPY_OUT_SYSTEM)/etc/libnfc-nci.conf \
+ $(LOCAL_PATH)/configs/nfc/libnfc-nxp.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-nxp.conf
+
+PRODUCT_COPY_FILES += \
+ frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_ODM)/etc/permissions/sku_joyeuse/android.hardware.nfc.xml \
+ frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_ODM)/etc/permissions/sku_joyeuse/android.hardware.nfc.hce.xml \
+ frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_ODM)/etc/permissions/sku_joyeuse/android.hardware.nfc.hcef.xml \
+ frameworks/native/data/etc/com.android.nfc_extras.xml:$(TARGET_COPY_OUT_ODM)/etc/permissions/sku_joyeuse/com.android.nfc_extras.xml \
+ frameworks/native/data/etc/com.nxp.mifare.xml:$(TARGET_COPY_OUT_ODM)/etc/permissions/sku_joyeuse/com.nxp.mifare.xml
+
# Overlays
DEVICE_PACKAGE_OVERLAYS += \
- $(LOCAL_PATH)/overlay \
- $(LOCAL_PATH)/overlay-lineage
+ $(LOCAL_PATH)/overlay
PRODUCT_ENFORCE_RRO_TARGETS := *
@@ -324,6 +344,22 @@ PRODUCT_PACKAGES += \
PRODUCT_SOONG_NAMESPACES += \
$(LOCAL_PATH)
+# Thermal
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/configs/thermal/thermal-engine-map.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-map.conf \
+ $(LOCAL_PATH)/configs/thermal/thermal-engine-map-curtana.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-map-curtana.conf \
+ $(LOCAL_PATH)/configs/thermal/thermal-engine-normal-curtana.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-normal-curtana.conf \
+ $(LOCAL_PATH)/configs/thermal/thermal-engine-camera-curtana.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-camera-curtana.conf \
+ $(LOCAL_PATH)/configs/thermal/thermal-engine-map-excalibur.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-map-excalibur.conf \
+ $(LOCAL_PATH)/configs/thermal/thermal-engine-normal-excalibur.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-normal-excalibur.conf \
+ $(LOCAL_PATH)/configs/thermal/thermal-engine-camera-excalibur.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-camera-excalibur.conf \
+ $(LOCAL_PATH)/configs/thermal/thermal-engine-map-gram.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-map-gram.conf \
+ $(LOCAL_PATH)/configs/thermal/thermal-engine-normal-gram.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-normal-gram.conf \
+ $(LOCAL_PATH)/configs/thermal/thermal-engine-camera-gram.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-camera-gram.conf \
+ $(LOCAL_PATH)/configs/thermal/thermal-engine-map-joyeuse.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-map-joyeuse.conf \
+ $(LOCAL_PATH)/configs/thermal/thermal-engine-normal-joyeuse.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-normal-joyeuse.conf \
+ $(LOCAL_PATH)/configs/thermal/thermal-engine-camera-joyeuse.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-camera-joyeuse.conf
+
# Telephony
PRODUCT_PACKAGES += \
ims-ext-common \
diff --git a/extract-files.sh b/extract-files.sh
index 7b787d5..3b1193c 100755
--- a/extract-files.sh
+++ b/extract-files.sh
@@ -7,6 +7,11 @@
set -e
+export DEVICE=miatoll
+export VENDOR=xiaomi
+
+export DEVICE_BRINGUP_YEAR=2020
+
# Load extract_utils and do some sanity checks
MY_DIR="${BASH_SOURCE%/*}"
if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi
diff --git a/init/Android.bp b/init/Android.bp
index 7b1c818..7a8ffac 100644
--- a/init/Android.bp
+++ b/init/Android.bp
@@ -15,10 +15,10 @@
//
cc_library_static {
- name: "libinit_xiaomi_sm6250_common",
+ name: "libinit_miatoll",
recovery_available: true,
srcs: [
- "init_common.cpp"
+ "init.cpp"
],
include_dirs: [
"system/core/base/include",
@@ -32,13 +32,3 @@ cc_library_static {
]
}
-cc_library_static {
- name: "libinit_xiaomi_sm6250",
- recovery_available: true,
- srcs: [
- "init.cpp"
- ],
- whole_static_libs: [
- "libinit_xiaomi_sm6250_common"
- ]
-}
diff --git a/init/init.cpp b/init/init.cpp
index c7efaba..30b7234 100644
--- a/init/init.cpp
+++ b/init/init.cpp
@@ -14,9 +14,146 @@
* limitations under the License.
*/
+#include
+#include
+#include
+#include
+
+#include
+#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
+#include
+
#include "init_common.h"
#include "vendor_init.h"
+#include "property_service.h"
+
+using android::base::GetProperty;
+
+std::vector ro_props_default_source_order = {
+ "",
+ "odm.",
+ "product.",
+ "system.",
+ "vendor.",
+ "system_ext.",
+};
+
+void set_ro_build_prop(const std::string &source, const std::string &prop,
+ const std::string &value, bool product = false) {
+ std::string prop_name;
+
+ if (product) {
+ prop_name = "ro.product." + source + prop;
+ } else {
+ prop_name = "ro." + source + "build." + prop;
+ }
+
+ property_override(prop_name.c_str(), value.c_str(), false);
+}
+
+void set_device_props(const std::string fingerprint, const std::string description,
+ const std::string brand, const std::string device, const std::string model) {
+ for (const auto &source : ro_props_default_source_order) {
+ set_ro_build_prop(source, "fingerprint", fingerprint);
+ set_ro_build_prop(source, "brand", brand, true);
+ set_ro_build_prop(source, "device", device, true);
+ set_ro_build_prop(source, "model", model, true);
+ }
+
+ property_override("ro.build.fingerprint", fingerprint.c_str());
+ property_override("ro.build.description", description.c_str());
+}
+
+void load_device_properties() {
+ std::string hwname = GetProperty("ro.boot.hwname", "");
+ std::string region = GetProperty("ro.boot.hwc", "");
+
+ if (hwname == "curtana") {
+ if (region == "Global_TWO") {
+ set_device_props(
+ "google/redfin/redfin:11/RQ1A.210105.003/7005429:user/release-keys",
+ "curtana_global-user 10 QKQ1.191215.002 V12.0.1.0.QJWMIXM release-keys",
+ "Redmi", "curtana", "Redmi Note 9S");
+ } else if (region == "India") {
+ set_device_props(
+ "google/redfin/redfin:11/RQ1A.210105.003/7005429:user/release-keys",
+ "curtana_in-user 10 QKQ1.191215.002 V12.0.1.0.QJWINXM release-keys",
+ "Redmi", "curtana", "Redmi Note 9 Pro");
+ }
+ } else if (hwname == "excalibur") {
+ set_device_props(
+ "google/redfin/redfin:11/RQ1A.210105.003/7005429:user/release-keys",
+ "excalibur_in-user 10 QKQ1.191215.002 V12.0.1.0.QJXINXM release-keys",
+ "Redmi", "excalibur", "Redmi Note 9 Pro Max");
+ } else if (hwname == "gram") {
+ set_device_props(
+ "google/redfin/redfin:11/RQ1A.210105.003/7005429:user/release-keys",
+ "gram_in-user 10 QKQ1.191215.002 V12.0.1.0.QJPINXM release-keys",
+ "POCO", "gram", "POCO M2 Pro");
+ } else if (hwname == "joyeuse") {
+ set_device_props(
+ "google/redfin/redfin:11/RQ1A.210105.003/7005429:user/release-keys",
+ "joyeuse_global-user 10 QKQ1.191215.002 V12.0.1.0.QJZMIXM release-keys",
+ "Redmi", "joyeuse", "Redmi Note 9 Pro");
+ }
+}
+
+void property_override(char const prop[], char const value[], bool add)
+{
+ auto pi = (prop_info *) __system_property_find(prop);
+
+ if (pi != nullptr) {
+ __system_property_update(pi, value, strlen(value));
+ } else if (add) {
+ __system_property_add(prop, strlen(prop), value, strlen(value));
+ }
+}
+
+void load_dalvik_properties() {
+ char const *heapstartsize;
+ char const *heapgrowthlimit;
+ char const *heapsize;
+ char const *heapminfree;
+ char const *heapmaxfree;
+ char const *heaptargetutilization;
+ struct sysinfo sys;
+
+ sysinfo(&sys);
+
+ if (sys.totalram >= 5ull * 1024 * 1024 * 1024) {
+ // from - phone-xhdpi-6144-dalvik-heap.mk
+ heapstartsize = "16m";
+ heapgrowthlimit = "256m";
+ heapsize = "512m";
+ heaptargetutilization = "0.5";
+ heapminfree = "8m";
+ heapmaxfree = "32m";
+ } else if (sys.totalram >= 3ull * 1024 * 1024 * 1024) {
+ // from - phone-xhdpi-4096-dalvik-heap.mk
+ heapstartsize = "8m";
+ heapgrowthlimit = "192m";
+ heapsize = "512m";
+ heaptargetutilization = "0.6";
+ heapminfree = "8m";
+ heapmaxfree = "16m";
+ } else {
+ return;
+ }
+
+ property_override("dalvik.vm.heapstartsize", heapstartsize);
+ property_override("dalvik.vm.heapgrowthlimit", heapgrowthlimit);
+ property_override("dalvik.vm.heapsize", heapsize);
+ property_override("dalvik.vm.heaptargetutilization", heaptargetutilization);
+ property_override("dalvik.vm.heapminfree", heapminfree);
+ property_override("dalvik.vm.heapmaxfree", heapmaxfree);
+}
+
void vendor_load_properties() {
load_common_properties();
}
+
+void load_common_properties() {
+ load_dalvik_properties();
+}
+
diff --git a/init/init_common.cpp b/init/init_common.cpp
deleted file mode 100644
index 0b2fd62..0000000
--- a/init/init_common.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2020 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.
- */
-
-#include
-#include
-
-#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
-#include
-
-#include "init_common.h"
-#include "property_service.h"
-
-void property_override(char const prop[], char const value[], bool add)
-{
- auto pi = (prop_info *) __system_property_find(prop);
-
- if (pi != nullptr) {
- __system_property_update(pi, value, strlen(value));
- } else if (add) {
- __system_property_add(prop, strlen(prop), value, strlen(value));
- }
-}
-
-void load_dalvik_properties() {
- char const *heapstartsize;
- char const *heapgrowthlimit;
- char const *heapsize;
- char const *heapminfree;
- char const *heapmaxfree;
- char const *heaptargetutilization;
- struct sysinfo sys;
-
- sysinfo(&sys);
-
- if (sys.totalram >= 5ull * 1024 * 1024 * 1024) {
- // from - phone-xhdpi-6144-dalvik-heap.mk
- heapstartsize = "16m";
- heapgrowthlimit = "256m";
- heapsize = "512m";
- heaptargetutilization = "0.5";
- heapminfree = "8m";
- heapmaxfree = "32m";
- } else if (sys.totalram >= 3ull * 1024 * 1024 * 1024) {
- // from - phone-xhdpi-4096-dalvik-heap.mk
- heapstartsize = "8m";
- heapgrowthlimit = "192m";
- heapsize = "512m";
- heaptargetutilization = "0.6";
- heapminfree = "8m";
- heapmaxfree = "16m";
- } else {
- return;
- }
-
- property_override("dalvik.vm.heapstartsize", heapstartsize);
- property_override("dalvik.vm.heapgrowthlimit", heapgrowthlimit);
- property_override("dalvik.vm.heapsize", heapsize);
- property_override("dalvik.vm.heaptargetutilization", heaptargetutilization);
- property_override("dalvik.vm.heapminfree", heapminfree);
- property_override("dalvik.vm.heapmaxfree", heapmaxfree);
-}
-
-void load_common_properties() {
- load_dalvik_properties();
-}
diff --git a/overlay-lineage/lineage-sdk/lineage/res/res/values/config.xml b/overlay/overlay-lineage/lineage-sdk/lineage/res/res/values/config.xml
similarity index 100%
rename from overlay-lineage/lineage-sdk/lineage/res/res/values/config.xml
rename to overlay/overlay-lineage/lineage-sdk/lineage/res/res/values/config.xml
diff --git a/overlay-lineage/packages/apps/Dialer/java/com/android/dialer/callrecord/res/values/config.xml b/overlay/overlay-lineage/packages/apps/Dialer/java/com/android/dialer/callrecord/res/values/config.xml
similarity index 100%
rename from overlay-lineage/packages/apps/Dialer/java/com/android/dialer/callrecord/res/values/config.xml
rename to overlay/overlay-lineage/packages/apps/Dialer/java/com/android/dialer/callrecord/res/values/config.xml
diff --git a/overlay-lineage/packages/apps/Settings/res/values/config.xml b/overlay/overlay-lineage/packages/apps/Settings/res/values/config.xml
similarity index 100%
rename from overlay-lineage/packages/apps/Settings/res/values/config.xml
rename to overlay/overlay-lineage/packages/apps/Settings/res/values/config.xml
diff --git a/overlay-lineage/packages/apps/Snap/res/values/config.xml b/overlay/overlay-lineage/packages/apps/Snap/res/values/config.xml
similarity index 100%
rename from overlay-lineage/packages/apps/Snap/res/values/config.xml
rename to overlay/overlay-lineage/packages/apps/Snap/res/values/config.xml
diff --git a/proprietary-files.txt b/proprietary-files.txt
index fd49826..6e3615b 100644
--- a/proprietary-files.txt
+++ b/proprietary-files.txt
@@ -404,6 +404,49 @@ vendor/lib64/libMegviiFacepp-0.5.2.so
vendor/lib/android.hardware.camera.provider@2.4-legacy.so
vendor/lib64/android.hardware.camera.provider@2.4-legacy.so
+# Camera sensors - curtana & gram
+vendor/lib/camera/com.qti.sensormodule.ofilm_gc02m1_filter.bin|4687d1d2eb8d36b5bed2ceafb197ef21d22bd97e
+vendor/lib/camera/com.qti.sensormodule.ofilm_s5kgm2.bin|5ebb58c43e95d598f35a0808a0497f51affdcbd6
+vendor/lib/camera/com.qti.sensormodule.sunny_imx582.bin|0b0d77edf59fe95073c16ed8698a00e7b5a5ed3c
+vendor/lib/camera/com.qti.sensormodule.sunny_s5kgm2.bin|c92b87076645f2049507211ac09c99a0e54119d3
+vendor/lib/camera/com.qti.tuned.ofilm_gc02m1.bin|31210b8e66517d745c4f9f964589417df9c16990
+vendor/lib/camera/com.qti.tuned.ofilm_gc02m1_filter.bin|31210b8e66517d745c4f9f964589417df9c16990
+vendor/lib/camera/com.qti.tuned.ofilm_s5kgm2.bin|e0e1bc67bbf6a5a3a34fdf72d00b667cf94f6924
+vendor/lib/camera/com.qti.tuned.sunny_imx582.bin|9f047280e23c745c48056050beb422de57f0d5ef
+vendor/lib64/camera/com.qti.sensormodule.ofilm_gc02m1_filter.bin|4687d1d2eb8d36b5bed2ceafb197ef21d22bd97e
+vendor/lib64/camera/com.qti.sensormodule.ofilm_s5kgm2.bin|5ebb58c43e95d598f35a0808a0497f51affdcbd6
+vendor/lib64/camera/com.qti.sensormodule.sunny_imx582.bin|0b0d77edf59fe95073c16ed8698a00e7b5a5ed3c
+vendor/lib64/camera/com.qti.sensormodule.sunny_s5kgm2.bin|c92b87076645f2049507211ac09c99a0e54119d3
+vendor/lib64/camera/com.qti.tuned.ofilm_gc02m1.bin|31210b8e66517d745c4f9f964589417df9c16990
+vendor/lib64/camera/com.qti.tuned.ofilm_gc02m1_filter.bin|31210b8e66517d745c4f9f964589417df9c16990
+vendor/lib64/camera/com.qti.tuned.ofilm_s5kgm2.bin|e0e1bc67bbf6a5a3a34fdf72d00b667cf94f6924
+vendor/lib64/camera/com.qti.tuned.sunny_imx582.bin|9f047280e23c745c48056050beb422de57f0d5ef
+
+# Camera sensors - excalibur & joyeuse
+vendor/lib/camera/com.qti.sensormodule.ofilm_s5kgw1.bin|334d371b7a983ce68b00517adda673c3c0e929b2
+vendor/lib/camera/com.qti.sensormodule.ofilm_s5kgw1_mirrorflip.bin|917c57ddd0a00f9b05b953709b05142768f702b2
+vendor/lib/camera/com.qti.sensormodule.sunny_s5kgw1.bin|e1a6c85a562f88fbc8eb6ea0bdc1b1308754d70e
+vendor/lib/camera/com.qti.sensormodule.sunny_s5kgw1_mirrorflip.bin|a3a755a5b11679cf4b42a7b606221a299ff4e012
+vendor/lib/camera/com.qti.tuned.sunny_gc02m1.bin|188b18e794fcc417f479b878b6ab9d51d4951878
+vendor/lib/camera/com.qti.tuned.sunny_s5kgw1.bin|6ab3770bdb571fa89870bd3dfb8a081cf9f02842
+vendor/lib64/camera/com.qti.sensormodule.ofilm_s5kgw1.bin|334d371b7a983ce68b00517adda673c3c0e929b2
+vendor/lib64/camera/com.qti.sensormodule.ofilm_s5kgw1_mirrorflip.bin|917c57ddd0a00f9b05b953709b05142768f702b2
+vendor/lib64/camera/com.qti.sensormodule.sunny_s5kgw1.bin|e1a6c85a562f88fbc8eb6ea0bdc1b1308754d70e
+vendor/lib64/camera/com.qti.sensormodule.sunny_s5kgw1_mirrorflip.bin|a3a755a5b11679cf4b42a7b606221a299ff4e012
+vendor/lib64/camera/com.qti.tuned.sunny_gc02m1.bin|188b18e794fcc417f479b878b6ab9d51d4951878
+vendor/lib64/camera/com.qti.tuned.sunny_s5kgw1.bin|6ab3770bdb571fa89870bd3dfb8a081cf9f02842
+
+# Camera sensors - excalibur
+vendor/lib/camera/com.qti.sensormodule.sunny_ov32a1q.bin|c97a60bf1b3cd584fa4eb80495ad3ced41cb64a3
+vendor/lib/camera/com.qti.tuned.sunny_ov32a1q.bin|e3c8cb221d8bbfd82f81063dbff148d28136390f
+vendor/lib64/camera/com.qti.sensormodule.sunny_ov32a1q.bin|c97a60bf1b3cd584fa4eb80495ad3ced41cb64a3
+vendor/lib64/camera/com.qti.tuned.sunny_ov32a1q.bin|e3c8cb221d8bbfd82f81063dbff148d28136390f
+
+# Camera sensors - joyeuse
+vendor/lib/camera/com.qti.tuned.ofilm_s5kgw1.bin|0223771138a3c43a29ca1867b75f5064f6bb6f72
+vendor/lib64/camera/com.qti.tuned.ofilm_s5kgw1.bin|0223771138a3c43a29ca1867b75f5064f6bb6f72
+
+
# CDSP
vendor/bin/cdsprpcd
vendor/etc/init/vendor.qti.cdsprpc-service.rc
@@ -1008,6 +1051,9 @@ vendor/lib64/vendor.xiaomi.hardware.misys@1.0.so
vendor/lib64/vendor.xiaomi.hardware.misys@2.0.so
vendor/lib64/vendor.xiaomi.hardware.misys@3.0.so
+# NFC
+vendor/lib/libpn553_fw.so|a8e29cc3ebb2e0df0fb505fc2da9c69a015680fb
+
# Neural Networks
vendor/bin/hw/android.hardware.neuralnetworks@1.3-service-qti
vendor/bin/npu_launcher
diff --git a/rootdir/etc/init.device.rc b/rootdir/etc/init.device.rc
new file mode 100644
index 0000000..09a1ce3
--- /dev/null
+++ b/rootdir/etc/init.device.rc
@@ -0,0 +1,24 @@
+service thermal-engine /vendor/bin/thermal-engine
+ class main
+ user root
+ group root
+ socket thermal-send-client stream 0660 system oem_2907
+ socket thermal-recv-client stream 0660 system oem_2907
+ socket thermal-recv-passive-client stream 0660 system oem_2907
+ socket thermal-send-rule stream 0660 system oem_2907
+ disabled
+
+service vendor.nfc_hal_service /vendor/bin/hw/android.hardware.nfc@1.2-service
+ override
+ class hal
+ user nfc
+ group nfc
+ disabled
+
+on boot && property:ro.product.vendor.device=*
+ mount none /vendor/etc/thermal-engine-map-${ro.product.vendor.device}.conf /vendor/etc/thermal-engine-map.conf bind
+ start thermal-engine
+
+on init && property:ro.boot.hwname=joyeuse
+ setprop ro.boot.product.hardware.sku joyeuse
+ start vendor.nfc_hal_service
diff --git a/setup-makefiles.sh b/setup-makefiles.sh
index 73d5559..39b704d 100755
--- a/setup-makefiles.sh
+++ b/setup-makefiles.sh
@@ -7,6 +7,10 @@
set -e
+export DEVICE=miatoll
+export VENDOR=xiaomi
+
+export DEVICE_BRINGUP_YEAR=2020
INITIAL_COPYRIGHT_YEAR=2020
# Load extract_utils and do some sanity checks