Changes for May 2024, syncing up to 20240508

This commit is contained in:
Andy CrossGate Yan
2024-05-25 20:07:30 +08:00
parent e9902a4450
commit 3963eaa06e
300 changed files with 15353 additions and 40472 deletions

View File

@@ -1,4 +1,4 @@
From cb9d1aaacaa105c20551952ead0ad7a49408efce Mon Sep 17 00:00:00 2001
From b354689bc72bb0ab0da52cc11ec5930444606d2c Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 27 Oct 2021 14:39:29 -0400
Subject: [PATCH 1/2] Disable vndklite handling
@@ -9,10 +9,10 @@ Change-Id: Ic4474cf80fc4b45a9a2760dd51e2ca29c4d961e2
1 file changed, 5 deletions(-)
diff --git a/linker/linker.cpp b/linker/linker.cpp
index 17b574fc1..c863f8ea6 100644
index 135eaa380..93523dcc0 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -95,7 +95,6 @@ static uint64_t g_module_unload_counter = 0;
@@ -97,7 +97,6 @@ static uint64_t g_module_unload_counter = 0;
static const char* const kLdConfigArchFilePath = "/system/etc/ld.config." ABI_STRING ".txt";
static const char* const kLdConfigFilePath = "/system/etc/ld.config.txt";
@@ -20,7 +20,7 @@ index 17b574fc1..c863f8ea6 100644
static const char* const kLdGeneratedConfigFilePath = "/linkerconfig/ld.config.txt";
@@ -3423,10 +3422,6 @@ static std::string get_ld_config_file_apex_path(const char* executable_path) {
@@ -3444,10 +3443,6 @@ static std::string get_ld_config_file_apex_path(const char* executable_path) {
}
static std::string get_ld_config_file_vndk_path() {

View File

@@ -1,4 +1,4 @@
From ab1289090a65808ee3fbbeb40b0a77e91c1a6aab Mon Sep 17 00:00:00 2001
From 0cbe25143ccc28bd13d85cd2c01cbb9ac6cf9be4 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sat, 19 Feb 2022 08:20:25 -0500
Subject: [PATCH 2/2] Add new mechanism to fake vendor props on a per-process
@@ -11,10 +11,10 @@ then ro.product.device/ro.product.manufacturer is read from vendor
1 file changed, 85 insertions(+), 2 deletions(-)
diff --git a/libc/system_properties/system_properties.cpp b/libc/system_properties/system_properties.cpp
index 1cb15c3df..057199318 100644
index 9dd5e35ce..886bef127 100644
--- a/libc/system_properties/system_properties.cpp
+++ b/libc/system_properties/system_properties.cpp
@@ -35,6 +35,8 @@
@@ -36,6 +36,8 @@
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
@@ -23,9 +23,9 @@ index 1cb15c3df..057199318 100644
#include <new>
@@ -50,6 +52,85 @@
#define SERIAL_DIRTY(serial) ((serial)&1)
@@ -53,6 +55,85 @@
#define SERIAL_VALUE_LEN(serial) ((serial) >> 24)
#define APPCOMPAT_PREFIX "ro.appcompat_override."
+static char comm[128];
+static bool self_ok = false;
@@ -109,7 +109,7 @@ index 1cb15c3df..057199318 100644
static bool is_dir(const char* pathname) {
struct stat info;
if (stat(pathname, &info) == -1) {
@@ -123,17 +204,19 @@ uint32_t SystemProperties::AreaSerial() {
@@ -156,17 +237,19 @@ uint32_t SystemProperties::AreaSerial() {
}
const prop_info* SystemProperties::Find(const char* name) {
@@ -130,7 +130,7 @@ index 1cb15c3df..057199318 100644
+ return pa->find(newName);
}
static bool is_read_only(const char* name) {
static bool is_appcompat_override(const char* name) {
--
2.25.1

View File

@@ -1,4 +1,4 @@
From 6b118b279359ded66d661bd5504cfa8a9759b4e2 Mon Sep 17 00:00:00 2001
From fe82aa41e542f4da2709976cda0713dfa089cc1d Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Thu, 12 Sep 2019 20:31:07 +0200
Subject: [PATCH] Don't reboot if we couldn't get bootctrl

View File

@@ -1,20 +1,20 @@
From 7a3067d35183c2b6ceac06dcaecd81c55bd58494 Mon Sep 17 00:00:00 2001
From 948c7a611e69510c38d593bb581cc1c21d080682 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Fri, 6 Oct 2023 19:11:22 -0400
Subject: [PATCH 3/4] Include vndk v28 sepolicy support
Subject: [PATCH 1/2] Include vndk v28 sepolicy support
---
core/config.mk | 1 +
1 file changed, 1 insertion(+)
diff --git a/core/config.mk b/core/config.mk
index 8f7af0512a..f693461f61 100644
index 19308d7f22..369940845e 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -916,6 +916,7 @@ endif
@@ -932,6 +932,7 @@ endif
# A list of SEPolicy versions, besides PLATFORM_SEPOLICY_VERSION, that the framework supports.
PLATFORM_SEPOLICY_COMPAT_VERSIONS := \
PLATFORM_SEPOLICY_COMPAT_VERSIONS := $(filter-out $(PLATFORM_SEPOLICY_VERSION), \
+ 28.0 \
29.0 \
30.0 \

View File

@@ -1,34 +0,0 @@
From 4ec43947116f793a592988b91389132b22bf1fb2 Mon Sep 17 00:00:00 2001
From: sooti <sooti85@gmail.com>
Date: Tue, 12 Oct 2021 14:32:52 +0300
Subject: [PATCH 1/4] build: remove emulator crap from GSI
Change-Id: Id45f3ff1d31e3d4492f956e68a1eb4b2fb82ce63
---
target/product/emulator_vendor.mk | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/target/product/emulator_vendor.mk b/target/product/emulator_vendor.mk
index f71b275b0e..62984253f3 100644
--- a/target/product/emulator_vendor.mk
+++ b/target/product/emulator_vendor.mk
@@ -28,7 +28,7 @@ PRODUCT_PACKAGES += \
DEVICE_PACKAGE_OVERLAYS := device/generic/goldfish/overlay
-PRODUCT_CHARACTERISTICS := emulator
+# PRODUCT_CHARACTERISTICS := emulator
PRODUCT_FULL_TREBLE_OVERRIDE := true
@@ -48,5 +48,5 @@ PRODUCT_SYSTEM_EXT_PROPERTIES += \
ro.com.google.locationfeatures=1
# disable setupwizard
-PRODUCT_SYSTEM_EXT_PROPERTIES += \
- ro.setupwizard.mode?=DISABLED
+# PRODUCT_SYSTEM_EXT_PROPERTIES += \
+# ro.setupwizard.mode?=DISABLED
--
2.34.1

View File

@@ -1,30 +0,0 @@
From 6b27f2fd5851e7b9ac30922640b480282252a8c7 Mon Sep 17 00:00:00 2001
From: Alberto Ponces <ponces26@gmail.com>
Date: Mon, 18 Oct 2021 17:20:18 +0100
Subject: [PATCH 2/4] build: Bypass vendor calls
Change-Id: I69830d6264356dadd7b037553a899a4eb3d211f1
---
target/product/aosp_arm64.mk | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/target/product/aosp_arm64.mk b/target/product/aosp_arm64.mk
index 6c907db0ed..0adced1672 100644
--- a/target/product/aosp_arm64.mk
+++ b/target/product/aosp_arm64.mk
@@ -54,9 +54,9 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_product.mk)
#
# All components inherited here go to vendor or vendor_boot image
#
-$(call inherit-product, $(SRC_TARGET_DIR)/product/emulator_vendor.mk)
-$(call inherit-product, $(SRC_TARGET_DIR)/board/generic_arm64/device.mk)
-$(call inherit-product, $(SRC_TARGET_DIR)/product/non_ab_device.mk)
+#$(call inherit-product, $(SRC_TARGET_DIR)/product/emulator_vendor.mk)
+#$(call inherit-product, $(SRC_TARGET_DIR)/board/generic_arm64/device.mk)
+#$(call inherit-product, $(SRC_TARGET_DIR)/product/non_ab_device.mk)
#
# Special settings for GSI releasing
--
2.34.1

View File

@@ -1,7 +1,7 @@
From 8c802e0a41a2a54d6ed53f3b7e60de307469f628 Mon Sep 17 00:00:00 2001
From 7675f6e75fbc4f5c9eb2d77602f8f3d72cd59706 Mon Sep 17 00:00:00 2001
From: Adithya R <gh0strider.2k18.reborn@gmail.com>
Date: Thu, 18 Aug 2022 21:29:34 +0530
Subject: [PATCH 4/4] core: sysprop: Write build display id to product prop
Subject: [PATCH 2/2] core: sysprop: Write build display id to product prop
Some vendors override build id in odm or vendor, such as oplus.
@@ -11,7 +11,7 @@ Change-Id: I1c2de43ba7c3544710897ad9127d320dd02293fe
1 file changed, 3 insertions(+)
diff --git a/core/sysprop.mk b/core/sysprop.mk
index d2551aa44d..f913d11743 100644
index da8cdaff5e..678328d46d 100644
--- a/core/sysprop.mk
+++ b/core/sysprop.mk
@@ -77,6 +77,9 @@ define generate-common-build-props
@@ -23,7 +23,7 @@ index d2551aa44d..f913d11743 100644
+ )\
echo "ro.$(1).build.date=`$(DATE_FROM_FILE)`" >> $(2);\
echo "ro.$(1).build.date.utc=`$(DATE_FROM_FILE) +%s`" >> $(2);\
echo "ro.$(1).build.fingerprint=$(BUILD_FINGERPRINT_FROM_FILE)" >> $(2);\
echo "ro.$(1).build.fingerprint?=$(BUILD_FINGERPRINT_FROM_FILE)" >> $(2);\
--
2.34.1

View File

@@ -1,4 +1,4 @@
From aa0cbcaebbaf0886abfd6bd97232798c7cb5be9b Mon Sep 17 00:00:00 2001
From 3d471c1fbb11c1d0b15eadf53b1f201fee44f35f Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 9 Apr 2018 00:19:49 +0200
Subject: [PATCH 01/10] Increase default log_level to get actual selinux error

View File

@@ -1,4 +1,4 @@
From a88a863bdd7cee7e8d8a681d7f32d9ff6d0bc746 Mon Sep 17 00:00:00 2001
From c401d3fca4a1783c9a84348e61a036c016b6e358 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 9 Sep 2020 22:36:42 +0200
Subject: [PATCH 02/10] Revert "libsepol: Make an unknown permission an error

View File

@@ -1,4 +1,4 @@
From 01034f4009d29c401d5f007f76044482c0ed8bd0 Mon Sep 17 00:00:00 2001
From 561b2e69be86a1c40d402ba06e845546bade9b32 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 31 Mar 2021 23:32:37 +0200
Subject: [PATCH 03/10] Workaround device/phh/treble conflict with SELinux

View File

@@ -1,4 +1,4 @@
From 81fa34b00d80113ed4015b99dab093826c1acb89 Mon Sep 17 00:00:00 2001
From 674bf16f42a5c64c8c4acd0a9c458f78fdef785e Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Fri, 6 Sep 2019 15:07:25 +0200
Subject: [PATCH 04/10] Allow /devices/virtual/block/ genfscon conflict (seen

View File

@@ -1,4 +1,4 @@
From 0bc7791b9f1423f70c17b68dd7fb9d672b2bb924 Mon Sep 17 00:00:00 2001
From e4a26d31aab7bb541e1f510c2b231da2345d8dd8 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Thu, 12 Sep 2019 20:37:04 +0200
Subject: [PATCH 05/10] if service is "rcs", accept conflict. Seen on Moto E5

View File

@@ -1,4 +1,4 @@
From c4100e160008273781973b2098267e7d343b8956 Mon Sep 17 00:00:00 2001
From b62703b28a22e12c2f7044abc74689109a88eca1 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 24 May 2020 17:22:22 +0200
Subject: [PATCH 06/10] Allow mismatches of exfat genfscon

View File

@@ -1,4 +1,4 @@
From 4c0afb19a2170e2cd9c4e2a1fdb48cdb16d4100e Mon Sep 17 00:00:00 2001
From 51de18a6b0c861925c7b4eb5c64f631c90d3c0e7 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Fri, 25 Oct 2019 13:29:20 +0200
Subject: [PATCH 07/10] Fix boot on Moto devices using unknown class

View File

@@ -1,4 +1,4 @@
From 18cdd4e9ff37377b80f837c92026f1ce3514d074 Mon Sep 17 00:00:00 2001
From 5ccb1dd0e78eeae1767febd733b9a0e9cd99e1a4 Mon Sep 17 00:00:00 2001
From: ponces <ponces26@gmail.com>
Date: Mon, 7 Nov 2022 16:14:20 +0000
Subject: [PATCH 08/10] Improve SELinux policy workaround on device/phh/treble

View File

@@ -1,4 +1,4 @@
From e62c978dbf5f214f392355a0d111adc772f10b60 Mon Sep 17 00:00:00 2001
From a464342a983c1bbdfdc8fe50803a7e35659ecb22 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Thu, 20 Jul 2023 14:21:21 -0400
Subject: [PATCH 09/10] Allow /sys/vm/watermark_scale_factor conflict -- seen

View File

@@ -1,4 +1,4 @@
From d69b637d22bd02e44ece4e68e53b9151dfda8247 Mon Sep 17 00:00:00 2001
From fa8cc9f8c1fbdd902dbb6c9708e7e91f78defae9 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Fri, 6 Oct 2023 08:49:59 -0400
Subject: [PATCH 10/10] Allow conflict on fuseblk

View File

@@ -1,4 +1,4 @@
From a23cc54356f2fe9123e370bed82cad45d67eca9e Mon Sep 17 00:00:00 2001
From 4edc031741505b06ea466479f419ec86cb04718f Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net>
Date: Thu, 18 Aug 2022 15:44:46 -0400
Subject: [PATCH 01/24] APM: Restore S, R and Q behavior respectively for
@@ -36,12 +36,12 @@ Change-Id: I56d36d2aef4319935cb88a3e4771b23c6d5b2145
2 files changed, 147 insertions(+), 62 deletions(-)
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
index b3c68b58d3..470317cb3d 100644
index 135548fb9c..fc99bdbd78 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -689,6 +689,17 @@ status_t AudioPolicyManager::updateCallRoutingInternal(
disconnectTelephonyAudioSource(mCallRxSourceClient);
disconnectTelephonyAudioSource(mCallTxSourceClient);
@@ -692,6 +692,17 @@ status_t AudioPolicyManager::updateCallRoutingInternal(
ALOGV("%s device rxDevice %s txDevice %s", __func__,
rxDevices.itemAt(0)->toString().c_str(), txSourceDevice->toString().c_str());
+ // release existing RX patch if any
+ if (mCallRxPatch != 0) {
@@ -57,7 +57,7 @@ index b3c68b58d3..470317cb3d 100644
auto telephonyRxModule =
mHwModules.getModuleForDeviceType(AUDIO_DEVICE_IN_TELEPHONY_RX, AUDIO_FORMAT_DEFAULT);
auto telephonyTxModule =
@@ -711,9 +722,20 @@ status_t AudioPolicyManager::updateCallRoutingInternal(
@@ -714,9 +725,20 @@ status_t AudioPolicyManager::updateCallRoutingInternal(
ALOGE("%s() no telephony Tx and/or RX device", __func__);
return INVALID_OPERATION;
}
@@ -81,9 +81,9 @@ index b3c68b58d3..470317cb3d 100644
} else {
// If the RX device is on the primary HW module, then use legacy routing method for
// voice calls via setOutputDevice() on primary output.
@@ -730,7 +752,14 @@ status_t AudioPolicyManager::updateCallRoutingInternal(
if (!createRxPatch) {
muteWaitMs = setOutputDevices(mPrimaryOutput, rxDevices, true, delayMs);
@@ -737,7 +759,14 @@ status_t AudioPolicyManager::updateCallRoutingInternal(
}
muteWaitMs = setOutputDevices(__func__, mPrimaryOutput, rxDevices, true, delayMs);
} else { // create RX path audio patch
- connectTelephonyRxAudioSource();
+ if (property_get_int32("ro.vndk.version", 31) >= 31) {
@@ -97,7 +97,7 @@ index b3c68b58d3..470317cb3d 100644
// If the TX device is on the primary HW module but RX device is
// on other HW module, SinkMetaData of telephony input should handle it
// assuming the device uses audio HAL V5.0 and above
@@ -745,7 +774,12 @@ status_t AudioPolicyManager::updateCallRoutingInternal(
@@ -752,7 +781,12 @@ status_t AudioPolicyManager::updateCallRoutingInternal(
closeActiveClients(activeDesc);
}
}
@@ -111,7 +111,7 @@ index b3c68b58d3..470317cb3d 100644
}
if (waitMs != nullptr) {
*waitMs = muteWaitMs;
@@ -753,6 +787,36 @@ status_t AudioPolicyManager::updateCallRoutingInternal(
@@ -760,6 +794,36 @@ status_t AudioPolicyManager::updateCallRoutingInternal(
return NO_ERROR;
}
@@ -148,7 +148,7 @@ index b3c68b58d3..470317cb3d 100644
bool AudioPolicyManager::isDeviceOfModule(
const sp<DeviceDescriptor>& devDesc, const char *moduleId) const {
sp<HwModule> module = mHwModules.getModuleFromName(moduleId);
@@ -5034,83 +5098,101 @@ status_t AudioPolicyManager::createAudioPatchInternal(const struct audio_patch *
@@ -5087,83 +5151,101 @@ status_t AudioPolicyManager::createAudioPatchInternal(const struct audio_patch *
// in config XML to reach the sink so that is can be declared as available.
audio_io_handle_t output = AUDIO_IO_HANDLE_NONE;
sp<SwAudioOutputDescriptor> outputDesc;
@@ -308,10 +308,10 @@ index b3c68b58d3..470317cb3d 100644
AUDIO_STREAM_PATCH;
patchBuilder.addSource(srcMixPortConfig);
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.h b/services/audiopolicy/managerdefault/AudioPolicyManager.h
index 863c785b08..41930138c4 100644
index a1c8f6202c..ee1b595e30 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.h
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.h
@@ -957,6 +957,9 @@ protected:
@@ -964,6 +964,9 @@ protected:
SoundTriggerSessionCollection mSoundTriggerSessions;

View File

@@ -1,4 +1,4 @@
From f1a2ee42e286ea44030eea193d8abd2daf865cb5 Mon Sep 17 00:00:00 2001
From 1a713e8b42c975a61e3751b4acf66732559c4152 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 5 Aug 2019 18:09:50 +0200
Subject: [PATCH 02/24] Fix BT in-call on CAF devices
@@ -16,10 +16,10 @@ Change-Id: Ifea0f88276ec9a0811f3cb1973c4b06f2c82077b
1 file changed, 93 insertions(+)
diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
index 3d5c1d2e42..5ca409cfe7 100644
index 6f19a7a145..1ab472f396 100644
--- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
@@ -663,6 +663,98 @@ std::variant<status_t, RouteTraits::Element> PolicySerializer::deserialize<Route
@@ -667,6 +667,98 @@ std::variant<status_t, RouteTraits::Element> PolicySerializer::deserialize<Route
return route;
}
@@ -118,7 +118,7 @@ index 3d5c1d2e42..5ca409cfe7 100644
template<>
std::variant<status_t, ModuleTraits::Element> PolicySerializer::deserialize<ModuleTraits>(
const xmlNode *cur, ModuleTraits::PtrSerializingCtx ctx)
@@ -710,6 +802,7 @@ std::variant<status_t, ModuleTraits::Element> PolicySerializer::deserialize<Modu
@@ -714,6 +806,7 @@ std::variant<status_t, ModuleTraits::Element> PolicySerializer::deserialize<Modu
if (status != NO_ERROR) {
return status;
}

View File

@@ -1,4 +1,4 @@
From 624156c029c11d97005c2f3212d3d67fb511ebfe Mon Sep 17 00:00:00 2001
From 323d4a565abc38d9f32c4d77825f73ad0638cf1d Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 1 Oct 2019 13:35:49 +0200
Subject: [PATCH 03/24] Add (partial, cam id is hardcoded) support for Asus ZF6
@@ -11,18 +11,18 @@ Change-Id: Iea6e1370780a1d16f728748d1d948d092532d8fe
2 files changed, 29 insertions(+)
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
index ebe424ec25..ac1ba38db9 100644
index 6acf0b6cae..8d0f3bdab7 100644
--- a/services/camera/libcameraservice/CameraService.cpp
+++ b/services/camera/libcameraservice/CameraService.cpp
@@ -26,6 +26,7 @@
#include <ctime>
@@ -28,6 +28,7 @@
#include <sstream>
#include <string>
#include <sys/types.h>
+#include <sys/wait.h>
#include <inttypes.h>
#include <pthread.h>
#include <poll.h>
@@ -154,6 +155,7 @@ static std::set<String8> sServiceErrorEventSet;
@@ -153,6 +154,7 @@ static std::set<std::string> sServiceErrorEventSet;
CameraService::CameraService(
std::shared_ptr<CameraServiceProxyWrapper> cameraServiceProxyWrapper) :
@@ -30,7 +30,7 @@ index ebe424ec25..ac1ba38db9 100644
mCameraServiceProxyWrapper(cameraServiceProxyWrapper == nullptr ?
std::make_shared<CameraServiceProxyWrapper>() : cameraServiceProxyWrapper),
mEventLog(DEFAULT_EVENT_LOG_LENGTH),
@@ -2344,6 +2346,7 @@ Status CameraService::connectHelper(const sp<CALLBACK>& cameraCb, const String8&
@@ -2628,6 +2630,7 @@ Status CameraService::connectHelper(const sp<CALLBACK>& cameraCb, const std::str
mServiceLock.lock();
} else {
// Otherwise, add client to active clients list
@@ -38,7 +38,7 @@ index ebe424ec25..ac1ba38db9 100644
finishConnectLocked(client, partial, oomScoreOffset, systemNativeClient);
}
@@ -2468,6 +2471,27 @@ status_t CameraService::addOfflineClient(String8 cameraId, sp<BasicClient> offli
@@ -2754,6 +2757,27 @@ status_t CameraService::addOfflineClient(const std::string &cameraId,
return OK;
}
@@ -63,25 +63,25 @@ index ebe424ec25..ac1ba38db9 100644
+ }
+}
+
Status CameraService::turnOnTorchWithStrengthLevel(const String16& unresolvedCameraId,
int32_t torchStrength,
const sp<IBinder>& clientBinder) {
@@ -3733,6 +3757,8 @@ binder::Status CameraService::BasicClient::disconnect() {
Status CameraService::turnOnTorchWithStrengthLevel(const std::string& unresolvedCameraId,
int32_t torchStrength, const sp<IBinder>& clientBinder) {
Mutex::Autolock lock(mServiceLock);
@@ -4023,6 +4047,8 @@ binder::Status CameraService::BasicClient::disconnect() {
}
mDisconnected = true;
+ sCameraService->physicalFrontCam(false);
+
sCameraService->removeByClient(this);
sCameraService->logDisconnected(mCameraIdStr, mClientPid, String8(mClientPackageName));
sCameraService->logDisconnected(mCameraIdStr, mClientPid, mClientPackageName);
sCameraService->mCameraProviderManager->removeRef(CameraProviderManager::DeviceMode::CAMERA,
diff --git a/services/camera/libcameraservice/CameraService.h b/services/camera/libcameraservice/CameraService.h
index 208138f4ab..4ac9362621 100644
index 7dc0b91cc9..15ea8b9064 100644
--- a/services/camera/libcameraservice/CameraService.h
+++ b/services/camera/libcameraservice/CameraService.h
@@ -252,6 +252,9 @@ public:
@@ -271,6 +271,9 @@ public:
// Register an offline client for a given active camera id
status_t addOfflineClient(String8 cameraId, sp<BasicClient> offlineClient);
status_t addOfflineClient(const std::string &cameraId, sp<BasicClient> offlineClient);
+ bool mPhysicalFrontCamStatus;
+ void physicalFrontCam(bool on);

View File

@@ -1,4 +1,4 @@
From 205893589b67163df4b625e417a30b5e20a0197c Mon Sep 17 00:00:00 2001
From 521e59e5aea2093c82a3ec3171725f49885a1c92 Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net>
Date: Wed, 24 Aug 2022 15:42:39 -0400
Subject: [PATCH 04/24] APM: Optionally force-load audio policy for system-side
@@ -14,7 +14,7 @@ Change-Id: I279fff541a531f922f3fa55b8f14d00237db59ff
1 file changed, 25 insertions(+)
diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
index 5ca409cfe7..14b19e76ad 100644
index 1ab472f396..29d36ca00b 100644
--- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
@@ -25,6 +25,7 @@
@@ -25,7 +25,7 @@ index 5ca409cfe7..14b19e76ad 100644
#include <utils/Log.h>
#include <utils/StrongPointer.h>
#include <utils/Errors.h>
@@ -978,6 +979,30 @@ status_t PolicySerializer::deserialize(const char *configFile, AudioPolicyConfig
@@ -988,6 +989,30 @@ status_t PolicySerializer::deserialize(const char *configFile, AudioPolicyConfig
if (status != NO_ERROR) {
return status;
}

View File

@@ -1,4 +1,4 @@
From 973d0264e4b10d1c30db4361b947378452c1d259 Mon Sep 17 00:00:00 2001
From 7d9889aa8c86186b6d5d20b9f79a9cb755f7424a Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net>
Date: Thu, 25 Aug 2022 13:30:29 -0400
Subject: [PATCH 05/24] APM: Remove A2DP audio ports from the primary HAL
@@ -16,7 +16,7 @@ Change-Id: I3305594a17285da113167b419543543f0ef71122
1 file changed, 22 insertions(+), 4 deletions(-)
diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
index 14b19e76ad..b30ad7e8af 100644
index 29d36ca00b..839974b9d3 100644
--- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
@@ -26,6 +26,7 @@
@@ -40,7 +40,7 @@ index 14b19e76ad..b30ad7e8af 100644
}
}
if (!xmlStrcmp(cur->name, reinterpret_cast<const xmlChar*>(Trait::tag))) {
@@ -771,6 +769,7 @@ std::variant<status_t, ModuleTraits::Element> PolicySerializer::deserialize<Modu
@@ -775,6 +773,7 @@ std::variant<status_t, ModuleTraits::Element> PolicySerializer::deserialize<Modu
ALOGE("%s: No %s found", __func__, Attributes::name);
return BAD_VALUE;
}
@@ -48,7 +48,7 @@ index 14b19e76ad..b30ad7e8af 100644
uint32_t versionMajor = 0, versionMinor = 0;
std::string versionLiteral = getXmlAttribute(cur, Attributes::version);
if (!versionLiteral.empty()) {
@@ -796,6 +795,25 @@ std::variant<status_t, ModuleTraits::Element> PolicySerializer::deserialize<Modu
@@ -800,6 +799,25 @@ std::variant<status_t, ModuleTraits::Element> PolicySerializer::deserialize<Modu
if (status != NO_ERROR) {
return status;
}

View File

@@ -1,4 +1,4 @@
From 4166271097c272370d8079303e8a88a209fca163 Mon Sep 17 00:00:00 2001
From e7aac58de94e2774f1e0d3c466fb4dafdd90feeb Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net>
Date: Thu, 23 Jan 2020 11:13:43 +0800
Subject: [PATCH 06/24] audiopolicy: try again with trimmed audio port name if
@@ -19,7 +19,7 @@ Change-Id: I993708b28e8404bc8c483d71a850ac69382231bd
1 file changed, 14 insertions(+)
diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
index b30ad7e8af..53fabcc71e 100644
index 839974b9d3..21d3282134 100644
--- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
@@ -593,6 +593,17 @@ std::variant<status_t, DevicePortTraits::Element> PolicySerializer::deserialize<
@@ -40,16 +40,16 @@ index b30ad7e8af..53fabcc71e 100644
template<>
std::variant<status_t, RouteTraits::Element> PolicySerializer::deserialize<RouteTraits>(
const xmlNode *cur, RouteTraits::PtrSerializingCtx ctx)
@@ -640,6 +651,9 @@ std::variant<status_t, RouteTraits::Element> PolicySerializer::deserialize<Route
@@ -642,6 +653,9 @@ std::variant<status_t, RouteTraits::Element> PolicySerializer::deserialize<Route
while (devTag != NULL) {
if (strlen(devTag) != 0) {
sp<PolicyAudioPort> source = ctx->findPortByTagName(devTag);
+ if (source == NULL) {
+ source = ctx->findPortByTagName(trim(devTag));
+ }
if (source == NULL && !mIgnoreVendorExtensions) {
ALOGE("%s: no source found with name=%s", __func__, devTag);
return BAD_VALUE;
+ }
if (source == NULL) {
if (!mIgnoreVendorExtensions) {
ALOGE("%s: no source found with name \"%s\"", __func__, devTag);
--
2.34.1

View File

@@ -1,4 +1,4 @@
From bcedbc8066a041ae996960642cee0c41390a0603 Mon Sep 17 00:00:00 2001
From 37cd5e07843175c9d4aa5df2f11e2e00f01e378c Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net>
Date: Wed, 1 Jun 2022 16:56:46 -0400
Subject: [PATCH 07/24] camera: Implement property to override default camera
@@ -11,10 +11,10 @@ Change-Id: I002bfa974bafc2cc01365eeea31c7a5dcb5a2028
1 file changed, 22 insertions(+)
diff --git a/services/camera/libcameraservice/common/CameraProviderManager.cpp b/services/camera/libcameraservice/common/CameraProviderManager.cpp
index fac6e4e189..0ec647a941 100644
index 1ba3de49a2..3fffb03da8 100644
--- a/services/camera/libcameraservice/common/CameraProviderManager.cpp
+++ b/services/camera/libcameraservice/common/CameraProviderManager.cpp
@@ -38,6 +38,7 @@
@@ -40,6 +40,7 @@
#include <functional>
#include <camera_metadata_hidden.h>
#include <android-base/parseint.h>
@@ -22,7 +22,7 @@ index fac6e4e189..0ec647a941 100644
#include <android-base/logging.h>
#include <cutils/properties.h>
#include <hwbinder/IPCThreadState.h>
@@ -215,6 +216,15 @@ std::vector<std::string> CameraProviderManager::getCameraDeviceIds(std::unordere
@@ -261,6 +262,15 @@ std::vector<std::string> CameraProviderManager::getCameraDeviceIds(std::unordere
}
}
}
@@ -38,7 +38,7 @@ index fac6e4e189..0ec647a941 100644
return deviceIds;
}
@@ -281,6 +291,18 @@ std::vector<std::string> CameraProviderManager::getAPI1CompatibleCameraDeviceIds
@@ -327,6 +337,18 @@ std::vector<std::string> CameraProviderManager::getAPI1CompatibleCameraDeviceIds
std::sort(systemDeviceIds.begin(), systemDeviceIds.end(), sortFunc);
deviceIds.insert(deviceIds.end(), publicDeviceIds.begin(), publicDeviceIds.end());
deviceIds.insert(deviceIds.end(), systemDeviceIds.begin(), systemDeviceIds.end());

View File

@@ -1,4 +1,4 @@
From 39d57b92989f1c50c144fe2084a82b8b2b84d5e4 Mon Sep 17 00:00:00 2001
From 9b1b33604d6e17d5b2f2bfccf2a1eac5f8b1334e Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 13 Apr 2020 21:01:16 +0200
Subject: [PATCH 08/24] There are three SCO devices. Fallback from one to the
@@ -10,7 +10,7 @@ Change-Id: I414dcb6b154855c00cb8520b23dc1069827864b2
1 file changed, 21 insertions(+)
diff --git a/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp b/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp
index 5f14ee4623..166ab7acbb 100644
index cb45f5438b..ffefd5fa32 100644
--- a/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/HwModule.cpp
@@ -318,6 +318,27 @@ sp<HwModule> HwModuleCollection::getModuleForDeviceType(audio_devices_t type,

View File

@@ -1,4 +1,4 @@
From 6ce29da63cd824516e7472706e78e0f9704e9453 Mon Sep 17 00:00:00 2001
From 39b141bbcbcef2edb0837ca8b6e89330a48b5e94 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Thu, 14 May 2020 19:54:55 +0200
Subject: [PATCH 09/24] Add persist.sys.phh.samsung.camera_ids property to
@@ -11,22 +11,22 @@ Change-Id: I2c7bf535272acc28ed2277e96c78ddd28a0b4593
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/services/camera/libcameraservice/Android.bp b/services/camera/libcameraservice/Android.bp
index a45365ad53..25fd8451a9 100644
index 4883a09f37..080ccf646d 100644
--- a/services/camera/libcameraservice/Android.bp
+++ b/services/camera/libcameraservice/Android.bp
@@ -175,6 +175,7 @@ cc_library_shared {
"android.hardware.camera.device@3.6",
"android.hardware.camera.device@3.7",
"android.hardware.camera.device-V2-ndk",
@@ -107,6 +107,7 @@ cc_defaults {
"android.hardware.camera.provider@2.6",
"android.hardware.camera.provider@2.7",
"android.hardware.camera.provider-V3-ndk",
+ "vendor.samsung.hardware.camera.provider@3.0",
"media_permission-aidl-cpp",
],
"libaidlcommonsupport",
"libbinderthreadstateutils",
"libcameraservice_device_independent",
diff --git a/services/camera/libcameraservice/common/hidl/HidlProviderInfo.cpp b/services/camera/libcameraservice/common/hidl/HidlProviderInfo.cpp
index 8ff5c3fb01..d498ecbee5 100644
index d2643c1e13..71aabc14b3 100644
--- a/services/camera/libcameraservice/common/hidl/HidlProviderInfo.cpp
+++ b/services/camera/libcameraservice/common/hidl/HidlProviderInfo.cpp
@@ -27,6 +27,7 @@
@@ -28,6 +28,7 @@
#include <utils/Trace.h>
#include <android/hardware/camera/device/3.7/ICameraDevice.h>
@@ -34,7 +34,7 @@ index 8ff5c3fb01..d498ecbee5 100644
namespace {
const bool kEnableLazyHal(property_get_bool("ro.camera.enableLazyHal", false));
@@ -134,6 +135,7 @@ status_t HidlProviderInfo::initializeHidlProvider(
@@ -136,6 +137,7 @@ status_t HidlProviderInfo::initializeHidlProvider(
mMinorVersion = 6;
}
}
@@ -42,7 +42,7 @@ index 8ff5c3fb01..d498ecbee5 100644
// We need to check again since cast2_6.isOk() succeeds even if the provider
// version isn't actually 2.6.
if (interface2_6 == nullptr){
@@ -170,6 +172,9 @@ status_t HidlProviderInfo::initializeHidlProvider(
@@ -172,6 +174,9 @@ status_t HidlProviderInfo::initializeHidlProvider(
return mapToStatusT(status);
}
@@ -52,7 +52,7 @@ index 8ff5c3fb01..d498ecbee5 100644
hardware::Return<bool> linked = interface->linkToDeath(this, /*cookie*/ mId);
if (!linked.isOk()) {
ALOGE("%s: Transaction error in linking to camera provider '%s' death: %s",
@@ -200,7 +205,7 @@ status_t HidlProviderInfo::initializeHidlProvider(
@@ -202,7 +207,7 @@ status_t HidlProviderInfo::initializeHidlProvider(
// Get initial list of camera devices, if any
std::vector<std::string> devices;
@@ -61,7 +61,7 @@ index 8ff5c3fb01..d498ecbee5 100644
Status idStatus,
const hardware::hidl_vec<hardware::hidl_string>& cameraDeviceNames) {
status = idStatus;
@@ -217,7 +222,12 @@ status_t HidlProviderInfo::initializeHidlProvider(
@@ -219,7 +224,12 @@ status_t HidlProviderInfo::initializeHidlProvider(
mProviderPublicCameraIds.push_back(id);
}
}

View File

@@ -1,4 +1,4 @@
From 603a86094ca5d2daf1c28ce6ee72110f13526c7f Mon Sep 17 00:00:00 2001
From 924c9942ae267e00676623718996f34478a9e541 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 19 May 2020 14:01:14 +0200
Subject: [PATCH 10/24] Add a property to force camera timestamp source
@@ -18,10 +18,10 @@ timestamp source.
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/services/camera/libcameraservice/device3/Camera3Device.cpp b/services/camera/libcameraservice/device3/Camera3Device.cpp
index 54176f9a96..81a1faca83 100644
index bdf77993ea..44394ac6ff 100644
--- a/services/camera/libcameraservice/device3/Camera3Device.cpp
+++ b/services/camera/libcameraservice/device3/Camera3Device.cpp
@@ -211,8 +211,16 @@ status_t Camera3Device::initializeCommonLocked() {
@@ -218,8 +218,16 @@ status_t Camera3Device::initializeCommonLocked() {
mTimestampOffset = getMonoToBoottimeOffset();
camera_metadata_entry timestampSource =
mDeviceInfo.find(ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE);

View File

@@ -1,4 +1,4 @@
From ffca95eba859a2b763b6d2b7221bc96aeeef764b Mon Sep 17 00:00:00 2001
From 2770f16ee043c697256171eef02146114ce70890 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 24 Apr 2018 00:14:28 +0200
Subject: [PATCH 11/24] FIH devices: Fix "Earpiece" audio output
@@ -16,7 +16,7 @@ Change-Id: I4a88ba6d34d0fcd346eeea2ca903772f0271040a
1 file changed, 24 insertions(+), 3 deletions(-)
diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
index 53fabcc71e..83eafc2f79 100644
index 21d3282134..6ee076660b 100644
--- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
@@ -416,23 +416,32 @@ std::variant<status_t, AudioGainTraits::Element> PolicySerializer::deserialize<A
@@ -67,7 +67,7 @@ index 53fabcc71e..83eafc2f79 100644
if (status != NO_ERROR) {
return status;
}
@@ -882,6 +895,14 @@ std::variant<status_t, ModuleTraits::Element> PolicySerializer::deserialize<Modu
@@ -892,6 +905,14 @@ std::variant<status_t, ModuleTraits::Element> PolicySerializer::deserialize<Modu
}
}
}

View File

@@ -1,4 +1,4 @@
From 0066e121e5d68b9dcd5b288c1cb94ef41a8cb66c Mon Sep 17 00:00:00 2001
From 74fbe339a37e281023053dc2ede79568b6d3b280 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sat, 12 Sep 2020 12:32:50 +0200
Subject: [PATCH 12/24] No longer make re-assigning legacy audio groups fatal.
@@ -11,10 +11,10 @@ Change-Id: I794fe22d63a8af705be4f5f09b9879ecaab3eae5
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/services/audiopolicy/engine/common/src/EngineBase.cpp b/services/audiopolicy/engine/common/src/EngineBase.cpp
index 218aff80e6..c7ea035191 100644
index e259e6e048..abd8786b4a 100644
--- a/services/audiopolicy/engine/common/src/EngineBase.cpp
+++ b/services/audiopolicy/engine/common/src/EngineBase.cpp
@@ -245,9 +245,9 @@ engineConfig::ParsingResult EngineBase::processParsingResult(
@@ -264,9 +264,9 @@ engineConfig::ParsingResult EngineBase::processParsingResult(
}
if (group.stream != AUDIO_STREAM_DEFAULT) {
// A legacy stream can be assigned once to a volume group

View File

@@ -1,4 +1,4 @@
From e06b7885df0180f6e270ed31e095bda0622e217e Mon Sep 17 00:00:00 2001
From f455aa5e0d283d4a0f06869f3f7acdeb2b7ffc4e Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 21 Dec 2020 20:19:11 +0100
Subject: [PATCH 13/24] Make camera IDs filter-out optional
@@ -11,10 +11,10 @@ Add a property for that.
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/services/camera/libcameraservice/common/CameraProviderManager.cpp b/services/camera/libcameraservice/common/CameraProviderManager.cpp
index 0ec647a941..bba0fedaea 100644
index 3fffb03da8..ab6cb6bd57 100644
--- a/services/camera/libcameraservice/common/CameraProviderManager.cpp
+++ b/services/camera/libcameraservice/common/CameraProviderManager.cpp
@@ -265,7 +265,9 @@ std::vector<std::string> CameraProviderManager::getAPI1CompatibleCameraDeviceIds
@@ -311,7 +311,9 @@ std::vector<std::string> CameraProviderManager::getAPI1CompatibleCameraDeviceIds
// API1 app doesn't handle logical and physical camera devices well. So
// for each camera facing, only take the first id advertised by HAL in
// all [logical, physical1, physical2, ...] id combos, and filter out the rest.
@@ -25,7 +25,7 @@ index 0ec647a941..bba0fedaea 100644
collectDeviceIdsLocked(providerDeviceIds, publicDeviceIds, systemDeviceIds);
}
auto sortFunc =
@@ -997,10 +999,12 @@ SystemCameraKind CameraProviderManager::ProviderInfo::DeviceInfo3::getSystemCame
@@ -1108,10 +1110,12 @@ SystemCameraKind CameraProviderManager::ProviderInfo::DeviceInfo3::getSystemCame
// Go through the capabilities and check if it has
// ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA

View File

@@ -1,4 +1,4 @@
From 6ef49b5b9ad8c15081a18b4b7ad06112ff784993 Mon Sep 17 00:00:00 2001
From 665d173a566745531c3568e958079fabdd4aa857 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sat, 13 Mar 2021 14:20:03 -0500
Subject: [PATCH 14/24] Support Samsung R multi-cams
@@ -10,22 +10,22 @@ Change-Id: If46f385e8dd16185cbf37ab083e6a1242e1d1555
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/services/camera/libcameraservice/Android.bp b/services/camera/libcameraservice/Android.bp
index 25fd8451a9..3136bbd30f 100644
index 080ccf646d..1ece884867 100644
--- a/services/camera/libcameraservice/Android.bp
+++ b/services/camera/libcameraservice/Android.bp
@@ -176,6 +176,7 @@ cc_library_shared {
"android.hardware.camera.device@3.7",
"android.hardware.camera.device-V2-ndk",
@@ -108,6 +108,7 @@ cc_defaults {
"android.hardware.camera.provider@2.7",
"android.hardware.camera.provider-V3-ndk",
"vendor.samsung.hardware.camera.provider@3.0",
+ "vendor.samsung.hardware.camera.provider@4.0",
"media_permission-aidl-cpp",
],
"libaidlcommonsupport",
"libbinderthreadstateutils",
"libcameraservice_device_independent",
diff --git a/services/camera/libcameraservice/common/hidl/HidlProviderInfo.cpp b/services/camera/libcameraservice/common/hidl/HidlProviderInfo.cpp
index d498ecbee5..587d3eeda7 100644
index 71aabc14b3..aefd6c3d4f 100644
--- a/services/camera/libcameraservice/common/hidl/HidlProviderInfo.cpp
+++ b/services/camera/libcameraservice/common/hidl/HidlProviderInfo.cpp
@@ -28,6 +28,7 @@
@@ -29,6 +29,7 @@
#include <android/hardware/camera/device/3.7/ICameraDevice.h>
#include <vendor/samsung/hardware/camera/provider/3.0/ISehCameraProvider.h>
@@ -33,7 +33,7 @@ index d498ecbee5..587d3eeda7 100644
namespace {
const bool kEnableLazyHal(property_get_bool("ro.camera.enableLazyHal", false));
@@ -173,7 +174,9 @@ status_t HidlProviderInfo::initializeHidlProvider(
@@ -175,7 +176,9 @@ status_t HidlProviderInfo::initializeHidlProvider(
}
auto samsungCast = vendor::samsung::hardware::camera::provider::V3_0::ISehCameraProvider::castFrom(interface);
@@ -43,7 +43,7 @@ index d498ecbee5..587d3eeda7 100644
hardware::Return<bool> linked = interface->linkToDeath(this, /*cookie*/ mId);
if (!linked.isOk()) {
@@ -211,6 +214,7 @@ status_t HidlProviderInfo::initializeHidlProvider(
@@ -213,6 +216,7 @@ status_t HidlProviderInfo::initializeHidlProvider(
status = idStatus;
if (status == Status::OK) {
for (auto& name : cameraDeviceNames) {
@@ -51,7 +51,7 @@ index d498ecbee5..587d3eeda7 100644
uint16_t major, minor;
std::string type, id;
status_t res = parseDeviceName(name, &major, &minor, &type, &id);
@@ -224,7 +228,9 @@ status_t HidlProviderInfo::initializeHidlProvider(
@@ -226,7 +230,9 @@ status_t HidlProviderInfo::initializeHidlProvider(
}
} };
hardware::Return<void> ret;

View File

@@ -1,26 +0,0 @@
From 82c8c088952068c4d157839aac4011e943e0aa6a Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 23 Mar 2021 00:16:42 +0100
Subject: [PATCH 15/24] Don't crash on unknown audio devices
Change-Id: I2df8d88f742da6a84aa8888cdf19de25444de919
---
.../audiopolicy/common/managerdefinitions/src/Serializer.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
index 83eafc2f79..91fc5f57da 100644
--- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
@@ -867,7 +867,7 @@ std::variant<status_t, ModuleTraits::Element> PolicySerializer::deserialize<Modu
sp<DeviceDescriptor> device = module->getDeclaredDevices().
getDeviceFromTagName(std::string(reinterpret_cast<const char*>(
attachedDevice.get())));
- if (device == nullptr && mIgnoreVendorExtensions) {
+ if (device == nullptr) {
ALOGW("Skipped attached device \"%s\" because it likely uses a vendor"
"extension type",
reinterpret_cast<const char*>(attachedDevice.get()));
--
2.34.1

View File

@@ -1,7 +1,7 @@
From 127db05e06dd0963bc883c86ffd44425a3011900 Mon Sep 17 00:00:00 2001
From 4e599885f71f64964ede94de8a4d9bc01a6f882f Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 28 Mar 2021 18:54:47 +0200
Subject: [PATCH 16/24] Not all sources in a route are valid. Dont ignore the
Subject: [PATCH 15/24] Not all sources in a route are valid. Dont ignore the
whole route because of one broken source
Change-Id: If8a51740e71bef3a4738262ad7b43a337b0ec36d
@@ -10,18 +10,18 @@ Change-Id: If8a51740e71bef3a4738262ad7b43a337b0ec36d
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
index 91fc5f57da..d2fcc13b00 100644
index 6ee076660b..146c78b8f6 100644
--- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
@@ -667,7 +667,7 @@ std::variant<status_t, RouteTraits::Element> PolicySerializer::deserialize<Route
if (source == NULL) {
@@ -670,7 +670,7 @@ std::variant<status_t, RouteTraits::Element> PolicySerializer::deserialize<Route
source = ctx->findPortByTagName(trim(devTag));
}
- if (source == NULL && !mIgnoreVendorExtensions) {
+ if (source == NULL && false) {
ALOGE("%s: no source found with name=%s", __func__, devTag);
return BAD_VALUE;
} else if (source == NULL) {
}
if (source == NULL) {
- if (!mIgnoreVendorExtensions) {
+ if (false && !mIgnoreVendorExtensions) {
ALOGE("%s: no source found with name \"%s\"", __func__, devTag);
return BAD_VALUE;
} else {
--
2.34.1

View File

@@ -1,7 +1,7 @@
From 5126e56dfe7f129e73991697008b826e5e55fe24 Mon Sep 17 00:00:00 2001
From b91e6acca8daa1ea9372cc74f9da70f0a9c196ec Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 28 Mar 2021 14:48:49 +0200
Subject: [PATCH 17/24] Use a fake volume policy when none has been found
Subject: [PATCH 16/24] Use a fake volume policy when none has been found
This is useful, because on Samsung devices, the "real"
(=non-gsi-cheating) audio policy doesn't have any volume policy.

View File

@@ -1,7 +1,7 @@
From a0f9fc2e8b386ee9e3c1064bfb076306e901f187 Mon Sep 17 00:00:00 2001
From eb45c9ea30fbf316b31002f0ad5f14f5db4609f2 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Mon, 11 Oct 2021 16:10:42 -0400
Subject: [PATCH 18/24] Revert "Remove support for audio HAL V2 from the
Subject: [PATCH 17/24] Revert "Remove support for audio HAL V2 from the
framework"
This reverts commit cbf517f837f7bf8a59f3ff8aa1e0e3e19612e251.
@@ -51,7 +51,7 @@ index f88915d7f4..24e5adbae3 100644
static const std::map<AudioHalVersionInfo::Type, InterfaceName> sDevicesHALInterfaces = {
diff --git a/media/libaudiohal/impl/Android.bp b/media/libaudiohal/impl/Android.bp
index 16893655f0..1271756bd1 100644
index fb1cc34932..61611965df 100644
--- a/media/libaudiohal/impl/Android.bp
+++ b/media/libaudiohal/impl/Android.bp
@@ -82,6 +82,32 @@ cc_defaults {
@@ -88,10 +88,10 @@ index 16893655f0..1271756bd1 100644
name: "libaudiohal@4.0",
defaults: [
diff --git a/media/libaudiohal/impl/DeviceHalHidl.cpp b/media/libaudiohal/impl/DeviceHalHidl.cpp
index 0d71fd338c..c228bf7a6f 100644
index af5d4bdea0..2f3c6bf390 100644
--- a/media/libaudiohal/impl/DeviceHalHidl.cpp
+++ b/media/libaudiohal/impl/DeviceHalHidl.cpp
@@ -577,6 +577,7 @@ status_t DeviceHalHidl::setConnectedState(const struct audio_port_v7 *port, bool
@@ -587,6 +587,7 @@ status_t DeviceHalHidl::setConnectedState(const struct audio_port_v7 *port, bool
// call is successful. Also remove the cache here to avoid a large cache after a long run.
return NO_ERROR;
}
@@ -99,7 +99,7 @@ index 0d71fd338c..c228bf7a6f 100644
#if MAJOR_VERSION == 7 && MINOR_VERSION == 1
if (supportsSetConnectedState7_1) {
AudioPort hidlPort;
@@ -599,11 +600,17 @@ status_t DeviceHalHidl::setConnectedState(const struct audio_port_v7 *port, bool
@@ -609,11 +610,17 @@ status_t DeviceHalHidl::setConnectedState(const struct audio_port_v7 *port, bool
return result;
}
return processReturn("setConnectedState", mDevice->setConnectedState(hidlAddress, connected));
@@ -117,7 +117,7 @@ index 0d71fd338c..c228bf7a6f 100644
audio_hw_sync_t value;
Result result;
Return<void> ret = mDevice->getHwAvSync([&value, &result](Result r, audio_hw_sync_t v) {
@@ -612,6 +619,9 @@ error::Result<audio_hw_sync_t> DeviceHalHidl::getHwAvSync() {
@@ -622,6 +629,9 @@ error::Result<audio_hw_sync_t> DeviceHalHidl::getHwAvSync() {
});
RETURN_IF_ERROR(processReturn("getHwAvSync", ret, result));
return value;

View File

@@ -1,7 +1,7 @@
From 217bd49b1255e5a98e3c9dc0db3f0be15e395b8c Mon Sep 17 00:00:00 2001
From 35dc2d2da3770e5d5ceb13efa54a71b185284838 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sat, 16 Apr 2022 14:30:14 -0400
Subject: [PATCH 19/24] Add a prop to change Samsung flash strength
Subject: [PATCH 18/24] Add a prop to change Samsung flash strength
---
services/camera/libcameraservice/Android.bp | 2 ++
@@ -9,23 +9,23 @@ Subject: [PATCH 19/24] Add a prop to change Samsung flash strength
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/services/camera/libcameraservice/Android.bp b/services/camera/libcameraservice/Android.bp
index 3136bbd30f..7ef870c1eb 100644
index 1ece884867..6599763814 100644
--- a/services/camera/libcameraservice/Android.bp
+++ b/services/camera/libcameraservice/Android.bp
@@ -177,6 +177,8 @@ cc_library_shared {
"android.hardware.camera.device-V2-ndk",
"vendor.samsung.hardware.camera.provider@3.0",
"vendor.samsung.hardware.camera.provider@4.0",
@@ -83,6 +83,8 @@ cc_defaults {
"android.hardware.camera.device@3.5",
"android.hardware.camera.device@3.6",
"android.hardware.camera.device@3.7",
+ "vendor.samsung.hardware.camera.device@5.0",
+ "vendor.samsung.hardware.camera.device@4.0",
"media_permission-aidl-cpp",
],
"android.hardware.common-V2-ndk",
"android.hardware.common.fmq-V1-ndk",
"camera_platform_flags_c_lib",
diff --git a/services/camera/libcameraservice/common/hidl/HidlProviderInfo.cpp b/services/camera/libcameraservice/common/hidl/HidlProviderInfo.cpp
index 587d3eeda7..a345d6a2bf 100644
index aefd6c3d4f..2412f82c37 100644
--- a/services/camera/libcameraservice/common/hidl/HidlProviderInfo.cpp
+++ b/services/camera/libcameraservice/common/hidl/HidlProviderInfo.cpp
@@ -29,6 +29,8 @@
@@ -30,6 +30,8 @@
#include <android/hardware/camera/device/3.7/ICameraDevice.h>
#include <vendor/samsung/hardware/camera/provider/3.0/ISehCameraProvider.h>
#include <vendor/samsung/hardware/camera/provider/4.0/ISehCameraProvider.h>
@@ -34,7 +34,7 @@ index 587d3eeda7..a345d6a2bf 100644
namespace {
const bool kEnableLazyHal(property_get_bool("ro.camera.enableLazyHal", false));
@@ -783,7 +785,23 @@ HidlProviderInfo::HidlDeviceInfo3::HidlDeviceInfo3(
@@ -804,7 +806,23 @@ HidlProviderInfo::HidlDeviceInfo3::HidlDeviceInfo3(
status_t HidlProviderInfo::HidlDeviceInfo3::setTorchMode(bool enabled) {
using hardware::camera::common::V1_0::TorchMode;
const sp<hardware::camera::device::V3_2::ICameraDevice> interface = startDeviceInterface();

View File

@@ -1,14 +1,14 @@
From 35e06c722ccee32176fe646dd8e59940df9a83ba Mon Sep 17 00:00:00 2001
From 549f75e70fdc11d688bbb1df9f326a46f9000953 Mon Sep 17 00:00:00 2001
From: ponces <ponces26@gmail.com>
Date: Mon, 24 Oct 2022 09:38:34 +0100
Subject: [PATCH 20/24] voip: Fix high pitched voice on Qualcomm devices
Subject: [PATCH 19/24] voip: Fix high pitched voice on Qualcomm devices
---
.../common/managerdefinitions/src/Serializer.cpp | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
index d2fcc13b00..fc6cc72c1c 100644
index 146c78b8f6..b9f71cc42b 100644
--- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
@@ -252,6 +252,7 @@ private:

View File

@@ -0,0 +1,40 @@
From 3eb988f5a5eba090129128fd88d518ca2f445a77 Mon Sep 17 00:00:00 2001
From: Alberto Ponces <ponces26@gmail.com>
Date: Sun, 30 Apr 2023 23:29:04 +0100
Subject: [PATCH 20/24] audiopolicy: Fix broken mic while video recording on
some Exynos devices
This should fix https://github.com/phhusson/treble_experimentations/issues/2021 and https://github.com/phhusson/treble_experimentations/issues/2384.
Credits to @haridhayal11.
---
.../common/managerdefinitions/src/Serializer.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
index b9f71cc42b..77a96b47a4 100644
--- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
@@ -662,6 +662,9 @@ std::variant<status_t, RouteTraits::Element> PolicySerializer::deserialize<Route
}
route->setSink(sink);
+ // This fixes broken mic while video record on some Exynos devices
+ bool disableBackMic = property_get_bool("persist.sys.phh.disable_back_mic", false);
+
std::string sourcesAttr = getXmlAttribute(cur, Attributes::sources);
if (sourcesAttr.empty()) {
ALOGE("%s: No %s found", __func__, Attributes::sources);
@@ -678,6 +681,10 @@ std::variant<status_t, RouteTraits::Element> PolicySerializer::deserialize<Route
if (source == NULL) {
source = ctx->findPortByTagName(trim(devTag));
}
+ if (disableBackMic && strcmp(devTag, "Built-In Back Mic") == 0) {
+ ALOGW("Skipping route source \"%s\" as it breaks video recording mic", devTag);
+ source = NULL;
+ }
if (source == NULL) {
if (false && !mIgnoreVendorExtensions) {
ALOGE("%s: no source found with name \"%s\"", __func__, devTag);
--
2.34.1

View File

@@ -1,7 +1,7 @@
From 7e954a9afe0ab43a7f3b2eb0ad9b58b338e5e0ce Mon Sep 17 00:00:00 2001
From a2e4a50178fd41f0cb039373af1a4a3169d77386 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 30 Oct 2023 10:30:58 -0400
Subject: [PATCH 22/24] Add a prop to disable AUDIO_OUTPUT_FLAG_FAST from audio
Subject: [PATCH 21/24] Add a prop to disable AUDIO_OUTPUT_FLAG_FAST from audio
policies, when CPU can't really handle that kind of load
---
@@ -9,7 +9,7 @@ Subject: [PATCH 22/24] Add a prop to disable AUDIO_OUTPUT_FLAG_FAST from audio
1 file changed, 4 insertions(+)
diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
index 8b3a1f0e4f..913cbc0e90 100644
index 77a96b47a4..26edcaa1c4 100644
--- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
@@ -504,6 +504,10 @@ std::variant<status_t, MixPortTraits::Element> PolicySerializer::deserialize<Mix

View File

@@ -1,64 +0,0 @@
From 151098b94d9a2b3d0ae30f825a52d479172bbde1 Mon Sep 17 00:00:00 2001
From: Alberto Ponces <ponces26@gmail.com>
Date: Sun, 30 Apr 2023 23:29:04 +0100
Subject: [PATCH 21/24] audiopolicy: Fix broken mic while video recording on
some Exynos devices This should fix
https://github.com/phhusson/treble_experimentations/issues/2021 and
https://github.com/phhusson/treble_experimentations/issues/2384. Credits to
@haridhayal11.
---
.../managerdefinitions/src/Serializer.cpp | 29 ++++++++++++-------
1 file changed, 18 insertions(+), 11 deletions(-)
diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
index fc6cc72c1c..8b3a1f0e4f 100644
--- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
@@ -660,6 +660,9 @@ std::variant<status_t, RouteTraits::Element> PolicySerializer::deserialize<Route
}
route->setSink(sink);
+ // This fixes broken mic while video record on some Exynos devices
+ bool disableBackMic = property_get_bool("persist.sys.phh.disable_back_mic", false);
+
std::string sourcesAttr = getXmlAttribute(cur, Attributes::sources);
if (sourcesAttr.empty()) {
ALOGE("%s: No %s found", __func__, Attributes::sources);
@@ -672,18 +675,22 @@ std::variant<status_t, RouteTraits::Element> PolicySerializer::deserialize<Route
char *devTag = strtok(sourcesLiteral.get(), ",");
while (devTag != NULL) {
if (strlen(devTag) != 0) {
- sp<PolicyAudioPort> source = ctx->findPortByTagName(devTag);
- if (source == NULL) {
- source = ctx->findPortByTagName(trim(devTag));
- }
- if (source == NULL && false) {
- ALOGE("%s: no source found with name=%s", __func__, devTag);
- return BAD_VALUE;
- } else if (source == NULL) {
- ALOGW("Skipping route source \"%s\" as it likely has vendor extension type",
- devTag);
+ if (disableBackMic && strcmp(devTag, "Built-In Back Mic") == 0) {
+ ALOGW("Skipping route source \"%s\" as it breaks video recording mic", devTag);
} else {
- sources.add(source);
+ sp<PolicyAudioPort> source = ctx->findPortByTagName(devTag);
+ if (source == NULL) {
+ source = ctx->findPortByTagName(trim(devTag));
+ }
+ if (source == NULL && false) {
+ ALOGE("%s: no source found with name=%s", __func__, devTag);
+ return BAD_VALUE;
+ } else if (source == NULL) {
+ ALOGW("Skipping route source \"%s\" as it likely has vendor extension type",
+ devTag);
+ } else {
+ sources.add(source);
+ }
}
}
devTag = strtok(NULL, ",");
--
2.34.1

View File

@@ -1,20 +1,20 @@
From e19f041d8f670730392fa3c8d792133687216057 Mon Sep 17 00:00:00 2001
From 400c8f19e138e8013518f179818dccff84b1b90f Mon Sep 17 00:00:00 2001
From: Alberto Ponces <ponces26@gmail.com>
Date: Sun, 5 Nov 2023 15:18:03 +0000
Subject: [PATCH 23/24] Add a prop to fix echo on incoming or outgoing calls
Subject: [PATCH 22/24] Add a prop to fix echo on incoming or outgoing calls
May even fix audio calls altogether.
Change-Id: I3a05608ad7b3f0876160d5f6a12b7c529b8f0961
---
.../common/managerdefinitions/src/Serializer.cpp | 6 ++++++
1 file changed, 6 insertions(+)
.../common/managerdefinitions/src/Serializer.cpp | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
index 913cbc0e90..6bf5d14c3c 100644
index 26edcaa1c4..059e4adfa1 100644
--- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
+++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
@@ -667,6 +667,9 @@ std::variant<status_t, RouteTraits::Element> PolicySerializer::deserialize<Route
@@ -669,6 +669,9 @@ std::variant<status_t, RouteTraits::Element> PolicySerializer::deserialize<Route
// This fixes broken mic while video record on some Exynos devices
bool disableBackMic = property_get_bool("persist.sys.phh.disable_back_mic", false);
@@ -24,16 +24,23 @@ index 913cbc0e90..6bf5d14c3c 100644
std::string sourcesAttr = getXmlAttribute(cur, Attributes::sources);
if (sourcesAttr.empty()) {
ALOGE("%s: No %s found", __func__, Attributes::sources);
@@ -681,6 +684,9 @@ std::variant<status_t, RouteTraits::Element> PolicySerializer::deserialize<Route
if (strlen(devTag) != 0) {
@@ -685,10 +688,16 @@ std::variant<status_t, RouteTraits::Element> PolicySerializer::deserialize<Route
if (source == NULL) {
source = ctx->findPortByTagName(trim(devTag));
}
+
if (disableBackMic && strcmp(devTag, "Built-In Back Mic") == 0) {
ALOGW("Skipping route source \"%s\" as it breaks video recording mic", devTag);
source = NULL;
+ } else if (disableVoiceCallIn && strcmp(devTag, "Voice Call In") == 0 &&
+ (sinkAttr == "voice tx" || sinkAttr == "voice_tx")) {
+ ALOGW("Skipping route source \"%s\" as it breaks audio on calls", devTag);
} else {
sp<PolicyAudioPort> source = ctx->findPortByTagName(devTag);
if (source == NULL) {
+ source = NULL;
}
+
if (source == NULL) {
if (false && !mIgnoreVendorExtensions) {
ALOGE("%s: no source found with name \"%s\"", __func__, devTag);
--
2.34.1

View File

@@ -1,7 +1,7 @@
From d780d481954070610f88fa7aa35ed1581374ea98 Mon Sep 17 00:00:00 2001
From e4ec1cdfa0672fb9837e9b9ed843261c01eff535 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 7 Feb 2024 05:06:32 -0500
Subject: [PATCH 24/24] Include Samsung AIDL camera ids
Subject: [PATCH 23/24] Include Samsung AIDL camera ids
---
services/camera/libcameraservice/Android.bp | 1 +
@@ -9,22 +9,22 @@ Subject: [PATCH 24/24] Include Samsung AIDL camera ids
2 files changed, 22 insertions(+)
diff --git a/services/camera/libcameraservice/Android.bp b/services/camera/libcameraservice/Android.bp
index 7ef870c1eb..43a1ebd8ee 100644
index 6599763814..d5957fc7cc 100644
--- a/services/camera/libcameraservice/Android.bp
+++ b/services/camera/libcameraservice/Android.bp
@@ -179,6 +179,7 @@ cc_library_shared {
@@ -111,6 +111,7 @@ cc_defaults {
"android.hardware.camera.provider-V3-ndk",
"vendor.samsung.hardware.camera.provider@3.0",
"vendor.samsung.hardware.camera.provider@4.0",
"vendor.samsung.hardware.camera.device@5.0",
"vendor.samsung.hardware.camera.device@4.0",
+ "vendor.samsung.hardware.camera.provider-V1-ndk",
"media_permission-aidl-cpp",
],
"libaidlcommonsupport",
"libbinderthreadstateutils",
"libcameraservice_device_independent",
diff --git a/services/camera/libcameraservice/common/aidl/AidlProviderInfo.cpp b/services/camera/libcameraservice/common/aidl/AidlProviderInfo.cpp
index b18cbd41a4..9ea1bee67d 100644
index d773af3e9a..99ddcc129b 100644
--- a/services/camera/libcameraservice/common/aidl/AidlProviderInfo.cpp
+++ b/services/camera/libcameraservice/common/aidl/AidlProviderInfo.cpp
@@ -28,6 +28,8 @@
@@ -30,6 +30,8 @@
#include <utils/SessionConfigurationUtils.h>
#include <utils/Trace.h>
@@ -33,7 +33,7 @@ index b18cbd41a4..9ea1bee67d 100644
namespace {
const bool kEnableLazyHal(property_get_bool("ro.camera.enableLazyHal", false));
} // anonymous namespace
@@ -155,6 +157,25 @@ status_t AidlProviderInfo::initializeAidlProvider(
@@ -170,6 +172,25 @@ status_t AidlProviderInfo::initializeAidlProvider(
return mapToStatusT(status);
}

View File

@@ -0,0 +1,106 @@
From 7d501facc77ebb625927748e30fbaffbfdf87b96 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sat, 10 Feb 2024 09:30:19 -0500
Subject: [PATCH 24/24] Allow using camera modes declared in Samsung
proprietary values
---
.../utils/SessionConfigurationUtils.cpp | 79 +++++++++++++------
1 file changed, 53 insertions(+), 26 deletions(-)
diff --git a/services/camera/libcameraservice/utils/SessionConfigurationUtils.cpp b/services/camera/libcameraservice/utils/SessionConfigurationUtils.cpp
index f03ebd84fe..7ead9b194f 100644
--- a/services/camera/libcameraservice/utils/SessionConfigurationUtils.cpp
+++ b/services/camera/libcameraservice/utils/SessionConfigurationUtils.cpp
@@ -168,35 +168,62 @@ bool roundBufferDimensionNearest(int32_t width, int32_t height,
bool isJpegRDataSpace = (dataSpace == static_cast<android_dataspace_t>(
::aidl::android::hardware::graphics::common::Dataspace::JPEG_R));
- camera_metadata_ro_entry streamConfigs =
- (isJpegRDataSpace) ? info.find(jpegRSizesTag) :
- (dataSpace == HAL_DATASPACE_DEPTH) ? info.find(depthSizesTag) :
- (dataSpace == static_cast<android_dataspace>(HAL_DATASPACE_HEIF)) ?
- info.find(heicSizesTag) :
- info.find(scalerSizesTag);
+ bool isDepth = dataSpace == HAL_DATASPACE_DEPTH;
+ bool isHeif = dataSpace == static_cast<android_dataspace>(HAL_DATASPACE_HEIF);
+ int32_t selectedTag = isJpegRDataSpace ? jpegRSizesTag :
+ isDepth ? depthSizesTag :
+ isHeif ? heicSizesTag : scalerSizesTag;
+
+ std::list<int32_t> tags = { selectedTag };
+ if (selectedTag == scalerSizesTag) {
+ sp<VendorTagDescriptor> vTags;
+ sp<VendorTagDescriptorCache> cache = VendorTagDescriptorCache::getGlobalVendorTagCache();
+ if (cache.get()) {
+ auto vendorId = const_cast<CameraMetadata*>(&info)->getVendorId(); // getVendorId is actually const...
+ cache->getVendorTagDescriptor(vendorId, &vTags);
+ }
+
+ std::list<std::string> vendorTags = {
+ "samsung.android.scaler.availablePictureStreamConfigurations",
+ "samsung.android.scaler.availablePreviewStreamConfigurations",
+ "samsung.android.scaler.availableThumbnailStreamConfigurations",
+ };
+ for(auto tagName: vendorTags) {
+ uint32_t vendorTag;
+ status_t tagStatus = info.getTagFromName(tagName.c_str(), vTags.get(), &vendorTag);
+ //ALOGE("Tag by name %s %d %x", tagName.c_str(), tagStatus, vendorTag);
+ if (tagStatus == OK)
+ tags.push_back(vendorTag);
+ }
+ }
int32_t bestWidth = -1;
int32_t bestHeight = -1;
-
- // Iterate through listed stream configurations and find the one with the smallest euclidean
- // distance from the given dimensions for the given format.
- for (size_t i = 0; i < streamConfigs.count; i += 4) {
- int32_t fmt = streamConfigs.data.i32[i];
- int32_t w = streamConfigs.data.i32[i + 1];
- int32_t h = streamConfigs.data.i32[i + 2];
-
- // Ignore input/output type for now
- if (fmt == format) {
- if (w == width && h == height) {
- bestWidth = width;
- bestHeight = height;
- break;
- } else if (w <= ROUNDING_WIDTH_CAP && (bestWidth == -1 ||
- SessionConfigurationUtils::euclidDistSquare(w, h, width, height) <
- SessionConfigurationUtils::euclidDistSquare(bestWidth, bestHeight, width,
- height))) {
- bestWidth = w;
- bestHeight = h;
+ for(auto tag: tags) {
+ camera_metadata_ro_entry streamConfigs =
+ info.find(tag);
+
+
+ // Iterate through listed stream configurations and find the one with the smallest euclidean
+ // distance from the given dimensions for the given format.
+ for (size_t i = 0; i < streamConfigs.count; i += 4) {
+ int32_t fmt = streamConfigs.data.i32[i];
+ int32_t w = streamConfigs.data.i32[i + 1];
+ int32_t h = streamConfigs.data.i32[i + 2];
+
+ // Ignore input/output type for now
+ if (fmt == format) {
+ if (w == width && h == height) {
+ bestWidth = width;
+ bestHeight = height;
+ break;
+ } else if (w <= ROUNDING_WIDTH_CAP && (bestWidth == -1 ||
+ SessionConfigurationUtils::euclidDistSquare(w, h, width, height) <
+ SessionConfigurationUtils::euclidDistSquare(bestWidth, bestHeight, width,
+ height))) {
+ bestWidth = w;
+ bestHeight = h;
+ }
}
}
}
--
2.34.1

View File

@@ -1,4 +1,4 @@
From 16bd746b4407edc79b799a89cb16850b89c90b6b Mon Sep 17 00:00:00 2001
From d8e5913abba9f2de9a476124219dc804eac930e0 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 5 Oct 2021 17:59:16 -0400
Subject: [PATCH 01/50] Fallback to stupid autobrightness if brightness values
@@ -14,25 +14,25 @@ Change-Id: Ieb679b34239013a5e31b34cb010b12febd9ef6d9
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/services/core/java/com/android/server/display/DisplayDeviceConfig.java b/services/core/java/com/android/server/display/DisplayDeviceConfig.java
index 2464eb0141b8..b0ebab8e4002 100644
index d97127c91fbf..3dcb84dad786 100644
--- a/services/core/java/com/android/server/display/DisplayDeviceConfig.java
+++ b/services/core/java/com/android/server/display/DisplayDeviceConfig.java
@@ -777,9 +777,14 @@ public class DisplayDeviceConfig {
* @return A configuration instance.
@@ -897,9 +897,14 @@ public class DisplayDeviceConfig {
*/
public static DisplayDeviceConfig create(Context context, boolean useConfigXml) {
public static DisplayDeviceConfig create(Context context, boolean useConfigXml,
DisplayManagerFlags flags) {
- final DisplayDeviceConfig config;
+ DisplayDeviceConfig config;
if (useConfigXml) {
- config = getConfigFromGlobalXml(context);
- config = getConfigFromGlobalXml(context, flags);
+ try {
+ config = getConfigFromGlobalXml(context);
+ config = getConfigFromGlobalXml(context, flags);
+ } catch(Exception e) {
+ android.util.Log.e("PHH", "Failed parsing automatic brightness values, fallbacking", e);
+ config = getConfigFromPmValues(context);
+ config = getConfigFromPmValues(context, flags);
+ }
} else {
config = getConfigFromPmValues(context);
config = getConfigFromPmValues(context, flags);
}
--
2.34.1

View File

@@ -1,4 +1,4 @@
From e63c11343cbaf133b302ce98b44ebea59e5a0217 Mon Sep 17 00:00:00 2001
From 3d14aac0ee3a37ed0fcad87c1eae170300b92326 Mon Sep 17 00:00:00 2001
From: Raphael Mounier <mounierr07@gmail.com>
Date: Sat, 6 Aug 2022 18:08:36 +0200
Subject: [PATCH 02/50] Fix env empty string - ANDROID_STORAGE

View File

@@ -1,4 +1,4 @@
From bb3c0d66940957431ea2337577806f91a721bb4b Mon Sep 17 00:00:00 2001
From 9b53e0b92842a042d0fe30428ab379fc59a13c61 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 28 Nov 2017 18:28:04 +0100
Subject: [PATCH 03/50] Relax requirement for visible flag to sdcards
@@ -13,10 +13,10 @@ Change-Id: Ia616671c03562d1eadaff5531a5c708a62d7ad3a
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
index f114ad86f028..05f1f0fc61a5 100644
index c1ff9de47a32..43a0552f041b 100644
--- a/services/core/java/com/android/server/StorageManagerService.java
+++ b/services/core/java/com/android/server/StorageManagerService.java
@@ -1533,7 +1533,8 @@ class StorageManagerService extends IStorageManager.Stub
@@ -1619,7 +1619,8 @@ class StorageManagerService extends IStorageManager.Stub
// Adoptable public disks are visible to apps, since they meet
// public API requirement of being in a stable location.

View File

@@ -1,4 +1,4 @@
From f41d2389d0d471ff04ab555d6858e20c0e9bd717 Mon Sep 17 00:00:00 2001
From 433f12c138c7cedeabb88ac38ef438a9907c480c Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Thu, 17 May 2018 20:28:35 +0200
Subject: [PATCH 04/50] Don't crash if there is IR HAL is not declared

View File

@@ -1,4 +1,4 @@
From 7d505ba36fb5f011383b2dfcae1cab3b00091b13 Mon Sep 17 00:00:00 2001
From 29e5a30910687e3239aa08885a5c3e350ca81f6f Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net>
Date: Wed, 1 Jun 2022 16:56:20 -0400
Subject: [PATCH 05/50] Implement a persistent property to override the default
@@ -11,10 +11,10 @@ Change-Id: I49b45d00bf71d7932591b3516d49a680e1b6568b
2 files changed, 14 insertions(+)
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java
index 388b31041f86..da4bc798cee3 100644
index 66f001e30b30..260611fd41ac 100644
--- a/core/java/android/hardware/Camera.java
+++ b/core/java/android/hardware/Camera.java
@@ -455,6 +455,11 @@ public class Camera {
@@ -450,6 +450,11 @@ public class Camera {
* @see #open(int)
*/
public static Camera open() {
@@ -27,10 +27,10 @@ index 388b31041f86..da4bc798cee3 100644
CameraInfo cameraInfo = new CameraInfo();
for (int i = 0; i < numberOfCameras; i++) {
diff --git a/core/java/android/hardware/camera2/CameraManager.java b/core/java/android/hardware/camera2/CameraManager.java
index 69660d9344c9..d8841489e051 100644
index cfccaa73bd08..3048702c62eb 100644
--- a/core/java/android/hardware/camera2/CameraManager.java
+++ b/core/java/android/hardware/camera2/CameraManager.java
@@ -2081,6 +2081,15 @@ public final class CameraManager {
@@ -2238,6 +2238,15 @@ public final class CameraManager {
}
}});

View File

@@ -1,4 +1,4 @@
From d357d016eae346a4473bfd280bda4c5fb5680b91 Mon Sep 17 00:00:00 2001
From e608b14cbbfae9250b40d7aaeeb00cac7cf2d539 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 6 Aug 2018 12:49:00 +0200
Subject: [PATCH 06/50] Show APN Settings for CDMA carriers
@@ -8,10 +8,10 @@ Subject: [PATCH 06/50] Show APN Settings for CDMA carriers
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java
index 3d46c33534af..3f29b459b7cf 100644
index 7cb2cc398c46..1655dab30f6a 100644
--- a/telephony/java/android/telephony/CarrierConfigManager.java
+++ b/telephony/java/android/telephony/CarrierConfigManager.java
@@ -9904,7 +9904,7 @@ public class CarrierConfigManager {
@@ -10139,7 +10139,7 @@ public class CarrierConfigManager {
sDefaults.putBoolean(KEY_OPERATOR_SELECTION_EXPAND_BOOL, true);
sDefaults.putBoolean(KEY_PREFER_2G_BOOL, false);
sDefaults.putBoolean(KEY_4G_ONLY_BOOL, false);

View File

@@ -1,4 +1,4 @@
From 2fc52f8f733f8f29bc9fa4e9b82d66812bb9f917 Mon Sep 17 00:00:00 2001
From d8b94297131b965a2d4282f53c368f267b9e9251 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Thu, 8 Nov 2018 23:04:03 +0100
Subject: [PATCH 07/50] Re-order services so that it works even without qtaguid
@@ -9,10 +9,10 @@ Change-Id: I0c0f527b3ae151d45c68f7ac6c205da3f34e74df
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
index ac69a785e62d..1f550c7da82c 100644
index 841f8a46aeb1..c941da5c5a74 100644
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
@@ -971,6 +971,10 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
@@ -983,6 +983,10 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "systemReady");
final int oldPriority = Process.getThreadPriority(Process.myTid());
try {
@@ -23,7 +23,7 @@ index ac69a785e62d..1f550c7da82c 100644
// Boost thread's priority during system server init
Process.setThreadPriority(Process.THREAD_PRIORITY_FOREGROUND);
if (!isBandwidthControlEnabled()) {
@@ -978,10 +982,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
@@ -990,10 +994,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
return;
}
@@ -33,7 +33,7 @@ index ac69a785e62d..1f550c7da82c 100644
-
synchronized (mUidRulesFirstLock) {
synchronized (mNetworkPoliciesSecondLock) {
updatePowerSaveWhitelistUL();
updatePowerSaveAllowlistUL();
--
2.34.1

View File

@@ -1,4 +1,4 @@
From 4170fb54bb1ed5755f434372c27980a475aba97a Mon Sep 17 00:00:00 2001
From b25663e9303b4544cf037a3e565832b48d637f5d Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 24 Mar 2019 23:05:14 +0100
Subject: [PATCH 08/50] Support samsung Pie and Q light hal
@@ -9,10 +9,10 @@ Change-Id: I01f94acd7d0672733e48854d80368f9ac6f861c6
1 file changed, 2 insertions(+)
diff --git a/services/core/jni/Android.bp b/services/core/jni/Android.bp
index 77db96001e0c..36c13ca121e3 100644
index 1ca147b91e8a..f4a22ef80c61 100644
--- a/services/core/jni/Android.bp
+++ b/services/core/jni/Android.bp
@@ -202,6 +202,8 @@ cc_defaults {
@@ -214,6 +214,8 @@ cc_defaults {
"android.system.suspend-V1-ndk",
"server_configurable_flags",
"service.incremental",

View File

@@ -1,4 +1,4 @@
From 743b7f87fc925d6e8710ed087e429c20c9c2f1b5 Mon Sep 17 00:00:00 2001
From 2584719094b8025923ce2f88e7af5d29f4329f54 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 12 Aug 2019 23:08:26 +0200
Subject: [PATCH 09/50] Add support for samsung touch, physical and hover
@@ -10,10 +10,10 @@ Change-Id: I7a0f8b4665c802140d19197d850b77b2a7ac1865
1 file changed, 35 insertions(+)
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
index e09d7289e37b..c6035e68de71 100644
index ae96e92cf22b..603c7a5d0086 100644
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -2366,6 +2366,27 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
@@ -2465,6 +2465,27 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
}
mProximitySensor = SensorUtils.findSensor(mSensorManager,
mDisplayDeviceConfig.getProximitySensor(), Sensor.TYPE_PROXIMITY);
@@ -41,7 +41,7 @@ index e09d7289e37b..c6035e68de71 100644
if (mProximitySensor != null) {
mProximityThreshold = Math.min(mProximitySensor.getMaximumRange(),
TYPICAL_PROXIMITY_THRESHOLD);
@@ -3408,6 +3429,20 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
@@ -3512,6 +3533,20 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
public void onSensorChanged(SensorEvent event) {
if (mProximitySensorEnabled) {
final long time = mClock.uptimeMillis();

View File

@@ -1,4 +1,4 @@
From 268e1bd12c10eba4700444c0687fd509dbce8ee3 Mon Sep 17 00:00:00 2001
From 22418b0a3aae42784dc0003c063d0a306e8befa8 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 5 Apr 2020 16:32:46 +0200
Subject: [PATCH 10/50] Always allow overriding the number of work profiles
@@ -9,10 +9,10 @@ Change-Id: I6eb09aa71663c6fbe7563e3038bffcabdba0ff6a
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java
index a959fc10db49..440d42681c1a 100644
index 6f75a96c05db..c7b305cf120b 100644
--- a/services/core/java/com/android/server/pm/UserManagerService.java
+++ b/services/core/java/com/android/server/pm/UserManagerService.java
@@ -7357,12 +7357,8 @@ public class UserManagerService extends IUserManager.Stub {
@@ -7560,12 +7560,8 @@ public class UserManagerService extends IUserManager.Stub {
*/
private static int getMaxUsersOfTypePerParent(UserTypeDetails userTypeDetails) {
final int defaultMax = userTypeDetails.getMaxAllowedPerParent();

View File

@@ -1,4 +1,4 @@
From 1c2e2c57747d27dfc8facb75bb73e575647acb81 Mon Sep 17 00:00:00 2001
From 0c9251a2cfa2635957040d76b0fe11738aa1ce41 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sat, 6 Jun 2020 18:21:56 +0200
Subject: [PATCH 11/50] HOME deserves to wake-up devices just as well as back
@@ -10,10 +10,10 @@ Change-Id: Ia562bafd8c620d00c17e8eb338e4701c6c4a3c3a
1 file changed, 1 insertion(+)
diff --git a/core/java/android/view/KeyEvent.java b/core/java/android/view/KeyEvent.java
index 5de31a229aa3..a242afd2a689 100644
index 442a8a7cc571..09675dfbdafd 100644
--- a/core/java/android/view/KeyEvent.java
+++ b/core/java/android/view/KeyEvent.java
@@ -2068,6 +2068,7 @@ public class KeyEvent extends InputEvent implements Parcelable {
@@ -2084,6 +2084,7 @@ public class KeyEvent extends InputEvent implements Parcelable {
case KeyEvent.KEYCODE_CAMERA:
case KeyEvent.KEYCODE_FOCUS:
case KeyEvent.KEYCODE_MENU:

View File

@@ -1,4 +1,4 @@
From 2312dfbcde812959495f8766eb80b9450829772d Mon Sep 17 00:00:00 2001
From 99a33652a6b39bf603d2bb8aed674a61de8575f4 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 29 Sep 2020 22:39:47 +0200
Subject: [PATCH 12/50] Some devices have proximity sensor reporting NaN as max
@@ -10,10 +10,10 @@ Change-Id: I3c39e3e914a05903c140235702e0480d2d58a612
1 file changed, 3 insertions(+)
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
index c6035e68de71..fb84d64350b7 100644
index 603c7a5d0086..deb5651791e3 100644
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -2390,6 +2390,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
@@ -2489,6 +2489,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
if (mProximitySensor != null) {
mProximityThreshold = Math.min(mProximitySensor.getMaximumRange(),
TYPICAL_PROXIMITY_THRESHOLD);

View File

@@ -1,4 +1,4 @@
From 70cd27439768d7b7137225345f403aa43adfb9c8 Mon Sep 17 00:00:00 2001
From 36b81b62e53dcd1c2caa04e1e647c97c7ed783b4 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 29 Sep 2020 22:40:10 +0200
Subject: [PATCH 13/50] Fix brightness range not being complete on Samsung
@@ -15,10 +15,10 @@ Change-Id: I4d97cbc32490949e83272b81ec6320a5483310b1
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
index edcf2715b0a5..e88ec095fbe7 100644
index 422d38d3a2ca..475a09b0e910 100644
--- a/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
@@ -1246,9 +1246,11 @@ public final class PowerManagerService extends SystemService
@@ -1243,9 +1243,11 @@ public final class PowerManagerService extends SystemService
if (min == INVALID_BRIGHTNESS_IN_CONFIG || max == INVALID_BRIGHTNESS_IN_CONFIG
|| def == INVALID_BRIGHTNESS_IN_CONFIG) {

View File

@@ -1,4 +1,4 @@
From 6f924b3312017fc5eb84d50eaf544d2e79d90fbf Mon Sep 17 00:00:00 2001
From 69281cf6072b7290c232b1877460fcf2c2ba5e93 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 25 Oct 2020 23:57:26 +0100
Subject: [PATCH 14/50] Re-implement fnmatch-like behaviour for RRO java-side
@@ -11,7 +11,7 @@ Change-Id: Id38292a9a1453aa87b8401c1fdb390fa4e63c7d1
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/core/java/android/content/pm/parsing/FrameworkParsingPackageUtils.java b/core/java/android/content/pm/parsing/FrameworkParsingPackageUtils.java
index b75ba82ad091..b344f7232190 100644
index fc06dd8de3b6..41da26bff956 100644
--- a/core/java/android/content/pm/parsing/FrameworkParsingPackageUtils.java
+++ b/core/java/android/content/pm/parsing/FrameworkParsingPackageUtils.java
@@ -223,8 +223,17 @@ public class FrameworkParsingPackageUtils {

View File

@@ -1,4 +1,4 @@
From bc7ba9db9a4cb0f11a715f113b88897f4031890a Mon Sep 17 00:00:00 2001
From 197b3fc43e8728854b48218e7fe46ec960a05119 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Fri, 11 Dec 2020 14:41:09 +0100
Subject: [PATCH 15/50] Remove useless notification about "console" service
@@ -9,10 +9,10 @@ Subject: [PATCH 15/50] Remove useless notification about "console" service
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 4dad2d560526..5d1f27ac923d 100644
index 89b53aab1539..90d0666189c8 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -5156,7 +5156,7 @@ public class ActivityManagerService extends IActivityManager.Stub
@@ -5222,7 +5222,7 @@ public class ActivityManagerService extends IActivityManager.Stub
}
private void showConsoleNotificationIfActive() {

View File

@@ -1,4 +1,4 @@
From 0131331d9813abfb7e0a1d3a8a82036c34294b9e Mon Sep 17 00:00:00 2001
From 511b30e50770302215590d22dc7f02217bdbb653 Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net>
Date: Wed, 16 Dec 2020 21:24:12 +0800
Subject: [PATCH 16/50] Revert "Remove unused SystemProperties.set"
@@ -11,10 +11,10 @@ This reverts commit debb4616ef67f9ed5054eca51ec58592358ff55f.
1 file changed, 69 insertions(+)
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 340e4ab132ca..551b73a1706f 100644
index f206987ddbf6..73c957c47892 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -8095,6 +8095,75 @@ public class TelephonyManager {
@@ -8152,6 +8152,75 @@ public class TelephonyManager {
}
}

View File

@@ -1,4 +1,4 @@
From 6879e245b3b923f650eb0ebfa124181f53082efe Mon Sep 17 00:00:00 2001
From 35fdd748c2c978cecd68e8f6d147e24a4efef916 Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net>
Date: Wed, 16 Dec 2020 13:46:15 +0800
Subject: [PATCH 17/50] TelephonyManager: bring back getNetworkClass()
@@ -11,10 +11,10 @@ This partially reverts commit c058cac051ab083dc7fb7ea6aa85699110b2e9bf.
1 file changed, 58 insertions(+)
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 551b73a1706f..62bd70374c96 100644
index 73c957c47892..0cd5ab7fad20 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -3204,6 +3204,64 @@ public class TelephonyManager {
@@ -3256,6 +3256,64 @@ public class TelephonyManager {
}
}

View File

@@ -1,4 +1,4 @@
From 1963ddb089e0fb68669da3fe5e2b7dd6e31f7ebf Mon Sep 17 00:00:00 2001
From 4a5c645b6ad129a63f02be32da7d0e7fa9940968 Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net>
Date: Wed, 16 Dec 2020 21:26:45 +0800
Subject: [PATCH 18/50] TelephonyManager: add API annotations for
@@ -14,10 +14,10 @@ Subject: [PATCH 18/50] TelephonyManager: add API annotations for
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 62bd70374c96..7aac41db9c36 100644
index 0cd5ab7fad20..bd5255d4a21a 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -8159,7 +8159,7 @@ public class TelephonyManager {
@@ -8216,7 +8216,7 @@ public class TelephonyManager {
* @hide
*/
@UnsupportedAppUsage
@@ -26,7 +26,7 @@ index 62bd70374c96..7aac41db9c36 100644
String propVal = "";
String p[] = null;
String prop = SystemProperties.get(property);
@@ -8213,7 +8213,8 @@ public class TelephonyManager {
@@ -8270,7 +8270,8 @@ public class TelephonyManager {
*
* @hide
*/

View File

@@ -1,4 +1,4 @@
From 8dca252df27d744e02dd842a37fa061dff75eda0 Mon Sep 17 00:00:00 2001
From c4c128d8577afa55ec70de0552cf428e7bb579c7 Mon Sep 17 00:00:00 2001
From: Alberto Ponces <ponces26@gmail.com>
Date: Tue, 2 Feb 2021 10:20:51 +0000
Subject: [PATCH 19/50] Fix Wakelock issue

View File

@@ -1,4 +1,4 @@
From 509bd0245a7bc49d22c89bcff4d06bfc21eae906 Mon Sep 17 00:00:00 2001
From 5bbd2dbb36c770256dc53a63735d4959cc4c52c3 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sat, 20 Mar 2021 14:31:01 +0100
Subject: [PATCH 20/50] Automatically detect pick up sensor, so that an overlay

View File

@@ -1,4 +1,4 @@
From 707fa8d5e9f3fa538dd44e7c2e6ed5c4acbadf56 Mon Sep 17 00:00:00 2001
From 0e6f55f0b8ab83f74fb9b268630c2f411d2c7a28 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 23 Mar 2021 19:43:26 +0100
Subject: [PATCH 21/50] Catch broken mainBuiltInDisplayCutoutRectApproximation

View File

@@ -1,4 +1,4 @@
From 7548d2465b542b0b24609900b57e0eab433e6eb6 Mon Sep 17 00:00:00 2001
From 8716b7ebe29b4b66fc7a085f3244164140672ffa Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sat, 24 Mar 2018 08:01:48 +0100
Subject: [PATCH 22/50] backlight: Fix backlight control on Galaxy S9(+)
@@ -53,18 +53,18 @@ Change-Id: I4e85178327d2bb63d5d0a37786058843662a89ba
1 file changed, 46 insertions(+)
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
index fea6b29d9260..caf9eba7d9a8 100644
index 4d26f43307b2..c94d334b280b 100644
--- a/services/core/java/com/android/server/lights/LightsService.java
+++ b/services/core/java/com/android/server/lights/LightsService.java
@@ -32,6 +32,7 @@ import android.os.IBinder;
import android.os.Looper;
@@ -32,6 +32,7 @@ import android.os.Looper;
import android.os.PermissionEnforcer;
import android.os.RemoteException;
import android.os.ServiceManager;
+import android.os.SystemProperties;
import android.os.Trace;
import android.provider.Settings;
import android.util.Slog;
@@ -295,6 +296,51 @@ public class LightsService extends SystemService {
@@ -298,6 +299,51 @@ public class LightsService extends SystemService {
return;
}
int brightnessInt = BrightnessSynchronizer.brightnessFloatToInt(brightness);

View File

@@ -1,4 +1,4 @@
From 02c62cf8b31225686f8b9567cba799f9e8f175a4 Mon Sep 17 00:00:00 2001
From 51f840e3a7afd5cbab39b28a96a62b2f99ef6647 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Sat, 4 Sep 2021 08:26:30 +0000
Subject: [PATCH 23/50] Revert "Switch long-press power behavior in AOSP."
@@ -9,10 +9,10 @@ This reverts commit 803c77a0a24624111944832098c6f65158051dc4.
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 40bae0723f41..04a69f8c1e6d 100644
index 3bc33bac37bc..19a03cac127e 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -1098,7 +1098,7 @@
@@ -1131,7 +1131,7 @@
5 - Go to assistant (Settings.Secure.ASSISTANT)
6 - Toggle torch on / off (if screen is off)
-->
@@ -21,7 +21,7 @@ index 40bae0723f41..04a69f8c1e6d 100644
<!-- The time in milliseconds after which a press on power button is considered "long". -->
<integer name="config_longPressOnPowerDurationMs">500</integer>
@@ -1130,7 +1130,7 @@
@@ -1163,7 +1163,7 @@
1 - Mute toggle
2 - Global actions menu
-->

View File

@@ -1,4 +1,4 @@
From 58bdf9405c40873bbc54d90269dd1a98bd895b22 Mon Sep 17 00:00:00 2001
From ce76ec2757c8140fc8f594bbd545ecbcb54c3e09 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sat, 2 Apr 2022 18:04:01 -0400
Subject: [PATCH 24/50] Allow disabling of fingerprint cleanups, needed on some
@@ -9,10 +9,10 @@ Subject: [PATCH 24/50] Allow disabling of fingerprint cleanups, needed on some
1 file changed, 2 insertions(+)
diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java
index d0b71fcf2dbb..d5978a531dc5 100644
index d3cecd0e34c7..91f515161146 100644
--- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java
+++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java
@@ -746,6 +746,8 @@ public class Fingerprint21 implements IHwBinder.DeathRecipient, ServiceProvider
@@ -1004,6 +1004,8 @@ public class Fingerprint21 implements IHwBinder.DeathRecipient, ServiceProvider
private void scheduleInternalCleanup(int userId,
@Nullable ClientMonitorCallback callback) {

View File

@@ -1,4 +1,4 @@
From ca2daaa7257fed79965afe595742fb8f394827da Mon Sep 17 00:00:00 2001
From 4897371a2b91eb8179cdc35abf12e380bb5675dc Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 20 Dec 2021 15:01:41 -0500
Subject: [PATCH 25/50] Dynamically resize boot animation to match screen size
@@ -9,10 +9,10 @@ Change-Id: I54e49fc6b8c670103852e212d1416e27ff976205
1 file changed, 22 insertions(+)
diff --git a/cmds/bootanimation/BootAnimation.cpp b/cmds/bootanimation/BootAnimation.cpp
index 528ac1d19603..337e9eba702d 100644
index f5271aca5c59..560f73bf7e35 100644
--- a/cmds/bootanimation/BootAnimation.cpp
+++ b/cmds/bootanimation/BootAnimation.cpp
@@ -622,6 +622,28 @@ status_t BootAnimation::readyToRun() {
@@ -635,6 +635,28 @@ status_t BootAnimation::readyToRun() {
mFlingerSurface = s;
mTargetInset = -1;

View File

@@ -1,4 +1,4 @@
From 622350d44f2db35c4762e1ba0db21338d29dac6d Mon Sep 17 00:00:00 2001
From 639de917a53c7313597f9491fe425058764d7590 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Sat, 15 Oct 2022 09:33:56 +0000
Subject: [PATCH 26/50] Revert "Remove more FDE methods from StorageManager"
@@ -7,15 +7,15 @@ This reverts commit bd13f84152449a3ead6fa8604fd31f48c0224676.
Change-Id: Ic394934ec27b1a486c60123130825d44dad73412
---
.../android/os/storage/StorageManager.java | 57 +++++++++++++++++++
.../internal/os/RoSystemProperties.java | 4 ++
2 files changed, 61 insertions(+)
.../android/os/storage/StorageManager.java | 74 +++++++++++++++++++
.../internal/os/RoSystemProperties.java | 4 +
2 files changed, 78 insertions(+)
diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java
index ee387e7c284f..0adc55598d9b 100644
index 78a12f75a508..f9999fa8fde8 100644
--- a/core/java/android/os/storage/StorageManager.java
+++ b/core/java/android/os/storage/StorageManager.java
@@ -1669,6 +1669,15 @@ public class StorageManager {
@@ -1714,6 +1714,15 @@ public class StorageManager {
return false;
}
@@ -31,10 +31,19 @@ index ee387e7c284f..0adc55598d9b 100644
/** {@hide}
* Is this device encrypted?
* <p>
@@ -1702,6 +1711,54 @@ public class StorageManager {
return isFileEncrypted();
@@ -1738,6 +1747,71 @@ public class StorageManager {
return RoSystemProperties.CRYPTO_FILE_ENCRYPTED;
}
+ /** {@hide}
+ * @deprecated Use {@link #isFileEncrypted} instead, since emulated FBE is no longer supported.
+ */
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
+ @Deprecated
+ public static boolean isFileEncryptedNativeOnly() {
+ return false;
+ }
+
+ /** {@hide}
+ * Is this device block encrypted?
+ * @return true for block encrypted. (Implies isEncrypted() == true)
@@ -83,9 +92,17 @@ index ee387e7c284f..0adc55598d9b 100644
+ return false;
+ }
+
/** {@hide}
* @deprecated Use {@link #isFileEncrypted} instead, since emulated FBE is no longer supported.
*/
+ /** {@hide}
+ * @deprecated Use {@link #isFileEncrypted} instead, since emulated FBE is no longer supported.
+ */
+ @Deprecated
+ public static boolean isFileEncryptedNativeOrEmulated() {
+ return false;
+ }
+
/** {@hide} */
public static boolean hasAdoptable() {
switch (SystemProperties.get(PROP_ADOPTABLE)) {
diff --git a/core/java/com/android/internal/os/RoSystemProperties.java b/core/java/com/android/internal/os/RoSystemProperties.java
index 40d5c4761dff..66288706b0f1 100644
--- a/core/java/com/android/internal/os/RoSystemProperties.java

View File

@@ -1,4 +1,4 @@
From 59d9381e45331015cca06f2fcfa504365be0a657 Mon Sep 17 00:00:00 2001
From 47b3844e2e84eddf67de5bbff2905dbec47c1a07 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sat, 3 Dec 2022 17:13:24 -0500
Subject: [PATCH 27/50] Set old fingerprint sensors to security "strong"
@@ -11,10 +11,10 @@ despite its name, config_biometric_sensors is HIDL-specific
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/services/core/java/com/android/server/biometrics/AuthService.java b/services/core/java/com/android/server/biometrics/AuthService.java
index 6f4ad13ba854..c692f5f9472c 100644
index 51b85f06ec46..5279073cd71a 100644
--- a/services/core/java/com/android/server/biometrics/AuthService.java
+++ b/services/core/java/com/android/server/biometrics/AuthService.java
@@ -655,7 +655,7 @@ public class AuthService extends SystemService {
@@ -704,7 +704,7 @@ public class AuthService extends SystemService {
final int firstApiLevel = SystemProperties.getInt(SYSPROP_FIRST_API_LEVEL, 0);
final int apiLevel = SystemProperties.getInt(SYSPROP_API_LEVEL, firstApiLevel);
String[] configStrings = mInjector.getConfiguration(getContext());
@@ -23,7 +23,7 @@ index 6f4ad13ba854..c692f5f9472c 100644
// For backwards compatibility with R where biometrics could work without being
// configured in config_biometric_sensors. In the absence of a vendor provided
// configuration, we assume the weakest biometric strength (i.e. convenience).
@@ -690,7 +690,7 @@ public class AuthService extends SystemService {
@@ -739,7 +739,7 @@ public class AuthService extends SystemService {
if (pm.hasSystemFeature(PackageManager.FEATURE_FACE)) {
modalities.add(String.valueOf(BiometricAuthenticator.TYPE_FACE));
}

View File

@@ -1,4 +1,4 @@
From 60e2e07a4da5a9e375d798155f3b42aafa10590b Mon Sep 17 00:00:00 2001
From 2df1f2c9fbb7ceee139431a88cc53871859cb4db Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 14 Dec 2022 17:21:00 -0500
Subject: [PATCH 28/50] Call Samsung's ISehSysInputDev to report screen state
@@ -7,26 +7,26 @@ Subject: [PATCH 28/50] Call Samsung's ISehSysInputDev to report screen state
This fixes touchscreen not waking up on Galaxy F23
---
services/core/Android.bp | 1 +
.../server/display/LocalDisplayAdapter.java | 32 +++++++++++++++++++
2 files changed, 33 insertions(+)
.../server/display/LocalDisplayAdapter.java | 31 +++++++++++++++++++
2 files changed, 32 insertions(+)
diff --git a/services/core/Android.bp b/services/core/Android.bp
index 39204d9acf75..bb2b0bfdfaf0 100644
index ffe5f3402037..a760814b8a40 100644
--- a/services/core/Android.bp
+++ b/services/core/Android.bp
@@ -187,6 +187,7 @@ java_library_static {
"com.android.sysprop.watchdog",
"ImmutabilityAnnotation",
"securebox",
@@ -205,6 +205,7 @@ java_library_static {
"com_android_wm_shell_flags_lib",
"com.android.server.utils_aconfig-java",
"service-jobscheduler-deviceidle.flags-aconfig-java",
+ "vendor.samsung.hardware.sysinput-V1.2-java", // HIDL
],
javac_shard_size: 50,
javacflags: [
diff --git a/services/core/java/com/android/server/display/LocalDisplayAdapter.java b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
index 89d865e5ae39..9f2793a16a28 100644
index 22898a65c5de..f9dbd91e6b5a 100644
--- a/services/core/java/com/android/server/display/LocalDisplayAdapter.java
+++ b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
@@ -33,6 +33,7 @@ import android.os.Trace;
@@ -35,6 +35,7 @@ import android.os.Trace;
import android.util.DisplayUtils;
import android.util.LongSparseArray;
import android.util.Slog;
@@ -34,7 +34,7 @@ index 89d865e5ae39..9f2793a16a28 100644
import android.util.SparseArray;
import android.view.Display;
import android.view.DisplayAddress;
@@ -51,6 +52,8 @@ import com.android.server.display.mode.DisplayModeDirector;
@@ -55,6 +56,8 @@ import com.android.server.display.notifications.DisplayNotificationManager;
import com.android.server.lights.LightsManager;
import com.android.server.lights.LogicalLight;
@@ -43,8 +43,8 @@ index 89d865e5ae39..9f2793a16a28 100644
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
@@ -234,6 +237,8 @@ final class LocalDisplayAdapter extends DisplayAdapter {
@@ -244,6 +247,8 @@ final class LocalDisplayAdapter extends DisplayAdapter {
private float mActiveRenderFrameRate;
private DisplayEventReceiver.FrameRateOverride[] mFrameRateOverrides =
new DisplayEventReceiver.FrameRateOverride[0];
+ private boolean triedSamsungHal = false;
@@ -52,10 +52,10 @@ index 89d865e5ae39..9f2793a16a28 100644
LocalDisplayDevice(IBinder displayToken, long physicalDisplayId,
SurfaceControl.StaticDisplayInfo staticDisplayInfo,
@@ -825,17 +830,44 @@ final class LocalDisplayAdapter extends DisplayAdapter {
@@ -850,16 +855,42 @@ final class LocalDisplayAdapter extends DisplayAdapter {
}
mSidekickActive = false;
}
+ if (!triedSamsungHal) {
+ triedSamsungHal = true;
+ try {
@@ -93,10 +93,8 @@ index 89d865e5ae39..9f2793a16a28 100644
+ }
+
setCommittedState(state);
+
// If we're entering a suspended (but not OFF) power state and we
// have a sidekick available, tell it now that it can take control.
if (Display.isSuspendedState(state) && state != Display.STATE_OFF
--
2.34.1

View File

@@ -1,4 +1,4 @@
From 96803a190d0b605ac1f86c0d9c4698ba90f2ff55 Mon Sep 17 00:00:00 2001
From b55da71220b0268eeb913f974dbf64dc9bff3e45 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Fri, 2 Jun 2023 19:19:31 -0400
Subject: [PATCH 29/50] Try catch around constrainNitsAndBacklightArrays, and
@@ -9,10 +9,10 @@ Subject: [PATCH 29/50] Try catch around constrainNitsAndBacklightArrays, and
1 file changed, 31 insertions(+), 25 deletions(-)
diff --git a/services/core/java/com/android/server/display/DisplayDeviceConfig.java b/services/core/java/com/android/server/display/DisplayDeviceConfig.java
index b0ebab8e4002..77dafd5068d0 100644
index 3dcb84dad786..9585bdc712cd 100644
--- a/services/core/java/com/android/server/display/DisplayDeviceConfig.java
+++ b/services/core/java/com/android/server/display/DisplayDeviceConfig.java
@@ -1903,37 +1903,43 @@ public class DisplayDeviceConfig {
@@ -2120,37 +2120,43 @@ public class DisplayDeviceConfig {
return;
}

View File

@@ -1,4 +1,4 @@
From 88330ecde45dddada9327c889cc9d9dd7d786d7d Mon Sep 17 00:00:00 2001
From aafc127180d05be573855ff8a5022959b3c6f8ce Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sat, 17 Jun 2023 08:31:55 -0400
Subject: [PATCH 30/50] Add Mediatek power hints on touch
@@ -27,13 +27,13 @@ Change-Id: I9f1eac5a20b98920a5d0c8204fe4d165ba069f5a
2 files changed, 52 insertions(+), 1 deletion(-)
diff --git a/services/core/Android.bp b/services/core/Android.bp
index bb2b0bfdfaf0..c4239779425f 100644
index a760814b8a40..fc9600992dbb 100644
--- a/services/core/Android.bp
+++ b/services/core/Android.bp
@@ -187,7 +187,9 @@ java_library_static {
"com.android.sysprop.watchdog",
"ImmutabilityAnnotation",
"securebox",
@@ -205,7 +205,9 @@ java_library_static {
"com_android_wm_shell_flags_lib",
"com.android.server.utils_aconfig-java",
"service-jobscheduler-deviceidle.flags-aconfig-java",
- "vendor.samsung.hardware.sysinput-V1.2-java", // HIDL
+ // HIDL
+ "vendor.mediatek.hardware.mtkpower-V1.1-java",
@@ -42,10 +42,10 @@ index bb2b0bfdfaf0..c4239779425f 100644
javac_shard_size: 50,
javacflags: [
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java
index 8b3e4d38d736..0a8a26f0d4a6 100644
index a85038f5d656..7becec71be48 100644
--- a/services/core/java/com/android/server/wm/DisplayPolicy.java
+++ b/services/core/java/com/android/server/wm/DisplayPolicy.java
@@ -217,6 +217,9 @@ public class DisplayPolicy {
@@ -219,6 +219,9 @@ public class DisplayPolicy {
*/
private boolean mRemoteInsetsControllerControlsSystemBars;
@@ -55,7 +55,7 @@ index 8b3e4d38d736..0a8a26f0d4a6 100644
StatusBarManagerInternal getStatusBarManagerInternal() {
synchronized (mServiceAcquireLock) {
if (mStatusBarManagerInternal == null) {
@@ -445,6 +448,19 @@ public class DisplayPolicy {
@@ -449,6 +452,19 @@ public class DisplayPolicy {
mScreenOnEarly = true;
mScreenOnFully = true;
}
@@ -75,7 +75,7 @@ index 8b3e4d38d736..0a8a26f0d4a6 100644
final Looper looper = UiThread.getHandler().getLooper();
mHandler = new PolicyHandler(looper);
@@ -529,6 +545,17 @@ public class DisplayPolicy {
@@ -533,6 +549,17 @@ public class DisplayPolicy {
mService.mPowerManagerInternal.setPowerBoost(
Boost.INTERACTION, duration);
}
@@ -93,7 +93,7 @@ index 8b3e4d38d736..0a8a26f0d4a6 100644
}
@Override
@@ -547,6 +574,28 @@ public class DisplayPolicy {
@@ -551,6 +578,28 @@ public class DisplayPolicy {
if (listener != null) {
listener.onTouchStart();
}

View File

@@ -1,4 +1,4 @@
From a9e368d503270ae8988dce4c6c8927a4fbffe45d Mon Sep 17 00:00:00 2001
From 9b75172e57381886f96fa52bdbd7441622bc9f91 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 5 Jul 2023 10:50:36 -0400
Subject: [PATCH 31/50] Detect Moto dynamic hardware feature
@@ -14,10 +14,10 @@ NFC-less variants
1 file changed, 19 insertions(+)
diff --git a/services/core/java/com/android/server/SystemConfig.java b/services/core/java/com/android/server/SystemConfig.java
index 7fae31c0bb4b..6da8e9397829 100644
index 40b29d7b09d5..38e82d8cac36 100644
--- a/services/core/java/com/android/server/SystemConfig.java
+++ b/services/core/java/com/android/server/SystemConfig.java
@@ -939,6 +939,25 @@ public class SystemConfig {
@@ -946,6 +946,25 @@ public class SystemConfig {
}
XmlUtils.skipCurrentTag(parser);
} break;

View File

@@ -1,4 +1,4 @@
From 93fb03fae7a6d3628f6197475f009f22448cb8d4 Mon Sep 17 00:00:00 2001
From 6bec6832764642598ec0bcd5c83721b47eb8ba93 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Wed, 2 Aug 2023 20:59:53 +0800
Subject: [PATCH 32/50] Restore getSimStateForSlotIndex in SubscriptionManager
@@ -11,10 +11,10 @@ Change-Id: I41bac57c68055f369232359a464642daab94403b
1 file changed, 14 insertions(+)
diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java
index 8e4ec0914563..a65a7e9ec2e6 100644
index 326b6f5af613..b994888362b0 100644
--- a/telephony/java/android/telephony/SubscriptionManager.java
+++ b/telephony/java/android/telephony/SubscriptionManager.java
@@ -2558,6 +2558,20 @@ public class SubscriptionManager {
@@ -2693,6 +2693,20 @@ public class SubscriptionManager {
return TelephonyManager.getDefault().isNetworkRoaming(subId);
}

View File

@@ -1,4 +1,4 @@
From f7c1f8193abd44b136ce43af1b8999237450c253 Mon Sep 17 00:00:00 2001
From 03de5a219b4353b4f7e362b1721632c98bd7fcf2 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Sat, 12 Aug 2023 20:11:17 +0800
Subject: [PATCH 33/50] Add runWithCleanCallingIdentity variant with both
@@ -8,11 +8,11 @@ This complements the fixup to ImsPhoneCallTracker (in fw/o/t) for U
Change-Id: If444290787025e130dce4bdeaf92372ae32793fe
---
.../telephony/util/TelephonyUtils.java | 32 ++++++++++++++++++-
1 file changed, 31 insertions(+), 1 deletion(-)
.../telephony/util/TelephonyUtils.java | 30 +++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/telephony/common/com/android/internal/telephony/util/TelephonyUtils.java b/telephony/common/com/android/internal/telephony/util/TelephonyUtils.java
index 9a8c9655375d..454080144d35 100644
index aed8fb8c4503..1467e7f2fc29 100644
--- a/telephony/common/com/android/internal/telephony/util/TelephonyUtils.java
+++ b/telephony/common/com/android/internal/telephony/util/TelephonyUtils.java
@@ -42,7 +42,9 @@ import com.android.internal.telephony.ITelephony;
@@ -60,13 +60,6 @@ index 9a8c9655375d..454080144d35 100644
/**
* Filter values in bundle to only basic types.
*/
@@ -319,4 +349,4 @@ public final class TelephonyUtils {
return false;
}
-}
\ No newline at end of file
+}
--
2.34.1

View File

@@ -1,4 +1,4 @@
From cca4efcedbb0eedfaefdb8dfde39787690ad887d Mon Sep 17 00:00:00 2001
From ae422fc5fe1f076d9387bd99668cdc026a6eb70d Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Fri, 6 Oct 2023 10:57:13 -0400
Subject: [PATCH 34/50] Catch NPE in SystemUI
@@ -10,10 +10,10 @@ device
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
index e9f494013e30..71d289b1369b 100644
index 81856ac16575..65b4834fb3c7 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
@@ -3455,7 +3455,11 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
@@ -3450,7 +3450,11 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
Trace.beginSection("KeyguardViewMediator#handleMotifyStartedWakingUp");
synchronized (KeyguardViewMediator.this) {
if (DEBUG) Log.d(TAG, "handleNotifyWakingUp");

View File

@@ -1,4 +1,4 @@
From 3dac2e291492531deb5acd89549ed8ca96bce107 Mon Sep 17 00:00:00 2001
From 2cef379821b7666bce2127f7dd24b69bbfabebae Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 27 Dec 2021 17:57:11 -0500
Subject: [PATCH 35/50] Once we integrate Samsung Power hal in libpowermanager,
@@ -11,10 +11,10 @@ Change-Id: I9084f64e505009abe9420d28b44199605cee52d8
1 file changed, 1 insertion(+)
diff --git a/services/core/jni/Android.bp b/services/core/jni/Android.bp
index 36c13ca121e3..00e9cfa998b9 100644
index f4a22ef80c61..41d63267eccb 100644
--- a/services/core/jni/Android.bp
+++ b/services/core/jni/Android.bp
@@ -204,6 +204,7 @@ cc_defaults {
@@ -216,6 +216,7 @@ cc_defaults {
"service.incremental",
"vendor.samsung.hardware.light@2.0",
"vendor.samsung.hardware.light@3.0",

View File

@@ -1,4 +1,4 @@
From 68e397599248dac36747f768b933a250d76dd750 Mon Sep 17 00:00:00 2001
From 638ac773a3011d91734fbb7905652aced8e31812 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 18 Dec 2022 18:20:40 -0500
Subject: [PATCH 36/50] FOD support for Asus, Samsung recent Xiaomi and
@@ -8,51 +8,69 @@ Thanks Asus for providing a free device to make this support
And thanks @davigamer987 for donating enough to get a Samsung FOD device
to make this
14QPR2 note: Forced legacy/pre-"UdfpsRefactor"
Thanks @jgudec for Xiaomi support
Thanks @boydaihungst for Redmagic 6 support
Co-authored-by: jgudec <jakov.gudec@gmail.com>
Co-authored-by: Huy Hoang
Change-Id: Ibd0f9ea8fba584a38c060fd9271549a5e106b4eb
Also include commits:
fix(fod): Extra Dim overlap fod overlay
Fix Xiaomi custom vendors implementing fingerprint properly
Also override UDFPS infos on AIDL fingerprints -- needed for FP on S24
Try catch the Xiaomi calls
Typo in observing Samsung brightness
Change-Id: I091e0dac57d6d14f0a8805f8c9c332bfd9d8048b
---
packages/SystemUI/Android.bp | 4 +
.../systemui/biometrics/UdfpsController.java | 56 ++++
.../systemui/biometrics/UdfpsController.java | 76 ++++-
.../biometrics/UdfpsControllerOverlay.kt | 7 +-
.../android/systemui/biometrics/UdfpsView.kt | 220 +++++++++++++
.../android/systemui/biometrics/UdfpsView.kt | 231 ++++++++++++++
.../shared/DeviceEntryUdfpsRefactor.kt | 2 +-
services/core/Android.bp | 5 +
.../server/biometrics/AuthService.java | 296 +++++++++++++++++-
.../fingerprint/FingerprintService.java | 3 +-
7 files changed, 585 insertions(+), 6 deletions(-)
.../fingerprint/aidl/FingerprintProvider.java | 26 +-
9 files changed, 640 insertions(+), 10 deletions(-)
diff --git a/packages/SystemUI/Android.bp b/packages/SystemUI/Android.bp
index 9fe68a31089f..8a1fc47e487b 100644
index d099dd511a01..40eefa935471 100644
--- a/packages/SystemUI/Android.bp
+++ b/packages/SystemUI/Android.bp
@@ -201,6 +201,10 @@ android_library {
"LowLightDreamLib",
@@ -206,6 +206,10 @@ android_library {
"motion_tool_lib",
"notification_flags_lib",
"vendor.lineage.powershare-V1.0-java",
+ "vendor.goodix.hardware.biometrics.fingerprint-V2.1-java",
+ "vendor.xiaomi.hw.touchfeature-V1.0-java",
+ "vendor.xiaomi.hardware.fingerprintextension-V1.0-java",
+ "vendor.nubia.ifaa-V1.0-java",
],
manifest: "AndroidManifest.xml",
additional_manifests: ["LineageManifest.xml"],
libs: [
"keepanno-annotations",
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java
index 3472a859ac82..19b67b5f3def 100644
index 65668b56a9f3..0f95ad8a8f45 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java
@@ -48,6 +48,7 @@ import android.os.Handler;
@@ -41,11 +41,13 @@ import android.hardware.fingerprint.FingerprintSensorProperties;
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
import android.hardware.fingerprint.IUdfpsOverlayController;
import android.hardware.fingerprint.IUdfpsOverlayControllerCallback;
+import android.hardware.display.ColorDisplayManager;
import android.hardware.input.InputManager;
import android.os.Build;
import android.os.Handler;
import android.os.PowerManager;
import android.os.Process;
import android.os.Trace;
+import android.os.SystemProperties;
import android.os.VibrationAttributes;
import android.os.VibrationEffect;
import android.util.Log;
@@ -114,9 +115,13 @@ import java.util.HashSet;
import java.util.Optional;
@@ -113,9 +115,13 @@ import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.Executor;
+import java.io.File;
@@ -63,9 +81,18 @@ index 3472a859ac82..19b67b5f3def 100644
import javax.inject.Provider;
+import vendor.nubia.ifaa.V1_0.IIfaa;
/**
* Shows and hides the under-display fingerprint sensor (UDFPS) overlay, handles UDFPS touch events,
@@ -253,6 +258,46 @@ public class UdfpsController implements DozeReceiver, Dumpable {
import kotlinx.coroutines.ExperimentalCoroutinesApi;
@@ -177,6 +183,8 @@ public class UdfpsController implements DozeReceiver, Dumpable {
@NonNull private final UdfpsKeyguardAccessibilityDelegate mUdfpsKeyguardAccessibilityDelegate;
@NonNull private final SelectedUserInteractor mSelectedUserInteractor;
@NonNull private final FpsUnlockTracker mFpsUnlockTracker;
+ @NonNull private final ColorDisplayManager mColorDisplayManager;
+ private boolean mIgnoreExtraDim;
private final boolean mIgnoreRefreshRate;
private final KeyguardTransitionInteractor mKeyguardTransitionInteractor;
@@ -249,6 +257,46 @@ public class UdfpsController implements DozeReceiver, Dumpable {
mScreenOn = false;
}
};
@@ -112,8 +139,49 @@ index 3472a859ac82..19b67b5f3def 100644
@Override
public void dump(@NonNull PrintWriter pw, @NonNull String[] args) {
@@ -1241,10 +1286,17 @@ public class UdfpsController implements DozeReceiver, Dumpable {
view.configureDisplay(() -> dispatchOnUiReady(requestId));
@@ -671,7 +719,8 @@ public class UdfpsController implements DozeReceiver, Dumpable {
@NonNull FpsUnlockTracker fpsUnlockTracker,
@NonNull KeyguardTransitionInteractor keyguardTransitionInteractor,
Lazy<DeviceEntryUdfpsTouchOverlayViewModel> deviceEntryUdfpsTouchOverlayViewModel,
- Lazy<DefaultUdfpsTouchOverlayViewModel> defaultUdfpsTouchOverlayViewModel) {
+ Lazy<DefaultUdfpsTouchOverlayViewModel> defaultUdfpsTouchOverlayViewModel,
+ @NonNull ColorDisplayManager colorDisplayManager) {
mContext = context;
mExecution = execution;
mVibrator = vibrator;
@@ -717,6 +766,7 @@ public class UdfpsController implements DozeReceiver, Dumpable {
mFpsUnlockTracker = fpsUnlockTracker;
mFpsUnlockTracker.startTracking();
mKeyguardTransitionInteractor = keyguardTransitionInteractor;
+ mColorDisplayManager = colorDisplayManager;
mTouchProcessor = singlePointerTouchProcessor;
mSessionTracker = sessionTracker;
@@ -790,7 +840,10 @@ public class UdfpsController implements DozeReceiver, Dumpable {
private void showUdfpsOverlay(@NonNull UdfpsControllerOverlay overlay) {
mExecution.assertIsMainThread();
-
+ mIgnoreExtraDim = mColorDisplayManager.isReduceBrightColorsActivated();
+ if (mIgnoreExtraDim) {
+ Log.d(TAG, "Current extra dim state (showUdfpsOverlay): " + mIgnoreExtraDim);
+ }
mOverlay = overlay;
final int requestReason = overlay.getRequestReason();
if (requestReason == REASON_AUTH_KEYGUARD
@@ -1016,6 +1069,10 @@ public class UdfpsController implements DozeReceiver, Dumpable {
return;
}
if (isOptical()) {
+ if (mIgnoreExtraDim) {
+ mColorDisplayManager.setReduceBrightColorsActivated(false);
+ Log.d(TAG, "Extra dim disabled");
+ }
mLatencyTracker.onActionStart(ACTION_UDFPS_ILLUMINATE);
}
if (getBiometricSessionType() == SESSION_KEYGUARD) {
@@ -1047,10 +1104,17 @@ public class UdfpsController implements DozeReceiver, Dumpable {
}
}
}
+ if(SystemProperties.get("ro.vendor.build.fingerprint").contains("nubia/NX669")) {
@@ -129,23 +197,29 @@ index 3472a859ac82..19b67b5f3def 100644
+
}
private void onFingerUp(long requestId, @NonNull UdfpsView view) {
@@ -1295,6 +1347,10 @@ public class UdfpsController implements DozeReceiver, Dumpable {
mFingerprintManager.onPointerUp(requestId, mSensorProps.sensorId);
}
}
+ if(SystemProperties.get("ro.vendor.build.fingerprint").contains("nubia/NX669")) {
+ processCmd(15, 0, 0, new byte[0], 0);
+ }
private void onFingerUp(long requestId, @NonNull View view) {
@@ -1084,8 +1148,16 @@ public class UdfpsController implements DozeReceiver, Dumpable {
mActivePointerId = -1;
mAcquiredReceived = false;
if (mOnFingerDown) {
+ if (mIgnoreExtraDim && isOptical()) {
+ mColorDisplayManager.setReduceBrightColorsActivated(true);
+ Log.d(TAG, "Extra dim restored");
+ }
mFingerprintManager.onPointerUp(requestId, mSensorProps.sensorId, pointerId, x,
y, minor, major, orientation, time, gestureStart, isAod);
+ if(SystemProperties.get("ro.vendor.build.fingerprint").contains("nubia/NX669")) {
+ processCmd(15, 0, 0, new byte[0], 0);
+ }
+
for (Callback cb : mCallbacks) {
cb.onFingerUp();
}
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsControllerOverlay.kt b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsControllerOverlay.kt
index d6ef94d18e71..bcc12831a62c 100644
index dae6d08f7331..7761251f2378 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsControllerOverlay.kt
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsControllerOverlay.kt
@@ -133,7 +133,9 @@ class UdfpsControllerOverlay @JvmOverloads constructor(
@@ -141,7 +141,9 @@ class UdfpsControllerOverlay @JvmOverloads constructor(
gravity = android.view.Gravity.TOP or android.view.Gravity.LEFT
layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS
flags = (Utils.FINGERPRINT_OVERLAY_LAYOUT_PARAM_FLAGS or
@@ -156,26 +230,26 @@ index d6ef94d18e71..bcc12831a62c 100644
privateFlags = WindowManager.LayoutParams.PRIVATE_FLAG_TRUSTED_OVERLAY
// Avoid announcing window title.
accessibilityTitle = " "
@@ -194,6 +196,9 @@ class UdfpsControllerOverlay @JvmOverloads constructor(
windowManager.addView(this, coreLayoutParams.updateDimensions(animation))
sensorRect = sensorBounds
touchExplorationEnabled = accessibilityManager.isTouchExplorationEnabled
+ dimUpdate = {
+ windowManager.updateViewLayout(this, coreLayoutParams.updateDimensions(animation).apply { dimAmount = it })
+ }
overlayTouchListener = TouchExplorationStateChangeListener {
if (accessibilityManager.isTouchExplorationEnabled) {
setOnHoverListener { v, event -> onTouch(v, event, true) }
@@ -222,6 +224,9 @@ class UdfpsControllerOverlay @JvmOverloads constructor(
windowManager.addView(this, coreLayoutParams.updateDimensions(animation))
sensorRect = sensorBounds
+ dimUpdate = {
+ windowManager.updateViewLayout(this, coreLayoutParams.updateDimensions(animation).apply { dimAmount = it })
+ }
}
}
getTouchOverlay()?.apply {
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.kt b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.kt
index 06dee7a2b9f6..4377dd7e70a7 100644
index 76bcd6e2863b..7ce6ecbb6311 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.kt
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.kt
@@ -19,16 +19,33 @@ import android.content.Context
@@ -19,14 +19,32 @@ import android.content.Context
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
+import android.graphics.PixelFormat
import android.graphics.PointF
+import android.graphics.PointF
import android.graphics.Rect
import android.graphics.RectF
+import android.os.FileObserver
@@ -186,8 +260,7 @@ index 06dee7a2b9f6..4377dd7e70a7 100644
+import android.view.SurfaceView
+import android.view.ViewGroup
import android.widget.FrameLayout
import com.android.settingslib.udfps.UdfpsOverlayParams
import com.android.systemui.R
import com.android.systemui.biometrics.shared.model.UdfpsOverlayParams
import com.android.systemui.doze.DozeReceiver
+import java.io.File
+import java.io.FileNotFoundException
@@ -204,7 +277,7 @@ index 06dee7a2b9f6..4377dd7e70a7 100644
private const val TAG = "UdfpsView"
@@ -39,6 +56,54 @@ class UdfpsView(
@@ -37,6 +55,55 @@ class UdfpsView(
context: Context,
attrs: AttributeSet?
) : FrameLayout(context, attrs), DozeReceiver {
@@ -256,10 +329,11 @@ index 06dee7a2b9f6..4377dd7e70a7 100644
+ mySurfaceView.holder.setFormat(PixelFormat.RGBA_8888)
+
+ }
// Use expanded overlay when feature flag is true, set by UdfpsViewController
var useExpandedOverlay: Boolean = false
@@ -67,6 +132,8 @@ class UdfpsView(
+
// sensorRect may be bigger than the sensor. True sensor dimensions are defined in
// overlayParams.sensorBounds
var sensorRect = Rect()
@@ -53,6 +120,8 @@ class UdfpsView(
/** Parameters that affect the position and size of the overlay. */
var overlayParams = UdfpsOverlayParams()
@@ -268,8 +342,8 @@ index 06dee7a2b9f6..4377dd7e70a7 100644
/** Debug message. */
var debugMessage: String? = null
set(value) {
@@ -147,15 +214,168 @@ class UdfpsView(
!(animationViewController?.shouldPauseAuth() ?: false)
@@ -103,15 +172,177 @@ class UdfpsView(
}
}
+ fun goodixCmd(id: Int) {
@@ -287,8 +361,13 @@ index 06dee7a2b9f6..4377dd7e70a7 100644
+ val hasSamsungMask = File(samsungActualMaskBrightness).exists()
+ var fodFileObserver: FileObserver? = null
+
+ val xiaomiDispParam = "/sys/class/mi_display/disp-DSI-0/disp_param"
+ var hasXiaomiLhbm = File(xiaomiDispParam).exists()
+ val xiaomiDispParam = "/sys/class/mi_display/disp-DSI-0/disp_param"
+ var hasXiaomiLhbm = try {
+ val xiaomiFingerprintService = IXiaomiFingerprint.getService()
+ File(xiaomiDispParam).exists() && xiaomiFingerprintService != null
+ } catch(e: Exception) {
+ false
+ }
+
+ private val handlerThread = HandlerThread("UDFPS").also { it.start() }
+ val myHandler = Handler(handlerThread.looper)
@@ -351,14 +430,16 @@ index 06dee7a2b9f6..4377dd7e70a7 100644
+ Log.d("PHH-Enroll", "Xiaomi scenario in UdfpsView reached!")
+ mySurfaceView.setVisibility(INVISIBLE)
+
+ IXiaomiFingerprint.getService().extCmd(android.os.SystemProperties.getInt("persist.phh.xiaomi.fod.enrollment.id", 4), 1);
+ var res = ITouchFeature.getService().setTouchMode(0, 10, 1);
+ try {
+ IXiaomiFingerprint.getService().extCmd(android.os.SystemProperties.getInt("persist.phh.xiaomi.fod.enrollment.id", 4), 1);
+ } catch(t: Throwable) {}
+ var res = try { ITouchFeature.getService().setTouchMode(0, 10, 1) } catch(t: Throwable){ -1 }
+ if(res != 0){
+ Log.d("PHH-Enroll", "SetTouchMode 10,1 was NOT executed successfully. Res is " + res)
+ }
+
+ myHandler.postDelayed({
+ var ret200 = ITouchFeature.getService().setTouchMode(0, 10, 1);
+ var ret200 = try { ITouchFeature.getService().setTouchMode(0, 10, 1); } catch(t: Throwable) { -1 }
+
+ if(ret200 != 0){
+ Log.d("PHH-Enroll", "myHandler.postDelayed 200ms -SetTouchMode was NOT executed successfully. Ret is " + ret200)
@@ -366,7 +447,7 @@ index 06dee7a2b9f6..4377dd7e70a7 100644
+
+ myHandler.postDelayed({
+ Log.d("PHH-Enroll", "myHandler.postDelayed 600ms - line prior to setTouchMode 10,0")
+ var ret600 = ITouchFeature.getService().setTouchMode(0, 10, 0);
+ var ret600 = try { ITouchFeature.getService().setTouchMode(0, 10, 0); } catch(t: Throwable) { -1 }
+
+ if(ret600 != 0){
+ Log.d("PHH-Enroll", "myHandler.postDelayed 600ms -SetTouchMode 10,0 was NOT executed successfully. Ret is " + ret600)
@@ -388,7 +469,8 @@ index 06dee7a2b9f6..4377dd7e70a7 100644
+
+ if (hasAsusGhbm) {
+ fodFileObserver = object: FileObserver(asusGhbmOnAchieved, FileObserver.MODIFY) {
+ override fun onEvent(event: Int, path: String): Unit {
+ override fun onEvent(event: Int, path: String?): Unit {
+ if (path == null) return
+ Log.d("PHH-Enroll", "Asus ghbm event")
+ try {
+ val spotOn = File(asusGhbmOnAchieved).readText().toInt()
@@ -404,8 +486,9 @@ index 06dee7a2b9f6..4377dd7e70a7 100644
+ };
+ fodFileObserver?.startWatching();
+ } else if (hasSamsungMask) {
+ fodFileObserver = object: FileObserver(asusGhbmOnAchieved, FileObserver.MODIFY) {
+ override fun onEvent(event: Int, path: String): Unit {
+ fodFileObserver = object: FileObserver(samsungActualMaskBrightness, FileObserver.MODIFY) {
+ override fun onEvent(event: Int, path: String?): Unit {
+ if (path == null) return
+ Log.d("PHH-Enroll", "samsung mask brightness event")
+ try {
+ val spotOn = File(samsungActualMaskBrightness).readText().toInt()
@@ -437,11 +520,24 @@ index 06dee7a2b9f6..4377dd7e70a7 100644
+ }
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/deviceentry/shared/DeviceEntryUdfpsRefactor.kt b/packages/SystemUI/src/com/android/systemui/deviceentry/shared/DeviceEntryUdfpsRefactor.kt
index b5d5803ca6fb..68f74f3ed6f3 100644
--- a/packages/SystemUI/src/com/android/systemui/deviceentry/shared/DeviceEntryUdfpsRefactor.kt
+++ b/packages/SystemUI/src/com/android/systemui/deviceentry/shared/DeviceEntryUdfpsRefactor.kt
@@ -33,7 +33,7 @@ object DeviceEntryUdfpsRefactor {
/** Is the refactor enabled */
@JvmStatic
inline val isEnabled
- get() = Flags.deviceEntryUdfpsRefactor()
+ get() = false //Flags.deviceEntryUdfpsRefactor()
/**
* Called to ensure code is only run when the flag is enabled. This protects users from the
diff --git a/services/core/Android.bp b/services/core/Android.bp
index c4239779425f..9b928082a380 100644
index fc9600992dbb..bf0b5d92db7f 100644
--- a/services/core/Android.bp
+++ b/services/core/Android.bp
@@ -190,6 +190,11 @@ java_library_static {
@@ -208,6 +208,11 @@ java_library_static {
// HIDL
"vendor.mediatek.hardware.mtkpower-V1.1-java",
"vendor.samsung.hardware.sysinput-V1.2-java",
@@ -454,10 +550,10 @@ index c4239779425f..9b928082a380 100644
javac_shard_size: 50,
javacflags: [
diff --git a/services/core/java/com/android/server/biometrics/AuthService.java b/services/core/java/com/android/server/biometrics/AuthService.java
index c692f5f9472c..8194fbc2ac9e 100644
index 5279073cd71a..f6f0fea8e3e7 100644
--- a/services/core/java/com/android/server/biometrics/AuthService.java
+++ b/services/core/java/com/android/server/biometrics/AuthService.java
@@ -78,6 +78,25 @@ import java.util.ArrayList;
@@ -80,6 +80,25 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -483,7 +579,7 @@ index c692f5f9472c..8194fbc2ac9e 100644
/**
* System service that provides an interface for authenticating with biometrics and
* PIN/pattern/password to BiometricPrompt and lock screen.
@@ -96,6 +115,11 @@ public class AuthService extends SystemService {
@@ -98,6 +117,11 @@ public class AuthService extends SystemService {
@VisibleForTesting
final IAuthService.Stub mImpl;
@@ -495,7 +591,7 @@ index c692f5f9472c..8194fbc2ac9e 100644
/**
* Class for injecting dependencies into AuthService.
* TODO(b/141025588): Replace with a dependency injection framework (e.g. Guice, Dagger).
@@ -655,11 +679,11 @@ public class AuthService extends SystemService {
@@ -704,11 +728,11 @@ public class AuthService extends SystemService {
final int firstApiLevel = SystemProperties.getInt(SYSPROP_FIRST_API_LEVEL, 0);
final int apiLevel = SystemProperties.getInt(SYSPROP_API_LEVEL, firstApiLevel);
String[] configStrings = mInjector.getConfiguration(getContext());
@@ -509,7 +605,7 @@ index c692f5f9472c..8194fbc2ac9e 100644
configStrings = generateRSdkCompatibleConfiguration();
}
hidlConfigs = new SensorConfig[configStrings.length];
@@ -674,6 +698,102 @@ public class AuthService extends SystemService {
@@ -723,6 +747,102 @@ public class AuthService extends SystemService {
registerAuthenticators(hidlConfigs);
mInjector.publishBinderService(this, mImpl);
@@ -612,12 +708,12 @@ index c692f5f9472c..8194fbc2ac9e 100644
}
/**
@@ -797,18 +917,123 @@ public class AuthService extends SystemService {
@@ -846,18 +966,123 @@ public class AuthService extends SystemService {
? modality : (modality & ~BiometricAuthenticator.TYPE_CREDENTIAL);
}
+ private int[] dynamicUdfpsProps() {
+ DisplayManager mDM = (DisplayManager) getContext().getSystemService(Context.DISPLAY_SERVICE);
+ static public int[] dynamicUdfpsProps(Context ctxt) {
+ DisplayManager mDM = (DisplayManager) ctxt.getSystemService(Context.DISPLAY_SERVICE);
+ Point displayRealSize = new Point();
+ DisplayMetrics displayMetrics = new DisplayMetrics();
+ mDM.getDisplay(0).getRealSize(displayRealSize);
@@ -725,7 +821,7 @@ index c692f5f9472c..8194fbc2ac9e 100644
+ boolean isUdfps = !ArrayUtils.isEmpty(udfpsProps);
+ if(!isUdfps) {
+ try {
+ udfpsProps = dynamicUdfpsProps();
+ udfpsProps = dynamicUdfpsProps(getContext());
+ } catch(Throwable t) {
+ Slog.e("PHH-Enroll", "Failed generating UDFPS props");
+ }
@@ -738,7 +834,7 @@ index c692f5f9472c..8194fbc2ac9e 100644
// config_is_powerbutton_fps indicates whether device has a power button fingerprint sensor.
final boolean isPowerbuttonFps = getContext().getResources().getBoolean(
@@ -876,4 +1101,67 @@ public class AuthService extends SystemService {
@@ -925,4 +1150,67 @@ public class AuthService extends SystemService {
componentInfo, resetLockoutRequiresHardwareAuthToken,
resetLockoutRequiresChallenge);
}
@@ -807,10 +903,10 @@ index c692f5f9472c..8194fbc2ac9e 100644
+ }
}
diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java
index 5ce0c8b384ef..df99478da964 100644
index 83b306b07c27..28b45a59ee62 100644
--- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java
+++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java
@@ -885,8 +885,9 @@ public class FingerprintService extends SystemService {
@@ -889,8 +889,9 @@ public class FingerprintService extends SystemService {
filteredInstances = filterAvailableHalInstances(hidlSensors, aidlSensors);
final List<ServiceProvider> providers = new ArrayList<>();
@@ -821,6 +917,60 @@ index 5ce0c8b384ef..df99478da964 100644
return providers;
});
diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java
index 07a69d9ebd00..2bb568bedabc 100644
--- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java
+++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java
@@ -37,6 +37,7 @@ import android.hardware.biometrics.common.ComponentInfo;
import android.hardware.biometrics.fingerprint.IFingerprint;
import android.hardware.biometrics.fingerprint.PointerContext;
import android.hardware.biometrics.fingerprint.SensorProps;
+import android.hardware.biometrics.fingerprint.SensorLocation;
import android.hardware.fingerprint.Fingerprint;
import android.hardware.fingerprint.FingerprintAuthenticateOptions;
import android.hardware.fingerprint.FingerprintManager;
@@ -204,9 +205,32 @@ public class FingerprintProvider implements IBinder.DeathRecipient, ServiceProvi
});
final List<SensorLocationInternal> workaroundLocations = getWorkaroundSensorProps(context);
+android.util.Log.e("PHH-Enroll", "Poping AIDL fp provider");
for (SensorProps prop : props) {
final int sensorId = prop.commonProps.sensorId;
+ SensorLocation[] locations = prop.sensorLocations;
+
+ android.util.Log.e("PHH-Enroll", "Got fp props -- pre");
+ for(SensorLocation loc: locations) {
+ android.util.Log.e("PHH-Enroll", " - " + loc.sensorLocationX + ", " + loc.sensorLocationY + ", " +loc.sensorRadius + ", disp =" + loc.display + ", shape " + loc.sensorShape);
+ }
+ if (locations.length == 1 && locations[0].sensorLocationX == 0) {
+ int[] otherValues = com.android.server.biometrics.AuthService.dynamicUdfpsProps(context);
+ if (otherValues.length > 0) {
+ SensorLocation loc = new SensorLocation();
+ loc.sensorLocationX = otherValues[0];
+ loc.sensorLocationY = otherValues[1];
+ loc.sensorRadius = otherValues[2];
+ locations[0] = loc;
+ }
+ }
+
+ android.util.Log.e("PHH-Enroll", "Got fp props -- post");
+ for(SensorLocation loc: locations) {
+ android.util.Log.e("PHH-Enroll", " - " + loc.sensorLocationX + ", " + loc.sensorLocationY + ", " +loc.sensorRadius + ", disp =" + loc.display + ", shape " + loc.sensorShape);
+ }
+
final List<ComponentInfoInternal> componentInfo = new ArrayList<>();
if (prop.commonProps.componentInfo != null) {
@@ -226,7 +250,7 @@ public class FingerprintProvider implements IBinder.DeathRecipient, ServiceProvi
prop.halControlsIllumination,
true /* resetLockoutRequiresHardwareAuthToken */,
!workaroundLocations.isEmpty() ? workaroundLocations :
- Arrays.stream(prop.sensorLocations).map(location ->
+ Arrays.stream(locations).map(location ->
new SensorLocationInternal(
location.display,
location.sensorLocationX,
--
2.34.1

View File

@@ -1,4 +1,4 @@
From 6fcb492949bbf602572524213fb7eebd54b1be99 Mon Sep 17 00:00:00 2001
From 2caf7271a3841feb8a90d18f7d69866c9afe3dab Mon Sep 17 00:00:00 2001
From: ChonDoit <thphantomblog@gmail.com>
Date: Thu, 24 Aug 2023 15:58:15 -0300
Subject: [PATCH 37/50] Fix brightness slider curve for some devices

View File

@@ -1,4 +1,4 @@
From 74de5557e6951ec79d2184bf41c2c4a2f7727dd0 Mon Sep 17 00:00:00 2001
From 541e55d24e8ab0e01d7dd9e117ecc43a79bc0b16 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 18 Oct 2023 16:53:40 -0400
Subject: [PATCH 38/50] Ignore cgroup creation errors
@@ -10,10 +10,10 @@ For old kernels who don't have those modern cgroups
2 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp
index 56066b2d813c..4ee3e92910d0 100644
index 7c5885adb220..c2f45e3727bb 100644
--- a/core/jni/com_android_internal_os_Zygote.cpp
+++ b/core/jni/com_android_internal_os_Zygote.cpp
@@ -1806,10 +1806,12 @@ static void SpecializeCommon(JNIEnv* env, uid_t uid, gid_t gid, jintArray gids,
@@ -1943,10 +1943,12 @@ static void SpecializeCommon(JNIEnv* env, uid_t uid, gid_t gid, jintArray gids,
if (!is_system_server && getuid() == 0) {
const int rc = createProcessGroup(uid, getpid());
if (rc != 0) {
@@ -27,10 +27,10 @@ index 56066b2d813c..4ee3e92910d0 100644
}
diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java
index b0f77604319b..23ca22fc73f4 100644
index 3156e9da0ae9..e5949f95b6d1 100644
--- a/services/core/java/com/android/server/am/ProcessList.java
+++ b/services/core/java/com/android/server/am/ProcessList.java
@@ -2433,14 +2433,9 @@ public final class ProcessList {
@@ -2516,14 +2516,9 @@ public final class ProcessList {
// If we're not told to skip the process group creation, go create it.
final int res = Process.createProcessGroup(uid, startResult.pid);
if (res < 0) {

View File

@@ -1,4 +1,4 @@
From f9abaf1a6cd90a580f9245434798e9325e037aae Mon Sep 17 00:00:00 2001
From 0ec9abbe99e9836d694eed10559c7776531d1378 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 18 Oct 2023 16:57:34 -0400
Subject: [PATCH 39/50] Samsung tablets use SW_MACHINE_COVER rather than SW_LID
@@ -12,10 +12,10 @@ Should fix https://github.com/phhusson/treble_experimentations/issues/2572
1 file changed, 21 insertions(+), 4 deletions(-)
diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java
index ff69719c9497..3b168b59423a 100644
index 972f85793556..2f813324b75f 100644
--- a/services/core/java/com/android/server/input/InputManagerService.java
+++ b/services/core/java/com/android/server/input/InputManagerService.java
@@ -369,6 +369,9 @@ public class InputManagerService extends IInputManager.Stub
@@ -373,6 +373,9 @@ public class InputManagerService extends IInputManager.Stub
/** Switch code: Microphone. When set, the mic is muted. */
public static final int SW_MUTE_DEVICE = 0x0e;
@@ -25,7 +25,7 @@ index ff69719c9497..3b168b59423a 100644
public static final int SW_LID_BIT = 1 << SW_LID;
public static final int SW_TABLET_MODE_BIT = 1 << SW_TABLET_MODE;
public static final int SW_KEYPAD_SLIDE_BIT = 1 << SW_KEYPAD_SLIDE;
@@ -380,6 +383,8 @@ public class InputManagerService extends IInputManager.Stub
@@ -384,6 +387,8 @@ public class InputManagerService extends IInputManager.Stub
SW_HEADPHONE_INSERT_BIT | SW_MICROPHONE_INSERT_BIT | SW_JACK_PHYSICAL_INSERT_BIT | SW_LINEOUT_INSERT_BIT;
public static final int SW_CAMERA_LENS_COVER_BIT = 1 << SW_CAMERA_LENS_COVER;
public static final int SW_MUTE_DEVICE_BIT = 1 << SW_MUTE_DEVICE;
@@ -34,7 +34,7 @@ index ff69719c9497..3b168b59423a 100644
// The following are layer numbers used for z-ordering the input overlay layers on the display.
// This is used for ordering layers inside {@code DisplayContent#getInputOverlayLayer()}.
@@ -488,6 +493,16 @@ public class InputManagerService extends IInputManager.Stub
@@ -494,6 +499,16 @@ public class InputManagerService extends IInputManager.Stub
mWiredAccessoryCallbacks = callbacks;
}
@@ -51,7 +51,7 @@ index ff69719c9497..3b168b59423a 100644
void registerLidSwitchCallbackInternal(@NonNull LidSwitchCallback callback) {
synchronized (mLidSwitchLock) {
mLidSwitchCallbacks.add(callback);
@@ -496,7 +511,8 @@ public class InputManagerService extends IInputManager.Stub
@@ -502,7 +517,8 @@ public class InputManagerService extends IInputManager.Stub
// state will be reported as KEY_STATE_UNKNOWN. The callback will be triggered in
// systemRunning().
if (mSystemReady) {
@@ -61,7 +61,7 @@ index ff69719c9497..3b168b59423a 100644
== KEY_STATE_UP;
callback.notifyLidSwitchChanged(0 /* whenNanos */, lidOpen);
}
@@ -534,7 +550,8 @@ public class InputManagerService extends IInputManager.Stub
@@ -540,7 +556,8 @@ public class InputManagerService extends IInputManager.Stub
// Send the initial lid switch state to any callback registered before the system was
// ready.
@@ -71,7 +71,7 @@ index ff69719c9497..3b168b59423a 100644
for (int i = 0; i < mLidSwitchCallbacks.size(); i++) {
LidSwitchCallback callback = mLidSwitchCallbacks.get(i);
callback.notifyLidSwitchChanged(0 /* whenNanos */, switchState == KEY_STATE_UP);
@@ -2328,8 +2345,8 @@ public class InputManagerService extends IInputManager.Stub
@@ -2355,8 +2372,8 @@ public class InputManagerService extends IInputManager.Stub
+ ", mask=" + Integer.toHexString(switchMask));
}

View File

@@ -1,4 +1,4 @@
From 8f5b0fa613b9ca70fe63ec78a1b27b86b6650559 Mon Sep 17 00:00:00 2001
From 59a5f752cd9c87b48dedbca083e95bf7045c84d5 Mon Sep 17 00:00:00 2001
From: Alberto Ponces <ponces26@gmail.com>
Date: Fri, 20 Oct 2023 09:26:19 +0000
Subject: [PATCH 40/50] Revert "Removed IWLAN legacy mode support"
@@ -9,10 +9,10 @@ This reverts commit 2832dee607ab33eee688abea206f4adfcfc896f1.
1 file changed, 20 insertions(+), 10 deletions(-)
diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java
index 74cfbea91e00..698a106582d3 100644
index 85a85c6dfadb..6c96ac4bc712 100644
--- a/telephony/java/android/telephony/ServiceState.java
+++ b/telephony/java/android/telephony/ServiceState.java
@@ -1213,8 +1213,13 @@ public class ServiceState implements Parcelable {
@@ -1215,8 +1215,13 @@ public class ServiceState implements Parcelable {
/**
* Initialize the service state. Set everything to the default value.
@@ -27,7 +27,7 @@ index 74cfbea91e00..698a106582d3 100644
if (DBG) Rlog.d(LOG_TAG, "init");
mVoiceRegState = STATE_OUT_OF_SERVICE;
mDataRegState = STATE_OUT_OF_SERVICE;
@@ -1246,11 +1251,13 @@ public class ServiceState implements Parcelable {
@@ -1248,11 +1253,13 @@ public class ServiceState implements Parcelable {
.setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
.setRegistrationState(NetworkRegistrationInfo.REGISTRATION_STATE_UNKNOWN)
.build());
@@ -46,7 +46,7 @@ index 74cfbea91e00..698a106582d3 100644
}
mOperatorAlphaLongRaw = null;
mOperatorAlphaShortRaw = null;
@@ -1259,11 +1266,11 @@ public class ServiceState implements Parcelable {
@@ -1261,11 +1268,11 @@ public class ServiceState implements Parcelable {
}
public void setStateOutOfService() {
@@ -60,7 +60,7 @@ index 74cfbea91e00..698a106582d3 100644
mVoiceRegState = STATE_POWER_OFF;
mDataRegState = STATE_POWER_OFF;
}
@@ -1271,11 +1278,14 @@ public class ServiceState implements Parcelable {
@@ -1273,11 +1280,14 @@ public class ServiceState implements Parcelable {
/**
* Set the service state to out-of-service
*

View File

@@ -1,4 +1,4 @@
From 48a560ce8e35aa566b5e7c13942b8ce665a1bddc Mon Sep 17 00:00:00 2001
From d2957b70a3c2b5d4e524d61dee5208148273c480 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 30 Oct 2023 19:25:27 -0400
Subject: [PATCH 41/50] Add a prop to use linear backlight control
@@ -8,10 +8,10 @@ Subject: [PATCH 41/50] Add a prop to use linear backlight control
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/packages/SystemUI/src/com/android/systemui/settings/brightness/BrightnessController.java b/packages/SystemUI/src/com/android/systemui/settings/brightness/BrightnessController.java
index bc915b0147f1..97e7b1f630c3 100644
index 520f841cb736..a7ed04dad7c4 100644
--- a/packages/SystemUI/src/com/android/systemui/settings/brightness/BrightnessController.java
+++ b/packages/SystemUI/src/com/android/systemui/settings/brightness/BrightnessController.java
@@ -361,9 +361,15 @@ public class BrightnessController implements ToggleSlider.Listener, MirroredBrig
@@ -362,9 +362,15 @@ public class BrightnessController implements ToggleSlider.Listener, MirroredBrig
: MetricsEvent.ACTION_BRIGHTNESS;
minBacklight = mBrightnessMin;
maxBacklight = mBrightnessMax;
@@ -28,7 +28,7 @@ index bc915b0147f1..97e7b1f630c3 100644
if (stopTracking) {
// TODO(brightnessfloat): change to use float value instead.
MetricsLogger.action(mContext, metric,
@@ -374,7 +380,7 @@ public class BrightnessController implements ToggleSlider.Listener, MirroredBrig
@@ -375,7 +381,7 @@ public class BrightnessController implements ToggleSlider.Listener, MirroredBrig
if (!tracking) {
AsyncTask.execute(new Runnable() {
public void run() {

View File

@@ -1,7 +1,7 @@
From c266c21c6731a1f337851a20b562c4df20e5482c Mon Sep 17 00:00:00 2001
From c5f9230959c480e46c95dd5a7dbdd6e236d80801 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 10 Dec 2023 18:04:49 -0500
Subject: [PATCH 43/50] Add support for Samsung full brightness on their AIDL
Subject: [PATCH 42/50] Add support for Samsung full brightness on their AIDL
HAL
---
@@ -10,10 +10,10 @@ Subject: [PATCH 43/50] Add support for Samsung full brightness on their AIDL
2 files changed, 44 insertions(+)
diff --git a/services/core/Android.bp b/services/core/Android.bp
index 9b928082a380..6caa4b4ffd8d 100644
index bf0b5d92db7f..848512dc7835 100644
--- a/services/core/Android.bp
+++ b/services/core/Android.bp
@@ -195,6 +195,10 @@ java_library_static {
@@ -213,6 +213,10 @@ java_library_static {
"vendor.oplus.hardware.biometrics.fingerprint-V2.1-java",
"vendor.oppo.hardware.biometrics.fingerprint-V2.1-java",
"vendor.xiaomi.hardware.fingerprintextension-V1.0-java",
@@ -25,7 +25,7 @@ index 9b928082a380..6caa4b4ffd8d 100644
javac_shard_size: 50,
javacflags: [
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
index caf9eba7d9a8..04ad3114d2ac 100644
index c94d334b280b..9d9e905fdf48 100644
--- a/services/core/java/com/android/server/lights/LightsService.java
+++ b/services/core/java/com/android/server/lights/LightsService.java
@@ -45,8 +45,10 @@ import com.android.internal.util.DumpUtils;
@@ -59,7 +59,7 @@ index caf9eba7d9a8..04ad3114d2ac 100644
@VisibleForTesting
final LightsManagerBinderService mManagerService;
@@ -298,6 +306,17 @@ public class LightsService extends SystemService {
@@ -301,6 +309,17 @@ public class LightsService extends SystemService {
int brightnessInt = BrightnessSynchronizer.brightnessFloatToInt(brightness);
if(mHwLight.id == 0) {
@@ -77,7 +77,7 @@ index caf9eba7d9a8..04ad3114d2ac 100644
String fp = SystemProperties.get("ro.vendor.build.fingerprint", "hello");
if(fp.matches(".*astarqlte.*")) {
int newBrightness = brightnessInt;
@@ -513,6 +532,27 @@ public class LightsService extends SystemService {
@@ -516,6 +535,27 @@ public class LightsService extends SystemService {
mH = new Handler(looper);
mVintfLights = service.get() != null ? service : null;

View File

@@ -1,86 +0,0 @@
From 0fd828ddefa89e1f5499650a2be3f45cfd527cd4 Mon Sep 17 00:00:00 2001
From: MrHereAndThere <38396158+boydaihungst@users.noreply.github.com>
Date: Fri, 17 Nov 2023 09:22:29 +0700
Subject: [PATCH 42/50] fix(fod): Extra Dim overlap fod overlay
Extra Dim will set display panel brightness to lowest value possible, which will also effect FOD overlay.
---
.../systemui/biometrics/UdfpsController.java | 20 +++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java
index 19b67b5f3def..ef5e4f617138 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java
@@ -42,6 +42,7 @@ import android.hardware.fingerprint.FingerprintSensorProperties;
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
import android.hardware.fingerprint.IUdfpsOverlayController;
import android.hardware.fingerprint.IUdfpsOverlayControllerCallback;
+import android.hardware.display.ColorDisplayManager;
import android.hardware.input.InputManager;
import android.os.Build;
import android.os.Handler;
@@ -184,6 +185,8 @@ public class UdfpsController implements DozeReceiver, Dumpable {
@NonNull private final UdfpsUtils mUdfpsUtils;
@NonNull private final InputManager mInputManager;
@NonNull private final UdfpsKeyguardAccessibilityDelegate mUdfpsKeyguardAccessibilityDelegate;
+ @NonNull private final ColorDisplayManager mColorDisplayManager;
+ private boolean mIgnoreExtraDim;
private final boolean mIgnoreRefreshRate;
// Currently the UdfpsController supports a single UDFPS sensor. If devices have multiple
@@ -898,7 +901,8 @@ public class UdfpsController implements DozeReceiver, Dumpable {
@NonNull UdfpsUtils udfpsUtils,
@NonNull KeyguardFaceAuthInteractor keyguardFaceAuthInteractor,
@NonNull UdfpsKeyguardAccessibilityDelegate udfpsKeyguardAccessibilityDelegate,
- @NonNull Provider<UdfpsKeyguardViewModels> udfpsKeyguardViewModelsProvider) {
+ @NonNull Provider<UdfpsKeyguardViewModels> udfpsKeyguardViewModelsProvider,
+ @NonNull ColorDisplayManager colorDisplayManager) {
mContext = context;
mExecution = execution;
mVibrator = vibrator;
@@ -945,6 +949,7 @@ public class UdfpsController implements DozeReceiver, Dumpable {
mUdfpsUtils = udfpsUtils;
mInputManager = inputManager;
mUdfpsKeyguardAccessibilityDelegate = udfpsKeyguardAccessibilityDelegate;
+ mColorDisplayManager = colorDisplayManager;
mTouchProcessor = mFeatureFlags.isEnabled(Flags.UDFPS_NEW_TOUCH_DETECTION)
? singlePointerTouchProcessor : null;
@@ -1025,7 +1030,10 @@ public class UdfpsController implements DozeReceiver, Dumpable {
private void showUdfpsOverlay(@NonNull UdfpsControllerOverlay overlay) {
mExecution.assertIsMainThread();
-
+ mIgnoreExtraDim = mColorDisplayManager.isReduceBrightColorsActivated();
+ if (mIgnoreExtraDim) {
+ Log.d(TAG, "Current extra dim state (showUdfpsOverlay): " + mIgnoreExtraDim);
+ }
mOverlay = overlay;
final int requestReason = overlay.getRequestReason();
if (requestReason == REASON_AUTH_KEYGUARD
@@ -1244,6 +1252,10 @@ public class UdfpsController implements DozeReceiver, Dumpable {
return;
}
if (isOptical()) {
+ if (mIgnoreExtraDim) {
+ mColorDisplayManager.setReduceBrightColorsActivated(false);
+ Log.d(TAG, "Extra dim disabled");
+ }
mLatencyTracker.onActionStart(LatencyTracker.ACTION_UDFPS_ILLUMINATE);
}
// Refresh screen timeout and boost process priority if possible.
@@ -1330,6 +1342,10 @@ public class UdfpsController implements DozeReceiver, Dumpable {
mActivePointerId = -1;
mAcquiredReceived = false;
if (mOnFingerDown) {
+ if (mIgnoreExtraDim && isOptical()) {
+ mColorDisplayManager.setReduceBrightColorsActivated(true);
+ Log.d(TAG, "Extra dim restored");
+ }
if (mAlternateTouchProvider != null) {
mBiometricExecutor.execute(() -> {
mAlternateTouchProvider.onPointerUp(requestId);
--
2.34.1

View File

@@ -1,17 +1,17 @@
From f217e6629f2684cad122eaa9fb551e94291a8a56 Mon Sep 17 00:00:00 2001
From 58d8f2d374863b2e3d8ad7964718ca34f3e61f99 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 29 Jan 2024 17:07:07 -0500
Subject: [PATCH 48/50] Add Samsung sysinput
Subject: [PATCH 43/50] Add Samsung sysinput
---
services/core/Android.bp | 1 +
1 file changed, 1 insertion(+)
diff --git a/services/core/Android.bp b/services/core/Android.bp
index 6caa4b4ffd8d..db3279814f21 100644
index 848512dc7835..52f8c57dcdc1 100644
--- a/services/core/Android.bp
+++ b/services/core/Android.bp
@@ -197,6 +197,7 @@ java_library_static {
@@ -215,6 +215,7 @@ java_library_static {
"vendor.xiaomi.hardware.fingerprintextension-V1.0-java",
//AIDL

View File

@@ -1,7 +1,7 @@
From a0b5d0f01c5181af0e7b0e0048c92e61cd9d58af Mon Sep 17 00:00:00 2001
From a3ae2f7a7aa63c58a0b43fb39a056e0a24d131de Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 29 Jan 2024 17:15:38 -0500
Subject: [PATCH 49/50] Bunch of FOD stuff -- commonize refreshing the
Subject: [PATCH 44/50] Bunch of FOD stuff -- commonize refreshing the
services, start supporting AIDL Samsung
---
@@ -9,10 +9,10 @@ Subject: [PATCH 49/50] Bunch of FOD stuff -- commonize refreshing the
1 file changed, 138 insertions(+), 19 deletions(-)
diff --git a/services/core/java/com/android/server/biometrics/AuthService.java b/services/core/java/com/android/server/biometrics/AuthService.java
index 1fffe381a34f..a51fe5cdd66a 100644
index f6f0fea8e3e7..62c8bcf37960 100644
--- a/services/core/java/com/android/server/biometrics/AuthService.java
+++ b/services/core/java/com/android/server/biometrics/AuthService.java
@@ -45,6 +45,7 @@ import android.hardware.biometrics.IAuthService;
@@ -47,6 +47,7 @@ import android.hardware.biometrics.IAuthService;
import android.hardware.biometrics.IBiometricEnabledOnKeyguardCallback;
import android.hardware.biometrics.IBiometricService;
import android.hardware.biometrics.IBiometricServiceReceiver;
@@ -20,7 +20,7 @@ index 1fffe381a34f..a51fe5cdd66a 100644
import android.hardware.biometrics.IInvalidationCallback;
import android.hardware.biometrics.ITestSession;
import android.hardware.biometrics.ITestSessionCallback;
@@ -94,6 +95,7 @@ import android.os.Build;
@@ -96,6 +97,7 @@ import android.os.Build;
import vendor.samsung.hardware.biometrics.fingerprint.V3_0.ISehBiometricsFingerprint;
import vendor.goodix.hardware.biometrics.fingerprint.V2_1.IGoodixFingerprintDaemon;
import vendor.samsung.hardware.sysinput.V1_0.ISehSysInputDev;
@@ -28,7 +28,7 @@ index 1fffe381a34f..a51fe5cdd66a 100644
import vendor.xiaomi.hardware.fingerprintextension.V1_0.IXiaomiFingerprint;
@@ -117,6 +119,8 @@ public class AuthService extends SystemService {
@@ -119,6 +121,8 @@ public class AuthService extends SystemService {
private FileObserver fodFileObserver = null;
private ISehBiometricsFingerprint mSamsungFingerprint = null;
@@ -37,7 +37,7 @@ index 1fffe381a34f..a51fe5cdd66a 100644
private IXiaomiFingerprint mXiaomiFingerprint = null;
@@ -670,6 +674,101 @@ public class AuthService extends SystemService {
@@ -719,6 +723,101 @@ public class AuthService extends SystemService {
* └── for (s : p.sensors)
* └── BiometricService.registerAuthenticator(s)
*/
@@ -139,7 +139,7 @@ index 1fffe381a34f..a51fe5cdd66a 100644
@Override
public void onStart() {
mBiometricService = mInjector.getBiometricService();
@@ -697,20 +796,11 @@ public class AuthService extends SystemService {
@@ -746,20 +845,11 @@ public class AuthService extends SystemService {
// Registers HIDL and AIDL authenticators, but only HIDL configs need to be provided.
registerAuthenticators(hidlConfigs);
@@ -164,7 +164,7 @@ index 1fffe381a34f..a51fe5cdd66a 100644
samsungCmd("fod_enable,1,1,0");
String actualMaskBrightnessPath = "/sys/class/lcd/panel/actual_mask_brightness";
android.util.Log.e("PHH-Enroll", "Reading actual brightness file gives " + readFile(actualMaskBrightnessPath));
@@ -718,9 +808,7 @@ public class AuthService extends SystemService {
@@ -767,9 +857,7 @@ public class AuthService extends SystemService {
@Override
public void onEvent(int event, String path) {
String actualMask = readFile(actualMaskBrightnessPath);
@@ -175,7 +175,7 @@ index 1fffe381a34f..a51fe5cdd66a 100644
Slog.d("PHH-Enroll", "New actual mask brightness is " + actualMask);
try {
int eventReq = 0;
@@ -965,22 +1053,53 @@ public class AuthService extends SystemService {
@@ -1014,22 +1102,53 @@ public class AuthService extends SystemService {
udfpsProps[2] = (int)mW;
try {

View File

@@ -1,33 +0,0 @@
From 0910830f2b078cf055e5d092b28f729678e61d47 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Fri, 26 Jan 2024 06:40:49 -0500
Subject: [PATCH 44/50] Fix Xiaomi custom vendors implementing fingerprint
properly
---
.../src/com/android/systemui/biometrics/UdfpsView.kt | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.kt b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.kt
index 4377dd7e70a7..91053b2c5f8e 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.kt
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.kt
@@ -229,8 +229,13 @@ class UdfpsView(
val hasSamsungMask = File(samsungActualMaskBrightness).exists()
var fodFileObserver: FileObserver? = null
- val xiaomiDispParam = "/sys/class/mi_display/disp-DSI-0/disp_param"
- var hasXiaomiLhbm = File(xiaomiDispParam).exists()
+ val xiaomiDispParam = "/sys/class/mi_display/disp-DSI-0/disp_param"
+ var hasXiaomiLhbm = try {
+ val xiaomiFingerprintService = IXiaomiFingerprint.getService()
+ File(xiaomiDispParam).exists() && xiaomiFingerprintService != null
+ } catch(e: Exception) {
+ false
+ }
private val handlerThread = HandlerThread("UDFPS").also { it.start() }
val myHandler = Handler(handlerThread.looper)
--
2.34.1

View File

@@ -1,92 +0,0 @@
From 4b2a6be76cfb9edfdbe040c0af98872a96e27195 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 28 Jan 2024 19:16:13 -0500
Subject: [PATCH 45/50] Also override UDFPS infos on AIDL fingerprints --
needed for FP on S24
---
.../server/biometrics/AuthService.java | 6 ++---
.../fingerprint/aidl/FingerprintProvider.java | 26 ++++++++++++++++++-
2 files changed, 28 insertions(+), 4 deletions(-)
diff --git a/services/core/java/com/android/server/biometrics/AuthService.java b/services/core/java/com/android/server/biometrics/AuthService.java
index 8194fbc2ac9e..1fffe381a34f 100644
--- a/services/core/java/com/android/server/biometrics/AuthService.java
+++ b/services/core/java/com/android/server/biometrics/AuthService.java
@@ -917,8 +917,8 @@ public class AuthService extends SystemService {
? modality : (modality & ~BiometricAuthenticator.TYPE_CREDENTIAL);
}
- private int[] dynamicUdfpsProps() {
- DisplayManager mDM = (DisplayManager) getContext().getSystemService(Context.DISPLAY_SERVICE);
+ static public int[] dynamicUdfpsProps(Context ctxt) {
+ DisplayManager mDM = (DisplayManager) ctxt.getSystemService(Context.DISPLAY_SERVICE);
Point displayRealSize = new Point();
DisplayMetrics displayMetrics = new DisplayMetrics();
mDM.getDisplay(0).getRealSize(displayRealSize);
@@ -1024,7 +1024,7 @@ public class AuthService extends SystemService {
boolean isUdfps = !ArrayUtils.isEmpty(udfpsProps);
if(!isUdfps) {
try {
- udfpsProps = dynamicUdfpsProps();
+ udfpsProps = dynamicUdfpsProps(getContext());
} catch(Throwable t) {
Slog.e("PHH-Enroll", "Failed generating UDFPS props");
}
diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java
index 3eef411c86d8..c58f6477b072 100644
--- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java
+++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java
@@ -37,6 +37,7 @@ import android.hardware.biometrics.common.ComponentInfo;
import android.hardware.biometrics.fingerprint.IFingerprint;
import android.hardware.biometrics.fingerprint.PointerContext;
import android.hardware.biometrics.fingerprint.SensorProps;
+import android.hardware.biometrics.fingerprint.SensorLocation;
import android.hardware.fingerprint.Fingerprint;
import android.hardware.fingerprint.FingerprintAuthenticateOptions;
import android.hardware.fingerprint.FingerprintManager;
@@ -190,9 +191,32 @@ public class FingerprintProvider implements IBinder.DeathRecipient, ServiceProvi
BiometricsProtoEnums.MODALITY_FINGERPRINT, new BiometricNotificationImpl());
final List<SensorLocationInternal> workaroundLocations = getWorkaroundSensorProps(context);
+android.util.Log.e("PHH-Enroll", "Poping AIDL fp provider");
for (SensorProps prop : props) {
final int sensorId = prop.commonProps.sensorId;
+ SensorLocation[] locations = prop.sensorLocations;
+
+ android.util.Log.e("PHH-Enroll", "Got fp props -- pre");
+ for(SensorLocation loc: locations) {
+ android.util.Log.e("PHH-Enroll", " - " + loc.sensorLocationX + ", " + loc.sensorLocationY + ", " +loc.sensorRadius + ", disp =" + loc.display + ", shape " + loc.sensorShape);
+ }
+ if (locations.length == 1 && locations[0].sensorLocationX == 0) {
+ int[] otherValues = com.android.server.biometrics.AuthService.dynamicUdfpsProps(context);
+ if (otherValues.length > 0) {
+ SensorLocation loc = new SensorLocation();
+ loc.sensorLocationX = otherValues[0];
+ loc.sensorLocationY = otherValues[1];
+ loc.sensorRadius = otherValues[2];
+ locations[0] = loc;
+ }
+ }
+
+ android.util.Log.e("PHH-Enroll", "Got fp props -- post");
+ for(SensorLocation loc: locations) {
+ android.util.Log.e("PHH-Enroll", " - " + loc.sensorLocationX + ", " + loc.sensorLocationY + ", " +loc.sensorRadius + ", disp =" + loc.display + ", shape " + loc.sensorShape);
+ }
+
final List<ComponentInfoInternal> componentInfo = new ArrayList<>();
if (prop.commonProps.componentInfo != null) {
@@ -212,7 +236,7 @@ public class FingerprintProvider implements IBinder.DeathRecipient, ServiceProvi
prop.halControlsIllumination,
true /* resetLockoutRequiresHardwareAuthToken */,
!workaroundLocations.isEmpty() ? workaroundLocations :
- Arrays.stream(prop.sensorLocations).map(location ->
+ Arrays.stream(locations).map(location ->
new SensorLocationInternal(
location.display,
location.sensorLocationX,
--
2.34.1

View File

@@ -1,7 +1,7 @@
From b472b40193287d699072c94e37007a6840171e14 Mon Sep 17 00:00:00 2001
From fd972adec5cecd44b735a16554139846a3ab5c85 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 4 Feb 2024 18:01:07 -0500
Subject: [PATCH 50/50] Some Samsung devices use SW_FLIP 0x15 rather than
Subject: [PATCH 45/50] Some Samsung devices use SW_FLIP 0x15 rather than
SW_MACHINE_COVER 0x10, so use that
---
@@ -9,10 +9,10 @@ Subject: [PATCH 50/50] Some Samsung devices use SW_FLIP 0x15 rather than
1 file changed, 18 insertions(+), 7 deletions(-)
diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java
index 3b168b59423a..1e00f77f8877 100644
index 2f813324b75f..09f8e2a337cd 100644
--- a/services/core/java/com/android/server/input/InputManagerService.java
+++ b/services/core/java/com/android/server/input/InputManagerService.java
@@ -371,6 +371,8 @@ public class InputManagerService extends IInputManager.Stub
@@ -375,6 +375,8 @@ public class InputManagerService extends IInputManager.Stub
/** Switch code: Cover. When set, the cover is closed. */
public static final int SW_MACHINE_COVER = 0x10;
@@ -21,7 +21,7 @@ index 3b168b59423a..1e00f77f8877 100644
public static final int SW_LID_BIT = 1 << SW_LID;
public static final int SW_TABLET_MODE_BIT = 1 << SW_TABLET_MODE;
@@ -494,13 +496,22 @@ public class InputManagerService extends IInputManager.Stub
@@ -500,13 +502,22 @@ public class InputManagerService extends IInputManager.Stub
}
private void checkForSwMachineCover() {

View File

@@ -0,0 +1,25 @@
From 9f26d51690a7486becabcb6090ffc34e051f3551 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 21 Feb 2024 12:41:46 -0500
Subject: [PATCH 46/50] Include vendor.samsung.hardware.radio.network-V1-java
in base libs, will be used by f/o/telephony
---
Android.bp | 1 +
1 file changed, 1 insertion(+)
diff --git a/Android.bp b/Android.bp
index c63068db1660..e1c218caaf88 100644
--- a/Android.bp
+++ b/Android.bp
@@ -232,6 +232,7 @@ java_library {
"android.hardware.radio.messaging-V3-java",
"android.hardware.radio.modem-V3-java",
"android.hardware.radio.network-V3-java",
+ "vendor.samsung.hardware.radio.network-V1-java",
"android.hardware.radio.sim-V3-java",
"android.hardware.radio.voice-V3-java",
"android.hardware.thermal-V1.0-java-constants",
--
2.34.1

View File

@@ -1,45 +0,0 @@
From fc8191dbed0bceef0a4824a4aa3ca2e4a5260ac1 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 29 Jan 2024 17:06:34 -0500
Subject: [PATCH 46/50] Try catch the Xiaomi calls
---
.../src/com/android/systemui/biometrics/UdfpsView.kt | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.kt b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.kt
index 91053b2c5f8e..d47a7d2068fa 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.kt
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.kt
@@ -298,14 +298,16 @@ class UdfpsView(
Log.d("PHH-Enroll", "Xiaomi scenario in UdfpsView reached!")
mySurfaceView.setVisibility(INVISIBLE)
- IXiaomiFingerprint.getService().extCmd(android.os.SystemProperties.getInt("persist.phh.xiaomi.fod.enrollment.id", 4), 1);
- var res = ITouchFeature.getService().setTouchMode(0, 10, 1);
+ try {
+ IXiaomiFingerprint.getService().extCmd(android.os.SystemProperties.getInt("persist.phh.xiaomi.fod.enrollment.id", 4), 1);
+ } catch(t: Throwable) {}
+ var res = try { ITouchFeature.getService().setTouchMode(0, 10, 1) } catch(t: Throwable){ -1 }
if(res != 0){
Log.d("PHH-Enroll", "SetTouchMode 10,1 was NOT executed successfully. Res is " + res)
}
myHandler.postDelayed({
- var ret200 = ITouchFeature.getService().setTouchMode(0, 10, 1);
+ var ret200 = try { ITouchFeature.getService().setTouchMode(0, 10, 1); } catch(t: Throwable) { -1 }
if(ret200 != 0){
Log.d("PHH-Enroll", "myHandler.postDelayed 200ms -SetTouchMode was NOT executed successfully. Ret is " + ret200)
@@ -313,7 +315,7 @@ class UdfpsView(
myHandler.postDelayed({
Log.d("PHH-Enroll", "myHandler.postDelayed 600ms - line prior to setTouchMode 10,0")
- var ret600 = ITouchFeature.getService().setTouchMode(0, 10, 0);
+ var ret600 = try { ITouchFeature.getService().setTouchMode(0, 10, 0); } catch(t: Throwable) { -1 }
if(ret600 != 0){
Log.d("PHH-Enroll", "myHandler.postDelayed 600ms -SetTouchMode 10,0 was NOT executed successfully. Ret is " + ret600)
--
2.34.1

View File

@@ -0,0 +1,25 @@
From 4ffbef7659e91ea50c94b8b9d7bb2b07d9cf6873 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 21 Feb 2024 16:19:47 -0500
Subject: [PATCH 47/50] Include vendor.samsung.hardware.radio-V2.2-java HIDL in
base libs, will be used by f/o/telephony
---
Android.bp | 1 +
1 file changed, 1 insertion(+)
diff --git a/Android.bp b/Android.bp
index e1c218caaf88..63413e5618d3 100644
--- a/Android.bp
+++ b/Android.bp
@@ -227,6 +227,7 @@ java_library {
"android.hardware.gnss-V2.1-java",
"android.hardware.health-V1.0-java-constants",
"android.hardware.radio-V1.6-java",
+ "vendor.samsung.hardware.radio-V2.2-java",
"android.hardware.radio.data-V3-java",
"android.hardware.radio.ims-V2-java",
"android.hardware.radio.messaging-V3-java",
--
2.34.1

View File

@@ -1,25 +0,0 @@
From 1c4acee244781abae9e9655deff9c3c3e8010c46 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 29 Jan 2024 17:06:45 -0500
Subject: [PATCH 47/50] Typo in observing Samsung brightness
---
.../SystemUI/src/com/android/systemui/biometrics/UdfpsView.kt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.kt b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.kt
index d47a7d2068fa..9f1fde7f2e3f 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.kt
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.kt
@@ -353,7 +353,7 @@ class UdfpsView(
};
fodFileObserver?.startWatching();
} else if (hasSamsungMask) {
- fodFileObserver = object: FileObserver(asusGhbmOnAchieved, FileObserver.MODIFY) {
+ fodFileObserver = object: FileObserver(samsungActualMaskBrightness, FileObserver.MODIFY) {
override fun onEvent(event: Int, path: String): Unit {
Log.d("PHH-Enroll", "samsung mask brightness event")
try {
--
2.34.1

View File

@@ -0,0 +1,88 @@
From e14be2031caccce4e8d420f6352d374b0b47d7b1 Mon Sep 17 00:00:00 2001
From: Alberto Ponces <ponces26@gmail.com>
Date: Sun, 31 Mar 2024 23:38:19 +0000
Subject: [PATCH 48/50] Revert "Remove deprecated IRadio <1.4 APIs and
references"
This reverts commit 4d53aa0caec7029bf6c9b5789c1708bc4bb71b76.
---
.../android/telephony/TelephonyManager.java | 23 +++++++++++++++++++
.../internal/telephony/ITelephony.aidl | 11 +++++++++
.../internal/telephony/RILConstants.java | 5 ++++
3 files changed, 39 insertions(+)
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index bd5255d4a21a..859326ee0ca4 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -11472,6 +11472,29 @@ public class TelephonyManager {
return false;
}
+ /**
+ * Returns the result and response from RIL for oem request
+ *
+ * @param oemReq the data is sent to ril.
+ * @param oemResp the respose data from RIL.
+ * @return negative value request was not handled or get error
+ * 0 request was handled succesfully, but no response data
+ * positive value success, data length of response
+ * @hide
+ * @deprecated OEM needs a vendor-extension hal and their apps should use that instead
+ */
+ @Deprecated
+ public int invokeOemRilRequestRaw(byte[] oemReq, byte[] oemResp) {
+ try {
+ ITelephony telephony = getITelephony();
+ if (telephony != null)
+ return telephony.invokeOemRilRequestRaw(oemReq, oemResp);
+ } catch (RemoteException ex) {
+ } catch (NullPointerException ex) {
+ }
+ return -1;
+ }
+
/**
* @deprecated Use {@link android.telephony.ims.ImsMmTelManager#setVtSettingEnabled(boolean)}
* instead.
diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl
index 397fb2d6db96..192ead0fb163 100644
--- a/telephony/java/com/android/internal/telephony/ITelephony.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl
@@ -1194,6 +1194,17 @@ interface ITelephony {
in List<String> gsmNonRoamingList, in List<String> cdmaRoamingList,
in List<String> cdmaNonRoamingList);
+ /**
+ * Returns the result and response from RIL for oem request
+ *
+ * @param oemReq the data is sent to ril.
+ * @param oemResp the respose data from RIL.
+ * @return negative value request was not handled or get error
+ * 0 request was handled succesfully, but no response data
+ * positive value success, data length of response
+ */
+ int invokeOemRilRequestRaw(in byte[] oemReq, out byte[] oemResp);
+
/**
* Check if any mobile Radios need to be shutdown.
*
diff --git a/telephony/java/com/android/internal/telephony/RILConstants.java b/telephony/java/com/android/internal/telephony/RILConstants.java
index 50590177f791..69ea593a3a00 100644
--- a/telephony/java/com/android/internal/telephony/RILConstants.java
+++ b/telephony/java/com/android/internal/telephony/RILConstants.java
@@ -298,6 +298,11 @@ public interface RILConstants {
int SETUP_DATA_AUTH_CHAP = 2;
int SETUP_DATA_AUTH_PAP_CHAP = 3;
+ /* LCE service related constants. */
+ int LCE_NOT_AVAILABLE = -1;
+ int LCE_STOPPED = 0;
+ int LCE_ACTIVE = 1;
+
/**
* No restriction at all including voice/SMS/USSD/SS/AV64
* and packet data.
--
2.34.1

View File

@@ -0,0 +1,42 @@
From 08d6872962f964e285c631af4d28db9262eee00f Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 17 Apr 2024 04:49:18 -0400
Subject: [PATCH 49/50] Don't crash system_server if we fail to parse dynamic
udfps position
---
.../fingerprint/aidl/FingerprintProvider.java | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java
index 2bb568bedabc..73b502dca8c1 100644
--- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java
+++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java
@@ -216,13 +216,17 @@ android.util.Log.e("PHH-Enroll", "Poping AIDL fp provider");
android.util.Log.e("PHH-Enroll", " - " + loc.sensorLocationX + ", " + loc.sensorLocationY + ", " +loc.sensorRadius + ", disp =" + loc.display + ", shape " + loc.sensorShape);
}
if (locations.length == 1 && locations[0].sensorLocationX == 0) {
- int[] otherValues = com.android.server.biometrics.AuthService.dynamicUdfpsProps(context);
- if (otherValues.length > 0) {
- SensorLocation loc = new SensorLocation();
- loc.sensorLocationX = otherValues[0];
- loc.sensorLocationY = otherValues[1];
- loc.sensorRadius = otherValues[2];
- locations[0] = loc;
+ try {
+ int[] otherValues = com.android.server.biometrics.AuthService.dynamicUdfpsProps(context);
+ if (otherValues.length > 0) {
+ SensorLocation loc = new SensorLocation();
+ loc.sensorLocationX = otherValues[0];
+ loc.sensorLocationY = otherValues[1];
+ loc.sensorRadius = otherValues[2];
+ locations[0] = loc;
+ }
+ } catch(Throwable t) {
+ android.util.Log.e("PHH-Enroll", "FingerprintProvider dynamicUdfpsProps", t);
}
}
--
2.34.1

View File

@@ -0,0 +1,34 @@
From 6923bfc96d529de7620b0652adeadac4f4612710 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 8 May 2024 11:55:07 -0400
Subject: [PATCH 50/50] Add a prop to disable animation in for sysui media
carousel
---
.../systemui/media/controls/ui/MediaCarouselController.kt | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaCarouselController.kt b/packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaCarouselController.kt
index 992eeca77e54..f8fed58d2553 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaCarouselController.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaCarouselController.kt
@@ -22,6 +22,7 @@ import android.content.Intent
import android.content.res.ColorStateList
import android.content.res.Configuration
import android.database.ContentObserver
+import android.os.SystemProperties;
import android.provider.Settings
import android.provider.Settings.ACTION_MEDIA_CONTROLS_SETTINGS
import android.util.Log
@@ -1047,7 +1048,7 @@ constructor(
desiredHostState.showsOnlyActiveMedia
for (mediaPlayer in MediaPlayerData.players()) {
- if (animate) {
+ if (animate && !SystemProperties.getBoolean("persist.sys.phh.no_media_carousel_animation", false)) {
mediaPlayer.mediaViewController.animatePendingStateChange(
duration = duration,
delay = startDelay
--
2.34.1

View File

@@ -1,52 +0,0 @@
From 8d695b3a2448e132263dd993265e95361bbb8540 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 26 Oct 2022 18:02:18 -0400
Subject: [PATCH] Restore back the behavior of isValid(): It is legal to have
non-working BpfMap. Dont abort a whole process (system_server...) just
because we cant access bpf map. Also add isOk to include the additional
checks for newer kernel versions
Change-Id: Ie7815c186400614f0c6b483c04aa8971af348380
---
common/native/bpf_headers/include/bpf/BpfMap.h | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/common/native/bpf_headers/include/bpf/BpfMap.h b/common/native/bpf_headers/include/bpf/BpfMap.h
index 51e6d162..6d74ff3a 100644
--- a/common/native/bpf_headers/include/bpf/BpfMap.h
+++ b/common/native/bpf_headers/include/bpf/BpfMap.h
@@ -54,21 +54,25 @@ class BpfMap {
private:
void abortOnKeyOrValueSizeMismatch() {
- if (!mMapFd.ok()) abort();
- if (isAtLeastKernelVersion(4, 14, 0)) {
- if (bpfGetFdKeySize(mMapFd) != sizeof(Key)) abort();
- if (bpfGetFdValueSize(mMapFd) != sizeof(Value)) abort();
- }
+ if (!isOk()) abort();
}
protected:
// flag must be within BPF_OBJ_FLAG_MASK, ie. 0, BPF_F_RDONLY, BPF_F_WRONLY
BpfMap<Key, Value>(const char* pathname, uint32_t flags) {
mMapFd.reset(mapRetrieve(pathname, flags));
- abortOnKeyOrValueSizeMismatch();
}
public:
+ bool isOk() {
+ if (!mMapFd.ok()) return false;
+ if (isAtLeastKernelVersion(4, 14, 0)) {
+ if (bpfGetFdKeySize(mMapFd) != sizeof(Key)) return false;
+ if (bpfGetFdValueSize(mMapFd) != sizeof(Value)) return false;
+ }
+ return true;
+ }
+
explicit BpfMap<Key, Value>(const char* pathname) : BpfMap<Key, Value>(pathname, 0) {}
#ifdef BPF_MAP_MAKE_VISIBLE_FOR_TESTING
--
2.25.1

View File

@@ -1,7 +1,7 @@
From ab486c5b5de2e5041085d53e7a2326f1feaa0d66 Mon Sep 17 00:00:00 2001
From 973eeeb60ccce408e525055c88e079984dcd1356 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 14 Aug 2019 23:37:10 +0200
Subject: [PATCH 01/11] On Samsung, we need to send a hack-message to HAL to
Subject: [PATCH 01/12] On Samsung, we need to send a hack-message to HAL to
get all Sensors
Change-Id: Id6a1fa48340de61c418493668e9abd22c2599376
@@ -10,18 +10,18 @@ Change-Id: Id6a1fa48340de61c418493668e9abd22c2599376
1 file changed, 3 insertions(+)
diff --git a/services/sensorservice/SensorDevice.cpp b/services/sensorservice/SensorDevice.cpp
index 10ca990f87..e603f6d404 100644
index dd83fdefc3..1996b306a4 100644
--- a/services/sensorservice/SensorDevice.cpp
+++ b/services/sensorservice/SensorDevice.cpp
@@ -38,6 +38,7 @@
#include <cstddef>
#include <thread>
@@ -40,6 +40,7 @@
#include <mutex>
#include <condition_variable>
+#include <android-base/properties.h>
using namespace android::hardware::sensors;
using android::util::ProtoOutputStream;
@@ -76,6 +77,8 @@ SensorDevice::SensorDevice() {
@@ -78,6 +79,8 @@ SensorDevice::SensorDevice() : mInHalBypassMode(false) {
}
void SensorDevice::initializeSensorList() {

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