Changes for March 2022, syncing up to v410

This commit is contained in:
Andy CrossGate Yan
2022-03-16 07:26:33 +00:00
parent f16874a663
commit f8937ff81f
127 changed files with 2470 additions and 1973 deletions

View File

@@ -1,7 +1,7 @@
From 9c440d31d462e558ba6961e8cd42c91411299826 Mon Sep 17 00:00:00 2001
From 4557ae177f6ba40eb5c359a332d8325a333ddb7e 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] Disable vndklite handling
Subject: [PATCH 1/2] Disable vndklite handling
Change-Id: Ic4474cf80fc4b45a9a2760dd51e2ca29c4d961e2
---
@@ -9,7 +9,7 @@ Change-Id: Ic4474cf80fc4b45a9a2760dd51e2ca29c4d961e2
1 file changed, 5 deletions(-)
diff --git a/linker/linker.cpp b/linker/linker.cpp
index 3488f5cc7..c32ea8484 100644
index 4a4969192..c375a0551 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -93,7 +93,6 @@ static uint64_t g_module_unload_counter = 0;
@@ -20,7 +20,7 @@ index 3488f5cc7..c32ea8484 100644
static const char* const kLdGeneratedConfigFilePath = "/linkerconfig/ld.config.txt";
@@ -3368,10 +3367,6 @@ static std::string get_ld_config_file_apex_path(const char* executable_path) {
@@ -3439,10 +3438,6 @@ static std::string get_ld_config_file_apex_path(const char* executable_path) {
}
static std::string get_ld_config_file_vndk_path() {
@@ -32,5 +32,5 @@ index 3488f5cc7..c32ea8484 100644
size_t insert_pos = ld_config_file_vndk.find_last_of('.');
if (insert_pos == std::string::npos) {
--
2.29.2
2.25.1

View File

@@ -0,0 +1,78 @@
From 2dc2ed499505821a535319138e70e64af56ddc87 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
basis
This reads debug.phh.props.<process name>. If its value is "vendor",
then ro.product.device/ro.product.manufacturer is read from vendor
---
libc/system_properties/system_properties.cpp | 38 ++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/libc/system_properties/system_properties.cpp b/libc/system_properties/system_properties.cpp
index 1cb15c3df..d6e7e3e68 100644
--- a/libc/system_properties/system_properties.cpp
+++ b/libc/system_properties/system_properties.cpp
@@ -35,6 +35,7 @@
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
+#include <fcntl.h>
#include <new>
@@ -50,6 +51,32 @@
#define SERIAL_DIRTY(serial) ((serial)&1)
#define SERIAL_VALUE_LEN(serial) ((serial) >> 24)
+static char comm[128];
+static bool self_ok = false;
+static char comm_override[PROP_VALUE_MAX];
+
+static void read_self() {
+ //NB: Not atomic, but should be good enough, there is no possible corruption from concurrency
+ if(self_ok) return;
+ self_ok = true;
+
+ int fd = open("/proc/self/comm", O_RDONLY);
+ if(fd<0) return;
+ read(fd, comm, sizeof(comm)-1);
+ for(unsigned i=0; i<sizeof(comm); i++)
+ if(comm[i] == '\n')
+ comm[i] = 0;
+ close(fd);
+
+ //That's calling ourselves but that's fine because we already have self_ok = true
+ char propName[PROP_NAME_MAX];
+ memset(propName, 0, PROP_NAME_MAX);
+ strncpy(propName, "debug.phh.props.", PROP_NAME_MAX - 1);
+ strncat(propName, comm, PROP_NAME_MAX - 1);
+
+ __system_property_get(propName, comm_override);
+}
+
static bool is_dir(const char* pathname) {
struct stat info;
if (stat(pathname, &info) == -1) {
@@ -216,6 +243,17 @@ void SystemProperties::ReadCallback(const prop_info* pi,
}
int SystemProperties::Get(const char* name, char* value) {
+ read_self();
+ if(strcmp(comm_override, "vendor") == 0) {
+ if(strcmp(name, "ro.product.device") == 0) {
+ int r = Get("ro.product.vendor.device", value);
+ if(r>0) return r;
+ }
+ if(strcmp(name, "ro.product.manufacturer") == 0) {
+ int r = Get("ro.product.vendor.manufacturer", value);
+ if(r>0) return r;
+ }
+ }
const prop_info* pi = Find(name);
if (pi != nullptr) {
--
2.25.1

View File

@@ -1,7 +1,7 @@
From e42a02d1448c13fde0e1d7a326572d04f27fef14 Mon Sep 17 00:00:00 2001
From 4a78110a71028d606e6a353aed365f2b7f016510 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/28] Fallback to stupid autobrightness if brightness values
Subject: [PATCH 01/30] Fallback to stupid autobrightness if brightness values
are broken
This is needed because of:

View File

@@ -1,7 +1,7 @@
From 950264e8b5aa352a8d5663878a7ad6e5ac7d7865 Mon Sep 17 00:00:00 2001
From 8f6347bba760a63c0319b6b5a441aff8414e6b58 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 02/28] Relax requirement for visible flag to sdcards
Subject: [PATCH 02/30] Relax requirement for visible flag to sdcards
The vast majority of sdcard readers are stable enough to be declared by
the API. (I see no counter-example)

View File

@@ -1,7 +1,7 @@
From 439dea5fc58d5d67545f882c885586d6aa04e2dc Mon Sep 17 00:00:00 2001
From ccbe7bd316eeea390d09681dbde75725a7845ed8 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 03/28] Don't crash if there is IR HAL is not declared
Subject: [PATCH 03/30] Don't crash if there is IR HAL is not declared
Change-Id: I3afded27441bbee8244d5fda544b3e6d1238dc1b
---

View File

@@ -1,17 +1,17 @@
From 3d3ef7ef4a0406ed5b3761ee934d172bfdbe02e7 Mon Sep 17 00:00:00 2001
From 0a01e9129a67b4e155ea43b31b0bd067d18687cb 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 04/28] Show APN Settings for CDMA carriers
Subject: [PATCH 04/30] Show APN Settings for CDMA carriers
---
telephony/java/android/telephony/CarrierConfigManager.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java
index 45fd7a3467c4..92d6d9868da6 100644
index b8a14b8ea72e..51cbd880af77 100644
--- a/telephony/java/android/telephony/CarrierConfigManager.java
+++ b/telephony/java/android/telephony/CarrierConfigManager.java
@@ -5283,7 +5283,7 @@ public class CarrierConfigManager {
@@ -5342,7 +5342,7 @@ public class CarrierConfigManager {
sDefaults.putBoolean(KEY_MDN_IS_ADDITIONAL_VOICEMAIL_NUMBER_BOOL, false);
sDefaults.putBoolean(KEY_OPERATOR_SELECTION_EXPAND_BOOL, true);
sDefaults.putBoolean(KEY_PREFER_2G_BOOL, true);

View File

@@ -1,7 +1,7 @@
From 114aa0bef17c9a6814d4424e8ed3b25512102c3d Mon Sep 17 00:00:00 2001
From 250548eb42958e47e63fd73ba68c1bc9a95be592 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 05/28] Re-order services so that it works even without qtaguid
Subject: [PATCH 05/30] Re-order services so that it works even without qtaguid
Change-Id: I0c0f527b3ae151d45c68f7ac6c205da3f34e74df
---

View File

@@ -1,7 +1,7 @@
From fec18df4c1900f54a9581569a27f44d4aa6689ce Mon Sep 17 00:00:00 2001
From dd2a85c2aa47d13a454124e97bfff3cd4172b755 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 06/28] Support samsung Pie and Q light hal
Subject: [PATCH 06/30] Support samsung Pie and Q light hal
Change-Id: I01f94acd7d0672733e48854d80368f9ac6f861c6
---

View File

@@ -1,7 +1,7 @@
From 4d0b2ab189abeadc3802878d679ef1e6800c76da Mon Sep 17 00:00:00 2001
From 4d0ab8e90662d7cca5ec7db19e0363b35cf85660 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 07/28] Add support for samsung touch, physical and hover
Subject: [PATCH 07/30] Add support for samsung touch, physical and hover
proximity sensor as fallback to real proximity sensor
Change-Id: I7a0f8b4665c802140d19197d850b77b2a7ac1865
@@ -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 f543a562687c..82b1260e79dc 100644
index 78d79ad2f12d..1bcd2317235b 100644
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -1726,6 +1726,27 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
@@ -1734,6 +1734,27 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
? Sensor.TYPE_PROXIMITY : SensorUtils.NO_FALLBACK;
mProximitySensor = SensorUtils.findSensor(mSensorManager, proxSensor.type, proxSensor.name,
fallbackType);
@@ -41,7 +41,7 @@ index f543a562687c..82b1260e79dc 100644
if (mProximitySensor != null) {
mProximityThreshold = Math.min(mProximitySensor.getMaximumRange(),
TYPICAL_PROXIMITY_THRESHOLD);
@@ -2491,6 +2512,20 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
@@ -2499,6 +2520,20 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
public void onSensorChanged(SensorEvent event) {
if (mProximitySensorEnabled) {
final long time = SystemClock.uptimeMillis();

View File

@@ -1,7 +1,7 @@
From bb2490310ccca71a4a0b69858d0a274eefebd3d7 Mon Sep 17 00:00:00 2001
From 407aacdb90c06aecadbc7351d92285a77806ae0f 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 08/28] Always allow overriding the number of work profiles
Subject: [PATCH 08/30] Always allow overriding the number of work profiles
Change-Id: I6eb09aa71663c6fbe7563e3038bffcabdba0ff6a
---

View File

@@ -1,7 +1,7 @@
From 86ba18dfced8787826c34bb28d7ed83b35b8d3f4 Mon Sep 17 00:00:00 2001
From 034e14c5c940054d1f942b25cc1339b8f6b03545 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 09/28] HOME deserves to wake-up devices just as well as back
Subject: [PATCH 09/30] HOME deserves to wake-up devices just as well as back
and menu
Change-Id: Ia562bafd8c620d00c17e8eb338e4701c6c4a3c3a

View File

@@ -1,7 +1,7 @@
From 1b7f27efb7af8a4c9f49a1e504f5b4d2530e1c85 Mon Sep 17 00:00:00 2001
From e19859819c2b065315c5fb07ea7ffc1bb605d48b 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 10/28] Some devices have proximity sensor reporting NaN as max
Subject: [PATCH 10/30] Some devices have proximity sensor reporting NaN as max
range for some reason. Make them behave standard way by setting 5 cm
Change-Id: I3c39e3e914a05903c140235702e0480d2d58a612
@@ -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 82b1260e79dc..a9de9e1ff19a 100644
index 1bcd2317235b..0d5ea94da738 100644
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -1750,6 +1750,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
@@ -1758,6 +1758,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
if (mProximitySensor != null) {
mProximityThreshold = Math.min(mProximitySensor.getMaximumRange(),
TYPICAL_PROXIMITY_THRESHOLD);

View File

@@ -1,7 +1,7 @@
From 5f849729380e68e0317c89da35c23b98df916748 Mon Sep 17 00:00:00 2001
From cfe776121dbdcc0b8678588b2ab4172552e747b5 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 11/28] Fix brightness range not being complete on Samsung
Subject: [PATCH 11/30] Fix brightness range not being complete on Samsung
devices
On some devices, minimum brightness is 0, which totally messes with
@@ -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 5ac1f31bf817..06cd0ac979e9 100644
index 53b2b8ba5bda..07d858986539 100644
--- a/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
@@ -1040,9 +1040,11 @@ public final class PowerManagerService extends SystemService
@@ -1043,9 +1043,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,7 +1,7 @@
From af86daa9d8bd70690e9b50c2e1e23e5d52bc662d Mon Sep 17 00:00:00 2001
From 1ba5bf7dc38366e06e7b05b4e7411269303b000f 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 12/28] Re-implement fnmatch-like behaviour for RRO java-side
Subject: [PATCH 12/30] Re-implement fnmatch-like behaviour for RRO java-side
Change-Id: Id38292a9a1453aa87b8401c1fdb390fa4e63c7d1
---
@@ -9,10 +9,10 @@ Change-Id: Id38292a9a1453aa87b8401c1fdb390fa4e63c7d1
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index 4ff26242dab2..9379a634afa8 100644
index 86fef5d9df19..1c4214020d03 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -2489,8 +2489,17 @@ public class PackageParser {
@@ -2496,8 +2496,17 @@ public class PackageParser {
for (int i = 0; i < propNames.length; i++) {
// Check property value: make sure it is both set and equal to expected value
final String currValue = SystemProperties.get(propNames[i]);

View File

@@ -1,18 +1,18 @@
From 8a1571889ec702ae794f006af91d6d662042cc0a Mon Sep 17 00:00:00 2001
From 8dc6b1eea2b69d8fd2ad9c39bfa427cfb346c2a2 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 6 Dec 2020 12:20:08 +0100
Subject: [PATCH 13/28] Make rounded corners padding overridable with
Subject: [PATCH 13/30] Make rounded corners padding overridable with
persist.sys.phh.rounded_corners_padding
Change-Id: I481c1c8849b2f22a7cdfb2896a6d3c2e7e3b44d9
---
.../src/com/android/systemui/qs/QuickStatusBarHeader.java | 7 +++++--
.../systemui/statusbar/phone/KeyguardStatusBarView.java | 7 +++++--
.../statusbar/phone/StatusBarContentInsetsProvider.kt | 5 ++++-
3 files changed, 14 insertions(+), 5 deletions(-)
.../statusbar/phone/StatusBarContentInsetsProvider.kt | 6 ++++--
3 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
index d2af6f88915f..3478ec463573 100644
index 8e0b413209ec..60a5df0665e7 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
@@ -22,6 +22,7 @@ import android.content.res.Configuration;
@@ -23,7 +23,7 @@ index d2af6f88915f..3478ec463573 100644
import android.util.AttributeSet;
import android.util.Pair;
import android.view.DisplayCutout;
@@ -238,8 +239,10 @@ public class QuickStatusBarHeader extends FrameLayout implements TunerService.Tu
@@ -253,8 +254,10 @@ public class QuickStatusBarHeader extends FrameLayout implements TunerService.Tu
mConfigShowBatteryEstimate = resources.getBoolean(R.bool.config_showBatteryEstimateQSBH);
@@ -34,13 +34,13 @@ index d2af6f88915f..3478ec463573 100644
+ mRoundedCornerPadding = resources.getDimensionPixelSize(
+ R.dimen.rounded_corner_content_padding);
int qsOffsetHeight = resources.getDimensionPixelSize(
com.android.internal.R.dimen.quick_qs_offset_height);
int qsOffsetHeight = SystemBarUtils.getQuickQsOffsetHeight(mContext);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
index c1191aa71ef4..a32e7c4765ef 100644
index eb41536e21d0..b11843cd5d1f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
@@ -30,6 +30,7 @@ import android.graphics.Color;
@@ -28,6 +28,7 @@ import android.graphics.Color;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.UserManager;
@@ -48,7 +48,7 @@ index c1191aa71ef4..a32e7c4765ef 100644
import android.util.AttributeSet;
import android.util.Pair;
import android.util.TypedValue;
@@ -193,8 +194,10 @@ public class KeyguardStatusBarView extends RelativeLayout implements
@@ -177,8 +178,10 @@ public class KeyguardStatusBarView extends RelativeLayout {
R.dimen.ongoing_appops_dot_min_padding);
mCutoutSideNudge = getResources().getDimensionPixelSize(
R.dimen.display_cutout_margin_consumption);
@@ -60,30 +60,31 @@ index c1191aa71ef4..a32e7c4765ef 100644
+ R.dimen.rounded_corner_content_padding);
}
// Set hidden status bar items
private void updateVisibilities() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarContentInsetsProvider.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarContentInsetsProvider.kt
index fe1f63a34acd..3ee8c688376d 100644
index b7988bcc6f45..72b8e971306c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarContentInsetsProvider.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarContentInsetsProvider.kt
@@ -25,6 +25,7 @@ import android.view.DisplayCutout
import android.view.View.LAYOUT_DIRECTION_RTL
import android.view.WindowManager
import android.view.WindowMetrics
@@ -23,7 +23,7 @@ import android.graphics.Rect
import android.util.LruCache
import android.util.Pair
import android.view.DisplayCutout
-
+import android.os.SystemProperties
import androidx.annotation.VisibleForTesting
import com.android.systemui.Dumpable
import com.android.systemui.R
@@ -157,7 +158,9 @@ class StatusBarContentInsetsProvider @Inject constructor(
val currentRotation = RotationUtils.getExactRotation(context)
val isRtl = rotatedResources.configuration.layoutDirection == LAYOUT_DIRECTION_RTL
import com.android.internal.policy.SystemBarUtils
@@ -227,7 +227,9 @@ class StatusBarContentInsetsProvider @Inject constructor(
val dc = context.display.cutout
val currentRotation = getExactRotation(context)
- val roundedCornerPadding = rotatedResources
+ var roundedCornerPadding = SystemProperties.getInt("persist.sys.phh.rounded_corners_padding", -1);
+ if(roundedCornerPadding == -1)
+ roundedCornerPadding = rotatedResources
.getDimensionPixelSize(R.dimen.rounded_corner_content_padding)
val minDotWidth = rotatedResources
.getDimensionPixelSize(R.dimen.ongoing_appops_dot_min_padding)
val minDotPadding = if (isPrivacyDotEnabled)
rotatedResources.getDimensionPixelSize(R.dimen.ongoing_appops_dot_min_padding)
--
2.25.1

View File

@@ -1,7 +1,7 @@
From 4a0779e7ee51291bc635cc2aa414ef6252503902 Mon Sep 17 00:00:00 2001
From ea6bcd921886e585836b991323b7eadb4356835a 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 14/28] Remove useless notification about "console" service
Subject: [PATCH 14/30] Remove useless notification about "console" service
being running
---
@@ -9,10 +9,10 @@ Subject: [PATCH 14/28] 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 c78d5d538f8d..8739a5913091 100644
index 330d2ddc0a94..b2c86b89ccb0 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -4775,7 +4775,7 @@ public class ActivityManagerService extends IActivityManager.Stub
@@ -4801,7 +4801,7 @@ public class ActivityManagerService extends IActivityManager.Stub
}
private void showConsoleNotificationIfActive() {

View File

@@ -1,7 +1,7 @@
From f72b62ec62e70b907c02b7af6382e36f45777509 Mon Sep 17 00:00:00 2001
From 6c4399d814b9c3112c90a1fe2d585562358260d2 Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net>
Date: Wed, 16 Dec 2020 21:24:12 +0800
Subject: [PATCH 15/28] Revert "Remove unused SystemProperties.set"
Subject: [PATCH 15/30] Revert "Remove unused SystemProperties.set"
This reverts commit debb4616ef67f9ed5054eca51ec58592358ff55f.
@@ -11,7 +11,7 @@ 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 989663406a6b..9d65e6385db3 100644
index 8bc4d381e2dd..616ab6b22081 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -7406,6 +7406,75 @@ public class TelephonyManager {

View File

@@ -1,7 +1,7 @@
From 6a140ec75ff6b13b6ec397119ee46774e38f3333 Mon Sep 17 00:00:00 2001
From f600afdb74b656312e41cd044b754a598cedd088 Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net>
Date: Wed, 16 Dec 2020 13:46:15 +0800
Subject: [PATCH 16/28] TelephonyManager: bring back getNetworkClass()
Subject: [PATCH 16/30] TelephonyManager: bring back getNetworkClass()
This partially reverts commit c058cac051ab083dc7fb7ea6aa85699110b2e9bf.
@@ -11,7 +11,7 @@ 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 9d65e6385db3..b0c640547e0e 100644
index 616ab6b22081..967ad10f697d 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -3042,6 +3042,64 @@ public class TelephonyManager {

View File

@@ -1,7 +1,7 @@
From 8f25adf7351f187e5c1a6c0f3607f14b6e272bd7 Mon Sep 17 00:00:00 2001
From f23fa294ab33ad231e6d4ee90059016332914b89 Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net>
Date: Wed, 16 Dec 2020 21:26:45 +0800
Subject: [PATCH 17/28] TelephonyManager: add API annotations for
Subject: [PATCH 17/30] TelephonyManager: add API annotations for
setTelephonyProperty
* This method was added back by reverting commit
@@ -14,7 +14,7 @@ Subject: [PATCH 17/28] 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 b0c640547e0e..c11232326370 100644
index 967ad10f697d..e5b80e4cee30 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -7470,7 +7470,7 @@ public class TelephonyManager {

View File

@@ -1,7 +1,7 @@
From 2d0a8597409cd7a31d7718c1c9d6ebd2cdaa1c0d Mon Sep 17 00:00:00 2001
From 27c3433b0ff7c187b283de27f1ab059772e4957c Mon Sep 17 00:00:00 2001
From: Alberto Ponces <ponces26@gmail.com>
Date: Tue, 2 Feb 2021 10:20:51 +0000
Subject: [PATCH 18/28] Fix Wakelock issue
Subject: [PATCH 18/30] Fix Wakelock issue
Prevent SystemUI crash due to "WakeLock under-locked Doze" (issue #12) by only releasing a wakelock that was not already released
---

View File

@@ -1,7 +1,7 @@
From 3ae48d5109ac89634f9a7f96a8555d96025050c8 Mon Sep 17 00:00:00 2001
From c7346e5fbc34f2f6c1e175cffe4cfb4b2bb25efa 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/28] Automatically detect pick up sensor, so that an overlay
Subject: [PATCH 19/30] Automatically detect pick up sensor, so that an overlay
is required for the sole purpose of enabling pulse doze on pick up sensor
---
@@ -9,7 +9,7 @@ Subject: [PATCH 20/28] Automatically detect pick up sensor, so that an overlay
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/core/java/android/hardware/display/AmbientDisplayConfiguration.java b/core/java/android/hardware/display/AmbientDisplayConfiguration.java
index a1f7aa12264b..5f6201bbb18c 100644
index 0b1ed65ef937..61a7522f38f4 100644
--- a/core/java/android/hardware/display/AmbientDisplayConfiguration.java
+++ b/core/java/android/hardware/display/AmbientDisplayConfiguration.java
@@ -23,6 +23,9 @@ import android.os.SystemProperties;
@@ -20,9 +20,9 @@ index a1f7aa12264b..5f6201bbb18c 100644
+import android.hardware.Sensor;
+
import com.android.internal.R;
import com.android.internal.util.ArrayUtils;
/**
@@ -76,7 +79,20 @@ public class AmbientDisplayConfiguration {
@@ -77,7 +80,20 @@ public class AmbientDisplayConfiguration {
/** {@hide} */
public boolean dozePickupSensorAvailable() {

View File

@@ -1,30 +0,0 @@
From 243d10a369e231ca4f239d75c518a72bc1a55933 Mon Sep 17 00:00:00 2001
From: Arne Coucheron <arco68@gmail.com>
Date: Thu, 5 Nov 2020 05:38:44 +0100
Subject: [PATCH 19/28] SystemUI: Use AVCProfileMain for screen recorder
Some devices don't support the High profile very well.
Use Main profile, which is more compatible, so they
can use screen recorder too.
Change-Id: Iac23480e080edf4300e6f411c3394c0b41030daa
---
.../com/android/systemui/screenrecord/ScreenMediaRecorder.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenMediaRecorder.java b/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenMediaRecorder.java
index 2133cf63d1c3..6100b6030544 100644
--- a/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenMediaRecorder.java
+++ b/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenMediaRecorder.java
@@ -135,7 +135,7 @@ public class ScreenMediaRecorder {
* VIDEO_FRAME_RATE_TO_RESOLUTION_RATIO;
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mMediaRecorder.setVideoEncodingProfileLevel(
- MediaCodecInfo.CodecProfileLevel.AVCProfileHigh,
+ MediaCodecInfo.CodecProfileLevel.AVCProfileMain,
MediaCodecInfo.CodecProfileLevel.AVCLevel3);
mMediaRecorder.setVideoSize(width, height);
mMediaRecorder.setVideoFrameRate(refreshRate);
--
2.25.1

View File

@@ -1,7 +1,7 @@
From 5b9aa5db4dc782ed9a6506cda78277d87f81ef31 Mon Sep 17 00:00:00 2001
From 3cfd962cec75ad34939e5821c96769bdc7006066 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/28] Catch broken mainBuiltInDisplayCutoutRectApproximation
Subject: [PATCH 20/30] Catch broken mainBuiltInDisplayCutoutRectApproximation
Some devices (Redmi Note 9T) have:
mainBuiltInDisplayCutoutRectApproximation = @android:mainBuiltInDisplayCutout
@@ -18,27 +18,27 @@ Change-Id: I03b6e78bac2cc38f3a623c8add801405ad6ba7ba
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/core/java/android/view/DisplayCutout.java b/core/java/android/view/DisplayCutout.java
index e1a4402d8964..25282b50cc45 100644
index c1a5636b7b34..2f3d71c963c8 100644
--- a/core/java/android/view/DisplayCutout.java
+++ b/core/java/android/view/DisplayCutout.java
@@ -881,10 +881,17 @@ public final class DisplayCutout {
@@ -987,10 +987,17 @@ public final class DisplayCutout {
*/
public static DisplayCutout fromResourcesRectApproximation(Resources res, int displayWidth,
int displayHeight) {
- return pathAndDisplayCutoutFromSpec(res.getString(R.string.config_mainBuiltInDisplayCutout),
- res.getString(R.string.config_mainBuiltInDisplayCutoutRectApproximation),
public static DisplayCutout fromResourcesRectApproximation(Resources res,
String displayUniqueId, int displayWidth, int displayHeight) {
- return pathAndDisplayCutoutFromSpec(getDisplayCutoutPath(res, displayUniqueId),
- getDisplayCutoutApproximationRect(res, displayUniqueId),
- displayWidth, displayHeight, DENSITY_DEVICE_STABLE / (float) DENSITY_DEFAULT,
- loadWaterfallInset(res)).second;
+ try {
+ return pathAndDisplayCutoutFromSpec(res.getString(R.string.config_mainBuiltInDisplayCutout),
+ res.getString(R.string.config_mainBuiltInDisplayCutoutRectApproximation),
- getWaterfallInsets(res, displayUniqueId)).second;
+ try {
+ return pathAndDisplayCutoutFromSpec(getDisplayCutoutPath(res, displayUniqueId),
+ getDisplayCutoutApproximationRect(res, displayUniqueId),
+ displayWidth, displayHeight, DENSITY_DEVICE_STABLE / (float) DENSITY_DEFAULT,
+ loadWaterfallInset(res)).second;
+ getWaterfallInsets(res, displayUniqueId)).second;
+ } catch(Throwable t) {
+ return pathAndDisplayCutoutFromSpec(res.getString(R.string.config_mainBuiltInDisplayCutout),
+ return pathAndDisplayCutoutFromSpec(getDisplayCutoutPath(res, displayUniqueId),
+ null,
+ displayWidth, displayHeight, DENSITY_DEVICE_STABLE / (float) DENSITY_DEFAULT,
+ loadWaterfallInset(res)).second;
+ getWaterfallInsets(res, displayUniqueId)).second;
+ }
}

View File

@@ -1,7 +1,7 @@
From 69316504d686f4365303f60a395634d5a9878725 Mon Sep 17 00:00:00 2001
From 4c27c2503be041833ba539ee4b1a501c4e67c46f 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/28] backlight: Fix backlight control on Galaxy S9(+)
Subject: [PATCH 21/30] backlight: Fix backlight control on Galaxy S9(+)
Change-Id: I1fbbb47939c377597ef8ad6b88b2acea5f4acaa6

View File

@@ -1,7 +1,7 @@
From 3c7d6c5106eea744e08250998ce3d60af7c9b306 Mon Sep 17 00:00:00 2001
From 308ffd0c8945640cf84ce5b9b50bf066b2dc4e83 Mon Sep 17 00:00:00 2001
From: Danny Lin <danny@kdrag0n.dev>
Date: Sat, 16 Oct 2021 05:27:57 -0700
Subject: [PATCH 23/28] Add support for app signature spoofing
Subject: [PATCH 22/30] Add support for app signature spoofing
This is needed by microG GmsCore to pretend to be the official Google
Play Services package, because client apps check the package signature
@@ -36,7 +36,7 @@ Change-Id: Ied7d6ce0b83a2d2345c3abba0429998d86494a88
4 files changed, 57 insertions(+), 3 deletions(-)
diff --git a/core/api/current.txt b/core/api/current.txt
index 1de47b548a5c..52c7ea2e1321 100644
index 1dd401d04e2b..ada2c59ff24c 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -84,6 +84,7 @@ package android {
@@ -47,7 +47,7 @@ index 1de47b548a5c..52c7ea2e1321 100644
field public static final String FOREGROUND_SERVICE = "android.permission.FOREGROUND_SERVICE";
field public static final String GET_ACCOUNTS = "android.permission.GET_ACCOUNTS";
field public static final String GET_ACCOUNTS_PRIVILEGED = "android.permission.GET_ACCOUNTS_PRIVILEGED";
@@ -199,6 +200,7 @@ package android {
@@ -200,6 +201,7 @@ package android {
field public static final String CALL_LOG = "android.permission-group.CALL_LOG";
field public static final String CAMERA = "android.permission-group.CAMERA";
field public static final String CONTACTS = "android.permission-group.CONTACTS";
@@ -56,7 +56,7 @@ index 1de47b548a5c..52c7ea2e1321 100644
field public static final String MICROPHONE = "android.permission-group.MICROPHONE";
field public static final String NEARBY_DEVICES = "android.permission-group.NEARBY_DEVICES";
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index a006db9d8373..8c88f2d3dcba 100644
index 030310406949..a7e5ee11cc10 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -3202,6 +3202,21 @@
@@ -82,7 +82,7 @@ index a006db9d8373..8c88f2d3dcba 100644
{@link android.content.pm.PackageManager#addPackageToPreferred}
for details. -->
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index b58638cc3ade..8cf98fa56bf6 100644
index 166d6abd1809..cba87ff17600 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -880,6 +880,18 @@
@@ -105,10 +105,10 @@ index b58638cc3ade..8cf98fa56bf6 100644
<string name="permlab_statusBar">disable or modify status bar</string>
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index f69922f64787..7d0ba265ff7e 100644
index e9fcac5fac57..a4a7da126051 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -3325,6 +3325,29 @@ public class PackageManagerService extends IPackageManager.Stub
@@ -3328,6 +3328,29 @@ public class PackageManagerService extends IPackageManager.Stub
return result;
}
@@ -138,7 +138,7 @@ index f69922f64787..7d0ba265ff7e 100644
public final PackageInfo generatePackageInfo(PackageSetting ps, int flags, int userId) {
if (!mUserManager.exists(userId)) return null;
if (ps == null) {
@@ -3353,12 +3376,14 @@ public class PackageManagerService extends IPackageManager.Stub
@@ -3356,12 +3379,14 @@ public class PackageManagerService extends IPackageManager.Stub
final int[] gids = (flags & PackageManager.GET_GIDS) == 0 ? EMPTY_INT_ARRAY
: mPermissionManager.getGidsForUid(UserHandle.getUid(userId, ps.appId));
// Compute granted permissions only if package has requested permissions

View File

@@ -1,7 +1,7 @@
From afdd9f16ebf1993e982389260129fed10c3820fa Mon Sep 17 00:00:00 2001
From eff8d618d194b5773dee38addc5329448ee3a9ff 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 24/28] Revert "Switch long-press power behavior in AOSP."
Subject: [PATCH 23/30] Revert "Switch long-press power behavior in AOSP."
This reverts commit 803c77a0a24624111944832098c6f65158051dc4.
---
@@ -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 380f2b362668..3ce1886fef6d 100644
index 7305ccc93e93..e2216d23e15e 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -956,7 +956,7 @@
@@ -978,7 +978,7 @@
5 - Go to assistant (Settings.Secure.ASSISTANT)
6 - Toggle torch on / off (if screen is off)
-->
@@ -21,7 +21,7 @@ index 380f2b362668..3ce1886fef6d 100644
<!-- The time in milliseconds after which a press on power button is considered "long". -->
<integer name="config_longPressOnPowerDurationMs">500</integer>
@@ -988,7 +988,7 @@
@@ -1010,7 +1010,7 @@
1 - Mute toggle
2 - Global actions menu
-->

View File

@@ -1,7 +1,7 @@
From af7498ac0f380fd576e8c821d4a091ab242f20ba Mon Sep 17 00:00:00 2001
From d4214d8e74194049786980aa55126ca22679e839 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Fri, 17 Dec 2021 17:16:14 -0500
Subject: [PATCH 25/28] Reduce the size of udfps enroll progress bar. Some
Subject: [PATCH 24/30] Reduce the size of udfps enroll progress bar. Some
devices have their udfps pretty low, and the progress bar would make the icon
at the wrong place
@@ -11,10 +11,10 @@ Change-Id: I1609ad9ca316293dcaaf07f7e681d11aadfcd29c
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index b2ccacd5fe42..ebf7b8407727 100644
index e520dfed45d0..1bee8eee1534 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -637,7 +637,7 @@
@@ -592,7 +592,7 @@
<!-- The radius of the enrollment progress bar, in dp -->
<integer name="config_udfpsEnrollProgressBar" translatable="false">

View File

@@ -1,7 +1,7 @@
From 3c5f40c68535cf981e0d891fa368910ccf9a301a Mon Sep 17 00:00:00 2001
From a3be161414fcefc79314adf4ac5675eba3a75908 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 19 Dec 2021 17:08:22 -0500
Subject: [PATCH 26/28] Add UDFPS support for various devices
Subject: [PATCH 25/30] Add UDFPS support for various devices
Successfully tested on Galaxy A51, Xiaomi Mi 9, and OnePlus Nord 2
@@ -13,11 +13,11 @@ Successfully tested on Galaxy A51, Xiaomi Mi 9, and OnePlus Nord 2
Change-Id: I9448f06a46c178652f5b216717d914b8db55c993
---
.../systemui/biometrics/UdfpsSurfaceView.java | 2 +-
.../systemui/biometrics/UdfpsView.java | 53 +++-
.../systemui/biometrics/UdfpsView.java | 54 +++-
services/core/Android.bp | 4 +
.../server/biometrics/AuthService.java | 262 +++++++++++++++++-
.../sensors/fingerprint/UdfpsHelper.java | 115 +++++++-
5 files changed, 418 insertions(+), 18 deletions(-)
5 files changed, 419 insertions(+), 18 deletions(-)
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsSurfaceView.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsSurfaceView.java
index 77fad35d32d4..51409b9c533a 100644
@@ -33,10 +33,10 @@ index 77fad35d32d4..51409b9c533a 100644
}
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.java
index 8a213ec502e4..335edf4819de 100644
index 30e5aed2f8d8..7b8a5995f26c 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.java
@@ -41,6 +41,12 @@ import com.android.systemui.R;
@@ -42,6 +42,12 @@ import com.android.systemui.R;
import com.android.systemui.biometrics.UdfpsHbmTypes.HbmType;
import com.android.systemui.doze.DozeReceiver;
@@ -49,7 +49,7 @@ index 8a213ec502e4..335edf4819de 100644
/**
* A view containing 1) A SurfaceView for HBM, and 2) A normal drawable view for all other
* animations.
@@ -50,7 +56,7 @@ public class UdfpsView extends FrameLayout implements DozeReceiver, UdfpsIllumin
@@ -51,7 +57,7 @@ public class UdfpsView extends FrameLayout implements DozeReceiver, UdfpsIllumin
private static final String SETTING_HBM_TYPE =
"com.android.systemui.biometrics.UdfpsSurfaceView.hbmType";
@@ -58,7 +58,7 @@ index 8a213ec502e4..335edf4819de 100644
private static final int DEBUG_TEXT_SIZE_PX = 32;
@@ -70,6 +76,49 @@ public class UdfpsView extends FrameLayout implements DozeReceiver, UdfpsIllumin
@@ -71,6 +77,49 @@ public class UdfpsView extends FrameLayout implements DozeReceiver, UdfpsIllumin
@Nullable private String mDebugMessage;
private boolean mIlluminationRequested;
@@ -108,17 +108,18 @@ index 8a213ec502e4..335edf4819de 100644
public UdfpsView(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -252,6 +301,8 @@ public class UdfpsView extends FrameLayout implements DozeReceiver, UdfpsIllumin
Log.w(TAG, "doIlluminate | onIlluminatedRunnable is null");
@@ -255,6 +304,9 @@ public class UdfpsView extends FrameLayout implements DozeReceiver, UdfpsIllumin
}
});
+ } else if (mGhbmView != null) {
+ mGhbmView.drawIlluminationDot(mSensorRect);
}
+ else if (mGhbmView != null) {
+ mGhbmView.drawIlluminationDot(mSensorRect);
+ }
}
@Override
diff --git a/services/core/Android.bp b/services/core/Android.bp
index 89e4b02e7944..9270e81cb4b5 100644
index e432cf0167cc..b63402c290d5 100644
--- a/services/core/Android.bp
+++ b/services/core/Android.bp
@@ -157,6 +157,10 @@ java_library_static {
@@ -133,10 +134,10 @@ index 89e4b02e7944..9270e81cb4b5 100644
"icu4j_calendar_astronomer",
"netd-client",
diff --git a/services/core/java/com/android/server/biometrics/AuthService.java b/services/core/java/com/android/server/biometrics/AuthService.java
index b42f8980d1c0..41a04b8b5056 100644
index 16a4e106a2e2..341b08262ed4 100644
--- a/services/core/java/com/android/server/biometrics/AuthService.java
+++ b/services/core/java/com/android/server/biometrics/AuthService.java
@@ -72,6 +72,21 @@ import com.android.server.SystemService;
@@ -75,6 +75,21 @@ import com.android.server.SystemService;
import java.util.ArrayList;
import java.util.List;
@@ -158,7 +159,7 @@ index b42f8980d1c0..41a04b8b5056 100644
/**
* System service that provides an interface for authenticating with biometrics and
* PIN/pattern/password to BiometricPrompt and lock screen.
@@ -88,6 +103,9 @@ public class AuthService extends SystemService {
@@ -91,6 +106,9 @@ public class AuthService extends SystemService {
@VisibleForTesting
final IAuthService.Stub mImpl;
@@ -168,7 +169,7 @@ index b42f8980d1c0..41a04b8b5056 100644
/**
* Class for injecting dependencies into AuthService.
* TODO(b/141025588): Replace with a dependency injection framework (e.g. Guice, Dagger).
@@ -636,6 +654,68 @@ public class AuthService extends SystemService {
@@ -639,6 +657,68 @@ public class AuthService extends SystemService {
registerAuthenticators(hidlConfigs);
mInjector.publishBinderService(this, mImpl);
@@ -237,7 +238,7 @@ index b42f8980d1c0..41a04b8b5056 100644
}
/**
@@ -734,19 +814,197 @@ public class AuthService extends SystemService {
@@ -737,23 +817,201 @@ public class AuthService extends SystemService {
? modality : (modality & ~BiometricAuthenticator.TYPE_CREDENTIAL);
}
@@ -311,6 +312,10 @@ index b42f8980d1c0..41a04b8b5056 100644
+ int[] udfpsProps = getContext().getResources().getIntArray(
com.android.internal.R.array.config_udfps_sensor_props);
// Non-empty workaroundLocations indicates that the sensor is SFPS.
final List<SensorLocationInternal> workaroundLocations =
getWorkaroundSensorProps(getContext());
- final boolean isUdfps = !ArrayUtils.isEmpty(udfpsProps);
+ boolean isUdfps = !ArrayUtils.isEmpty(udfpsProps);
@@ -438,12 +443,12 @@ index b42f8980d1c0..41a04b8b5056 100644
if (isUdfps) {
sensorType = FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/UdfpsHelper.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/UdfpsHelper.java
index 879c8a0317d7..d288acdc2ef5 100644
index 29661d46f328..e97f70d7bffd 100644
--- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/UdfpsHelper.java
+++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/UdfpsHelper.java
@@ -28,6 +28,10 @@ import android.util.Slog;
import com.android.server.biometrics.sensors.AcquisitionClient;
@@ -23,6 +23,10 @@ import android.hardware.fingerprint.FingerprintManager;
import android.os.RemoteException;
import android.util.Slog;
+import vendor.goodix.hardware.biometrics.fingerprint.V2_1.IGoodixFingerprintDaemon;
+
@@ -452,7 +457,7 @@ index 879c8a0317d7..d288acdc2ef5 100644
/**
* Contains helper methods for under-display fingerprint HIDL.
*/
@@ -35,37 +39,120 @@ public class UdfpsHelper {
@@ -30,37 +34,120 @@ public class UdfpsHelper {
private static final String TAG = "UdfpsHelper";
@@ -561,21 +566,21 @@ index 879c8a0317d7..d288acdc2ef5 100644
return;
+ } catch(Throwable t) {
+ Slog.e(TAG, "Tried sending goodix daemon cmd failed", t);
}
try {
- extension.onFingerUp();
- } catch (RemoteException e) {
- Slog.e(TAG, "onFingerUp | RemoteException: ", e);
+ }
+
+ try {
+ vendor.oplus.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint fp = vendor.oplus.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint.getService();
+ writeFile("/sys/kernel/oppo_display/notify_fppress", "0");
+ writeFile("/sys/kernel/oplus_display/oplus_notify_fppress", "0");
+ fp.touchUp();
+ } catch(Throwable t) {
+ Slog.e(TAG, "Tried sending oplus daemon cmd failed", t);
+ }
+
+ try {
}
try {
- extension.onFingerUp();
- } catch (RemoteException e) {
- Slog.e(TAG, "onFingerUp | RemoteException: ", e);
+ vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint fp = vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint.getService();
+ writeFile("/sys/kernel/oppo_display/notify_fppress", "0");
+ writeFile("/sys/kernel/oplus_display/oplus_notify_fppress", "0");
@@ -586,7 +591,7 @@ index 879c8a0317d7..d288acdc2ef5 100644
+ Slog.v(TAG, "onFingerUp | failed to cast the HIDL to V2_3");
}
public static int getReasonFromEnrollReason(@FingerprintManager.EnrollReason int reason) {
public static boolean isValidAcquisitionMessage(@NonNull Context context,
--
2.25.1

View File

@@ -1,7 +1,7 @@
From 901626c91714a65086a7a007290964f60da8464e Mon Sep 17 00:00:00 2001
From a3f70fa8332d6b5f7663ec4c41a9491dae511663 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 27/28] Dynamically resize boot animation to match screen size
Subject: [PATCH 26/30] Dynamically resize boot animation to match screen size
Change-Id: I54e49fc6b8c670103852e212d1416e27ff976205
---

View File

@@ -1,7 +1,7 @@
From 4be34967d45c4c8198be53c0190fa5b12b5cbb6e Mon Sep 17 00:00:00 2001
From d673b986c46c4eda5fdd2289472bca1fa74b7b72 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 28/28] Once we integrate Samsung Power hal in libpowermanager,
Subject: [PATCH 27/30] Once we integrate Samsung Power hal in libpowermanager,
libpowermanager and its deps require linking against
vendor.samsung.hardware.miscpower@2.0

View File

@@ -0,0 +1,39 @@
From a37fd36e336e956b4e83cff34463e82b1deb7bd7 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Thu, 3 Mar 2022 09:15:32 -0500
Subject: [PATCH 28/30] Add persist.sys.phh.ultrasonic_udfps property to
disable green circle for udfps
---
.../com/android/server/biometrics/AuthService.java | 12 ++++++++----
1 file changed, 8 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 341b08262ed4..718dbf85bdcd 100644
--- a/services/core/java/com/android/server/biometrics/AuthService.java
+++ b/services/core/java/com/android/server/biometrics/AuthService.java
@@ -1008,13 +1008,17 @@ public class AuthService extends SystemService {
isUdfps = true;
}
- if(udfpsProps.length > 0) {
- Slog.d("PHH-Enroll", "Samsung got udfps infos " + udfpsProps[0] + ", " + udfpsProps[1] + ", " + udfpsProps[2]);
- }
+ if(udfpsProps.length > 0) {
+ Slog.d("PHH-Enroll", "Got udfps infos " + udfpsProps[0] + ", " + udfpsProps[1] + ", " + udfpsProps[2]);
+ }
final @FingerprintSensorProperties.SensorType int sensorType;
if (isUdfps) {
- sensorType = FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
+ if(android.os.SystemProperties.getBoolean("persist.sys.phh.ultrasonic_udfps", false)) {
+ sensorType = FingerprintSensorProperties.TYPE_UDFPS_ULTRASONIC;
+ } else {
+ sensorType = FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
+ }
} else if (isPowerbuttonFps) {
sensorType = FingerprintSensorProperties.TYPE_POWER_BUTTON;
} else {
--
2.25.1

View File

@@ -0,0 +1,26 @@
From e521ca0d6d7aec9426cab8b4fff44358bd39b1e7 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Thu, 3 Mar 2022 09:17:17 -0500
Subject: [PATCH 29/30] Allow 128bits SHA1 IPSec keys. This is required to
implement VoLTE with this API
---
core/java/android/net/IpSecAlgorithm.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/java/android/net/IpSecAlgorithm.java b/core/java/android/net/IpSecAlgorithm.java
index 7ef5bac092f6..326573818655 100644
--- a/core/java/android/net/IpSecAlgorithm.java
+++ b/core/java/android/net/IpSecAlgorithm.java
@@ -385,7 +385,7 @@ public final class IpSecAlgorithm implements Parcelable {
isValidTruncLen = truncLen >= 96 && truncLen <= 128;
break;
case AUTH_HMAC_SHA1:
- isValidLen = keyLen == 160;
+ isValidLen = true;
isValidTruncLen = truncLen >= 96 && truncLen <= 160;
break;
case AUTH_HMAC_SHA256:
--
2.25.1

View File

@@ -0,0 +1,67 @@
From a25ac1943b563d5ff2f9045a4279a8e73931fd99 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Fri, 4 Mar 2022 19:26:53 -0500
Subject: [PATCH 30/30] Fix FOD on ZF8
Goodix HAL expects events in this order:
- Fingerprint down when touchscreen says fp down
- UI Ready when HWC says HBM on
- Fingerprint up
Not UI Ready then fingerprint down like what was previously implemented
---
.../android/server/biometrics/AuthService.java | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/services/core/java/com/android/server/biometrics/AuthService.java b/services/core/java/com/android/server/biometrics/AuthService.java
index 718dbf85bdcd..f49b73f6922a 100644
--- a/services/core/java/com/android/server/biometrics/AuthService.java
+++ b/services/core/java/com/android/server/biometrics/AuthService.java
@@ -107,6 +107,7 @@ public class AuthService extends SystemService {
final IAuthService.Stub mImpl;
private FileObserver fodFileObserver = null;
+ private FileObserver fodFileObserver2 = null;
private ISehBiometricsFingerprint mSamsungFingerprint = null;
/**
@@ -693,19 +694,22 @@ public class AuthService extends SystemService {
};
fodFileObserver.startWatching();
}
- String asusSpotOnAchieved = "/sys/class/drm/spot_on_achieved";
- if( (new File(asusSpotOnAchieved)).exists()) {
- fodFileObserver = new FileObserver(asusSpotOnAchieved, FileObserver.MODIFY) {
+
+ String asusGhbmOnAchieved = "/sys/class/drm/ghbm_on_achieved";
+ if( (new File(asusGhbmOnAchieved)).exists()) {
+ fodFileObserver2 = new FileObserver(asusGhbmOnAchieved, FileObserver.MODIFY) {
boolean wasOn = false;
@Override
public void onEvent(int event, String path) {
- String spotOn = readFile(asusSpotOnAchieved);
+ String spotOn = readFile(asusGhbmOnAchieved);
if("1".equals(spotOn)) {
if(!wasOn) {
try {
IGoodixFingerprintDaemon goodixDaemon = IGoodixFingerprintDaemon.getService();
+
+ //Send UI ready
goodixDaemon.sendCommand(200002, new java.util.ArrayList<Byte>(), (returnCode, resultData) -> {
- Slog.e(TAG, "Goodix send command returned code "+ returnCode);
+ Slog.e(TAG, "Goodix send command touch pressed returned code "+ returnCode);
});
} catch(Throwable t) {
Slog.d("PHH-Enroll", "Failed sending goodix command", t);
@@ -717,7 +721,7 @@ public class AuthService extends SystemService {
}
}
};
- fodFileObserver.startWatching();
+ fodFileObserver2.startWatching();
}
}
--
2.25.1

View File

@@ -1,7 +1,7 @@
From 297868e5aed30c197cc62805a2eba35fb604b63d Mon Sep 17 00:00:00 2001
From 85ca30782ce91008483456c4946d3611f355ef0f 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/13] On Samsung, we need to send a hack-message to HAL to
Subject: [PATCH 01/14] On Samsung, we need to send a hack-message to HAL to
get all Sensors
Change-Id: Id6a1fa48340de61c418493668e9abd22c2599376
@@ -10,7 +10,7 @@ Change-Id: Id6a1fa48340de61c418493668e9abd22c2599376
1 file changed, 4 insertions(+)
diff --git a/services/sensorservice/SensorDevice.cpp b/services/sensorservice/SensorDevice.cpp
index c233bf06cf..623ba66364 100644
index e4efde2448..78961a295d 100644
--- a/services/sensorservice/SensorDevice.cpp
+++ b/services/sensorservice/SensorDevice.cpp
@@ -34,7 +34,9 @@

View File

@@ -1,7 +1,7 @@
From ecc9c4502e39ee6f2c97a97ef836b670b30127b8 Mon Sep 17 00:00:00 2001
From 59e7d5411b5d16283c6621fb3bdb8c66914c9fc6 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 10 Mar 2020 23:26:55 +0100
Subject: [PATCH 02/13] Use BKK's hwcomposer hacks to properly display FOD
Subject: [PATCH 02/14] Use BKK's hwcomposer hacks to properly display FOD
layers
Insecure hack: Set FOD layers to magical Z values to trigger

View File

@@ -1,7 +1,7 @@
From f8cdc13f4a0c9c701c67d2bba831c9914883d7f4 Mon Sep 17 00:00:00 2001
From b8c0ee8ddc756f376396d5eeb0911fdc715b85e6 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 20 May 2020 21:16:56 +0200
Subject: [PATCH 03/13] Samsung + Xiaomi new FOD HBM controls
Subject: [PATCH 03/14] Samsung + Xiaomi new FOD HBM controls
Change-Id: I5ab27fa70882efa85f0c917bf31bb32adaa09bb1
---
@@ -10,7 +10,7 @@ Change-Id: I5ab27fa70882efa85f0c917bf31bb32adaa09bb1
2 files changed, 39 insertions(+), 1 deletion(-)
diff --git a/services/surfaceflinger/BufferQueueLayer.cpp b/services/surfaceflinger/BufferQueueLayer.cpp
index 6b6d43425d..7b78c7277a 100644
index 99e470dfe6..a1f82523af 100644
--- a/services/surfaceflinger/BufferQueueLayer.cpp
+++ b/services/surfaceflinger/BufferQueueLayer.cpp
@@ -27,6 +27,7 @@
@@ -44,7 +44,7 @@ index 6b6d43425d..7b78c7277a 100644
mConsumer->setConsumerUsageBits(getEffectiveUsage(0));
mContentsChangedListener = new ContentsChangedListener(this);
@@ -525,9 +535,16 @@ status_t BufferQueueLayer::setDefaultBufferProperties(uint32_t w, uint32_t h, Pi
@@ -522,9 +532,16 @@ status_t BufferQueueLayer::setDefaultBufferProperties(uint32_t w, uint32_t h, Pi
return BAD_VALUE;
}

View File

@@ -1,7 +1,7 @@
From fa1f31735f374849c7697086a83f25b9a8e01bdb Mon Sep 17 00:00:00 2001
From 7bf7d976d8a0e49ec6b0244eb8575e54550e8e59 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Thu, 22 Oct 2020 23:22:46 +0200
Subject: [PATCH 04/13] Matching an input with a display uses uniqueId
Subject: [PATCH 04/14] Matching an input with a display uses uniqueId
Not all devices have a `location`, notably bluetooth devices.
However, we might still want to associate them with a screen,
@@ -15,7 +15,7 @@ Change-Id: Ifcbc8329d54386f58e013270d9888316c0f516b6
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/services/inputflinger/reader/InputDevice.cpp b/services/inputflinger/reader/InputDevice.cpp
index 7af014cb34..53ef86f1c9 100644
index 1e9ec54d5d..30362e5b0e 100644
--- a/services/inputflinger/reader/InputDevice.cpp
+++ b/services/inputflinger/reader/InputDevice.cpp
@@ -303,7 +303,10 @@ void InputDevice::configure(nsecs_t when, const InputReaderConfiguration* config

View File

@@ -1,7 +1,7 @@
From 6406d35dbf27d6c9d0a82e6ae6ec3c323f077e57 Mon Sep 17 00:00:00 2001
From 0f148f8493b4816ea64c6dad82315a1a54e8ddf9 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 5 Jan 2021 23:44:00 +0100
Subject: [PATCH 05/13] unshared_oob didn't exist in O/P, so detect its
Subject: [PATCH 05/14] unshared_oob didn't exist in O/P, so detect its
supported based on vndk version
---

View File

@@ -1,7 +1,7 @@
From fdd475f9d03ba45e855d12a7b8732e95e5d44794 Mon Sep 17 00:00:00 2001
From 5b3f1feeca0c82282b067993eadd6f280e86572e Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 31 Mar 2021 23:36:03 +0200
Subject: [PATCH 06/13] Remove Samsung system permission on sensors
Subject: [PATCH 06/14] Remove Samsung system permission on sensors
---
libs/sensor/Sensor.cpp | 1 +

View File

@@ -1,7 +1,7 @@
From 8d39a35611d3d167461e92e909ea05cd9a3506fa Mon Sep 17 00:00:00 2001
From 0a8ebaa470e9531073a4e7067d10fad6787b8899 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 20 Oct 2021 09:39:47 -0400
Subject: [PATCH 07/13] Try to fallback mCallingSid to getpidcon
Subject: [PATCH 07/14] Try to fallback mCallingSid to getpidcon
This is needed because old vendors (before April 2019 ~) don't support
reporting SELinux context of the caller.

View File

@@ -1,7 +1,7 @@
From e661deeaae72043ce07657476710498682e215b4 Mon Sep 17 00:00:00 2001
From f04dc83be2152a3241784e1fb875d587939a7504 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 12 Dec 2021 08:45:36 -0500
Subject: [PATCH 08/13] Mark accelerometer input as sensor exclusively if there
Subject: [PATCH 08/14] Mark accelerometer input as sensor exclusively if there
are ABS axis
The reason this is needed is that on -fucked up- Xiami Mi A2 Lite and
@@ -15,10 +15,10 @@ Change-Id: I491ab89724c908ef09a23a6427d24a8889bf806a
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/services/inputflinger/reader/EventHub.cpp b/services/inputflinger/reader/EventHub.cpp
index b19b4195d1..7dd8eecdaf 100644
index 1c76dbb386..be2d825ba4 100644
--- a/services/inputflinger/reader/EventHub.cpp
+++ b/services/inputflinger/reader/EventHub.cpp
@@ -2042,7 +2042,13 @@ void EventHub::openDeviceLocked(const std::string& devicePath) {
@@ -2041,7 +2041,13 @@ void EventHub::openDeviceLocked(const std::string& devicePath) {
// Check whether this device is an accelerometer.
if (device->propBitmask.test(INPUT_PROP_ACCELEROMETER)) {

View File

@@ -1,7 +1,7 @@
From ddd7c07b9bc675ca50a4dfa1d15906791649b688 Mon Sep 17 00:00:00 2001
From 5efdf39b5611b5e0da719069f5f0bbb2c74e1aa5 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Fri, 17 Dec 2021 17:18:20 -0500
Subject: [PATCH 09/13] On Samsung devices for FOD HBM, set specific usage bits
Subject: [PATCH 09/14] On Samsung devices for FOD HBM, set specific usage bits
Change-Id: Ibe71e291c6fba9ce48e83a5fd93f1beae3a63bc7
---
@@ -12,7 +12,7 @@ Change-Id: Ibe71e291c6fba9ce48e83a5fd93f1beae3a63bc7
4 files changed, 20 insertions(+), 5 deletions(-)
diff --git a/libs/gui/BLASTBufferQueue.cpp b/libs/gui/BLASTBufferQueue.cpp
index 94e1ae1c74..d23fb53703 100644
index f034642681..f9a52e48ee 100644
--- a/libs/gui/BLASTBufferQueue.cpp
+++ b/libs/gui/BLASTBufferQueue.cpp
@@ -32,9 +32,19 @@
@@ -35,7 +35,7 @@ index 94e1ae1c74..d23fb53703 100644
using namespace std::chrono_literals;
namespace {
@@ -144,9 +154,14 @@ BLASTBufferQueue::BLASTBufferQueue(const std::string& name, const sp<SurfaceCont
@@ -140,9 +150,14 @@ BLASTBufferQueue::BLASTBufferQueue(const std::string& name)
// safe default, most producers are expected to override this
mProducer->setMaxDequeuedBufferCount(2);
@@ -48,8 +48,8 @@ index 94e1ae1c74..d23fb53703 100644
mBufferItemConsumer = new BLASTBufferItemConsumer(mConsumer,
- GraphicBuffer::USAGE_HW_COMPOSER |
- GraphicBuffer::USAGE_HW_TEXTURE,
+ usage,
1, false);
+ usage,
1, false, this);
static int32_t id = 0;
mName = name + "#" + std::to_string(id);
diff --git a/libs/ui/Gralloc2.cpp b/libs/ui/Gralloc2.cpp
@@ -79,7 +79,7 @@ index 4a8a4d09d3..4b1c974db1 100644
return NO_ERROR;
}
diff --git a/libs/ui/Gralloc4.cpp b/libs/ui/Gralloc4.cpp
index 4f5e098988..baf557bad8 100644
index 499bc2c734..70ac43ac2c 100644
--- a/libs/ui/Gralloc4.cpp
+++ b/libs/ui/Gralloc4.cpp
@@ -116,7 +116,7 @@ status_t Gralloc4Mapper::validateBufferDescriptorInfo(

View File

@@ -1,7 +1,7 @@
From fa8c48b68b12a28dd171abc0f6f52a60c12f6840 Mon Sep 17 00:00:00 2001
From 0b7b1f06e063f63962592fe35115b2151391758b Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 19 Dec 2021 16:54:31 -0500
Subject: [PATCH 10/13] Update FOD/HBM method Xiaomi/Oplus
Subject: [PATCH 10/14] Update FOD/HBM method Xiaomi/Oplus
Change-Id: If99362db18d8eace487e52716a138e15d1dcfab4
---

View File

@@ -1,7 +1,7 @@
From b5fe4477aa2acd28d60ce9f382dce31ac9d5c168 Mon Sep 17 00:00:00 2001
From b22d8d3469382c919362fb31f6f88e3efd9fdc07 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 19 Dec 2021 17:04:51 -0500
Subject: [PATCH 11/13] For FOD/HBM on Asus devices, call the HWC extended call
Subject: [PATCH 11/14] For FOD/HBM on Asus devices, call the HWC extended call
setLayerClass
Change-Id: Id8773fc3d2fb6d2bd228503b1ee0d77864b2eb05
@@ -36,7 +36,7 @@ index f605b0271b..cd81a5e5d0 100644
}
diff --git a/services/surfaceflinger/DisplayHardware/ComposerHal.cpp b/services/surfaceflinger/DisplayHardware/ComposerHal.cpp
index caf0294a56..ff5039f75b 100644
index 09734c275f..19f22f453b 100644
--- a/services/surfaceflinger/DisplayHardware/ComposerHal.cpp
+++ b/services/surfaceflinger/DisplayHardware/ComposerHal.cpp
@@ -1220,6 +1220,13 @@ V2_4::Error Composer::setLayerGenericMetadata(Display display, Layer layer, cons
@@ -54,7 +54,7 @@ index caf0294a56..ff5039f75b 100644
std::vector<IComposerClient::LayerGenericMetadataKey>* outKeys) {
using Error = V2_4::Error;
diff --git a/services/surfaceflinger/DisplayHardware/ComposerHal.h b/services/surfaceflinger/DisplayHardware/ComposerHal.h
index b525e63c66..2eb63f3c2e 100644
index fe114b9512..669e652fba 100644
--- a/services/surfaceflinger/DisplayHardware/ComposerHal.h
+++ b/services/surfaceflinger/DisplayHardware/ComposerHal.h
@@ -231,6 +231,9 @@ public:

View File

@@ -1,7 +1,7 @@
From a99bfcddc9930b3acd9b3e3f6026e962f2c62a59 Mon Sep 17 00:00:00 2001
From 66fc92abe1caf13387ead1abf34e2832550da4ea Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 27 Dec 2021 18:00:43 -0500
Subject: [PATCH 12/13] powermanager: Add support Samsung miscpower HAL
Subject: [PATCH 12/14] powermanager: Add support Samsung miscpower HAL
Several various configurations need to be supported:
- Android Pie vendors have a android.hardware.power HIDL default + "miscpower"

View File

@@ -1,7 +1,7 @@
From 71294e86127acffb85bd93dd6ebd867e1111ac8c Mon Sep 17 00:00:00 2001
From 4c64844d04c1d23b6680b0b4a05ab36005aa3b06 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 12 Jan 2022 04:07:34 -0500
Subject: [PATCH 13/13] Fix loading power hidl v1.0
Subject: [PATCH 13/14] Fix loading power hidl v1.0
Change-Id: Ife20a98d2a11c79c7b42f359f30c28e2dede1f25
---

View File

@@ -0,0 +1,34 @@
From a2cab046b8b59be40eb869ed9a3a4b57ea5d3837 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Fri, 4 Mar 2022 19:28:41 -0500
Subject: [PATCH 14/14] FOD for Asus ZF8 had layer classes inverted
---
services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp b/services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp
index cd81a5e5d0..49a0f013cc 100644
--- a/services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp
+++ b/services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp
@@ -429,7 +429,7 @@ void OutputLayer::writeOutputDependentGeometryStateToHWC(HWC2::Layer* hwcLayer,
} else if(sXiaomiFod) {
z |= 0x1000000;
} else if(sAsusFod) {
- hwcLayer->setLayerClass(4);
+ hwcLayer->setLayerClass(5);
}
}
@@ -440,7 +440,7 @@ void OutputLayer::writeOutputDependentGeometryStateToHWC(HWC2::Layer* hwcLayer,
} else if(sXiaomiFod) {
z |= 0x2000000;
} else if(sAsusFod) {
- hwcLayer->setLayerClass(5);
+ hwcLayer->setLayerClass(4);
}
}
--
2.25.1

View File

@@ -1,7 +1,7 @@
From dd023d4b5b9e3611b0daf250dec3818cba301d9a Mon Sep 17 00:00:00 2001
From 8ac5bc3dc490b1e45e0f8a1e230a679c6013af1b Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Thu, 12 Sep 2019 13:05:37 +0200
Subject: [PATCH 2/6] If Vboot2 fails, fall-back to Vboot1
Subject: [PATCH 1/6] If Vboot2 fails, fall-back to Vboot1
Some devices, for instance Honor View 10, running Pie vendor declares
vbmeta in their device-tree, but doesn't have a vbmeta partition.

View File

@@ -1,27 +0,0 @@
From 72db5bb7c714b25b9fd162647eeb5fd6ad3f6a12 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Thu, 7 Oct 2021 15:48:11 -0400
Subject: [PATCH 1/6] Stop overriding system properties from vendor
This is annoying to disable apexes, or force adb
Change-Id: Ifd0072c631349b23945df4ab401ba26eca07131f
---
init/property_service.cpp | 1 -
1 file changed, 1 deletion(-)
diff --git a/init/property_service.cpp b/init/property_service.cpp
index 5a8fc5418..bc9a29dea 100644
--- a/init/property_service.cpp
+++ b/init/property_service.cpp
@@ -726,7 +726,6 @@ static void LoadProperties(char* data, const char* filter, const char* filename,
} else if (it->second != value) {
LOG(WARNING) << "Overriding previous property '" << key << "':'" << it->second
<< "' with new value '" << value << "'";
- it->second = value;
}
} else {
LOG(ERROR) << "Do not have permissions to set '" << key << "' to '" << value
--
2.25.1

View File

@@ -1,7 +1,7 @@
From 22a748594817b296b363f64cdb8db13987ea1cc6 Mon Sep 17 00:00:00 2001
From 79ccf2d4fe4983ea6545c7c65efbb73453e56e59 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 18 Oct 2020 18:14:47 +0200
Subject: [PATCH 3/6] Don't abandon creating property tree if there is a
Subject: [PATCH 2/6] Don't abandon creating property tree if there is a
conflict, and hope for the best
Change-Id: I194c815fdd58bfb84aaf7db02b8f0d00b4db21e8

View File

@@ -1,7 +1,7 @@
From 4776b1f3bd94b8a035fc0608e71844b97dac6390 Mon Sep 17 00:00:00 2001
From 6ecdcd6ebed42ee9a4f656b5dc2cfb63efa71d24 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 14 Aug 2018 19:33:03 +0200
Subject: [PATCH 4/6] Detect allowed sdcard options based on vndk
Subject: [PATCH 3/6] Detect allowed sdcard options based on vndk
Some kernel crashes when using too recent sdcardfs options

View File

@@ -1,7 +1,7 @@
From 05cada88a45c9260f7085f6c953341ac1f92adbb Mon Sep 17 00:00:00 2001
From d34f58a78882f3581607ef7fe52e967ba95eec64 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Fri, 1 Nov 2019 18:22:13 +0100
Subject: [PATCH 5/6] Ugly but secure: Set /dev/uinput as 0666 to fix
Subject: [PATCH 4/6] Ugly but secure: Set /dev/uinput as 0666 to fix
fingerprint sensor on some devices
cf https://github.com/phhusson/device_phh_treble/pull/122/commits/e000d69c286b6686777ea6f1867f379e30273e48

View File

@@ -1,7 +1,7 @@
From 40be0112b1316800a3e496caed7bb73bfb3d801f Mon Sep 17 00:00:00 2001
From c969ddc72082104c3c9bf2fb29631c84e731fdc4 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sat, 22 Jan 2022 14:34:45 -0500
Subject: [PATCH 6/6] Add my own OTA mechanism going over /data
Subject: [PATCH 5/6] Add my own OTA mechanism going over /data
Change-Id: I9cacff2d761affa0376b4bb8ca63353a9d95b5de
---
@@ -23,7 +23,7 @@ index dcbbc5448..ea2f4254d 100644
FiemapStatus ImageManager::CreateBackingImage(
diff --git a/init/selinux.cpp b/init/selinux.cpp
index 42d302324..068849989 100644
index 29c0ff3ba..28f3fb899 100644
--- a/init/selinux.cpp
+++ b/init/selinux.cpp
@@ -58,6 +58,9 @@
@@ -61,7 +61,7 @@ index 42d302324..068849989 100644
namespace android {
namespace init {
@@ -696,6 +704,60 @@ static void LoadSelinuxPolicy(std::string& policy) {
@@ -712,6 +720,60 @@ static void LoadSelinuxPolicy(std::string& policy) {
}
}
@@ -122,7 +122,7 @@ index 42d302324..068849989 100644
// The SELinux setup process is carefully orchestrated around snapuserd. Policy
// must be loaded off dynamic partitions, and during an OTA, those partitions
// cannot be read without snapuserd. But, with kernel-privileged snapuserd
@@ -718,6 +780,8 @@ int SetupSelinux(char** argv) {
@@ -734,6 +796,8 @@ int SetupSelinux(char** argv) {
if (REBOOT_BOOTLOADER_ON_PANIC) {
InstallRebootSignalHandlers();
}

View File

@@ -0,0 +1,36 @@
From c286cc9c6afd2f08517cf2733b7fe382604069a6 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 23 Feb 2022 17:37:47 -0500
Subject: [PATCH 6/6] Let system override ro.apex.updatable
APEX are broken because of a kernel bug in Android 10 devices
So we have system set ro.apex.updatable = false
However, vendor can override system, which prevents us from setting this
to false
So, ignore the override policy for this prop
---
init/property_service.cpp | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/init/property_service.cpp b/init/property_service.cpp
index 5a8fc5418..1600744ff 100644
--- a/init/property_service.cpp
+++ b/init/property_service.cpp
@@ -726,8 +726,12 @@ static void LoadProperties(char* data, const char* filter, const char* filename,
} else if (it->second != value) {
LOG(WARNING) << "Overriding previous property '" << key << "':'" << it->second
<< "' with new value '" << value << "'";
- it->second = value;
- }
+ if(strcmp("ro.apex.updatable", key) == 0) {
+ LOG(WARNING) << "... Ignored";
+ } else {
+ it->second = value;
+ }
+ }
} else {
LOG(ERROR) << "Do not have permissions to set '" << key << "' to '" << value
<< "' in property file '" << filename << "': " << error;
--
2.25.1