12 Commits
vic ... udc

Author SHA1 Message Date
pjgowtham
754e0196d8 cepheus: fingerprint: Set dim layer zOrder
Requires: I367b2c395aeb8cb7cb9e3cc38eca98477befe007
Change-Id: I881db78186fa9c7b350e79ac4ef90f53ee4cfbcf
2024-11-13 22:32:55 +01:00
basamaryan
67db15d158 cepheus: overlay: Disable turbulence noise 2024-10-12 11:11:43 +02:00
luffitys
3f7d519e7c cepheus: Build missing WFD libs
Co-authored-by: Edwin Moquete <edwinmmoquete@gmail.com>
Change-Id: I2cd360cc7fc1260e99111f18f09fefb8231ce01f
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
2024-09-10 21:45:37 +02:00
chematelegram
0499be91c1 cepheus: Remove extra slash
* It's harmless but let's sanitize and avoid any possible risk in the future
2024-09-09 09:33:51 +02:00
chematelegram
d204e63df9 cepheus: Adjust reserved size for GApps
* Again hitting the Super partition size. We won't miss that reserved size in System anyway
2024-09-05 10:48:05 +02:00
Yumi Yukimura
0a2c7d8154 cepheus: Switch to QTI Memtrack AIDL HAL 2024-09-04 15:31:50 +02:00
chematelegram
c55b20840b cepheus: Support automated DC dimming 2024-09-02 10:00:47 +02:00
chematelegram
9153997a3a cepheus: Move Soterservice to vendor 2024-09-01 21:33:05 +02:00
chematelegram
39f9d55360 cepheus: Drop updatable GPU drivers 2024-09-01 21:19:07 +02:00
chematelegram
c5fec692f0 Revert "cepheus: Import sensors.mius.proximity.so"
This reverts commit f2b7a133c5.
2024-09-01 18:10:18 +02:00
¨raystef66¨
1ba5793a8d cepheus: Switch back to nabu V13.0.3.0.RKXCNXM graphics blobs
* So Magic Eraser/Editor stops crashing.
* Also stop crashes while editing on Google Photos

This reverts following commits:

37941cbdb03469fdefb50fc749e2314c5063704e
ca151b80e89f73aa8a189dbf7227ae3ec3414ef3
610cc43636f3bd4d7b1726a5b22ff6684fcf8d1d
bd485be6dd076641f9bb2a0186ea284a3befcd57

Based on a7c8a40fe6
2024-09-01 18:09:23 +02:00
chematelegram
f81a9ee53e Merge pull request #1 from dkpost3/patch-1
fix symlink
2024-08-19 00:25:01 +02:00
46 changed files with 1492 additions and 687 deletions

2
.gitignore vendored
View File

@@ -1,2 +0,0 @@
out/
extract-files.py

View File

@@ -20,6 +20,20 @@ ifeq ($(TARGET_DEVICE),cepheus)
include $(call all-makefiles-under,$(LOCAL_PATH))
LPFLASH := $(HOST_OUT_EXECUTABLES)/lpflash$(HOST_EXECUTABLE_SUFFIX)
INSTALLED_SUPERIMAGE_DUMMY_TARGET := $(PRODUCT_OUT)/super_dummy.img
$(INSTALLED_SUPERIMAGE_DUMMY_TARGET): $(PRODUCT_OUT)/super_empty.img $(LPFLASH)
$(call pretty,"Target dummy super image: $@")
$(hide) touch $@
$(hide) echo $(CURDIR)
$(hide) $(LPFLASH) $@ $(PRODUCT_OUT)/super_empty.img
.PHONY: super_dummyimage
super_dummyimage: $(INSTALLED_SUPERIMAGE_DUMMY_TARGET)
INSTALLED_RADIOIMAGE_TARGET += $(INSTALLED_SUPERIMAGE_DUMMY_TARGET)
include $(CLEAR_VARS)
# A/B builds require us to create the mount points at compile time.

View File

@@ -51,6 +51,7 @@ TARGET_2ND_CPU_VARIANT_RUNTIME := cortex-a76
TARGET_OTA_ASSERT_DEVICE := cepheus
# Audio
AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := true
AUDIO_FEATURE_ENABLED_INSTANCE_ID := true
TARGET_PROVIDES_AUDIO_EXTNS := true
BOARD_USES_ALSA_AUDIO := true
@@ -64,12 +65,15 @@ TARGET_NO_BOOTLOADER := true
# Camera
USE_DEVICE_SPECIFIC_CAMERA := true
TARGET_CAMERA_SERVICE_EXT_LIB := //$(DEVICE_PATH):libcameraservice_extension.cepheus
# Display
TARGET_HAS_HDR_DISPLAY := true
TARGET_HAS_WIDE_COLOR_DISPLAY := true
TARGET_USES_COLOR_METADATA := true
TARGET_USES_DISPLAY_RENDER_INTENTS := true
TARGET_USES_DRM_PP := true
TARGET_USES_GRALLOC4 := true
TARGET_USES_HWC2 := true
USE_OPENGL_RENDERER := true
# Graphics
@@ -82,7 +86,7 @@ TARGET_ENABLE_MEDIADRM_64 := true
TARGET_FS_CONFIG_GEN := $(DEVICE_PATH)/configs/config.fs
# FOD
$(call soong_config_set,surfaceflinger,udfps_lib,//$(DEVICE_PATH):libudfps_extension.cepheus)
TARGET_SURFACEFLINGER_UDFPS_LIB := //$(DEVICE_PATH):libudfps_extension.cepheus
TARGET_USES_FOD_ZPOS := true
# GPS
@@ -91,15 +95,15 @@ LOC_HIDL_VERSION := 4.0
# HIDL
DEVICE_MANIFEST_FILE := $(DEVICE_PATH)/configs/hidl/manifest.xml
DEVICE_MANIFEST_FILE += $(DEVICE_PATH)/configs/hidl/c2_manifest.xml
DEVICE_MATRIX_FILE := hardware/qcom-caf/common/compatibility_matrix.xml
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE := \
$(DEVICE_PATH)/configs/hidl/framework_compatibility_matrix.xml \
hardware/qcom-caf/common/vendor_framework_compatibility_matrix.xml \
hardware/xiaomi/vintf/xiaomi_framework_compatibility_matrix.xml \
vendor/lineage/config/device_framework_matrix.xml
# Init
$(call soong_config_set,libinit,vendor_init_lib,//$(DEVICE_PATH):libinit_cepheus)
TARGET_INIT_VENDOR_LIB := //$(DEVICE_PATH):libinit_cepheus
TARGET_RECOVERY_DEVICE_MODULES := libinit_cepheus
# Kernel
@@ -114,8 +118,8 @@ BOARD_RAMDISK_OFFSET := 0x01000000
TARGET_KERNEL_CLANG_COMPILE := true
TARGET_KERNEL_CONFIG := cepheus_defconfig
TARGET_KERNEL_SOURCE := kernel/xiaomi/cepheus
TARGET_KERNEL_CLANG_VERSION := r547379
KERNEL_TOOLCHAIN := $(shell pwd)/prebuilts/clang/host/linux-x86/clang-r536225/bin
TARGET_KERNEL_CLANG_VERSION := r530567
KERNEL_TOOLCHAIN := $(shell pwd)/prebuilts/clang/host/linux-x86/clang-r498229b/bin
KERNEL_SUPPORTS_LLVM_TOOLS := true
TARGET_KERNEL_ADDITIONAL_FLAGS := AS=llvm-as AR=llvm-ar NM=llvm-nm OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump STRIP=llvm-strip LD=ld.lld
TARGET_KERNEL_ADDITIONAL_FLAGS += \
@@ -124,6 +128,7 @@ TARGET_KERNEL_ADDITIONAL_FLAGS += \
BOARD_KERNEL_CMDLINE := console=ttyMSM0,115200n8 earlycon=msm_geni_serial,0xa90000
BOARD_KERNEL_CMDLINE += androidboot.hardware=qcom androidboot.console=ttyMSM0
BOARD_KERNEL_CMDLINE += androidboot.usbcontroller=a600000.dwc3
#BOARD_KERNEL_CMDLINE += androidboot.selinux=permissive
BOARD_KERNEL_CMDLINE += service_locator.enable=1
BOARD_KERNEL_CMDLINE += loop.max_part=7
BOARD_KERNEL_CMDLINE += androidboot.init_fatal_reboot_target=recovery
@@ -131,8 +136,8 @@ BOARD_KERNEL_CMDLINE += kpti=off
BOARD_KERNEL_CMDLINE += androidboot.boot_devices=soc/1d84000.ufshc
# Lineage Health
$(call soong_config_set,lineage_health,charging_control_supports_bypass,false)
$(call soong_config_set,lineage_health,charging_control_charging_path,/sys/class/power_supply/battery/charging_enabled)
TARGET_HEALTH_CHARGING_CONTROL_SUPPORTS_BYPASS := false
TARGET_HEALTH_CHARGING_CONTROL_CHARGING_PATH := /sys/class/power_supply/battery/charging_enabled
# Media
TARGET_USES_ION := true
@@ -143,6 +148,7 @@ BOARD_BOOTIMAGE_PARTITION_SIZE := 134217728
BOARD_CACHEIMAGE_PARTITION_SIZE := 268435456
BOARD_DTBOIMG_PARTITION_SIZE := 33554432
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 67108864
BOARD_USERDATAIMAGE_PARTITION_SIZE := 57453555712
BOARD_FLASH_BLOCK_SIZE := 262144 # (BOARD_KERNEL_PAGESIZE * 64)
# BOARD_SYSTEMIMAGE_PARTITION_SIZE := 3758096384
@@ -156,7 +162,15 @@ BOARD_SUPER_PARTITION_SYSTEM_DEVICE_SIZE := 3758096384
BOARD_SUPER_PARTITION_VENDOR_DEVICE_SIZE := 1610612736
BOARD_CEPHEUS_DYNAMIC_PARTITIONS_SIZE := 5364514816 # BOARD_SUPER_PARTITION_SIZE - 4MB
-include vendor/lineage/config/BoardConfigReservedSize.mk
# Reserve space for gapps install
ifneq ($(WITH_GMS),true)
BOARD_SYSTEMIMAGE_EXTFS_INODE_COUNT := -1
BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE := 424673280
BOARD_SYSTEM_EXTIMAGE_EXTFS_INODE_COUNT := -1
BOARD_SYSTEM_EXTIMAGE_PARTITION_RESERVED_SIZE := 703718400
BOARD_PRODUCTIMAGE_EXTFS_INODE_COUNT := -1
BOARD_PRODUCTIMAGE_PARTITION_RESERVED_SIZE := 545259520
endif
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
@@ -193,7 +207,7 @@ BOARD_USES_QCOM_HARDWARE := true
# Recovery
TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/rootdir/etc/fstab.qcom
TARGET_RECOVERY_PIXEL_FORMAT := BGRA_8888
TARGET_RECOVERY_PIXEL_FORMAT := "BGRA_8888"
# Releasetools
TARGET_RELEASETOOLS_EXTENSIONS := $(DEVICE_PATH)
@@ -212,6 +226,8 @@ SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/private
SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/public
BOARD_VENDOR_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/vendor
#SELINUX_IGNORE_NEVERALLOWS := true
# USB
TARGET_QTI_USB_SUPPORTS_AUDIO_ACCESSORY := true

View File

@@ -19,11 +19,3 @@ cc_library_shared {
proprietary: true,
srcs: ["megvii_shim.cpp"],
}
cc_library_static {
name: "libcameraservice_extension.cepheus",
srcs: ["CameraProviderExtension.cpp"],
include_dirs: [
"frameworks/av/services/camera/libcameraservice/common"
],
}

View File

@@ -1,78 +0,0 @@
/*
* Copyright (C) 2024 LibreMobileOS Foundation
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "CameraProviderExtension.h"
#include <fstream>
#define TORCH_BRIGHTNESS "brightness"
#define TORCH_MAX_BRIGHTNESS "max_brightness"
#define TOGGLE_SWITCH "/sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d300/leds/led:switch_2/brightness"
static std::string kTorchLedPaths[] = {
"/sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d300/leds/led:torch_0",
"/sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d300/leds/led:torch_1",
};
/**
* Write value to path and close file.
*/
template <typename T>
static void set(const std::string& path, const T& value) {
std::ofstream file(path);
file << value;
}
/**
* Read value from the path and close file.
*/
template <typename T>
static T get(const std::string& path, const T& def) {
std::ifstream file(path);
T result;
file >> result;
return file.fail() ? def : result;
}
bool supportsTorchStrengthControlExt() {
return true;
}
bool supportsSetTorchModeExt() {
return false;
}
int32_t getTorchDefaultStrengthLevelExt() {
return 80;
}
int32_t getTorchMaxStrengthLevelExt() {
// 200 (out of 500) is a sane max brightness
return 200;
}
int32_t getTorchStrengthLevelExt() {
// We write same value in the both LEDs,
// so get from one.
auto node = kTorchLedPaths[0] + "/" + TORCH_BRIGHTNESS;
return get(node, 0);
}
void setTorchStrengthLevelExt(int32_t torchStrength, bool enabled) {
set(TOGGLE_SWITCH, 0);
for (auto& path : kTorchLedPaths) {
auto node = path + "/" + TORCH_BRIGHTNESS;
set(node, torchStrength);
}
if (enabled)
set(TOGGLE_SWITCH, 255);
}
void setTorchModeExt(bool enabled) {
int32_t strength = getTorchDefaultStrengthLevelExt();
setTorchStrengthLevelExt(enabled ? strength : 0, enabled);
}

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -3,6 +3,15 @@
SPDX-License-Identifier: Apache-2.0
-->
<compatibility-matrix version="2.0" type="framework" target-level="5">
<hal format="hidl" optional="true">
<name>android.hardware.light</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>ILight</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>com.qualcomm.qti.ant</name>
<transport>hwbinder</transport>
@@ -12,6 +21,14 @@
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.dolby.hardware.dms</name>
<version>2.0</version>
<interface>
<name>IDms</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.goodix.hardware.biometrics.fingerprint</name>
<version>2.0-1</version>

View File

@@ -86,14 +86,14 @@
<fqname>@4.1::IKeymasterDevice/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.media.c2</name>
<name>android.hardware.light</name>
<transport>hwbinder</transport>
<version>1.0</version>
<version>2.0</version>
<interface>
<name>IComponentStore</name>
<name>ILight</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IComponentStore/default</fqname>
<fqname>@2.0::ILight/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.media.omx</name>
@@ -578,4 +578,14 @@
</interface>
<fqname>@1.0::IPasrManager/default</fqname>
</hal>
<hal format="hidl">
<name>vendor.dolby.hardware.dms</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>IDms</name>
<instance>default</instance>
</interface>
<fqname>@2.0::IDms/default</fqname>
</hal>
</manifest>

View File

@@ -98,6 +98,7 @@ Only the three quirks included above are recognized at this point:
| | 4096 2304 60 220 2211840 |
| | 7680 4320 30 220 3888000 |
| | 8192 4320 24 220 3317760 |
| mpeg4-sw | 1920 1088 30 40 244800 244800 |
| vp8 | 1280 720 240 100 864000 1036800 |
| | 1920 1088 120 100 979200 |
| | 3840 2160 30 100 972000 |
@@ -109,6 +110,7 @@ Only the three quirks included above are recognized at this point:
| | 4096 2304 60 220 2211840 |
| | 7680 4320 30 220 3888000 |
| | 8192 4320 24 220 3317760 |
| h263-sw | 864 480 30 16 48600 48600 |
| mpeg2 | 1920 1088 30 40 244800 244800 |
|_____________|_____________________________________________________|
@@ -150,16 +152,20 @@ Only the three quirks included above are recognized at this point:
| | 3840 2160 60 160 1944000 |
| | 4096 2160 48 160 1658880 |
| | 4096 2304 30 160 1105920 |
| mpeg4-sw | 1280 720 30 4 108000 108000 |
| vp8 | 1280 720 240 40 864000 1036800 |
| | 1920 1088 120 40 979200 |
| | 3840 2160 30 40 972000 |
| | 4096 2160 30 40 1036800 |
| | 4096 2304 24 40 884736 |
| h263-sw | 864 480 30 2 48600 48600 |
|__________|_____________________________________________________|
-->
<MediaCodecs>
<Include href="media_codecs_google_audio.xml" />
<Include href="media_codecs_dolby_audio.xml" />
<Include href="media_codecs_google_telephony.xml" />
<Settings>
<Setting name="max-video-encoder-input-buffers" value="11" />
</Settings>
@@ -229,6 +235,33 @@ Only the three quirks included above are recognized at this point:
<Limit name="performance-point-512x512" value="480" />
<Feature name="bitrate-modes" value="CQ" />
</MediaCodec>
<!-- Video Software -->
<MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="96x96" max="864x480" />
<Limit name="alignment" value="4x4" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="36" max="48600" />
<Limit name="bitrate" range="1-2000000" />
<Limit name="frame-rate" range="1-30" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-720x480" value="30" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" type="video/mp4v-es" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="96x96" max="1280x720" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="36" max="108000" />
<Limit name="bitrate" range="1-4000000" />
<Limit name="frame-rate" range="1-30" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1280x720" value="30" />
</MediaCodec>
</Encoders>
<Decoders>
<!-- Video Hardware -->
@@ -378,5 +411,33 @@ Only the three quirks included above are recognized at this point:
<Limit name="performance-point-4096x2160" value="60" />
<Limit name="performance-point-3840x2160" value="60" />
</MediaCodec>
<!-- Video Software -->
<MediaCodec name="OMX.qti.video.decoder.h263sw" type="video/3gpp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="864x480" />
<Limit name="alignment" value="4x4" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="36" max="48600" />
<Limit name="bitrate" range="1-16000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-720x480" value="30" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es">
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x96" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="36" max="244800" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="30" />
</MediaCodec>
<MediaCodec name="OMX.google.opus.decoder" type="audio/opus" update="true" rank="100"/>
</Decoders>
<Include href="media_codecs_google_video.xml" />
</MediaCodecs>

View File

@@ -104,7 +104,6 @@ PRODUCT_PACKAGES += \
android.hardware.camera.provider@2.4-service_64
PRODUCT_PACKAGES += \
libc29.vendor \
libcamera2ndk_vendor \
libdng_sdk.vendor \
libgui_vendor \
@@ -123,6 +122,9 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.camera.full.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.full.xml \
frameworks/native/data/etc/android.hardware.camera.raw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.raw.xml
PRODUCT_COPY_FILES += \
prebuilts/vndk/v29/arm64/arch-arm64-armv8-a/shared/vndk-sp/libc++.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libc++.so
# Clone apps exemption
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/sysconfig/preinstalled-packages-platform-xiaomi-product.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/sysconfig/preinstalled-packages-platform-xiaomi-product.xml
@@ -139,8 +141,8 @@ PRODUCT_PACKAGES += \
android.hardware.graphics.composer@2.4-service \
android.hardware.graphics.mapper@3.0-impl-qti-display \
android.hardware.graphics.mapper@4.0-impl-qti-display \
gralloc.qcom \
hwcomposer.qcom \
gralloc.msmnile \
hwcomposer.msmnile \
libdisplayconfig.qti \
libdisplayconfig.system.qti \
libqdMetaData \
@@ -153,37 +155,36 @@ PRODUCT_PACKAGES += \
vendor.qti.hardware.display.mapper@2.0.vendor \
vendor.qti.hardware.display.mapper@3.0.vendor \
vendor.qti.hardware.display.mapper@4.0.vendor \
vendor.qti.hardware.memtrack-service
vendor.qti.hardware.memtrack-service
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml
# Dolby
PRODUCT_PACKAGES += \
libstagefright_foundation-v33 \
XiaomiDolby
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/dolby/dax-default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/dolby/dax-default.xml \
$(LOCAL_PATH)/configs/media/media_codecs_dolby_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_dolby_audio.xml
PRODUCT_COPY_FILES += \
prebuilts/vndk/v33/arm/arch-arm-armv7-a-neon/shared/vndk-core/libstagefright_foundation.so:$(TARGET_COPY_OUT_VENDOR)/lib/libstagefright_foundation-v33.so \
prebuilts/vndk/v33/arm64/arch-arm64-armv8-a/shared/vndk-core/libstagefright_foundation.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libstagefright_foundation-v33.so
# DRM
PRODUCT_PACKAGES += \
android.hardware.drm@1.0.vendor \
android.hardware.drm@1.1.vendor \
android.hardware.drm@1.2.vendor \
android.hardware.drm@1.3.vendor \
android.hardware.drm-service.clearkey \
libcrypto_shim.vendor
android.hardware.drm-service.clearkey
# Enable incremental FS feature
PRODUCT_PROPERTY_OVERRIDES += ro.incremental.enable=1
# Enable blurs, hidden under dev option
PRODUCT_PRODUCT_PROPERTIES += \
ro.launcher.blur.appLaunch=1 \
ro.launcher.blur.appLaunch=0 \
ro.surface_flinger.supports_background_blur=1 \
persist.sys.sf.disable_blurs=0 \
persist.sys.sf.disable_blurs=1 \
ro.sf.blurs_are_expensive=1
# Fastbootd
@@ -200,6 +201,7 @@ PRODUCT_PACKAGES += \
android.hardware.biometrics.fingerprint@2.3.vendor \
vendor.goodix.hardware.biometrics.fingerprint@2.1.vendor
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml \
@@ -288,7 +290,7 @@ PRODUCT_PACKAGES += \
# Lights
PRODUCT_PACKAGES += \
android.hardware.light-service.lineage
android.hardware.lights-service.cepheus
# Lineage Health
PRODUCT_PACKAGES += \
@@ -301,19 +303,25 @@ PRODUCT_PACKAGES += \
# Media
PRODUCT_PACKAGES += \
libOmxAacEnc \
libOmxAmrEnc \
libOmxCore \
libOmxEvrcEnc \
libOmxG711Enc \
libOmxQcelp13Enc \
libOmxVdec \
libOmxVenc \
libstagefrighthw \
vendor.qti.hardware.capabilityconfigstore@1.0.vendor
# Media
PRODUCT_PACKAGES += \
libcodec2_vndk.vendor \
libcodec2_hidl@1.0.vendor \
libavservices_minijail \
libavservices_minijail_32 \
libavservices_minijail.vendor \
libavservices_minijail_vendor \
libcodec2_hidl@1.0.vendor \
libcodec2_soft_common.vendor \
libcodec2_vndk.vendor \
libOmxCore \
libOmxVdec \
libOmxVenc \
libsfplugin_ccodec_utils.vendor \
libstagefrighthw \
vendor.qti.hardware.capabilityconfigstore@1.0.vendor
libavservices_minijail_vendor
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/media/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
@@ -332,9 +340,14 @@ PRODUCT_COPY_FILES += \
hardware/qcom-caf/sm8150/media/conf_files/msmnile/mediacodec-seccomp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy \
hardware/qcom-caf/sm8150/media/conf_files/msmnile/system_properties.xml:$(TARGET_COPY_OUT_VENDOR)/etc/system_properties.xml
PRODUCT_COPY_FILES += \
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml
# MiuiCamera
TARGET_CAMERA_PACKAGE_NAME := com.android.camera
$(call soong_config_set,camera,override_format_from_reserved,true)
TARGET_CAMERA_OVERRIDE_FORMAT_FROM_RESERVED := true
TARGET_USES_MIUI_CAMERA := true
$(call inherit-product-if-exists, vendor/xiaomi/miuicamera-cepheus/config.mk)
@@ -357,6 +370,7 @@ PRODUCT_PACKAGES += \
PRODUCT_PACKAGES += \
android.hardware.nfc@1.2-service \
android.hardware.secure_element@1.2.vendor \
NfcNci \
Tag
PRODUCT_PACKAGES += \
@@ -400,6 +414,9 @@ PRODUCT_PACKAGES += \
# Partitions
PRODUCT_USE_DYNAMIC_PARTITIONS := true
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/partitions/flash_super_dummy.sh:install/bin/flash_super_dummy.sh
# Power
PRODUCT_PACKAGES += \
android.hardware.power-service.cepheus-libperfmgr \
@@ -475,7 +492,6 @@ PRODUCT_PACKAGES += \
# Soong namespaces
PRODUCT_SOONG_NAMESPACES += \
$(LOCAL_PATH) \
bootable/deprecated-ota \
hardware/google/interfaces \
hardware/xiaomi
@@ -522,9 +538,6 @@ PRODUCT_COPY_FILES += \
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/rootdir/etc/ueventd.rc:$(TARGET_COPY_OUT_VENDOR)/etc/ueventd.rc
# Update
AB_OTA_UPDATER := false
# USB
PRODUCT_PACKAGES += \
android.hardware.usb@1.3-service.dual_role_usb
@@ -538,6 +551,9 @@ PRODUCT_PACKAGES += \
vendor.qti.hardware.vibrator.service
# Vulkan
PRODUCT_PACKAGES += \
libvulkan
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute.xml \
frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \
@@ -584,10 +600,7 @@ PRODUCT_PACKAGES += \
# WiFi Display
PRODUCT_PACKAGES += \
android.media.audio.common.types-V4-cpp \
libbinder_shim \
libgui_shim \
libinput_shim \
android.media.audio.common.types-V2-cpp \
libnl \
libwfdaac_vendor \
vendor.qti.hardware.display.config-V5-ndk

View File

@@ -5,23 +5,22 @@
},
{
"repository": "kernel_xiaomi_cepheus",
"target_path": "kernel/xiaomi/cepheus",
"branch": "bka"
"target_path": "kernel/xiaomi/cepheus"
},
{
"repository": "hardware_xiaomi",
"target_path": "hardware/xiaomi"
},
{
"repository": "nhansp/android_vendor_xiaomi_miuicamera",
"target_path": "vendor/xiaomi/miuicamera-cepheus",
"branch": "leica-5.0-cepheus",
"repository": "crdroidandroid/android_prebuilts_clang_host_linux-x86_clang-r530567",
"target_path": "prebuilts/clang/host/linux-x86/clang-r530567",
"branch": "14.0",
"remote": "gitlab"
},
{
"repository": "crdroidandroid/android_prebuilts_clang_host_linux-x86_clang-r547379",
"target_path": "prebuilts/clang/host/linux-x86/clang-r547379",
"branch": "15.0",
"repository": "chematelegram/android_vendor_xiaomi_miuicamera",
"target_path": "vendor/xiaomi/miuicamera-cepheus",
"branch": "leica-5.0-cepheus",
"remote": "gitlab"
}
]

View File

@@ -61,22 +61,8 @@ fi
function blob_fixup() {
case "${1}" in
vendor/lib64/hw/camera.qcom.so)
sed -i "s|libc++.so|libc29.so|g" "${2}"
;;
system_ext/lib/libwfdmmsrc_system.so)
[ "$2" = "" ] && return 0
grep -q "libgui_shim.so" "${2}" || "${PATCHELF}" --add-needed "libgui_shim.so" "${2}"
;;
system_ext/lib/libwfdservice.so)
[ "$2" = "" ] && return 0
"${PATCHELF}" --replace-needed "android.media.audio.common.types-V1-cpp.so" "android.media.audio.common.types-V4-cpp.so" "${2}"
;;
system_ext/lib64/libwfdnative.so)
[ "$2" = "" ] && return 0
"${PATCHELF}" --replace-needed "android.hidl.base@1.0.so" "libhidlbase.so" "${2}"
grep -q "libbinder_shim.so" "${2}" || "${PATCHELF}" --add-needed "libbinder_shim.so" "${2}"
grep -q "libinput_shim.so" "${2}" || "${PATCHELF}" --add-needed "libinput_shim.so" "${2}"
patchelf --remove-needed "android.hidl.base@1.0.so" "${2}"
;;
vendor/bin/mi_thermald)
sed -i 's/%d\/on/%d\/../g' "${2}"
@@ -97,9 +83,6 @@ function blob_fixup() {
vendor/lib64/libdlbdsservice.so | vendor/lib64/libstagefright_soft_ac4dec.so | vendor/lib64/libstagefrightdolby.so)
"${PATCHELF}" --replace-needed "libstagefright_foundation.so" "libstagefright_foundation-v33.so" "${2}"
;;
vendor/lib64/libwvhidl.so | vendor/lib64/mediadrm/libwvdrmengine.so)
"${PATCHELF}" --add-needed "libcrypto_shim.so" "${2}"
;;
esac
}

52
light/Android.bp Normal file
View File

@@ -0,0 +1,52 @@
// 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.
cc_binary {
relative_install_path: "hw",
defaults: ["hidl_defaults"],
name: "android.hardware.light@2.0-service.cepheus",
init_rc: ["hidl/android.hardware.light@2.0-service.cepheus.rc"],
srcs: [
"hidl/service.cpp",
"hidl/Light.cpp",
],
vendor: true,
shared_libs: [
"android.hardware.light@2.0",
"libbase",
"libhardware",
"libhidlbase",
"liblog",
"libutils",
],
}
cc_binary {
name: "android.hardware.lights-service.cepheus",
relative_install_path: "hw",
init_rc: ["aidl/android.hardware.lights.cepheus.rc"],
vintf_fragments: ["aidl/android.hardware.lights.cepheus.xml"],
vendor: true,
shared_libs: [
"libbase",
"liblog",
"libhardware",
"libbinder_ndk",
"android.hardware.light-V1-ndk",
],
srcs: [
"aidl/Lights.cpp",
"aidl/main.cpp",
],
}

164
light/aidl/Lights.cpp Normal file
View File

@@ -0,0 +1,164 @@
/*
* Copyright (C) 2019 The Android Open Source Project
* Copyright (C) 2020-2021 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#define LOG_TAG "android.hardware.lights-service_cepheus"
#include "Lights.h"
#include <android-base/file.h>
#include <android-base/logging.h>
namespace {
/* clang-format off */
#define PPCAT_NX(A, B) A/B
#define PPCAT(A, B) PPCAT_NX(A, B)
#define STRINGIFY_INNER(x) #x
#define STRINGIFY(x) STRINGIFY_INNER(x)
#define LEDS(x) PPCAT(/sys/class/leds, x)
#define WHITE_ATTR(x) STRINGIFY(PPCAT(LEDS(white), x))
/* clang-format on */
using ::android::base::ReadFileToString;
using ::android::base::WriteStringToFile;
// Default max brightness
constexpr auto kDefaultMaxLedBrightness = 255;
// Write value to path and close file.
bool WriteToFile(const std::string& path, uint32_t content) {
return WriteStringToFile(std::to_string(content), path);
}
uint32_t RgbaToBrightness(uint32_t color) {
// Extract brightness from AARRGGBB.
uint32_t alpha = (color >> 24) & 0xFF;
// Retrieve each of the RGB colors
uint32_t red = (color >> 16) & 0xFF;
uint32_t green = (color >> 8) & 0xFF;
uint32_t blue = color & 0xFF;
// Scale RGB colors if a brightness has been applied by the user
if (alpha != 0xFF) {
red = red * alpha / 0xFF;
green = green * alpha / 0xFF;
blue = blue * alpha / 0xFF;
}
return (77 * red + 150 * green + 29 * blue) >> 8;
}
inline uint32_t RgbaToBrightness(uint32_t color, uint32_t max_brightness) {
return RgbaToBrightness(color) * max_brightness / 0xFF;
}
inline bool IsLit(uint32_t color) {
return color & 0x00ffffff;
}
} // anonymous namespace
namespace aidl {
namespace android {
namespace hardware {
namespace light {
Lights::Lights() {
std::map<int, std::function<void(int id, const HwLightState&)>> lights_{
{(int)LightType::NOTIFICATIONS,
[this](auto&&... args) { setLightNotification(args...); }},
{(int)LightType::BATTERY, [this](auto&&... args) { setLightNotification(args...); }},
{(int)LightType::BACKLIGHT, {}}};
std::vector<HwLight> availableLights;
for (auto const& pair : lights_) {
int id = pair.first;
HwLight hwLight{};
hwLight.id = id;
availableLights.emplace_back(hwLight);
}
mAvailableLights = availableLights;
mLights = lights_;
std::string buf;
if (ReadFileToString(WHITE_ATTR(max_brightness), &buf)) {
max_led_brightness_ = std::stoi(buf);
} else {
max_led_brightness_ = kDefaultMaxLedBrightness;
LOG(ERROR) << "Failed to read max LED brightness, fallback to " << kDefaultMaxLedBrightness;
}
}
ndk::ScopedAStatus Lights::setLightState(int id, const HwLightState& state) {
auto it = mLights.find(id);
if (it == mLights.end()) {
LOG(ERROR) << "Light not supported";
return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
}
it->second(id, state);
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus Lights::getLights(std::vector<HwLight>* lights) {
for (auto i = mAvailableLights.begin(); i != mAvailableLights.end(); i++) {
lights->push_back(*i);
}
return ndk::ScopedAStatus::ok();
}
void Lights::setLightNotification(int id, const HwLightState& state) {
bool found = false;
for (auto&& [cur_id, cur_state] : notif_states_) {
if (cur_id == id) {
cur_state = state;
}
// Fallback to battery light
if (!found && (cur_id == (int)LightType::BATTERY || IsLit(cur_state.color))) {
found = true;
LOG(DEBUG) << __func__ << ": id=" << id;
applyNotificationState(cur_state);
}
}
}
void Lights::applyNotificationState(const HwLightState& state) {
uint32_t white_brightness = RgbaToBrightness(state.color, max_led_brightness_);
WriteToFile(WHITE_ATTR(breath), 0);
if (state.flashMode == FlashMode::TIMED && state.flashOnMs > 0 && state.flashOffMs > 0) {
LOG(DEBUG) << __func__ << ": color=" << std::hex << state.color << std::dec
<< " onMs=" << state.flashOnMs << " offMs=" << state.flashOffMs;
// White
WriteToFile(WHITE_ATTR(delay_off), static_cast<uint32_t>(state.flashOffMs));
WriteToFile(WHITE_ATTR(delay_on), static_cast<uint32_t>(state.flashOnMs));
WriteToFile(WHITE_ATTR(breath), 1);
} else {
WriteToFile(WHITE_ATTR(brightness), white_brightness);
}
}
} // namespace light
} // namespace hardware
} // namespace android
} // namespace aidl

56
light/aidl/Lights.h Normal file
View File

@@ -0,0 +1,56 @@
/*
* Copyright (C) 2020 The Android Open Source Project
* Copyright (C) 2020-2021 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <aidl/android/hardware/light/BnLights.h>
#include <hardware/hardware.h>
#include <hardware/lights.h>
#include <map>
#include <sstream>
namespace aidl {
namespace android {
namespace hardware {
namespace light {
class Lights : public BnLights {
public:
Lights();
ndk::ScopedAStatus setLightState(int id, const HwLightState& state) override;
ndk::ScopedAStatus getLights(std::vector<HwLight>* types) override;
private:
void setLightNotification(int id, const HwLightState& state);
void applyNotificationState(const HwLightState& state);
uint32_t max_led_brightness_;
std::map<int, std::function<void(int id, const HwLightState&)>> mLights;
std::vector<HwLight> mAvailableLights;
// Keep sorted in the order of importance.
std::array<std::pair<int, HwLightState>, 2> notif_states_ = {{
{(int)LightType::NOTIFICATIONS, {}},
{(int)LightType::BATTERY, {}},
}};
};
} // namespace light
} // namespace hardware
} // namespace android
} // namespace aidl

View File

@@ -0,0 +1,16 @@
on boot
chown system system /sys/class/backlight/panel0-backlight/brightness
chown system system /sys/class/backlight/panel0-backlight/max_brightness
chown system system /sys/class/leds/white/brightness
chown system system /sys/class/leds/white/breath
chmod 0644 /sys/class/backlight/panel0-backlight/brightness
chmod 0644 /sys/class/backlight/panel0-backlight/max_brightness
chmod 0644 /sys/class/leds/white/brightness
chmod 0644 /sys/class/leds/white/breath
service vendor.light /vendor/bin/hw/android.hardware.lights-service.cepheus
class hal
user system
group system
shutdown critical

View File

@@ -0,0 +1,6 @@
<manifest version="1.0" type="device">
<hal format="aidl">
<name>android.hardware.light</name>
<fqname>ILights/default</fqname>
</hal>
</manifest>

37
light/aidl/main.cpp Normal file
View File

@@ -0,0 +1,37 @@
/*
* Copyright (C) 2020 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.
*/
#include <android-base/logging.h>
#include <android/binder_manager.h>
#include <android/binder_process.h>
#include "Lights.h"
using ::aidl::android::hardware::light::Lights;
int main() {
ABinderProcess_setThreadPoolMaxThreadCount(0);
std::shared_ptr<Lights> lights = ndk::SharedRefBase::make<Lights>();
if (!lights) {
return EXIT_FAILURE;
}
const std::string instance = std::string() + Lights::descriptor + "/default";
binder_status_t status = AServiceManager_addService(lights->asBinder().get(), instance.c_str());
CHECK(status == STATUS_OK);
ABinderProcess_joinThreadPool();
return EXIT_FAILURE; // should not reached
}

231
light/hidl/Light.cpp Normal file
View File

@@ -0,0 +1,231 @@
/*
* Copyright (C) 2018-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.
*/
#define LOG_TAG "android.hardware.light@2.0-service.cepheus"
#include <log/log.h>
#include "Light.h"
#include <fstream>
#define NOTIFICATION_LED "/sys/class/leds/white/"
#define BREATH "breath"
#define BRIGHTNESS "brightness"
#define MAX_BRIGHTNESS "max_brightness"
namespace {
/*
* Write value to path and close file.
*/
static void set(std::string path, std::string value) {
std::ofstream file(path);
if (!file.is_open()) {
ALOGW("failed to write %s to %s", value.c_str(), path.c_str());
return;
}
file << value;
}
static void set(std::string path, int value) {
set(path, std::to_string(value));
}
/*
* Read max brightness from path and close file.
*/
static int getMaxBrightness(std::string path) {
std::ifstream file(path);
int value;
if (!file.is_open()) {
ALOGW("failed to read from %s", path.c_str());
return 0;
}
file >> value;
return value;
}
static uint32_t getBrightness(const LightState& state) {
uint32_t alpha, red, green, blue;
/*
* Extract brightness from AARRGGBB.
*/
alpha = (state.color >> 24) & 0xFF;
red = (state.color >> 16) & 0xFF;
green = (state.color >> 8) & 0xFF;
blue = state.color & 0xFF;
/*
* Scale RGB brightness using Alpha brightness.
*/
red = red * alpha / 0xFF;
green = green * alpha / 0xFF;
blue = blue * alpha / 0xFF;
return (77 * red + 150 * green + 29 * blue) >> 8;
}
static inline uint32_t scaleBrightness(uint32_t brightness, uint32_t maxBrightness) {
if (brightness == 0) {
return 0;
}
return (brightness - 1) * (maxBrightness - 1) / (0xFF - 1) + 1;
}
static inline uint32_t getScaledBrightness(const LightState& state, uint32_t maxBrightness) {
return scaleBrightness(getBrightness(state), maxBrightness);
}
static void handleNotification(const LightState& state) {
uint32_t whiteBrightness = getScaledBrightness(state, getMaxBrightness(NOTIFICATION_LED MAX_BRIGHTNESS));
/* Disable breathing or blinking */
set(NOTIFICATION_LED BREATH, 0);
set(NOTIFICATION_LED BRIGHTNESS, 0);
if (!whiteBrightness) {
return;
}
switch (state.flashMode) {
case Flash::HARDWARE:
case Flash::TIMED:
/* Breathing */
set(NOTIFICATION_LED BREATH, 1);
break;
case Flash::NONE:
default:
set(NOTIFICATION_LED BRIGHTNESS, whiteBrightness);
}
}
static inline bool isStateLit(const LightState& state) {
return state.color & 0x00ffffff;
}
static inline bool isStateEqual(const LightState& first, const LightState& second) {
if (first.color == second.color && first.flashMode == second.flashMode &&
first.flashOnMs == second.flashOnMs &&
first.flashOffMs == second.flashOffMs &&
first.brightnessMode == second.brightnessMode) {
return true;
}
return false;
}
/* Keep sorted in the order of importance. */
static std::vector<LightBackend> backends = {
{ Type::ATTENTION, handleNotification },
{ Type::NOTIFICATIONS, handleNotification },
{ Type::BATTERY, handleNotification },
};
static LightStateHandler findHandler(Type type) {
for (const LightBackend& backend : backends) {
if (backend.type == type) {
return backend.handler;
}
}
return nullptr;
}
static LightState findLitState(LightStateHandler handler) {
LightState emptyState;
for (const LightBackend& backend : backends) {
if (backend.handler == handler) {
if (isStateLit(backend.state)) {
return backend.state;
}
emptyState = backend.state;
}
}
return emptyState;
}
static void updateState(Type type, const LightState& state) {
for (LightBackend& backend : backends) {
if (backend.type == type) {
backend.state = state;
}
}
}
} // anonymous namespace
namespace android {
namespace hardware {
namespace light {
namespace V2_0 {
namespace implementation {
Return<Status> Light::setLight(Type type, const LightState& state) {
/* Lock global mutex until light state is updated. */
std::lock_guard<std::mutex> lock(globalLock);
LightStateHandler handler = findHandler(type);
if (!handler) {
/* If no handler has been found, then the type is not supported. */
return Status::LIGHT_NOT_SUPPORTED;
}
/* Find the old state of the current handler. */
LightState oldState = findLitState(handler);
/* Update the cached state value for the current type. */
updateState(type, state);
/* Find the new state of the current handler. */
LightState newState = findLitState(handler);
if (isStateEqual(oldState, newState)) {
return Status::SUCCESS;
}
handler(newState);
return Status::SUCCESS;
}
Return<void> Light::getSupportedTypes(getSupportedTypes_cb _hidl_cb) {
std::vector<Type> types;
for (const LightBackend& backend : backends) {
types.push_back(backend.type);
}
_hidl_cb(types);
return Void();
}
} // namespace implementation
} // namespace V2_0
} // namespace light
} // namespace hardware
} // namespace android

68
light/hidl/Light.h Normal file
View File

@@ -0,0 +1,68 @@
/*
* Copyright (C) 2018 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef ANDROID_HARDWARE_LIGHT_V2_0_LIGHT_H
#define ANDROID_HARDWARE_LIGHT_V2_0_LIGHT_H
#include <android/hardware/light/2.0/ILight.h>
#include <hardware/lights.h>
#include <hidl/Status.h>
#include <map>
#include <mutex>
#include <vector>
using ::android::hardware::Return;
using ::android::hardware::Void;
using ::android::hardware::light::V2_0::Flash;
using ::android::hardware::light::V2_0::ILight;
using ::android::hardware::light::V2_0::LightState;
using ::android::hardware::light::V2_0::Status;
using ::android::hardware::light::V2_0::Type;
typedef void (*LightStateHandler)(const LightState&);
struct LightBackend {
Type type;
LightState state;
LightStateHandler handler;
LightBackend(Type type, LightStateHandler handler) : type(type), handler(handler) {
this->state.color = 0xff000000;
}
};
namespace android {
namespace hardware {
namespace light {
namespace V2_0 {
namespace implementation {
class Light : public ILight {
public:
Return<Status> setLight(Type type, const LightState& state) override;
Return<void> getSupportedTypes(getSupportedTypes_cb _hidl_cb) override;
private:
std::mutex globalLock;
};
} // namespace implementation
} // namespace V2_0
} // namespace light
} // namespace hardware
} // namespace android
#endif // ANDROID_HARDWARE_LIGHT_V2_0_LIGHT_H

View File

@@ -0,0 +1,18 @@
on boot
chown system system /sys/class/backlight/panel0-backlight/brightness
chown system system /sys/class/backlight/panel0-backlight/max_brightness
chown system system /sys/class/leds/white/brightness
chown system system /sys/class/leds/white/breath
chmod 0644 /sys/class/backlight/panel0-backlight/brightness
chmod 0644 /sys/class/backlight/panel0-backlight/max_brightness
chmod 0644 /sys/class/leds/white/brightness
chmod 0644 /sys/class/leds/white/breath
service vendor.light-hal-2-0 /vendor/bin/hw/android.hardware.light@2.0-service.cepheus
interface android.hardware.light@2.0::ILight default
class hal
user system
group system
# shutting off lights while powering-off
shutdown critical

50
light/hidl/service.cpp Normal file
View File

@@ -0,0 +1,50 @@
/*
* Copyright (C) 2018 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#define LOG_TAG "android.hardware.light@2.0-service.cepheus"
#include <hidl/HidlTransportSupport.h>
#include "Light.h"
using android::hardware::configureRpcThreadpool;
using android::hardware::joinRpcThreadpool;
using android::hardware::light::V2_0::ILight;
using android::hardware::light::V2_0::implementation::Light;
using android::OK;
using android::sp;
using android::status_t;
int main() {
sp<ILight> service = new Light();
configureRpcThreadpool(1, true);
status_t status = service->registerAsService();
if (status != OK) {
ALOGE("Cannot register Light HAL service.");
return 1;
}
ALOGI("Light HAL service ready.");
joinRpcThreadpool();
ALOGI("Light HAL service failed to join thread pool.");
return 1;
}

View File

@@ -24,10 +24,10 @@ $(call inherit-product, device/xiaomi/cepheus/device.mk)
# Inherit some common EvolutionX stuff.
$(call inherit-product, vendor/lineage/config/common_full_phone.mk)
BUILD_SEEDVAULT := true
TARGET_BOOT_ANIMATION_RES := 1080
TARGET_DISABLE_EPPE := true
TARGET_HAS_UDFPS := true
TARGET_INCLUDE_ACCORD = false
BUILD_SEEDVAULT := true
TARGET_USES_MINI_GAPPS := true
# Device identifier

View File

@@ -0,0 +1,20 @@
#!/system/bin/sh
#
# Copyright (C) 2021 The PixelExperience Project
#
# SPDX-License-Identifier: Apache-2.0
#
SUPER="/dev/block/by-name/system"
mkdir /tmp/super-mnt
mount $SUPER /tmp/super-mnt 2>/dev/null
if [ "$?" = "0" ]; then
echo "Detected stock /system in super partition, flashing super_dummy.img!"
umount /tmp/super-mnt
dd if=/tmp/super_dummy.img of=$SUPER
fi
rmdir /tmp/super-mnt

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015-2016 The CyanogenMod Project
2017-2021, 2025 The LineageOS Project
2017-2018 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -83,23 +83,16 @@
android:theme="@style/Theme.SubSettingsBase">
<intent-filter>
<action android:name="com.android.settings.action.IA_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.system" />
<meta-data
android:name="com.android.settings.icon"
android:resource="@drawable/ic_settings_thermal" />
<meta-data
android:name="com.android.settings.icon_tintable"
android:value="true" />
<meta-data
android:name="com.android.settings.order"
android:value="-255" />
android:value="com.android.settings.category.ia.battery" />
<meta-data
android:name="com.android.settings.summary"
android:resource="@string/thermal_summary" />
<meta-data
android:name="com.android.settings.order"
android:value="1" />
</activity>
</application>

View File

@@ -1,10 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M15,13L15,5c0,-1.66 -1.34,-3 -3,-3S9,3.34 9,5v8c-1.21,0.91 -2,2.37 -2,4 0,2.76 2.24,5 5,5s5,-2.24 5,-5c0,-1.63 -0.79,-3.09 -2,-4zM11,5c0,-0.55 0.45,-1 1,-1s1,0.45 1,1h-1v1h1v2h-1v1h1v2h-2L11,5z"/>
</vector>

View File

@@ -1,5 +1,5 @@
# Camera
vendor.camera.aux.packagelist=com.android.camera,co.aospa.sense,org.lineageos.aperture
vendor.camera.aux.packagelist=com.android.camera,org.pixelexperience.faceunlock,org.lineageos.aperture
persist.camera.sat.fallback.dist.d=10
persist.camera.sat.fallback.dist=40
persist.camera.sat.fallback.lux.d=50
@@ -88,12 +88,13 @@ persist.radio.volte.dan_support=true
# SurfaceFlinger
ro.surface_flinger.max_frame_buffer_acquired_buffers=3
debug.sf.enable_advanced_sf_phase_offset=1
debug.sf.enable_transaction_tracing=false
debug.sf.high_fps_early_gl_phase_offset_ns=-4000000
debug.sf.high_fps_early_phase_offset_ns=-4000000
debug.sf.high_fps_late_app_phase_offset_ns=1000000
debug.sf.high_fps_late_sf_phase_offset_ns=-4000000
debug.sf.use_phase_offsets_as_durations=1
debug.sf.late.sf.duration=10500000
debug.sf.late.app.duration=20500000
debug.sf.early.sf.duration=16000000
debug.sf.early.app.duration=16500000
debug.sf.earlyGl.sf.duration=13500000
debug.sf.earlyGl.app.duration=21000000
ro.surface_flinger.protected_contents=true
# WiFi

View File

@@ -77,6 +77,9 @@ vendor/lib64/soundfx/libqcbassboost.so
vendor/lib64/soundfx/libqcreverb.so
vendor/lib64/soundfx/libqcvirt.so
vendor/lib64/soundfx/libshoebox.so
vendor/lib64/soundfx/libswdap.so
vendor/lib64/soundfx/libswgamedap.so
vendor/lib64/soundfx/libswvqe.so
# Audio (Configs)
vendor/etc/audio_configs.xml
@@ -200,6 +203,7 @@ vendor/lib64/libsns_registry_skel.so
vendor/lib64/libSuperSensor.so
vendor/lib64/libSuperSensorCPU.so
vendor/lib64/libswregistrationalgo.so
vendor/lib64/libswvdec.so
vendor/lib64/libtriplecam_optical_zoom_control.so
vendor/lib64/libtriplecam_video_optical_zoom.so
vendor/lib64/libVDClearShot.so
@@ -435,9 +439,31 @@ vendor/etc/qdcm_calib_data_samsung_ea8076_fhd_cmd_dsi_panel.xml|b7f87b7987de1692
vendor/etc/sdr_config.cfg
# Dolby - from rhode
odm/bin/hw/vendor.dolby_v3_6.hardware.dms360@2.0-service|da39a3ee5e6b4b0d3255bfef95601890afd80709
system_ext/app/MotoSignatureApp/MotoSignatureApp.apk|98027bccd4ec14cb7887cde068e35f6b0ecd0a44
system_ext/etc/permissions/com.motorola.frameworks.core.addon.xml|b98f53235c8d4c1962d3b279840e2a074d0ddd10
system_ext/etc/permissions/com.motorola.motosignature.xml|e94cdcfd1b92b6bd1d0b53c3c2ed8bffe362e6ac
system_ext/etc/permissions/com.motorola.software.dolbyui.xml|d5c25b2522094346257a5ff0f4317c992b54d1fc
system_ext/etc/permissions/moto-checkin.xml|373f75676a0ac7915f5bc49ec43fd99c38dd9c1b
system_ext/etc/permissions/moto-settings.xml|f2a2703b62777c88e3a161a0d2a75d72f90d5007
system_ext/etc/permissions/moto.xml|5521a530e243f6e5e928018320d4e9b819134fbb
system_ext/etc/permissions/privapp-com.dolby.daxservice.xml|56da6dd095fba323ddf6951075995ba56c5f3f2f
system_ext/etc/permissions/privapp-com.motorola.android.providers.settings.xml|44bd70f7309ad6407d43391bcdb5b7e05ae8c363
system_ext/etc/permissions/privapp-com.motorola.dolby.dolbyui.xml|d7f762731e3302ce553bf22a99aaeec312f65c0a
system_ext/etc/sysconfig/config-com.dolby.daxservice.xml|f2955d9e3d5f75b40fdc8229243828f0c1c163de
system_ext/etc/sysconfig/config-com.motorola.android.providers.settings.xml|1f804d789dd7c8b7657a6f07e23bcac1ce5c701c
system_ext/etc/sysconfig/config-com.motorola.dolby.dolbyui.xml|0131f1a5a5c2d2fc09a6bc75ff4e25b74785ec2a
system_ext/etc/sysconfig/config-com.motorola.motosignature.app.xml|5b2c138d4be962f052700fb3ca00d822bbf836da
system_ext/framework/com.motorola.frameworks.core.addon.jar|8431ff519b0a3e02411a0096898ee8acb372b9b7
system_ext/framework/com.motorola.motosignature.jar|1607b24909a030ddec7f05b91356e6b2d76c0b6b
system_ext/framework/moto-checkin.jar|989119b230c01ba95341d29de45e38120a68f394
system_ext/framework/moto-settings.jar|0ebdf871ededa1eb9c5186bdb4a9055d89594779
system_ext/framework/moto.jar|6c797a7f205f2ce5d939c000f21c6625daf0c33f
system_ext/priv-app/MotoDolbyDax3/MotoDolbyDax3.apk;OVERRIDES=MusicFX|a92d3fa37918fb27eae645da1746c0eaf195fc09
system_ext/priv-app/MotorolaSettingsProvider/MotorolaSettingsProvider.apk|25deb5bdb18d55dee1b9bd1de2ba46e353c62780
system_ext/priv-app/daxService/daxService.apk|7df2fd75a92d942164ae713f5b70f853f98c95f0
vendor/bin/hw/vendor.dolby.hardware.dms@2.0-service|8215768638794162db3bb76e43045926fcbb4b0b
vendor/etc/init/vendor.dolby.hardware.dms@2.0-service.rc|29296ebfe89b2697fec573be73cc3757fd97bed6
vendor/etc/vintf/manifest/manifest_vendor.dolby.hardware.dms.xml
vendor/lib/soundfx/libswdap.so|810d0e266e4a77f06cba72fe8bdde2e1ede4f9f9
vendor/lib/soundfx/libswgamedap.so|c7d35eb932ecffb384ec62628404df3406b63919
vendor/lib/soundfx/libswvqe.so|3009202dcdd5b8fadb9c43a8cf5f0fe1c28311a6
@@ -445,9 +471,17 @@ vendor/lib/libdapparamstorage.so|ce5f2fadc1e7d3811d73d49f64254b7054a57259
vendor/lib/libdeccfg.so|050de5edb5fb7dabba9b59bfafcb5a1366285d3c
vendor/lib/libstagefright_soft_ac4dec.so|8e42b8c6a145cbc2d844e1609d5415faf739d3ec
vendor/lib/libstagefright_soft_ddpdec.so|b9e1aadc1c8cf7d709130d36b9c30a1f6f649b5a
vendor/lib/libstagefrightdolby.so|1c13964cd6919e9947cf1451a77baf12ccd83810
vendor/lib/vendor.dolby.hardware.dms@2.0.so|aaf98796bfa8b384e2b5e162214ca46f6eca5dbc
vendor/lib64/soundfx/libswdap.so|e996ee1d421b3b2cf74f3f3ed93bff067d83dddb
vendor/lib64/soundfx/libswgamedap.so|c898fd5b51312c5fafa693ca037423c5bae23101
vendor/lib64/soundfx/libswvqe.so|08394e1ac285479213604c35cb144147fdac68c0
vendor/lib64/libdapparamstorage.so|7549aeba2b7041b472ffc1f5fd39a56e4be64a2b
vendor/lib64/libdeccfg.so|3a63582be7dea50ae10c0543f68e3bce592a3877
vendor/lib64/libdlbdsservice.so|8d070318884f02e50ad1831bb29f8bde6af33168
vendor/lib64/libstagefright_soft_ac4dec.so|d8d2dd47ca0552d4e1c5df7ad9b3becfd6d43179
vendor/lib64/libstagefright_soft_ddpdec.so|9f921ef725bdd1edc26b484df86b10e2909f760b
vendor/lib64/libstagefrightdolby.so|319814f3d8968e002bc1591b8e90e6eda745f79b
vendor/lib64/vendor.dolby.hardware.dms@2.0-impl.so|92eb0a2b730810881288119fc4d038f52870acd1
vendor/lib64/vendor.dolby.hardware.dms@2.0.so|a93b5cf33ae57387a2d32686520a0d1dd5d10dcc
@@ -605,11 +639,49 @@ vendor/etc/sap.conf
vendor/etc/xtwifi.conf
# Graphics - from Xiaomi/nabu/nabu:11/RKQ1.200826.002/V13.0.3.0.RKXCNXM:user/release-keys
vendor/lib/egl/eglSubDriverAndroid.so;SYMLINK=vendor|a9d540641ac06335bf3689926da50d0408e2863e
vendor/lib/egl/eglSubDriverAndroid.so|be2f5c4b174bdfaabbe25adde568b72775ef4856
vendor/lib/egl/libEGL_adreno.so;SYMLINK=vendor/lib/libEGL_adreno.so|fb1d14334bf1730a9cffd76a7b22b45ceb0e67ce
vendor/lib/egl/libGLESv1_CM_adreno.so|715f3463528f1e74ffa02627ee5916a09e0748f5
vendor/lib/egl/libGLESv2_adreno.so;SYMLINK=vendor/lib/libGLESv2_adreno.so|3d5464d3381c2b3e4d27d6a6af31035c03fec5a1
vendor/lib/egl/libq3dtools_adreno.so;SYMLINK=vendor/lib/libq3dtools_adreno.so|9ec9c053592e58be935e8ae5e0a9d362c101773a
vendor/lib/egl/libq3dtools_esx.so|9867de833bfe301c74f16e85727c4699c82f12ca
vendor/lib/hw/vulkan.adreno.so|4ee2d8037d93a4e520b0d2d63b7962261783ad81
vendor/lib/libC2D2.so|91f015cad79024fdbb6a5603cce48693e58a4510
vendor/lib/libCB.so|0d55143f6e046f37dc299495493d810d224dbda4
vendor/lib/libOpenCL.so|7e06bf784e1c4e1b89dbe811b038efcc7c1221a0
vendor/lib/libVkLayer_q3dtools.so|29b8ffcd19de5dc3b662b6a94a0583a05dd6dd99
vendor/lib/libadreno_app_profiles.so|99b9b791c7b743ccde81ad6e71da7d09bf0766fb
vendor/lib/libadreno_utils.so|51d2e395928e06e5f49e38d5962b29c71dce3e23
vendor/lib/libc2d30_bltlib.so|71703a543760e40ba26cde07c2d41416cc9331ec
vendor/lib/libgpudataproducer.so|4548fb464095f9e81d6598a625c56b8f5bf4519f
vendor/lib/libgsl.so|4d39e5a5f235a1086ac1f10e9071ad0a1733387c
vendor/lib/libllvm-glnext.so|e5355087062b4ffbb1e1d570b373119b7c08a999
vendor/lib/libllvm-qcom.so|68a9e0594044ae947a9892d3d9e92c30de5b6990
vendor/lib/libpvr.so|012ff9ce89160aa4812972244cf5ccbe67fe9bf2
vendor/lib64/egl/eglSubDriverAndroid.so|4ea16e43015194042ac9b93a38ff77bfcfb9e514
vendor/lib64/egl/libEGL_adreno.so;SYMLINK=vendor/lib64/libEGL_adreno.so|a663fb5631a29bd4deda59006ebe0cb7f507face
vendor/lib64/egl/libGLESv1_CM_adreno.so|0a2a648ca2dcd887ea62860bbfa2ef397f01d42d
vendor/lib64/egl/libGLESv2_adreno.so;SYMLINK=vendor/lib64/libGLESv2_adreno.so|430431fc424a9df01420a302b85b0d77e49c9e2a
vendor/lib64/egl/libq3dtools_adreno.so;SYMLINK=vendor/lib64/libq3dtools_adreno.so|189b9c3d400c6a98c87582b8df0910530cba6d44
vendor/lib64/egl/libq3dtools_esx.so|369be2b63d588d6ca58e5e37f112d77439592510
vendor/lib64/hw/vulkan.adreno.so|cd82adac413c043a7283828c8926f1cbadf22f3a
vendor/lib64/libC2D2.so|175115cc36fd471f9eb83af76be21b5f602b9460
vendor/lib64/libCB.so|6a0c09e07359b2bd5c7462619e87e8387b1ba3f7
vendor/lib64/libOpenCL.so|5aecd08fbf5470c2ff467f2e54fb513c592d6272
vendor/lib64/libVkLayer_q3dtools.so|29b6a0d31b3e094a5b1f6fce5191fb06f31041ea
vendor/lib64/libadreno_app_profiles.so|d7ddfe2e27d5e34e12e1bc5397aff5ef5034b57c
vendor/lib64/libadreno_utils.so|ee13afa147a0632741c1e89bc4efc56c974f6960
vendor/lib64/libc2d30_bltlib.so|b7c7bbc41f317833927d9bf75fbf9b411dd63a96
vendor/lib64/libgpudataproducer.so|0120db18ee03d3fcaa7e922810ae533823c11aca
vendor/lib64/libgsl.so|3a3ea2ca34427b73c43939821c9858c8a6e60dd1
vendor/lib64/libllvm-glnext.so|5d3f9aa189dbc529bd961e7e3ab69ca11c3fdadd
vendor/lib64/libllvm-qcom.so|2005348963b8a35a449372c91e0d7bf7d32120f6
vendor/lib64/libpvr.so|4ec5f223df1e2849dbe67687e293653406b6939e
vendor/lib/egl/eglSubDriverAndroid.so|a9d540641ac06335bf3689926da50d0408e2863e
vendor/lib/egl/libEGL_adreno.so|f77d54d08edbbf13add12518338ff389c873e1cd
vendor/lib/egl/libGLESv1_CM_adreno.so|f85c647f07feb5e850426b8b04107e6fcbe73a42
vendor/lib/egl/libGLESv2_adreno.so;SYMLINK=vendor|bbbf71932164655ecb2126b907e1d9cb2d897ebb
vendor/lib/egl/libq3dtools_adreno.so;SYMLINK=vendor|89416a47b7105de1e81d0540c6e2a82ae33b4dda
vendor/lib/egl/libGLESv2_adreno.so|bbbf71932164655ecb2126b907e1d9cb2d897ebb
vendor/lib/egl/libq3dtools_adreno.so|89416a47b7105de1e81d0540c6e2a82ae33b4dda
vendor/lib/egl/libq3dtools_esx.so|bfbd1e76dc1f81039ffebd6b7534be52173c349d
vendor/lib/hw/vulkan.adreno.so|bafd65cc8786aeb5bdc12e3c8db09fecdbcb2d01
vendor/lib/libC2D2.so|bf22239cc4a003a6cd1b3e273f60dc37e4d51730
@@ -624,11 +696,11 @@ vendor/lib/libgsl.so|3e919532b22d1ba53a9f6141fdb3a9fbd1901f43
vendor/lib/libllvm-glnext.so|caf1127450a30dfd034398cf142525f505071944
vendor/lib/libllvm-qcom.so|f7ee34774bbdb3e01a5ecaf9e98ac8f924b710f9
vendor/lib/libpvr.so|a1f1896b9f50223a9285d3496b8f9bcfa98d004d
vendor/lib64/egl/eglSubDriverAndroid.so;SYMLINK=vendor|c950953ab821212322c44497c40f7bec912620a7
vendor/lib64/egl/eglSubDriverAndroid.so|c950953ab821212322c44497c40f7bec912620a7
vendor/lib64/egl/libEGL_adreno.so|066dc49939ceec71978268737f3a32c8f2aeddf2
vendor/lib64/egl/libGLESv1_CM_adreno.so|a5ee6c77ea24be2423f661eeddfc868d279d4378
vendor/lib64/egl/libGLESv2_adreno.so;SYMLINK=vendor|e349a692959c6715da4b35e84c82c0eee4b01e00
vendor/lib64/egl/libq3dtools_adreno.so;SYMLINK=vendor|0edfcd0c063a82a4ab29542243a0f842632f31ee
vendor/lib64/egl/libGLESv2_adreno.so|e349a692959c6715da4b35e84c82c0eee4b01e00
vendor/lib64/egl/libq3dtools_adreno.so|0edfcd0c063a82a4ab29542243a0f842632f31ee
vendor/lib64/egl/libq3dtools_esx.so|8ba3d0cbe51dff3b860cca48dcd294ccd0816e18
vendor/lib64/hw/vulkan.adreno.so|c00dfeefef27d950de5a10234cf78b4614521939
vendor/lib64/libC2D2.so|21a3b027b0857ee910f9db3e7558f35aafaadef5
@@ -717,8 +789,22 @@ vendor/bin/vppservice
vendor/etc/configstore/vpp.configstore.xml
vendor/etc/init/vendor.qti.media.c2@1.0-service.rc
vendor/etc/init/vppservice.rc
vendor/lib/libdsd2pcm.so
vendor/lib/libmmosal.so
vendor/lib/libMpeg4SwEncoder.so
vendor/lib/libOmxAacDec.so
vendor/lib/libOmxAlacDec.so
vendor/lib/libOmxAlacDecSw.so
vendor/lib/libOmxAmrDec.so
vendor/lib/libOmxAmrwbplusDec.so
vendor/lib/libOmxApeDec.so
vendor/lib/libOmxApeDecSw.so
vendor/lib/libOmxDsdDec.so
vendor/lib/libOmxEvrcDec.so
vendor/lib/libOmxG711Dec.so
vendor/lib/libOmxQcelp13Dec.so
vendor/lib/libOmxVpp.so
vendor/lib/libOmxWmaDec.so
vendor/lib/libqcodec2.so
vendor/lib/libvppclient.so
vendor/lib/libvpphcp.so
@@ -726,6 +812,7 @@ vendor/lib/libvpphvx.so
vendor/lib/libvpplibrary.so
vendor/lib/vendor.qti.hardware.vpp@1.1.so
vendor/lib/vendor.qti.hardware.vpp@1.2.so
vendor/lib64/libMpeg4SwEncoder.so
vendor/lib64/libmmosal.so
vendor/lib64/libvppclient.so
vendor/lib64/libvpphcp.so
@@ -737,6 +824,8 @@ vendor/lib64/vendor.qti.hardware.vpp@1.3.so
# Media-Hardware
vendor/lib/libarbitrarybytes.so
vendor/lib/libOmxSwVdec.so
vendor/lib/libOmxSwVencMpeg4.so
vendor/lib/libstagefrighthw.so
# Misc
@@ -869,6 +958,7 @@ vendor/lib64/libril-qc-hal-qmi.so
vendor/lib64/libril-qc-logger.so
vendor/lib64/libril-qc-ltedirectdisc.so
vendor/lib64/libril-qc-radioconfig.so
vendor/lib64/libril-qcril-hook-oem.so
vendor/lib64/librilqmiservices.so
vendor/lib64/libsettings.so
vendor/lib64/libsystem_health_mon.so
@@ -1090,26 +1180,25 @@ vendor/bin/hw/vendor.qti.hardware.tui_comm@1.0-service-qti
vendor/etc/init/vendor.qti.hardware.tui_comm@1.0-service-qti.rc
vendor/lib64/vendor.qti.hardware.tui_comm@1.0.so
# WiFi Display (system) - from KB2005 14.0.0.602(EX01)
system/framework/WfdCommon.jar|a661c494d064b79a3f71579592411fada1ea232f
# WiFi Display (system) - from qssi-user-14-UKQ1.230804.001-2309192131-release-keys
-system/framework/WfdCommon.jar|08bf9850ac45396fe753e208c4d63ec43389dce2
system_ext/bin/wfdservice|400d123df78c1ed2e9643ff3ddf5ee5748f954fe
system_ext/etc/init/wfdservice.rc|907def8565d8f91f531ca7dfad880af05d540b0c
system_ext/etc/permissions/wfd-system-ext-privapp-permissions-qti.xml|10dcd4e58f0652d800d48ae5b76e4fab43fda214
system_ext/etc/seccomp_policy/wfdservice.policy|5b3592c965f16b2d55ac89d56d8d3c49a6b5800b
system_ext/etc/seccomp_policy/wfdservice.policy|37994de64d6bd127898bd556cd614db459fe07ec
system_ext/etc/wfdconfigsink.xml|cb78df66948314a75080a4161321fb3111a0785a
system_ext/lib/com.qualcomm.qti.wifidisplayhal@1.0.so|cb88bc73bf9f44d7da000a41d38b309ffdf71370
system_ext/lib/libmmrtpdecoder.so|4fc76315f11ff5fe416f36b66c9422ef05eae182
system_ext/lib/libmmrtpencoder.so|0fa2096eec29eec395f6bd88d7d1049a127e090c
system_ext/lib/libwfdavenhancements.so|581db496334d2adb76e6c6af67620f49ca24eabd
system_ext/lib/libwfdavenhancements.so|6b17a4e265fedb563f18b867292dcacf1913bf9e
system_ext/lib/libwfdclient.so|a9639d9f269880700bac6fc06e8302702fb0ab32
system_ext/lib/libwfdcommonutils.so|b738182e77f3e7faf72460f09ebdfca7de5e0c23
system_ext/lib/libwfdconfigutils.so|a52a96e2699f3a5ad79838e356cd90838e26218b
system_ext/lib/libwfdconfigutils.so|0d647652ef3c3b7e5f70134077a6fbc4269097ee
system_ext/lib/libwfddisplayconfig.so|f46fe63fb3d58c143dc92741a962167af3d8b928
system_ext/lib/libwfdmminterface.so|5844114d7cc823090a70fe4f44cbda0ddf585ebd
system_ext/lib/libwfdmmsink.so|23fb5c836fc06865b229c30b46998e41c0624dac
system_ext/lib/libwfdmmsrc_system.so|0adfc69a5560158f3a6803ba720acc795d6d05dc|f4395e4a22bed41fdbe86c988caba7d46cf0c8bf
system_ext/lib/libwfdmmsink.so|d3f2190802077f4de4062d110077fbae893934f0
system_ext/lib/libwfdmmsrc_system.so|9e8628fd9ede4882fa878bd09109df2d21384b02
system_ext/lib/libwfdrtsp.so|afd69963c2bd59bdb3ff23e01710c61ed90c5d87
system_ext/lib/libwfdservice.so|07e6d0e00393a8c068f75b46531d2e75fdaebde2|679e2cb2b25374a57dfd860286da96abeee04f36
system_ext/lib/libwfdservice.so|41857e76e67210127909f67aa4f68398a6221459
system_ext/lib/libwfdsinksm.so|875171cc6ae534dd941eec1c87b78d5961e19c06
system_ext/lib/libwfduibcinterface.so|e90fa4920b010bd6ef2bd78c2d2644cbd0fcbffa
system_ext/lib/libwfduibcsink.so|91af548471c395a958e6155dd9be19cccbe482d3
@@ -1117,16 +1206,15 @@ system_ext/lib/libwfduibcsinkinterface.so|bc0e7dca28d1e5cbc6caf5bd5378f3e6db3b46
system_ext/lib/libwfduibcsrc.so|a0b1c73015c449468db0d2776fdfcc56dfeee53b
system_ext/lib/libwfduibcsrcinterface.so|2e24ec6a075407664488b4214eef35cb2ca845f4
system_ext/lib/vendor.qti.hardware.wifidisplaysession@1.0.so|45a0a8cd9f1aa5cbe69b113192d42bc42e32e9c3
system_ext/lib64/libmmparser_lite.so|59d550a52773722f1fe515bd5fba86918cf6f54e
system_ext/lib64/libmmrtpdecoder.so|0da526d51135ea58236ab6bcc2d1b7484931df24
system_ext/lib64/libmmrtpencoder.so|fafe00d1ed3d691c6d2c2d963144218764cad5ae
system_ext/lib64/libwfdclient.so|0070b1e88cee6ebaf17dcb02c2706232cc087071
system_ext/lib64/libwfdcommonutils.so|14b3bd86703f2aca0abb1232d2304e626c1af644
system_ext/lib64/libwfdconfigutils.so|6f1a3a862ddde4245ea58ad310101df620d3a00b
system_ext/lib64/libwfdconfigutils.so|a67a7f1a48a94680f66f9fe07ab7cac7af1bafe9
system_ext/lib64/libwfddisplayconfig.so|5fd7bf7abaedfe890442f88183c49755b25c39aa
system_ext/lib64/libwfdmminterface.so|3f16acefbe87741a5841c1c70cf74ff917299c4c
system_ext/lib64/libwfdmmsink.so|8150b750357b606475521b491f78d566673f9888
system_ext/lib64/libwfdnative.so;SYMLINK=system_ext/priv-app/WfdService/lib/arm64/libwfdnative.so|92ec61d464c07d9e9020cf413489cdc01fb19abc|b05d302786751221114b087b97b56181b9596102
system_ext/lib64/libwfdmmsink.so|12171731915c162b3b27a8be4eadc4f29bab54b9
system_ext/lib64/libwfdnative.so;SYMLINK=system_ext/priv-app/WfdService/lib/arm64/libwfdnative.so|ca03cea1eb26130d97af8fe432c12ea35cb2ceba
system_ext/lib64/libwfdrtsp.so|8181e44d7c1f722218fabd8fe3bf788454a3f586
system_ext/lib64/libwfdsinksm.so|c4d68ecbe0accd24296c18444e5a82b6a24be8d8
system_ext/lib64/libwfduibcinterface.so|dca32fe063bdba7ce3b131b16cf112b793ae03ad
@@ -1134,7 +1222,8 @@ system_ext/lib64/libwfduibcsink.so|63ea93b1a6aec75a294baf50007270807a819e21
system_ext/lib64/libwfduibcsinkinterface.so|39c123bd9a4d7a8fa317f8ed4d86972dcfab0423
system_ext/lib64/libwfduibcsrc.so|5557f3bd58c37b7e3b28e13f2f86d55930b14ab6
system_ext/lib64/libwfduibcsrcinterface.so|77cead9bf7b60384fe1e11dc2b25bd99af0b4608
system_ext/priv-app/WfdService/WfdService.apk|7191da7d336f6018ee292af4e69167677b9f5bd1
system_ext/lib64/vendor.qti.hardware.wifidisplaysession@1.0.so|67a10e8e42fd0cfc0a0a3246a4740e4ed37b3506
system_ext/priv-app/WfdService/WfdService.apk|cd09bfd8351d99e8cedca14f761352fc1831ac06
# WiFi Display (vendor) - from LA.UM.9.1.r1-12900-SMxxx0.0
vendor/bin/wfdhdcphalservice|40c3d329f49cbb56286d6a550cc8b12ac95048df

View File

@@ -17,22 +17,36 @@
import common
import re
def FullOTA_InstallBegin(info):
input_zip = info.input_zip
AddImage(info, "RADIO", input_zip, "super_dummy.img", "/tmp/super_dummy.img");
info.script.AppendExtra('package_extract_file("install/bin/flash_super_dummy.sh", "/tmp/flash_super_dummy.sh");')
info.script.AppendExtra('set_metadata("/tmp/flash_super_dummy.sh", "uid", 0, "gid", 0, "mode", 0755);')
info.script.AppendExtra('run_program("/tmp/flash_super_dummy.sh");')
return
def FullOTA_InstallEnd(info):
OTA_InstallEnd(info)
input_zip = info.input_zip
OTA_InstallEnd(info, input_zip)
return
def IncrementalOTA_InstallEnd(info):
OTA_InstallEnd(info)
input_zip = info.target_zip
OTA_InstallEnd(info, input_zip)
return
def AddImage(info, basename, dest):
name = basename
data = info.input_zip.read("IMAGES/" + basename)
common.ZipWriteStr(info.output_zip, name, data)
info.script.AppendExtra('package_extract_file("%s", "%s");' % (name, dest))
def AddImage(info, dir, input_zip, basename, dest):
path = dir + "/" + basename
if path not in input_zip.namelist():
return
def OTA_InstallEnd(info):
data = input_zip.read(path)
common.ZipWriteStr(info.output_zip, basename, data)
info.script.Print("Flashing {} image".format(dest.split('/')[-1]))
info.script.AppendExtra('package_extract_file("%s", "%s");' % (basename, dest))
def OTA_InstallEnd(info, input_zip):
info.script.Print("Patching dtbo and vbmeta images...")
AddImage(info, "dtbo.img", "/dev/block/bootdevice/by-name/dtbo")
AddImage(info, "vbmeta.img", "/dev/block/bootdevice/by-name/vbmeta")
AddImage(info, "IMAGES", input_zip, "dtbo.img", "/dev/block/bootdevice/by-name/dtbo")
AddImage(info, "IMAGES", input_zip, "vbmeta.img", "/dev/block/bootdevice/by-name/vbmeta")
return

View File

@@ -412,8 +412,3 @@ firmware_directories /vendor/firmware_mnt/image/
/sys/class/graphics/fb0 modes 0664 system graphics
/sys/class/graphics/fb0 mode 0664 system graphics
/sys/class/graphics/fb0 msm_cmd_autorefresh_en 0664 system graphics
# Torch control
/sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d300/leds/led:torch_0 brightness 0660 cameraserver camera
/sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d300/leds/led:torch_1 brightness 0660 cameraserver camera
/sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d300/leds/led:switch_2 brightness 0660 cameraserver camera

View File

@@ -31,10 +31,4 @@
<!-- 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/dimlayer_bl</string>
<!-- Whether the device supports Smart Pixels -->
<bool name="config_supportSmartPixels">true</bool>
<!-- PowerOffAlarmService -->
<bool name="config_powerOffAlarmEnabled">true</bool>
</resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019-2025 The Evolution X Project
Copyright (C) 2019-2021 The Evolution X 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
@@ -14,7 +14,7 @@
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- About device screen, build maintainer -->
<string name="build_maintainer_summary">nhansp</string>
<string name="build_maintainer_donate_url">https://github.com/nhansp</string>
<string name="build_maintainer_summary">Chema Funtan (@chematelegram)</string>
<string name="build_maintainer_donate_url">https://www.paypal.com/paypalme/chfondia</string>
</resources>

View File

@@ -15,18 +15,6 @@
*/
-->
<resources>
<!-- the padding on the start of the statusbar -->
<dimen name="status_bar_padding_start">16dp</dimen>
<!-- the padding on the end of the statusbar -->
<dimen name="status_bar_padding_end">5dp</dimen>
<!-- the padding on the top of the statusbar -->
<dimen name="status_bar_padding_top">3dp</dimen>
<!-- Margin on the left side of the carrier text on Keyguard -->
<dimen name="keyguard_carrier_text_margin">25dp</dimen>
<!-- Radius of the software rounded corners at the bottom of the display in its natural
orientation. If zero, the value of rounded_corner_radius is used. -->
<dimen name="rounded_corner_content_padding">16dp</dimen>
@@ -36,8 +24,4 @@
<!-- The width/height of the unlock icon view on keyguard. -->
<dimen name="keyguard_lock_height">130dp</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">63.08</item>
</resources>

View File

@@ -13,10 +13,4 @@
<!-- Whether to play turbulence noise after clicking the play button -->
<bool name="config_turbulenceNoise">false</bool>
<!-- Whether to disable Smart Pixels on UDFPS -->
<bool name="config_disableSmartPixelsOnUDFPS">true</bool>
<!-- The CPU temperature divider, if needed -->
<integer name="config_cpuTempDivider" translatable="false">1000</integer>
</resources>

View File

@@ -21,7 +21,7 @@
for different hardware and product builds. -->
<resources>
<!-- Color of the UDFPS pressed view -->
<color name="config_udfpsColor">#00ffffff</color>
<color name="config_udfpsColor">#00ff00</color>
<!-- Whether usage of the proximity sensor during doze is supported -->
<bool name="doze_proximity_sensor_supported">false</bool>

View File

@@ -1,2 +0,0 @@
allow cameraserver sysfs_torch:file rw_file_perms;
allow cameraserver sysfs_leds:dir r_dir_perms;

View File

@@ -36,6 +36,3 @@ type thermal_data_file, file_type, data_file_type;
# Touch Panel
type sysfs_touchpanel, sysfs_type, fs_type;
# Torch
type sysfs_torch, fs_type, sysfs_type;

View File

@@ -11,8 +11,8 @@
/vendor/bin/hw/android\.hardware\.contexthub@1\.1-service\.generic u:object_r:hal_contexthub_default_exec:s0
# Dolby
/data/vendor/dolby(/.*)? u:object_r:vendor_data_file:s0
/vendor/bin/hw/vendor\.dolby\.hardware\.dms@2\.0-service u:object_r:hal_dms_default_exec:s0
/data/vendor/dolby(/.*)? u:object_r:vendor_data_file:s0
/(vendor|system/vendor)/bin/hw/vendor\.dolby\.hardware\.dms@2\.0-service u:object_r:hal_dms_default_exec:s0
# Fastcharge HAL
/(vendor|system/vendor)/bin/hw/vendor\.lineage\.fastcharge@[0-9]\.[0-9]-service\.xiaomi_cepheus u:object_r:hal_lineage_fastcharge_default_exec:s0
@@ -30,6 +30,9 @@
# FPS Info
/sys/class/drm/card0/sde-crtc-0/measured_fps u:object_r:vendor_sysfs_graphics:s0
# HALs
/vendor/bin/hw/android\.hardware\.lights-service\.cepheus u:object_r:hal_light_default_exec:s0
# Hexagon DSP-side executable needed for Halide operation
# This is labeled as public_adsprpcd_file as it needs to be read by apps
# (e.g. Google Camera App)
@@ -39,7 +42,8 @@
/sys/devices/platform/soc/soc:qcom,dsi-display-primary/hbm u:object_r:vendor_sysfs_hbm:s0
# IR
/dev/ir_spi u:object_r:lirc_device:s0
/dev/ir_spi u:object_r:ir_spi_device:s0
/dev/lirc0 u:object_r:ir_spi_device:s0
# Livedisplay
/vendor/bin/hw/vendor\.lineage\.livedisplay@2\.1-service\.cepheus u:object_r:hal_lineage_livedisplay_qti_exec:s0

View File

@@ -4,22 +4,12 @@ genfscon sysfs /devices/platform/soc/soc:qcom,dsi-display-primary/doze_mode
# FlickerFree
genfscon sysfs /devices/platform/soc/soc:qcom,dsi-display-primary/dimlayer_bl u:object_r:vendor_sysfs_graphics:s0
# FPS info
genfscon sysfs /class/drm/card0/sde-crtc-0/measured_fps u:object_r:vendor_sysfs_graphics:s0
# HBM
genfscon sysfs /devices/platform/soc/soc:qcom,dsi-display-primary/hbm u:object_r:vendor_sysfs_graphics:s0
# Lights
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d000/leds/white u:object_r:vendor_sysfs_graphics:s0
# Torch
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d300/leds/led:torch_0/brightness u:object_r:sysfs_torch:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d300/leds/led:torch_0/max_brightness u:object_r:sysfs_torch:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d300/leds/led:torch_1/brightness u:object_r:sysfs_torch:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d300/leds/led:torch_1/max_brightness u:object_r:sysfs_torch:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d300/leds/led:switch_2/brightness u:object_r:sysfs_torch:s0
# Pixel PowerHal
genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp u:object_r:sysfs_msm_subsys:s0
genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-0/early_wakeup u:object_r:sysfs_msm_subsys:s0

1
sepolicy/vendor/hal_ir_default.te vendored Normal file
View File

@@ -0,0 +1 @@
allow hal_ir_default ir_spi_device:chr_file rw_file_perms;

View File

@@ -5,7 +5,7 @@ vendor.qti.hardware.bt_channel_avoidance::IBTChannelAvoidance u:ob
vendor.xiaomi.hardware.campostproc::IMiPostProcService u:object_r:hal_camerapostproc_xiaomi_hwservice:s0
# Dolby
vendor.dolby.hardware.dms::IDms u:object_r:hal_dms_hwservice:s0
vendor.dolby.hardware.dms::IDms u:object_r:hal_dms_hwservice:s0
# Fingerprint
vendor.goodix.hardware.biometrics.fingerprint::IGoodixFingerprintDaemon u:object_r:hal_xiaomi_fingerprint_hwservice:s0

View File

@@ -1,5 +1,2 @@
allow mediacodec hal_dms_hwservice:hwservice_manager find;
binder_call(mediacodec, hal_dms_default)
allow mediacodec hal_dms_default:binder { call transfer };
allow mediacodec hal_dms_server:binder { call transfer };

View File

@@ -75,6 +75,7 @@ vendor.audio.feature.usb_offload_burst_mode.enable=true
vendor.audio.feature.usb_offload_sidetone_volume.enable=false
vendor.audio.feature.vbat.enable=true
vendor.audio.feature.wsa.enable=false
vendor.audio.flac.sw.decoder.24bit=true
vendor.audio.hal.output.suspend.supported=false
vendor.audio.hw.aac.encoder=false
vendor.audio.offload.buffer.size.kb=256
@@ -211,11 +212,6 @@ ro.frp.pst=/dev/block/bootdevice/by-name/frp
# Gatekeeper
vendor.gatekeeper.disable_spu=true
# HWUI
ro.hwui.render_ahead=5
debug.hwui.use_hint_manager=true
debug.hwui.target_cpu_time_percent=30
# IMS
persist.dbg.volte_avail_ovr=1
persist.dbg.vt_avail_ovr=1
@@ -227,6 +223,8 @@ ro.vendor.qti.va_odm.support=1
#Media
media.settings.xml=/vendor/etc/media_profiles_vendor.xml
debug.stagefright.ccodec=1
debug.stagefright.omx_default_rank=0
# Pre-rendering
ro.vendor.perf.scroll_opt=true

View File

@@ -1,15 +0,0 @@
//
// Copyright (C) 2023 The LineageOS Project
//
// SPDX-License-Identifier: Apache-2.0
//
cc_prebuilt_library_shared {
name: "libc29",
vendor_available: true,
strip: {
none: true,
},
srcs: ["libc++.so"],
check_elf_files: false,
}

Binary file not shown.