sapphire: sm6225-common -> sapphire

This commit is contained in:
Mohammad Kibria
2024-08-29 15:44:46 +00:00
committed by kibria5
parent 49a3228e81
commit 6dbf556de4
51 changed files with 2710 additions and 841 deletions

View File

@@ -1,12 +1,12 @@
#
# Copyright (C) 2023 The LineageOS Project
# Copyright (C) 2024 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
LOCAL_PATH := $(call my-dir)
ifneq ($(filter sapphire topaz xun,$(TARGET_DEVICE)),)
ifeq ($(TARGET_DEVICE),sapphire)
include $(call all-makefiles-under,$(LOCAL_PATH))
# A/B builds require us to create the mount points at compile time.
@@ -55,7 +55,6 @@ $(EGL_LIB64_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
$(hide) ln -sf egl/libGLESv2_adreno.so $@/libGLESv2_adreno.so
$(hide) ln -sf egl/libq3dtools_adreno.so $@/libq3dtools_adreno.so
ifneq ($(TARGET_IS_TABLET),true)
IMS_LIBS := libimscamera_jni.so libimsmedia_jni.so
IMS_SYMLINKS := $(addprefix $(TARGET_OUT_SYSTEM_EXT_APPS_PRIVILEGED)/ims/lib/arm64/,$(notdir $(IMS_LIBS)))
$(IMS_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@@ -64,9 +63,6 @@ $(IMS_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@rm -rf $@
$(hide) ln -sf /system_ext/lib64/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(IMS_SYMLINKS)
endif
RFS_MSM_ADSP_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/adsp/
$(RFS_MSM_ADSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MSM ADSP folder structure: $@"
@@ -141,6 +137,6 @@ $(WIFI_FIRMWARE_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
$(hide) ln -sf /mnt/vendor/persist/wlan_mac.bin $@/wlan/qca_cld/wlan_mac.bin
$(hide) ln -sf /vendor/etc/wifi/WCNSS_qcom_cfg.ini $@/wlan/qca_cld/WCNSS_qcom_cfg.ini
ALL_DEFAULT_INSTALLED_MODULES += $(CNE_SYMLINKS) $(EGL_LIB_SYMLINKS) $(EGL_LIB64_SYMLINKS) $(RFS_MSM_ADSP_SYMLINKS) $(RFS_MSM_CDSP_SYMLINKS) $(RFS_MSM_MPSS_SYMLINKS) $(RFS_MSM_SLPI_SYMLINKS) $(RFS_MSM_WPSS_SYMLINKS) $(WFD_SERVICE_SYMLINKS) $(WIFI_FIRMWARE_SYMLINKS)
ALL_DEFAULT_INSTALLED_MODULES += $(CNE_SYMLINKS) $(EGL_LIB_SYMLINKS) $(EGL_LIB64_SYMLINKS) $(IMS_SYMLINKS) $(RFS_MSM_ADSP_SYMLINKS) $(RFS_MSM_CDSP_SYMLINKS) $(RFS_MSM_MPSS_SYMLINKS) $(RFS_MSM_SLPI_SYMLINKS) $(RFS_MSM_WPSS_SYMLINKS) $(WFD_SERVICE_SYMLINKS) $(WIFI_FIRMWARE_SYMLINKS)
endif

13
AndroidProducts.mk Normal file
View File

@@ -0,0 +1,13 @@
#
# Copyright (C) 2024 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/lineage_sapphire.mk
COMMON_LUNCH_CHOICES := \
lineage_sapphire-user \
lineage_sapphire-userdebug \
lineage_sapphire-eng

View File

@@ -1,13 +1,14 @@
#
# Copyright (C) 2023 The LineageOS Project
# Copyright (C) 2024 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
# Include the proprietary files BoardConfig.
include vendor/xiaomi/sm6225-common/BoardConfigVendor.mk
# Inherit from the proprietary version
include vendor/xiaomi/sapphire/BoardConfigVendor.mk
COMMON_PATH := device/xiaomi/sm6225-common
DEVICE_PATH := device/xiaomi/sapphire
KERNEL_PATH := $(DEVICE_PATH)-kernel
BUILD_BROKEN_DUP_RULES := true
BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true
@@ -70,12 +71,42 @@ $(call soong_config_set, ufsbsg, ufsframework, bsg)
# Bootloader
TARGET_BOOTLOADER_BOARD_NAME := bengal
# Display
TARGET_SCREEN_DENSITY := 437
# DTB/DTBO
BOARD_INCLUDE_DTB_IN_BOOTIMG := true
BOARD_KERNEL_SEPARATED_DTBO := true
# Filesystem
TARGET_FS_CONFIG_GEN := $(COMMON_PATH)/configs/config.fs
TARGET_FS_CONFIG_GEN := $(DEVICE_PATH)/configs/config.fs
# Init
TARGET_INIT_VENDOR_LIB := //$(DEVICE_PATH):init_sapphire
TARGET_RECOVERY_DEVICE_MODULES := init_sapphire
# Kernel prebuilt
BOARD_USES_DT := true
BOARD_PREBUILT_DTBIMAGE_DIR := $(KERNEL_PATH)/dtbs
BOARD_PREBUILT_DTBOIMAGE := $(KERNEL_PATH)/dtbs/dtbo.img
TARGET_FORCE_PREBUILT_KERNEL := true
TARGET_KERNEL_SOURCE := $(KERNEL_PATH)/kernel-headers
TARGET_NO_KERNEL_OVERRIDE := true
TARGET_PREBUILT_KERNEL := $(KERNEL_PATH)/kernel
PRODUCT_COPY_FILES += $(TARGET_PREBUILT_KERNEL):kernel
BOARD_VENDOR_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_PATH)/vendor_dlkm/modules.load))
BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_PATH)/vendor_dlkm/modules.blocklist
BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_PATH)/vendor_ramdisk/modules.load))
BOARD_VENDOR_RAMDISK_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_PATH)/vendor_ramdisk/modules.blocklist
BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_PATH)/vendor_ramdisk/modules.load.recovery))
PRODUCT_COPY_FILES += \
$(call find-copy-subdir-files,*,$(KERNEL_PATH)/system_dlkm/,$(TARGET_COPY_OUT_SYSTEM_DLKM)/lib/modules/5.15.94) \
$(call find-copy-subdir-files,*,$(KERNEL_PATH)/vendor_dlkm/,$(TARGET_COPY_OUT_VENDOR_DLKM)/lib/modules) \
$(call find-copy-subdir-files,*,$(KERNEL_PATH)/vendor_ramdisk/,$(TARGET_COPY_OUT_VENDOR_RAMDISK)/lib/modules)
# Kernel
BOARD_KERNEL_BASE := 0x00000000
@@ -147,21 +178,18 @@ TARGET_BOARD_PLATFORM := bengal
TARGET_BOARD_SUFFIX := _515
# Properties
TARGET_ODM_PROP += $(COMMON_PATH)/configs/properties/odm.prop
TARGET_PRODUCT_PROP += $(COMMON_PATH)/configs/properties/product.prop
TARGET_SYSTEM_PROP += $(COMMON_PATH)/configs/properties/system.prop
TARGET_SYSTEM_EXT_PROP += $(COMMON_PATH)/configs/properties/system_ext.prop
TARGET_VENDOR_PROP += $(COMMON_PATH)/configs/properties/vendor.prop
ifneq ($(TARGET_IS_TABLET),true)
TARGET_VENDOR_PROP += $(COMMON_PATH)/configs/properties/vendor_phone.prop
endif
TARGET_ODM_PROP += $(DEVICE_PATH)/configs/properties/odm.prop
TARGET_PRODUCT_PROP += $(DEVICE_PATH)/configs/properties/product.prop
TARGET_SYSTEM_PROP += $(DEVICE_PATH)/configs/properties/system.prop
TARGET_SYSTEM_EXT_PROP += $(DEVICE_PATH)/configs/properties/system_ext.prop
TARGET_VENDOR_PROP += $(DEVICE_PATH)/configs/properties/vendor.prop
# Power
TARGET_POWERHAL_MODE_EXT := $(COMMON_PATH)/power/power-mode.cpp
TARGET_POWERHAL_MODE_EXT := $(DEVICE_PATH)/power/power-mode.cpp
# Recovery
BOARD_EXCLUDE_KERNEL_FROM_RECOVERY_IMAGE := 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
@@ -176,8 +204,8 @@ VENDOR_SECURITY_PATCH := $(BOOT_SECURITY_PATCH)
# Sepolicy
include device/qcom/sepolicy_vndr/sm6225/SEPolicy.mk
include device/xiaomi/sepolicy/SEPolicy.mk
SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += $(COMMON_PATH)/sepolicy/private
BOARD_VENDOR_SEPOLICY_DIRS += $(COMMON_PATH)/sepolicy/vendor
SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/private
BOARD_VENDOR_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/vendor
# Verified Boot
BOARD_AVB_ENABLE := true
@@ -218,15 +246,12 @@ BOARD_AVB_ODM_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm sha256
# VINTF
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE := \
$(COMMON_PATH)/configs/vintf/framework_compatibility_matrix.xml \
$(DEVICE_PATH)/configs/vintf/framework_compatibility_matrix.xml \
vendor/lineage/config/device_framework_matrix.xml
DEVICE_FRAMEWORK_MANIFEST_FILE += $(COMMON_PATH)/configs/vintf/framework_manifest.xml
DEVICE_MANIFEST_FILE += $(COMMON_PATH)/configs/vintf/manifest.xml
ifneq ($(TARGET_IS_TABLET),true)
DEVICE_FRAMEWORK_MANIFEST_FILE += $(DEVICE_PATH)/configs/vintf/framework_manifest.xml
DEVICE_MANIFEST_FILE += \
$(COMMON_PATH)/configs/vintf/manifest_network.xml \
$(COMMON_PATH)/configs/vintf/manifest_phone.xml
endif
$(DEVICE_PATH)/configs/vintf/manifest.xml \
$(DEVICE_PATH)/configs/vintf/network_manifest.xml
DEVICE_MATRIX_FILE := hardware/qcom-caf/common/compatibility_matrix.xml
# WiFi

View File

@@ -1,9 +1,32 @@
# Common device tree for Xiaomi SM6225 devices
Copyright (C) 2024 The LineageOS Project
```
#
# Copyright (C) 2023 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
```
Device configuration for Xiaomi Redmi Note 13 4G/13 4G NFC
=========================================
The Xiaomi Redmi Note 13 4G/13 4G NFC (codenamed _"sapphire/sapphiren"_) is a mid-range smartphone from Xiaomi.
Redmi Note 13 4G was announced and released in January 2024.
## Device specifications
| Device | Xiaomi Redmi Note 13 4G |
| -----------: | :-------------------------------------------------- |
| SoC | Qualcomm SM6225 Snapdragon 685 (6 nm) |
| CPU | 4x2.8 GHz Cortex-A73 & 4x1.9 GHz Cortex-A53 |
| GPU | Adreno 610 |
| Memory | 6GB/8GB RAM (LPDDR4X) |
| Storage | 128GB/256GB UFS 2.2 flash storage |
| Shipped Android version | 13.0 with MIUI 14 |
| Battery | Non-removable Li-Po 5000 mAh |
| Dimensions | 162.3 x 75.6 x 8 mm |
| Display | 1080 x 2400 pixels, 20:9 ratio 6.67" inch |
| Type | AMOLED, 120Hz, 1800 nits (peak) |
| NFC | Yes ( Redmi Note 13 4G NFC ) |
| Rear camera 1 | 108 MP, f/1.8, 24mm (wide), 1/1.67", 0.64µm, PDAF |
| Rear camera 2 | 8 MP, f/2.2, 120˚ (ultrawide) |
| Rear camera 3 | 2 MP, f/2.4, (macro) |
| Front camera | 16 MP, f/2.4, (wide) |
## Device picture
![Xiaomi Redmi Note 13 4G](https://i02.appmifile.com/282_operator_sg/02/01/2024/3ed59552a4950465a43d4f3f9598d8b4.png?f=webp "Xiaomi Redmi Note 13 4G")

1
board-info.txt Normal file
View File

@@ -0,0 +1 @@
require board=bengal|sapphire|sapphiren

View File

@@ -9,3 +9,8 @@ ro.af.client_heap_size_kbyte=7168
# Netflix
ro.netflix.channel=004ee050-1a17-11e9-bb61-6f1da27fb55b
ro.netflix.signup=1
# Radio
persist.vendor.radio.enable_temp_dds=true
ro.vendor.radio.fastdormancy=true
ro.vendor.radio.features_common=3

View File

@@ -47,6 +47,14 @@ ro.nfc.port=I2C
# NTP
persist.backup.ntpServer="0.pool.ntp.org"
# Radio
DEVICE_PROVISIONED=1
persist.vendor.radio.atfwd.start=true
ril.subscription.types=NV,RUIM
rild.libpath=/vendor/lib64/libril-qc-hal-qmi.so
ro.telephony.default_network=33,33
telephony.lteOnCdmaDevice=1
# SdCardFS
persist.sys.fuse.passthrough.enable=true
@@ -64,3 +72,4 @@ persist.vendor.ssr.restart_level=ALL_ENABLE
ro.hardware.wlan.dbs=0
ro.hardware.wlan.mimo=0
ro.hardware.wlan.vendor=qcom
ro.hardware.wlan.chip=wcn3988

View File

@@ -1,6 +1,9 @@
# Dalvik
dalvik.vm.dex2oat64.enabled=true
# DPM
persist.vendor.dpm.feature=11
# GPS
persist.sys.gps.fence=true
@@ -10,3 +13,7 @@ ro.surface_flinger.supports_background_blur=0
# Media
vendor.media.target_variant=_khaje_v0
# Radio
ro.telephony.sim_slots.count=1
telephony.active_modems.max_count=2

View File

@@ -165,6 +165,11 @@ ro.crypto.allow_encrypt_override=true
ro.crypto.metadata_init_delete_all_keys.enabled=true
ro.crypto.volume.filenames_mode=aes-256-cts
# DPM
persist.vendor.dpm.vndr.feature=1
persist.vendor.dpm.vndr.halservice.enable=1
persist.vendor.dpm.vndr.idletimer.mode=default
# DRM
drm.service.enabled=true
@@ -276,6 +281,9 @@ persist.mm.enable.prefetch=true
# Netflix
vendor.netflix.bsp_rev=Q6115-31409-1
# NFC
ro.vendor.se.type=HCE,UICC
# Perf
ro.vendor.extension_library=libqti-perfd-client.so
ro.vendor.perf-hal.ver=2.3
@@ -288,6 +296,22 @@ vendor.power.pasr.enabled=true
# QCOM
persist.vendor.qcomsysd.enabled=1
# Radio
persist.radio.multisim.config=dsds
persist.vendor.data.iwlan.enable=true
persist.vendor.radio.add_power_save=0
persist.vendor.radio.apm_sim_not_pwdn=1
persist.vendor.radio.custom_ecc=1
persist.vendor.radio.data_con_rprt=1
persist.vendor.radio.enableadvancedscan=true
persist.vendor.radio.manual_nw_rej_ct=1
persist.vendor.radio.procedure_bytes=SKIP
persist.vendor.radio.rat_on=combine
persist.vendor.radio.sib16_support=1
persist.vendor.radio.snapshot_enabled=1
persist.vendor.radio.snapshot_timer=5
persist.vendor.rcs.singlereg.feature=1
# Sensors
persist.vendor.sensors.debug.ssc_qmi_debug=true
persist.vendor.sensors.enable.bypass_worker=true

View File

@@ -1,41 +0,0 @@
# DPM
persist.vendor.dpm.feature=11
persist.vendor.dpm.vndr.feature=1
persist.vendor.dpm.vndr.halservice.enable=1
persist.vendor.dpm.vndr.idletimer.mode=default
# IMS
persist.dbg.volte_avail_ovr=1
persist.dbg.vt_avail_ovr=1
persist.dbg.wfc_avail_ovr=1
persist.vendor.ims.no_stapa=1
# NFC
ro.vendor.se.type=HCE,UICC
# Radio
DEVICE_PROVISIONED=1
persist.radio.multisim.config=dsds
persist.vendor.data.iwlan.enable=true
persist.vendor.radio.add_power_save=0
persist.vendor.radio.apm_sim_not_pwdn=1
persist.vendor.radio.atfwd.start=true
persist.vendor.radio.custom_ecc=1
persist.vendor.radio.data_con_rprt=1
persist.vendor.radio.enable_temp_dds=true
persist.vendor.radio.enableadvancedscan=true
persist.vendor.radio.manual_nw_rej_ct=1
persist.vendor.radio.procedure_bytes=SKIP
persist.vendor.radio.rat_on=combine
persist.vendor.radio.sib16_support=1
persist.vendor.radio.snapshot_enabled=1
persist.vendor.radio.snapshot_timer=5
persist.vendor.rcs.singlereg.feature=1
ril.subscription.types=NV,RUIM
rild.libpath=/vendor/lib64/libril-qc-hal-qmi.so
ro.telephony.default_network=33,33
ro.telephony.sim_slots.count=1
ro.vendor.radio.fastdormancy=true
ro.vendor.radio.features_common=3
telephony.active_modems.max_count=2
telephony.lteOnCdmaDevice=1

View File

@@ -0,0 +1,3 @@
sensors.ssc.so
sensors.touch.detect.so
sensors.xiaomi.so

View File

@@ -64,6 +64,71 @@
<fqname>@1.0::IOmx/default</fqname>
<fqname>@1.0::IOmxStore/default</fqname>
</hal>
<hal format="hidl">
<name>com.fingerprints.extension</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IFingerprintEngineering</name>
<instance>default</instance>
</interface>
<interface>
<name>IFingerprintNavigation</name>
<instance>default</instance>
</interface>
<interface>
<name>IFingerprintSensorTest</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IFingerprintEngineering/default</fqname>
<fqname>@1.0::IFingerprintNavigation/default</fqname>
<fqname>@1.0::IFingerprintSensorTest/default</fqname>
</hal>
<hal format="hidl">
<name>com.qualcomm.qti.dpm.api</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IdpmQmi</name>
<instance>dpmQmiService</instance>
</interface>
<fqname>@1.0::IdpmQmi/dpmQmiService</fqname>
</hal>
<hal format="hidl">
<name>com.qualcomm.qti.imscmservice</name>
<transport>hwbinder</transport>
<version>2.2</version>
<interface>
<name>IImsCmService</name>
<instance>qti.ims.connectionmanagerservice</instance>
</interface>
<fqname>@2.2::IImsCmService/qti.ims.connectionmanagerservice</fqname>
</hal>
<hal format="hidl">
<name>com.qualcomm.qti.uceservice</name>
<transport>hwbinder</transport>
<version>2.3</version>
<interface>
<name>IUceService</name>
<instance>com.qualcomm.qti.uceservice</instance>
</interface>
<fqname>@2.3::IUceService/com.qualcomm.qti.uceservice</fqname>
</hal>
<hal format="hidl">
<name>vendor.goodix.hardware.biometrics.fingerprint</name>
<transport>hwbinder</transport>
<version>2.1</version>
<interface>
<name>IGoodixFingerprintDaemon</name>
<instance>default</instance>
</interface>
<interface>
<name>IGoodixFingerprintDaemonExt</name>
<instance>default</instance>
</interface>
<fqname>@2.1::IGoodixFingerprintDaemon/default</fqname>
<fqname>@2.1::IGoodixFingerprintDaemonExt/default</fqname>
</hal>
<hal format="hidl">
<name>vendor.qti.data.factory</name>
<transport>hwbinder</transport>
@@ -163,6 +228,16 @@
</interface>
<fqname>@1.0::ILinkLatency/default</fqname>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.dpmservice</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IDpmService</name>
<instance>DpmService</instance>
</interface>
<fqname>@1.1::IDpmService/DpmService</fqname>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.dsp</name>
<transport>hwbinder</transport>
@@ -173,6 +248,16 @@
</interface>
<fqname>@1.0::IDspService/dspservice</fqname>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.embmssl</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IEmbms</name>
<instance>embmsslServer0</instance>
</interface>
<fqname>@1.1::IEmbms/embmsslServer0</fqname>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.fm</name>
<transport>hwbinder</transport>
@@ -248,6 +333,16 @@
</interface>
<fqname>@1.0::ISensorsCalibrate/default</fqname>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.soter</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>ISoter</name>
<instance>default</instance>
</interface>
<fqname>@1.0::ISoter/default</fqname>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.tui_comm</name>
<transport>hwbinder</transport>
@@ -258,6 +353,38 @@
</interface>
<fqname>@1.0::ITuiComm/default</fqname>
</hal>
<hal format="hidl">
<name>vendor.qti.ims.callinfo</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IService</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IService/default</fqname>
</hal>
<hal format="hidl">
<name>vendor.qti.ims.factory</name>
<transport>hwbinder</transport>
<version>1.1</version>
<version>2.2</version>
<interface>
<name>IImsFactory</name>
<instance>default</instance>
</interface>
<fqname>@1.1::IImsFactory/default</fqname>
<fqname>@2.2::IImsFactory/default</fqname>
</hal>
<hal format="hidl">
<name>vendor.qti.imsrtpservice</name>
<transport>hwbinder</transport>
<version>3.1</version>
<interface>
<name>IRTPService</name>
<instance>imsrtpservice</instance>
</interface>
<fqname>@3.1::IRTPService/imsrtpservice</fqname>
</hal>
<hal format="hidl">
<name>vendor.qti.qspmhal</name>
<transport>hwbinder</transport>
@@ -278,6 +405,16 @@
</interface>
<fqname>@1.0::IDisplayFeature/default</fqname>
</hal>
<hal format="hidl">
<name>vendor.xiaomi.hardware.fingerprintextension</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IXiaomiFingerprint</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IXiaomiFingerprint/default</fqname>
</hal>
<hal format="hidl">
<name>vendor.xiaomi.hardware.fx.tunnel</name>
<transport>hwbinder</transport>
@@ -297,4 +434,22 @@
</interface>
<fqname>@1.0::ITouchFeature/default</fqname>
</hal>
<!-- < NFC > -->
<hal format="hidl">
<name>android.hardware.nfc</name>
<transport>hwbinder</transport>
<version>1.2</version>
<interface>
<name>INfc</name>
<instance>default</instance>
</interface>
<fqname>@1.2::INfc/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.secure_element</name>
<transport>hwbinder</transport>
<fqname>@1.2::ISecureElement/SIM1</fqname>
<fqname>@1.2::ISecureElement/SIM2</fqname>
<fqname>@1.2::ISecureElement/eSE1</fqname>
</hal>
</manifest>

View File

@@ -1,156 +0,0 @@
<manifest version="5.0" type="device" target-level="7">
<hal format="hidl">
<name>com.fingerprints.extension</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IFingerprintEngineering</name>
<instance>default</instance>
</interface>
<interface>
<name>IFingerprintNavigation</name>
<instance>default</instance>
</interface>
<interface>
<name>IFingerprintSensorTest</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IFingerprintEngineering/default</fqname>
<fqname>@1.0::IFingerprintNavigation/default</fqname>
<fqname>@1.0::IFingerprintSensorTest/default</fqname>
</hal>
<hal format="hidl">
<name>com.qualcomm.qti.dpm.api</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IdpmQmi</name>
<instance>dpmQmiService</instance>
</interface>
<fqname>@1.0::IdpmQmi/dpmQmiService</fqname>
</hal>
<hal format="hidl">
<name>com.qualcomm.qti.imscmservice</name>
<transport>hwbinder</transport>
<version>2.2</version>
<interface>
<name>IImsCmService</name>
<instance>qti.ims.connectionmanagerservice</instance>
</interface>
<fqname>@2.2::IImsCmService/qti.ims.connectionmanagerservice</fqname>
</hal>
<hal format="hidl">
<name>com.qualcomm.qti.uceservice</name>
<transport>hwbinder</transport>
<version>2.3</version>
<interface>
<name>IUceService</name>
<instance>com.qualcomm.qti.uceservice</instance>
</interface>
<fqname>@2.3::IUceService/com.qualcomm.qti.uceservice</fqname>
</hal>
<hal format="hidl">
<name>vendor.goodix.hardware.biometrics.fingerprint</name>
<transport>hwbinder</transport>
<version>2.1</version>
<interface>
<name>IGoodixFingerprintDaemon</name>
<instance>default</instance>
</interface>
<interface>
<name>IGoodixFingerprintDaemonExt</name>
<instance>default</instance>
</interface>
<fqname>@2.1::IGoodixFingerprintDaemon/default</fqname>
<fqname>@2.1::IGoodixFingerprintDaemonExt/default</fqname>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.dpmservice</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IDpmService</name>
<instance>DpmService</instance>
</interface>
<fqname>@1.1::IDpmService/DpmService</fqname>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.embmssl</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IEmbms</name>
<instance>embmsslServer0</instance>
</interface>
<fqname>@1.1::IEmbms/embmsslServer0</fqname>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.soter</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>ISoter</name>
<instance>default</instance>
</interface>
<fqname>@1.0::ISoter/default</fqname>
</hal>m
<hal format="hidl">
<name>vendor.qti.ims.callinfo</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IService</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IService/default</fqname>
</hal>
<hal format="hidl">
<name>vendor.qti.ims.factory</name>
<transport>hwbinder</transport>
<version>1.1</version>
<version>2.2</version>
<interface>
<name>IImsFactory</name>
<instance>default</instance>
</interface>
<fqname>@1.1::IImsFactory/default</fqname>
<fqname>@2.2::IImsFactory/default</fqname>
</hal>
<hal format="hidl">
<name>vendor.qti.imsrtpservice</name>
<transport>hwbinder</transport>
<version>3.1</version>
<interface>
<name>IRTPService</name>
<instance>imsrtpservice</instance>
</interface>
<fqname>@3.1::IRTPService/imsrtpservice</fqname>
</hal>
<hal format="hidl">
<name>vendor.xiaomi.hardware.fingerprintextension</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IXiaomiFingerprint</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IXiaomiFingerprint/default</fqname>
</hal>
<!-- < NFC > -->
<hal format="hidl">
<name>android.hardware.nfc</name>
<transport>hwbinder</transport>
<version>1.2</version>
<interface>
<name>INfc</name>
<instance>default</instance>
</interface>
<fqname>@1.2::INfc/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.secure_element</name>
<transport>hwbinder</transport>
<fqname>@1.2::ISecureElement/SIM1</fqname>
<fqname>@1.2::ISecureElement/SIM2</fqname>
</hal>
</manifest>

View File

@@ -1,5 +1,5 @@
#
# Copyright (C) 2023 The LineageOS Project
# Copyright (C) 2024 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
@@ -16,8 +16,12 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota/launch_with_ven
# Setup dalvik vm configs
$(call inherit-product, frameworks/native/build/phone-xhdpi-6144-dalvik-heap.mk)
# Inherit from the proprietary files makefile.
$(call inherit-product, vendor/xiaomi/sm6225-common/sm6225-common-vendor.mk)
# Inherit from the proprietary version
$(call inherit-product, vendor/xiaomi/sapphire/sapphire-vendor.mk)
# AAPT
PRODUCT_AAPT_CONFIG := normal
PRODUCT_AAPT_PREF_CONFIG := xxhdpi
# A/B
AB_OTA_POSTINSTALL_CONFIG += \
@@ -84,6 +88,10 @@ PRODUCT_COPY_FILES += \
PRODUCT_PACKAGES += \
android.hardware.authsecret@1.0.vendor
# Boot animation
TARGET_SCREEN_HEIGHT := 2400
TARGET_SCREEN_WIDTH := 1080
# Bluetooth
PRODUCT_PACKAGES += \
android.hardware.bluetooth.audio-impl \
@@ -203,25 +211,20 @@ PRODUCT_PACKAGES += \
fastbootd
# Fingerprint
ifneq ($(TARGET_IS_TABLET),true)
PRODUCT_PACKAGES += \
android.hardware.biometrics.fingerprint@2.3-service.xiaomi
ifeq ($(TARGET_HAS_UDFPS),true)
PRODUCT_PACKAGES += \
libudfpshandler
endif
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml
endif
# Gatekeeper
PRODUCT_PACKAGES += \
android.hardware.gatekeeper@1.0.vendor
# GPS
ifneq ($(TARGET_IS_TABLET),true)
PRODUCT_PACKAGES += \
android.hardware.gnss.measurement_corrections@1.1.vendor \
android.hardware.gnss.visibility_control@1.0.vendor \
@@ -230,7 +233,6 @@ PRODUCT_PACKAGES += \
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml
endif
# Graphics
PRODUCT_COPY_FILES += \
@@ -260,11 +262,9 @@ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/permissions/privapp-permissions-hotword.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/privapp-permissions-hotword.xml
# Input
ifneq ($(TARGET_IS_TABLET),true)
PRODUCT_COPY_FILES += \
$(call find-copy-subdir-files,*,$(LOCAL_PATH)/configs/idc/,$(TARGET_COPY_OUT_VENDOR)/usr/idc) \
$(call find-copy-subdir-files,*,$(LOCAL_PATH)/configs/keylayout/,$(TARGET_COPY_OUT_VENDOR)/usr/keylayout)
endif
# IFAA
ifeq ($(TARGET_HAS_UDFPS),true)
@@ -279,13 +279,11 @@ PRODUCT_PACKAGES += \
IPACM_Filter_cfg.xml
# IR
ifneq ($(TARGET_IS_TABLET),true)
PRODUCT_PACKAGES += \
android.hardware.ir-V1-ndk.vendor
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.consumerir.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.consumerir.xml
endif
# Init scripts
PRODUCT_PACKAGES += \
@@ -392,7 +390,6 @@ PRODUCT_PACKAGES += \
libnetutils.vendor
# NFC
ifneq ($(TARGET_IS_TABLET),true)
PRODUCT_PACKAGES += \
android.hardware.nfc@1.2-service.st \
android.hardware.secure_element@1.2.vendor \
@@ -405,7 +402,6 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.nfc.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.uicc.xml \
frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml \
frameworks/native/data/etc/android.hardware.se.omapi.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.uicc.xml
endif
# OMX
PRODUCT_PACKAGES += \
@@ -416,19 +412,19 @@ PRODUCT_PACKAGES += \
PRODUCT_ENFORCE_RRO_TARGETS := *
PRODUCT_PACKAGES += \
CarrierConfigResCommon \
FrameworksResCommon \
FrameworksResTarget \
SystemUIResCommon \
WifiResCommon \
WifiResTarget
ifneq ($(TARGET_IS_TABLET),true)
PRODUCT_PACKAGES += \
CarrierConfigResCommon \
FrameworksResPhone \
TelecommResCommon \
TelephonyResCommon
endif
TelephonyResCommon \
WifiResCommon \
WifiResTarget \
FrameworksResSapphire \
SettingsProviderResSapphire \
SettingsResSapphire \
SystemUIResSapphire \
WifiResSapphire
# Overlays Lineage
DEVICE_PACKAGE_OVERLAYS += \
@@ -473,7 +469,6 @@ PRODUCT_PACKAGES += \
vendor.qti.hardware.servicetracker@1.2.vendor
# RIL
ifneq ($(TARGET_IS_TABLET),true)
PRODUCT_PACKAGES += \
android.hardware.radio@1.6.vendor \
android.hardware.radio.config@1.3.vendor \
@@ -485,15 +480,19 @@ PRODUCT_PACKAGES += \
android.hardware.radio.modem-V1-ndk.vendor \
android.hardware.radio.network-V1-ndk.vendor \
android.hardware.radio.sim-V1-ndk.vendor \
android.hardware.radio.voice-V1-ndk.vendor
endif
PRODUCT_PACKAGES += \
android.hardware.radio.voice-V1-ndk.vendor \
libprotobuf-cpp-full-3.9.1-vendorcompat \
libprotobuf-cpp-lite-3.9.1-vendorcompat \
librmnetctl \
libsqlite.vendor
# Sensors
PRODUCT_PACKAGES += \
sensors.xiaomi
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/sensors/hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/hals.conf
# Sensors
PRODUCT_PACKAGES += \
android.frameworks.sensorservice@1.0.vendor \
@@ -520,7 +519,6 @@ PRODUCT_SOONG_NAMESPACES += \
hardware/xiaomi
# Telephony
ifneq ($(TARGET_IS_TABLET),true)
PRODUCT_PACKAGES += \
extphonelib \
extphonelib-product \
@@ -546,7 +544,6 @@ PRODUCT_COPY_FILES += \
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.software.sip.voip.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.sip.voip.xml
endif
# Thermal
PRODUCT_PACKAGES += \
@@ -589,13 +586,11 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.software.verified_boot.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.verified_boot.xml
# Vibrator
ifneq ($(TARGET_IS_TABLET),true)
PRODUCT_PACKAGES += \
vendor.qti.hardware.vibrator.service
PRODUCT_COPY_FILES += \
vendor/qcom/opensource/vibrator/excluded-input-devices.xml:$(TARGET_COPY_OUT_VENDOR)/etc/excluded-input-devices.xml
endif
# VNDK
PRODUCT_COPY_FILES += \

View File

@@ -8,6 +8,9 @@
set -e
DEVICE=sapphire
VENDOR=xiaomi
# Load extract_utils and do some sanity checks
MY_DIR="${BASH_SOURCE%/*}"
if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi
@@ -24,19 +27,11 @@ source "${HELPER}"
# Default to sanitizing the vendor folder before extraction
CLEAN_VENDOR=true
ONLY_COMMON=
ONLY_TARGET=
KANG=
SECTION=
while [ "${#}" -gt 0 ]; do
case "${1}" in
--only-common )
ONLY_COMMON=true
;;
--only-target )
ONLY_TARGET=true
;;
-n | --no-cleanup )
CLEAN_VENDOR=false
;;
@@ -72,20 +67,6 @@ function blob_fixup() {
esac
}
if [ -z "${ONLY_TARGET}" ]; then
# Initialize the helper for common device
setup_vendor "${DEVICE_COMMON}" "${VENDOR}" "${ANDROID_ROOT}" true "${CLEAN_VENDOR}"
extract "${MY_DIR}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}"
extract "${MY_DIR}/proprietary-files-phone.txt" "${SRC}" "${KANG}" --section "${SECTION}"
fi
if [ -z "${ONLY_COMMON}" ] && [ -s "${MY_DIR}/../${DEVICE}/proprietary-files.txt" ]; then
# Reinitialize the helper for device
source "${MY_DIR}/../${DEVICE}/extract-files.sh"
setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" false "${CLEAN_VENDOR}"
extract "${MY_DIR}/../${DEVICE}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}"
fi
extract "${MY_DIR}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}"
"${MY_DIR}/setup-makefiles.sh"

15
init/Android.bp Normal file
View File

@@ -0,0 +1,15 @@
//
// Copyright (C) 2023 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
cc_library_static {
name: "init_sapphire",
recovery_available: true,
shared_libs: ["libbase"],
srcs: ["init_sapphire.cpp"],
include_dirs: [
"system/core/init",
"system/libbase/include"
]
}

140
init/init_sapphire.cpp Normal file
View File

@@ -0,0 +1,140 @@
/*
* Copyright (C) 2023 Paranoid Android
*
* 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 <cstdlib>
#include <fstream>
#include <string.h>
#include <unistd.h>
#include <vector>
#include <android-base/properties.h>
#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
#include <sys/_system_properties.h>
#include <sys/sysinfo.h>
#include "property_service.h"
#include "vendor_init.h"
using android::base::GetProperty;
using std::string;
std::vector<std::string> ro_props_default_source_order = {
"",
"odm.",
"product.",
"system.",
"system_dlkm.",
"system_ext.",
"vendor.",
"vendor_dlkm.",
};
bool IsRecoveryMode() {
return access("/system/bin/recovery", F_OK) == 0;
}
void property_override(string prop, string value)
{
auto pi = (prop_info*) __system_property_find(prop.c_str());
if (pi != nullptr)
__system_property_update(pi, value.c_str(), value.size());
else
__system_property_add(prop.c_str(), prop.size(), value.c_str(), value.size());
}
void load_redmi_sapphire() {
property_override("bluetooth.device.default_name", "Redmi Note 13");
property_override("ro.product.brand", "Redmi");
property_override("ro.product.device", "sapphire");
property_override("ro.product.manufacturer", "Xiaomi");
property_override("ro.product.marketname", "Redmi Note 13");
property_override("ro.product.model", "23129RAA4G");
property_override("ro.product.mod_device", "sapphire_global");
property_override("ro.product.name", "sapphire_global");
property_override("vendor.usb.product_string", "Redmi Note 13");
}
void load_redmi_sapphiren() {
property_override("bluetooth.device.default_name", "Redmi Note 13 NFC");
property_override("ro.product.brand", "Redmi");
property_override("ro.product.device", "sapphiren");
property_override("ro.product.manufacturer", "Xiaomi");
property_override("ro.product.marketname", "Redmi Note 13 NFC");
property_override("ro.product.model", "23124RA7EO");
property_override("ro.product.mod_device", "sapphiren_global");
property_override("ro.product.name", "sapphiren_global");
property_override("vendor.usb.product_string", "Redmi Note 13 NFC");
}
void vendor_load_properties() {
std::string hwname = GetProperty("ro.boot.hwname", "");
if (access("/system/bin/recovery", F_OK) != 0) {
if (hwname == "sapphire") {
load_redmi_sapphire();
} else if (hwname == "sapphiren") {
load_redmi_sapphiren();
}
}
// Override first api level for safetynet
if (!IsRecoveryMode()) {
property_override("ro.product.first_api_level", "32");
}
// Set hardware revision
property_override("ro.boot.hardware.revision", GetProperty("ro.boot.hwversion", "").c_str());
// Set dalvik heap configuration
std::string heapstartsize, heapgrowthlimit, heapsize, heapminfree,
heapmaxfree, heaptargetutilization;
struct sysinfo sys;
sysinfo(&sys);
if (sys.totalram > 5072ull * 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 > 3072ull * 1024 * 1024) {
// from - phone-xhdpi-4096-dalvik-heap.mk
heapstartsize = "8m";
heapgrowthlimit = "192m";
heapsize = "512m";
heaptargetutilization = "0.6";
heapminfree = "8m";
heapmaxfree = "16m";
} else {
// from - phone-xhdpi-2048-dalvik-heap.mk
heapstartsize = "8m";
heapgrowthlimit = "192m";
heapsize = "512m";
heaptargetutilization = "0.75";
heapminfree = "512k";
heapmaxfree = "8m";
}
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);
}

27
lineage_sapphire.mk Normal file
View File

@@ -0,0 +1,27 @@
#
# Copyright (C) 2024 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
# Inherit from those products. Most specific first.
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
# Inherit from sapphire device
$(call inherit-product, device/xiaomi/sapphire/device.mk)
# Inherit some common Lineage stuff.
$(call inherit-product, vendor/lineage/config/common_full_phone.mk)
# Device configs
TARGET_BOOT_ANIMATION_RES = 1080
TARGET_HAS_UDFPS := true
PRODUCT_NAME := lineage_sapphire
PRODUCT_DEVICE := sapphire
PRODUCT_MANUFACTURER := Xiaomi
PRODUCT_BRAND := Redmi
PRODUCT_MODEL := Redmi Note 13
PRODUCT_GMS_CLIENTID_BASE := android-xiaomi

View File

@@ -5,6 +5,33 @@
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- NOTE: The telephony module is no longer reading the configuration below for available
APN types. The set of APN types and relevant settings are specified within the telephony
module and are non-configurable. Whether or not data connectivity over a cellular network
is available at all is controlled by the flag: config_moble_data_capable. -->
<string-array name="networkAttributes" translatable="false">
<item>wifi,1,1,1,-1,true</item>
<item>mobile,0,0,0,-1,true</item>
<item>mobile_mms,2,0,4,60000,true</item>
<item>mobile_supl,3,0,2,60000,true</item>
<item>mobile_dun,4,0,2,60000,true</item>
<item>mobile_hipri,5,0,3,60000,true</item>
<item>mobile_fota,10,0,2,60000,true</item>
<item>mobile_ims,11,0,2,60000,true</item>
<item>mobile_cbs,12,0,2,60000,true</item>
<item>bluetooth,7,7,2,-1,true</item>
<item>mobile_emergency,15,0,5,-1,true</item>
<item>ethernet,9,9,9,-1,true</item>
</string-array>
<!-- An Array of "[ConnectivityManager connectionType],
[# simultaneous connection types]" -->
<string-array name="radioAttributes" translatable="false">
<item>1,1</item>
<item>0,1</item>
<item>7,1</item>
</string-array>
<!-- This setting is deprecated, please use
com.android.networkstack.tethering.R.array.config_tether_usb_regexs instead. -->
<string-array name="config_tether_usb_regexs" translatable="false">
@@ -117,6 +144,15 @@
that can be set by the user. -->
<integer name="config_screenBrightnessDoze">17</integer>
<!-- The restoring is handled by modem if it is true-->
<bool name="skip_restoring_network_selection" translatable="false">true</bool>
<!-- MMS user agent string -->
<string name="config_mms_user_agent" translatable="false">Android-Mms/2.0</string>
<!-- MMS user agent prolfile url -->
<string name="config_mms_user_agent_profile_url" translatable="false">http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
<!-- Whether a software navigation bar should be shown. NOTE: in the future this may be
autodetected from the Configuration. -->
<bool name="config_showNavigationBar">true</bool>
@@ -155,6 +191,9 @@
-->
<bool name="config_powerDecoupleInteractiveModeFromDisplay">false</bool>
<!-- Set to true to add links to Cell Broadcast app from Settings and MMS app. -->
<bool name="config_cellBroadcastAppLinks">true</bool>
<!-- Maximum number of supported users -->
<integer name="config_multiuserMaximumUsers">4</integer>
@@ -166,6 +205,52 @@
players. -->
<integer name="config_safe_media_volume_index">100</integer>
<!-- Configure mobile tcp buffer sizes in the form:
rat-name:rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max
If no value is found for the rat-name in use, the system default will be applied.
This is deprecated. Please use config_mobile_tcp_buffers for rat-based TCP buffers sizes or
config_tcp_buffers for rat-independent TCP buffer sizes.
-->
<string-array name="config_mobile_tcp_buffers">
<item>5gnr:2097152,6291456,16777216,512000,2097152,8388608</item>
<item>lte:2097152,4194304,8388608,262144,524288,1048576</item>
<item>lte_ca:4096,6291456,12582912,4096,1048576,2097152</item>
<item>umts:4094,87380,1220608,4096,16384,1220608</item>
<item>hspa:4094,87380,1220608,4096,16384,1220608</item>
<item>hsupa:4094,87380,1220608,4096,16384,1220608</item>
<item>hsdpa:4094,87380,1220608,4096,16384,1220608</item>
<item>hspap:4094,87380,1220608,4096,16384,1220608</item>
<item>edge:4093,26280,35040,4096,16384,35040</item>
<item>gprs:4092,8760,11680,4096,8760,11680</item>
<item>evdo:4094,87380,524288,4096,16384,262144</item>
</string-array>
<!-- Configure tcp buffer sizes per network type in the form:
network-type:rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max
The network-type must be a valid DataConfigNetworkType value. If no value is found for the
network-type in use, config_tcp_buffers will be used instead.
-->
<string-array name="config_network_type_tcp_buffers">
<item>NR_SA_MMWAVE:2097152,6291456,16777216,512000,2097152,8388608</item>
<item>NR_SA:2097152,6291456,16777216,512000,2097152,8388608</item>
<item>NR_NSA_MMWAVE:2097152,6291456,16777216,512000,2097152,8388608</item>
<item>NR_NSA:2097152,6291456,16777216,512000,2097152,8388608</item>
<item>LTE:2097152,4194304,8388608,262144,524288,1048576</item>
<item>LTE_CA:4096,6291456,12582912,4096,1048576,2097152</item>
<item>UMTS:4094,87380,1220608,4096,16384,1220608</item>
<item>HSPA:4094,87380,1220608,4096,16384,1220608</item>
<item>HSUPA:4094,87380,1220608,4096,16384,1220608</item>
<item>HSDPA:4094,87380,1220608,4096,16384,1220608</item>
<item>HSPA+:4094,87380,1220608,4096,16384,1220608</item>
<item>EDGE:4093,26280,35040,4096,16384,35040</item>
<item>GPRS:4092,8760,11680,4096,8760,11680</item>
<item>EvDo_0:4094,87380,524288,4096,16384,262144</item>
<item>EvDo_A:4094,87380,524288,4096,16384,262144</item>
<item>EvDo_B:4094,87380,524288,4096,16384,262144</item>
</string-array>
<!-- Set to true if the wifi display supports compositing content stored
in gralloc protected buffers. For this to be true, there must exist
a protected hardware path for surface flinger to composite and send
@@ -183,12 +268,46 @@
<!-- Whether camera shutter sound is forced or not (country specific). -->
<bool name="config_camera_sound_forced">false</bool>
<!-- Flag indicating if the speed up audio on mt call code should be executed -->
<bool name="config_speed_up_audio_on_mt_calls">true</bool>
<!-- set to false if we need to show user confirmation
when alpha identifier is not provided by the UICC -->
<bool name="config_stkNoAlphaUsrCnf">false</bool>
<!-- Flag indicating which package name can access the persistent data partition -->
<string name="config_persistentDataPackageName" translatable="false">com.google.android.gms</string>
<!-- Define optional package verifier name -->
<string name="config_optionalPackageVerifierName" translatable="false">seemp.service</string>
<!-- Flag specifying whether VoLTE is available on device -->
<bool name="config_device_volte_available">true</bool>
<!-- Flag specifying whether VoLTE should be available for carrier: independent of
carrier provisioning. If false: hard disabled. If true: then depends on carrier
provisioning, availability etc -->
<bool name="config_carrier_volte_available">true</bool>
<!-- Flag specifying whether VT is available on device -->
<bool name="config_device_vt_available">true</bool>
<!-- Flag specifying whether WFC over IMS is available on device -->
<bool name="config_device_wfc_ims_available">true</bool>
<!-- Config determines whether to update phone object when voice registration
state changes. Voice radio tech change will always trigger an update of
phone object irrespective of this config -->
<bool name="config_switch_phone_on_voice_reg_state_change">false</bool>
<!--The default "usage setting" indicating that the device is either a voice-centric
device (1) or a data-centric device (2). A voice-centric device will require that any cellular
service that it uses provides access to voice capability, and a data-centric device will
likewise require that the network provides access to data services. These settings are
sent to the cellular modem and control the behavior in accordance with 3gpp TS 24.301 sec 4.3
(and equivalent functionality in other generations of cellular).-->
<integer name="config_default_cellular_usage_setting">-1</integer>
<!-- Whether the Unprocessed audio source supports the required frequency range and level -->
<bool name="config_supportAudioSourceUnprocessed">false</bool>
@@ -275,6 +394,38 @@
meanings. -->
<integer name="config_defaultRingVibrationIntensity">3</integer>
<!-- Whether the device enable the standalone (SA) mode of 5G NR.-->
<bool name="config_telephony5gStandalone">true</bool>
<!-- Whether the device enable the non-standalone (NSA) mode of 5G NR.-->
<bool name="config_telephony5gNonStandalone">true</bool>
<!-- Whether to select voice/data/sms preference without user confirmation -->
<bool name="config_voice_data_sms_auto_fallback">true</bool>
<!-- Whether to adopt the predefined handover policies for IWLAN.
{@see CarrierConfigManager#KEY_IWLAN_HANDOVER_POLICY_STRING_ARRAY}
-->
<bool name="config_enable_iwlan_handover_policy">false</bool>
<!-- IWLAN data service package name to bind to by default. If none is specified in an overlay,
an empty string is passed in -->
<string name="config_wlan_data_service_package" translatable="false">vendor.qti.iwlan</string>
<!-- IWLAN network service package name to bind to by default. If none is specified in an
overlay, an empty string is passed in -->
<string name="config_wlan_network_service_package" translatable="false">vendor.qti.iwlan</string>
<!-- Telephony qualified networks service package name to bind to by default. -->
<string name="config_qualified_networks_service_package" translatable="false">vendor.qti.iwlan</string>
<!-- Whether enhanced IWLAN handover check is enabled. If enabled, telephony frameworks
will not perform handover if the target transport is out of service, or VoPS not
supported. The network will be torn down on the source transport, and will be
re-established on the target transport when condition is allowed for bringing up a
new network. -->
<bool name="config_enhanced_iwlan_handover_check">false</bool>
<!-- If this is true, the screen will fade off. -->
<bool name="config_animateScreenLights">false</bool>

View File

@@ -1,162 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2023 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- NOTE: The telephony module is no longer reading the configuration below for available
APN types. The set of APN types and relevant settings are specified within the telephony
module and are non-configurable. Whether or not data connectivity over a cellular network
is available at all is controlled by the flag: config_moble_data_capable. -->
<string-array name="networkAttributes" translatable="false">
<item>wifi,1,1,1,-1,true</item>
<item>mobile,0,0,0,-1,true</item>
<item>mobile_mms,2,0,4,60000,true</item>
<item>mobile_supl,3,0,2,60000,true</item>
<item>mobile_dun,4,0,2,60000,true</item>
<item>mobile_hipri,5,0,3,60000,true</item>
<item>mobile_fota,10,0,2,60000,true</item>
<item>mobile_ims,11,0,2,60000,true</item>
<item>mobile_cbs,12,0,2,60000,true</item>
<item>bluetooth,7,7,2,-1,true</item>
<item>mobile_emergency,15,0,5,-1,true</item>
<item>ethernet,9,9,9,-1,true</item>
</string-array>
<!-- An Array of "[ConnectivityManager connectionType],
[# simultaneous connection types]" -->
<string-array name="radioAttributes" translatable="false">
<item>1,1</item>
<item>0,1</item>
<item>7,1</item>
</string-array>
<!-- The restoring is handled by modem if it is true-->
<bool name="skip_restoring_network_selection" translatable="false">true</bool>
<!-- MMS user agent string -->
<string name="config_mms_user_agent" translatable="false">Android-Mms/2.0</string>
<!-- MMS user agent prolfile url -->
<string name="config_mms_user_agent_profile_url" translatable="false">http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
<!-- Set to true to add links to Cell Broadcast app from Settings and MMS app. -->
<bool name="config_cellBroadcastAppLinks">true</bool>
<!-- Configure mobile tcp buffer sizes in the form:
rat-name:rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max
If no value is found for the rat-name in use, the system default will be applied.
This is deprecated. Please use config_mobile_tcp_buffers for rat-based TCP buffers sizes or
config_tcp_buffers for rat-independent TCP buffer sizes.
-->
<string-array name="config_mobile_tcp_buffers">
<item>5gnr:2097152,6291456,16777216,512000,2097152,8388608</item>
<item>lte:2097152,4194304,8388608,262144,524288,1048576</item>
<item>lte_ca:4096,6291456,12582912,4096,1048576,2097152</item>
<item>umts:4094,87380,1220608,4096,16384,1220608</item>
<item>hspa:4094,87380,1220608,4096,16384,1220608</item>
<item>hsupa:4094,87380,1220608,4096,16384,1220608</item>
<item>hsdpa:4094,87380,1220608,4096,16384,1220608</item>
<item>hspap:4094,87380,1220608,4096,16384,1220608</item>
<item>edge:4093,26280,35040,4096,16384,35040</item>
<item>gprs:4092,8760,11680,4096,8760,11680</item>
<item>evdo:4094,87380,524288,4096,16384,262144</item>
</string-array>
<!-- Configure tcp buffer sizes per network type in the form:
network-type:rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max
The network-type must be a valid DataConfigNetworkType value. If no value is found for the
network-type in use, config_tcp_buffers will be used instead.
-->
<string-array name="config_network_type_tcp_buffers">
<item>NR_SA_MMWAVE:2097152,6291456,16777216,512000,2097152,8388608</item>
<item>NR_SA:2097152,6291456,16777216,512000,2097152,8388608</item>
<item>NR_NSA_MMWAVE:2097152,6291456,16777216,512000,2097152,8388608</item>
<item>NR_NSA:2097152,6291456,16777216,512000,2097152,8388608</item>
<item>LTE:2097152,4194304,8388608,262144,524288,1048576</item>
<item>LTE_CA:4096,6291456,12582912,4096,1048576,2097152</item>
<item>UMTS:4094,87380,1220608,4096,16384,1220608</item>
<item>HSPA:4094,87380,1220608,4096,16384,1220608</item>
<item>HSUPA:4094,87380,1220608,4096,16384,1220608</item>
<item>HSDPA:4094,87380,1220608,4096,16384,1220608</item>
<item>HSPA+:4094,87380,1220608,4096,16384,1220608</item>
<item>EDGE:4093,26280,35040,4096,16384,35040</item>
<item>GPRS:4092,8760,11680,4096,8760,11680</item>
<item>EvDo_0:4094,87380,524288,4096,16384,262144</item>
<item>EvDo_A:4094,87380,524288,4096,16384,262144</item>
<item>EvDo_B:4094,87380,524288,4096,16384,262144</item>
</string-array>
<!-- Flag indicating if the speed up audio on mt call code should be executed -->
<bool name="config_speed_up_audio_on_mt_calls">true</bool>
<!-- set to false if we need to show user confirmation
when alpha identifier is not provided by the UICC -->
<bool name="config_stkNoAlphaUsrCnf">false</bool>
<!-- Define optional package verifier name -->
<string name="config_optionalPackageVerifierName" translatable="false">seemp.service</string>
<!-- Flag specifying whether VoLTE is available on device -->
<bool name="config_device_volte_available">true</bool>
<!-- Flag specifying whether VoLTE should be available for carrier: independent of
carrier provisioning. If false: hard disabled. If true: then depends on carrier
provisioning, availability etc -->
<bool name="config_carrier_volte_available">true</bool>
<!-- Flag specifying whether VT is available on device -->
<bool name="config_device_vt_available">true</bool>
<!-- Flag specifying whether WFC over IMS is available on device -->
<bool name="config_device_wfc_ims_available">true</bool>
<!-- Config determines whether to update phone object when voice registration
state changes. Voice radio tech change will always trigger an update of
phone object irrespective of this config -->
<bool name="config_switch_phone_on_voice_reg_state_change">false</bool>
<!--The default "usage setting" indicating that the device is either a voice-centric
device (1) or a data-centric device (2). A voice-centric device will require that any cellular
service that it uses provides access to voice capability, and a data-centric device will
likewise require that the network provides access to data services. These settings are
sent to the cellular modem and control the behavior in accordance with 3gpp TS 24.301 sec 4.3
(and equivalent functionality in other generations of cellular).-->
<integer name="config_default_cellular_usage_setting">-1</integer>
<!-- Whether the device enable the standalone (SA) mode of 5G NR.-->
<bool name="config_telephony5gStandalone">true</bool>
<!-- Whether the device enable the non-standalone (NSA) mode of 5G NR.-->
<bool name="config_telephony5gNonStandalone">true</bool>
<!-- Whether to select voice/data/sms preference without user confirmation -->
<bool name="config_voice_data_sms_auto_fallback">true</bool>
<!-- Whether to adopt the predefined handover policies for IWLAN.
{@see CarrierConfigManager#KEY_IWLAN_HANDOVER_POLICY_STRING_ARRAY}
-->
<bool name="config_enable_iwlan_handover_policy">false</bool>
<!-- IWLAN data service package name to bind to by default. If none is specified in an overlay,
an empty string is passed in -->
<string name="config_wlan_data_service_package" translatable="false">vendor.qti.iwlan</string>
<!-- IWLAN network service package name to bind to by default. If none is specified in an
overlay, an empty string is passed in -->
<string name="config_wlan_network_service_package" translatable="false">vendor.qti.iwlan</string>
<!-- Telephony qualified networks service package name to bind to by default. -->
<string name="config_qualified_networks_service_package" translatable="false">vendor.qti.iwlan</string>
<!-- Whether enhanced IWLAN handover check is enabled. If enabled, telephony frameworks
will not perform handover if the target transport is out of service, or VoPS not
supported. The network will be torn down on the source transport, and will be
re-established on the target transport when condition is allowed for bringing up a
new network. -->
<bool name="config_enhanced_iwlan_handover_check">false</bool>
</resources>

View File

@@ -0,0 +1,10 @@
//
// Copyright (C) 2023 The LineageOS Project
//
// SPDX-License-Identifier: Apache-2.0
//
runtime_resource_overlay {
name: "FrameworksResSapphire",
device_specific: true,
}

View File

@@ -3,10 +3,10 @@
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.overlay.phone.common">
package="android.overlay.xiaomi_sapphire">
<overlay
android:isStatic="true"
android:priority="100"
android:priority="700"
android:targetPackage="android" />
</manifest>

View File

@@ -0,0 +1,412 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2023 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<integer name="config_udfps_illumination_transition_ms">50</integer>
<!-- Minimum screen brightness setting allowed by power manager.
-2 is invalid so setting will resort to int value specified above.
Set this to 0.0 to allow screen to go to minimal brightness.
The user is forbidden from setting the brightness below this level. -->
<item name="config_screenBrightnessSettingMinimumFloat" type="dimen">0.00342131</item>
<!-- Maximum screen brightness allowed by the power manager.
-2 is invalid so setting will resort to int value specified above.
Set this to 1.0 for maximum brightness range.
The user is forbidden from setting the brightness above this level. -->
<item name="config_screenBrightnessSettingMaximumFloat" type="dimen">1.0</item>
<!-- Default screen brightness setting set.
-2 is invalid so setting will resort to int value specified above.
Must be in the range specified by minimum and maximum. -->
<item name="config_screenBrightnessSettingDefaultFloat" type="dimen">0.14956012</item>
<!-- Screen brightness used to dim the screen when the user activity
timeout expires. May be less than the minimum allowed brightness setting
that can be set by the user. -->
<integer name="config_screenBrightnessDim">13</integer>
<item name="config_screenBrightnessDimFloat" type="dimen">0.00342131</item>
<!-- Array of light sensor lux values to define our levels for auto backlight brightness support.
The N entries of this array define N + 1 control points as follows:
(1-based arrays)
Point 1: (0, value[1]): lux <= 0
Point 2: (level[1], value[2]): 0 < lux <= level[1]
Point 3: (level[2], value[3]): level[2] < lux <= level[3]
...
Point N+1: (level[N], value[N+1]): level[N] < lux
The control points must be strictly increasing. Each control point
corresponds to an entry in the brightness backlight values arrays.
For example, if lux == level[1] (first element of the levels array)
then the brightness will be determined by value[2] (second element
of the brightness values array).
Spline interpolation is used to determine the auto-brightness
backlight values for lux levels between these control points.
Must be overridden in platform specific overlays -->
<integer-array name="config_autoBrightnessLevels">
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
<item>10</item>
<item>11</item>
<item>12</item>
<item>13</item>
<item>14</item>
<item>15</item>
<item>16</item>
<item>17</item>
<item>18</item>
<item>19</item>
<item>20</item>
<item>21</item>
<item>22</item>
<item>23</item>
<item>24</item>
<item>25</item>
<item>26</item>
<item>27</item>
<item>28</item>
<item>29</item>
<item>30</item>
<item>35</item>
<item>40</item>
<item>45</item>
<item>50</item>
<item>55</item>
<item>60</item>
<item>65</item>
<item>70</item>
<item>75</item>
<item>80</item>
<item>85</item>
<item>90</item>
<item>95</item>
<item>100</item>
<item>120</item>
<item>140</item>
<item>160</item>
<item>180</item>
<item>200</item>
<item>220</item>
<item>240</item>
<item>260</item>
<item>280</item>
<item>300</item>
<item>320</item>
<item>340</item>
<item>360</item>
<item>380</item>
<item>400</item>
<item>420</item>
<item>440</item>
<item>460</item>
<item>480</item>
<item>500</item>
<item>600</item>
<item>700</item>
<item>900</item>
<item>1100</item>
<item>1300</item>
<item>1500</item>
<item>1700</item>
<item>1900</item>
<item>2000</item>
<item>2500</item>
<item>3000</item>
<item>3500</item>
<item>4000</item>
<item>4500</item>
<item>5000</item>
<item>5500</item>
<item>6000</item>
<item>6500</item>
<item>7000</item>
<item>7500</item>
<item>8000</item>
<item>8500</item>
<item>9000</item>
<item>9500</item>
<item>10000</item>
<item>10500</item>
<item>11000</item>
<item>11500</item>
<item>12000</item>
<item>12500</item>
<item>13000</item>
<item>13500</item>
<item>14000</item>
<item>14500</item>
<item>15000</item>
<item>16000</item>
<item>17000</item>
<item>18000</item>
<item>19000</item>
<item>20000</item>
<item>21000</item>
<item>22000</item>
<item>23000</item>
<item>24000</item>
<item>25000</item>
<item>26000</item>
<item>27000</item>
<item>28000</item>
<item>29000</item>
<item>30000</item>
<item>35000</item>
<item>40000</item>
<item>45000</item>
<item>50000</item>
<item>55000</item>
<item>60000</item>
<item>65000</item>
<item>70000</item>
<item>75000</item>
<item>80000</item>
<item>85000</item>
<item>90000</item>
<item>95000</item>
<item>100000</item>
</integer-array>
<!-- Array of desired screen brightness in nits corresponding to the lux values
in the config_autoBrightnessLevels array. The display brightness is defined as the measured
brightness of an all-white image.
If this is defined then:
- config_autoBrightnessLcdBacklightValues should not be defined
- config_screenBrightnessNits must be defined
- config_screenBrightnessBacklight must be defined
This array should have size one greater than the size of the config_autoBrightnessLevels
array. The brightness values must be non-negative and non-decreasing. This must be
overridden in platform specific overlays -->
<array name="config_autoBrightnessDisplayValuesNits">
<item>3.5</item>
<item>7.7</item>
<item>11.9</item>
<item>16.1</item>
<item>20.2</item>
<item>24.4</item>
<item>28.6</item>
<item>30.8</item>
<item>32.1</item>
<item>33.5</item>
<item>35.0</item>
<item>36.6</item>
<item>38.2</item>
<item>40.0</item>
<item>41.8</item>
<item>43.7</item>
<item>45.8</item>
<item>47.9</item>
<item>50.0</item>
<item>52.3</item>
<item>55.3</item>
<item>57.1</item>
<item>59.7</item>
<item>62.3</item>
<item>65.8</item>
<item>67.8</item>
<item>70.7</item>
<item>73.7</item>
<item>76.7</item>
<item>79.9</item>
<item>83.1</item>
<item>83.6</item>
<item>84.0</item>
<item>84.5</item>
<item>85.0</item>
<item>85.4</item>
<item>85.8</item>
<item>86.3</item>
<item>86.7</item>
<item>87.2</item>
<item>87.6</item>
<item>88.1</item>
<item>88.5</item>
<item>88.9</item>
<item>89.4</item>
<item>90.8</item>
<item>92.3</item>
<item>93.7</item>
<item>95.3</item>
<item>96.6</item>
<item>98.1</item>
<item>99.6</item>
<item>101.0</item>
<item>102.5</item>
<item>109.1</item>
<item>110.6</item>
<item>112.2</item>
<item>113.7</item>
<item>115.2</item>
<item>116.8</item>
<item>118.3</item>
<item>119.8</item>
<item>121.4</item>
<item>122.9</item>
<item>124.5</item>
<item>132.4</item>
<item>142.6</item>
<item>162.9</item>
<item>184.1</item>
<item>206.6</item>
<item>229.6</item>
<item>253.1</item>
<item>277</item>
<item>289.2</item>
<item>352.1</item>
<item>417.9</item>
<item>436.5</item>
<item>455.1</item>
<item>473.7</item>
<item>492.2</item>
<item>510.8</item>
<item>515.2</item>
<item>521.9</item>
<item>539.6</item>
<item>557.3</item>
<item>575.0</item>
<item>592.8</item>
<item>610.5</item>
<item>628.2</item>
<item>645.9</item>
<item>663.6</item>
<item>681.3</item>
<item>699.0</item>
<item>700.0</item>
<item>734.4</item>
<item>752.1</item>
<item>769.8</item>
<item>787.5</item>
<item>805.2</item>
<item>822.9</item>
<item>858.3</item>
<item>893.8</item>
<item>929.2</item>
<item>964.6</item>
<item>1000.0</item>
<item>1002.5</item>
<item>1005.0</item>
<item>1007.5</item>
<item>1010.0</item>
<item>1012.5</item>
<item>1015.0</item>
<item>1017.5</item>
<item>1020.0</item>
<item>1022.5</item>
<item>1025.0</item>
<item>1037.5</item>
<item>1050.0</item>
<item>1062.5</item>
<item>1075.0</item>
<item>1087.5</item>
<item>1100.0</item>
<item>1112.5</item>
<item>1125.0</item>
<item>1137.5</item>
<item>1150.0</item>
<item>1162.5</item>
<item>1175.0</item>
<item>1187.5</item>
<item>1200.0</item>
</array>
<!-- An array describing the screen's backlight values corresponding to the brightness
values in the config_screenBrightnessNits array.
This array should be equal in size to config_screenBrightnessBacklight. -->
<integer-array name="config_screenBrightnessBacklight">
<item>1</item>
<item>255</item>
</integer-array>
<!-- An array of floats describing the screen brightness in nits corresponding to the backlight
values in the config_screenBrightnessBacklight array. On OLED displays these values
should be measured with an all white image while the display is in the fully on state.
Note that this value should *not* reflect the maximum brightness value for any high
brightness modes but only the maximum brightness value obtainable in a sustainable manner.
This array should be equal in size to config_screenBrightnessBacklight -->
<array name="config_screenBrightnessNits">
<item>4.3</item>
<item>1000.0</item>
</array>
<!-- The bounding path of the cutout region of the main built-in display.
Must either be empty if there is no cutout region, or a string that is parsable by
{@link android.util.PathParser}.
The path is assumed to be specified in display coordinates with pixel units and in
the display's native orientation, with the origin of the coordinate system at the
center top of the display. Optionally, you can append either `@left` or `@right` to the
end of the path string, in order to change the path origin to either the top left,
or top right of the display.
To facilitate writing device-independent emulation overlays, the marker `@dp` can be
appended after the path string to interpret coordinates in dp instead of px units.
Note that a physical cutout should be configured in pixels for the best results.
If the display supports multiple resolutions, please define the path config based on the
highest resolution so that it can be scaled correctly in each resolution.
Example for a 10px x 10px square top-center cutout:
<string ...>M -5,0 L -5,10 L 5,10 L 5,0 Z</string>
Example for a 10dp x 10dp square top-center cutout:
<string ...>M -5,0 L -5,10 L 5,10 L 5,0 Z @dp</string>
@see https://www.w3.org/TR/SVG/paths.html#PathData
-->
<string name="config_mainBuiltInDisplayCutout">M 0,0 H -28 V 94 H 28 V 0 H 0 Z</string>
<!-- The default refresh rate for a given device. Change this value to set a higher default
refresh rate. If the hardware composer on the device supports display modes with a higher
refresh rate than the default value specified here, the framework may use those higher
refresh rate modes if an app chooses one by setting preferredDisplayModeId or calling
setFrameRate().
If a non-zero value is set for config_defaultPeakRefreshRate, then
config_defaultRefreshRate may be set to 0, in which case the value set for
config_defaultPeakRefreshRate will act as the default frame rate. -->
<integer name="config_defaultRefreshRate">0</integer>
<!-- The default peak refresh rate for a given device. Change this value if you want to prevent
the framework from using higher refresh rates, even if display modes with higher refresh
rates are available from hardware composer. Only has an effect if the value is
non-zero. -->
<integer name="config_defaultPeakRefreshRate">120</integer>
<!-- List of biometric sensors on the device, in decreasing strength. Consumed by AuthService
when registering authenticators with BiometricService. Format must be ID:Modality:Strength,
where: IDs are unique per device, Modality as defined in BiometricAuthenticator.java,
and Strength as defined in Authenticators.java -->
<string-array name="config_biometric_sensors" translatable="false">
<item>0:2:15</item>
</string-array>
<!-- The properties of a UDFPS sensor in pixels, in the order listed below: -->
<integer-array name="config_udfps_sensor_props" translatable="false">
<item>540</item>
<item>2109</item>
<item>105</item>
</integer-array>
<!-- Type of the udfps long press sensor. Empty if long press is not supported. -->
<string name="config_dozeUdfpsLongPressSensorType" translatable="false">org.lineageos.sensor.udfps</string>
<!-- Whether devices suports in-display fingerprint when screen is off -->
<bool name="config_supportScreenOffUdfps">true</bool>
</resources>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2023 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Default radius of the software rounded corners. -->
<dimen name="rounded_corner_radius">102.0px</dimen>
<dimen name="rounded_corner_radius_bottom">102.0px</dimen>
<dimen name="rounded_corner_radius_top">102.0px</dimen>
<!-- The default height of the status bar used in {@link SystemBarUtils#getStatusBarHeight} to
calculate the status bar height. -->
<dimen name="status_bar_height_default">94.0px</dimen>
<!-- Height of the status bar in portrait.
Do not read this dimen directly. Use {@link SystemBarUtils#getStatusBarHeight} instead.
-->
<dimen name="status_bar_height_portrait">94.0px</dimen>
</resources>

View File

@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="utf-8"?>
<device name="Android">
<item name="none">0</item>
<item name="screen.on">115.49</item>
<item name="screen.full">131.25</item>
<array name="cpu.clusters.cores">
<value>4</value>
<value>4</value>
</array>
<array name="cpu.core_speeds.cluster0">
<value>300000</value>
<value>691200</value>
<value>940800</value>
<value>1190400</value>
<value>1516800</value>
<value>1804800</value>
<value>1900800</value>
</array>
<array name="cpu.core_power.cluster0">
<value>3.98</value>
<value>6.44</value>
<value>10.53</value>
<value>14.19</value>
<value>26.28</value>
<value>33.3</value>
<value>37.15</value>
</array>
<array name="cpu.core_speeds.cluster1">
<value>300000</value>
<value>806400</value>
<value>1056000</value>
<value>1344000</value>
<value>1766400</value>
<value>2208000</value>
<value>2400000</value>
<value>2592000</value>
<value>2803200</value>
</array>
<array name="cpu.core_power.cluster1">
<value>18.11</value>
<value>41.28</value>
<value>53.54</value>
<value>66.03</value>
<value>89.63</value>
<value>113.12</value>
<value>132.51</value>
<value>155.62</value>
<value>180.32</value>
</array>
<item name="cpu.active">18.3</item>
<item name="cpu.idle">4.51</item>
<item name="cpu.suspend">0</item>
<item name="cpu.awake">42.86</item>
<item name="battery.capacity">5000</item>
<item name="wifi.on">6.76</item>
<item name="wifi.active">148</item>
<item name="wifi.scan">38.43</item>
<item name="dsp.audio">14.83</item>
<item name="dsp.video">57.28</item>
<item name="camera.flashlight">162.87</item>
<item name="camera.avg">570.565</item>
<item name="gps.on">6.8</item>
<item name="radio.active">172</item>
<item name="radio.scanning">4.4</item>
<array name="radio.on">
<value>85</value>
<value>8.5</value>
</array>
<item name="modem.controller.idle">4.4</item>
<item name="modem.controller.rx">168</item>
<item name="modem.controller.tx">163</item>
<item name="modem.controller.voltage">3700</item>
<array name="memory.bandwidths">
<value>13.5</value>
</array>
<item name="wifi.controller.idle">1.22</item>
<item name="wifi.controller.rx">121</item>
<item name="wifi.controller.tx">156</item>
<array name="wifi.controller.tx_levels">1 </array>
<item name="wifi.controller.voltage">3700</item>
<array name="wifi.batchedscan">
<value>.0001</value>
<value>.001</value>
<value>.01</value>
<value>.1</value>
<value>1</value>
</array>
<item name="bluetooth.active">24.88</item>
<item name="bluetooth.on">0.51</item>
<item name="bluetooth.controller.voltage">3700</item>
</device>

View File

@@ -0,0 +1,10 @@
//
// Copyright (C) 2023 The LineageOS Project
//
// SPDX-License-Identifier: Apache-2.0
//
runtime_resource_overlay {
name: "SettingsProviderResSapphire",
device_specific: true
}

View File

@@ -0,0 +1,10 @@
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.providers.settings.overlay.sapphire">
<overlay android:targetPackage="com.android.providers.settings"
android:isStatic="true"
android:priority="700"/>
</manifest>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2023 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Default for Settings.Global.DEVICE_NAME $1=MODEL-->
<string name="def_device_name_simple">Redmi Note 13</string>
</resources>

View File

@@ -0,0 +1,10 @@
//
// Copyright (C) 2022 The LineageOS Project
//
// SPDX-License-Identifier: Apache-2.0
//
runtime_resource_overlay {
name: "SettingsResSapphire",
device_specific: true,
}

View File

@@ -0,0 +1,10 @@
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.settings.overlay.sapphire">
<overlay android:targetPackage="com.android.settings"
android:isStatic="true"
android:priority="700"/>
</manifest>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2023 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Whether to show Smooth Display feature in Settings Options -->
<bool name="config_show_smooth_display">true</bool>
</resources>

View File

@@ -0,0 +1,10 @@
//
// Copyright (C) 2022 The LineageOS Project
//
// SPDX-License-Identifier: Apache-2.0
//
runtime_resource_overlay {
name: "SystemUIResSapphire",
device_specific: true,
}

View File

@@ -0,0 +1,10 @@
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.systemui.overlay.sapphire">
<overlay android:targetPackage="com.android.systemui"
android:isStatic="true"
android:priority="700"/>
</manifest>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2023 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- The radius of the enrollment progress bar, in dp -->
<integer name="config_udfpsEnrollProgressBar" translatable="false">98</integer>
<integer name="config_udfpsVendorCode">22</integer>
</resources>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2023 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Default paddings for content around the corners. -->
<dimen name="rounded_corner_content_padding">49.0px</dimen>
</resources>

View File

@@ -5,6 +5,6 @@
//
runtime_resource_overlay {
name: "FrameworksResPhone",
product_specific: true,
name: "WifiResSapphire",
device_specific: true
}

View File

@@ -0,0 +1,11 @@
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.wifi.resources.overlay.sapphire">
<overlay android:targetPackage="com.android.wifi.resources"
android:targetName="WifiCustomization"
android:isStatic="true"
android:priority="700"/>
</manifest>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2023 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Do not translate. Default access point SSID used for tethering -->
<string name="wifi_tether_configure_ssid_default" translatable="false">Redmi Note 13</string>
</resources>

View File

@@ -1,350 +0,0 @@
# All blobs below are extracted from sapphire V816.0.6.0.UNGMIXM
# Diag
system_ext/lib64/vendor.qti.diaghal@1.0.so
vendor/bin/diag-router
vendor/etc/init/vendor.qti.diag.rc
vendor/etc/vintf/manifest/vendor.qti.diag.hal.service.xml
vendor/lib64/libdiag.so
vendor/lib64/libdiagjni.so
vendor/lib64/vendor.qti.diaghal@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/bin/vendor.dpmd
vendor/etc/dpm_vndr/vendor.dpm.conf
vendor/etc/init/dpmQmiMgr.rc
vendor/etc/init/vendor.dpmd.rc
vendor/lib64/com.qualcomm.qti.dpm.api@1.0.so
vendor/lib64/libdpmqmihal.so
vendor/lib64/vendor.libdpmctmgr.so
vendor/lib64/vendor.libdpmfdmgr.so
vendor/lib64/vendor.libdpmframework.so
vendor/lib64/vendor.libdpmtcm.so
vendor/lib64/vendor.qti.hardware.dpmservice@1.0.so
vendor/lib64/vendor.qti.hardware.dpmservice@1.1.so
# ESEPower Manager
vendor/bin/hw/vendor.qti.esepowermanager@1.1-service
vendor/etc/init/vendor.qti.esepowermanager@1.1-service.rc
vendor/lib64/hw/vendor.qti.esepowermanager@1.1-impl.so
vendor/lib64/libesepmconfig.so
vendor/lib64/libesesbprovision.so
vendor/lib64/vendor.qti.esepowermanager@1.0.so
vendor/lib64/vendor.qti.esepowermanager@1.1.so
# GNSS
vendor/bin/hw/android.hardware.gnss-aidl-service-qti
vendor/etc/init/android.hardware.gnss-aidl-service-qti.rc
vendor/etc/vintf/manifest/android.hardware.gnss-aidl-service-qti.xml
vendor/etc/vintf/manifest/vendor.qti.gnss-service.xml
vendor/etc/apdr.conf
vendor/etc/batching.conf
vendor/etc/gnss_antenna_info.conf
vendor/etc/gps.conf
vendor/etc/sap.conf
vendor/lib64/hw/android.hardware.gnss-aidl-impl-qti.so
vendor/lib64/libbatching.so
vendor/lib64/libgeofencing.so
vendor/lib64/libloc_socket.so
vendor/lib64/liblocationservice.so
vendor/lib64/liblocationservice_glue.so
vendor/lib64/vendor.qti.gnss-V4-ndk.so
vendor/lib64/vendor.qti.gnss-service.so
# IMS (system) - from eqs T1TBS33.32-8-9-7-2
system_ext/app/ImsRcsService/ImsRcsService.apk|a95f2f5692bca44222f4f4e251543061cf6cb0fe
system_ext/app/QtiTelephony/QtiTelephony.apk|fde1b6b3752e2d2edbb773cb6c0d26df67437fc4
system_ext/etc/permissions/telephony_system-ext_privapp-permissions-qti.xml|4e5483d8780df9f268bfaa2192b44a3465c5a78e
system_ext/etc/permissions/vendor.qti.ims.rcsservice.xml|7ce9e6ccb5026b0aa87b0eb94a20448e2d4c481c
system_ext/etc/sysconfig/qti_telephony_system_packages_config.xml|fce4e18c6568c289d4ff145c03a0c474ff55972a
system_ext/etc/sysconfig/qti_whitelist_system_ext.xml|fc930929bee7d1f8ecc5b1c76193acdc2f923fe7
system_ext/framework/vendor.qti.ims.connection-V1.0-java.jar|e01800d96b0db524836856410d3dd0b9352ec46c
system_ext/framework/vendor.qti.ims.factory-V2.0-java.jar|ae7015efe55d17b1caf0da0c2247dac6cfaaa272
system_ext/framework/vendor.qti.ims.factory-V2.1-java.jar|137f296405fd5f8c036c511f1d186e7178c5d57f
system_ext/framework/vendor.qti.ims.factory-V2.2-java.jar|70dbc40c581103970402959342ea250b6a1fb84b
system_ext/framework/vendor.qti.ims.rcssip-V1.0-java.jar|d711276f07ff0fd81fc6a63ad018b3eaf85ef4c9
system_ext/framework/vendor.qti.ims.rcssip-V1.1-java.jar|f54828a81f02b1f9ff1379e34efb60d064aa27f6
system_ext/framework/vendor.qti.ims.rcssip-V1.2-java.jar|e627b85a9268734c5e66adf67d18e6d3fb0bf1de
system_ext/framework/vendor.qti.ims.rcsuce-V1.0-java.jar|517127c426fa94f28d97409bc7d07ca4cb92a9b0
system_ext/framework/vendor.qti.ims.rcsuce-V1.1-java.jar|c7ea95f134ca6dc2b569b8c9b1c9b433bb6dae0c
system_ext/framework/vendor.qti.ims.rcsuce-V1.2-java.jar|f221e0dfbb89daab9cca03104f9a92b2fd9b15bc
system_ext/lib64/lib-imsvideocodec.so|b3c71f1bb514a86c2bbc08bdc245bf9affa56323
system_ext/lib64/lib-imsvt.so|707afd60b7849df50ca46922181dc8cf72682df9
system_ext/lib64/lib-imsvtextutils.so|1dfb5640cd23a92e7ca55a84118b2966653aebc7
system_ext/lib64/lib-imsvtutils.so|6df6279955493da11860bb048db38f01ec05c2aa
system_ext/lib64/libdiag_system.so|ced16a9ffd51f155a4b20a0c04fe7b595bfa8cc4
system_ext/lib64/libimscamera_jni.so|f6b7647cfe080baeed006c932b495ff94b5685a7
system_ext/lib64/libimsmedia_jni.so|5b34af19636863d22e5e7b4f20136564e6ee2222
system_ext/lib64/vendor.qti.imsrtpservice@3.0.so|ace5e02b6cd79b43a07d84e2d18d6818821a3c48
system_ext/lib64/vendor.qti.imsrtpservice@3.1.so|e64aa8a21a8db69d2e2ea14929bb20ced99c119d
system_ext/priv-app/ims/ims.apk|9065ecc8af98f75e860e6294524fd801ba0ebcc3
# IMS ( vendor )
vendor/bin/ims_rtp_daemon
vendor/bin/imsdaemon
vendor/etc/init/ims_rtp_daemon.rc
vendor/etc/init/imsdaemon.rc
vendor/lib64/com.qualcomm.qti.imscmservice@1.0.so
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-imscommon.so
vendor/lib64/lib-imsdpl.so
vendor/lib64/lib-imsqimf.so
vendor/lib64/lib-imsrcsservice.so
vendor/lib64/lib-imsservice.so
vendor/lib64/lib-imsvtcore.so
vendor/lib64/lib-imsxml.so
vendor/lib64/vendor.qti.ims.callcapability@1.0.so
vendor/lib64/vendor.qti.ims.callinfo@1.0.so
vendor/lib64/vendor.qti.ims.configservice@1.0.so
vendor/lib64/vendor.qti.ims.configservice@1.1.so
vendor/lib64/vendor.qti.ims.connection@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.factory@2.0.so
vendor/lib64/vendor.qti.ims.factory@2.1.so
vendor/lib64/vendor.qti.ims.factory@2.2.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.ims.rcssip@1.0.so
vendor/lib64/vendor.qti.ims.rcssip@1.1.so
vendor/lib64/vendor.qti.ims.rcssip@1.2.so
vendor/lib64/vendor.qti.ims.rcsuce@1.0.so
vendor/lib64/vendor.qti.ims.rcsuce@1.1.so
vendor/lib64/vendor.qti.ims.rcsuce@1.2.so
vendor/lib64/vendor.qti.imsrtpservice@3.0.so
vendor/lib64/vendor.qti.imsrtpservice@3.1-service-Impl.so
vendor/lib64/vendor.qti.imsrtpservice@3.1.so
vendor/lib64/vendor.qti.latency@2.0.so
vendor/lib64/vendor.qti.latency@2.1.so
vendor/lib64/vendor.qti.latency@2.2.so
# IR
vendor/bin/hw/android.hardware.ir-service.example
vendor/bin/consumerird
vendor/etc/init/android.hardware.ir-service.example.rc
vendor/etc/vintf/manifest/android.hardware.ir-service.example.xml
vendor/lib64/hw/consumerir.qcom.so
# Mlipay
odm/bin/mlipayd@1.1:vendor/bin/mlipayd@1.1
odm/etc/init/vendor.xiaomi.hardware.mlipay@1.1-service.rc:vendor/etc/init/vendor.xiaomi.hardware.mlipay@1.1-service.rc
odm/etc/vintf/manifest/manifest_vendor.xiaomi.hardware.mlipay.xml:vendor/etc/vintf/manifest/manifest_vendor.xiaomi.hardware.mlipay.xml
odm/lib64/libmlipay.so:vendor/lib64/libmlipay.so
odm/lib64/libmlipay@1.1.so:vendor/lib64/libmlipay@1.1.so
odm/lib64/libteeclientjni.so:vendor/lib64/libteeclientjni.so
odm/lib64/libwvkeybox.so:vendor/lib64/libwvkeybox.so
odm/lib64/vendor.xiaomi.hardware.mlipay@1.0.so:vendor/lib64/vendor.xiaomi.hardware.mlipay@1.0.so
# Radio
etc/permissions/privapp-permissions-qti.xml
etc/sysconfig/qti_whitelist.xml
framework/tcmclient.jar
product/app/uimgbaservice/uimgbaservice.apk
product/etc/permissions/UimGba.xml
product/etc/permissions/UimGbaManager.xml
product/etc/permissions/UimService.xml
product/framework/uimgbalibrary.jar
product/framework/uimgbamanagerlibrary.jar
product/framework/uimservicelibrary.jar
system_ext/app/DeviceInfo/DeviceInfo.apk
system_ext/app/QtiTelephonyService/QtiTelephonyService.apk
system_ext/app/atfwd/atfwd.apk
system_ext/etc/permissions/privapp-permissions-qti-system-ext.xml
system_ext/etc/permissions/qcrilhook.xml
system_ext/etc/permissions/qti_permissions.xml
system_ext/framework/qcrilhook.jar
system_ext/priv-app/qcrilmsgtunnel/qcrilmsgtunnel.apk
vendor/app/IWlanService/IWlanService.apk
vendor/bin/hw/qcrilNrd
vendor/bin/ATFWD-daemon
vendor/bin/adpl
vendor/bin/embmsslServer
vendor/bin/irsc_util
vendor/bin/ks
vendor/bin/netmgrd
vendor/bin/port-bridge
vendor/bin/qrtr-cfg
vendor/bin/qrtr-lookup
vendor/bin/qrtr-ns
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.embmssl_server.rc
vendor/etc/init/netmgrd.rc
vendor/etc/init/port-bridge.rc
vendor/etc/init/qcrilNrd.rc
vendor/etc/init/vendor.qti.rmt_storage_qmaa.rc
vendor/etc/init/vendor.qti.tftp_qmaa.rc
vendor/etc/permissions/noRil/apq_excluded_telephony_features.xml
vendor/etc/qcril_database/upgrade/config/14.0_config.sql
vendor/etc/qcril_database/upgrade/config/6.0_config.sql
vendor/etc/qcril_database/upgrade/config/7.0_config.sql
vendor/etc/qcril_database/upgrade/other/0_initial_qcrilnr.sql
vendor/etc/qcril_database/upgrade/other/1_version_intro_qcrilnr.sql
vendor/etc/qcril_database/upgrade/other/2_version_add_wps_config_qcrilnr.sql
vendor/etc/qcril_database/upgrade/other/3_version_update_wps_config_qcrilnr.sql
vendor/etc/qcril_database/upgrade/other/4_version_update_ecc_table_qcrilnr.sql
vendor/etc/qcril_database/upgrade/other/5_version_update_ecc_table_qcrilnr.sql
vendor/etc/qcril_database/upgrade/other/6_version_change_property_table_qcrilnr.sql
vendor/etc/qcril_database/qcrilNr.db
vendor/etc/ssg/ta_config.json
vendor/etc/ssg/tz_whitelist.json
vendor/etc/vintf/manifest/android.hardware.radio.config.xml
vendor/etc/vintf/manifest/deviceinfo-saidl.xml
vendor/etc/vintf/manifest/vendor.qti.hardware.radio.qtiradioconfig.xml
vendor/etc/telephony_packages.xml
vendor/lib64/deviceInfoServiceModuleNr.so
vendor/lib64/lib-rtpcommon.so
vendor/lib64/lib-rtpcore.so
vendor/lib64/lib-rtpsl.so
vendor/lib64/libQtiRilLoadable.so
vendor/lib64/libconfigdb.so
vendor/lib64/libdsi_netctrl.so
vendor/lib64/libembmsservice.so
vendor/lib64/libmdmdetect.so
vendor/lib64/libnetfilter_conntrack.so
vendor/lib64/libnetmgr.so
vendor/lib64/libnetmgr_common.so
vendor/lib64/libnetmgr_datapath_proxy.so
vendor/lib64/libnetmgr_nr_fusion.so
vendor/lib64/libnetmgr_rmnet_ext.so
vendor/lib64/libnetmgr_sscm3.so
vendor/lib64/libnetmgr_utils.so
vendor/lib64/libnetmgrext_interface_client.so
vendor/lib64/libnetmgrext_interface_server.so
vendor/lib64/libnetmgrmodemproxy.so
vendor/lib64/libnetmgrportutils.so
vendor/lib64/libnetmgrxfrmutils.so
vendor/lib64/libnfnetlink.so
vendor/lib64/libnlnetmgr.so
vendor/lib64/liboemaids_vendor.so
vendor/lib64/libqcmaputils.so
vendor/lib64/libqcrilDataModule.so
vendor/lib64/libqcrilNr.so
vendor/lib64/libqcrilNrCellInfoModule.so
vendor/lib64/libqcrilNrFramework.so
vendor/lib64/libqcrilNrImsModule.so
vendor/lib64/libqcrilNrLogger.so
vendor/lib64/libqcrilNrPbmModule.so
vendor/lib64/libqcrilNrQtiBus.so
vendor/lib64/libqcrilNrQtiMutex.so
vendor/lib64/libqcrilNrSmsModule.so|eec750187d50e0c6df179d10bd656ee026259f86
vendor/lib64/libqcrilNrSocketModule.so
vendor/lib64/libqcrilNrVoiceModule.so
vendor/lib64/libqcrildataaidl.so
vendor/lib64/libqcrildatactl.so
vendor/lib64/libqcrildataqos.so
vendor/lib64/libqdi.so
vendor/lib64/libqdp.so
vendor/lib64/libqdpr.so
vendor/lib64/libqdutils.so
vendor/lib64/libqesdk2_0.so
vendor/lib64/libqrtr.so
vendor/lib64/librcc.so
vendor/lib64/libreference-ril.so
vendor/lib64/libril-db.so
vendor/lib64/libril-legacy.so
vendor/lib64/libril-qc-ltedirectdisc.so
vendor/lib64/libril-qc-radioconfig.so
vendor/lib64/librilqmimiscservices.so
vendor/lib64/qcrilInterfaces.so
vendor/lib64/qcrilMarshal.so
vendor/lib64/qcrilNrQmiModule.so
vendor/lib64/qcrilNrSecureMode.so
vendor/lib64/qcrilNr_aidl_IQtiRadioConfig.so
vendor/lib64/qcrilNr_aidl_IRadioConfig.so
vendor/lib64/qcrilNr_aidl_IRadioMessaging.so
vendor/lib64/qcrilNr_aidl_IRadioModem.so
vendor/lib64/qcrilNr_aidl_IRadioNetwork.so
vendor/lib64/qcrilNr_aidl_IRadioSim.so
vendor/lib64/qcrilNr_aidl_IRadioVoice.so
vendor/lib64/qcrilNr_aidl_common.so
vendor/lib64/qcril_client.so
vendor/lib64/qcrild_libqcrilnr.so
vendor/lib64/qcrild_libqcrilnrutils.so
vendor/lib64/qtiril-utils.so
vendor/lib64/qtiwakelock.so
vendor/lib64/vendor.qti.hardware.embmssl@1.0.so
vendor/lib64/vendor.qti.hardware.embmssl@1.1.so
vendor/lib64/vendor.qti.hardware.radio.am-V1-ndk.so
vendor/lib64/vendor.qti.hardware.radio.am@1.0.so
vendor/lib64/vendor.qti.hardware.radio.atcmdfwd-V1-ndk.so
vendor/lib64/vendor.qti.hardware.radio.atcmdfwd@1.0.so
vendor/lib64/vendor.qti.hardware.radio.ims-V9-ndk.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.hardware.radio.ims@1.8.so
vendor/lib64/vendor.qti.hardware.radio.internal.deviceinfo-V1-ndk.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.lpa@1.3.so
vendor/lib64/vendor.qti.hardware.radio.qcrilhook-V1-ndk.so
vendor/lib64/vendor.qti.hardware.radio.qcrilhook@1.0.so
vendor/lib64/vendor.qti.hardware.radio.qtiradio-V9-ndk.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.qtiradio@2.5.so
vendor/lib64/vendor.qti.hardware.radio.qtiradio@2.6.so
vendor/lib64/vendor.qti.hardware.radio.qtiradioconfig-V3-ndk.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/lib64/vendor.qti.voiceprint@1.0.so
# Seccomp
vendor/etc/seccomp_policy/gnss@2.0-base.policy
vendor/etc/seccomp_policy/gnss@2.0-edgnss-daemon.policy
vendor/etc/seccomp_policy/gnss@2.0-qsap-location.policy
vendor/etc/seccomp_policy/gnss@2.0-xtra-daemon.policy
vendor/etc/seccomp_policy/gnss@2.0-xtwifi-client.policy
vendor/etc/seccomp_policy/imsrtp.policy
vendor/etc/seccomp_policy/qcrilnr@2.0.policy
# Soter
vendor/bin/hw/vendor.qti.hardware.soter@1.0-service
vendor/bin/SoterProvisioningTool
vendor/bin/vendor.qti.hardware.soter@1.0-provision
vendor/etc/init/vendor.qti.hardware.soter@1.0-service.rc
vendor/lib64/hw/vendor.qti.hardware.soter@1.0-impl.so
vendor/lib64/vendor.qti.hardware.soter@1.0.so

File diff suppressed because it is too large Load Diff

View File

@@ -8,6 +8,9 @@
set -e
DEVICE=sapphire
VENDOR=xiaomi
# Load extract_utils and do some sanity checks
MY_DIR="${BASH_SOURCE%/*}"
if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi
@@ -21,35 +24,13 @@ if [ ! -f "${HELPER}" ]; then
fi
source "${HELPER}"
# Initialize the helper for common
setup_vendor "${DEVICE_COMMON}" "${VENDOR}" "${ANDROID_ROOT}" true
# Initialize the helper
setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}"
# Warning headers and guards
write_headers "sapphire topaz xun"
write_headers
# The standard common blobs
write_makefiles "${MY_DIR}/proprietary-files.txt" true
# Exclude blobs from tablet builds
printf '\n%s\n' 'ifneq ($(TARGET_IS_TABLET),true)' >> "$PRODUCTMK"
write_makefiles "${MY_DIR}/proprietary-files-phone.txt" true
printf '%s\n' 'endif' >> "$PRODUCTMK"
# Finish
write_footers
if [ -s "${MY_DIR}/../${DEVICE}/proprietary-files.txt" ]; then
# Reinitialize the helper for device
setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" false
# Warning headers and guards
write_headers
# The standard device blobs
write_makefiles "${MY_DIR}/../${DEVICE}/proprietary-files.txt" true
# Finish
write_footers
fi
write_footers