Compare commits
72 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 400389796d | |||
| 72d1f3834b | |||
| d197870aeb | |||
|
|
0042f4cc3d | ||
|
|
c4e8a099e9 | ||
|
|
2f0d4a8cd4 | ||
| 26b27c3aa6 | |||
| ecd677427f | |||
| 48e53eab03 | |||
| dad742db3e | |||
| f7cfbefd0f | |||
| 4bfb1cd72e | |||
| 446df5d00d | |||
|
|
a1b2ad52a5 | ||
|
|
6cf426988a | ||
|
|
caf4a86569 | ||
|
|
a474e0a0ec | ||
|
|
9fc5959cd6 | ||
|
|
41089f765c | ||
|
|
52b5422b8d | ||
|
|
c5be6143d6 | ||
|
|
fb788347c7 | ||
|
|
6f230c1c64 | ||
|
|
8b225c8c03 | ||
|
|
8db4fdedd0 | ||
|
|
6e343daeb6 | ||
|
|
f0c6917574 | ||
|
|
7c0ab5e736 | ||
|
|
68017c885d | ||
|
|
92d97077aa | ||
|
|
b1986fe4f0 | ||
|
|
0981e7e832 | ||
|
|
0c6a1b7749 | ||
|
|
21107c0060 | ||
|
|
09218a8de7 | ||
|
|
617f330b87 | ||
|
|
083fcb9319 | ||
|
|
714142838f | ||
|
|
8426710e6b | ||
|
|
5297207168 | ||
|
|
9ed67422aa | ||
|
|
cf9026c4f8 | ||
|
|
03786290f4 | ||
|
|
b899960505 | ||
|
|
6870d1099e | ||
|
|
29a905d974 | ||
|
|
555749c4c2 | ||
|
|
1dd564eef2 | ||
|
|
9ef8670d56 | ||
|
|
f133499afc | ||
|
|
77178b6b8c | ||
|
|
d0190b0cde | ||
|
|
183c251cc6 | ||
|
|
92e8e1dfb5 | ||
|
|
a1f9335cf8 | ||
|
|
116b007db8 | ||
|
|
e219098657 | ||
|
|
480c41cb95 | ||
|
|
27954c4e4a | ||
|
|
2869ad9c3b | ||
|
|
9f0d882d15 | ||
|
|
7804b4b262 | ||
|
|
d8bfe7a334 | ||
|
|
0144d76a36 | ||
|
|
4a5a1f2673 | ||
|
|
054fec088a | ||
|
|
c75e0a2968 | ||
|
|
702848c8e1 | ||
|
|
54eaadddde | ||
|
|
5d79ba4da3 | ||
|
|
5ba7975eca | ||
|
|
63693bb470 |
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
out/
|
||||
extract-files.py
|
||||
14
Android.mk
14
Android.mk
@@ -20,20 +20,6 @@ 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.
|
||||
|
||||
@@ -51,7 +51,6 @@ 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
|
||||
@@ -65,15 +64,12 @@ 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
|
||||
@@ -86,7 +82,7 @@ TARGET_ENABLE_MEDIADRM_64 := true
|
||||
TARGET_FS_CONFIG_GEN := $(DEVICE_PATH)/configs/config.fs
|
||||
|
||||
# FOD
|
||||
TARGET_SURFACEFLINGER_UDFPS_LIB := //$(DEVICE_PATH):libudfps_extension.cepheus
|
||||
$(call soong_config_set,surfaceflinger,udfps_lib,//$(DEVICE_PATH):libudfps_extension.cepheus)
|
||||
TARGET_USES_FOD_ZPOS := true
|
||||
|
||||
# GPS
|
||||
@@ -95,15 +91,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
|
||||
TARGET_INIT_VENDOR_LIB := //$(DEVICE_PATH):libinit_cepheus
|
||||
$(call soong_config_set,libinit,vendor_init_lib,//$(DEVICE_PATH):libinit_cepheus)
|
||||
TARGET_RECOVERY_DEVICE_MODULES := libinit_cepheus
|
||||
|
||||
# Kernel
|
||||
@@ -118,8 +114,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 := r530567
|
||||
KERNEL_TOOLCHAIN := $(shell pwd)/prebuilts/clang/host/linux-x86/clang-r498229b/bin
|
||||
TARGET_KERNEL_CLANG_VERSION := r547379
|
||||
KERNEL_TOOLCHAIN := $(shell pwd)/prebuilts/clang/host/linux-x86/clang-r536225/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 += \
|
||||
@@ -128,7 +124,6 @@ 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
|
||||
@@ -136,8 +131,8 @@ BOARD_KERNEL_CMDLINE += kpti=off
|
||||
BOARD_KERNEL_CMDLINE += androidboot.boot_devices=soc/1d84000.ufshc
|
||||
|
||||
# Lineage Health
|
||||
TARGET_HEALTH_CHARGING_CONTROL_SUPPORTS_BYPASS := false
|
||||
TARGET_HEALTH_CHARGING_CONTROL_CHARGING_PATH := /sys/class/power_supply/battery/charging_enabled
|
||||
$(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)
|
||||
|
||||
# Media
|
||||
TARGET_USES_ION := true
|
||||
@@ -148,7 +143,6 @@ 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
|
||||
@@ -162,15 +156,7 @@ 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
|
||||
|
||||
# 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
|
||||
-include vendor/lineage/config/BoardConfigReservedSize.mk
|
||||
|
||||
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
|
||||
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
|
||||
@@ -207,7 +193,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)
|
||||
@@ -226,8 +212,6 @@ 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
|
||||
|
||||
|
||||
@@ -19,3 +19,11 @@ 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"
|
||||
],
|
||||
}
|
||||
|
||||
78
camera/CameraProviderExtension.cpp
Normal file
78
camera/CameraProviderExtension.cpp
Normal file
@@ -0,0 +1,78 @@
|
||||
/*
|
||||
* 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
@@ -1,39 +0,0 @@
|
||||
<!-- 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>
|
||||
@@ -3,15 +3,6 @@
|
||||
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>
|
||||
@@ -21,14 +12,6 @@
|
||||
<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>
|
||||
|
||||
@@ -86,14 +86,14 @@
|
||||
<fqname>@4.1::IKeymasterDevice/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.light</name>
|
||||
<name>android.hardware.media.c2</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>2.0</version>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
<name>ILight</name>
|
||||
<name>IComponentStore</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
<fqname>@2.0::ILight/default</fqname>
|
||||
<fqname>@1.0::IComponentStore/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.media.omx</name>
|
||||
@@ -578,14 +578,4 @@
|
||||
</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>
|
||||
|
||||
@@ -98,7 +98,6 @@ 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 |
|
||||
@@ -110,7 +109,6 @@ 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 |
|
||||
|_____________|_____________________________________________________|
|
||||
|
||||
@@ -152,20 +150,16 @@ 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>
|
||||
@@ -235,33 +229,6 @@ 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 -->
|
||||
@@ -411,33 +378,5 @@ 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>
|
||||
|
||||
77
device.mk
77
device.mk
@@ -104,6 +104,7 @@ PRODUCT_PACKAGES += \
|
||||
android.hardware.camera.provider@2.4-service_64
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
libc29.vendor \
|
||||
libcamera2ndk_vendor \
|
||||
libdng_sdk.vendor \
|
||||
libgui_vendor \
|
||||
@@ -122,9 +123,6 @@ 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
|
||||
@@ -141,8 +139,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.msmnile \
|
||||
hwcomposer.msmnile \
|
||||
gralloc.qcom \
|
||||
hwcomposer.qcom \
|
||||
libdisplayconfig.qti \
|
||||
libdisplayconfig.system.qti \
|
||||
libqdMetaData \
|
||||
@@ -155,36 +153,37 @@ 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
|
||||
android.hardware.drm-service.clearkey \
|
||||
libcrypto_shim.vendor
|
||||
|
||||
# Enable incremental FS feature
|
||||
PRODUCT_PROPERTY_OVERRIDES += ro.incremental.enable=1
|
||||
|
||||
# Enable blurs, hidden under dev option
|
||||
PRODUCT_PRODUCT_PROPERTIES += \
|
||||
ro.launcher.blur.appLaunch=0 \
|
||||
ro.launcher.blur.appLaunch=1 \
|
||||
ro.surface_flinger.supports_background_blur=1 \
|
||||
persist.sys.sf.disable_blurs=1 \
|
||||
persist.sys.sf.disable_blurs=0 \
|
||||
ro.sf.blurs_are_expensive=1
|
||||
|
||||
# Fastbootd
|
||||
@@ -201,7 +200,6 @@ 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 \
|
||||
|
||||
@@ -290,7 +288,7 @@ PRODUCT_PACKAGES += \
|
||||
|
||||
# Lights
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.lights-service.cepheus
|
||||
android.hardware.light-service.lineage
|
||||
|
||||
# Lineage Health
|
||||
PRODUCT_PACKAGES += \
|
||||
@@ -303,25 +301,19 @@ 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
|
||||
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
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
$(LOCAL_PATH)/configs/media/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
|
||||
@@ -340,14 +332,9 @@ 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
|
||||
TARGET_CAMERA_OVERRIDE_FORMAT_FROM_RESERVED := true
|
||||
$(call soong_config_set,camera,override_format_from_reserved,true)
|
||||
TARGET_USES_MIUI_CAMERA := true
|
||||
$(call inherit-product-if-exists, vendor/xiaomi/miuicamera-cepheus/config.mk)
|
||||
|
||||
@@ -370,7 +357,6 @@ PRODUCT_PACKAGES += \
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.nfc@1.2-service \
|
||||
android.hardware.secure_element@1.2.vendor \
|
||||
NfcNci \
|
||||
Tag
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
@@ -414,9 +400,6 @@ 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 \
|
||||
@@ -492,6 +475,7 @@ PRODUCT_PACKAGES += \
|
||||
# Soong namespaces
|
||||
PRODUCT_SOONG_NAMESPACES += \
|
||||
$(LOCAL_PATH) \
|
||||
bootable/deprecated-ota \
|
||||
hardware/google/interfaces \
|
||||
hardware/xiaomi
|
||||
|
||||
@@ -538,6 +522,9 @@ 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
|
||||
@@ -551,9 +538,6 @@ 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 \
|
||||
@@ -600,7 +584,10 @@ PRODUCT_PACKAGES += \
|
||||
|
||||
# WiFi Display
|
||||
PRODUCT_PACKAGES += \
|
||||
android.media.audio.common.types-V2-cpp \
|
||||
android.media.audio.common.types-V4-cpp \
|
||||
libbinder_shim \
|
||||
libgui_shim \
|
||||
libinput_shim \
|
||||
libnl \
|
||||
libwfdaac_vendor \
|
||||
vendor.qti.hardware.display.config-V5-ndk
|
||||
|
||||
@@ -5,22 +5,23 @@
|
||||
},
|
||||
{
|
||||
"repository": "kernel_xiaomi_cepheus",
|
||||
"target_path": "kernel/xiaomi/cepheus"
|
||||
"target_path": "kernel/xiaomi/cepheus",
|
||||
"branch": "bka"
|
||||
},
|
||||
{
|
||||
"repository": "hardware_xiaomi",
|
||||
"target_path": "hardware/xiaomi"
|
||||
},
|
||||
{
|
||||
"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": "chematelegram/android_vendor_xiaomi_miuicamera",
|
||||
"repository": "nhansp/android_vendor_xiaomi_miuicamera",
|
||||
"target_path": "vendor/xiaomi/miuicamera-cepheus",
|
||||
"branch": "leica-5.0-cepheus",
|
||||
"remote": "gitlab"
|
||||
},
|
||||
{
|
||||
"repository": "crdroidandroid/android_prebuilts_clang_host_linux-x86_clang-r547379",
|
||||
"target_path": "prebuilts/clang/host/linux-x86/clang-r547379",
|
||||
"branch": "15.0",
|
||||
"remote": "gitlab"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -61,8 +61,22 @@ 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)
|
||||
patchelf --remove-needed "android.hidl.base@1.0.so" "${2}"
|
||||
[ "$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}"
|
||||
;;
|
||||
vendor/bin/mi_thermald)
|
||||
sed -i 's/%d\/on/%d\/../g' "${2}"
|
||||
@@ -83,6 +97,9 @@ 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
|
||||
}
|
||||
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
// 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",
|
||||
],
|
||||
}
|
||||
@@ -1,164 +0,0 @@
|
||||
/*
|
||||
* 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
|
||||
@@ -1,56 +0,0 @@
|
||||
/*
|
||||
* 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
|
||||
@@ -1,16 +0,0 @@
|
||||
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
|
||||
@@ -1,6 +0,0 @@
|
||||
<manifest version="1.0" type="device">
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.light</name>
|
||||
<fqname>ILights/default</fqname>
|
||||
</hal>
|
||||
</manifest>
|
||||
@@ -1,37 +0,0 @@
|
||||
/*
|
||||
* 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
|
||||
}
|
||||
@@ -1,231 +0,0 @@
|
||||
/*
|
||||
* 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
|
||||
@@ -1,68 +0,0 @@
|
||||
/*
|
||||
* 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
|
||||
@@ -1,18 +0,0 @@
|
||||
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
|
||||
@@ -1,50 +0,0 @@
|
||||
/*
|
||||
* 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;
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
TARGET_BOOT_ANIMATION_RES := 1080
|
||||
TARGET_DISABLE_EPPE := true
|
||||
TARGET_HAS_UDFPS := true
|
||||
BUILD_SEEDVAULT := true
|
||||
TARGET_BOOT_ANIMATION_RES := 1080
|
||||
TARGET_HAS_UDFPS := true
|
||||
TARGET_INCLUDE_ACCORD = false
|
||||
TARGET_USES_MINI_GAPPS := true
|
||||
|
||||
# Device identifier
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
#!/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
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2015-2016 The CyanogenMod Project
|
||||
2017-2018 The LineageOS Project
|
||||
2017-2021, 2025 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,16 +83,23 @@
|
||||
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.battery" />
|
||||
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" />
|
||||
<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>
|
||||
|
||||
10
parts/res/drawable/ic_settings_thermal.xml
Normal file
10
parts/res/drawable/ic_settings_thermal.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<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>
|
||||
15
product.prop
15
product.prop
@@ -1,5 +1,5 @@
|
||||
# Camera
|
||||
vendor.camera.aux.packagelist=com.android.camera,org.pixelexperience.faceunlock,org.lineageos.aperture
|
||||
vendor.camera.aux.packagelist=com.android.camera,co.aospa.sense,org.lineageos.aperture
|
||||
persist.camera.sat.fallback.dist.d=10
|
||||
persist.camera.sat.fallback.dist=40
|
||||
persist.camera.sat.fallback.lux.d=50
|
||||
@@ -88,13 +88,12 @@ persist.radio.volte.dan_support=true
|
||||
|
||||
# SurfaceFlinger
|
||||
ro.surface_flinger.max_frame_buffer_acquired_buffers=3
|
||||
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
|
||||
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
|
||||
ro.surface_flinger.protected_contents=true
|
||||
|
||||
# WiFi
|
||||
|
||||
@@ -77,9 +77,6 @@ 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
|
||||
@@ -203,7 +200,6 @@ 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
|
||||
@@ -439,31 +435,9 @@ 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
|
||||
@@ -471,17 +445,9 @@ 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
|
||||
|
||||
@@ -639,49 +605,11 @@ 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|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/eglSubDriverAndroid.so;SYMLINK=vendor|a9d540641ac06335bf3689926da50d0408e2863e
|
||||
vendor/lib/egl/libEGL_adreno.so|f77d54d08edbbf13add12518338ff389c873e1cd
|
||||
vendor/lib/egl/libGLESv1_CM_adreno.so|f85c647f07feb5e850426b8b04107e6fcbe73a42
|
||||
vendor/lib/egl/libGLESv2_adreno.so|bbbf71932164655ecb2126b907e1d9cb2d897ebb
|
||||
vendor/lib/egl/libq3dtools_adreno.so|89416a47b7105de1e81d0540c6e2a82ae33b4dda
|
||||
vendor/lib/egl/libGLESv2_adreno.so;SYMLINK=vendor|bbbf71932164655ecb2126b907e1d9cb2d897ebb
|
||||
vendor/lib/egl/libq3dtools_adreno.so;SYMLINK=vendor|89416a47b7105de1e81d0540c6e2a82ae33b4dda
|
||||
vendor/lib/egl/libq3dtools_esx.so|bfbd1e76dc1f81039ffebd6b7534be52173c349d
|
||||
vendor/lib/hw/vulkan.adreno.so|bafd65cc8786aeb5bdc12e3c8db09fecdbcb2d01
|
||||
vendor/lib/libC2D2.so|bf22239cc4a003a6cd1b3e273f60dc37e4d51730
|
||||
@@ -696,11 +624,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|c950953ab821212322c44497c40f7bec912620a7
|
||||
vendor/lib64/egl/eglSubDriverAndroid.so;SYMLINK=vendor|c950953ab821212322c44497c40f7bec912620a7
|
||||
vendor/lib64/egl/libEGL_adreno.so|066dc49939ceec71978268737f3a32c8f2aeddf2
|
||||
vendor/lib64/egl/libGLESv1_CM_adreno.so|a5ee6c77ea24be2423f661eeddfc868d279d4378
|
||||
vendor/lib64/egl/libGLESv2_adreno.so|e349a692959c6715da4b35e84c82c0eee4b01e00
|
||||
vendor/lib64/egl/libq3dtools_adreno.so|0edfcd0c063a82a4ab29542243a0f842632f31ee
|
||||
vendor/lib64/egl/libGLESv2_adreno.so;SYMLINK=vendor|e349a692959c6715da4b35e84c82c0eee4b01e00
|
||||
vendor/lib64/egl/libq3dtools_adreno.so;SYMLINK=vendor|0edfcd0c063a82a4ab29542243a0f842632f31ee
|
||||
vendor/lib64/egl/libq3dtools_esx.so|8ba3d0cbe51dff3b860cca48dcd294ccd0816e18
|
||||
vendor/lib64/hw/vulkan.adreno.so|c00dfeefef27d950de5a10234cf78b4614521939
|
||||
vendor/lib64/libC2D2.so|21a3b027b0857ee910f9db3e7558f35aafaadef5
|
||||
@@ -789,22 +717,8 @@ 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
|
||||
@@ -812,7 +726,6 @@ 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
|
||||
@@ -824,8 +737,6 @@ 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
|
||||
@@ -958,7 +869,6 @@ 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
|
||||
@@ -1180,25 +1090,26 @@ 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 qssi-user-14-UKQ1.230804.001-2309192131-release-keys
|
||||
-system/framework/WfdCommon.jar|08bf9850ac45396fe753e208c4d63ec43389dce2
|
||||
# WiFi Display (system) - from KB2005 14.0.0.602(EX01)
|
||||
system/framework/WfdCommon.jar|a661c494d064b79a3f71579592411fada1ea232f
|
||||
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|37994de64d6bd127898bd556cd614db459fe07ec
|
||||
system_ext/etc/seccomp_policy/wfdservice.policy|5b3592c965f16b2d55ac89d56d8d3c49a6b5800b
|
||||
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|6b17a4e265fedb563f18b867292dcacf1913bf9e
|
||||
system_ext/lib/libwfdavenhancements.so|581db496334d2adb76e6c6af67620f49ca24eabd
|
||||
system_ext/lib/libwfdclient.so|a9639d9f269880700bac6fc06e8302702fb0ab32
|
||||
system_ext/lib/libwfdcommonutils.so|b738182e77f3e7faf72460f09ebdfca7de5e0c23
|
||||
system_ext/lib/libwfdconfigutils.so|0d647652ef3c3b7e5f70134077a6fbc4269097ee
|
||||
system_ext/lib/libwfdconfigutils.so|a52a96e2699f3a5ad79838e356cd90838e26218b
|
||||
system_ext/lib/libwfddisplayconfig.so|f46fe63fb3d58c143dc92741a962167af3d8b928
|
||||
system_ext/lib/libwfdmminterface.so|5844114d7cc823090a70fe4f44cbda0ddf585ebd
|
||||
system_ext/lib/libwfdmmsink.so|d3f2190802077f4de4062d110077fbae893934f0
|
||||
system_ext/lib/libwfdmmsrc_system.so|9e8628fd9ede4882fa878bd09109df2d21384b02
|
||||
system_ext/lib/libwfdmmsink.so|23fb5c836fc06865b229c30b46998e41c0624dac
|
||||
system_ext/lib/libwfdmmsrc_system.so|0adfc69a5560158f3a6803ba720acc795d6d05dc|f4395e4a22bed41fdbe86c988caba7d46cf0c8bf
|
||||
system_ext/lib/libwfdrtsp.so|afd69963c2bd59bdb3ff23e01710c61ed90c5d87
|
||||
system_ext/lib/libwfdservice.so|41857e76e67210127909f67aa4f68398a6221459
|
||||
system_ext/lib/libwfdservice.so|07e6d0e00393a8c068f75b46531d2e75fdaebde2|679e2cb2b25374a57dfd860286da96abeee04f36
|
||||
system_ext/lib/libwfdsinksm.so|875171cc6ae534dd941eec1c87b78d5961e19c06
|
||||
system_ext/lib/libwfduibcinterface.so|e90fa4920b010bd6ef2bd78c2d2644cbd0fcbffa
|
||||
system_ext/lib/libwfduibcsink.so|91af548471c395a958e6155dd9be19cccbe482d3
|
||||
@@ -1206,15 +1117,16 @@ 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|a67a7f1a48a94680f66f9fe07ab7cac7af1bafe9
|
||||
system_ext/lib64/libwfdconfigutils.so|6f1a3a862ddde4245ea58ad310101df620d3a00b
|
||||
system_ext/lib64/libwfddisplayconfig.so|5fd7bf7abaedfe890442f88183c49755b25c39aa
|
||||
system_ext/lib64/libwfdmminterface.so|3f16acefbe87741a5841c1c70cf74ff917299c4c
|
||||
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/libwfdmmsink.so|8150b750357b606475521b491f78d566673f9888
|
||||
system_ext/lib64/libwfdnative.so;SYMLINK=system_ext/priv-app/WfdService/lib/arm64/libwfdnative.so|92ec61d464c07d9e9020cf413489cdc01fb19abc|b05d302786751221114b087b97b56181b9596102
|
||||
system_ext/lib64/libwfdrtsp.so|8181e44d7c1f722218fabd8fe3bf788454a3f586
|
||||
system_ext/lib64/libwfdsinksm.so|c4d68ecbe0accd24296c18444e5a82b6a24be8d8
|
||||
system_ext/lib64/libwfduibcinterface.so|dca32fe063bdba7ce3b131b16cf112b793ae03ad
|
||||
@@ -1222,8 +1134,7 @@ 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/lib64/vendor.qti.hardware.wifidisplaysession@1.0.so|67a10e8e42fd0cfc0a0a3246a4740e4ed37b3506
|
||||
system_ext/priv-app/WfdService/WfdService.apk|cd09bfd8351d99e8cedca14f761352fc1831ac06
|
||||
system_ext/priv-app/WfdService/WfdService.apk|7191da7d336f6018ee292af4e69167677b9f5bd1
|
||||
|
||||
# WiFi Display (vendor) - from LA.UM.9.1.r1-12900-SMxxx0.0
|
||||
vendor/bin/wfdhdcphalservice|40c3d329f49cbb56286d6a550cc8b12ac95048df
|
||||
|
||||
@@ -17,36 +17,22 @@
|
||||
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):
|
||||
input_zip = info.input_zip
|
||||
OTA_InstallEnd(info, input_zip)
|
||||
OTA_InstallEnd(info)
|
||||
return
|
||||
|
||||
def IncrementalOTA_InstallEnd(info):
|
||||
input_zip = info.target_zip
|
||||
OTA_InstallEnd(info, input_zip)
|
||||
OTA_InstallEnd(info)
|
||||
return
|
||||
|
||||
def AddImage(info, dir, input_zip, basename, dest):
|
||||
path = dir + "/" + basename
|
||||
if path not in input_zip.namelist():
|
||||
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))
|
||||
|
||||
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):
|
||||
def OTA_InstallEnd(info):
|
||||
info.script.Print("Patching dtbo and vbmeta images...")
|
||||
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")
|
||||
AddImage(info, "dtbo.img", "/dev/block/bootdevice/by-name/dtbo")
|
||||
AddImage(info, "vbmeta.img", "/dev/block/bootdevice/by-name/vbmeta")
|
||||
return
|
||||
|
||||
@@ -412,3 +412,8 @@ 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
|
||||
|
||||
@@ -31,4 +31,10 @@
|
||||
<!-- 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>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2019-2021 The Evolution X Project
|
||||
Copyright (C) 2019-2025 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">Chema Funtan (@chematelegram)</string>
|
||||
<string name="build_maintainer_donate_url">https://www.paypal.com/paypalme/chfondia</string>
|
||||
<string name="build_maintainer_summary">nhansp</string>
|
||||
<string name="build_maintainer_donate_url">https://github.com/nhansp</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -15,6 +15,18 @@
|
||||
*/
|
||||
-->
|
||||
<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>
|
||||
@@ -24,4 +36,8 @@
|
||||
|
||||
<!-- 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>
|
||||
|
||||
@@ -13,4 +13,10 @@
|
||||
|
||||
<!-- 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>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
for different hardware and product builds. -->
|
||||
<resources>
|
||||
<!-- Color of the UDFPS pressed view -->
|
||||
<color name="config_udfpsColor">#00ff00</color>
|
||||
<color name="config_udfpsColor">#00ffffff</color>
|
||||
|
||||
<!-- Whether usage of the proximity sensor during doze is supported -->
|
||||
<bool name="doze_proximity_sensor_supported">false</bool>
|
||||
|
||||
2
sepolicy/vendor/cameraserver.te
vendored
Normal file
2
sepolicy/vendor/cameraserver.te
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
allow cameraserver sysfs_torch:file rw_file_perms;
|
||||
allow cameraserver sysfs_leds:dir r_dir_perms;
|
||||
3
sepolicy/vendor/file.te
vendored
3
sepolicy/vendor/file.te
vendored
@@ -36,3 +36,6 @@ 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;
|
||||
|
||||
10
sepolicy/vendor/file_contexts
vendored
10
sepolicy/vendor/file_contexts
vendored
@@ -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|system/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/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,9 +30,6 @@
|
||||
# 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)
|
||||
@@ -42,8 +39,7 @@
|
||||
/sys/devices/platform/soc/soc:qcom,dsi-display-primary/hbm u:object_r:vendor_sysfs_hbm:s0
|
||||
|
||||
# IR
|
||||
/dev/ir_spi u:object_r:ir_spi_device:s0
|
||||
/dev/lirc0 u:object_r:ir_spi_device:s0
|
||||
/dev/ir_spi u:object_r:lirc_device:s0
|
||||
|
||||
# Livedisplay
|
||||
/vendor/bin/hw/vendor\.lineage\.livedisplay@2\.1-service\.cepheus u:object_r:hal_lineage_livedisplay_qti_exec:s0
|
||||
|
||||
10
sepolicy/vendor/genfs_contexts
vendored
10
sepolicy/vendor/genfs_contexts
vendored
@@ -4,12 +4,22 @@ 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
1
sepolicy/vendor/hal_ir_default.te
vendored
@@ -1 +0,0 @@
|
||||
allow hal_ir_default ir_spi_device:chr_file rw_file_perms;
|
||||
2
sepolicy/vendor/hwservice_contexts
vendored
2
sepolicy/vendor/hwservice_contexts
vendored
@@ -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
|
||||
|
||||
3
sepolicy/vendor/mediacodec.te
vendored
3
sepolicy/vendor/mediacodec.te
vendored
@@ -1,2 +1,5 @@
|
||||
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 };
|
||||
|
||||
@@ -75,7 +75,6 @@ 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
|
||||
@@ -212,6 +211,11 @@ 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
|
||||
@@ -223,8 +227,6 @@ 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
|
||||
|
||||
15
vndk/Android.bp
Normal file
15
vndk/Android.bp
Normal file
@@ -0,0 +1,15 @@
|
||||
//
|
||||
// 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,
|
||||
}
|
||||
BIN
vndk/libc++.so
Normal file
BIN
vndk/libc++.so
Normal file
Binary file not shown.
Reference in New Issue
Block a user