42 Commits
bka ... udc

Author SHA1 Message Date
Jesse Chan
9a59c08d36 sdm845-common: overlay: configure SQLite to operate in MEMORY mode
This change yields considerable SQLite performance gains. It
should be generally safe as this device has irremovable battery.

Some OEMs have been doing this for years.

Change-Id: I873c6abfa088de43d2f6dec18d6d106fe23251ba
Signed-off-by: Jesse Chan <jc@lineageos.org>
Signed-off-by: PainKiller3 <ninadpatil100@gmail.com>
2024-10-31 02:42:17 +07:00
Albert I
a76d5245ec sdm845-common: Inherit several Android Go configurations
Beneficial for everyone, even on non-Go devices.
2024-10-31 02:29:01 +07:00
Mathieu Chartier
74866f585f sdm845-common: Speed profile services and wifi-service to reduce RAM and storage 2024-10-31 02:28:31 +07:00
Le Hong Duc
87c895faf2 Revert "sdm845-common: Reserve space for gapps"
This reverts commit 4a63d9a897.
2024-10-31 02:07:03 +07:00
Terminator-J
d16b0db56a sdm845-common: overlays: Update doze options
DT2W should probably check proximity sensor first to avoid
spurious pocket battery drain.
2024-10-31 02:01:20 +07:00
Le Hong Duc
bf73234013 sdm845-common: Enable volume step settings 2024-10-31 02:01:20 +07:00
Le Hong Duc
962070e390 sdm845-common: Enable double tap ambient support 2024-10-31 02:01:20 +07:00
Le Hong Duc
6ab6d9873e sdm845-common: Initialize Evolution X
Change-Id: I0258ac328e84175984816809986aea2d44a35feb
Signed-off-by: Le Hong Duc <hongducthbk123@gmail.com>
2024-10-31 02:01:20 +07:00
David Sehr
af0ae40ff7 sdm845-common: Enable usage of dex2oat64
Use 64-bit dex2oat for better dexopt time.

Bug: 153380900
Test: boot and install an application
Change-Id: I3e7a6e6e9385ff6564d1a2e6dda004ebb061f095
(cherry picked from commit 126f03be80f57a8a0411842011152d9381589b78)
Merged-In: I3e7a6e6e9385ff6564d1a2e6dda004ebb061f095
2024-10-31 02:00:11 +07:00
Alex Sarraf
d9df48233f sdm845-common: props: Disable SF client composition cache
Disable SF client composition cache. Helps with framework
client target fence management.

Change-Id: I73e03e76f51d00fafad38479be00f4005be50665
2024-10-31 02:00:11 +07:00
Pullakavi Srinivas
f88fe75421 sdm845-common: props: Disable SF composition prediction model.
CRs-Fixed: 3243885
Change-Id: I64f82a25768b561bb343fdb7686b7d6c020d024a
2024-10-31 02:00:11 +07:00
Georg Veichtlbauer
cde90c8d6f sdm845-common: props: Drop SF debug properties
latch_unsignaled defaults to auto single layer in Android 13.

Change-Id: I8d38f3257b5f6b56c0f6b79cf4fb406a47d64af8
2024-10-31 02:00:11 +07:00
SamarV-121
4dc4bf0bd9 sdm845-common: props: Disable continuous transaction tracing on all build types
Change-Id: I95657a00e38f1229675682e784b20cca12c119b0
2024-10-31 02:00:11 +07:00
Sultanxda
f449c56fea sdm845-common: props: Disable vendor.audio.feature.kpi_optimize.enable
We're not using perfd so this is useless.

Change-Id: I862d8bf175c8a99e525f50250ef900cc84da89d9
2024-10-31 02:00:11 +07:00
Georg Veichtlbauer
3fbe17119d sdm845-common: props: remove obsolete SurfaceFlinger properties
* debug.sf.hw & debug.egl.hw were removed.

Change-Id: I8d38f3257b5f6b56c0f6b79cf4fb406a47d64af8
2024-10-31 02:00:11 +07:00
Nirmal Abraham
c98a7e85e9 sdm845-common: props: Disable debug.sf.recomputecrop
Disable recompute crop change in SF

Change-Id: Ifd5bae734ccc4962427a64f789cf9890f10f5965
2024-10-31 02:00:11 +07:00
Lucchetto
a195372ca6 sdm845-common: props: disable phantom process monitoring
Change-Id: Iacf0e8056d3c28fdc15ef497be67d2e1a7ec8b0c
2024-10-31 02:00:11 +07:00
Tim Lin
9e243ecb2e sdm845-common: props: fix MT SMS sent during power off
qcril will block any further MT SMS if previous one is not ACKed.
For this bug, IMS service is not ready and resulted in qcril stuck in blocking state.
This solution will add 30s timer to reset blocking state if there is no ACK from Telephony.

Bug: 169549852
Test: MT SMS during power off
Change-Id: I6f52170654925143aeb55f8bc0cf4c379717e718
2024-10-31 02:00:11 +07:00
Long Ling
ac54194708 sdm845-common: props: Set debug.sf.layer_caching_active_layer_timeout_ms to 1000
Avoid SF cache thrashing in some cases.

Bug: 189928400
Test: no flicking issue with the testbuld (removed displaycolor fix)
      and flicking happens after set the prop to 0
Change-Id: I24aa79001ec21cff18ae5ac8ff988f70ed121061
2024-10-31 02:00:11 +07:00
EmanuelCN
6644e8793a sdm845-common: props: Set UI rendering to skiaglthreaded
Change-Id: I933482d7bd0355dfd9373975cc91c1e8e61e0755
2024-10-31 02:00:11 +07:00
Jun Wang
c8d44ce56a sdm845-common: props: Disable Skia tracing by default
If the prop "debug.hwui.skia_atrace_enabled" is enabled, too many
skia tracing calls will be printed in every frame. This has obvious
overhead on performance/power, and can cause many janks. So disable
it by default, and user can set it manually if necessary.

Change-Id: I90d28ddb77ced0127f941f2b6e4e491859981e51
2024-10-31 02:00:11 +07:00
EmanuelCN
42eff7f0ef sdm845-common: props: Default HWUI renderer to SkiaGL
Change-Id: I2fd62fc46c0e1ab67f94658a35dae26c41ff52dd
2024-10-31 02:00:11 +07:00
bengris32
852f257a05 sdm845-common: props: Tune phase offset duration
Change-Id: I5f7a3de4261beaa6ac8063565ae447b66f5612f2
2024-10-31 02:00:11 +07:00
Emanuel
c008703d9c sdm845-common: props: Use phase offsets as duration
Change-Id: I969c008c086bd7a2ea6f81ca511e39d0f6f3e562
2024-10-31 02:00:11 +07:00
Chenyang Zhong
fbb0f4325a sdm845-common: Ship cgroups.json and task_profiles.json
Google's prebuilt cgroups.json and task_profiles.json for products
launched with previous API levels only covers
ro.product.first_api_level >= 28. [1]

SDM845 devices was launched with Oreo MR1 (API level 27), so schedtune
and task groups are completely broken. Since the system also checks
/vendor/etc for vendor profiles, make a copy of cgroups_28.json
and task_profiles_28.json and ship them to /vendor/etc. Profiles
for previous API levels are all the same anyway.

Test: boot and check /dev/stune/

[1] system/core/libprocessgroup/profiles/

Signed-off-by: Chenyang Zhong <zhongcy95@gmail.com>
Change-Id: I65fe622a804a720a97b43d8092cc8a37703f4b64
2024-10-31 02:00:11 +07:00
Chenyang Zhong
ca1008b1c7 sdm845-common: Optimize for kryo385
Signed-off-by: Chenyang Zhong <zhongcy95@gmail.com>
2024-10-31 02:00:11 +07:00
Danny Lin
f1b05787ab sdm845-common: Declare support for ARMv8.2 extensions
Change-Id: I0d9f64ef4e676a5f8de93f87e48bf02f48af07af
Signed-off-by: Chenyang Zhong <zhongcy95@gmail.com>
2024-10-31 02:00:11 +07:00
Le Hong Duc
e54af76df3 sdm845-common: Only remove some unwanted gapps 2024-10-31 02:00:11 +07:00
Lunarixus
272b9bb04b sdm845-common: Remove packages at build time 2024-10-31 02:00:11 +07:00
mickaelmendes50
55626419e9 sdm845-common: Add Support for ParanoidSense
Change-Id: I75fe56418a40bd559430d6be6d79c80203b8fe7c
2024-10-31 02:00:11 +07:00
Martin Liu
9cec233b65 sdm845-common: adjust zram write back policy
The first default zram write back time is 3 hours which
is for go device to quickly save more ram. For Pixel
devices, we have more working set and could bring launch
time impact if we write back too fast. Thus, adjust the
first time write back time to 24 hours which is aligned
with periodic write back time.

Bug: 166739872
Test: boot

Change-Id: If1398bc44db0619cf2e2be87d4813972c0454dba
Signed-off-by: Martin Liu <liumartin@google.com>
2024-10-31 02:00:11 +07:00
Minchan Kim
89ee258d14 sdm845-common: Enable zram writeback job scheduler
Bug: 140882488
Change-Id: I5489a7ce7a8d73306a6ecf69f57d338b2b0eaad2
Signed-off-by: Minchan Kim <minchan@google.com>
Signed-off-by: Chenyang Zhong <zhongcy95@gmail.com>
2024-10-31 02:00:11 +07:00
Luofan Chen
78454e7e5e sdm845-common: Setup zram and zram writeback
Following Pixel's way of setting up zram and zram writeback, see https://github.com/LineageOS/android_hardware_google_pixel/tree/lineage-21.0/mm

Change-Id: I9220aa49929f7d37fa1344d8e5eff8a771151341
2024-10-31 02:00:11 +07:00
me-cafebabe
54c1b2627b sdm845-common: Preserve enough space for full gapps installation
It appears to be some popular gapps installers chooses a biggest partition to install.
Most of gapps files normally resides in product partition, let's enlarge it.

Signed-off-by: GhostMaster69-dev <rathore6375@gmail.com>
2024-10-31 02:00:11 +07:00
me-cafebabe
1514ecfe3d sdm845-common: Disable custom inode count calculation for SSI partitions
Signed-off-by: GhostMaster69-dev <rathore6375@gmail.com>
2024-10-31 02:00:11 +07:00
me-cafebabe
c732629622 sdm845-common: Refactor partition flags
* Set file system type and copy out for each partition
* Set reserved size with a foreach loop

Co-authored-by: Sebastiano Barezzi <barezzisebastiano@gmail.com>
Signed-off-by: GhostMaster69-dev <rathore6375@gmail.com>
2024-10-31 02:00:11 +07:00
Sebastiano Barezzi
c570a41089 sdm845-common: Use logdump as metadata partition
* We have a 64MB unused partition, why not use it

Change-Id: Ie0fafa8285eaebb24589073581ff9575f40c89e9
2024-10-31 02:00:11 +07:00
Tim Zimmermann
f5a74be96e sdm845-common: Flash dummy super image if needed
* Needed because stock does not use dynamic partitions so
  there's no existing metadata that could be used

Change-Id: Icbc828389465f3d4681ca8e4c3adec782540752e
Signed-off-by: Chenyang Zhong <zhongcy95@gmail.com>
2024-10-31 02:00:11 +07:00
Ivan Vecera
c7813e9c4f sdm845-common: Set TARGET_USES_YCRCB_VENUS_CAMERA_ENCODE
Fixes red & blue colors swapped in DeviceAsWebcam.

Change-Id: I0dcfe6d354674dd5b374d73e64cd0dac2a1aae36
2024-10-30 20:09:32 +07:00
me-cafebabe
471a12514c sdm845-common: Migrate to QTI USB Gadget 1.2 HIDL
Change-Id: I6adbca2fab9a3fe0477d17f9786166828b786710
2024-10-30 20:09:32 +07:00
me-cafebabe
1f9b42f154 sdm845-common: Move usage of USB MTP/PTP functionality with USB F_FS driver
* `vendor/qcom/opensource/usb/vendor_product.mk` enables it for
  kernel 4.9~4.19, and we're on kernel 4.9

Change-Id: I7bc8153b4016ab804d4e385ece5808f187a87886
2024-10-30 20:09:32 +07:00
me-cafebabe
12cea79c69 sdm845-common: Setup DeviceAsWebcam
Change-Id: Icf8e10cd21c4eef9a66af624971ffe9c4d39d992
2024-10-30 20:09:32 +07:00
120 changed files with 1914 additions and 3052 deletions

View File

@@ -1,8 +1,3 @@
//
// Copyright (C) 2024 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
soong_namespace {
imports: [
"hardware/google/interfaces",
@@ -10,17 +5,3 @@ soong_namespace {
"hardware/xiaomi",
],
}
install_symlink {
name: "firmware_wlan_mac.bin_symlink",
vendor: true,
installed_location: "firmware/wlan/qca_cld/wlan_mac.bin",
symlink_target: "/mnt/vendor/persist/wlan_mac.bin",
}
install_symlink {
name: "firmware_WCNSS_qcom_cfg.ini_symlink",
vendor: true,
installed_location: "firmware/wlan/qca_cld/WCNSS_qcom_cfg.ini",
symlink_target: "/vendor/etc/wifi/WCNSS_qcom_cfg.ini",
}

63
Android.mk Normal file
View File

@@ -0,0 +1,63 @@
#
# Copyright (C) 2018-2024 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
LOCAL_PATH := $(call my-dir)
ifneq ($(filter beryllium dipper equuleus perseus polaris ursa,$(TARGET_DEVICE)),)
include $(call all-makefiles-under,$(LOCAL_PATH))
include $(CLEAR_VARS)
# A/B builds require us to create the mount points at compile time.
# Just creating it for all cases since it does not hurt.
FIRMWARE_MOUNT_POINT := $(TARGET_OUT_VENDOR)/firmware_mnt
$(FIRMWARE_MOUNT_POINT): $(LOCAL_INSTALLED_MODULE)
@echo "Creating $(FIRMWARE_MOUNT_POINT)"
@mkdir -p $(TARGET_OUT_VENDOR)/firmware_mnt
BT_FIRMWARE_MOUNT_POINT := $(TARGET_OUT_VENDOR)/bt_firmware
$(BT_FIRMWARE_MOUNT_POINT): $(LOCAL_INSTALLED_MODULE)
@echo "Creating $(BT_FIRMWARE_MOUNT_POINT)"
@mkdir -p $(TARGET_OUT_VENDOR)/bt_firmware
DSP_MOUNT_POINT := $(TARGET_OUT_VENDOR)/dsp
$(DSP_MOUNT_POINT): $(LOCAL_INSTALLED_MODULE)
@echo "Creating $(DSP_MOUNT_POINT)"
@mkdir -p $(TARGET_OUT_VENDOR)/dsp
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_MOUNT_POINT) $(BT_FIRMWARE_MOUNT_POINT) $(DSP_MOUNT_POINT)
WCNSS_INI_SYMLINK := $(TARGET_OUT_VENDOR)/firmware/wlan/qca_cld/WCNSS_qcom_cfg.ini
$(WCNSS_INI_SYMLINK): $(LOCAL_INSTALLED_MODULE)
@echo "WCNSS config ini link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /vendor/etc/wifi/$(notdir $@) $@
WCNSS_MAC_SYMLINK := $(TARGET_OUT_VENDOR)/firmware/wlan/qca_cld/wlan_mac.bin
$(WCNSS_MAC_SYMLINK): $(LOCAL_INSTALLED_MODULE)
@echo "WCNSS MAC bin link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /mnt/vendor/persist/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(WCNSS_INI_SYMLINK) $(WCNSS_MAC_SYMLINK)
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) $(CURDIR)/$@ $(CURDIR)/$(PRODUCT_OUT)/super_empty.img
.PHONY: super_dummyimage
super_dummyimage: $(INSTALLED_SUPERIMAGE_DUMMY_TARGET)
INSTALLED_RADIOIMAGE_TARGET += $(INSTALLED_SUPERIMAGE_DUMMY_TARGET)
endif

View File

@@ -4,22 +4,24 @@
# SPDX-License-Identifier: Apache-2.0
#
BOARD_VENDOR := xiaomi
BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true
COMMON_PATH := device/xiaomi/sdm845-common
# Architecture
TARGET_ARCH := arm64
TARGET_ARCH_VARIANT := armv8-a
TARGET_ARCH_VARIANT := armv8-2a
TARGET_CPU_ABI := arm64-v8a
TARGET_CPU_ABI2 :=
TARGET_CPU_VARIANT := generic
TARGET_CPU_VARIANT_RUNTIME := kryo385
TARGET_CPU_VARIANT:= kryo385
TARGET_2ND_ARCH := arm
TARGET_2ND_ARCH_VARIANT := armv8-a
TARGET_2ND_ARCH_VARIANT := armv8-2a
TARGET_2ND_CPU_ABI := armeabi-v7a
TARGET_2ND_CPU_ABI2 := armeabi
TARGET_2ND_CPU_VARIANT := generic
TARGET_2ND_CPU_VARIANT_RUNTIME := kryo385
TARGET_2ND_CPU_VARIANT := kryo385
# Bootloader
TARGET_BOOTLOADER_BOARD_NAME := sdm845
@@ -30,12 +32,11 @@ BOARD_BOOT_HEADER_VERSION := 1
BOARD_KERNEL_BASE := 0x00000000
BOARD_KERNEL_CMDLINE := console=ttyMSM0,115200n8 earlycon=msm_geni_serial,0xA84000 androidboot.hardware=qcom androidboot.console=ttyMSM0 msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 service_locator.enable=1 swiotlb=2048 androidboot.configfs=true loop.max_part=7 androidboot.usbcontroller=a600000.dwc3
BOARD_KERNEL_CMDLINE += androidboot.boot_devices=soc/1d84000.ufshc
BOARD_KERNEL_CMDLINE += cgroup_disable=pressure
BOARD_KERNEL_IMAGE_NAME := Image.gz-dtb
BOARD_KERNEL_PAGESIZE := 4096
BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
TARGET_KERNEL_ARCH := arm64
TARGET_KERNEL_CONFIG := vendor/xiaomi/mi845_defconfig vendor/debugfs.config
TARGET_KERNEL_CONFIG := vendor/xiaomi/mi845_defconfig
TARGET_KERNEL_SOURCE := kernel/xiaomi/sdm845
# Platform
@@ -44,10 +45,17 @@ TARGET_BOARD_PLATFORM := sdm845
# Audio
TARGET_PROVIDES_AUDIO_EXTNS := true
# Camera
TARGET_USES_YCRCB_CAMERA_ENCODE := true
# Filesystem
TARGET_FS_CONFIG_GEN := $(COMMON_PATH)/config.fs
# Graphics
TARGET_USES_GRALLOC1 := true
TARGET_USES_HWC2 := true
TARGET_USES_ION := true
MAX_EGL_CACHE_KEY_SIZE := 12*1024
MAX_EGL_CACHE_SIZE := 2048*1024
@@ -63,22 +71,20 @@ DEVICE_MATRIX_FILE := hardware/qcom-caf/common/compatibility_matrix.xml
# LMKD
TARGET_LMKD_STATS_LOG := true
# Media
TARGET_USES_ION := true
# Partitions
AB_OTA_UPDATER := false
SSI_PARTITIONS := system system_ext product
TREBLE_PARTITIONS := vendor odm
ALL_PARTITIONS := $(SSI_PARTITIONS) $(TREBLE_PARTITIONS)
$(foreach p, $(call to-upper, $(ALL_PARTITIONS)), \
$(eval BOARD_$(p)IMAGE_FILE_SYSTEM_TYPE := ext4) \
$(eval TARGET_COPY_OUT_$(p) := $(call to-lower, $(p))))
BOARD_BOOTIMAGE_PARTITION_SIZE := 67092480
BOARD_CACHEIMAGE_PARTITION_SIZE := 268435456
BOARD_USERDATAIMAGE_PARTITION_SIZE := 57453555712
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_ODMIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_USES_METADATA_PARTITION := true
BOARD_FLASH_BLOCK_SIZE := 262144 # (BOARD_KERNEL_PAGESIZE * 64)
@@ -91,14 +97,9 @@ BOARD_SUPER_PARTITION_SYSTEM_DEVICE_SIZE := 3221225472
BOARD_SUPER_PARTITION_VENDOR_DEVICE_SIZE := 1073741824
BOARD_SUPER_PARTITION_GROUPS := qti_dynamic_partitions
BOARD_QTI_DYNAMIC_PARTITIONS_PARTITION_LIST := odm product system system_ext vendor
BOARD_QTI_DYNAMIC_PARTITIONS_PARTITION_LIST := $(ALL_PARTITIONS)
BOARD_QTI_DYNAMIC_PARTITIONS_SIZE := 5163188224 # (BOARD_SUPER_PARTITION_SIZE - 4194304) 4MiB overhead
include vendor/lineage/config/BoardConfigReservedSize.mk
BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE := 20971520 # 20MiB
BOARD_VENDORIMAGE_PARTITION_RESERVED_SIZE := 20971520 # 20MiB
TARGET_USERIMAGES_USE_EXT4 := true
TARGET_USERIMAGES_USE_F2FS := true
TARGET_USERIMAGES_SPARSE_EXT_DISABLED := false
@@ -108,6 +109,24 @@ TARGET_COPY_OUT_PRODUCT := product
TARGET_COPY_OUT_SYSTEM_EXT := system_ext
TARGET_COPY_OUT_VENDOR := vendor
# Partitions - reserved size
$(foreach p, $(call to-upper, $(SSI_PARTITIONS)), \
$(eval BOARD_$(p)IMAGE_EXTFS_INODE_COUNT := -1))
$(foreach p, $(call to-upper, $(TREBLE_PARTITIONS)), \
$(eval BOARD_$(p)IMAGE_EXTFS_INODE_COUNT := 5120))
$(foreach p, $(call to-upper, $(SSI_PARTITIONS)), \
$(eval BOARD_$(p)IMAGE_PARTITION_RESERVED_SIZE := 52428800)) # 50 MB
$(foreach p, $(call to-upper, $(TREBLE_PARTITIONS)), \
$(eval BOARD_$(p)IMAGE_PARTITION_RESERVED_SIZE := 20971520)) # 20 MB
ifneq ($(WITH_GMS),true)
BOARD_PRODUCTIMAGE_PARTITION_RESERVED_SIZE := 1287651328 # 1228 MB
endif
# Power
TARGET_POWER_LIBPERFMGR_MODE_EXTENSION_LIB := //$(COMMON_PATH):libperfmgr-ext-xiaomi
# Properties
TARGET_ODM_PROP += $(COMMON_PATH)/odm.prop
TARGET_PRODUCT_PROP += $(COMMON_PATH)/product.prop
@@ -120,7 +139,7 @@ BOARD_USES_QCOM_HARDWARE := true
TARGET_FWK_SUPPORTS_FULL_VALUEADDS := true
# Recovery
TARGET_RECOVERY_PIXEL_FORMAT := BGRA_8888
TARGET_RECOVERY_PIXEL_FORMAT := "BGRA_8888"
# Releasetools
TARGET_RECOVERY_UPDATER_LIBS := librecovery_updater_xiaomi

View File

@@ -41,16 +41,7 @@
<library name="volume_listener" path="libvolumelistener.so"/>
<library name="audiosphere" path="libasphere.so"/>
<library name="shoebox" path="libshoebox.so"/>
<library name="v4a_re" path="libv4a_re.so"/>
<!--DOLBY DAP-->
<library name="dap" path="libswdap.so"/>
<!--DOLBY END-->
<!--DOLBY GAME-->
<library name="gamedap" path="libswgamedap.so"/>
<!--DOLBY END-->
<!--DOLBY VQE-->
<library name="vqe" path="libswvqe.so"/>
<!--DOLBY END-->
<library name="dirac" path="libdirac.so"/>
</libraries>
<effects>
<effectProxy name="bassboost" library="proxy" uuid="14804144-a5ee-4d24-aa88-0002a5d5c51b">
@@ -98,16 +89,7 @@
<effect name="notification_helper" library="volume_listener" uuid="0b776dde-0590-11e5-81ba-0025b32654a0"/>
<effect name="audiosphere" library="audiosphere" uuid="184e62ab-2d19-4364-9d1b-c0a40733866c"/>
<effect name="shoebox" library="shoebox" uuid="1eab784c-1a36-4b2a-b7fc-e34c44cab89e"/>
<effect name="v4a_standard_re" library="v4a_re" uuid="90380da3-8536-4744-a6a3-5731970e640f"/>
<!--DOLBY DAP-->
<effect name="dap" library="dap" uuid="9d4921da-8225-4f29-aefa-39537a04bcaa"/>
<!--DOLBY END-->
<!--DOLBY GAME-->
<effect name="gamedap" library="gamedap" uuid="3783c334-d3a0-4d13-874f-0032e5fb80e2"/>
<!--DOLBY END-->
<!--DOLBY VQE-->
<effect name="vqe" library="vqe" uuid="64a0f614-7fa4-48b8-b081-d59dc954616f"/>
<!--DOLBY END-->
<effect name="dirac" library="dirac" uuid="e069d9e0-8329-11df-9168-0002a5d5c51b"/>
</effects>
<postprocess>
<stream type="music">

View File

@@ -77,6 +77,7 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="hifi_playback" role="source" />
<mixPort name="compress_passthrough" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING"/>
<mixPort name="direct_pcm" role="source"
@@ -184,6 +185,7 @@
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3"/>
</mixPort>
<mixPort name="hifi_input" role="sink" maxOpenCount="1" maxActiveCount="2"/>
</mixPorts>
<devicePorts>
@@ -251,6 +253,14 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<!-- Input devices declaration, i.e. Source DEVICE PORT -->
<devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source">
@@ -281,6 +291,11 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</devicePort>
<devicePort tagName="USB Device In" type="AUDIO_DEVICE_IN_USB_DEVICE" role="source">
</devicePort>
<devicePort tagName="USB Headset In" type="AUDIO_DEVICE_IN_USB_HEADSET" role="source">
</devicePort>
</devicePorts>
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
@@ -306,30 +321,52 @@
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT SCO Car Kit"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="USB Device Out"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,hifi_playback"/>
<route type="mix" sink="USB Headset Out"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,hifi_playback"/>
<route type="mix" sink="Telephony Tx"
sources="voice_tx"/>
<route type="mix" sink="voice_rx"
sources="Telephony Rx"/>
<route type="mix" sink="primary input"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner"/>
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner,USB Device In,USB Headset In"/>
<route type="mix" sink="voip_tx"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic"/>
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In"/>
<route type="mix" sink="record_24"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic"/>
<route type="mix" sink="mmap_no_irq_in"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic"/>
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,USB Device In,USB Headset In"/>
<route type="mix" sink="BT A2DP Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload"/>
<route type="mix" sink="BT A2DP Headphones"
sources="primary output,deep_buffer,direct_pcm,compressed_offload"/>
<route type="mix" sink="BT A2DP Speaker"
sources="primary output,deep_buffer,direct_pcm,compressed_offload"/>
<route type="mix" sink="hifi_input" sources="USB Device In,USB Headset In" />
</routes>
</module>
<!-- Usb Audio HAL -->
<xi:include href="/vendor/etc/usbv2_audio_policy_configuration.xml"/>
<module name="usb" halVersion="2.0">
<mixPorts>
<mixPort name="usb_accessory output" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
</mixPorts>
<devicePorts>
<devicePort tagName="USB Host Out" type="AUDIO_DEVICE_OUT_USB_ACCESSORY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
</devicePorts>
<routes>
<route type="mix" sink="USB Host Out"
sources="usb_accessory output"/>
</routes>
</module>
<!-- Remote Submix Audio HAL -->
<xi:include href="/vendor/etc/r_submix_audio_policy_configuration.xml"/>

View File

@@ -310,7 +310,7 @@
</module>
<!-- Usb Audio HAL -->
<xi:include href="/vendor/etc/usbv2_audio_policy_configuration.xml"/>
<xi:include href="/vendor/etc/usb_audio_policy_configuration.xml"/>
<!-- Remote Submix Audio HAL -->
<xi:include href="/vendor/etc/r_submix_audio_policy_configuration.xml"/>

File diff suppressed because it is too large Load Diff

View File

@@ -1,47 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (C) 2015 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.
-->
<!-- USB Audio HAL Audio Policy Configuration file -->
<module name="usbv2" halVersion="2.0">
<mixPorts>
<mixPort name="usb_accessory output" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="usb_device output" role="source"/>
<mixPort name="usb_device input" role="sink"/>
</mixPorts>
<devicePorts>
<devicePort tagName="USB Host Out" type="AUDIO_DEVICE_OUT_USB_ACCESSORY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink"/>
<devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink"/>
<devicePort tagName="USB Device In" type="AUDIO_DEVICE_IN_USB_DEVICE" role="source"/>
<devicePort tagName="USB Headset In" type="AUDIO_DEVICE_IN_USB_HEADSET" role="source"/>
</devicePorts>
<routes>
<route type="mix" sink="USB Host Out"
sources="usb_accessory output"/>
<route type="mix" sink="USB Device Out"
sources="usb_device output"/>
<route type="mix" sink="USB Headset Out"
sources="usb_device output"/>
<route type="mix" sink="usb_device input"
sources="USB Device In,USB Headset In"/>
</routes>
</module>

View File

@@ -140,7 +140,6 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-480" />
<Limit name="concurrent-instances" max="16" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="performance-point-4096x2304" value="30" />
<Limit name="performance-point-4096x2160" value="60" />
<Limit name="performance-point-3840x2160" value="60" />
@@ -158,7 +157,6 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-240" />
<Limit name="concurrent-instances" max="16" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="performance-point-4096x2304" value="24" />
<Limit name="performance-point-4096x2160" value="30" />
<Limit name="performance-point-3840x2160" value="30" />
@@ -176,7 +174,6 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-480" />
<Limit name="concurrent-instances" max="16" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="quality" range="0-100" default="80" />
<Feature name="bitrate-modes" value="VBR,CBR,CQ" />
<Limit name="performance-point-4096x2304" value="30" />
@@ -197,7 +194,6 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-480" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2304" value="30" />
<Limit name="performance-point-4096x2160" value="60" />
@@ -215,7 +211,6 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-4096x2304" value="30" />
@@ -232,7 +227,6 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="30" />
</MediaCodec>
@@ -246,7 +240,6 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-1920x1088" value="30" />
@@ -261,7 +254,6 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-240" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2304" value="24" />
<Limit name="performance-point-4096x2160" value="30" />
@@ -279,7 +271,6 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-480" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="6" />
<Limit name="performance-point-4096x2304" value="30" />
<Limit name="performance-point-4096x2160" value="60" />
@@ -297,7 +288,6 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-4096x2304" value="30" />
@@ -314,7 +304,6 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-480" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2304" value="30" />
<Limit name="performance-point-4096x2160" value="60" />
@@ -332,7 +321,6 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-4096x2304" value="30" />

View File

@@ -1,7 +1,9 @@
[
{
"repository": "hardware_xiaomi",
"target_path": "hardware/xiaomi"
"repository": "LineageOS/android_hardware_xiaomi",
"target_path": "hardware/xiaomi",
"remote": "github-non-los",
"branch": "lineage-21"
},
{
"repository": "vendor_xiaomi_sdm845-common",

View File

@@ -1,94 +0,0 @@
#!/usr/bin/env -S PYTHONPATH=../../../tools/extract-utils python3
#
# SPDX-FileCopyrightText: 2025 The LineageOS Project
# SPDX-License-Identifier: Apache-2.0
#
from extract_utils.fixups_blob import (
blob_fixup,
blob_fixups_user_type,
)
from extract_utils.fixups_lib import (
lib_fixups,
lib_fixups_user_type,
)
from extract_utils.main import (
ExtractUtils,
ExtractUtilsModule,
)
namespace_imports = [
'device/xiaomi/sdm845-common',
'hardware/qcom-caf/sdm845',
'hardware/qcom-caf/wlan',
'hardware/xiaomi',
'vendor/qcom/opensource/commonsys-intf/display',
'vendor/qcom/opensource/commonsys/display',
'vendor/qcom/opensource/dataservices',
'vendor/qcom/opensource/display',
]
def lib_fixup_vendor_suffix(lib: str, partition: str, *args, **kwargs):
return f'{lib}_{partition}' if partition == 'vendor' else None
lib_fixups: lib_fixups_user_type = {
**lib_fixups,
(
'com.qualcomm.qti.dpm.api@1.0',
'com.qualcomm.qti.imscmservice@1.0',
'com.qualcomm.qti.imscmservice@2.0',
'com.qualcomm.qti.imscmservice@2.1',
'com.qualcomm.qti.imscmservice@2.2',
'com.qualcomm.qti.uceservice@2.0',
'com.qualcomm.qti.uceservice@2.1',
'libmmosal',
'vendor.qti.hardware.radio.ims@1.0',
'vendor.qti.hardware.radio.ims@1.1',
'vendor.qti.hardware.radio.ims@1.2',
'vendor.qti.hardware.radio.ims@1.3',
'vendor.qti.hardware.radio.ims@1.4',
'vendor.qti.hardware.wifidisplaysession@1.0',
'vendor.qti.ims.callinfo@1.0',
'vendor.qti.ims.rcsconfig@1.0',
'vendor.qti.imsrtpservice@2.0',
'vendor.qti.imsrtpservice@2.1',
): lib_fixup_vendor_suffix,
}
blob_fixups: blob_fixups_user_type = {
'system_ext/bin/wfdservice': blob_fixup()
.add_needed('libwfdservice_shim.so'),
'system_ext/etc/permissions/qcrilhook.xml': blob_fixup()
.regex_replace('/product/framework/', '/system_ext/framework/'),
'system_ext/etc/permissions/qti_libpermissions.xml': blob_fixup()
.regex_replace('name="android.hidl.manager-V1.0-java', 'name="android.hidl.manager@1.0-java'),
'system_ext/lib/libwfdmmsrc_system.so': blob_fixup()
.add_needed('libgui_shim.so'),
'system_ext/lib/libwfdservice.so': blob_fixup()
.replace_needed('android.media.audio.common.types-V2-cpp.so', 'android.media.audio.common.types-V4-cpp.so'),
'system_ext/lib64/lib-imsvideocodec.so': blob_fixup()
.add_needed('libgui_shim.so'),
'system_ext/lib64/libwfdnative.so': blob_fixup()
.add_needed('libbinder_shim.so')
.add_needed('libinput_shim.so'),
'vendor/bin/pm-service': blob_fixup()
.add_needed('libutils-v33.so'),
('vendor/lib64/libwvhidl.so', 'vendor/lib64/mediadrm/libwvdrmengine.so'): blob_fixup()
.add_needed('libcrypto_shim.so'),
('vendor/lib64/libdlbdsservice.so', 'vendor/lib/libstagefright_soft_ac4dec.so', 'vendor/lib/libstagefright_soft_ddpdec.so'): blob_fixup()
.replace_needed('libstagefright_foundation.so', 'libstagefright_foundation-v33.so'),
} # fmt: skip
module = ExtractUtilsModule(
'sdm845-common',
'xiaomi',
blob_fixups=blob_fixups,
lib_fixups=lib_fixups,
namespace_imports=namespace_imports,
)
if __name__ == '__main__':
utils = ExtractUtils.device(module)
utils.run()

117
extract-files.sh Executable file
View File

@@ -0,0 +1,117 @@
#!/bin/bash
#
# SPDX-FileCopyrightText: 2016 The CyanogenMod Project
# SPDX-FileCopyrightText: 2017-2024 The LineageOS Project
# SPDX-License-Identifier: Apache-2.0
#
set -e
# Load extract_utils and do some sanity checks
MY_DIR="${BASH_SOURCE%/*}"
if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi
ANDROID_ROOT="${MY_DIR}/../../.."
# If XML files don't have comments before the XML header, use this flag
# Can still be used with broken XML files by using blob_fixup
export TARGET_DISABLE_XML_FIXING=true
HELPER="${ANDROID_ROOT}/tools/extract-utils/extract_utils.sh"
if [ ! -f "${HELPER}" ]; then
echo "Unable to find helper script at ${HELPER}"
exit 1
fi
source "${HELPER}"
# Default to sanitizing the vendor folder before extraction
CLEAN_VENDOR=true
ONLY_COMMON=
ONLY_TARGET=
SECTION=
KANG=
while [ "${#}" -gt 0 ]; do
case "${1}" in
--only-common)
ONLY_COMMON=true
;;
--only-firmware)
ONLY_FIRMWARE=true
;;
--only-target)
ONLY_TARGET=true
;;
-n | --no-cleanup)
CLEAN_VENDOR=false
;;
-k | --kang)
KANG="--kang"
;;
-s | --section)
SECTION="${2}"
shift
CLEAN_VENDOR=false
;;
*)
SRC="${1}"
;;
esac
shift
done
if [ -z "${SRC}" ]; then
SRC="adb"
fi
function blob_fixup() {
case "${1}" in
system_ext/etc/permissions/qcrilhook.xml)
[ "$2" = "" ] && return 0
sed -i "s/\/product\/framework\//\/system_ext\/framework\//g" "${2}"
;;
system_ext/etc/permissions/qti_libpermissions.xml)
[ "$2" = "" ] && return 0
sed -i "s/name=\"android.hidl.manager-V1.0-java/name=\"android.hidl.manager@1.0-java/g" "${2}"
;;
system_ext/lib64/lib-imsvideocodec.so)
[ "$2" = "" ] && return 0
grep -q "libgui_shim.so" "${2}" || ${PATCHELF} --add-needed "libgui_shim.so" "${2}"
;;
vendor/bin/pm-service)
[ "$2" = "" ] && return 0
grep -q libutils-v33.so "${2}" || "${PATCHELF}" --add-needed "libutils-v33.so" "${2}"
;;
vendor/lib/camera/components/com.qti.node.watermark.so)
[ "$2" = "" ] && return 0
grep -q "libpiex_shim.so" "${2}" || ${PATCHELF} --add-needed "libpiex_shim.so" "${2}"
;;
*)
return 1
;;
esac
return 0
}
function blob_fixup_dry() {
blob_fixup "$1" ""
}
if [ -z "${ONLY_TARGET}" ]; then
# Initialize the helper for common device
setup_vendor "${DEVICE_COMMON}" "${VENDOR}" "${ANDROID_ROOT}" true "${CLEAN_VENDOR}"
extract "${MY_DIR}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}"
fi
if [ -z "${ONLY_COMMON}" ] && [ -s "${MY_DIR}/../${DEVICE}/proprietary-files.txt" ]; then
# Reinitialize the helper for device
source "${MY_DIR}/../${DEVICE}/extract-files.sh"
setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" false "${CLEAN_VENDOR}"
extract "${MY_DIR}/../${DEVICE}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}"
fi
"${MY_DIR}/setup-makefiles.sh"

View File

@@ -1,62 +0,0 @@
//
// Copyright (C) 2025 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
prebuilt_etc {
name: "fstab.zram",
src: "fstab.zram",
soc_specific: true,
}
prebuilt_etc {
name: "init.qcom.power.rc",
src: "init.qcom.power.rc",
sub_dir: "init/hw",
soc_specific: true,
}
prebuilt_etc {
name: "init.qcom.rc",
src: "init.qcom.rc",
sub_dir: "init/hw",
soc_specific: true,
}
prebuilt_etc {
name: "init.qcom.recovery.rc",
src: "init.qcom.recovery.rc",
sub_dir: "init",
recovery: true,
}
prebuilt_etc {
name: "ueventd.qcom.rc",
filename: "ueventd.rc",
src: "ueventd.qcom.rc",
soc_specific: true,
}
sh_binary {
name: "init.qcom.early_boot.sh",
src: "init.qcom.early_boot.sh",
soc_specific: true,
}
sh_binary {
name: "init.qcom.post_boot.sh",
src: "init.qcom.post_boot.sh",
soc_specific: true,
}
sh_binary {
name: "init.qcom.sensors.sh",
src: "init.qcom.sensors.sh",
soc_specific: true,
}
sh_binary {
name: "init.qcom.sh",
src: "init.qcom.sh",
soc_specific: true,
}

View File

@@ -1,12 +1,22 @@
//
// SPDX-FileCopyrightText: 2019-2025 The LineageOS Project
// SPDX-License-Identifier: Apache-2.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 {
name: "vendor.lineage.livedisplay-service.xiaomi_sdm845",
init_rc: ["vendor.lineage.livedisplay-service.xiaomi_sdm845.rc"],
vintf_fragments: ["vendor.lineage.livedisplay-service.xiaomi_sdm845.xml"],
name: "vendor.lineage.livedisplay@2.0-service.xiaomi_sdm845",
init_rc: ["vendor.lineage.livedisplay@2.0-service.xiaomi_sdm845.rc"],
defaults: ["hidl_defaults"],
relative_install_path: "hw",
srcs: [
"SunlightEnhancement.cpp",
@@ -15,9 +25,9 @@ cc_binary {
vendor: true,
shared_libs: [
"libbase",
"libbinder_ndk",
"libbinder",
"libhidlbase",
"libutils",
"vendor.lineage.livedisplay-V1-ndk",
"vendor.lineage.livedisplay@2.0",
],
}

View File

@@ -1,6 +1,17 @@
/*
* SPDX-FileCopyrightText: 2019-2025 The LineageOS Project
* SPDX-License-Identifier: Apache-2.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.
*/
#define LOG_TAG "SunlightEnhancementService"
@@ -14,7 +25,11 @@
#include "SunlightEnhancement.h"
namespace {
namespace vendor {
namespace lineage {
namespace livedisplay {
namespace V2_0 {
namespace implementation {
static constexpr const char* kDispParamPath =
"/sys/devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/card0-DSI-1/disp_param";
@@ -37,13 +52,6 @@ bool hasFingerprintOnDisplay() {
return device == "equuleus" || device == "ursa";
}
} // anonymous namespace
namespace aidl {
namespace vendor {
namespace lineage {
namespace livedisplay {
bool SunlightEnhancement::isSupported() {
if (hasAmoledPanel()) {
std::ofstream disp_param_file(kDispParamPath);
@@ -61,37 +69,26 @@ bool SunlightEnhancement::isSupported() {
return false;
}
ndk::ScopedAStatus SunlightEnhancement::getEnabled(bool* _aidl_return) {
Return<bool> SunlightEnhancement::isEnabled() {
std::ifstream hbm_status_file(kHbmStatusPath);
int result = -1;
hbm_status_file >> result;
if (hbm_status_file.fail()) {
LOG(ERROR) << "Failed to read current HBM state";
return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
}
*_aidl_return = result > 0;
return ndk::ScopedAStatus::ok();
return !hbm_status_file.fail() && result > 0;
}
ndk::ScopedAStatus SunlightEnhancement::setEnabled(bool enabled) {
Return<bool> SunlightEnhancement::setEnabled(bool enabled) {
std::ofstream disp_param_file(kDispParamPath);
if (hasFingerprintOnDisplay()) {
disp_param_file << (enabled ? kDispParamHbmFodOn : kDispParamHbmFodOff);
} else {
disp_param_file << (enabled ? kDispParamHbmOn : kDispParamHbmOff);
}
if (disp_param_file.fail()) {
LOG(ERROR) << "Not possible to write HBM state";
return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
}
return ndk::ScopedAStatus::ok();
LOG(DEBUG) << "setEnabled fail " << disp_param_file.fail();
return !disp_param_file.fail();
}
} // namespace implementation
} // namespace V2_0
} // namespace livedisplay
} // namespace lineage
} // namespace vendor
} // namespace aidl

View File

@@ -1,27 +1,49 @@
/*
* SPDX-FileCopyrightText: 2019-2025 The LineageOS Project
* SPDX-License-Identifier: Apache-2.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.
*/
#pragma once
#ifndef VENDOR_LINEAGE_LIVEDISPLAY_V2_0_SUNLIGHTENHANCEMENT_H
#define VENDOR_LINEAGE_LIVEDISPLAY_V2_0_SUNLIGHTENHANCEMENT_H
#include <aidl/vendor/lineage/livedisplay/BnSunlightEnhancement.h>
#include <hidl/MQDescriptor.h>
#include <hidl/Status.h>
#include <vendor/lineage/livedisplay/2.0/ISunlightEnhancement.h>
namespace aidl {
namespace vendor {
namespace lineage {
namespace livedisplay {
namespace V2_0 {
namespace implementation {
class SunlightEnhancement : public BnSunlightEnhancement {
using ::android::hardware::Return;
using ::android::hardware::Void;
using ::android::sp;
class SunlightEnhancement : public ISunlightEnhancement {
public:
bool isSupported();
// Methods from ::aidl::vendor::lineage::livedisplay::BnSunlightEnhancement follow.
ndk::ScopedAStatus getEnabled(bool* _aidl_return) override;
ndk::ScopedAStatus setEnabled(bool enabled) override;
// Methods from ::vendor::lineage::livedisplay::V2_0::ISunlightEnhancement follow.
Return<bool> isEnabled() override;
Return<bool> setEnabled(bool enabled) override;
};
} // namespace implementation
} // namespace V2_0
} // namespace livedisplay
} // namespace lineage
} // namespace vendor
} // namespace aidl
#endif // VENDOR_LINEAGE_LIVEDISPLAY_V2_0_SUNLIGHTENHANCEMENT_H

View File

@@ -1,53 +1,69 @@
/*
* SPDX-FileCopyrightText: 2019-2025 The LineageOS Project
* SPDX-License-Identifier: Apache-2.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.
*/
#define LOG_TAG "vendor.lineage.livedisplay-service.xiaomi_sdm845"
#define LOG_TAG "lineage.livedisplay@2.0-service.xiaomi_sdm845"
#include <android-base/logging.h>
#include <android/binder_manager.h>
#include <android/binder_process.h>
#include <binder/ProcessState.h>
#include <hidl/HidlTransportSupport.h>
#include "SunlightEnhancement.h"
using ::aidl::vendor::lineage::livedisplay::SunlightEnhancement;
using android::OK;
using android::sp;
using android::status_t;
using android::hardware::configureRpcThreadpool;
using android::hardware::joinRpcThreadpool;
using ::vendor::lineage::livedisplay::V2_0::ISunlightEnhancement;
using ::vendor::lineage::livedisplay::V2_0::implementation::SunlightEnhancement;
int main() {
std::shared_ptr<SunlightEnhancement> se = ndk::SharedRefBase::make<SunlightEnhancement>();
std::string instance = std::string() + SunlightEnhancement::descriptor + "/default";
binder_status_t status;
android::ProcessState::self()->setThreadPoolMaxThreadCount(1);
android::ProcessState::self()->startThreadPool();
sp<SunlightEnhancement> sunlightEnhancement;
status_t status;
LOG(INFO) << "LiveDisplay HAL custom service is starting.";
if (se == nullptr) {
sunlightEnhancement = new SunlightEnhancement();
if (sunlightEnhancement == nullptr) {
LOG(ERROR) << "Can not create an instance of LiveDisplay HAL SunlightEnhancement Iface,"
<< "exiting.";
goto shutdown;
}
if (!se->isSupported()) {
if (!sunlightEnhancement->isSupported()) {
LOG(ERROR) << "SunlightEnhancement Iface is not supported, gracefully bailing out.";
return EXIT_SUCCESS;
return 1;
}
status = AServiceManager_addService(se->asBinder().get(), instance.c_str());
if (status != STATUS_OK) {
configureRpcThreadpool(1, true /*callerWillJoin*/);
status = sunlightEnhancement->registerAsService();
if (status != OK) {
LOG(ERROR) << "Could not register service for LiveDisplay HAL SunlightEnhancement Iface ("
<< status << ")";
goto shutdown;
}
LOG(INFO) << "LiveDisplay HAL custom service is ready.";
ABinderProcess_joinThreadPool();
joinRpcThreadpool();
// Should not pass this line
shutdown:
// In normal operation, we don't expect the thread pool to shutdown
LOG(ERROR) << "LiveDisplay HAL custom service is shutting down.";
return EXIT_FAILURE; // Should not reach
return 1;
}

View File

@@ -1,10 +0,0 @@
<manifest version="1.0" type="device">
<hal format="aidl">
<name>vendor.lineage.livedisplay</name>
<version>1</version>
<interface>
<name>ISunlightEnhancement</name>
<instance>default</instance>
</interface>
</hal>
</manifest>

View File

@@ -2,7 +2,7 @@ on boot
chown system system /sys/devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/card0-DSI-1/disp_param
chown system system /sys/devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/card0-DSI-1/hbm_status
service vendor.livedisplay-hal /vendor/bin/hw/vendor.lineage.livedisplay-service.xiaomi_sdm845
class late_start
service vendor.livedisplay-hal-2-0 /vendor/bin/hw/vendor.lineage.livedisplay@2.0-service.xiaomi_sdm845
class hal
user system
group system

View File

@@ -128,6 +128,15 @@ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.memtrack</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IMemtrack</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.neuralnetworks</name>
<transport>hwbinder</transport>
@@ -186,7 +195,7 @@ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<hal format="hidl">
<name>android.hardware.tetheroffload.control</name>
<transport>hwbinder</transport>
<version>1.1</version>
<version>1.0</version>
<interface>
<name>IOffloadControl</name>
<instance>default</instance>

View File

@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019-2024 The Evolution X Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- PowerOffAlarmService -->
<bool name="config_powerOffAlarmEnabled">true</bool>
<!-- Whether the device supports Smart Pixels -->
<bool name="config_supportSmartPixels">false</bool>
</resources>

View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019-2024 The Evolution X Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- FPSInfoService FPS node file path -->
<string name="config_fpsInfoSysNode" translatable="false">/sys/class/drm/sde-crtc-0/measured_fps</string>
<!-- Show 5G toggle in internet dialog when available -->
<bool name="config_supportsVONR">false</bool>
<!-- The CPU temperature divider, if needed -->
<integer name="config_cpuTempDivider" translatable="false">1000</integer>
</resources>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Show battery cycle count -->
<bool name="config_show_battery_cycle_count" translatable="false">true</bool>
</resources>

View File

@@ -39,6 +39,29 @@
<string name="config_mms_user_agent_profile_url" translatable="false"
>http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
<!-- This string array should be overridden by the device to present a list of network
attributes. This is used by the connectivity manager to decide which networks can coexist
based on the hardware -->
<!-- An Array of "[Connection name],[ConnectivityManager.TYPE_xxxx],
[associated radio-type],[priority],[restoral-timer(ms)],[dependencyMet] -->
<!-- the 5th element "resore-time" indicates the number of milliseconds to delay
before automatically restore the default connection. Set -1 if the connection
does not require auto-restore. -->
<!-- the 6th element indicates boot-time dependency-met value. -->
<string-array translatable="false" name="networkAttributes">
<item>wifi,1,1,1,-1,true</item>
<item>mobile,0,0,0,-1,true</item>
<item>mobile_mms,2,0,4,300000,true</item>
<item>mobile_supl,3,0,2,300000,true</item>
<item>mobile_dun,4,0,2,300000,true</item>
<item>mobile_hipri,5,0,3,300000,true</item>
<item>mobile_fota,10,0,2,300000,true</item>
<item>mobile_ims,11,0,2,300000,true</item>
<item>mobile_cbs,12,0,2,300000,true</item>
<item>bluetooth,7,7,2,-1,true</item>
<item>ethernet,9,9,4,-1,true</item>
</string-array>
<!-- This string array should be overridden by the device to present a list of radio
attributes. This is used by the connectivity manager to decide which networks can coexist
based on the hardware -->
@@ -145,6 +168,24 @@
that can be set by the user. -->
<integer name="config_screenBrightnessDoze">17</integer>
<!-- Configure mobile tcp buffer sizes in the form:
rat-name:rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max
If no value is found for the rat-name in use, the system default will be applied.
-->
<string-array name="config_mobile_tcp_buffers">
<item>5gnr:2097152,6291456,16777216,512000,2097152,8388608</item>
<item>lte:2097152,4194304,8388608,262144,524288,1048576</item>
<item>lte_ca:4096,6291456,12582912,4096,1048576,2097152</item>
<item>umts:4094,87380,1220608,4096,16384,1220608</item>
<item>hspa:4094,87380,1220608,4096,16384,1220608</item>
<item>hsupa:4094,87380,1220608,4096,16384,1220608</item>
<item>hsdpa:4094,87380,1220608,4096,16384,1220608</item>
<item>hspap:4094,87380,1220608,4096,16384,1220608</item>
<item>edge:4093,26280,35040,4096,16384,35040</item>
<item>gprs:4092,8760,11680,4096,8760,11680</item>
<item>evdo:4094,87380,524288,4096,16384,262144</item>
</string-array>
<!-- Flag specifying whether VoLTE is available on device -->
<bool name="config_device_volte_available">true</bool>
@@ -208,10 +249,13 @@
<item>"/apex/com.android.art/javalib/core-libart.jar"</item>
<item>"/system_ext/priv-app/SystemUI/SystemUI.apk"</item>
<item>"/system/bin/surfaceflinger"</item>
<item>"/system/lib64/libEGL.so"</item>
<item>"/system/lib64/libhwui.so"</item>
<item>"/vendor/lib64/egl/libGLESv2_adreno.so"</item>
<item>"/vendor/lib64/libgsl.so"</item>
<item>/system/lib64/libRScpp.so</item>
<item>/system/lib64/libRS.so</item>
<item>/system/lib64/libRS_internal.so</item>
<item>/system/lib64/libbcinfo.so</item>
<item>/system/lib64/libRSDriver.so</item>
<item>/system/lib64/libRSCpuRef.so</item>
<item>/system/lib64/libblas.so</item>
</string-array>
<!-- Vibrator pattern for feedback about touching a virtual key -->
@@ -221,6 +265,9 @@
<item>13</item>
</integer-array>
<!-- Should the pinner service pin the Camera application? -->
<bool name="config_pinnerCameraApp">true</bool>
<!-- Should the pinner service pin the Home application? -->
<bool name="config_pinnerHomeApp">true</bool>
@@ -230,6 +277,14 @@
<!-- Whether device supports double tap to wake -->
<bool name="config_supportDoubleTapWake">true</bool>
<!-- List of biometric sensors on the device, in decreasing strength. Consumed by AuthService
when registering authenticators with BiometricService. Format must be ID:Modality:Strength,
where: IDs are unique per device, Modality as defined in BiometricAuthenticator.java,
and Strength as defined in Authenticators.java -->
<string-array name="config_biometric_sensors" translatable="false" >
<item>0:2:15</item> <!-- ID0:Fingerprint:Strong -->
</string-array>
<!-- Enable Zram writeback feature to allow unused pages in zram be written to flash. -->
<bool name="config_zramWriteback">true</bool>
@@ -260,7 +315,4 @@
running in WAL mode.
Choices are: FULL, NORMAL, OFF. -->
<string name="db_wal_sync_mode" translatable="false">OFF</string>
<!-- Feature flag to store TaskSnapshot in 16 bit pixel format to save memory. -->
<bool name="config_use16BitTaskSnapshotPixelFormat">true</bool>
</resources>

View File

@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2023-24 Paranoid Android
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Dolby Atmos -->
<string-array name="dolby_profile_entries">
<item>@string/dolby_profile_dynamic</item>
<item>@string/dolby_profile_video</item>
<item>@string/dolby_profile_music</item>
<item>@string/dolby_profile_game</item>
<item>@string/dolby_profile_voice</item>
</string-array>
<string-array name="dolby_profile_values">
<item>0</item>
<item>1</item>
<item>2</item>
<item>8</item>
<item>9</item>
</string-array>
</resources>

View File

@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2023-24 Paranoid Android
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Dolby profiles -->
<string name="dolby_profile_dynamic">Dynamic</string>
<string name="dolby_profile_video">Movie/Video</string>
<string name="dolby_profile_music">Music</string>
<string name="dolby_profile_game">Game</string>
<string name="dolby_profile_voice">Voice</string>
</resources>

View File

@@ -0,0 +1,7 @@
[
"/dev/video0",
"/dev/video1",
"/dev/video2",
"/dev/video32",
"/dev/video33"
]

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

@@ -16,7 +16,6 @@ android_app {
static_libs: [
"org.lineageos.settings.resources",
"SettingsLib",
],
optimize: {

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-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.
@@ -31,19 +31,28 @@
android:icon="@mipmap/ic_launcher"
android:label="@string/device_settings_app_name"
android:persistent="true"
android:theme="@style/Theme.SubSettingsBase"
android:defaultToDeviceProtectedStorage="true"
android:directBootAware="true">
android:theme="@style/Theme.SubSettingsBase">
<receiver
android:name=".BootCompletedReceiver"
android:exported="false">
<intent-filter android:priority="1000">
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<activity
android:name=".dirac.DiracActivity"
android:exported="false"
android:label="@string/dirac_title">
<intent-filter>
<action android:name="com.android.settings.action.IA_SETTINGS" />
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.sound" />
</activity>
<service
android:name=".doze.DozeService"
android:exported="true"
@@ -55,13 +64,9 @@
android:exported="false"
android:label="@string/ambient_display_title">
<intent-filter>
<action android:name="com.android.settings.action.IA_SETTINGS" />
<action android:name="org.lineageos.settings.device.DOZE_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.display" />
<meta-data android:name="com.android.settings.summary"
android:resource="@string/doze_summary" />
</activity>
<activity
@@ -70,23 +75,16 @@
android:label="@string/thermal_title">
<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>
<service
@@ -95,19 +93,5 @@
android:permission="ThermalService">
</service>
<activity
android:name=".speaker.ClearSpeakerActivity"
android:exported="false"
android:label="@string/clear_speaker_title">
<intent-filter>
<action android:name="com.android.settings.action.IA_SETTINGS" />
</intent-filter>
<meta-data
android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.sound" />
<meta-data
android:name="com.android.settings.summary"
android:resource="@string/clear_speaker_summary" />
</activity>
</application>
</manifest>

View File

@@ -1,11 +1,7 @@
-keep class org.lineageos.settings.dirac.* {
*;
}
-keep class org.lineageos.settings.doze.* {
*;
}
-keep class org.lineageos.settings.speaker.* {
*;
}
-keep class org.lineageos.settings.thermal.* {
*;
}

View File

@@ -1,9 +0,0 @@
<!-- drawable/phone_text.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal">
<path android:fillColor="#000" android:pathData="M17,19V5H7V19H17M17,1A2,2 0 0,1 19,3V21A2,2 0 0,1 17,23H7C5.89,23 5,22.1 5,21V3C5,1.89 5.89,1 7,1H17M9,7H15V9H9V7M9,11H13V13H9V11Z" />
</vector>

View File

@@ -4,6 +4,6 @@
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal">
<path android:fillColor="#000" android:pathData="M 13 7 L 11 7 L 11 9 L 13 9 L 13 7 Z M 13 11 L 11 11 L 11 17 L 13 17 L 13 11 Z M 17 1.01 L 7 1 C 5.9 1 5 1.9 5 3 L 5 21 C 5 22.1 5.9 23 7 23 L 17 23 C 18.1 23 19 22.1 19 21 L 19 3 C 19 1.9 18.1 1.01 17 1.01 Z M 17 19 L 7 19 L 7 5 L 17 5 L 17 19 Z" />
android:tint="?android:attr/colorControlNormal" >
<path android:fillColor="#000" android:pathData="M9.64,13.4C8.63,12.5 7.34,12.03 6,12V15L2,11L6,7V10C7.67,10 9.3,10.57 10.63,11.59C10.22,12.15 9.89,12.76 9.64,13.4M18,15V12C17.5,12 13.5,12.16 13.05,16.2C14.61,16.75 15.43,18.47 14.88,20.03C14.33,21.59 12.61,22.41 11.05,21.86C9.5,21.3 8.67,19.59 9.22,18.03C9.5,17.17 10.2,16.5 11.05,16.2C11.34,12.61 14.4,9.88 18,10V7L22,11L18,15M13,19A1,1 0 0,0 12,18A1,1 0 0,0 11,19A1,1 0 0,0 12,20A1,1 0 0,0 13,19M11,11.12C11.58,10.46 12.25,9.89 13,9.43V5H16L12,1L8,5H11V11.12Z" />
</vector>

View File

@@ -1,9 +0,0 @@
<!-- drawable/cellphone_text.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal">
<path android:fillColor="#000" android:pathData="M17,19V5H7V19H17M17,1A2,2 0 0,1 19,3V21A2,2 0 0,1 17,23H7C5.89,23 5,22.1 5,21V3C5,1.89 5.89,1 7,1H17M9,7H15V9H9V7M9,11H13V13H9V11Z" />
</vector>

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,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:tint="?android:attr/colorControlNormal"
android:viewportHeight="24">
<path
android:pathData="M0 0h24v24H0z" />
<path
android:fillColor="#FFFFFFFF"
android:pathData="M20 4H4c-1.1 0-2 0.9-2 2v12c0 1.1 0.9 2 2 2h16c1.1 0 2-0.9 2-2V6c0-1.1-0.9-2-2-2zM7.76 16.24l-1.41 1.41C4.78 16.1 4 14.05 4 12c0-2.05 0.78 -4.1 2.34-5.66l1.41 1.41C6.59 8.93 6 10.46 6 12s0.59 3.07 1.76 4.24zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm5.66 1.66l-1.41-1.41C17.41 15.07 18 13.54 18 12s-0.59-3.07-1.76-4.24l1.41-1.41C19.22 7.9 20 9.95 20 12c0 2.05-0.78 4.1-2.34 5.66zM12 10c-1.1 0-2 0.9-2 2s0.9 2 2 2 2-0.9 2-2-0.9-2-2-2z" />
</vector>

View File

@@ -1,10 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?android:attr/colorControlNormal"
android:viewportHeight="24"
android:viewportWidth="24">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M17 3H21V5H17V3M17 7H21V9H17V7M17 11H21V13H17.75L17 12.1V11M21 15V17H19C19 16.31 18.9 15.63 18.71 15H21M7 3V5H3V3H7M7 7V9H3V7H7M7 11V12.1L6.25 13H3V11H7M3 15H5.29C5.1 15.63 5 16.31 5 17H3V15M15 13V5C15 3.34 13.66 2 12 2S9 3.34 9 5V13C6.79 14.66 6.34 17.79 8 20S12.79 22.66 15 21 17.66 16.21 16 14C15.72 13.62 15.38 13.28 15 13M12 4C12.55 4 13 4.45 13 5V8H11V5C11 4.45 11.45 4 12 4Z" />
</vector>

View File

@@ -1,13 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:name="vector"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:name="path"
android:pathData="M 20.38 8.57 L 19.15 10.42 C 19.743 11.603 20.034 12.915 19.995 14.238 C 19.957 15.561 19.591 16.853 18.93 18 L 5.07 18 C 4.211 16.51 3.855 14.783 4.055 13.075 C 4.255 11.367 5 9.769 6.179 8.517 C 7.359 7.266 8.911 6.428 10.604 6.128 C 12.297 5.827 14.042 6.081 15.58 6.85 L 17.43 5.62 C 15.547 4.412 13.312 3.871 11.085 4.083 C 8.858 4.295 6.765 5.248 5.143 6.789 C 3.522 8.33 2.463 10.372 2.138 12.585 C 1.813 14.798 2.24 17.058 3.35 19 C 3.524 19.302 3.775 19.554 4.077 19.729 C 4.379 19.904 4.721 19.998 5.07 20 L 18.92 20 C 19.272 20.001 19.619 19.91 19.925 19.734 C 20.23 19.558 20.484 19.305 20.66 19 C 21.581 17.404 22.044 15.584 21.996 13.742 C 21.948 11.9 21.393 10.106 20.39 8.56 Z M 10.59 15.41 C 10.838 15.659 11.148 15.837 11.487 15.928 C 11.826 16.019 12.184 16.019 12.523 15.928 C 12.862 15.837 13.172 15.659 13.42 15.41 L 19.08 6.92 L 10.59 12.58 C 10.341 12.828 10.163 13.138 10.072 13.477 C 9.981 13.816 9.981 14.174 10.072 14.513 C 10.163 14.852 10.341 15.162 10.59 15.41 Z"
android:fillColor="?android:attr/colorAccent"
android:strokeWidth="1"/>
android:viewportHeight="24"
android:viewportWidth="24">
<group
android:scaleX="5.50297"
android:scaleY="5.52411"
android:translateX="-59.0634"
android:translateY="-57.934">
<path
android:fillColor="?android:attr/colorAccent"
android:fillType="evenOdd"
android:pathData="M10.961 13.514c0 -1.078 0.874 -1.952 1.953 -1.952 0.555 0 1.057 0.232 1.412 0.604l-0.583 0.141c-0.236 -0.162 -0.522 -0.257 -0.829 -0.257 -0.809 0 -1.465 0.655 -1.465 1.464l0 0c0 0.135 -0.109 0.244 -0.244 0.244 -0.134 0 -0.244 -0.109 -0.244 -0.244l0 0zm3.417 0c0 -0.094 -0.009 -0.185 -0.026 -0.274l0.429 -0.297c0.055 0.181 0.085 0.373 0.085 0.571 0 0.135 -0.109 0.244 -0.244 0.244 -0.135 0 -0.244 -0.109 -0.244 -0.244l0 0zm-0.02 -1.097c0.102 -0.028 0.212 0.022 0.256 0.121 0.045 0.101 0.007 0.219 -0.085 0.275l0 0 -1.313 0.833c-0.011 0.008 -0.023 0.016 -0.035 0.023l-0.001 0 0 0c-0.013 0.008 -0.025 0.014 -0.039 0.02 -0.226 0.101 -0.491 0 -0.592 -0.226 -0.101 -0.225 0 -0.491 0.226 -0.592 0.026 -0.012 0.052 -0.021 0.079 -0.027l1.504 -0.427 0 0z"
android:strokeLineJoin="round"
android:strokeMiterLimit="1.41421" />
</group>
</vector>

View File

@@ -1,14 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:name="vector"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
android:viewportHeight="24"
android:viewportWidth="24">
<path
android:name="path"
android:pathData="M 12 2 C 6.48 2 2 6.48 2 12 C 2 17.52 6.48 22 12 22 C 17.52 22 22 17.52 22 12 C 22 6.48 17.52 2 12 2 Z M 11 19.93 C 7.05 19.44 4 16.08 4 12 C 4 11.38 4.08 10.79 4.21 10.21 L 9 15 L 9 16 C 9 17.1 9.9 18 11 18 L 11 19.93 Z M 17.9 17.39 C 17.64 16.58 16.9 16 16 16 L 15 16 L 15 13 C 15 12.45 14.55 12 14 12 L 8 12 L 8 10 L 10 10 C 10.55 10 11 9.55 11 9 L 11 7 L 13 7 C 14.1 7 15 6.1 15 5 L 15 4.59 C 17.93 5.78 20 8.65 20 12 C 20 14.08 19.2 15.97 17.9 17.39 Z"
android:fillColor="?android:attr/colorAccent"
android:strokeWidth="1"/>
android:pathData="M2.546,5.862C4.557,2.772 8.042,0.727 12,0.727C15.958,0.727 19.443,2.772 21.454,5.862C21.584,5.947 21.674,6.086 21.694,6.246C22.697,7.931 23.273,9.899 23.273,12C23.273,18.222 18.222,23.273 12,23.273C5.778,23.273 0.727,18.222 0.727,12C0.727,9.899 1.303,7.931 2.306,6.246C2.326,6.086 2.416,5.947 2.546,5.862ZM7.784,18.049L5.229,18.049C6.602,19.585 8.49,20.651 10.62,20.977C9.503,20.219 8.537,19.221 7.784,18.049ZM18.771,18.049L16.31,18.049C15.564,19.211 14.608,20.202 13.503,20.957C15.583,20.61 17.424,19.555 18.771,18.049ZM13.235,18.049L10.86,18.049C11.207,18.703 11.606,19.307 12.047,19.852C12.488,19.307 12.888,18.703 13.235,18.049ZM6.086,13.083L2.983,13.083C3.101,14.074 3.379,15.016 3.79,15.882L6.713,15.882C6.393,15.001 6.178,14.062 6.086,13.083ZM21.017,13.083L18.008,13.083C17.916,14.062 17.702,15.001 17.382,15.882L20.21,15.882C20.621,15.016 20.899,14.074 21.017,13.083ZM14.67,13.083L9.424,13.083C9.503,14.057 9.689,14.997 9.962,15.882L14.132,15.882C14.406,14.997 14.591,14.057 14.67,13.083ZM6.78,7.939L3.877,7.939C3.418,8.854 3.109,9.858 2.983,10.917L6.086,10.917C6.184,9.872 6.422,8.871 6.78,7.939ZM20.123,7.939L17.315,7.939C17.672,8.871 17.91,9.872 18.008,10.917L21.017,10.917C20.891,9.858 20.582,8.854 20.123,7.939ZM14.076,7.939L10.019,7.939C9.714,8.877 9.509,9.877 9.424,10.917L14.67,10.917C14.585,9.877 14.38,8.877 14.076,7.939ZM10.62,3.023C8.574,3.336 6.751,4.333 5.393,5.772L7.901,5.772C8.637,4.677 9.56,3.742 10.62,3.023ZM13.503,3.043C14.551,3.759 15.465,4.687 16.193,5.772L18.607,5.772C17.276,4.361 15.499,3.376 13.503,3.043ZM12.047,4.148C11.647,4.643 11.281,5.187 10.957,5.772L13.138,5.772C12.814,5.187 12.448,4.643 12.047,4.148Z" />
</vector>

View File

@@ -1,13 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:name="vector"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:name="path"
android:pathData="M 9 3 L 7.17 5 L 4 5 C 2.9 5 2 5.9 2 7 L 2 19 C 2 20.1 2.9 21 4 21 L 20 21 C 21.1 21 22 20.1 22 19 L 22 7 C 22 5.9 21.1 5 20 5 L 16.83 5 L 15 3 L 9 3 Z M 12 18 C 9.24 18 7 15.76 7 13 C 7 10.24 9.24 8 12 8 C 14.76 8 17 10.24 17 13 C 17 15.76 14.76 18 12 18 Z"
android:fillColor="?android:attr/colorAccent"
android:strokeWidth="1"/>
android:viewportHeight="24"
android:viewportWidth="24">
<group
android:scaleX="0.879929"
android:scaleY="0.883309"
android:translateX="1.44085"
android:translateY="0.746289">
<path
android:fillColor="?android:attr/colorAccent"
android:fillType="evenOdd"
android:pathData="M20.764 21.26l-17.528 0c-1.07 0 -1.939 -0.868 -1.939 -1.939l0 -11.324c0 -1.07 0.869 -1.939 1.939 -1.939l4.534 0C7.982 5.01 8.91 4.22 10.02 4.22l3.96 0c1.11 0 2.037 0.79 2.25 1.838l4.534 0c1.07 0 1.939 0.869 1.939 1.939l0 11.324c0 1.071 -0.869 1.939 -1.939 1.939zM12 8.646c2.767 0 5.013 2.246 5.013 5.013 0 2.767 -2.246 5.013 -5.013 5.013 -2.767 0 -5.013 -2.246 -5.013 -5.013 0 -2.767 2.246 -5.013 5.013 -5.013zM3.674 7.257c0.624 0 1.131 0.507 1.131 1.131 0 0.624 -0.507 1.131 -1.131 1.131 -0.624 0 -1.131 -0.507 -1.131 -1.131 0 -0.624 0.507 -1.131 1.131 -1.131z"
android:strokeLineJoin="round"
android:strokeMiterLimit="1.41421" />
</group>
</vector>

View File

@@ -1,13 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:name="vector"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:name="path"
android:pathData="M 14.59 8 L 12 10.59 L 9.41 8 L 8 9.41 L 10.59 12 L 8 14.59 L 9.41 16 L 12 13.41 L 14.59 16 L 16 14.59 L 13.41 12 L 16 9.41 L 14.59 8 Z M 12 2 C 6.47 2 2 6.47 2 12 C 2 17.53 6.47 22 12 22 C 17.53 22 22 17.53 22 12 C 22 6.47 17.53 2 12 2 Z M 12 20 C 7.59 20 4 16.41 4 12 C 4 7.59 7.59 4 12 4 C 16.41 4 20 7.59 20 12 C 20 16.41 16.41 20 12 20 Z"
android:fillColor="?android:attr/colorAccent"
android:strokeWidth="1"/>
android:viewportHeight="24"
android:viewportWidth="24">
<group
android:scaleX="1.05866"
android:scaleY="1.05866"
android:translateX="-0.652026"
android:translateY="-0.703971">
<path
android:fillColor="?android:attr/colorAccent"
android:fillType="evenOdd"
android:pathData="M11.066 10.383l0 -2.773 -2.033 -2.033c-0.364 -0.365 -0.364 -0.956 0 -1.321 0.365 -0.364 0.956 -0.364 1.321 0l0.712 0.713 0 -1.111c0 -0.515 0.419 -0.934 0.934 -0.934 0.515 0 0.934 0.419 0.934 0.934l0 1.111 0.712 -0.713c0.365 -0.364 0.956 -0.364 1.321 0 0.364 0.365 0.364 0.956 0 1.321l-2.033 2.033 0 2.773 2.401 -1.387 0.744 -2.777c0.134 -0.498 0.646 -0.794 1.144 -0.66 0.498 0.133 0.794 0.646 0.66 1.143L17.622 7.676 18.584 7.12c0.447 -0.257 1.018 -0.104 1.276 0.342 0.258 0.446 0.104 1.018 -0.342 1.276l-0.962 0.555 0.973 0.261c0.498 0.133 0.794 0.646 0.661 1.144 -0.134 0.497 -0.646 0.793 -1.144 0.66L16.269 10.614 13.868 12l2.401 1.386 2.777 -0.744c0.498 -0.133 1.01 0.163 1.144 0.66 0.133 0.498 -0.163 1.011 -0.661 1.144l-0.973 0.261 0.962 0.555c0.446 0.258 0.6 0.83 0.342 1.276 -0.258 0.446 -0.829 0.599 -1.276 0.342l-0.962 -0.556 0.261 0.974c0.134 0.497 -0.162 1.01 -0.66 1.143 -0.498 0.134 -1.01 -0.162 -1.144 -0.66l-0.744 -2.777 -2.401 -1.387 0 2.886 2.033 2.034c0.364 0.364 0.364 0.956 0 1.32 -0.365 0.365 -0.956 0.365 -1.321 0l-0.712 -0.712 0 0.997c0 0.515 -0.419 0.934 -0.934 0.934 -0.515 0 -0.934 -0.419 -0.934 -0.934l0 -0.997 -0.712 0.712c-0.365 0.365 -0.956 0.365 -1.321 0 -0.364 -0.364 -0.364 -0.956 0 -1.32l2.033 -2.034 0 -2.886 -2.499 1.443 -0.744 2.778C7.689 18.335 7.177 18.631 6.679 18.498 6.181 18.365 5.885 17.852 6.019 17.354L6.28 16.381 5.416 16.88C4.969 17.137 4.398 16.984 4.14 16.538 3.882 16.092 4.036 15.52 4.482 15.262L5.346 14.764 4.372 14.503C3.875 14.369 3.579 13.857 3.712 13.359 3.846 12.861 4.358 12.565 4.856 12.699L7.633 13.443 10.132 12 7.633 10.557 4.856 11.301C4.358 11.435 3.846 11.139 3.712 10.641 3.579 10.143 3.875 9.631 4.372 9.497L5.346 9.236 4.482 8.738C4.036 8.48 3.882 7.908 4.14 7.462 4.398 7.016 4.969 6.863 5.416 7.12L6.28 7.619 6.019 6.646C5.885 6.148 6.181 5.635 6.679 5.502 7.177 5.369 7.689 5.665 7.823 6.162l0.744 2.778 2.499 1.443z"
android:strokeLineJoin="round"
android:strokeMiterLimit="1.41421" />
</group>
</vector>

View File

@@ -1,13 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:name="vector"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:name="path_1"
android:pathData="M 20.01 15.38 C 18.78 15.38 17.59 15.18 16.48 14.82 C 16.13 14.7 15.74 14.79 15.47 15.06 L 13.9 17.03 C 11.07 15.68 8.42 13.13 7.01 10.2 L 8.96 8.54 C 9.23 8.26 9.31 7.87 9.2 7.52 C 8.83 6.41 8.64 5.22 8.64 3.99 C 8.64 3.45 8.19 3 7.65 3 L 4.19 3 C 3.65 3 3 3.24 3 3.99 C 3 13.28 10.73 21 20.01 21 C 20.72 21 21 20.37 21 19.82 L 21 16.37 C 21 15.83 20.55 15.38 20.01 15.38 Z"
android:fillColor="?android:attr/colorAccent"
android:strokeWidth="1"/>
android:viewportHeight="24"
android:viewportWidth="24">
<group
android:scaleX="0.0930942"
android:scaleY="0.0934518"
android:translateX="19.4408"
android:translateY="9.49012">
<path
android:fillColor="?android:attr/colorAccent"
android:pathData="M0 57.121c-22.463 -12.601 -36.159 -9.862 -42.734 0 -6.574 9.862 -20.819 24.106 -42.186 6.574 -10.987 -9.015 -22.91 -21.121 -31.769 -31.918 -17.532 -21.367 -3.287 -35.612 6.575 -42.186 9.861 -6.575 12.601 -20.272 0 -42.734 -12.601 -22.463 -33.421 -16.437 -33.421 -16.437 0 0 -22.462 6.575 -32.324 48.213 -8.889 37.534 35.637 88.416 44.502 98.083 0 0 57.942 56.011 99.581 46.149 41.638 -9.861 48.212 -32.324 48.212 -32.324 0 0 6.027 -20.819 -16.436 -33.42"
android:strokeLineJoin="round"
android:strokeMiterLimit="1.41421" />
</group>
</vector>

View File

@@ -1,13 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:name="vector"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:name="path"
android:pathData="M 21 6 L 3 6 C 1.9 6 1 6.9 1 8 L 1 16 C 1 17.1 1.9 18 3 18 L 21 18 C 22.1 18 23 17.1 23 16 L 23 8 C 23 6.9 22.1 6 21 6 Z M 11 13 L 8 13 L 8 16 L 6 16 L 6 13 L 3 13 L 3 11 L 6 11 L 6 8 L 8 8 L 8 11 L 11 11 L 11 13 Z M 15.5 15 C 14.67 15 14 14.33 14 13.5 C 14 12.67 14.67 12 15.5 12 C 16.33 12 17 12.67 17 13.5 C 17 14.33 16.33 15 15.5 15 Z M 19.5 12 C 18.67 12 18 11.33 18 10.5 C 18 9.67 18.67 9 19.5 9 C 20.33 9 21 9.67 21 10.5 C 21 11.33 20.33 12 19.5 12 Z"
android:fillColor="?android:attr/colorAccent"
android:strokeWidth="1"/>
android:viewportHeight="24"
android:viewportWidth="24">
<group
android:scaleX="0.921041"
android:scaleY="0.924579"
android:translateX="0.752324"
android:translateY="0.893459">
<path
android:fillColor="?android:attr/colorAccent"
android:fillType="evenOdd"
android:pathData="M10.228 14.833c-0.006 0 -0.894 0.008 -1.83 1.069 -0.716 0.812 -1.981 2.473 -3.218 3.16 -0.07 0.041 -0.143 0.078 -0.218 0.111 -0.311 0.143 -0.619 0.217 -0.913 0.192l-0.015 0C3.63 19.362 3.252 19.254 2.924 19.066 1.702 18.44 1.782 17.099 1.782 17.099c0 -0.07 0.004 -0.139 0.01 -0.206C1.847 15.696 2.143 9.661 2.563 8.549 3.102 6.316 5.114 4.656 7.51 4.656l9.423 0c2.478 0 4.545 1.775 4.997 4.123 0.383 1.539 0.65 6.984 0.702 8.114 0.006 0.067 0.009 0.136 0.009 0.206 0 0 0.081 1.341 -1.142 1.967 -0.327 0.188 -0.706 0.296 -1.109 0.299l-0.015 0c-0.294 0.025 -0.602 -0.049 -0.914 -0.192 -0.074 -0.033 -0.147 -0.07 -0.218 -0.111 -1.236 -0.687 -2.502 -2.348 -3.217 -3.16 -0.936 -1.061 -1.824 -1.069 -1.83 -1.069l-3.968 0zM8.247 6.379c1.935 0 3.507 1.571 3.507 3.507 0 1.935 -1.572 3.507 -3.507 3.507 -1.936 0 -3.507 -1.572 -3.507 -3.507 0 -1.936 1.571 -3.507 3.507 -3.507zm9.138 4.16c0.454 0 0.823 0.369 0.823 0.823 0 0.454 -0.369 0.823 -0.823 0.823 -0.454 0 -0.823 -0.369 -0.823 -0.823 0 -0.454 0.369 -0.823 0.823 -0.823zm-8.421 0.07l0 0.814c0 0.399 -0.324 0.723 -0.723 0.723 -0.399 0 -0.723 -0.324 -0.723 -0.723l0 -0.814 -0.815 0C6.304 10.609 5.98 10.285 5.98 9.886 5.98 9.487 6.304 9.163 6.703 9.163l0.815 0 0 -0.815c0 -0.399 0.324 -0.723 0.723 -0.723 0.399 0 0.723 0.324 0.723 0.723l0 0.815 0.815 0c0.399 0 0.723 0.324 0.723 0.723 0 0.399 -0.324 0.722 -0.723 0.723l-0.815 0zm10.72 -0.723c0 0.454 -0.369 0.823 -0.823 0.823 -0.454 0 -0.823 -0.369 -0.823 -0.823 0 -0.455 0.369 -0.823 0.823 -0.823 0.454 0 0.823 0.368 0.823 0.823zm-2.952 0c0 0.454 -0.369 0.823 -0.823 0.823 -0.455 0 -0.823 -0.369 -0.823 -0.823 0 -0.455 0.368 -0.823 0.823 -0.823 0.454 0 0.823 0.368 0.823 0.823zm0.653 -2.3c0.454 0 0.823 0.369 0.823 0.824 0 0.454 -0.369 0.823 -0.823 0.823 -0.454 0 -0.823 -0.369 -0.823 -0.823 0 -0.455 0.369 -0.824 0.823 -0.824z"
android:strokeLineJoin="round"
android:strokeMiterLimit="1.41421" />
</group>
</vector>

View File

@@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24"
android:viewportWidth="24">
<group
android:scaleX="1.05866"
android:scaleY="1.05866"
android:translateX="-0.652026"
android:translateY="-0.703971">
<path
android:fillColor="?android:attr/colorControlNormal"
android:fillType="evenOdd"
android:pathData="M11.066 10.383l0 -2.773 -2.033 -2.033c-0.364 -0.365 -0.364 -0.956 0 -1.321 0.365 -0.364 0.956 -0.364 1.321 0l0.712 0.713 0 -1.111c0 -0.515 0.419 -0.934 0.934 -0.934 0.515 0 0.934 0.419 0.934 0.934l0 1.111 0.712 -0.713c0.365 -0.364 0.956 -0.364 1.321 0 0.364 0.365 0.364 0.956 0 1.321l-2.033 2.033 0 2.773 2.401 -1.387 0.744 -2.777c0.134 -0.498 0.646 -0.794 1.144 -0.66 0.498 0.133 0.794 0.646 0.66 1.143L17.622 7.676 18.584 7.12c0.447 -0.257 1.018 -0.104 1.276 0.342 0.258 0.446 0.104 1.018 -0.342 1.276l-0.962 0.555 0.973 0.261c0.498 0.133 0.794 0.646 0.661 1.144 -0.134 0.497 -0.646 0.793 -1.144 0.66L16.269 10.614 13.868 12l2.401 1.386 2.777 -0.744c0.498 -0.133 1.01 0.163 1.144 0.66 0.133 0.498 -0.163 1.011 -0.661 1.144l-0.973 0.261 0.962 0.555c0.446 0.258 0.6 0.83 0.342 1.276 -0.258 0.446 -0.829 0.599 -1.276 0.342l-0.962 -0.556 0.261 0.974c0.134 0.497 -0.162 1.01 -0.66 1.143 -0.498 0.134 -1.01 -0.162 -1.144 -0.66l-0.744 -2.777 -2.401 -1.387 0 2.886 2.033 2.034c0.364 0.364 0.364 0.956 0 1.32 -0.365 0.365 -0.956 0.365 -1.321 0l-0.712 -0.712 0 0.997c0 0.515 -0.419 0.934 -0.934 0.934 -0.515 0 -0.934 -0.419 -0.934 -0.934l0 -0.997 -0.712 0.712c-0.365 0.365 -0.956 0.365 -1.321 0 -0.364 -0.364 -0.364 -0.956 0 -1.32l2.033 -2.034 0 -2.886 -2.499 1.443 -0.744 2.778C7.689 18.335 7.177 18.631 6.679 18.498 6.181 18.365 5.885 17.852 6.019 17.354L6.28 16.381 5.416 16.88C4.969 17.137 4.398 16.984 4.14 16.538 3.882 16.092 4.036 15.52 4.482 15.262L5.346 14.764 4.372 14.503C3.875 14.369 3.579 13.857 3.712 13.359 3.846 12.861 4.358 12.565 4.856 12.699L7.633 13.443 10.132 12 7.633 10.557 4.856 11.301C4.358 11.435 3.846 11.139 3.712 10.641 3.579 10.143 3.875 9.631 4.372 9.497L5.346 9.236 4.482 8.738C4.036 8.48 3.882 7.908 4.14 7.462 4.398 7.016 4.969 6.863 5.416 7.12L6.28 7.619 6.019 6.646C5.885 6.148 6.181 5.635 6.679 5.502 7.177 5.369 7.689 5.665 7.823 6.162l0.744 2.778 2.499 1.443z"
android:strokeLineJoin="round"
android:strokeMiterLimit="1.41421" />
</group>
</vector>

View File

@@ -1,13 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:name="vector"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:name="path"
android:pathData="M 21 3 L 3 3 C 1.89 3 1 3.89 1 5 L 1 17 C 1 18.1 1.89 19 3 19 L 8 19 L 8 21 L 16 21 L 16 19 L 21 19 C 22.1 19 22.99 18.1 22.99 17 L 23 5 C 23 3.89 22.1 3 21 3 Z M 21 17 L 3 17 L 3 5 L 21 5 L 21 17 Z M 16 11 L 9 15 L 9 7 Z"
android:fillColor="?android:attr/colorAccent"
android:strokeWidth="1"/>
android:viewportHeight="24"
android:viewportWidth="24">
<group
android:scaleX="1.20862"
android:scaleY="1.21327"
android:translateX="-0.686496"
android:translateY="-0.544151">
<path
android:fillColor="?android:attr/colorAccent"
android:fillType="evenOdd"
android:pathData="M13.29 18.046l-8.091 0c-1.277 0 -2.315 -1.037 -2.315 -2.315l0 -4.631c0 -1.277 1.038 -2.315 2.315 -2.315l8.091 0c1.272 0 2.305 1.027 2.315 2.296l1.307 -0.754c0.065 -0.038 0.135 -0.067 0.21 -0.086l0.002 0 0 0 0 0 0 0c0.062 -0.015 0.126 -0.023 0.188 -0.023l0.001 0 0.003 0c0.146 0.001 0.283 0.041 0.401 0.11 0.11 0.065 0.205 0.156 0.276 0.272 0.043 0.071 0.076 0.15 0.096 0.233l0 0.002c0.014 0.059 0.02 0.119 0.02 0.178l0 0.001 0 4.803 0 0.001c0 0.059 -0.006 0.119 -0.02 0.178l0 0.001 0 0 0 0 0 0.001c-0.02 0.084 -0.053 0.162 -0.096 0.233 -0.071 0.116 -0.166 0.208 -0.276 0.272 -0.118 0.07 -0.255 0.11 -0.401 0.11l0 0 0 0 -0.003 0 -0.001 0c-0.062 0 -0.126 -0.007 -0.188 -0.023l0 0 0 0 0 0 -0.002 0c-0.075 -0.018 -0.145 -0.047 -0.21 -0.085L15.605 15.75c-0.01 1.269 -1.043 2.296 -2.315 2.296zm-1.773 -4.63c0 -0.107 -0.027 -0.214 -0.083 -0.313l0 0 0 0 -0.001 -0.002 -0.001 0C11.409 13.06 11.381 13.023 11.349 12.988 11.305 12.94 11.254 12.9 11.198 12.869L7.919 10.975C7.867 10.945 7.811 10.922 7.752 10.908l-0.001 -0.001 0 0 0 0 0 0C7.702 10.895 7.652 10.889 7.602 10.889l0 0 -0.002 0 -0.001 0 0 0C7.484 10.89 7.376 10.921 7.283 10.976 7.196 11.027 7.12 11.099 7.064 11.191 7.03 11.247 7.004 11.309 6.989 11.375l0 0.001 0 0 0 0 0 0.001c-0.011 0.046 -0.016 0.094 -0.016 0.141l0 0 0 3.795 0 0.001c0 0.047 0.005 0.094 0.016 0.141l0 0.001c0.015 0.066 0.041 0.128 0.075 0.185 0.056 0.091 0.132 0.163 0.219 0.214 0.093 0.055 0.201 0.087 0.316 0.087l0.003 0 0 0c0.05 0 0.1 -0.006 0.149 -0.018l0 0 0 0 0 0 0.001 0c0.059 -0.015 0.115 -0.038 0.167 -0.068l3.279 -1.893c0.056 -0.032 0.107 -0.072 0.151 -0.119 0.032 -0.035 0.06 -0.073 0.083 -0.113l0.001 -0.001 0.001 -0.001 0 -0.001 0 0c0.056 -0.098 0.083 -0.206 0.083 -0.312zM6.026 4.848c0.955 0 1.731 0.776 1.731 1.731C7.757 7.535 6.981 8.31 6.026 8.31 5.07 8.31 4.295 7.535 4.295 6.579 4.295 5.624 5.07 4.848 6.026 4.848Zm4.986 -2.216c1.567 0 2.839 1.272 2.839 2.839 0 1.567 -1.272 2.839 -2.839 2.839 -1.567 0 -2.839 -1.272 -2.839 -2.839 0 -1.567 1.272 -2.839 2.839 -2.839z"
android:strokeLineJoin="round"
android:strokeMiterLimit="1.41421" />
</group>
</vector>

View File

@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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.
-->
<resources>
<!-- Values for Dirac headset pref -->
<string-array name="dirac_headset_pref_entries" translatable="false">
<item>@string/dirac_headset_default</item>
<item>@string/dirac_headset_earbuds</item>
<item>@string/dirac_headset_in_ear_2013</item>
<item>@string/dirac_headset_piston_1</item>
<item>@string/dirac_headset_general</item>
<item>@string/dirac_headset_general_inear</item>
<item>@string/dirac_headset_piston_basic</item>
<item>@string/dirac_headset_piston_2</item>
<item>@string/dirac_headset_piston_standard</item>
<item>@string/dirac_headset_headphone</item>
<item>@string/dirac_headset_piston_youth</item>
<item>@string/dirac_headset_piston_color</item>
<item>@string/dirac_headset_in_ear</item>
<item>@string/dirac_headset_capsule</item>
<item>@string/dirac_headset_in_ear_pro</item>
<item>@string/dirac_headset_comfort</item>
<item>@string/dirac_headset_reduction_noise</item>
<item>@string/dirac_headset_cancelling</item>
<item>@string/dirac_headset_half_in_ear</item>
<item>@string/dirac_headset_in_ear2</item>
<item>@string/dirac_headset_earphone_basic</item>
<item>@string/dirac_headset_earphone</item>
</string-array>
<string-array name="dirac_headset_pref_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
<item>10</item>
<item>11</item>
<item>12</item>
<item>13</item>
<item>14</item>
<item>15</item>
<item>16</item>
<item>17</item>
<item>18</item>
<item>19</item>
<item>20</item>
<item>21</item>
<item>22</item>
<item>23</item>
</string-array>
<!-- Values for Dirac preset pref -->
<string-array name="dirac_preset_pref_entries" translatable="false">
<item>@string/dirac_preset_default</item>
<item>@string/dirac_preset_rock</item>
<item>@string/dirac_preset_jazz</item>
<item>@string/dirac_preset_pop</item>
<item>@string/dirac_preset_classical</item>
<item>@string/dirac_preset_hiphop</item>
<item>@string/dirac_preset_blues</item>
<item>@string/dirac_preset_electronic</item>
<item>@string/dirac_preset_country</item>
<item>@string/dirac_preset_dance</item>
<item>@string/dirac_preset_metal</item>
</string-array>
<string-array name="dirac_preset_pref_values" translatable="false">
<item>"0,0,0,0,0,0,0"</item>
<item>"4,2,-2,0,-2,-2,4"</item>
<item>"0,0,0,-2,-3,0,0"</item>
<item>"0,-3,-5,0,0,-3,0"</item>
<item>"0,0,0,0,3,6,6"</item>
<item>"3,3,-3,0,-3,0,2"</item>
<item>"2,4,-6,4,0,1,2"</item>
<item>"3,3,-1,0,-3,0,0"</item>
<item>"0,0,-2,-2,2,2,0"</item>
<item>"0,4,2,0,-2,-2,4"</item>
<item>"2,0,0,-2,-4,0,0"</item>
</string-array>
</resources>

View File

@@ -15,26 +15,57 @@
limitations under the License.
-->
<resources>
<!-- Ambient settings -->
<string name="doze_summary">Advanced Ambient Display Preferences</string>
<!-- Dirac settings -->
<string name="dirac_enable">Enable dirac</string>
<string name="dirac_title">Dirac sound enhancer</string>
<string name="dirac_headset_title">Headset type</string>
<string name="dirac_preset_title">Sound preset</string>
<!-- Dirac settings: headset types -->
<string name="dirac_headset_default">Default</string>
<string name="dirac_headset_earbuds">Mi Earbuds</string>
<string name="dirac_headset_in_ear_2013">Mi In-Ear (2013)</string>
<string name="dirac_headset_piston_1">Mi Piston 1</string>
<string name="dirac_headset_general">General Earbuds</string>
<string name="dirac_headset_general_inear">General In-Ear</string>
<string name="dirac_headset_piston_basic">Basic Edition</string>
<string name="dirac_headset_piston_2">Mi Piston 2</string>
<string name="dirac_headset_piston_standard">Mi Piston 3</string>
<string name="dirac_headset_headphone">Mi Headphones</string>
<string name="dirac_headset_piston_youth">Youth Edition</string>
<string name="dirac_headset_piston_color">Color Edition</string>
<string name="dirac_headset_in_ear">Mi In-Ear</string>
<string name="dirac_headset_capsule">Mi Capsule</string>
<string name="dirac_headset_in_ear_pro">Mi In-Ear Pro</string>
<string name="dirac_headset_comfort">Mi Comfort</string>
<string name="dirac_headset_reduction_noise">Mi Noise Cancelling (Type-C)</string>
<string name="dirac_headset_cancelling">Mi Noise Cancelling (3.5mm)</string>
<string name="dirac_headset_half_in_ear">Mi Half In-Ear</string>
<string name="dirac_headset_in_ear2">Mi In-Ear 2</string>
<string name="dirac_headset_earphone_basic">Mi Earphones Basic</string>
<string name="dirac_headset_earphone">Mi Earphones</string>
<!-- Dirac settings: equalizer presets -->
<string name="dirac_preset_default">Default</string>
<string name="dirac_preset_rock">Rock</string>
<string name="dirac_preset_jazz">Jazz</string>
<string name="dirac_preset_pop">Pop</string>
<string name="dirac_preset_classical">Classical</string>
<string name="dirac_preset_hiphop">Hip Hop</string>
<string name="dirac_preset_blues">Blues</string>
<string name="dirac_preset_electronic">Electronic</string>
<string name="dirac_preset_country">Country</string>
<string name="dirac_preset_dance">Dance</string>
<string name="dirac_preset_metal">Metal</string>
<!-- Thermal profiles -->
<string name="thermal_title">Thermal profiles</string>
<string name="thermal_summary">Adjust per-app thermal profiles for optimum performance</string>
<string name="thermal_default">No optimization</string>
<string name="thermal_benchmark">Performance</string>
<string name="thermal_default">Default</string>
<string name="thermal_benchmark">Benchmark</string>
<string name="thermal_browser">Browser</string>
<string name="thermal_camera">Camera</string>
<string name="thermal_dialer">Dialer</string>
<string name="thermal_gaming">Gaming</string>
<string name="thermal_streaming">Streaming</string>
<!-- Raise to wake strings-->
<string name="raise_to_wake_gesture_title">Raise to wake</string>
<string name="raise_to_wake_gesture_summary">Wake up the device instead of pulsing notification</string>
<!-- Clear Speaker -->
<string name="clear_speaker_title">Clear speaker</string>
<string name="clear_speaker_summary">Play a 30-second audio to clear the speaker</string>
<string name="clear_speaker_description">Run this feature once or twice if you find that your speaker is lightly blocked by dust. Set media volume to maximum.\n\nIf the speaker is blocked heavily, run this feature 25 times while shaking your device with the speaker facing downwards.\n\nWARNING: Ensure that any headphones are unplugged.</string>
</resources>

View File

@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/clear_speaker_title">
<SwitchPreference
android:key="clear_speaker_pref"
android:title="@string/clear_speaker_title"
android:icon="@drawable/ic_speaker_cleaner_icon"
android:summary="@string/clear_speaker_summary"/>
<com.android.settingslib.widget.FooterPreference
android:key="footer_preference"
android:title="@string/clear_speaker_description"
android:selectable="false" />
</PreferenceScreen>

View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2018,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.
-->
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/dirac_title">
<com.android.settingslib.widget.MainSwitchPreference
android:defaultValue="false"
android:key="dirac_enable"
android:title="@string/dirac_enable" />
<ListPreference
android:key="dirac_headset_pref"
android:entries="@array/dirac_headset_pref_entries"
android:entryValues="@array/dirac_headset_pref_values"
android:defaultValue="0"
android:title="@string/dirac_headset_title"
android:summary="%s" />
<ListPreference
android:key="dirac_preset_pref"
android:entries="@array/dirac_preset_pref_entries"
android:entryValues="@array/dirac_preset_pref_values"
android:defaultValue="0,0,0,0,0,0,0"
android:title="@string/dirac_preset_title"
android:summary="%s" />
</PreferenceScreen>

View File

@@ -31,7 +31,6 @@
<SwitchPreferenceCompat
android:key="always_on_display"
android:disableDependentsState="true"
android:icon="@drawable/ic_display"
android:title="@string/ambient_display_always_on_title"
android:summary="@string/ambient_display_always_on_summary"
android:persistent="false" />
@@ -47,14 +46,6 @@
android:title="@string/pick_up_gesture_title"
android:summary="@string/pick_up_gesture_summary" />
<SwitchPreferenceCompat
android:defaultValue="false"
android:disableDependentsState="true"
android:key="gesture_raise_to_wake"
android:summary="@string/raise_to_wake_gesture_summary"
android:title="@string/raise_to_wake_gesture_title"
android:icon="@drawable/ic_raise" />
</PreferenceCategory>
<PreferenceCategory

View File

@@ -20,9 +20,9 @@ package org.lineageos.settings;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.util.Log;
import org.lineageos.settings.dirac.DiracUtils;
import org.lineageos.settings.doze.DozeUtils;
import org.lineageos.settings.thermal.ThermalUtils;
@@ -34,6 +34,7 @@ public class BootCompletedReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
if (DEBUG) Log.d(TAG, "Received boot completed intent");
DiracUtils.initialize();
DozeUtils.checkDozeService(context);
ThermalUtils.startService(context);
}

View File

@@ -0,0 +1,35 @@
/*
* Copyright (C) 2018,2021-2022 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.
*/
package org.lineageos.settings.dirac;
import android.os.Bundle;
import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
public class DiracActivity extends CollapsingToolbarBaseActivity {
private static final String TAG_DIRAC = "dirac";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(
com.android.settingslib.collapsingtoolbar.R.id.content_frame,
new DiracSettingsFragment(), TAG_DIRAC).commit();
}
}

View File

@@ -0,0 +1,86 @@
/*
* Copyright (C) 2018,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.
*/
package org.lineageos.settings.dirac;
import android.os.Bundle;
import android.widget.CompoundButton;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceFragment;
import com.android.settingslib.widget.MainSwitchPreference;
import org.lineageos.settings.R;
public class DiracSettingsFragment extends PreferenceFragment implements
Preference.OnPreferenceChangeListener, CompoundButton.OnCheckedChangeListener {
private static final String PREF_ENABLE = "dirac_enable";
private static final String PREF_HEADSET = "dirac_headset_pref";
private static final String PREF_PRESET = "dirac_preset_pref";
private MainSwitchPreference mSwitchBar;
private ListPreference mHeadsetType;
private ListPreference mPreset;
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.dirac_settings);
DiracUtils.initialize();
boolean enhancerEnabled = DiracUtils.isDiracEnabled(getActivity());
mSwitchBar = (MainSwitchPreference) findPreference(PREF_ENABLE);
mSwitchBar.addOnSwitchChangeListener(this);
mSwitchBar.setChecked(enhancerEnabled);
mHeadsetType = (ListPreference) findPreference(PREF_HEADSET);
mHeadsetType.setOnPreferenceChangeListener(this);
mHeadsetType.setEnabled(enhancerEnabled);
mPreset = (ListPreference) findPreference(PREF_PRESET);
mPreset.setOnPreferenceChangeListener(this);
mPreset.setEnabled(enhancerEnabled);
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
switch (preference.getKey()) {
case PREF_HEADSET:
DiracUtils.setHeadsetType(Integer.parseInt(newValue.toString()));
return true;
case PREF_PRESET:
DiracUtils.setLevel(String.valueOf(newValue));
return true;
default:
return false;
}
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
mSwitchBar.setChecked(isChecked);
DiracUtils.setMusic(isChecked);
mHeadsetType.setEnabled(isChecked);
mPreset.setEnabled(isChecked);
}
}

View File

@@ -0,0 +1,76 @@
/*
* 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.
*/
package org.lineageos.settings.dirac;
import android.media.audiofx.AudioEffect;
import java.util.UUID;
public class DiracSound extends AudioEffect {
private static final int DIRACSOUND_PARAM_HEADSET_TYPE = 1;
private static final int DIRACSOUND_PARAM_EQ_LEVEL = 2;
private static final int DIRACSOUND_PARAM_MUSIC = 4;
private static final UUID EFFECT_TYPE_DIRACSOUND =
UUID.fromString("e069d9e0-8329-11df-9168-0002a5d5c51b");
private static final String TAG = "DiracSound";
public DiracSound(int priority, int audioSession) {
super(EFFECT_TYPE_NULL, EFFECT_TYPE_DIRACSOUND, priority, audioSession);
}
public int getMusic() throws IllegalStateException,
IllegalArgumentException, UnsupportedOperationException {
int[] value = new int[1];
checkStatus(getParameter(DIRACSOUND_PARAM_MUSIC, value));
return value[0];
}
public void setMusic(int enable) throws IllegalStateException,
IllegalArgumentException, UnsupportedOperationException {
checkStatus(setParameter(DIRACSOUND_PARAM_MUSIC, enable));
}
public int getHeadsetType() throws IllegalStateException,
IllegalArgumentException, UnsupportedOperationException {
int[] value = new int[1];
checkStatus(getParameter(DIRACSOUND_PARAM_HEADSET_TYPE, value));
return value[0];
}
public void setHeadsetType(int type) throws IllegalStateException,
IllegalArgumentException, UnsupportedOperationException {
checkStatus(setParameter(DIRACSOUND_PARAM_HEADSET_TYPE, type));
}
public float getLevel(int band) throws IllegalStateException,
IllegalArgumentException, UnsupportedOperationException {
int[] param = new int[2];
byte[] value = new byte[10];
param[0] = DIRACSOUND_PARAM_EQ_LEVEL;
param[1] = band;
checkStatus(getParameter(param, value));
return new Float(new String(value)).floatValue();
}
public void setLevel(int band, float level) throws IllegalStateException,
IllegalArgumentException, UnsupportedOperationException {
checkStatus(setParameter(new int[]{DIRACSOUND_PARAM_EQ_LEVEL, band},
String.valueOf(level).getBytes()));
}
}

View File

@@ -0,0 +1,65 @@
/*
* Copyright (C) 2018,2020 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.lineageos.settings.dirac;
import android.content.Context;
public final class DiracUtils {
protected static DiracSound mDiracSound;
private static boolean mInitialized;
public static void initialize() {
if (!mInitialized) {
mDiracSound = new DiracSound(0, 0);
mDiracSound.setMusic(mDiracSound.getMusic());
mDiracSound.setHeadsetType(mDiracSound.getHeadsetType());
setLevel(getLevel());
mInitialized = true;
}
}
protected static void setMusic(boolean enable) {
mDiracSound.setMusic(enable ? 1 : 0);
}
protected static boolean isDiracEnabled(Context context) {
return mDiracSound != null && mDiracSound.getMusic() == 1;
}
protected static void setLevel(String preset) {
String[] level = preset.split("\\s*,\\s*");
for (int band = 0; band <= level.length - 1; band++) {
mDiracSound.setLevel(band, Float.valueOf(level[band]));
}
}
protected static String getLevel() {
String selected = "";
for (int band = 0; band <= 6; band++) {
int temp = (int) mDiracSound.getLevel(band);
selected += String.valueOf(temp);
if (band != 6) selected += ",";
}
return selected;
}
protected static void setHeadsetType(int paramInt) {
mDiracSound.setHeadsetType(paramInt);
}
}

View File

@@ -66,8 +66,7 @@ public class DozeService extends Service {
private void onDisplayOn() {
if (DEBUG) Log.d(TAG, "Display on");
if (DozeUtils.isPickUpEnabled(this) ||
DozeUtils.isRaiseToWakeEnabled(this)) {
if (DozeUtils.isPickUpEnabled(this)) {
mPickupSensor.disable();
}
if (DozeUtils.isHandwaveGestureEnabled(this) ||
@@ -78,8 +77,7 @@ public class DozeService extends Service {
private void onDisplayOff() {
if (DEBUG) Log.d(TAG, "Display off");
if (DozeUtils.isPickUpEnabled(this) ||
DozeUtils.isRaiseToWakeEnabled(this)) {
if (DozeUtils.isPickUpEnabled(this)) {
mPickupSensor.enable();
}
if (DozeUtils.isHandwaveGestureEnabled(this) ||

View File

@@ -29,7 +29,7 @@ public class DozeSettingsActivity extends CollapsingToolbarBaseActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportFragmentManager().beginTransaction().replace(
getFragmentManager().beginTransaction().replace(
com.android.settingslib.collapsingtoolbar.R.id.content_frame,
new DozeSettingsFragment(), TAG_DOZE).commit();
}

View File

@@ -1,6 +1,6 @@
/*
* Copyright (C) 2015 The CyanogenMod Project
* 2017-2025 The LineageOS Project
* 2017-2023 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.
@@ -17,23 +17,27 @@
package org.lineageos.settings.doze;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.widget.CompoundButton;
import androidx.appcompat.app.AlertDialog;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceFragment;
import androidx.preference.SwitchPreferenceCompat;
import com.android.settingslib.widget.MainSwitchPreference;
import org.lineageos.settings.R;
public class DozeSettingsFragment extends PreferenceFragmentCompat implements
public class DozeSettingsFragment extends PreferenceFragment implements
Preference.OnPreferenceChangeListener, CompoundButton.OnCheckedChangeListener {
private MainSwitchPreference mSwitchBar;
@@ -41,7 +45,6 @@ public class DozeSettingsFragment extends PreferenceFragmentCompat implements
private SwitchPreferenceCompat mAlwaysOnDisplayPreference;
private SwitchPreferenceCompat mPickUpPreference;
private SwitchPreferenceCompat mRaiseToWakePreference;
private SwitchPreferenceCompat mHandwavePreference;
private SwitchPreferenceCompat mPocketPreference;
@@ -49,10 +52,10 @@ public class DozeSettingsFragment extends PreferenceFragmentCompat implements
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.doze_settings, rootKey);
addPreferencesFromResource(R.xml.doze_settings);
SharedPreferences prefs = getActivity().getSharedPreferences("doze_settings",
Context.MODE_PRIVATE);
Activity.MODE_PRIVATE);
if (savedInstanceState == null && !prefs.getBoolean("first_help_shown", false)) {
showHelp();
}
@@ -77,10 +80,6 @@ public class DozeSettingsFragment extends PreferenceFragmentCompat implements
mPickUpPreference.setEnabled(dozeEnabled);
mPickUpPreference.setOnPreferenceChangeListener(this);
mRaiseToWakePreference = (SwitchPreferenceCompat) findPreference(DozeUtils.GESTURE_RAISE_TO_WAKE_KEY);
mRaiseToWakePreference.setEnabled(dozeEnabled);
mRaiseToWakePreference.setOnPreferenceChangeListener(this);
mHandwavePreference = (SwitchPreferenceCompat) findPreference(DozeUtils.GESTURE_HAND_WAVE_KEY);
mHandwavePreference.setEnabled(dozeEnabled);
mHandwavePreference.setOnPreferenceChangeListener(this);
@@ -100,8 +99,6 @@ public class DozeSettingsFragment extends PreferenceFragmentCompat implements
} else {
pickupSensorCategory.setDependency(DozeUtils.ALWAYS_ON_DISPLAY);
proximitySensorCategory.setDependency(DozeUtils.ALWAYS_ON_DISPLAY);
mPickUpPreference.setDependency(DozeUtils.GESTURE_RAISE_TO_WAKE_KEY);
mPocketPreference.setDependency(DozeUtils.GESTURE_RAISE_TO_WAKE_KEY);
}
}
@@ -130,7 +127,6 @@ public class DozeSettingsFragment extends PreferenceFragmentCompat implements
mAlwaysOnDisplayPreference.setEnabled(isChecked);
mPickUpPreference.setEnabled(isChecked);
mRaiseToWakePreference.setEnabled(isChecked);
mHandwavePreference.setEnabled(isChecked);
mPocketPreference.setEnabled(isChecked);
}
@@ -142,7 +138,7 @@ public class DozeSettingsFragment extends PreferenceFragmentCompat implements
.setPositiveButton(R.string.dialog_ok,
(dialog, which) -> {
getActivity()
.getSharedPreferences("doze_settings", Context.MODE_PRIVATE)
.getSharedPreferences("doze_settings", Activity.MODE_PRIVATE)
.edit()
.putBoolean("first_help_shown", true)
.commit();

View File

@@ -1,4 +1,4 @@
/*
/*
* Copyright (C) 2015 The CyanogenMod Project
* 2017-2019,2021 The LineageOS Project
*
@@ -17,9 +17,6 @@
package org.lineageos.settings.doze;
import static android.provider.Settings.Secure.DOZE_ALWAYS_ON;
import static android.provider.Settings.Secure.DOZE_ENABLED;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
@@ -32,6 +29,9 @@ import android.util.Log;
import androidx.preference.PreferenceManager;
import static android.provider.Settings.Secure.DOZE_ALWAYS_ON;
import static android.provider.Settings.Secure.DOZE_ENABLED;
public final class DozeUtils {
private static final String TAG = "DozeUtils";
@@ -47,7 +47,6 @@ public final class DozeUtils {
protected static final String CATEG_PROX_SENSOR = "proximity_sensor";
protected static final String GESTURE_PICK_UP_KEY = "gesture_pick_up";
protected static final String GESTURE_RAISE_TO_WAKE_KEY = "gesture_raise_to_wake";
protected static final String GESTURE_HAND_WAVE_KEY = "gesture_hand_wave";
protected static final String GESTURE_POCKET_KEY = "gesture_pocket";
@@ -124,10 +123,6 @@ public final class DozeUtils {
protected static boolean isPickUpEnabled(Context context) {
return isGestureEnabled(context, GESTURE_PICK_UP_KEY);
}
public static boolean isRaiseToWakeEnabled(Context context) {
return isGestureEnabled(context, GESTURE_RAISE_TO_WAKE_KEY);
}
protected static boolean isHandwaveGestureEnabled(Context context) {
return isGestureEnabled(context, GESTURE_HAND_WAVE_KEY);
@@ -138,8 +133,8 @@ public final class DozeUtils {
}
public static boolean sensorsEnabled(Context context) {
return isPickUpEnabled(context) || isRaiseToWakeEnabled(context) ||
isHandwaveGestureEnabled(context) || isPocketGestureEnabled(context);
return isPickUpEnabled(context) || isHandwaveGestureEnabled(context)
|| isPocketGestureEnabled(context);
}
protected static Sensor getSensor(SensorManager sm, String type) {

View File

@@ -23,8 +23,6 @@ import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.SystemClock;
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
import android.util.Log;
import java.util.concurrent.ExecutorService;
@@ -37,15 +35,11 @@ public class PickupSensor implements SensorEventListener {
private static final String TAG = "PickupSensor";
private static final int MIN_PULSE_INTERVAL_MS = 2500;
private static final int MIN_WAKEUP_INTERVAL_MS = 1000;
private static final int WAKELOCK_TIMEOUT_MS = 300;
private SensorManager mSensorManager;
private Sensor mSensor;
private Context mContext;
private ExecutorService mExecutorService;
private PowerManager mPowerManager;
private WakeLock mWakeLock;
private long mEntryTimestamp;
@@ -53,8 +47,6 @@ public class PickupSensor implements SensorEventListener {
mContext = context;
mSensorManager = mContext.getSystemService(SensorManager.class);
mSensor = DozeUtils.getSensor(mSensorManager, "xiaomi.sensor.pickup");
mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
mWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
mExecutorService = Executors.newSingleThreadExecutor();
}
@@ -64,24 +56,17 @@ public class PickupSensor implements SensorEventListener {
@Override
public void onSensorChanged(SensorEvent event) {
boolean isRaiseToWake = DozeUtils.isRaiseToWakeEnabled(mContext);
if (DEBUG) Log.d(TAG, "Got sensor event: " + event.values[0]);
long delta = SystemClock.elapsedRealtime() - mEntryTimestamp;
if (delta < (isRaiseToWake ? MIN_WAKEUP_INTERVAL_MS : MIN_PULSE_INTERVAL_MS)) {
if (delta < MIN_PULSE_INTERVAL_MS) {
return;
}
mEntryTimestamp = SystemClock.elapsedRealtime();
if (event.values[0] == 1) {
if (isRaiseToWake) {
mWakeLock.acquire(WAKELOCK_TIMEOUT_MS);
mPowerManager.wakeUp(SystemClock.uptimeMillis(),
PowerManager.WAKE_REASON_GESTURE, TAG);
} else {
DozeUtils.launchDozePulse(mContext);
}
DozeUtils.launchDozePulse(mContext);
}
}

View File

@@ -1,51 +0,0 @@
/*
* Copyright (C) 2020 Paranoid Android
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.lineageos.settings.speaker;
import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.view.MenuItem;
import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
public class ClearSpeakerActivity extends CollapsingToolbarBaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Fragment fragment = getFragmentManager().findFragmentById(com.android.settingslib.collapsingtoolbar.R.id.content_frame);
ClearSpeakerFragment clearSpeakerFragment;
if (fragment == null) {
clearSpeakerFragment = new ClearSpeakerFragment();
getFragmentManager().beginTransaction()
.add(com.android.settingslib.collapsingtoolbar.R.id.content_frame, clearSpeakerFragment)
.commit();
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finishAfterTransition();
return true;
}
return super.onOptionsItemSelected(item);
}
}

View File

@@ -1,111 +0,0 @@
/*
* Copyright (C) 2023 Paranoid Android
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.lineageos.settings.speaker;
import android.content.res.AssetFileDescriptor;
import android.media.AudioAttributes;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragment;
import androidx.preference.SwitchPreference;
import org.lineageos.settings.R;
import java.io.IOException;
public class ClearSpeakerFragment extends PreferenceFragment implements
Preference.OnPreferenceChangeListener {
private static final String TAG = "ClearSpeakerFragment";
private static final String PREF_CLEAR_SPEAKER = "clear_speaker_pref";
private static final int PLAY_DURATION_MS = 30000;
private Handler mHandler = new Handler(Looper.getMainLooper());
private MediaPlayer mMediaPlayer;
private SwitchPreference mClearSpeakerPref;
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.clear_speaker_settings);
mClearSpeakerPref = findPreference(PREF_CLEAR_SPEAKER);
mClearSpeakerPref.setOnPreferenceChangeListener(this);
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (preference == mClearSpeakerPref) {
boolean value = (Boolean) newValue;
if (value && startPlaying()) {
mHandler.removeCallbacksAndMessages(null);
mHandler.postDelayed(this::stopPlaying, PLAY_DURATION_MS);
return true;
}
}
return false;
}
@Override
public void onStop() {
super.onStop();
stopPlaying();
}
public boolean startPlaying() {
getActivity().setVolumeControlStream(AudioManager.STREAM_MUSIC);
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setAudioAttributes(new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_MEDIA)
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.build());
mMediaPlayer.setLooping(true);
try (AssetFileDescriptor afd = getResources().openRawResourceFd(
R.raw.clear_speaker_sound)) {
mMediaPlayer.setDataSource(afd);
mMediaPlayer.setVolume(1.0f, 1.0f);
mMediaPlayer.prepare();
mMediaPlayer.start();
mClearSpeakerPref.setEnabled(false);
} catch (IOException | IllegalArgumentException e) {
Log.e(TAG, "Failed to play speaker clean sound!", e);
return false;
}
return true;
}
public void stopPlaying() {
if (mMediaPlayer != null && mMediaPlayer.isPlaying()) {
try {
mMediaPlayer.stop();
} catch (IllegalStateException e) {
Log.e(TAG, "Failed to stop media player!", e);
} finally {
mMediaPlayer.reset();
mMediaPlayer.release();
mMediaPlayer = null;
}
}
mClearSpeakerPref.setEnabled(true);
mClearSpeakerPref.setChecked(false);
}
}

View File

@@ -28,7 +28,7 @@ public class ThermalActivity extends CollapsingToolbarBaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportFragmentManager().beginTransaction().replace(
getFragmentManager().beginTransaction().replace(
com.android.settingslib.collapsingtoolbar.R.id.content_frame,
new ThermalSettingsFragment(), TAG_THERMAL).commit();
}

View File

@@ -76,7 +76,6 @@ public class ThermalService extends Service {
private void registerReceiver() {
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_SCREEN_ON);
this.registerReceiver(mIntentReceiver, filter);
}

View File

@@ -37,7 +37,7 @@ import android.widget.Spinner;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceFragment;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.LinearLayoutManager;
@@ -51,7 +51,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ThermalSettingsFragment extends PreferenceFragmentCompat
public class ThermalSettingsFragment extends PreferenceFragment
implements ApplicationsState.Callbacks {
private AllPackagesAdapter mAllPackagesAdapter;

View File

@@ -1,59 +0,0 @@
/*
* Copyright (C) 2018 The OmniROM Project
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.lineageos.settings.thermal;
import android.annotation.TargetApi;
import android.content.Intent;
import android.service.quicksettings.TileService;
@TargetApi(24)
public class ThermalTileService extends TileService {
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public void onTileAdded() {
super.onTileAdded();
}
@Override
public void onTileRemoved() {
super.onTileRemoved();
}
@Override
public void onStartListening() {
super.onStartListening();
}
@Override
public void onStopListening() {
super.onStopListening();
}
@Override
public void onClick() {
super.onClick();
Intent ThermalProfiles = new Intent(this, ThermalActivity.class);
ThermalProfiles.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivityAndCollapse(ThermalProfiles);
}
}

17
pocketmode/Android.mk Normal file
View File

@@ -0,0 +1,17 @@
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := XiaomiPocketMode
LOCAL_CERTIFICATE := platform
LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_PRIVILEGED_MODULE := true
LOCAL_SYSTEM_EXT_MODULE := true
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
include $(BUILD_PACKAGE)

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2016 The CyanogenMod Project
Copyright (C) 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.
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.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.lineageos.pocketmode"
android:versionCode="1"
android:versionName="1.0"
android:sharedUserId="android.uid.system">
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application
android:label="XiaomiPocketMode"
android:defaultToDeviceProtectedStorage="true"
android:directBootAware="true"
android:persistent="true">
<receiver android:name=".BootCompletedReceiver"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<service android:name=".PocketModeService"
android:permission="PocketModeService">
</service>
</application>
</manifest>

View File

@@ -0,0 +1,3 @@
-keep class org.lineageos.pocketmode.* {
*;
}

View File

@@ -0,0 +1,36 @@
/*
* Copyright (C) 2016 The CyanogenMod Project
* 2017 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.
*/
package org.lineageos.pocketmode;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.UserHandle;
import android.util.Log;
public class BootCompletedReceiver extends BroadcastReceiver {
private static final String TAG = "XiaomiPocketMode";
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "Starting");
context.startServiceAsUser(new Intent(context, PocketModeService.class),
UserHandle.CURRENT);
}
}

View File

@@ -0,0 +1,84 @@
/*
* Copyright (C) 2016 The CyanogenMod Project
* 2017 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.
*/
package org.lineageos.pocketmode;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.IBinder;
import android.util.Log;
public class PocketModeService extends Service {
private static final String TAG = "PocketModeService";
private static final boolean DEBUG = false;
private ProximitySensor mProximitySensor;
@Override
public void onCreate() {
if (DEBUG) Log.d(TAG, "Creating service");
mProximitySensor = new ProximitySensor(this);
IntentFilter screenStateFilter = new IntentFilter();
screenStateFilter.addAction(Intent.ACTION_SCREEN_OFF);
screenStateFilter.addAction(Intent.ACTION_USER_PRESENT);
registerReceiver(mScreenStateReceiver, screenStateFilter);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (DEBUG) Log.d(TAG, "Starting service");
return START_STICKY;
}
@Override
public void onDestroy() {
if (DEBUG) Log.d(TAG, "Destroying service");
this.unregisterReceiver(mScreenStateReceiver);
mProximitySensor.disable();
super.onDestroy();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
private void onDeviceUnlocked() {
if (DEBUG) Log.d(TAG, "Device unlocked");
mProximitySensor.disable();
}
private void onDisplayOff() {
if (DEBUG) Log.d(TAG, "Display off");
mProximitySensor.enable();
}
private BroadcastReceiver mScreenStateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_USER_PRESENT)) {
onDeviceUnlocked();
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
onDisplayOff();
}
}
};
}

View File

@@ -0,0 +1,90 @@
/*
* Copyright (C) 2016 The CyanogenMod Project
* 2017-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.
*/
package org.lineageos.pocketmode;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.FileUtils;
import android.util.Log;
import java.io.IOException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class ProximitySensor implements SensorEventListener {
private static final String TAG = "PocketModeProximity";
private static final boolean DEBUG = false;
private static final String FP_PROX_NODE =
"/sys/devices/platform/soc/soc:fingerprint_goodix/proximity_state";
private ExecutorService mExecutorService;
private Context mContext;
private Sensor mSensor;
private SensorManager mSensorManager;
public ProximitySensor(Context context) {
mContext = context;
mSensorManager = mContext.getSystemService(SensorManager.class);
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
mExecutorService = Executors.newSingleThreadExecutor();
}
private Future<?> submit(Runnable runnable) {
return mExecutorService.submit(runnable);
}
@Override
public void onSensorChanged(SensorEvent event) {
setFPProximityState(event.values[0] < mSensor.getMaximumRange());
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
/* Empty */
}
private void setFPProximityState(boolean isNear) {
try {
FileUtils.stringToFile(FP_PROX_NODE, isNear ? "1" : "0");
} catch (IOException e) {
Log.e(TAG, "Failed to write to " + FP_PROX_NODE, e);
}
}
protected void enable() {
if (DEBUG) Log.d(TAG, "Enabling");
submit(() -> {
mSensorManager.registerListener(this, mSensor,
SensorManager.SENSOR_DELAY_NORMAL);
});
}
protected void disable() {
if (DEBUG) Log.d(TAG, "Disabling");
submit(() -> {
mSensorManager.unregisterListener(this, mSensor);
});
// Ensure FP is left enabled
setFPProximityState(/* isNear */ false);
}
}

View File

@@ -1,13 +1,11 @@
cc_library_static {
name: "libperfmgr-ext-xiaomi",
defaults: [
"android.hardware.power-ndk_shared",
],
vendor: true,
srcs: [
"power-mode.cpp",
],
shared_libs: [
"android.hardware.power-V4-ndk",
"libbase",
],
}

View File

@@ -53,7 +53,7 @@
"Name": "GPUMaxFreq",
"Path": "/sys/class/kgsl/kgsl-3d0/devfreq/max_freq",
"Values": [
"999999999",
"710000000",
"342000000"
],
"DefaultIndex": 0,
@@ -213,8 +213,8 @@
"Name": "PMQoSCpuDmaLatency",
"Path": "/dev/cpu_dma_latency",
"Values": [
"2c",
"64"
"44",
"100"
],
"HoldFd": true
},
@@ -356,7 +356,7 @@
"PowerHint": "LAUNCH",
"Node": "PMQoSCpuDmaLatency",
"Duration": 5000,
"Value": "2c"
"Value": "44"
},
{
"PowerHint": "LAUNCH",
@@ -428,7 +428,7 @@
"PowerHint": "AUDIO_LAUNCH",
"Node": "PMQoSCpuDmaLatency",
"Duration": 2000,
"Value": "2c"
"Value": "44"
},
{
"PowerHint": "AUDIO_STREAMING_LOW_LATENCY",
@@ -440,7 +440,7 @@
"PowerHint": "AUDIO_STREAMING_LOW_LATENCY",
"Node": "PMQoSCpuDmaLatency",
"Duration": 0,
"Value": "2c"
"Value": "44"
},
{
"PowerHint": "EXPENSIVE_RENDERING",
@@ -458,7 +458,7 @@
"PowerHint": "EXPENSIVE_RENDERING",
"Node": "GPUMaxFreq",
"Duration": 0,
"Value": "999999999"
"Value": "710000000"
}
]
}

View File

@@ -5,10 +5,8 @@ vendor/bin/adsprpcd
vendor/etc/init/vendor.qti.adsprpc-guestos-service.rc
vendor/lib64/libadsp_default_listener.so
vendor/lib64/libadsprpc.so
vendor/lib64/libfastrpc_utf_stub.so
vendor/lib/libadsp_default_listener.so
vendor/lib/libadsprpc.so
vendor/lib/libfastrpc_utf_stub.so
# ADSP modules
vendor/lib/rfsa/adsp/capi_v2_aptX_Classic.so
@@ -25,6 +23,17 @@ vendor/lib/rfsa/adsp/libsns_device_mode_skel.so
vendor/lib/rfsa/adsp/libsns_low_lat_stream_skel.so
# Audio
vendor/lib64/hw/audio.primary.sdm845.so
vendor/lib64/libacdb-fts.so
vendor/lib64/libacdbrtac.so
vendor/lib64/libadiertac.so
vendor/lib64/libaudcal.so
vendor/lib64/libaudioalsa.so
vendor/lib64/libaudio_log_utils.so
vendor/lib64/libaudioparsers.so
vendor/lib64/libaudioroute_ext.so
vendor/lib64/libcsd-client.so
vendor/lib64/libqtigef.so
vendor/lib/hw/audio.primary.sdm845.so
vendor/lib/vndk/libxlog.so
vendor/lib/libacdb-fts.so
@@ -36,9 +45,19 @@ vendor/lib/libaudioalsa.so
vendor/lib/libaudio_log_utils.so
vendor/lib/libaudioparsers.so
vendor/lib/libaudioroute_ext.so
vendor/lib/libcsd-client.so
vendor/lib/libqtigef.so
# Audio extensions
vendor/lib64/liba2dpoffload.so
vendor/lib64/libbatterylistener.so
vendor/lib64/libcomprcapture.so
vendor/lib64/libexthwplugin.so
vendor/lib64/libhdmiedid.so
vendor/lib64/libhdmipassthru.so
vendor/lib64/libhfp.so
vendor/lib64/libsndmonitor.so
vendor/lib64/libspkrprot.so
vendor/lib/liba2dpoffload.so
vendor/lib/libbatterylistener.so
vendor/lib/libcomprcapture.so
@@ -52,24 +71,39 @@ vendor/lib/libspkrprot.so
# Audio FX modules
system/etc/permissions/audiosphere.xml
system/framework/audiosphere.jar
vendor/lib64/soundfx/libasphere.so
vendor/lib64/soundfx/libdirac.so
vendor/lib64/soundfx/libshoebox.so
vendor/lib/soundfx/libasphere.so
vendor/lib/soundfx/libdirac.so
vendor/lib/soundfx/libshoebox.so
# Bluetooth (A2DP)
vendor/lib64/hw/vendor.qti.hardware.bluetooth_audio@2.0-impl.so
vendor/lib64/hw/vendor.qti.hardware.bluetooth_sar@1.0-impl.so
vendor/lib64/hw/vendor.qti.hardware.btconfigstore@1.0-impl.so
vendor/lib64/btaudio_offload_if.so
vendor/lib64/libbluetooth_audio_session_qti.so
vendor/lib64/vendor.qti.hardware.bluetooth_sar@1.0.so
vendor/lib/hw/vendor.qti.hardware.bluetooth_audio@2.0-impl.so
vendor/lib/hw/vendor.qti.hardware.bluetooth_sar@1.0-impl.so
vendor/lib/hw/vendor.qti.hardware.btconfigstore@1.0-impl.so
vendor/lib/btaudio_offload_if.so
vendor/lib/libbluetooth_audio_session_qti.so
vendor/lib/vendor.qti.hardware.bluetooth_sar@1.0.so
# CDSP
vendor/bin/cdsprpcd
vendor/lib64/libcdsp_default_listener.so
vendor/lib64/libcdsprpc.so
vendor/lib64/libfastrpc_utf_stub.so
vendor/lib64/libsdsprpc.so
vendor/lib64/libsysmon_cdsp_skel.so
vendor/lib64/libmdsprpc.so
vendor/lib/libcdsp_default_listener.so
vendor/lib/libcdsprpc.so
vendor/lib/libfastcrc.so
vendor/lib/libfastrpc_utf_stub.so
vendor/lib/libsdsprpc.so
vendor/lib/libsysmon_cdsp_skel.so
vendor/lib/libmdsprpc.so
@@ -116,6 +150,7 @@ vendor/lib64/libcneoplookup.so
vendor/lib64/libcneqmiutils.so
vendor/lib64/libwms.so
vendor/lib64/libwqe.so
vendor/lib64/libxml.so
vendor/lib64/vendor.qti.data.factory@2.0.so
vendor/lib64/vendor.qti.hardware.data.cne.internal.api@1.0.so
vendor/lib64/vendor.qti.hardware.data.cne.internal.constants@1.0.so
@@ -132,11 +167,21 @@ vendor/lib64/vendor.qti.latency@2.0.so
vendor/bin/hw/vendor.qti.hardware.capabilityconfigstore@1.0-service
vendor/etc/init/vendor.qti.hardware.capabilityconfigstore@1.0-service.rc
vendor/lib64/hw/vendor.qti.hardware.capabilityconfigstore@1.0-impl.so
vendor/lib/hw/vendor.qti.hardware.capabilityconfigstore@1.0-impl.so
# Display (HDR) - from PNX - RKQ1.200906.002
vendor/lib/libhdr_tm.so|1e8a647523db0a09c9587a77f1f7b132a03c2354
vendor/lib64/libhdr_tm.so|7ac38563480eab0583cb440e667a44cfa596167a
# Display (SDM) - from PNX - RKQ1.200906.002
vendor/lib/libdisplayqos.so|7b83c36716bae758c71d34b85401d7d77afa2c23
vendor/lib/libqseed3.so|ea8d3775ab13c9ebfcdc2a02e60f56cc49a9d695
vendor/lib/libsdedrm.so|b11f16f16cdeaecb492b7ff2274cc02bd604bf0f
vendor/lib/libsdm-color.so|a18425c4e29bf76f25145d8f839108886283a45f
vendor/lib/libsdm-diag.so|52c1b843b733165284445b00cb8525063994f502
vendor/lib/libsdm-disp-vndapis.so|8f433d5996f90c584530ed5a6eba504c3b4cc2b1
vendor/lib/libsdmextension.so|872876273741968fda9006853979d9da1accc4fb
vendor/lib/libtinyxml2_1.so|f00b8f6218271d57fd1fb67b192db956e42e66fb
vendor/lib64/libdisplayqos.so|c3d45315871e402053dd1f353e9bde5cbf757277
vendor/lib64/libqseed3.so|f5990f19a99ec5f33b5a262493c4e642a1429f69
vendor/lib64/libsdedrm.so|5113b02d32b886281a790c8c323498195ec780f8
@@ -151,6 +196,14 @@ vendor/bin/hw/vendor.display.color@1.0-service|a9d360976833d863f74df381298de696d
vendor/bin/mm-pp-dpps|e825298dc12603df29c35aa6ad86fd0d0a7646a2
vendor/bin/ppd|8b60669c32f091dd5832579892c91dc3eb0e8130
vendor/etc/init/vendor.display.color@1.0-service.rc|5ad673f879b3685a0e79b5633437e5499cb94f48
vendor/lib/libdisp-aba.so|9271ecfa4d389d99bc592ab2a460eacef7515836
vendor/lib/vendor.display.color@1.0.so|640ab2b9c2f0077634ed74263c5558076d431203
vendor/lib/vendor.display.color@1.1.so|732531bbea59f5c1a90f409350d290607189c47f
vendor/lib/vendor.display.color@1.2.so|f1ea074c629f1fc27000efb44617f7e8386b12d4
vendor/lib/vendor.display.color@1.3.so|1467fbb9cbbb331da846fd2bcc3e644b55723bd5
vendor/lib/vendor.display.color@1.4.so|3b7f6a489f66b2cc8b3e5a467b9fe3f95a59c775
vendor/lib/vendor.display.color@1.5.so|e97e31b9567f9a6f9031063d2356e7391ba719e3
vendor/lib/vendor.display.postproc@1.0.so|251c33b11743f5e24ca220b220da367996f3077b
vendor/lib64/libdisp-aba.so|e76d6756cbb0532bc83ff98a06c4ca02fecdd8fe
vendor/lib64/vendor.display.color@1.0.so|253cd210899ea79133c7b7b9d31429e4a8d43c32
vendor/lib64/vendor.display.color@1.1.so|fe9b373785571bb890db27523b804dc7d4411bca
@@ -160,24 +213,6 @@ vendor/lib64/vendor.display.color@1.4.so|1396673668977af0a8afeaa64f891c3b356f958
vendor/lib64/vendor.display.color@1.5.so|f1c12eb133698917385d48913358eaffd9a10879
vendor/lib64/vendor.display.postproc@1.0.so|e56b66d744dd77bd87afbb30cab558acf15709fb
# Dolby
vendor/bin/hw/vendor.dolby.hardware.dms@2.0-service
vendor/etc/init/vendor.dolby.hardware.dms@2.0-service.rc
vendor/etc/media_codecs_dolby_audio.xml
vendor/etc/vintf/manifest/manifest_vendor.dolby.hardware.dms.xml
vendor/lib/libdapparamstorage.so
vendor/lib/libdeccfg.so
vendor/lib/libstagefright_soft_ac4dec.so
vendor/lib/libstagefright_soft_ddpdec.so
vendor/lib/soundfx/libswdap.so|810d0e266e4a77f06cba72fe8bdde2e1ede4f9f9
vendor/lib/soundfx/libswgamedap.so
vendor/lib/soundfx/libswvqe.so
vendor/lib/vendor.dolby.hardware.dms@2.0.so
vendor/lib64/libdapparamstorage.so
vendor/lib64/libdlbdsservice.so
vendor/lib64/vendor.dolby.hardware.dms@2.0-impl.so
vendor/lib64/vendor.dolby.hardware.dms@2.0.so
# DPM - from lemonadep - TP1A.220624.003
system_ext/bin/dpmd|d158b6ac01005a63fc69a2bd2aa948903d86757c
system_ext/etc/dpm/dpm.conf|95e27da8c989e96c6faea6f0697bce11955b62a5
@@ -194,7 +229,7 @@ system_ext/lib64/libdpmtcm.so|57b6c42d581305d8ef16aa127cd4cd1672d2e7f1
system_ext/priv-app/dpmserviceapp/dpmserviceapp.apk|1850acd0249751c5bcfba2e0bebcbe52c766a79c
vendor/bin/dpmQmiMgr|2da835936abc23f39903e68a63c5e7303edac1e7
vendor/etc/init/dpmQmiMgr.rc|1538743661a5c48c15cd105beaad20f72953885a
vendor/lib64/com.qualcomm.qti.dpm.api@1.0.so;MODULE_SUFFIX=_vendor|3a407eb9cfe4bda97d793d0b671389aee7afe48f
vendor/lib64/com.qualcomm.qti.dpm.api@1.0.so|3a407eb9cfe4bda97d793d0b671389aee7afe48f
vendor/lib64/libdpmqmihal.so|2656dc27e2da38a482d639701647520d259ff50b
# DRM
@@ -216,51 +251,71 @@ vendor/lib64/libspl.so
vendor/lib64/libssd.so
vendor/lib64/libStDrvInt.so
vendor/lib64/libtzdrmgenprov.so
vendor/lib/libcppf.so
vendor/lib/libdrmfs.so
vendor/lib/libdrmtime.so
vendor/lib/libGPreqcancel.so
vendor/lib/libGPreqcancel_svc.so
vendor/lib/libqisl.so
vendor/lib/libQSEEComAPI.so
vendor/lib/librpmb.so
vendor/lib/libSecureUILib.so
vendor/lib/libsecureui.so
vendor/lib/libsecureui_svcsock.so
vendor/lib/libspl.so
vendor/lib/libssd.so
vendor/lib/libStDrvInt.so
vendor/lib/libtzdrmgenprov.so
# ESE
vendor/bin/hw/vendor.qti.esepowermanager@1.0-service
vendor/etc/init/vendor.qti.esepowermanager@1.0-service.rc
vendor/lib64/hw/vendor.qti.esepowermanager@1.0-impl.so
vendor/lib64/vendor.qti.esepowermanager@1.0.so
vendor/lib/hw/vendor.qti.esepowermanager@1.0-impl.so
vendor/lib/vendor.qti.esepowermanager@1.0.so
# Gatekeeper
vendor/bin/hw/android.hardware.gatekeeper@1.0-service-qti
vendor/etc/init/android.hardware.gatekeeper@1.0-service-qti.rc
vendor/lib64/hw/android.hardware.gatekeeper@1.0-impl-qti.so
vendor/lib/hw/android.hardware.gatekeeper@1.0-impl-qti.so
# Graphics (Adreno) - from LA.UM.9.3.r1-02700-sdm845.0
vendor/lib/egl/eglSubDriverAndroid.so|de8684b7f60397dde4f7b334074e64fc22bfe529
vendor/lib/egl/libEGL_adreno.so;SYMLINK=vendor/lib/libEGL_adreno.so|e73369c2ec0751d6912518de205106d4ee19291c
vendor/lib/egl/libGLESv1_CM_adreno.so|715f3463528f1e74ffa02627ee5916a09e0748f5
vendor/lib/egl/libGLESv2_adreno.so;SYMLINK=vendor/lib/libGLESv2_adreno.so|e117aacc5e112209a3f69f2dc49496f4eed3f104
vendor/lib/egl/libq3dtools_adreno.so;SYMLINK=vendor/lib/libq3dtools_adreno.so|9ec9c053592e58be935e8ae5e0a9d362c101773a
vendor/lib/egl/libq3dtools_esx.so|f7136820d0221d380ccd8a79c4d72ebe70daba7d
vendor/lib/libC2D2.so|91f015cad79024fdbb6a5603cce48693e58a4510
vendor/lib/libCB.so|9fdab0a0d88a3a6b8ad328101b39fb7a354b4e02
vendor/lib/libOpenCL.so|6bf59a4c37d3c744448380408f238b87b481b7b5
vendor/lib/libVkLayer_q3dtools.so|b28f8ce0300626dd703cf87972444f7b7bccd1fd
vendor/lib/libadreno_utils.so|6976022499301813c46c57bba63d7c2bb7f04732
vendor/lib/libc2d30_bltlib.so|71703a543760e40ba26cde07c2d41416cc9331ec
vendor/lib/libgpudataproducer.so|7dd0b44a49747f79d74b6ecabe168f8b5128a1a8
vendor/lib/libgsl.so|3290f0f64edbd499cfc2ae00cd817cd94a85f7e0
vendor/lib/libllvm-glnext.so|89591f95f2321b6ae70d91609efcae3761beb00c
vendor/lib/libllvm-qcom.so|80b415741f1ac890cff1a4756b1c1fe84edc5747
vendor/lib64/egl/eglSubDriverAndroid.so|d6dc70f08a0e68e897c2c8a956a8c2f3e036c540
vendor/lib64/egl/libEGL_adreno.so;SYMLINK=vendor/lib64/libEGL_adreno.so|5d517d4b294073bf2773b8223a59c3b4827fd26c
vendor/lib64/egl/libGLESv1_CM_adreno.so|0a2a648ca2dcd887ea62860bbfa2ef397f01d42d
vendor/lib64/egl/libGLESv2_adreno.so;SYMLINK=vendor/lib64/libGLESv2_adreno.so|366d1e8188e583ae6a923a37f9318b38ad88c7ff
vendor/lib64/egl/libq3dtools_adreno.so;SYMLINK=vendor/lib64/libq3dtools_adreno.so|189b9c3d400c6a98c87582b8df0910530cba6d44
vendor/lib64/egl/libq3dtools_esx.so|2799b3480cd2c08532ab58b20fe7829e5628a1ac
vendor/lib64/libC2D2.so|175115cc36fd471f9eb83af76be21b5f602b9460
vendor/lib64/libCB.so|e41ce1d944691107ef081b1d618a4c7d82680416
vendor/lib64/libOpenCL.so|ee804e05a12dffd74f98a426d00039a8cfcb5662
vendor/lib64/libVkLayer_q3dtools.so|b5a0185f857bb35eb200bf3964fcf7b368dac1f2
vendor/lib64/libadreno_utils.so|50916234ddd7ec94540c18747f9c0e80bae29b84
vendor/lib64/libc2d30_bltlib.so|b7c7bbc41f317833927d9bf75fbf9b411dd63a96
vendor/lib64/libgpudataproducer.so|b6084218f08ca019b4121d5c4346c8cf56d58535
vendor/lib64/libgsl.so|b22d3ff79e080a834e67e2103f8b90c6a5c10a2d
vendor/lib64/libllvm-glnext.so|696e4a70a6bed9eb9efb8f76ee463f00ca3b4da6
vendor/lib64/libllvm-qcom.so|79164daddbfb3c9c7b31933d7dfe144ddf2c858d
# Graphics (Adreno) - from PNX - RKQ1.200906.002
vendor/lib/egl/eglSubDriverAndroid.so|cc5acc02889131a29b624b4c19ab90b8273f393d
vendor/lib/egl/libEGL_adreno.so;SYMLINK=vendor/lib/libEGL_adreno.so|ae30bbf20dc911308407da99cb263e8de6b2eecb
vendor/lib/egl/libGLESv1_CM_adreno.so|b94ba8188a14dd262abac1b8d667bce3319cf344
vendor/lib/egl/libGLESv2_adreno.so;SYMLINK=vendor/lib/libGLESv2_adreno.so|fc0454b2c9d9997f9b7f0b320482fac6db5cab2c
vendor/lib/egl/libq3dtools_adreno.so;SYMLINK=vendor/lib/libq3dtools_adreno.so|2ac81ee05dd4afb34ef6e56342ee1757f2db1409
vendor/lib/egl/libq3dtools_esx.so|86bab4e474d680accbc76582c9905fe6824f702d
vendor/lib/libC2D2.so|267be7bd6768fa3b9bed2b9a42062cb5a77ca59b
vendor/lib/libCB.so|c4c8fbcb73a48aa1dc14a453b47ed7f1223bb933
vendor/lib/libOpenCL.so|cbc00e31eedea81f43cc7358181a794503b867b1
vendor/lib/libVkLayer_q3dtools.so|a52a6eba8415169a5895b4615f879f966f81d5e2
vendor/lib/libadreno_utils.so|0796bc7ce75dbad3d85e52d3aacd4ba8b59fbaf3
vendor/lib/libc2d30_bltlib.so|950c705e6dbc02b646a0129e66e94e192f5cd87f
vendor/lib/libgpudataproducer.so|c8623c9b2e8f330e7f5e77e5d435677719bf5688
vendor/lib/libgsl.so|777dab024670cceb8c60054cfadcccef33151640
vendor/lib/libllvm-glnext.so|a20bdbe458c401e9c1726f475f50fb52f9f6fa12
vendor/lib/libllvm-qcom.so|063963a7d6dfa90c6fa2cbca55943b23a870e02a
vendor/lib/libpvr.so|9d7e50e1deb16ef03e05141e1babcc49160f840c
vendor/lib64/egl/eglSubDriverAndroid.so|cd1cb25bfd16f15e0d7c6495493359838a1b6e96
vendor/lib64/egl/libEGL_adreno.so;SYMLINK=vendor/lib64/libEGL_adreno.so|96a44c8e3c18c534eb1f333956541955e9f5bd7e
vendor/lib64/egl/libGLESv1_CM_adreno.so|e2e8a079e680bf92f686fb79146651c158f6e130
vendor/lib64/egl/libGLESv2_adreno.so;SYMLINK=vendor/lib64/libGLESv2_adreno.so|ba9e5618266e50a4d2ef723756e08979e0b4d12b
vendor/lib64/egl/libq3dtools_adreno.so;SYMLINK=vendor/lib64/libq3dtools_adreno.so|046be35d03cbea2c73a1339eefa1bffc87ab6ebc
vendor/lib64/egl/libq3dtools_esx.so|fe5b3f2dabe3b927544d109ac7d7926d8e3275d6
vendor/lib64/libC2D2.so|6fb775e393ce7161b30e3a71fa0f320e86374425
vendor/lib64/libCB.so|bfb47fec90627dd68df536dbb4734453ebae1cf6
vendor/lib64/libOpenCL.so|4eefe5848a02894166a337abbbc5baddb72c46fb
vendor/lib64/libVkLayer_q3dtools.so|4fc15fd2c49e32b2151fb00034d389d45cf240c1
vendor/lib64/libadreno_utils.so|010d7079615cf09413640521ed2db53e91721437
vendor/lib64/libc2d30_bltlib.so|aa37c84cf6cc1e1ac670b433c97d0bf41308f9ca
vendor/lib64/libgpudataproducer.so|7d3c8de131f4d64a8ec82840e097f78f8b9ce004
vendor/lib64/libgsl.so|edcab73069716f117394de07be423331631f9366
vendor/lib64/libllvm-glnext.so|c11e3f0f5b6d21d1badcca3bc8cac947c781deeb
vendor/lib64/libllvm-qcom.so|a80c58c8f316af15a7a2d089536f824836f6c056
vendor/lib64/libpvr.so|ac4805ba7a7c78570a60340d01248d258046e456
# Graphics (Adreno firmware)
vendor/firmware/a630_gmu.bin
@@ -271,9 +326,9 @@ vendor/firmware/a630_zap.b02
vendor/firmware/a630_zap.elf
vendor/firmware/a630_zap.mdt
# Graphics (Vulkan) - from LA.UM.9.3.r1-02700-sdm845.0
vendor/lib/hw/vulkan.adreno.so|dfa5eaa05520e4728ee58959c706974eca2432d2
vendor/lib64/hw/vulkan.adreno.so|7fe53628fbaf5a4c866fd82c6254021d670c7d83
# Graphics (Vulkan) - from PNX - RKQ1.200906.002
vendor/lib/hw/vulkan.adreno.so|b2680e5b899d75fa3f82b457635e15c6998202a4
vendor/lib64/hw/vulkan.adreno.so|fcc99045aaf7eed0925ac2b64ff2af085212954a
# Hotword enrollment
product/priv-app/HotwordEnrollmentOKGoogleWCD9340/HotwordEnrollmentOKGoogleWCD9340.apk|1cbc6ae6490cfc6e16619773809b9afcc9998f91
@@ -314,12 +369,12 @@ vendor/etc/init/ims_rtp_daemon.rc
vendor/etc/init/imsdatadaemon.rc
vendor/etc/init/imsqmidaemon.rc
vendor/etc/init/imsrcsd.rc
vendor/lib64/com.qualcomm.qti.imscmservice@1.0.so;MODULE_SUFFIX=_vendor
vendor/lib64/com.qualcomm.qti.imscmservice@2.0.so;MODULE_SUFFIX=_vendor
vendor/lib64/com.qualcomm.qti.imscmservice@2.1.so;MODULE_SUFFIX=_vendor
vendor/lib64/com.qualcomm.qti.imscmservice@2.2.so;MODULE_SUFFIX=_vendor
vendor/lib64/com.qualcomm.qti.uceservice@2.0.so;MODULE_SUFFIX=_vendor
vendor/lib64/com.qualcomm.qti.uceservice@2.1.so;MODULE_SUFFIX=_vendor
vendor/lib64/com.qualcomm.qti.imscmservice@1.0.so
vendor/lib64/com.qualcomm.qti.imscmservice@2.0.so
vendor/lib64/com.qualcomm.qti.imscmservice@2.1.so
vendor/lib64/com.qualcomm.qti.imscmservice@2.2.so
vendor/lib64/com.qualcomm.qti.uceservice@2.0.so
vendor/lib64/com.qualcomm.qti.uceservice@2.1.so
vendor/lib64/librcc.so
vendor/lib64/lib-imscmservice.so
vendor/lib64/lib-imsdpl.so
@@ -333,18 +388,18 @@ vendor/lib64/lib-rtpcore.so
vendor/lib64/lib-rtpsl.so
vendor/lib64/lib-siputility.so
vendor/lib64/lib-uceservice.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.0.so;MODULE_SUFFIX=_vendor
vendor/lib64/vendor.qti.hardware.radio.ims@1.1.so;MODULE_SUFFIX=_vendor
vendor/lib64/vendor.qti.hardware.radio.ims@1.2.so;MODULE_SUFFIX=_vendor
vendor/lib64/vendor.qti.hardware.radio.ims@1.3.so;MODULE_SUFFIX=_vendor
vendor/lib64/vendor.qti.hardware.radio.ims@1.4.so;MODULE_SUFFIX=_vendor
vendor/lib64/vendor.qti.hardware.radio.ims@1.0.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.1.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.2.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.3.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.4.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.5.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.6.so
vendor/lib64/vendor.qti.ims.callinfo@1.0.so;MODULE_SUFFIX=_vendor
vendor/lib64/vendor.qti.ims.rcsconfig@1.0.so;MODULE_SUFFIX=_vendor
vendor/lib64/vendor.qti.imsrtpservice@2.0.so;MODULE_SUFFIX=_vendor
vendor/lib64/vendor.qti.ims.callinfo@1.0.so
vendor/lib64/vendor.qti.ims.rcsconfig@1.0.so
vendor/lib64/vendor.qti.imsrtpservice@2.0.so
vendor/lib64/vendor.qti.imsrtpservice@2.1-service-Impl.so
vendor/lib64/vendor.qti.imsrtpservice@2.1.so;MODULE_SUFFIX=_vendor
vendor/lib64/vendor.qti.imsrtpservice@2.1.so
# IPA firmware
vendor/etc/init/ipa_fws.rc
@@ -360,12 +415,18 @@ vendor/firmware/ipa_fws.mdt
vendor/bin/msm_irqbalance
vendor/etc/msm_irqbalance.conf
# Keymaster
vendor/lib64/libkeymasterdeviceutils.so
vendor/lib64/libkeymasterprovision.so
vendor/lib64/libkeymasterutils.so
# Listen
vendor/lib64/hw/sound_trigger.primary.sdm845.so|36f4868c560deaffc07e661893e145167d707fbe
vendor/lib64/libcapiv2svacnn.so
vendor/lib64/libcapiv2vop.so
vendor/lib64/libgcs-calwrapper.so
vendor/lib64/libgcs-ipc.so
vendor/lib64/libgcs-osal.so
vendor/lib64/libgcs.so
vendor/lib64/libjnihelper.so
vendor/lib64/liblistenjni.so
vendor/lib64/liblistensoundmodel2.so
vendor/lib64/libmulawdec.so
vendor/lib/hw/sound_trigger.primary.sdm845.so|5454d56f9e19a8bcc00c1f3cd0bf305406c125a5
vendor/lib/libadpcmdec.so
vendor/lib/libcapiv2svacnn.so
@@ -374,6 +435,7 @@ vendor/lib/libgcs-calwrapper.so
vendor/lib/libgcs-ipc.so
vendor/lib/libgcs-osal.so
vendor/lib/libgcs.so
vendor/lib/libjnihelper.so
vendor/lib/liblistenjni.so
vendor/lib/liblistensoundmodel2.so
vendor/lib/libmulawdec.so
@@ -395,14 +457,37 @@ vendor/lib64/unnhal-acc-hvx.so
vendor/lib/rfsa/adsp/libhexagon_nn_skel.so
# OMX - from PNX - RKQ1.200906.002
vendor/lib/libOmxAacDec.so|3d90cded7de2423503025d115e2788e0eff7390f
vendor/lib/libOmxAlacDec.so|0f0e8be4b1558fb7ab87c3b8dfa7f7a2cf33fe75
vendor/lib/libOmxAmrDec.so|942bb36c76ff125849b947acd1dbb8edcfee8b16
vendor/lib/libOmxAmrwbplusDec.so|6869d09e4499824a476d3b036e025b5d70a83c70
vendor/lib/libOmxApeDec.so|8de514dddfbd5a09f740cecbaf73bfb8c290ca9a
vendor/lib/libOmxDsdDec.so|5a58c8b54578c6c7520666df4040a422fea67df9
vendor/lib/libOmxEvrcDec.so|58d55a09798ae13c90829c7ced2e7fee1c61d8b1
vendor/lib/libOmxG711Dec.so|254245293c12e4d32217b0704bff5f676f4bb5de
vendor/lib/libOmxQcelp13Dec.so|6c55114663ba69f2c2a7e6c69989fc79d67977b3
vendor/lib/libOmxVideoDSMode.so|5862b9d707ca00cd87b70a7f581df49fa3304d2c
vendor/lib/libOmxVpp.so|7a9a96445b55f28013ea8f4ed767c7e245420c4f
vendor/lib/libOmxWmaDec.so|eab25fd58910bbeb57812c75fd3c5511c60fa592
vendor/lib/libdsd2pcm.so|427be2997fcd72e94c33d08b2cf1fde5bf969fd4
vendor/lib64/libOmxAacDec.so|98b894101c87beb61f0f1e5a9e3c6ea430441bdd
vendor/lib64/libOmxAlacDec.so|3298ac6565f5362e7ed5c4196cfacc1c8811fa72
vendor/lib64/libOmxAmrDec.so|f5302be684af636aa4b3101f268856fc7706a2a0
vendor/lib64/libOmxAmrwbplusDec.so|a98845715e128e6c2649289988e4ff4de1ef9f8b
vendor/lib64/libOmxApeDec.so|61416c5ed237a741e524b36c2b5c58a067896e9b
vendor/lib64/libOmxEvrcDec.so|e4d98d61ad8588956b7f4f937dd720164d584f7e
vendor/lib64/libOmxG711Dec.so|53675a26d5386c868127304c6dfe9dd130f106f8
vendor/lib64/libOmxQcelp13Dec.so|65952f3680f9865ea601de764037637d6ee8c990
vendor/lib64/libOmxVpp.so|a87440c7838b6f03726d97a4a52b695bb4c6e8f8
vendor/lib64/libOmxWmaDec.so|7b2a714a74fea03a403a7d0edef61db2f70d7d4e
# Peripheral manager
vendor/bin/pm-proxy
vendor/bin/pm-service
vendor/lib64/libperipheral_client.so
vendor/lib64/libspcom.so
vendor/lib/libperipheral_client.so
vendor/lib/libspcom.so
# Power-off alarm - from caymanslm - SKQ1.211103.001
product/app/PowerOffAlarm/PowerOffAlarm.apk:system_ext/app/PowerOffAlarm/PowerOffAlarm.apk|f0a86fc11b38c059912303857bc4c79155430bcc
@@ -421,6 +506,7 @@ vendor/lib64/libdiag.so
vendor/lib64/libdsi_netctrl.so
vendor/lib64/libdsutils.so
vendor/lib64/libidl.so
vendor/lib64/libqcci_legacy.so
vendor/lib64/libqcmaputils.so
vendor/lib64/libqdi.so
vendor/lib64/libqdp.so
@@ -434,9 +520,13 @@ vendor/lib64/libqmi_encdec.so
vendor/lib64/libqminvapi.so
vendor/lib64/libqmiservices.so
vendor/lib/libdiag.so
vendor/lib/libdsi_netctrl.so
vendor/lib/libdsutils.so
vendor/lib/libidl.so
vendor/lib/libqcci_legacy.so
vendor/lib/libqcmaputils.so
vendor/lib/libqdi.so
vendor/lib/libqdp.so
vendor/lib/libqmi.so
vendor/lib/libqmi_cci.so
vendor/lib/libqmi_client_helper.so
@@ -494,7 +584,6 @@ vendor/lib64/libril-qcril-hook-oem.so
vendor/lib64/librilqmiservices.so
vendor/lib64/libsettings.so
vendor/lib64/libsystem_health_mon.so
vendor/lib64/libxml.so
vendor/lib64/qcrild_librilutils.so
vendor/lib64/qtibus.so
vendor/lib64/qtimutex.so
@@ -513,7 +602,26 @@ vendor/lib64/vendor.qti.hardware.radio.uim@1.2.so
vendor/lib64/vendor.qti.hardware.radio.uim_remote_client@1.0.so
vendor/lib64/vendor.qti.hardware.radio.uim_remote_client@1.1.so
vendor/lib64/vendor.qti.hardware.radio.uim_remote_server@1.0.so
vendor/lib/libconfigdb.so
vendor/lib/liblqe.so
vendor/lib/libmdmdetect.so
vendor/lib/libnetmgr.so
vendor/lib/libnetmgr_common.so
vendor/lib/libnetmgr_nr_fusion.so
vendor/lib/libnetmgr_rmnet_ext.so
vendor/lib/libpdmapper.so
vendor/lib/libpdnotifier.so
vendor/lib/libqcrilFramework.so
vendor/lib/libqrtr.so
vendor/lib/libqsocket.so
vendor/lib/libril-qc-ltedirectdisc.so
vendor/lib/libril-qc-radioconfig.so
vendor/lib/libril-qcril-hook-oem.so
vendor/lib/librilqmiservices.so
vendor/lib/libsettings.so
vendor/lib/libsystem_health_mon.so
vendor/lib/qcrild_librilutils.so
vendor/lib/qtimutex.so
vendor/radio/qcril_database/qcril.db
vendor/radio/qcril_database/upgrade/0_initial.sql
vendor/radio/qcril_database/upgrade/1_version_intro.sql
@@ -533,18 +641,23 @@ vendor/lib64/libsensorcal.so
vendor/lib64/libsensorslog.so
vendor/lib64/libssc.so
vendor/lib64/libssc_default_listener.so
vendor/lib64/libssccalapi.so
vendor/lib64/libsns_device_mode_stub.so
vendor/lib64/libsns_fastRPC_util.so
vendor/lib64/libsns_low_lat_stream_stub.so
vendor/lib64/libsnsdiaglog.so
vendor/lib64/vendor.qti.hardware.sensorscalibrate@1.0.so
vendor/lib/hw/vendor.qti.hardware.sensorscalibrate@1.0-impl.so
vendor/lib/libsensorcal.so
vendor/lib/libsensorslog.so
vendor/lib/libssc.so
vendor/lib/libssc_default_listener.so
vendor/lib/libssccalapi.so
vendor/lib/libsns_device_mode_stub.so
vendor/lib/libsns_fastRPC_util.so
vendor/lib/libsns_low_lat_stream_stub.so
vendor/lib/libsnsdiaglog.so
vendor/lib/vendor.qti.hardware.sensorscalibrate@1.0.so
# Snapdragon Computer Vision Engine
vendor/etc/scve/facereco/gModel.dat
@@ -607,17 +720,24 @@ vendor/lib64/libGPQTEEC_vendor.so
vendor/lib64/libGPTEE_vendor.so
vendor/lib64/libQTEEConnector_vendor.so
vendor/lib64/vendor.qti.hardware.qteeconnector@1.0.so
vendor/lib/hw/vendor.qti.hardware.qteeconnector@1.0-impl.so
vendor/lib/libGPQTEEC_vendor.so
vendor/lib/libGPTEE_vendor.so
vendor/lib/libQTEEConnector_vendor.so
vendor/lib/vendor.qti.hardware.qteeconnector@1.0.so
# Trusted User Interface
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
vendor/lib/vendor.qti.hardware.tui_comm@1.0.so
# Widevine DRM
vendor/bin/hw/android.hardware.drm@1.2-service.widevine
vendor/etc/init/android.hardware.drm@1.2-service.widevine.rc
vendor/lib64/mediadrm/libwvdrmengine.so
vendor/lib64/libwvhidl.so
vendor/lib/mediadrm/libwvdrmengine.so
# VPP - from PNX - RKQ1.200906.002
vendor/bin/vppservice|555301b19a86374900159423c88efd7bd9cea2f9
@@ -638,27 +758,27 @@ vendor/lib64/vendor.qti.hardware.vpp@1.2.so|ca1906012d0ab6dc9048aa49703833512308
vendor/bin/cnss-daemon
vendor/bin/nv_mac
# WiFi Display (system) - from lemonadep - UKQ1.230924.001
system/framework/WfdCommon.jar;BOOT_JAR|a661c494d064b79a3f71579592411fada1ea232f
system_ext/bin/wfdservice|400d123df78c1ed2e9643ff3ddf5ee5748f954fe|8a0be1b9478adf4b44a1ba34f045b1871f64ac5c
# WiFi Display (system) - from KB2001 14.0.0.81(EX01)
system/framework/WfdCommon.jar|a661c494d064b79a3f71579592411fada1ea232f
system_ext/bin/wfdservice|400d123df78c1ed2e9643ff3ddf5ee5748f954fe
system_ext/etc/init/wfdservice.rc|907def8565d8f91f531ca7dfad880af05d540b0c
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/libmmosal.so|e806f8040b4e59c6e08e437734a2176090a94ae3
system_ext/lib/libmmparser_lite.so|61bbc90e3a26a64007eb9b0871b43cce72ee6b7e
system_ext/lib/libmmparser_lite.so|873d818fbfa0ce01a1f9cd951c1fba32d4159735
system_ext/lib/libmmrtpdecoder.so|4fc76315f11ff5fe416f36b66c9422ef05eae182
system_ext/lib/libmmrtpencoder.so|0fa2096eec29eec395f6bd88d7d1049a127e090c
system_ext/lib/libwfdavenhancements.so|581db496334d2adb76e6c6af67620f49ca24eabd
system_ext/lib/libwfdclient.so|a9639d9f269880700bac6fc06e8302702fb0ab32
system_ext/lib/libwfdcommonutils.so|b738182e77f3e7faf72460f09ebdfca7de5e0c23
system_ext/lib/libwfdconfigutils.so|a52a96e2699f3a5ad79838e356cd90838e26218b
system_ext/lib/libwfdconfigutils.so|df70b2da2b8aff916a1c2f6e7365d87cf1c4ffdf
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/libwfdmmsrc_system.so|0adfc69a5560158f3a6803ba720acc795d6d05dc
system_ext/lib/libwfdrtsp.so|afd69963c2bd59bdb3ff23e01710c61ed90c5d87
system_ext/lib/libwfdservice.so|07e6d0e00393a8c068f75b46531d2e75fdaebde2|679e2cb2b25374a57dfd860286da96abeee04f36
system_ext/lib/libwfdservice.so|07e6d0e00393a8c068f75b46531d2e75fdaebde2
system_ext/lib/libwfdsinksm.so|875171cc6ae534dd941eec1c87b78d5961e19c06
system_ext/lib/libwfduibcinterface.so|e90fa4920b010bd6ef2bd78c2d2644cbd0fcbffa
system_ext/lib/libwfduibcsink.so|91af548471c395a958e6155dd9be19cccbe482d3
@@ -667,16 +787,16 @@ 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/libmmosal.so|8488b27e6a9cda05c68181e8bf20afa7ba345222
system_ext/lib64/libmmparser_lite.so|59d550a52773722f1fe515bd5fba86918cf6f54e
system_ext/lib64/libmmparser_lite.so|afd7b441e1bce732c14f5f8f49821d43bb2ee791
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|3b2d91fe7efefd81a0b5cdff59b9918c063fa7a9
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|3112f3492eb52db39ca1d091d9d25f64d625e670
system_ext/lib64/libwfdnative.so|6d6dad5e631bc4d63463f608c47f3f9e5493944f
system_ext/lib64/libwfdrtsp.so|8181e44d7c1f722218fabd8fe3bf788454a3f586
system_ext/lib64/libwfdsinksm.so|c4d68ecbe0accd24296c18444e5a82b6a24be8d8
system_ext/lib64/libwfduibcinterface.so|dca32fe063bdba7ce3b131b16cf112b793ae03ad
@@ -695,7 +815,7 @@ vendor/etc/seccomp_policy/wfdhdcphalservice.policy|a489ab323be4be2df3de9f84a6b5e
vendor/etc/seccomp_policy/wfdvndservice.policy|b46f0c22a1f9b65c6750205e161c0a3f84ac716b
vendor/etc/seccomp_policy/wifidisplayhalservice.policy|f113f27e0e301a18baf0ade08c23071a27c7dc52
vendor/lib/libFileMux_proprietary.so|e59edd4604a7c73147118161cab5b7ac6bb16c82
vendor/lib/libmmosal.so;MODULE_SUFFIX=_vendor|57185feced72009af2df1b09117702c9fae7182b
vendor/lib/libmmosal.so|57185feced72009af2df1b09117702c9fae7182b
vendor/lib/libmmrtpdecoder_proprietary.so|9232f505ea8f0c1e9f81a049c583fba32a450d73
vendor/lib/libmmrtpencoder_proprietary.so|d8386b78c976d94867455c67dd10d63e8a343363
vendor/lib/libwfdcodecv4l2_proprietary.so|70a2900804160bc53bb19c11e81278ffde0c5fee
@@ -718,8 +838,9 @@ vendor/lib/libwfduibcsinkinterface_proprietary.so|64b802f12ffb30418a072d0ebf3c26
vendor/lib/libwfduibcsrc_proprietary.so|b78df6ab7acb850f2adb875ccecb1a3c3539f4d2
vendor/lib/libwfduibcsrcinterface_proprietary.so|91837ba6b6692e1d553ece3aa4469dd64f164a04
vendor/lib/libwfdutils_proprietary.so|cae4c266704da4ce15b59c13f57ccf8f1391b699
vendor/lib/vendor.qti.hardware.wifidisplaysession@1.0.so;MODULE_SUFFIX=_vendor|fdba1b3c11ace4b0415be4e5944cdb288cd35f58
vendor/lib/vendor.qti.hardware.wifidisplaysession@1.0.so|fdba1b3c11ace4b0415be4e5944cdb288cd35f58
vendor/lib/vendor.qti.hardware.wifidisplaysessionl@1.0-halimpl.so|044c6cfd4bc603e4aa372ab1a3d287a8d8e5fc48
vendor/lib64/libwfdhdcpcp.so|ba43f54ee4e34562b31c9595d2ad0639033e8fdc
# WiFi Display (vendor) - from lemonadep - TP1A.220624.003
vendor/etc/wfdconfig.xml|4f863ac9a71bafff8afc14e8fab26af979bbb1d6

View File

@@ -1,14 +0,0 @@
//
// Copyright (C) 2025 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
cc_library_static {
name: "librecovery_updater_xiaomi",
include_dirs: [
"bootable/deprecated-ota/edify/include",
"bootable/recovery",
"bootable/recovery/otautil/include",
],
srcs: ["recovery_updater.cpp"],
}

11
recovery/Android.mk Normal file
View File

@@ -0,0 +1,11 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_C_INCLUDES := \
bootable/recovery \
bootable/recovery/edify/include \
bootable/recovery/otautil/include
LOCAL_SRC_FILES := recovery_updater.cpp
LOCAL_MODULE := librecovery_updater_xiaomi
include $(BUILD_STATIC_LIBRARY)

View File

@@ -1,6 +1,6 @@
# Copyright (C) 2009 The Android Open Source Project
# Copyright (c) 2011, The Linux Foundation. All rights reserved.
# Copyright (C) 2017-2023 The LineageOS Project
# Copyright (C) 2017-2024 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.
@@ -17,6 +17,13 @@
import common
import re
def FullOTA_InstallBegin(info):
AddImage(info, "RADIO", "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)
return
@@ -33,8 +40,8 @@ def IncrementalOTA_Assertions(info):
AddTrustZoneAssertion(info, info.target_zip)
return
def AddImage(info, basename, dest):
path = "IMAGES/" + basename
def AddImage(info, dir, basename, dest):
path = dir + "/" + basename
if path not in info.input_zip.namelist():
return
@@ -44,8 +51,8 @@ def AddImage(info, basename, dest):
info.script.AppendExtra('package_extract_file("%s", "%s");' % (basename, dest))
def OTA_InstallEnd(info):
AddImage(info, "dtbo.img", "/dev/block/bootdevice/by-name/dtbo")
AddImage(info, "vbmeta.img", "/dev/block/bootdevice/by-name/vbmeta")
AddImage(info, "IMAGES", "dtbo.img", "/dev/block/bootdevice/by-name/dtbo")
AddImage(info, "IMAGES", "vbmeta.img", "/dev/block/bootdevice/by-name/vbmeta")
return
def AddTrustZoneAssertion(info, input_zip):

View File

@@ -1,14 +0,0 @@
cc_library_shared {
name: "RemovePackages",
overrides: [
"arcore",
"GoogleTTS",
"Photos",
"SoundAmplifierPrebuilt",
"SwitchAccessPrebuilt",
"talkback",
"Tycho",
"VoiceAccessPrebuilt",
],
compile_multilib: "64",
}

View File

@@ -0,0 +1,27 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := RemovePackages
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_TAGS := optional
LOCAL_OVERRIDES_PACKAGES := \
AdaptiveVPNPrebuilt-10307 \
AiWallpapers \
arcore-1.42 \
Backgrounds \
Chrome \
GoogleTTS \
PixelLiveWallpaperPrebuilt \
PixelWallpapers2024 \
ScribePrebuilt \
SoundAmplifierPrebuilt \
SwitchAccessPrebuilt \
talkback \
Photos \
Tycho \
VoiceAccessPrebuilt
LOCAL_UNINSTALLABLE_MODULE := true
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_SRC_FILES := /dev/null
include $(BUILD_PREBUILT)

74
rootdir/Android.mk Normal file
View File

@@ -0,0 +1,74 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := fstab.zram
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/fstab.zram
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.early_boot.sh
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.qcom.early_boot.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.post_boot.sh
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.qcom.post_boot.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.qcom.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.power.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.qcom.power.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.recovery.qcom.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.recovery.qcom.rc
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.sh
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.qcom.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := ueventd.qcom.rc
LOCAL_MODULE_STEM := ueventd.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/ueventd.qcom.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.sensors.sh
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.qcom.sensors.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)

View File

@@ -47,6 +47,3 @@ fi
misc_link=$(ls -l /dev/block/bootdevice/by-name/misc)
real_path=${misc_link##*>}
setprop persist.vendor.mmi.misc_dev_path $real_path
echo 2 > /proc/irq/7/smp_affinity_list # msm_drm
echo 1 > /proc/irq/493/smp_affinity_list # kgsl-3d0

View File

@@ -132,7 +132,6 @@ on property:init.svc.vendor.charger=running
mount tmpfs tmpfs /data
start vendor.thermal-engine
setprop vendor.usb.controller a600000.dwc3
setprop sys.usb.configfs 1
on enable-low-power
# Set the default IRQ affinity to the silver cluster.
@@ -241,7 +240,7 @@ on enable-low-power
write /sys/devices/platform/soc/${ro.boot.bootdevice}/clkgate_enable 1
write /sys/devices/platform/soc/${ro.boot.bootdevice}/hibern8_on_idle_enable 1
write /proc/sys/vm/swappiness 60
write /proc/sys/vm/swappiness 100
write /proc/sys/vm/watermark_scale_factor 1
# Enable PowerHAL hint processing

View File

@@ -614,6 +614,14 @@ service chre /vendor/bin/chre
socket chre seqpacket 0660 root system
shutdown critical
# Set GPU OpenGL ES version
on property:vendor.opengles.version=*
setprop ro.opengles.version ${vendor.opengles.version}
# Set gpu available frequencies property
on property:vendor.gpu.available_frequencies=*
setprop ro.vendor.gpu.available_frequencies ${vendor.gpu.available_frequencies}
service vendor.audio-hal /vendor/bin/hw/android.hardware.audio.service
override
class hal
@@ -703,7 +711,3 @@ on property:init.svc.vendor.hwcomposer-2-3=running
on property:init.svc.vendor.hwcomposer-2-3=restarting
stop ppd
on property:init.svc.statsd=running
# Stop trying to kill my device after 3 days ugh
stop statsd

158
sdm845.mk
View File

@@ -1,5 +1,5 @@
#
# Copyright (C) 2018-2025 The LineageOS Project
# Copyright (C) 2018-2024 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
@@ -19,8 +19,7 @@ PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS := true
# Overlays
DEVICE_PACKAGE_OVERLAYS += \
$(LOCAL_PATH)/overlay \
$(LOCAL_PATH)/overlay-lineage \
$(LOCAL_PATH)/overlay-evolution
$(LOCAL_PATH)/overlay-lineage
PRODUCT_ENFORCE_RRO_TARGETS := *
@@ -72,10 +71,12 @@ PRODUCT_PACKAGES += \
android.hardware.audio.service \
android.hardware.soundtrigger@2.2-impl:32 \
audio.r_submix.default \
audio.usbv2.default \
audio.usb.default \
libaudioroute.vendor \
libqcompostprocbundle \
libqcomvisualizer \
libqcomvoiceprocessing \
libtinycompress \
libvolumelistener \
tinymix
@@ -86,25 +87,31 @@ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
$(LOCAL_PATH)/audio/audio_policy_configuration_a2dp_offload_disabled.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration_a2dp_offload_disabled.xml \
$(LOCAL_PATH)/audio/bluetooth_hearing_aid_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_hearing_aid_audio_policy_configuration.xml \
$(LOCAL_PATH)/audio/dax-default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/dolby/dax-default.xml \
$(LOCAL_PATH)/audio/graphite_ipc_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/graphite_ipc_platform_info.xml \
$(LOCAL_PATH)/audio/listen_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/listen_platform_info.xml \
$(LOCAL_PATH)/audio/mixer_paths_tavil.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tavil.xml \
$(LOCAL_PATH)/audio/usbv2_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usbv2_audio_policy_configuration.xml
$(LOCAL_PATH)/audio/mixer_paths_tavil.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tavil.xml
PRODUCT_COPY_FILES += \
frameworks/av/services/audiopolicy/config/bluetooth_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_audio_policy_configuration.xml \
frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml
frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
# Bluetooth
PRODUCT_PACKAGES += \
android.hardware.bluetooth@1.0.vendor \
android.hardware.bluetooth.audio-impl \
audio.bluetooth.default
audio.bluetooth.default \
vendor.qti.hardware.bluetooth_audio@2.0.vendor \
vendor.qti.hardware.btconfigstore@1.0.vendor
# Camera
PRODUCT_PACKAGES += \
android.hardware.camera.provider@2.4-impl:32 \
android.hardware.camera.provider@2.4-service
android.hardware.camera.provider@2.4-service \
libdng_sdk.vendor \
libgui_shim \
libpiex_shim \
vendor.qti.hardware.camera.device@1.0.vendor
# Common init scripts
PRODUCT_PACKAGES += \
@@ -112,18 +119,24 @@ PRODUCT_PACKAGES += \
init.qcom.early_boot.sh \
init.qcom.post_boot.sh \
init.qcom.rc \
init.qcom.recovery.rc \
init.qcom.power.rc \
init.qcom.sensors.sh \
init.qcom.sh \
init.qcom.usb.rc \
init.qcom.usb.sh \
ueventd.qcom.rc
init.recovery.qcom.rc \
ueventd.qcom.rc \
usb_compositions.conf
# Configstore
PRODUCT_PACKAGES += \
disable_configstore
# Cgroup and task profiles
PRODUCT_COPY_FILES += \
system/core/libprocessgroup/profiles/cgroups_28.json:$(TARGET_COPY_OUT_VENDOR)/etc/cgroups.json \
system/core/libprocessgroup/profiles/task_profiles_28.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json
# Context Hub
PRODUCT_PACKAGES += \
android.hardware.contexthub@1.0-impl.generic \
@@ -134,25 +147,44 @@ PRODUCT_SET_DEBUGFS_RESTRICTIONS := true
# Device-specific settings
PRODUCT_PACKAGES += \
XiaomiDolby \
XiaomiParts
# Display
PRODUCT_PACKAGES += \
android.hardware.graphics.composer@2.3-service \
android.hardware.graphics.mapper@2.0-impl-qti-display \
android.hardware.memtrack@1.0-impl \
android.hardware.memtrack@1.0-service \
gralloc.sdm845 \
hwcomposer.qcom \
hwcomposer.sdm845 \
libdisplayconfig.qti \
libdisplayconfig.system.qti \
libqdMetaData \
libqdMetaData.system \
libtinyxml \
memtrack.sdm845 \
vendor.display.config@1.0.vendor \
vendor.display.config@2.0 \
vendor.qti.hardware.display.allocator@1.0-service \
vendor.qti.hardware.memtrack-service
vendor.qti.hardware.display.config-V5-ndk
# DRM
PRODUCT_PACKAGES += \
android.hardware.drm@1.3.vendor \
android.hardware.drm-service.clearkey
# Fingerprint
PRODUCT_PACKAGES += \
android.hardware.biometrics.fingerprint-service.xiaomi
android.hardware.biometrics.fingerprint@2.3-service.xiaomi
# Gatekeeper
PRODUCT_PACKAGES += \
android.hardware.gatekeeper@1.0.vendor \
libion.vendor
# GNSS
PRODUCT_PACKAGES += \
android.hardware.gnss@2.0.vendor
# fastbootd
PRODUCT_PACKAGES += \
@@ -163,6 +195,18 @@ PRODUCT_PACKAGES += \
android.hardware.health-service.qti \
android.hardware.health-service.qti_recovery
# HIDL
PRODUCT_PACKAGES += \
android.hidl.allocator@1.0.vendor \
android.hidl.base@1.0 \
android.hidl.base@1.0.vendor \
android.hidl.memory@1.0.vendor \
libhidlmemory.vendor \
libhidltransport \
libhidltransport.vendor \
libhwbinder \
libhwbinder.vendor
# HotwordEnrollement app permissions
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/permissions/privapp-permissions-hotword.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/privapp-permissions-hotword.xml
@@ -180,9 +224,13 @@ PRODUCT_PACKAGES += \
ipacm \
IPACM_cfg.xml
# Keymaster
PRODUCT_PACKAGES += \
android.hardware.keymaster@4.0.vendor
# Lights
PRODUCT_PACKAGES += \
android.hardware.light-service.lineage
android.hardware.light-service.xiaomi
# Lineage Health
PRODUCT_PACKAGES += \
@@ -190,15 +238,21 @@ PRODUCT_PACKAGES += \
# LiveDisplay
PRODUCT_PACKAGES += \
vendor.lineage.livedisplay-service.sdm
vendor.lineage.livedisplay@2.0-service-sdm
# Media
PRODUCT_PACKAGES += \
libavservices_minijail \
libc2dcolorconvert \
libOmxAacEnc \
libOmxAmrEnc \
libOmxCore \
libOmxEvrcEnc \
libOmxG711Enc \
libOmxQcelp13Enc \
libOmxVdec \
libOmxVenc \
libstagefrighthw \
libstagefright_foundation-v33
libstagefrighthw
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
@@ -213,36 +267,60 @@ PRODUCT_COPY_FILES += \
frameworks/av/media/libstagefright/data/media_codecs_google_c2_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_audio.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_c2_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_video.xml
# Mlipay
PRODUCT_PACKAGES += \
vendor.xiaomi.hardware.mlipay@1.1.vendor:64 \
vendor.xiaomi.hardware.mtdservice@1.0.vendor:64
# Native libraries whitelist
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/public.libraries.txt:$(TARGET_COPY_OUT_VENDOR)/etc/public.libraries.txt
# Partitions
# Net
PRODUCT_PACKAGES += \
vendor_bt_firmware_mountpoint \
vendor_dsp_mountpoint \
vendor_firmware_mnt_mountpoint
android.system.net.netd@1.1.vendor
# Neural Network
PRODUCT_PACKAGES += \
android.hardware.neuralnetworks@1.2.vendor
# 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.lineage-libperfmgr \
android.hardware.power@1.2.vendor \
libqti-perfd-client
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/power/configs/powerhint.json:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.json
$(call soong_config_set,power_libperfmgr,mode_extension_lib,//$(LOCAL_PATH):libperfmgr-ext-xiaomi)
# Protobuf
PRODUCT_PACKAGES += \
libprotobuf-cpp-full-vendorcompat \
libprotobuf-cpp-lite-vendorcompat
# QTI
PRODUCT_PACKAGES += \
libqti_vndfwk_detect.vendor
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/qti_whitelist.xml:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/sysconfig/qti_whitelist.xml \
$(LOCAL_PATH)/permissions/system_ext-privapp-permissions-qti.xml:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/permissions/privapp-permissions-qti.xml
# QTI fwk-detect
# Radio
PRODUCT_PACKAGES += \
libqti_vndfwk_detect.vendor:32
android.hardware.secure_element@1.0.vendor \
android.hardware.radio@1.4.vendor \
android.hardware.radio.config@1.2.vendor \
android.hardware.radio.deprecated@1.0.vendor \
libjson \
librmnetctl \
libsqlite.vendor:64
# Recovery
PRODUCT_PACKAGES += \
@@ -258,8 +336,10 @@ PRODUCT_COPY_FILES += \
# Sensors
PRODUCT_PACKAGES += \
android.frameworks.sensorservice@1.0.vendor \
android.hardware.sensors@1.0-impl:64 \
android.hardware.sensors@1.0-service
android.hardware.sensors@1.0-service \
libsensorndkbridge
# Soong namespaces
PRODUCT_SOONG_NAMESPACES += \
@@ -273,6 +353,8 @@ PRODUCT_SOONG_NAMESPACES += \
# Speed profile services and wifi-service to reduce RAM and storage
PRODUCT_SYSTEM_SERVER_COMPILER_FILTER := speed-profile
PRODUCT_USE_PROFILE_FOR_BOOT_IMAGE := true
PRODUCT_DEX_PREOPT_BOOT_IMAGE_PROFILE_LOCATION := frameworks/base/config/boot-image-profile.txt
# Telephony
PRODUCT_PACKAGES += \
@@ -293,17 +375,23 @@ PRODUCT_PACKAGES += \
# USB
PRODUCT_PACKAGES += \
android.hardware.usb@1.3-service.dual_role_usb
android.hardware.usb@1.3-service.dual_role_usb \
android.hardware.usb.gadget@1.2-service-qti
# Vibrator
PRODUCT_PACKAGES += \
vendor.qti.hardware.vibrator.service
# VNDK
PRODUCT_COPY_FILES += \
prebuilts/vndk/v33/arm64/arch-arm64-armv8-a/shared/vndk-sp/libutils.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libutils-v33.so
# WiFi
PRODUCT_PACKAGES += \
android.hardware.wifi-service \
hostapd \
libwifi-hal-qcom \
libwpa_client \
WifiOverlay \
wpa_supplicant \
wpa_supplicant.conf
@@ -316,10 +404,16 @@ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/wifi/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf \
$(LOCAL_PATH)/wifi/WCNSS_qcom_cfg.ini:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/WCNSS_qcom_cfg.ini
# WiFi firmware symlinks
# WiFi Display
PRODUCT_PACKAGES += \
firmware_wlan_mac.bin_symlink \
firmware_WCNSS_qcom_cfg.ini_symlink
android.media.audio.common.types-V2-cpp \
libnl \
libpng.vendor \
libprocessgroup.vendor \
libwfdaac_vendor
PRODUCT_BOOT_JARS += \
WfdCommon
# Inherit the proprietary files
$(call inherit-product, vendor/xiaomi/sdm845-common/sdm845-common-vendor.mk)

View File

@@ -22,11 +22,3 @@ allow xiaomiparts_app sysfs_thermal:file w_file_perms;
# Allow XiaomiParts to get settingsdebug.instant.packages prop
get_prop(xiaomiparts_app, settingslib_prop)
# Allow XiaomiParts to read specific system properties
get_prop(xiaomiparts_app, system_prop)
get_prop(xiaomiparts_app, exported_system_prop)
# Allow XiaomiParts to access to media player service
allow xiaomiparts_app mediaserver_service:service_manager find;
binder_call(xiaomiparts_app, mediaserver)

View File

@@ -1,4 +0,0 @@
# HALs
attribute hal_dms;
attribute hal_dms_client;
attribute hal_dms_server;

View File

@@ -1 +0,0 @@
dontaudit untrusted_app ashmem_device:chr_file open;

View File

@@ -1,9 +0,0 @@
# Ignore harmless QCOM denials
dontaudit {
gmscore_app
init
priv_app
} {
bt_firmware_file
firmware_file
}:filesystem getattr;

View File

@@ -4,7 +4,6 @@ type fingerprint_data_file, data_file_type, file_type;
type gps_data_file, data_file_type, file_type;
type gps_socket, file_type;
type thermal_data_file, data_file_type, file_type;
type vendor_convergence_data_file, data_file_type, file_type;
type proc_tp, proc_type, fs_type;

View File

@@ -12,12 +12,11 @@
/(vendor|system/vendor)/bin/remosaic_daemon u:object_r:remosaic_daemon_exec:s0
# Data files
/data/vendor/dolby(/.*)? u:object_r:vendor_data_file:s0
/data/vendor/fpc(/.*)? u:object_r:fingerprint_data_file:s0
/data/vendor/goodix(/.*)? u:object_r:fingerprint_data_file:s0
/data/vendor/gps(/.*)? u:object_r:gps_data_file:s0
/data/vendor/mac_addr(/.*)? u:object_r:vendor_convergence_data_file:s0
/data/vendor/syna(/.*)? u:object_r:fingerprint_data_file:s0
/data/vendor/mac_addr(/.*)? u:object_r:wifi_vendor_data_file:s0
/data/vendor/thermal(/.*)? u:object_r:thermal_data_file:s0
# Executables
@@ -50,10 +49,10 @@
/sys/devices/platform/soc/[a-z0-9]+.i2c/i2c-[0-9]/[0-9]-[a-z0-9]+/leds/ir(/.*)? u:object_r:sysfs_leds:s0
# HALs
/vendor/bin/hw/android\.hardware\.biometrics\.fingerprint-service\.xiaomi u:object_r:hal_fingerprint_default_exec:s0
/vendor/bin/hw/android\.hardware\.biometrics\.fingerprint@2\.3-service\.xiaomi u:object_r:hal_fingerprint_default_exec:s0
/vendor/bin/hw/android\.hardware\.light-service\.xiaomi u:object_r:hal_light_default_exec:s0
/vendor/bin/hw/android\.hardware\.neuralnetworks@1\.2-service-qti u:object_r:hal_neuralnetworks_default_exec:s0
/vendor/bin/hw/vendor\.lineage\.livedisplay-service\.xiaomi_sdm845 u:object_r:hal_lineage_livedisplay_qti_exec:s0
/vendor/bin/hw/vendor\.dolby\.hardware\.dms@2\.0-service u:object_r:hal_dms_default_exec:s0
/vendor/bin/hw/vendor\.lineage\.livedisplay@2\.0-service\.xiaomi_sdm845 u:object_r:hal_lineage_livedisplay_qti_exec:s0
# Persist files
/mnt/vendor/persist/audio(/.*)? u:object_r:persist_audio_file:s0

View File

@@ -11,7 +11,6 @@ genfscon sysfs /devices/platform/soc/8300000.qcom,turing/subsys6/restart_level u
genfscon sysfs /devices/platform/soc/a88000.i2c/i2c-0/0-0061/power_supply/idt u:object_r:sysfs_wireless_supply:s0
genfscon sysfs /devices/platform/soc/aae0000.qcom,venus/subsys1/restart_level u:object_r:sysfs_ssr_toggle:s0
genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/idle_state u:object_r:sysfs_graphics:s0
genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-0/measured_fps u:object_r:sysfs_graphics:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/power_supply/wireless u:object_r:sysfs_wireless_supply:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-03/c440000.qcom,spmi:qcom,pmi8998@3:qcom,leds@d000/leds/white u:object_r:sysfs_graphics:s0
genfscon sysfs /devices/platform/soc/soc:fingerprint_fpc/device_prepare u:object_r:sysfs_fingerprint:s0

Some files were not shown because too many files have changed in this diff Show More