1 Commits
bka ... bka-new

Author SHA1 Message Date
5883ef8381 raphael: Initialize for Evolution X 11.x+ 2026-01-21 01:02:39 +09:00
27 changed files with 279 additions and 1020 deletions

View File

@@ -7,11 +7,6 @@
# Inherit from sm8150-common
include device/xiaomi/sm8150-common/BoardConfigCommon.mk
# Include MIUI Camera board settings if present
ifneq ($(wildcard device/xiaomi/miuicamera/BoardConfig.mk),)
include device/xiaomi/miuicamera/BoardConfig.mk
endif
DEVICE_PATH := device/xiaomi/raphael
# Assert

View File

@@ -1,26 +0,0 @@
Copyright (C) 2023 The LineageOS Project
Device configuration for Redmi K20 Pro / Xiaomi Mi 9T Pro
=========================================
The Redmi K20 Pro / Xiaomi Mi 9T Pro (codenamed _"raphael"_) is a flagship smartphone from Xiaomi announced in May 2019.
It was released in June 2019.
## Device specifications
Basic | Spec Sheet
-------:|:-------------------------
CPU | Octa-core (1x2.84 GHz Kryo 485 & 3x2.42 GHz Kryo 485 & 4x1.78 GHz Kryo 485)
Chipset | Qualcomm SM8150 Snapdragon 855 (7 nm)
GPU | Adreno 640
Memory | 6/8 GB
Storage | 64/128/256 GB, UFS 3.1
Shipped Android Version | 9, MIUI 10
Battery | Li-Po 4000 mAh, non-removable
Display | 1080 x 2340 pixels, 6.39 inches (~403 ppi density)
Camera | 48 MP main, 13 MP ultrawide, 8 MP macro, 20 MP motorized pop-up front
## Device picture
![Redmi K20 Pro / Mi 9T Pro](https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/beee478168e5c4fd0d66369386fddbbe.jpg "Redmi K20 Pro / Mi 9T Pro")

View File

@@ -1,606 +0,0 @@
{
"Nodes": [
{
"Name": "CPULittleClusterMaxFreq",
"Path": "/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq",
"Values": [
"9999999",
"1113600",
"844800",
"1036800",
"1209600",
"1382400",
"1555200"
],
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "CPULittleClusterMinFreq",
"Path": "/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq",
"Values": [
"9999999",
"576000",
"1113600"
],
"DefaultIndex": 1,
"ResetOnInit": true
},
{
"Name": "CPUBigClusterMaxFreq",
"Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq",
"Values": [
"9999999",
"2016000",
"1401600",
"1171200",
"1497600",
"1708800",
"1920000",
"2131200"
],
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "CPUBigClusterMinFreq",
"Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq",
"Values": [
"9999999",
"1497600",
"1401600",
"0",
"1286400"
],
"DefaultIndex": 3,
"ResetOnInit": true
},
{
"Name": "CPUBigPlusClusterMaxFreq",
"Path": "/sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq",
"Values": [
"9999999",
"2016000",
"1401600",
"1708800",
"2015999",
"2227200",
"2534400"
],
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "CPUBigPlusClusterMinFreq",
"Path": "/sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq",
"Values": [
"9999999",
"1497600",
"1401600",
"0",
"1286400"
],
"DefaultIndex": 3,
"ResetOnInit": true
},
{
"Name": "GPUMaxFreq",
"Path": "/sys/class/kgsl/kgsl-3d0/devfreq/max_freq",
"Values": [
"770000000",
"715000000",
"692000000",
"615000000",
"585000000",
"515000000",
"427000000"
],
"DefaultIndex": 0,
"ResetOnInit": true
},
{
"Name": "GPUMinFreq",
"Path": "/sys/class/kgsl/kgsl-3d0/devfreq/min_freq",
"Values": [
"515000000",
"427000000",
"340000000"
],
"DefaultIndex": 2,
"ResetOnInit": true
},
{
"Name": "GPUBusMinFreq",
"Path": "/sys/class/devfreq/soc:qcom,gpubw/min_freq",
"Values": [
"6881",
"5931",
"3879",
"0"
],
"ResetOnInit": true
},
{
"Name": "GPUForceRailOn",
"Path": "/sys/class/kgsl/kgsl-3d0/force_rail_on",
"Values": [
"1",
"0"
],
"ResetOnInit": true
},
{
"Name": "GPUForceClkOn",
"Path": "/sys/class/kgsl/kgsl-3d0/force_clk_on",
"Values": [
"1",
"0"
],
"ResetOnInit": true
},
{
"Name": "GPUIdleTimer",
"Path": "/sys/class/kgsl/kgsl-3d0/idle_timer",
"Values": [
"10000",
"80"
],
"ResetOnInit": true
},
{
"Name": "CameraHalCpuset",
"Path": "/dev/cpuset/camera-daemon/cpus",
"Values": [
"0-5",
"0-7"
],
"ResetOnInit": true
},
{
"Name": "PMQoSCpuDmaLatency",
"Path": "/dev/cpu_dma_latency",
"Values": [
"2c",
"66"
],
"HoldFd": true
},
{
"Name": "PowerHALMainState",
"Path": "vendor.powerhal.state",
"Values": [
"SUSTAINED_PERFORMANCE",
""
],
"Type": "Property"
},
{
"Name": "PowerHALAudioState",
"Path": "vendor.powerhal.audio",
"Values": [
"AUDIO_STREAMING_LOW_LATENCY",
""
],
"Type": "Property"
},
{
"Name": "PowerHALRenderingState",
"Path": "vendor.powerhal.rendering",
"Values": [
"EXPENSIVE_RENDERING",
""
],
"Type": "Property"
}
],
"Actions": [
{
"PowerHint": "SUSTAINED_PERFORMANCE",
"Node": "PowerHALMainState",
"Duration": 0,
"Value": "SUSTAINED_PERFORMANCE"
},
{
"PowerHint": "SUSTAINED_PERFORMANCE",
"Node": "CPUBigClusterMaxFreq",
"Duration": 0,
"Value": "1401600"
},
{
"PowerHint": "SUSTAINED_PERFORMANCE",
"Node": "CPUBigPlusClusterMaxFreq",
"Duration": 0,
"Value": "1401600"
},
{
"PowerHint": "SUSTAINED_PERFORMANCE",
"Node": "CPULittleClusterMaxFreq",
"Duration": 0,
"Value": "1113600"
},
{
"PowerHint": "SUSTAINED_PERFORMANCE",
"Node": "GPUMaxFreq",
"Duration": 0,
"Value": "427000000"
},
{
"PowerHint": "INTERACTION",
"Node": "CPUBigClusterMinFreq",
"Duration": 200,
"Value": "1286400"
},
{
"PowerHint": "INTERACTION",
"Node": "CPUBigPlusClusterMinFreq",
"Duration": 200,
"Value": "1286400"
},
{
"PowerHint": "INTERACTION",
"Node": "CPULittleClusterMinFreq",
"Duration": 200,
"Value": "1113600"
},
{
"PowerHint": "LAUNCH",
"Node": "CPUBigClusterMaxFreq",
"Duration": 5000,
"Value": "9999999"
},
{
"PowerHint": "LAUNCH",
"Node": "CPUBigPlusClusterMaxFreq",
"Duration": 5000,
"Value": "9999999"
},
{
"PowerHint": "LAUNCH",
"Node": "CPUBigClusterMinFreq",
"Duration": 5000,
"Value": "9999999"
},
{
"PowerHint": "LAUNCH",
"Node": "CPUBigPlusClusterMinFreq",
"Duration": 5000,
"Value": "9999999"
},
{
"PowerHint": "LAUNCH",
"Node": "CPULittleClusterMinFreq",
"Duration": 5000,
"Value": "9999999"
},
{
"PowerHint": "LAUNCH",
"Node": "PMQoSCpuDmaLatency",
"Duration": 5000,
"Value": "2c"
},
{
"PowerHint": "LAUNCH",
"Node": "GPUForceClkOn",
"Duration": 5000,
"Value": "1"
},
{
"PowerHint": "LAUNCH",
"Node": "GPUForceRailOn",
"Duration": 5000,
"Value": "1"
},
{
"PowerHint": "LAUNCH",
"Node": "GPUIdleTimer",
"Duration": 5000,
"Value": "10000"
},
{
"PowerHint": "CAMERA_LAUNCH",
"Node": "CPUBigClusterMaxFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_LAUNCH",
"Node": "CPUBigPlusClusterMaxFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_LAUNCH",
"Node": "CPUBigClusterMinFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_LAUNCH",
"Node": "CPUBigPlusClusterMinFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_LAUNCH",
"Node": "CPULittleClusterMaxFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_LAUNCH",
"Node": "CPULittleClusterMinFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_LAUNCH",
"Node": "PMQoSCpuDmaLatency",
"Duration": 1000,
"Value": "2c"
},
{
"PowerHint": "CAMERA_STREAMING_MID",
"Node": "CPUBigClusterMaxFreq",
"Duration": 0,
"Value": "2016000"
},
{
"PowerHint": "CAMERA_STREAMING_MID",
"Node": "CPUBigPlusClusterMaxFreq",
"Duration": 0,
"Value": "2016000"
},
{
"PowerHint": "CAMERA_STREAMING_HIGH",
"Node": "CPUBigClusterMaxFreq",
"Duration": 0,
"Value": "2016000"
},
{
"PowerHint": "CAMERA_STREAMING_HIGH",
"Node": "CPUBigPlusClusterMaxFreq",
"Duration": 0,
"Value": "2016000"
},
{
"PowerHint": "CAMERA_STREAMING_LOW",
"Node": "CPUBigClusterMaxFreq",
"Duration": 0,
"Value": "2016000"
},
{
"PowerHint": "CAMERA_STREAMING_LOW",
"Node": "CPUBigPlusClusterMaxFreq",
"Duration": 0,
"Value": "2016000"
},
{
"PowerHint": "CAMERA_STREAMING_SECURE",
"Node": "CPUBigClusterMaxFreq",
"Duration": 0,
"Value": "2016000"
},
{
"PowerHint": "CAMERA_STREAMING_SECURE",
"Node": "CPUBigPlusClusterMaxFreq",
"Duration": 0,
"Value": "2016000"
},
{
"PowerHint": "CAMERA_STREAMING_SECURE",
"Node": "CameraHalCpuset",
"Duration": 0,
"Value": "0-5"
},
{
"PowerHint": "CAMERA_SHOT",
"Node": "CPUBigClusterMaxFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_SHOT",
"Node": "CPUBigPlusClusterMaxFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_SHOT",
"Node": "CPUBigClusterMinFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_SHOT",
"Node": "CPUBigPlusClusterMinFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_SHOT",
"Node": "CPULittleClusterMaxFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_SHOT",
"Node": "CPULittleClusterMinFreq",
"Duration": 1000,
"Value": "9999999"
},
{
"PowerHint": "CAMERA_SHOT",
"Node": "PMQoSCpuDmaLatency",
"Duration": 1000,
"Value": "2c"
},
{
"PowerHint": "AUDIO_LAUNCH",
"Node": "PMQoSCpuDmaLatency",
"Duration": 2000,
"Value": "2c"
},
{
"PowerHint": "AUDIO_STREAMING_LOW_LATENCY",
"Node": "PowerHALAudioState",
"Duration": 0,
"Value": "AUDIO_STREAMING_LOW_LATENCY"
},
{
"PowerHint": "AUDIO_STREAMING_LOW_LATENCY",
"Node": "PMQoSCpuDmaLatency",
"Duration": 0,
"Value": "2c"
},
{
"PowerHint": "EXPENSIVE_RENDERING",
"Node": "PowerHALRenderingState",
"Duration": 0,
"Value": "EXPENSIVE_RENDERING"
},
{
"PowerHint": "EXPENSIVE_RENDERING",
"Node": "GPUMinFreq",
"Duration": 0,
"Value": "427000000"
},
{
"PowerHint": "EXPENSIVE_RENDERING",
"Node": "GPUMaxFreq",
"Duration": 0,
"Value": "585000000"
},
{
"PowerHint": "ML_ACC",
"Node": "PMQoSCpuDmaLatency",
"Duration": 2000,
"Value": "2c"
},
{
"PowerHint": "LOW_POWER_LITTLE_CLUSTER_50",
"Node": "CPULittleClusterMaxFreq",
"Duration": 3600000,
"Value": "844800"
},
{
"PowerHint": "LOW_POWER_LITTLE_CLUSTER_50",
"Node": "CPULittleClusterMinFreq",
"Duration": 3600000,
"Value": "576000"
},
{
"PowerHint": "LOW_POWER_LITTLE_CLUSTER_60",
"Node": "CPULittleClusterMaxFreq",
"Duration": 3600000,
"Value": "1036800"
},
{
"PowerHint": "LOW_POWER_LITTLE_CLUSTER_60",
"Node": "CPULittleClusterMinFreq",
"Duration": 3600000,
"Value": "576000"
},
{
"PowerHint": "LOW_POWER_LITTLE_CLUSTER_70",
"Node": "CPULittleClusterMaxFreq",
"Duration": 3600000,
"Value": "1209600"
},
{
"PowerHint": "LOW_POWER_LITTLE_CLUSTER_80",
"Node": "CPULittleClusterMaxFreq",
"Duration": 3600000,
"Value": "1382400"
},
{
"PowerHint": "LOW_POWER_LITTLE_CLUSTER_90",
"Node": "CPULittleClusterMaxFreq",
"Duration": 3600000,
"Value": "1555200"
},
{
"PowerHint": "LOW_POWER_CPU_50",
"Node": "CPUBigClusterMaxFreq",
"Duration": 3600000,
"Value": "1171200"
},
{
"PowerHint": "LOW_POWER_CPU_50",
"Node": "CPUBigClusterMinFreq",
"Duration": 3600000,
"Value": "0"
},
{
"PowerHint": "LOW_POWER_CPU_50",
"Node": "CPUBigPlusClusterMaxFreq",
"Duration": 3600000,
"Value": "1401600"
},
{
"PowerHint": "LOW_POWER_CPU_50",
"Node": "CPUBigPlusClusterMinFreq",
"Duration": 3600000,
"Value": "0"
},
{
"PowerHint": "LOW_POWER_CPU_60",
"Node": "CPUBigClusterMaxFreq",
"Duration": 3600000,
"Value": "1497600"
},
{
"PowerHint": "LOW_POWER_CPU_60",
"Node": "CPUBigClusterMinFreq",
"Duration": 3600000,
"Value": "0"
},
{
"PowerHint": "LOW_POWER_CPU_60",
"Node": "CPUBigPlusClusterMaxFreq",
"Duration": 3600000,
"Value": "1708800"
},
{
"PowerHint": "LOW_POWER_CPU_60",
"Node": "CPUBigPlusClusterMinFreq",
"Duration": 3600000,
"Value": "0"
},
{
"PowerHint": "LOW_POWER_CPU_70",
"Node": "CPUBigClusterMaxFreq",
"Duration": 3600000,
"Value": "1708800"
},
{
"PowerHint": "LOW_POWER_CPU_70",
"Node": "CPUBigPlusClusterMaxFreq",
"Duration": 3600000,
"Value": "2015999"
},
{
"PowerHint": "LOW_POWER_CPU_80",
"Node": "CPUBigClusterMaxFreq",
"Duration": 3600000,
"Value": "1920000"
},
{
"PowerHint": "LOW_POWER_CPU_80",
"Node": "CPUBigPlusClusterMaxFreq",
"Duration": 3600000,
"Value": "2227200"
},
{
"PowerHint": "LOW_POWER_CPU_90",
"Node": "CPUBigClusterMaxFreq",
"Duration": 3600000,
"Value": "2131200"
},
{
"PowerHint": "LOW_POWER_CPU_90",
"Node": "CPUBigPlusClusterMaxFreq",
"Duration": 3600000,
"Value": "2534400"
}
]
}

View File

@@ -1,4 +0,0 @@
sensors.ssc.so
sensors.udfps.so
sensors.single_tap.so
sensors.double_tap.so

View File

@@ -6,7 +6,6 @@
TARGET_HAS_UDFPS := true
TARGET_IS_LEGACY := true
TARGET_HAS_FM := true
# Inherit from sm8150-common
$(call inherit-product, device/xiaomi/sm8150-common/msmnile.mk)
@@ -24,20 +23,11 @@ TARGET_SCREEN_HEIGHT := 2340
TARGET_SCREEN_WIDTH := 1080
# Camera
$(call inherit-product-if-exists, device/xiaomi/miuicamera/device.mk)
PRODUCT_PRODUCT_PROPERTIES += \
ro.miui.build.region=global \
ro.product.mod_device=raphael_global
PRODUCT_PACKAGES += \
libMegviiFacepp-0.5.2 \
libmegface \
libpiex_shim
$(call soong_config_set_bool,camera,override_format_from_reserved,true)
$(call soong_config_set,camera,package_name,com.android.camera)
# Camera motor
PRODUCT_PACKAGES += \
vendor.xiaomi.hardware.motor@1.0-service.xml
@@ -57,14 +47,6 @@ PRODUCT_PACKAGES += \
SettingsOverlayDevice \
SystemUIOverlayDevice
# Power
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/etc/powerhint.json:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.json
# Sensors
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/sensors/hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/hals.conf
# Shipping API level
PRODUCT_SHIPPING_API_LEVEL := 28

View File

@@ -1,28 +1,10 @@
[
{
"repository": "vendor_xiaomi_raphael",
"target_path": "vendor/xiaomi/raphael"
},
{
"repository": "device_xiaomi_sm8150-common",
"target_path": "device/xiaomi/sm8150-common"
},
{
"repository": "vendor_xiaomi_sm8150-common",
"target_path": "vendor/xiaomi/sm8150-common"
},
{
"repository": "device_xiaomi_miuicamera",
"target_path": "device/xiaomi/miuicamera"
},
{
"repository": "vendor_xiaomi_miuicamera",
"target_path": "vendor/xiaomi/miuicamera"
},
{
"repository": "crdroidandroid/android_packages_apps_DolbyAtmos",
"target_path": "packages/apps/DolbyAtmos",
"remote": "github-non-los",
"branch": "16.0"
"repository": "vendor_xiaomi_raphael",
"target_path": "vendor/xiaomi/raphael"
}
]

View File

@@ -19,16 +19,11 @@ from extract_utils.main import (
blob_fixups: blob_fixups_user_type = {
'vendor/etc/init/init.batterysecret.rc': blob_fixup()
.regex_replace('.*seclabel u:r:batterysecret:s0\n', ''),
'vendor/etc/sensors/hals.conf': blob_fixup()
.add_line_if_missing('sensors.udfps.so'),
'vendor/lib/hw/audio.primary.raphael.so': blob_fixup()
.binary_regex_replace(
b'/vendor/lib/liba2dpoffload.so',
b'liba2dpoffload_raphael.so\x00\x00\x00\x00',
)
.replace_needed('libaudioroute.so', 'libaudioroute-v34.so'),
'vendor/lib/libaudioroute_ext.so': blob_fixup()
.replace_needed('libaudioroute.so', 'libaudioroute-v34.so'),
),
'vendor/lib64/camera/components/com.qti.node.watermark.so': blob_fixup()
.add_needed('libpiex_shim.so'),
} # fmt: skip

View File

@@ -11,19 +11,18 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
# Inherit some common Lineage stuff.
$(call inherit-product, vendor/lineage/config/common_full_phone.mk)
# Inherit from raphael device
$(call inherit-product, device/xiaomi/raphael/device.mk)
EVO_BUILD_TYPE := Official
TARGET_BOOT_ANIMATION_RES := 1080
TARGET_BUILD_APERTURE_CAMERA := false
TARGET_HAS_UDFPS := true
# Device identifier. This must come after all inclusions.
# Inherit from raphael device
$(call inherit-product, device/xiaomi/raphael/device.mk)
PRODUCT_NAME := lineage_raphael
PRODUCT_DEVICE := raphael
PRODUCT_MANUFACTURER := Xiaomi
PRODUCT_BRAND := Xiaomi
PRODUCT_MODEL := Mi 9T Pro
PRODUCT_GMS_CLIENTID_BASE := android-xiaomi

View File

@@ -61,7 +61,6 @@ vendor/lib/libsurround_3mic_proc.so
vendor/lib/vendor.qti.hardware.audiohalext@1.0.so
# Camera
vendor/bin/remosaic_daemon
vendor/lib64/camera/com.qti.sensor.imx586_raphael.so
vendor/lib64/camera/com.qti.sensor.ov8856_raphael.so
vendor/lib64/camera/com.qti.sensor.s5k3l6_raphael.so
@@ -123,12 +122,9 @@ vendor/lib64/libmialgo_fs.so
vendor/lib64/libmialgo_rfs.so
vendor/lib64/libmialgo_sd.so
vendor/lib64/libmialgo_utils.so
vendor/lib64/libmialgoengine.so
vendor/lib64/libmibokeh_855.so
vendor/lib64/libmpbase.so
vendor/lib64/libremosaic_daemon.so
vendor/lib64/libswregistrationalgo.so
vendor/lib64/libsymphony-cpu.so
vendor/lib64/libtriplecam_video_optical_zoom.so
vendor/lib64/libvidhance.so
@@ -305,6 +301,7 @@ vendor/etc/init/init.vendor.sensors.rc
vendor/etc/init/vendor.qti.hardware.sensorscalibrate@1.0-service.rc
vendor/etc/init/vendor.sensors.qti.rc
vendor/etc/init/vendor.sensors.sscrpcd.rc
vendor/etc/sensors/hals.conf
vendor/lib64/hw/vendor.qti.hardware.sensorscalibrate@1.0-impl.so
vendor/lib64/libsensorcal.so
vendor/lib64/libsensorslog.so

View File

@@ -4,8 +4,11 @@
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.lineageos.aperture.overlay.device">
<overlay android:targetPackage="org.lineageos.aperture"
android:isStatic="true"
android:priority="200" />
package="org.lineageos.aperture.overlay.device">
<overlay
android:isStatic="true"
android:priority="200"
android:targetPackage="org.lineageos.aperture" />
</manifest>

View File

@@ -18,28 +18,26 @@
<item>10</item>
</string-array>
<!-- An array of triplets made of (camera ID, qualities, frame rates).
<!-- An array of triplets made of (camera ID, qualities, framerates).
These video modes will be added to the available
quality/frame rate combinations of a camera device.
quality/framerate combinations of a camera device.
Make sure the device is able to handle those configurations
and maintain a stable frame rate at any condition.
and maintain a stable framerate at any condition.
Note that you can't add video qualities that aren't
exposed by the camera, only new frame rates.
exposed by the camera, only new framerates.
Valid values of resolution are:
- "sd" (480p)
- "hd" (720p)
- "fhd" (1080p)
- "uhd" (2160p)
Valid values of frame rate are:
Valid values of framerate are:
- "24"
- "30"
- "60"
- "120"
Additionally you can prepend `-` to frame rate to mark it as unsupported.
Example:
<string-array name="config_additionalVideoConfigurations">
<item>0</item> <item>sd|hd|fhd</item> <item>60|120</item>
<item>0</item> <item>uhd</item> <item>-60</item>
<item>1</item> <item>sd|hd|fhd</item> <item>60</item>
</string-array>
-->

View File

@@ -4,8 +4,11 @@
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.overlay.device">
<overlay android:targetPackage="android"
android:isStatic="true"
android:priority="200" />
package="android.overlay.device">
<overlay
android:isStatic="true"
android:priority="200"
android:targetPackage="android" />
</manifest>

View File

@@ -16,32 +16,11 @@
<!-- These resources are around just to allow their values to be customized
for different hardware and product builds. Do not translate. -->
<resources>
<!-- Flag indicating whether we should enable the automatic brightness.
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Flag indicating whether the we should enable the automatic brightness in Settings.
Software implementation will be used if config_hardware_auto_brightness_available is not set -->
<bool name="config_automatic_brightness_available">true</bool>
<!-- Note: This setting is deprecated, please use
config_screenBrightnessSettingMinimumFloat instead -->
<integer name="config_screenBrightnessSettingMinimum">2</integer>
<!-- Note: This setting is deprecated, please use
config_screenBrightnessSettingDefaultFloat instead -->
<integer name="config_screenBrightnessSettingDefault">184</integer>
<!-- Stability requirements in milliseconds for accepting a new brightness level. This is used
for debouncing the light sensor. Different constants are used to debounce the light sensor
when adapting to brighter or darker environments. This parameter controls how quickly
brightness changes occur in response to an observed change in light level that exceeds the
hysteresis threshold. -->
<integer name="config_autoBrightnessBrighteningLightDebounce">2000</integer>
<integer name="config_autoBrightnessDarkeningLightDebounce">4000</integer>
<!-- 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">6</integer>
<!-- 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)
@@ -82,7 +61,8 @@
</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
in the config_autoBrightnessLevels array. As with config_screenBrightnessMinimumNits and
config_screenBrightnessMaximumNits, the display brightness is defined as the measured
brightness of an all-white image.
If this is defined then:
@@ -113,81 +93,6 @@
<item>427.6287</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>0</item>
<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>25</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>105</item>
<item>110</item>
<item>115</item>
<item>120</item>
<item>125</item>
<item>130</item>
<item>135</item>
<item>140</item>
<item>145</item>
<item>150</item>
<item>155</item>
<item>160</item>
<item>165</item>
<item>170</item>
<item>174</item>
<item>179</item>
<item>184</item>
<item>189</item>
<item>194</item>
<item>199</item>
<item>204</item>
<item>209</item>
<item>214</item>
<item>219</item>
<item>224</item>
<item>229</item>
<item>234</item>
<item>239</item>
<item>244</item>
<item>249</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.
@@ -266,20 +171,190 @@
<item>427.6287</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>0</item>
<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>25</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>105</item>
<item>110</item>
<item>115</item>
<item>120</item>
<item>125</item>
<item>130</item>
<item>135</item>
<item>140</item>
<item>145</item>
<item>150</item>
<item>155</item>
<item>160</item>
<item>165</item>
<item>170</item>
<item>174</item>
<item>179</item>
<item>184</item>
<item>189</item>
<item>194</item>
<item>199</item>
<item>204</item>
<item>209</item>
<item>214</item>
<item>219</item>
<item>224</item>
<item>229</item>
<item>234</item>
<item>239</item>
<item>244</item>
<item>249</item>
<item>255</item>
</integer-array>
<!-- Array of hysteresis constraint values for brightening, represented as tenths of a
percent. The length of this array is assumed to be one greater than
config_dynamicHysteresisLuxLevels. The brightening threshold is calculated as
lux * (1.0f + CONSTRAINT_VALUE). When the current lux is higher than this threshold,
the screen brightness is recalculated. See the config_dynamicHysteresisLuxLevels
description for how the constraint value is chosen. -->
<integer-array name="config_dynamicHysteresisBrightLevels">
<item>200</item>
<item>200</item>
<item>200</item>
<item>200</item>
<item>200</item>
<item>200</item>
<item>200</item>
<item>200</item>
<item>250</item>
<item>300</item>
<item>300</item>
<item>300</item>
<item>300</item>
<item>300</item>
<item>300</item>
<item>400</item>
<item>500</item>
</integer-array>
<!-- Array of hysteresis constraint values for darkening, represented as tenths of a
percent. The length of this array is assumed to be one greater than
config_dynamicHysteresisLuxLevels. The darkening threshold is calculated as
lux * (1.0f - CONSTRAINT_VALUE). When the current lux is lower than this threshold,
the screen brightness is recalculated. See the config_dynamicHysteresisLuxLevels
description for how the constraint value is chosen. -->
<integer-array name="config_dynamicHysteresisDarkLevels">
<item>200</item>
<item>200</item>
<item>200</item>
<item>200</item>
<item>200</item>
<item>200</item>
<item>200</item>
<item>200</item>
<item>300</item>
<item>400</item>
<item>400</item>
<item>400</item>
<item>400</item>
<item>400</item>
<item>400</item>
<item>500</item>
<item>500</item>
</integer-array>
<!-- Array of ambient lux threshold values. This is used for determining hysteresis constraint
values by calculating the index to use for lookup and then setting the constraint value
to the corresponding value of the array. The new brightening hysteresis constraint value
is the n-th element of config_dynamicHysteresisBrightLevels, and the new darkening
hysteresis constraint value is the n-th element of config_dynamicHysteresisDarkLevels.
The (zero-based) index is calculated as follows: (MAX is the largest index of the array)
condition calculated index
value < lux[0] 0
lux[n] <= value < lux[n+1] n+1
lux[MAX] <= value MAX+1 -->
<integer-array name="config_dynamicHysteresisLuxLevels">
<item>1</item>
<item>4</item>
<item>12</item>
<item>20</item>
<item>40</item>
<item>65</item>
<item>95</item>
<item>140</item>
<item>200</item>
<item>350</item>
<item>650</item>
<item>1300</item>
<item>2000</item>
<item>3300</item>
<item>6000</item>
<item>10000</item>
</integer-array>
<!-- Screen brightness used to dim the screen when the user activity
timeout expires. May be less than the minimum allowed brightness setting
that can be set by the user. -->
<integer name="config_screenBrightnessDim">6</integer>
<!-- Default screen brightness setting.
Must be in the range specified by minimum and maximum. -->
<integer name="config_screenBrightnessSettingDefault">184</integer>
<!-- Minimum screen brightness setting allowed by the power manager.
The user is forbidden from setting the brightness below this level. -->
<integer name="config_screenBrightnessSettingMinimum">2</integer>
<!-- Stability requirements in milliseconds for accepting a new brightness level. This is used
for debouncing the light sensor. Different constants are used to debounce the light sensor
when adapting to brighter or darker environments. This parameter controls how quickly
brightness changes occur in response to an observed change in light level that exceeds the
hysteresis threshold. -->
<integer name="config_autoBrightnessBrighteningLightDebounce">2000</integer>
<integer name="config_autoBrightnessDarkeningLightDebounce">4000</integer>
<!-- The maximum range of gamma adjustment possible using the screen
auto-brightness adjustment setting. -->
<fraction name="config_autoBrightnessAdjustmentMaxGamma">300%</fraction>
<!-- Amount of time it takes for the light sensor to warm up in milliseconds.
For this time after the screen turns on, the Power Manager
will not debounce light sensor readings -->
<integer name="config_lightSensorWarmupTime">200</integer>
<!-- 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 to enable fp unlock when screen turns off on udfps devices -->
<bool name="config_screen_off_udfps_enabled">true</bool>
<!-- Type of the tap sensor. Empty if tap is not supported. -->
<string name="config_dozeTapSensorType" translatable="false">org.lineageos.sensor.single_tap</string>
<!-- Type of the double tap sensor. Empty if double tap is not supported. -->
<string name="config_dozeDoubleTapSensorType" translatable="false">org.lineageos.sensor.double_tap</string>
</resources>

View File

@@ -18,20 +18,13 @@
*/
-->
<resources>
<!-- The default height of the status bar used in {@link SystemBarUtils#getStatusBarHeight} to
calculate the status bar height. -->
<dimen name="status_bar_height_default">28dp</dimen>
<!-- Height of the status bar in portrait.
<!-- Height of the status bar.
Do not read this dimen directly. Use {@link SystemBarUtils#getStatusBarHeight} instead.
-->
<dimen name="status_bar_height_portrait">30dp</dimen>
<dimen name="status_bar_height_default">32dp</dimen>
<dimen name="status_bar_height_portrait">35dp</dimen>
<dimen name="status_bar_height_landscape">32dp</dimen>
<!-- Height of the status bar in landscape.
Do not read this dimen directly. Use {@link SystemBarUtils#getStatusBarHeight} instead.
-->
<dimen name="status_bar_height_landscape">28dp</dimen>
<!-- Default radius of the software rounded corners. -->
<dimen name="rounded_corner_radius">60px</dimen>
<!-- Radius of the software rounded corners. -->
<dimen name="rounded_corner_radius">84px</dimen>
</resources>

View File

@@ -1,56 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019-2022 Evolution X
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Default value for proximity check on screen wake
NOTE ! - Enable for devices that have a fast response proximity sensor (ideally < 300ms)-->
<bool name="config_proximityCheckOnWake">true</bool>
<integer name="config_proximityCheckTimeout">3000</integer>
<bool name="config_proximityCheckOnWakeEnabledByDefault">false</bool>
<!-- Do the battery/notification LEDs support pulsing?
Used to decide if we show pulse settings -->
<bool name="config_ledCanPulse">true</bool>
<!-- Is the battery LED intrusive? Used to decide if there should be a disable option -->
<bool name="config_intrusiveBatteryLed">true</bool>
<!-- Does the battery LED support multiple colors?
Used to decide if the user can change the colors -->
<bool name="config_multiColorBatteryLed">false</bool>
<!-- Pocket Lock -->
<bool name="config_pocketUseLightSensor">false</bool>
<!-- The list of package IDs that are allowed to use aux cameras.
NOTE: If this list is empty then all apps will be able to use aux cameras. -->
<string-array name="config_cameraAuxPackageAllowList" translatable="false">
<item>com.android.camera</item>
<item>com.google.android.apps.cameralite</item>
<item>org.codeaurora.snapcam</item>
<item>org.lineageos.aperture</item>
<item>org.lineageos.aperture.dev</item>
<item>org.pixelexperience.faceunlock</item>
</string-array>
<!-- The list of package IDs that are allowed to skip camera high frame rate checks. -->
<string-array name="config_cameraHFRPrivAppList" translatable="false">
<item>com.android.camera</item>
<item>org.lineageos.aperture</item>
</string-array>
<!-- Display color inversion availability -->
<bool name="config_displayInversionAvailable">false</bool>
<!-- Defines the sysfs attribute path used by the device
to enable/disable DC dimming. -->
<string name="config_deviceDcDimmingSysfsNode">/sys/devices/platform/soc/soc:qcom,dsi-display-primary/dc_dim</string>
<!-- PowerOffAlarmService -->
<bool name="config_powerOffAlarmEnabled">true</bool>
<!-- Whether the device supports Smart Pixels -->
<bool name="config_supportSmartPixels">true</bool>
</resources>

View File

@@ -4,8 +4,11 @@
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="lineageos.platform.overlay.device">
<overlay android:targetPackage="lineageos.platform"
android:isStatic="true"
android:priority="200" />
package="lineageos.platform.overlay.device">
<overlay
android:isStatic="true"
android:priority="200"
android:targetPackage="lineageos.platform" />
</manifest>

View File

@@ -4,8 +4,11 @@
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.systemui.overlay.lineage.device">
<overlay android:targetPackage="com.android.systemui"
android:isStatic="true"
android:priority="250" />
package="com.android.systemui.overlay.lineage.device">
<overlay
android:isStatic="true"
android:priority="250"
android:targetPackage="com.android.systemui" />
</manifest>

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2009, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->
<!-- These resources are around just to allow their values to be customized
for different hardware and product builds. -->
<resources>
<!-- Color of the UDFPS pressed view -->
<color name="config_udfpsColor">#00ffffff</color>
</resources>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
SPDX-FileCopyrightText: The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Color of the UDFPS pressed view -->
<color name="config_udfpsColor">#00ffffff</color>
</resources>

View File

@@ -4,8 +4,11 @@
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.settings.overlay.device">
<overlay android:targetPackage="com.android.settings"
android:isStatic="true"
android:priority="200" />
package="com.android.settings.overlay.device">
<overlay
android:isStatic="true"
android:priority="200"
android:targetPackage="com.android.settings" />
</manifest>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 KiB

View File

@@ -14,7 +14,7 @@
limitations under the License.
-->
<resources>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- The radius of the enrollment progress bar, in dp -->
<integer name="config_udfpsEnrollProgressBar">100</integer>
</resources>

View File

@@ -1,60 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Device specific doze package -->
<string name="config_customDozePackage" translatable="false">org.lineageos.settings/org.lineageos.settings.doze.DozeSettingsActivity</string>
<!-- The number of vibration intensity levels supported by the device.
Note that this should correspond to the ability to vary the vibration amplitude, with
enough dynamic range to have at least as many distinct intensity levels as defined here.
Supported values are 1, 2, 3. If '1', the settings app will use a toggle for the settings,
otherwise a slider. If '3', the settings app maps intensities directly to the levels
supported by the Vibrator HAL APIs. If '2', then the levels will be mapped to
VIBRATION_INTENSITY_LOW and VIBRATION_INTENSITY_HIGH, which gives the most range for
scaling vibrations. The medium intensity will be skipped.
The default intensity values are configured at
frameworks/base/core/res/res/values/config.xml's config_default[type]VibrationIntensity.
Make sure that each default intensity value is consistent with the supported levels set
here. If this settings supports only 2 levels, for example, then the default intensity
should be either LOW (1) or HIGH (3).
-->
<integer name="config_vibration_supported_intensity_levels">3</integer>
<!-- Whether to show a preference item for regulatory information in About phone -->
<bool name="config_show_regulatory_info">true</bool>
<!-- Whether to show the Preference for Adaptive connectivity -->
<bool name="config_show_adaptive_connectivity">false</bool>
<!-- Whether device supports increased touch sensitvity -->
<bool name="config_show_touch_sensitivity">true</bool>
<!-- Show battery cycle count -->
<bool name="config_show_battery_cycle_count" translatable="false">true</bool>
<!-- Whether to show double tap ambient settings -->
<bool name="config_supports_double_tap_ambient" translatable="false">true</bool>
<!-- Whether to show volume steps settings -->
<bool name="config_supports_volume_steps" translatable="false">true</bool>
<!-- Whether to show vendor security patch level -->
<bool name="config_show_vendor_patch_level" translatable="false">false</bool>
</resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019-2026 Evolution X
Copyright (C) 2019-2025 Evolution X
SPDX-License-Identifier: Apache-2.0
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">

View File

@@ -4,8 +4,11 @@
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.systemui.overlay.device">
<overlay android:targetPackage="com.android.systemui"
android:isStatic="true"
android:priority="200" />
package="com.android.systemui.overlay.device">
<overlay
android:isStatic="true"
android:priority="200"
android:targetPackage="com.android.systemui" />
</manifest>

View File

@@ -16,20 +16,13 @@
*/
-->
<resources>
<!-- Location on the screen of the center of the physical power button. This is a reasonable
default that should be overridden by device-specific overlays. -->
<dimen name="physical_power_button_center_screen_location_y">950px</dimen>
<!-- Location on the screen of the center of the fingerprint sensor. For devices with under
display fingerprint sensors, this directly corresponds to the fingerprint sensor's location.
For devices with sensors on the back of the device, this corresponds to the location on the
screen directly in front of the sensor. -->
<dimen name="physical_fingerprint_sensor_center_screen_location_y">1900px</dimen>
<!-- Microns/ums (1000 um = 1mm) per pixel for the given device. If unspecified, UI that
relies on this value will not be sized correctly. -->
<item name="pixel_pitch" format="float" type="dimen">62.98</item>
<!-- Recognizing fingerprint animation -->
<dimen name="udfps_animation_offset">35dp</dimen>
<!-- Location on the screen of the center of the physical power button. -->
<dimen name="physical_power_button_center_screen_location_y">950px</dimen>
<!-- Location on the screen of the center of the fingerprint sensor. -->
<dimen name="physical_fingerprint_sensor_center_screen_location_y">1900px</dimen>
</resources>

View File

@@ -1,32 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<resources>
<!-- Update battery info every second when device is charging -->
<bool name="config_alternateFastchargeInfoUpdate">true</bool>
<!-- FPSInfoService FPS node file path -->
<string name="config_fpsInfoSysNode" translatable="false">/sys/class/drm/sde-crtc-0/measured_fps</string>
<!-- Whether to disable Smart Pixels on UDFPS -->
<bool name="config_disableSmartPixelsOnUDFPS">true</bool>
<!-- Show 5G toggle in internet dialog when available -->
<bool name="config_supportsVONR">false</bool>
<!-- The CPU temperature divider, if needed -->
<integer name="config_cpuTempDivider" translatable="false">1000</integer>
</resources>