Changes for September 2021, syncing up to v312

This commit is contained in:
Andy CrossGate Yan 2021-09-10 15:58:39 +00:00
parent 01693449b8
commit 8a48d127cf
103 changed files with 1553 additions and 387 deletions

View File

@ -1,7 +1,7 @@
From 381142e1299600d7b16c77c57207732dd06536fc Mon Sep 17 00:00:00 2001
From 7ff66a5a2479b490ae553781be0cf19ac5cf9010 Mon Sep 17 00:00:00 2001
From: Alexander Koskovich <zvnexus@outlook.com>
Date: Sat, 3 Oct 2020 14:28:35 -0700
Subject: [PATCH] Make broken copy headers the default.
Subject: [PATCH 1/2] Make broken copy headers the default.
* Do not take this for S unless needed, this is a hack
for this cycle.

View File

@ -0,0 +1,42 @@
From bd52c99f0fb44194a420df337f23639af8c26db9 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Sun, 5 Sep 2021 00:22:49 +0000
Subject: [PATCH 2/2] Revert "Add llkd to mainline_system"
This reverts commit 8879840c52b2647c000dffee0935bb5af662998a.
---
target/product/mainline_system.mk | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/target/product/mainline_system.mk b/target/product/mainline_system.mk
index a787707a0..4653207b3 100644
--- a/target/product/mainline_system.mk
+++ b/target/product/mainline_system.mk
@@ -39,9 +39,6 @@ PRODUCT_PACKAGES += \
Tag \
TimeZoneUpdater \
-# Binaries
-PRODUCT_PACKAGES += llkd
-
# OTA support
PRODUCT_PACKAGES += \
recovery-refresh \
@@ -49,10 +46,12 @@ PRODUCT_PACKAGES += \
update_verifier \
# Wrapped net utils for /vendor access.
-PRODUCT_PACKAGES += netutils-wrapper-1.0
+PRODUCT_PACKAGES += \
+ netutils-wrapper-1.0 \
# Charger images
-PRODUCT_PACKAGES += charger_res_images
+PRODUCT_PACKAGES += \
+ charger_res_images \
# system_other support
PRODUCT_PACKAGES += \
--
2.25.1

View File

@ -0,0 +1,223 @@
From 3f7f3f9546f9f23d66381f7dff887cd562285ce6 Mon Sep 17 00:00:00 2001
From: Paul Keith <javelinanddart@gmail.com>
Date: Tue, 30 Oct 2018 15:46:18 +0100
Subject: [PATCH] Messaging: Add "Mark as read" quick action for message
notifications
Change-Id: I7194dca022e5062926fa35709de282721ca64320
---
res/drawable/ic_wear_read.xml | 9 +++++++++
res/values/cm_strings.xml | 3 +++
.../messaging/datamodel/BugleNotifications.java | 14 ++++++++++++++
.../datamodel/MessageNotificationState.java | 8 ++++++++
.../messaging/datamodel/NotificationState.java | 12 +++++++++++-
.../messaging/receiver/NotificationReceiver.java | 12 +++++++++++-
src/com/android/messaging/ui/UIIntents.java | 11 +++++++++++
src/com/android/messaging/ui/UIIntentsImpl.java | 14 ++++++++++++++
8 files changed, 81 insertions(+), 2 deletions(-)
create mode 100644 res/drawable/ic_wear_read.xml
diff --git a/res/drawable/ic_wear_read.xml b/res/drawable/ic_wear_read.xml
new file mode 100644
index 0000000..9d017e6
--- /dev/null
+++ b/res/drawable/ic_wear_read.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:fillColor="#ffffff"
+ android:pathData="M0.41,13.41L6,19L7.41,17.58L1.83,12M22.24,5.58L11.66,16.17L7.5,12L6.07,13.41L11.66,19L23.66,7M18,7L16.59,5.58L10.24,11.93L11.66,13.34L18,7Z" />
+</vector>
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml
index f285555..858f093 100644
--- a/res/values/cm_strings.xml
+++ b/res/values/cm_strings.xml
@@ -23,6 +23,9 @@
<string name="show_emoticons_pref_title">Emoticons access</string>
<string name="show_emoticons_pref_summary">Show the emoticons key on the keyboard</string>
+ <!-- Mark message as read -->
+ <string name="notification_mark_as_read">Mark as read</string>
+
<!-- Notification channel -->
<string name="notification_channel_messages_title">Messages</string>
</resources>
diff --git a/src/com/android/messaging/datamodel/BugleNotifications.java b/src/com/android/messaging/datamodel/BugleNotifications.java
index 6df9e88..dbe86ff 100644
--- a/src/com/android/messaging/datamodel/BugleNotifications.java
+++ b/src/com/android/messaging/datamodel/BugleNotifications.java
@@ -789,6 +789,7 @@ public class BugleNotifications {
(MultiMessageNotificationState) notificationState);
addDownloadMmsAction(notifBuilder, wearableExtender, notificationState);
addWearableVoiceReplyAction(notifBuilder, wearableExtender, notificationState);
+ addReadAction(notifBuilder, wearableExtender, notificationState);
}
// Apply the wearable options and build & post the notification
@@ -876,6 +877,19 @@ public class BugleNotifications {
wearableExtender.addAction(wearActionBuilder.build());
}
+ private static void addReadAction(final NotificationCompat.Builder notifBuilder,
+ final WearableExtender wearableExtender, final NotificationState notificationState) {
+ final Context context = Factory.get().getApplicationContext();
+ final PendingIntent readPendingIntent = notificationState.getReadIntent();
+ final NotificationCompat.Action.Builder readActionBuilder =
+ new NotificationCompat.Action.Builder(R.drawable.ic_wear_read,
+ context.getString(R.string.notification_mark_as_read), readPendingIntent);
+ notifBuilder.addAction(readActionBuilder.build());
+
+ // Support the action on a wearable device as well
+ wearableExtender.addAction(readActionBuilder.build());
+ }
+
private static void addDownloadMmsAction(final NotificationCompat.Builder notifBuilder,
final WearableExtender wearableExtender, final NotificationState notificationState) {
if (!(notificationState instanceof MultiMessageNotificationState)) {
diff --git a/src/com/android/messaging/datamodel/MessageNotificationState.java b/src/com/android/messaging/datamodel/MessageNotificationState.java
index 4a4bfd5..7555d97 100644
--- a/src/com/android/messaging/datamodel/MessageNotificationState.java
+++ b/src/com/android/messaging/datamodel/MessageNotificationState.java
@@ -334,6 +334,14 @@ public abstract class MessageNotificationState extends NotificationState {
getClearIntentRequestCode());
}
+ @Override
+ public PendingIntent getReadIntent() {
+ return UIIntents.get().getPendingIntentForMarkingAsRead(
+ Factory.get().getApplicationContext(),
+ mConversationIds,
+ getReadIntentRequestCode());
+ }
+
/**
* Notification for multiple messages in at least 2 different conversations.
*/
diff --git a/src/com/android/messaging/datamodel/NotificationState.java b/src/com/android/messaging/datamodel/NotificationState.java
index 144f0fe..4c11537 100644
--- a/src/com/android/messaging/datamodel/NotificationState.java
+++ b/src/com/android/messaging/datamodel/NotificationState.java
@@ -43,7 +43,8 @@ import java.util.HashSet;
public abstract class NotificationState {
private static final int CONTENT_INTENT_REQUEST_CODE_OFFSET = 0;
private static final int CLEAR_INTENT_REQUEST_CODE_OFFSET = 1;
- private static final int NUM_REQUEST_CODES_NEEDED = 2;
+ private static final int READ_INTENT_REQUEST_CODE_OFFSET = 2;
+ private static final int NUM_REQUEST_CODES_NEEDED = 3;
public interface FailedMessageQuery {
static final String FAILED_MESSAGES_WHERE_CLAUSE =
@@ -78,6 +79,11 @@ public abstract class NotificationState {
*/
public abstract PendingIntent getClearIntent();
+ /**
+ * The intent to be triggered when mark as read is pressed.
+ */
+ public abstract PendingIntent getReadIntent();
+
protected Uri getAttachmentUri() {
return null;
}
@@ -116,6 +122,10 @@ public abstract class NotificationState {
return mBaseRequestCode + CLEAR_INTENT_REQUEST_CODE_OFFSET;
}
+ public int getReadIntentRequestCode() {
+ return mBaseRequestCode + READ_INTENT_REQUEST_CODE_OFFSET;
+ }
+
/**
* Gets the appropriate icon needed for notifications.
*/
diff --git a/src/com/android/messaging/receiver/NotificationReceiver.java b/src/com/android/messaging/receiver/NotificationReceiver.java
index bbb847d..f87779c 100644
--- a/src/com/android/messaging/receiver/NotificationReceiver.java
+++ b/src/com/android/messaging/receiver/NotificationReceiver.java
@@ -20,6 +20,7 @@ import android.content.Context;
import android.content.Intent;
import com.android.messaging.datamodel.BugleNotifications;
+import com.android.messaging.datamodel.action.MarkAsReadAction;
import com.android.messaging.datamodel.action.MarkAsSeenAction;
import com.android.messaging.ui.UIIntents;
import com.android.messaging.util.ConversationIdSet;
@@ -52,6 +53,15 @@ public class NotificationReceiver extends BroadcastReceiver {
BugleNotifications.resetLastMessageDing(conversationId);
}
}
+ } else if (intent.getAction().equals(UIIntents.ACTION_MARK_AS_READ)) {
+ final String conversationIdSetString =
+ intent.getStringExtra(UIIntents.UI_INTENT_EXTRA_CONVERSATION_ID_SET);
+ if (conversationIdSetString != null) {
+ for (final String conversationId :
+ ConversationIdSet.createSet(conversationIdSetString)) {
+ MarkAsReadAction.markAsRead(conversationId);
+ }
+ }
}
}
-}
\ No newline at end of file
+}
diff --git a/src/com/android/messaging/ui/UIIntents.java b/src/com/android/messaging/ui/UIIntents.java
index 2d10527..144e831 100644
--- a/src/com/android/messaging/ui/UIIntents.java
+++ b/src/com/android/messaging/ui/UIIntents.java
@@ -69,6 +69,9 @@ public abstract class UIIntents {
public static final String ACTION_RESET_NOTIFICATIONS =
"com.android.messaging.reset_notifications";
+ public static final String ACTION_MARK_AS_READ =
+ "com.android.messaging.mark_as_read";
+
// Sending VCard uri to VCard detail activity
public static final String UI_INTENT_EXTRA_VCARD_URI = "vcard_uri";
@@ -323,6 +326,14 @@ public abstract class UIIntents {
final int updateTargets, final ConversationIdSet conversationIdSet,
final int requestCode);
+ /**
+ * Get a PendingIntent for marking a conversation as read.
+ *
+ * <p>This is intended to be used by notifications.
+ */
+ public abstract PendingIntent getPendingIntentForMarkingAsRead(final Context context,
+ final ConversationIdSet conversationIdSet, final int requestCode);
+
/**
* Get a PendingIntent for showing low storage notifications.
*/
diff --git a/src/com/android/messaging/ui/UIIntentsImpl.java b/src/com/android/messaging/ui/UIIntentsImpl.java
index d64082d..9281899 100644
--- a/src/com/android/messaging/ui/UIIntentsImpl.java
+++ b/src/com/android/messaging/ui/UIIntentsImpl.java
@@ -430,6 +430,20 @@ public class UIIntentsImpl extends UIIntents {
PendingIntent.FLAG_UPDATE_CURRENT);
}
+ @Override
+ public PendingIntent getPendingIntentForMarkingAsRead(final Context context,
+ final ConversationIdSet conversationIdSet, final int requestCode) {
+ final Intent intent = new Intent(context, NotificationReceiver.class);
+ intent.setAction(ACTION_MARK_AS_READ);
+ if (conversationIdSet != null) {
+ intent.putExtra(UI_INTENT_EXTRA_CONVERSATION_ID_SET,
+ conversationIdSet.getDelimitedString());
+ }
+ return PendingIntent.getBroadcast(context,
+ requestCode, intent,
+ PendingIntent.FLAG_UPDATE_CURRENT);
+ }
+
/**
* Gets a PendingIntent associated with an Intent to start an Activity. All notifications
* that starts an Activity must use this method to get a PendingIntent, which achieves two
--
2.25.1

View File

@ -1,7 +1,7 @@
From be385f9b5a114352ad71a1224b08f40431ef9527 Mon Sep 17 00:00:00 2001
From 82f334dccb2d14c1415ad31ec955b646b5ef0903 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Mon, 5 Mar 2018 23:12:46 +0800
Subject: [PATCH 1/2] DeskClock: Adjust colors and layout
Subject: [PATCH 1/3] DeskClock: Adjust colors and layout
Change-Id: I6e876ddf94bdf63062630764beb9b5139110fe4d
---

View File

@ -1,7 +1,7 @@
From c17ad9817f16ca7ef8d0209713dec79a0d0afbac Mon Sep 17 00:00:00 2001
From 9dbc9d8105c3df1efe714d509622d338e7b9413f Mon Sep 17 00:00:00 2001
From: AndyCGYan <GeForce8800Ultra@gmail.com>
Date: Wed, 26 Dec 2018 22:38:54 +0800
Subject: [PATCH 2/2] DeskClock: Revert date and clock to Lollipop style
Subject: [PATCH 2/3] DeskClock: Revert date and clock to Lollipop style
Also added dynamic date format based on alarm presence

View File

@ -0,0 +1,61 @@
From 5778373cb0bfbf81bfb264930a61435a1c5eda2a Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Sun, 5 Sep 2021 00:30:33 +0000
Subject: [PATCH 3/3] DeskClock: Remove night mode
Change-Id: I885f39027e78fcda397f1be59d17bc24bc66671a
---
res/xml/screensaver_settings.xml | 8 +-------
src/com/android/deskclock/Screensaver.java | 5 ++---
src/com/android/deskclock/ScreensaverActivity.java | 2 +-
3 files changed, 4 insertions(+), 11 deletions(-)
diff --git a/res/xml/screensaver_settings.xml b/res/xml/screensaver_settings.xml
index 1680aab83..73375dcfa 100644
--- a/res/xml/screensaver_settings.xml
+++ b/res/xml/screensaver_settings.xml
@@ -24,10 +24,4 @@
android:key="screensaver_clock_style"
android:title="@string/clock_style" />
- <CheckBoxPreference
- android:defaultValue="true"
- android:key="screensaver_night_mode"
- android:summary="@string/night_mode_summary"
- android:title="@string/night_mode_title" />
-
-</PreferenceScreen>
\ No newline at end of file
+</PreferenceScreen>
diff --git a/src/com/android/deskclock/Screensaver.java b/src/com/android/deskclock/Screensaver.java
index 7f01d880a..b295d7a77 100644
--- a/src/com/android/deskclock/Screensaver.java
+++ b/src/com/android/deskclock/Screensaver.java
@@ -166,9 +166,8 @@ public final class Screensaver extends DreamService {
private void setClockStyle() {
Utils.setScreensaverClockStyle(mDigitalClock, mAnalogClock);
- final boolean dimNightMode = DataModel.getDataModel().getScreensaverNightModeOn();
- Utils.dimClockView(dimNightMode, mMainClockView);
- setScreenBright(!dimNightMode);
+ Utils.dimClockView(false, mMainClockView);
+ setScreenBright(true);
}
/**
diff --git a/src/com/android/deskclock/ScreensaverActivity.java b/src/com/android/deskclock/ScreensaverActivity.java
index 14c9bab00..912d59b2c 100644
--- a/src/com/android/deskclock/ScreensaverActivity.java
+++ b/src/com/android/deskclock/ScreensaverActivity.java
@@ -119,7 +119,7 @@ public class ScreensaverActivity extends BaseActivity {
Utils.setClockIconTypeface(mMainClockView);
Utils.setTimeFormat((TextClock) digitalClock, false);
Utils.setClockStyle(digitalClock, analogClock);
- Utils.dimClockView(true, mMainClockView);
+ Utils.dimClockView(false, mMainClockView);
analogClock.enableSeconds(false);
mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
--
2.25.1

View File

@ -1,4 +1,4 @@
From 52c4c60343cc71aa6c8cfa8efc68f394981c8da9 Mon Sep 17 00:00:00 2001
From 736cce8f2de28a5924b7eb93e63b76da64a673eb Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Sat, 17 Oct 2020 07:57:20 +0000
Subject: [PATCH] Messaging: Use blue accent
@ -16,7 +16,8 @@ Change-Id: I88d4de2d423afdb1bc854788aa84524af4048f9d
res/mipmap-xxxhdpi/ic_background.png | Bin 1703 -> 15814 bytes
res/mipmap-xxxhdpi/ic_foreground.png | Bin 73275 -> 76057 bytes
res/values/colors.xml | 10 +++++-----
11 files changed, 5 insertions(+), 5 deletions(-)
res/values/lineage_colors.xml | 2 +-
12 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/res/mipmap-hdpi/ic_background.png b/res/mipmap-hdpi/ic_background.png
index b4a472c2d5bf54a78026c78872fa680865dba4ab..57d070ee334520304146ac85115dbce207211f92 100644
@ -6485,7 +6486,7 @@ zNk8y${U;j&s$AQ+(;gNk*;GM$r6TdatC&#0&m_WG@&BhZ{m#E9N#yi6+k!mo9!|71
L^wq0WZ6p2%y}sDs
diff --git a/res/values/colors.xml b/res/values/colors.xml
index a380383..747bc43 100644
index a380383..2ae2833 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -15,13 +15,13 @@
@ -6510,7 +6511,7 @@ index a380383..747bc43 100644
<color name="message_audio_button_color_incoming">#ffffffff</color>
- <color name="message_bubble_color_selected">#8BC34A</color>
- <color name="message_image_selected_tint">#80689F38</color>
+ <color name="message_bubble_color_selected">@color/lineage_accent</color>
+ <color name="message_bubble_color_selected">#3ea4dc</color>
+ <color name="message_image_selected_tint">#800288d1</color>
<color name="generic_video_icon">#ff808080</color>
@ -6524,6 +6525,19 @@ index a380383..747bc43 100644
<color name="search_view_text_cursor">#b0dddddd</color>
<color name="button_bar_action_button_text_color">#03a9f4</color>
diff --git a/res/values/lineage_colors.xml b/res/values/lineage_colors.xml
index 787d5e5..a3b1037 100644
--- a/res/values/lineage_colors.xml
+++ b/res/values/lineage_colors.xml
@@ -16,7 +16,7 @@
limitations under the License.
-->
<resources>
- <color name="lineage_accent">#FF9800</color>
+ <color name="lineage_accent">#0288D1</color>
<color name="button_text">#000000</color>
<color name="navigation_bar_bg">@android:color/white</color>
--
2.25.1

View File

@ -1,4 +1,4 @@
From 79bc0294a742981eff0905118921e035241878dc Mon Sep 17 00:00:00 2001
From e8889bf1c7c3e5f1c14ec7864a77cc1656bc6fca Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Sun, 8 Aug 2021 09:31:01 +0000
Subject: [PATCH 1/3] Revert "treble: Set BOARD_EXT4_SHARE_DUP_BLOCKS

View File

@ -1,4 +1,4 @@
From ec91b5cae6341702dc39bf6e579a4fd791af87c0 Mon Sep 17 00:00:00 2001
From 4d6a4c4839266a249f2a37194cbd1154e58464f8 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Tue, 22 Jun 2021 13:38:31 +0000
Subject: [PATCH 2/3] Add Meizu 18 vibrator support
@ -27,13 +27,13 @@ Change-Id: Iecf12cd814e8773abfd78a19f98e31125a73761a
create mode 100644 hal/meizu-vibrator/service.cpp
diff --git a/base.mk b/base.mk
index 878aaae..1755f9e 100644
index e8ac0a3..6fc7726 100644
--- a/base.mk
+++ b/base.mk
@@ -203,3 +203,6 @@ PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
# AOSP overlays
@@ -207,3 +207,6 @@ PRODUCT_PACKAGES += \
PRODUCT_PACKAGES += \
NavigationBarMode2ButtonOverlay
oplus-alert-slider
+
+PRODUCT_PACKAGES += \
+ android.hardware.vibrator@1.3-service.meizu
@ -395,13 +395,13 @@ index 0000000..1405dfb
+ joinRpcThreadpool();
+}
diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts
index 7ab5e91..2b59077 100644
index 5e39d5b..41d395d 100644
--- a/sepolicy/file_contexts
+++ b/sepolicy/file_contexts
@@ -12,6 +12,7 @@
/dev/dsm u:object_r:dmd_device:s0
@@ -13,6 +13,7 @@
/system/bin/hw/android.hardware.biometrics.fingerprint@2.1-service.oppo.compat u:object_r:hal_fingerprint_oppo_compat_exec:s0
/system/bin/hw/android.hardware.biometrics.fingerprint@2.1-service.oplus.compat u:object_r:hal_fingerprint_oppo_compat_exec:s0
+/system/bin/hw/android.hardware.vibrator@1.3-service.meizu u:object_r:hal_vibrator_default_exec:s0
/efs u:object_r:efs_file:s0

View File

@ -1,4 +1,4 @@
From 271f7db60868e2e96fbe5be09b81b943d8fbc91d Mon Sep 17 00:00:00 2001
From f4372e21a63da73345a1b9c6606f47d1c00038d3 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Sun, 27 Jun 2021 05:21:38 +0000
Subject: [PATCH 3/3] Only use meizu-vibrator on Meizu 18
@ -76,10 +76,10 @@ index 0000000..b34a10b
+<manifest version="1.0" type="framework">
+</manifest>
diff --git a/rw-system.sh b/rw-system.sh
index 38271b4..dcb007e 100644
index 65dd3eb..60baa31 100644
--- a/rw-system.sh
+++ b/rw-system.sh
@@ -314,6 +314,12 @@ if [ "$foundFingerprint" = false ];then
@@ -321,6 +321,12 @@ if [ "$foundFingerprint" = false ];then
mount -o bind system/phh/empty /system/etc/permissions/android.hardware.fingerprint.xml
fi
@ -92,7 +92,7 @@ index 38271b4..dcb007e 100644
if ! grep android.hardware.bluetooth /vendor/manifest.xml && ! grep android.hardware.bluetooth /vendor/etc/vintf/manifest.xml; then
mount -o bind system/phh/empty /system/etc/permissions/android.hardware.bluetooth.xml
mount -o bind system/phh/empty /system/etc/permissions/android.hardware.bluetooth_le.xml
@@ -385,7 +391,7 @@ if getprop ro.build.overlay.deviceid |grep -q -e CPH1859 -e CPH1861 -e RMX1811 -
@@ -392,7 +398,7 @@ if getprop ro.build.overlay.deviceid |grep -q -e CPH1859 -e CPH1861 -e RMX1811 -
setprop persist.sys.qcom-brightness "$(cat /sys/class/leds/lcd-backlight/max_brightness)"
fi
@ -101,7 +101,7 @@ index 38271b4..dcb007e 100644
setprop persist.sys.qcom-brightness 2047
setprop persist.sys.overlay.devinputjack true
setprop persist.sys.phh.fingerprint.nocleanup true
@@ -873,7 +879,7 @@ if getprop ro.build.overlay.deviceid |grep -qiE -e '^RMX' -e '^CPH';then
@@ -887,7 +893,7 @@ if getprop ro.build.overlay.deviceid |grep -qiE -e '^RMX' -e '^CPH';then
setprop persist.sys.phh.fod.bbk true
fi

View File

@ -1,4 +1,4 @@
From e3c7e720c893a6ecef90b4b950787ed820792581 Mon Sep 17 00:00:00 2001
From 0fd8513d53c1de4d9dee64cb03ce4e28ffd21070 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Thu, 12 Sep 2019 12:54:23 +0200
Subject: [PATCH 1/2] Use vndk_lite ld.config only on same-version vendor
@ -16,10 +16,10 @@ Change-Id: I55257cd7c738b1d20582e198e1d5621e1c87a03e
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/linker/linker.cpp b/linker/linker.cpp
index f24167722..a82d7c430 100644
index c87118b9f..6df9cfe23 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -3372,7 +3372,10 @@ static std::string get_ld_config_file_apex_path(const char* executable_path) {
@@ -3443,7 +3443,10 @@ 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 f24167722..a82d7c430 100644
}
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 709393961b2c65d2e9c50fdb5c2db3370811da5c Mon Sep 17 00:00:00 2001
From 4d9b1dd121a9c5444cc313914e67c738a27fec0c Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 26 Oct 2020 23:23:24 +0100
Subject: [PATCH 3/3] Ignore vndk lite when looking for ld.config
Subject: [PATCH 2/2] Ignore vndk lite when looking for ld.config
Change-Id: I6927ba11dcb8435fab1866985c177a1852488414
---
@ -9,7 +9,7 @@ Change-Id: I6927ba11dcb8435fab1866985c177a1852488414
1 file changed, 8 deletions(-)
diff --git a/linker/linker.cpp b/linker/linker.cpp
index ae2c00c21..ea504c91e 100644
index 6df9cfe23..62d39fa53 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 ae2c00c21..ea504c91e 100644
static const char* const kLdGeneratedConfigFilePath = "/linkerconfig/ld.config.txt";
@@ -3372,13 +3371,6 @@ static std::string get_ld_config_file_apex_path(const char* executable_path) {
@@ -3443,13 +3442,6 @@ static std::string get_ld_config_file_apex_path(const char* executable_path) {
}
static std::string get_ld_config_file_vndk_path() {
@ -35,5 +35,5 @@ index ae2c00c21..ea504c91e 100644
size_t insert_pos = ld_config_file_vndk.find_last_of('.');
if (insert_pos == std::string::npos) {
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From f85268cf7b0e928d741d316b59b3b31773fae7c8 Mon Sep 17 00:00:00 2001
From 6147c29ccea27751cc485572af549a5ac887ca45 Mon Sep 17 00:00:00 2001
From: Alexander Pohl <pohl199885@gmail.com>
Date: Fri, 15 Jun 2018 19:58:07 +0200
Subject: [PATCH 01/14] Fix WiFi-Display on Huawei devices (EMUI 8.0)
Subject: [PATCH 01/26] Fix WiFi-Display on Huawei devices (EMUI 8.0)
Huaweis media stack doesn't handle intra-refresh-mode, so skip the error instead.
@ -11,10 +11,10 @@ Thanks to Chris Vandomelen for pointing that out.
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp
index 63ab6548b4..e25f8f6558 100644
index 4a3b32f3ee..a86a267d48 100644
--- a/media/libstagefright/ACodec.cpp
+++ b/media/libstagefright/ACodec.cpp
@@ -4432,9 +4432,8 @@ status_t ACodec::setupAVCEncoderParameters(const sp<AMessage> &msg) {
@@ -4469,9 +4469,8 @@ status_t ACodec::setupAVCEncoderParameters(const sp<AMessage> &msg) {
if (msg->findInt32("intra-refresh-mode", &intraRefreshMode)) {
err = setCyclicIntraMacroblockRefresh(msg, intraRefreshMode);
if (err != OK) {
@ -27,5 +27,5 @@ index 63ab6548b4..e25f8f6558 100644
}
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 4ab15a33857452d990581a3d0073e35215e1c542 Mon Sep 17 00:00:00 2001
From 80edce28d0bd6ac672f3f64249910af62becd364 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 19 Aug 2018 22:59:06 +0200
Subject: [PATCH 02/14] ::Kirin:: Remove lock to prevent self-lock
Subject: [PATCH 02/26] Kirin:: Remove lock to prevent self-lock
With Huawei Camera HAL, we get the following call order:
cameraserver CameraService::enumerateProviders (*)
@ -19,10 +19,10 @@ Change-Id: I464255b5a3af8d75d72b1772ab55aa655f395a60
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
index af1e01d8e1..05252d6308 100644
index fcccd262fe..1c0c55b36d 100644
--- a/services/camera/libcameraservice/CameraService.cpp
+++ b/services/camera/libcameraservice/CameraService.cpp
@@ -301,7 +301,7 @@ status_t CameraService::getSystemCameraKind(const String8& cameraId, SystemCamer
@@ -313,7 +313,7 @@ status_t CameraService::getSystemCameraKind(const String8& cameraId, SystemCamer
}
void CameraService::updateCameraNumAndIds() {
@ -32,5 +32,5 @@ index af1e01d8e1..05252d6308 100644
// Excludes hidden secure cameras
mNumberOfCameras =
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 1083cc0b59ed11aa69af22103ebaf74ae11f272c Mon Sep 17 00:00:00 2001
From 880b5dba6d462970a0a593f6e4cb1345bcf1c38d Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 19 Aug 2018 23:05:26 +0200
Subject: [PATCH 03/14] We might not have a mFlashlight at this state, but
Subject: [PATCH 03/26] We might not have a mFlashlight at this state, but
that's ok
---
@ -9,10 +9,10 @@ Subject: [PATCH 03/14] We might not have a mFlashlight at this state, but
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
index 05252d6308..e1d23073f4 100644
index 1c0c55b36d..ae8473f397 100644
--- a/services/camera/libcameraservice/CameraService.cpp
+++ b/services/camera/libcameraservice/CameraService.cpp
@@ -337,7 +337,7 @@ void CameraService::addStates(const String8 id) {
@@ -349,7 +349,7 @@ void CameraService::addStates(const String8 id) {
conflicting, deviceKind));
}
@ -22,5 +22,5 @@ index 05252d6308..e1d23073f4 100644
mTorchStatusMap.add(id, TorchModeStatus::AVAILABLE_OFF);
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 1c0e912c7bdef868de97dc07dd5227d298cd66a9 Mon Sep 17 00:00:00 2001
From c5db38ed90be9bc617a8d1a1b44dc5897f6a1ddf Mon Sep 17 00:00:00 2001
From: Artem Borisov <dedsa2002@gmail.com>
Date: Tue, 25 Sep 2018 12:39:22 +0300
Subject: [PATCH 04/14] CameraService: Support calling addStates in
Subject: [PATCH 04/26] CameraService: Support calling addStates in
enumerateProviders
Some pre-P camera HALs trigger onDeviceStatusChange callback during HAL init.
@ -22,7 +22,7 @@ Change-Id: Ife25b9753fdb679ab0c77f385e1b8527551a4711
1 file changed, 16 insertions(+)
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
index e1d23073f4..83dea10f3a 100644
index ae8473f397..cbdcc3d002 100644
--- a/services/camera/libcameraservice/CameraService.cpp
+++ b/services/camera/libcameraservice/CameraService.cpp
@@ -221,6 +221,20 @@ status_t CameraService::enumerateProviders() {
@ -46,7 +46,7 @@ index e1d23073f4..83dea10f3a 100644
if (getCameraState(id8) == nullptr) {
onDeviceStatusChanged(id8, CameraDeviceStatus::PRESENT);
}
@@ -375,8 +389,10 @@ void CameraService::onDeviceStatusChanged(const String8& id,
@@ -387,8 +401,10 @@ void CameraService::onDeviceStatusChanged(const String8& id,
ALOGI("%s: Unknown camera ID %s, a new camera is added",
__FUNCTION__, id.string());
@ -58,5 +58,5 @@ index e1d23073f4..83dea10f3a 100644
updateStatus(newStatus, id);
} else {
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 3afbad626827104662f61ab04ba3fbe6af32f73f Mon Sep 17 00:00:00 2001
From 53099b517ca45410b1ec17925cd21acc00dcf93c 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 05/14] Fix BT in-call on CAF devices
Subject: [PATCH 05/26] Fix BT in-call on CAF devices
See https://github.com/phhusson/treble_experimentations/issues/374
@ -127,5 +127,5 @@ index 883e713326..d85dbdf113 100644
for (const xmlNode *children = cur->xmlChildrenNode; children != NULL;
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 4f7930e14f979ec5be530bd630ca9bb664050420 Mon Sep 17 00:00:00 2001
From b60f955e43cd81ee1dcca4ad31b218a015210fd3 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 06/14] Add (partial, cam id is hardcoded) support for Asus ZF6
Subject: [PATCH 06/26] Add (partial, cam id is hardcoded) support for Asus ZF6
motor camera
Change-Id: Iea6e1370780a1d16f728748d1d948d092532d8fe
@ -11,7 +11,7 @@ Change-Id: Iea6e1370780a1d16f728748d1d948d092532d8fe
2 files changed, 29 insertions(+)
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
index 83dea10f3a..37ea512bdd 100644
index cbdcc3d002..ca66bef6b9 100644
--- a/services/camera/libcameraservice/CameraService.cpp
+++ b/services/camera/libcameraservice/CameraService.cpp
@@ -25,6 +25,7 @@
@ -30,7 +30,7 @@ index 83dea10f3a..37ea512bdd 100644
mEventLog(DEFAULT_EVENT_LOG_LENGTH),
mNumberOfCameras(0),
mNumberOfCamerasWithoutSystemCamera(0),
@@ -1785,6 +1787,7 @@ Status CameraService::connectHelper(const sp<CALLBACK>& cameraCb, const String8&
@@ -1804,6 +1806,7 @@ Status CameraService::connectHelper(const sp<CALLBACK>& cameraCb, const String8&
mServiceLock.lock();
} else {
// Otherwise, add client to active clients list
@ -38,7 +38,7 @@ index 83dea10f3a..37ea512bdd 100644
finishConnectLocked(client, partial);
}
} // lock is destroyed, allow further connect calls
@@ -1866,6 +1869,27 @@ status_t CameraService::addOfflineClient(String8 cameraId, sp<BasicClient> offli
@@ -1885,6 +1888,27 @@ status_t CameraService::addOfflineClient(String8 cameraId, sp<BasicClient> offli
return OK;
}
@ -66,7 +66,7 @@ index 83dea10f3a..37ea512bdd 100644
Status CameraService::setTorchMode(const String16& cameraId, bool enabled,
const sp<IBinder>& clientBinder) {
Mutex::Autolock lock(mServiceLock);
@@ -2840,6 +2864,8 @@ binder::Status CameraService::BasicClient::disconnect() {
@@ -2873,6 +2897,8 @@ binder::Status CameraService::BasicClient::disconnect() {
}
mDisconnected = true;
@ -76,10 +76,10 @@ index 83dea10f3a..37ea512bdd 100644
sCameraService->logDisconnected(mCameraIdStr, mClientPid, String8(mClientPackageName));
sCameraService->mCameraProviderManager->removeRef(CameraProviderManager::DeviceMode::CAMERA,
diff --git a/services/camera/libcameraservice/CameraService.h b/services/camera/libcameraservice/CameraService.h
index 4321201100..85b1706996 100644
index 685ed5ee1d..8ea8113401 100644
--- a/services/camera/libcameraservice/CameraService.h
+++ b/services/camera/libcameraservice/CameraService.h
@@ -202,6 +202,9 @@ public:
@@ -203,6 +203,9 @@ public:
// Register an offline client for a given active camera id
status_t addOfflineClient(String8 cameraId, sp<BasicClient> offlineClient);
@ -90,5 +90,5 @@ index 4321201100..85b1706996 100644
// Client functionality
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 93d21e226a4cac72ebc73f8fcec3001160d8570f Mon Sep 17 00:00:00 2001
From a2885cac60af1248c24f520975aca1911c847bec Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net>
Date: Thu, 23 Jan 2020 11:13:43 +0800
Subject: [PATCH 07/14] audiopolicy: try again with trimmed audio port name if
Subject: [PATCH 07/26] audiopolicy: try again with trimmed audio port name if
not found
* In Spreadtrum BSP, some audio routes may contain ports with extra
@ -55,5 +55,5 @@ index d85dbdf113..e25dda07c7 100644
sources.add(source);
}
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 2c80a9c1453230a62f538fc128f286005d91b802 Mon Sep 17 00:00:00 2001
From ef2e8b09124da26d25f0f91b55f22edebc3cd2ec 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/14] There are three SCO devices. Fallback from one to the
Subject: [PATCH 08/26] There are three SCO devices. Fallback from one to the
others if needed
Change-Id: I414dcb6b154855c00cb8520b23dc1069827864b2
@ -42,5 +42,5 @@ index d31e4437e1..b2ca5e85de 100644
}
--
2.17.1
2.25.1

View File

@ -1,8 +1,8 @@
From ab92e063952b11ee1090cbf9c0ba0935325a54af Mon Sep 17 00:00:00 2001
From 139678208872579470419be602f9344efbeba153 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] Add persist.sys.phh.samsung.camera_ids property to access
hidden Samsung cameras
Subject: [PATCH 09/26] Add persist.sys.phh.samsung.camera_ids property to
access hidden Samsung cameras
Change-Id: I2c7bf535272acc28ed2277e96c78ddd28a0b4593
---
@ -11,10 +11,10 @@ Change-Id: I2c7bf535272acc28ed2277e96c78ddd28a0b4593
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/services/camera/libcameraservice/Android.bp b/services/camera/libcameraservice/Android.bp
index 53fc1be7eb..99ca362bf3 100644
index 92e9817e16..994391eecb 100644
--- a/services/camera/libcameraservice/Android.bp
+++ b/services/camera/libcameraservice/Android.bp
@@ -131,7 +131,8 @@ cc_library_shared {
@@ -132,7 +132,8 @@ cc_library_shared {
"android.hardware.camera.device@3.3",
"android.hardware.camera.device@3.4",
"android.hardware.camera.device@3.5",

View File

@ -1,7 +1,7 @@
From 6dff7fa42818b525faa0a80d161ad54055ebc38e Mon Sep 17 00:00:00 2001
From 078667f06c281154048bf6f5dfdc05ee1fe60843 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 11/14] Add a property to force camera timestamp source
Subject: [PATCH 10/26] Add a property to force camera timestamp source
Some devices wrongly report their timesource
Camera's timesource can either be CLOCK_MONOTONIC, or CLOCK_BOOTTIME
@ -18,7 +18,7 @@ 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 4a509aa745..cdf9fc783e 100644
index fc3a5b4901..3db7bc6b22 100644
--- a/services/camera/libcameraservice/device3/Camera3Device.cpp
+++ b/services/camera/libcameraservice/device3/Camera3Device.cpp
@@ -316,8 +316,16 @@ status_t Camera3Device::initializeCommonLocked() {
@ -41,5 +41,5 @@ index 4a509aa745..cdf9fc783e 100644
}
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 7f14fcbf4bcf6d8f8c4b89f6ac4b91bc4961ed6f Mon Sep 17 00:00:00 2001
From 9dc2ceeb7e2e4e429f373be2c0462ba2c2c1001f 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 12/14] FIH devices: Fix "Earpiece" audio output
Subject: [PATCH 11/26] FIH devices: Fix "Earpiece" audio output
On some FIH devices (confirmed on Razer, and probably on Aquos SS2),
Earpiece is not listed in attachedDevices, and devicePort's profile
@ -75,5 +75,5 @@ index e25dda07c7..a8eb142c81 100644
}
--
2.17.1
2.25.1

View File

@ -1,9 +1,9 @@
From 4b6dc11462996df5987ac339bf2fb750f500a067 Mon Sep 17 00:00:00 2001
From fc3dfc814de0310bbc7f41b5658c255df02e8a0a 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 13/14] [audiopolicy] No longer make re-assigning legacy audio
groups fatal. Mi9 declares AUDIO_STREAM_PATCH and AUDIO_STREAM_REROUTING
which is defined by framework too
Subject: [PATCH 12/26] No longer make re-assigning legacy audio groups fatal.
Mi9 declares AUDIO_STREAM_PATCH and AUDIO_STREAM_REROUTING which is defined
by framework too
Change-Id: I794fe22d63a8af705be4f5f09b9879ecaab3eae5
---
@ -28,5 +28,5 @@ index 1bc7fe3dcc..fe18d0d794 100644
}
addSupportedAttributesToGroup(group, volumeGroup, strategy);
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From d24b9bfa7113578d6a9e7a98a01e0ef6dfb970ea Mon Sep 17 00:00:00 2001
From 5d00177e7416d5a65c0d024978e954e57c91cd8b Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 25 May 2020 21:26:54 +0200
Subject: [PATCH 14/14] Add persist.sys.phh.disable_a2dp_offload property to
Subject: [PATCH 13/26] Add persist.sys.phh.disable_a2dp_offload property to
force a2dp offload
Change-Id: Id474540c33c594cc4010a1a398d82bff8aadaeea
@ -13,10 +13,10 @@ Change-Id: Id474540c33c594cc4010a1a398d82bff8aadaeea
4 files changed, 199 insertions(+), 7 deletions(-)
diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp
index e25f8f6558..7ff3c8f61b 100644
index a86a267d48..fdba45d8fd 100644
--- a/media/libstagefright/ACodec.cpp
+++ b/media/libstagefright/ACodec.cpp
@@ -1166,6 +1166,9 @@ status_t ACodec::configureOutputBuffersFromNativeWindow(
@@ -1176,6 +1176,9 @@ status_t ACodec::configureOutputBuffersFromNativeWindow(
return err;
}
@ -26,7 +26,7 @@ index e25f8f6558..7ff3c8f61b 100644
// FIXME: assume that surface is controlled by app (native window
// returns the number for the case when surface is not controlled by app)
// FIXME2: This means that minUndeqeueudBufs can be 1 larger than reported
@@ -1178,22 +1181,29 @@ status_t ACodec::configureOutputBuffersFromNativeWindow(
@@ -1188,22 +1191,29 @@ status_t ACodec::configureOutputBuffersFromNativeWindow(
// 2. try to allocate two (2) additional buffers to reduce starvation from
// the consumer
// plus an extra buffer to account for incorrect minUndequeuedBufs
@ -303,7 +303,7 @@ index a8eb142c81..73e4a3e096 100644
}
diff --git a/services/audiopolicy/enginedefault/src/Engine.cpp b/services/audiopolicy/enginedefault/src/Engine.cpp
index b14d2bbb0b..16a7a4bbac 100755
index 37f1a9815f..fbfd60cf75 100755
--- a/services/audiopolicy/enginedefault/src/Engine.cpp
+++ b/services/audiopolicy/enginedefault/src/Engine.cpp
@@ -52,7 +52,7 @@ static const std::vector<legacy_strategy_map>& getLegacyStrategy() {
@ -316,7 +316,7 @@ index b14d2bbb0b..16a7a4bbac 100755
{ "STRATEGY_CALL_ASSISTANT", STRATEGY_CALL_ASSISTANT },
};
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
index c5c13e9a5a..1c5ed86b86 100644
index a592dea65c..63dcd538b1 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -93,6 +93,8 @@ bool operator!= (const SortedVector<T> &left, const SortedVector<T> &right)
@ -328,7 +328,7 @@ index c5c13e9a5a..1c5ed86b86 100644
// ----------------------------------------------------------------------------
// AudioPolicyInterface implementation
// ----------------------------------------------------------------------------
@@ -4458,6 +4460,7 @@ static status_t deserializeAudioPolicyXmlConfig(AudioPolicyConfig &config) {
@@ -4462,6 +4464,7 @@ static status_t deserializeAudioPolicyXmlConfig(AudioPolicyConfig &config) {
} else if (property_get_bool("persist.bluetooth.bluetooth_audio_hal.disabled", false)) {
fileNames.push_back(AUDIO_POLICY_BLUETOOTH_LEGACY_HAL_XML_CONFIG_FILE_NAME);
}
@ -337,5 +337,5 @@ index c5c13e9a5a..1c5ed86b86 100644
for (const char* fileName : fileNames) {
--
2.17.1
2.25.1

View File

@ -1,14 +1,14 @@
From 3c374cb65bd0e28c73fbd452e8201487dd1acb94 Mon Sep 17 00:00:00 2001
From 7e05a92d0ba0fdcbd4bc4ab674a79a0178e31ea1 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 3 Dec 2019 14:04:17 +0100
Subject: [PATCH 15/15] Fix for some Huawei camera
Subject: [PATCH 14/26] Fix for some Huawei camera
---
services/camera/libcameraservice/CameraService.cpp | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
index 5d062a5fb3..97e9825c51 100644
index ca66bef6b9..ea8862dce9 100644
--- a/services/camera/libcameraservice/CameraService.cpp
+++ b/services/camera/libcameraservice/CameraService.cpp
@@ -16,7 +16,7 @@

View File

@ -1,7 +1,7 @@
From 6a6c54584fae07783b493a56afd047984f589ed0 Mon Sep 17 00:00:00 2001
From b916cfd97a909be09e387927f1a68b1eea1f6906 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 16/16] Make camera IDs filter-out optional
Subject: [PATCH 15/26] Make camera IDs filter-out optional
Nowadays most people have Camera 2 apps, and would like to have all
cameras, rather than limit which cameras are available.

View File

@ -1,7 +1,7 @@
From a141c7102252377bc882b982b36980edb60f931e Mon Sep 17 00:00:00 2001
From aa4105767f6d138a777c34d4cf35ffbd21db63ec Mon Sep 17 00:00:00 2001
From: Wonsik Kim <wonsik@google.com>
Date: Tue, 5 Jan 2021 18:58:15 -0800
Subject: [PATCH 19/30] CCodec: store flushed config as work items
Subject: [PATCH 16/26] CCodec: store flushed config as work items
Store flushed config as work items and queue them to the component
directly, instead of going through MediaCodecBuffer.

View File

@ -1,7 +1,7 @@
From bfa866666f0fb3e95755e5fb5d22a89c1fdd6767 Mon Sep 17 00:00:00 2001
From 64daa21a802f564a47118c34898f055499e4f8fa Mon Sep 17 00:00:00 2001
From: David Stevens <stevensd@google.com>
Date: Tue, 20 Oct 2020 15:00:41 +0900
Subject: [PATCH 20/30] BufferPool: limit number of idle buffers in caches
Subject: [PATCH 17/26] BufferPool: limit number of idle buffers in caches
Some systems have limits on the total number of graphics buffers that
can be allocated, not just the total size. When dealing with

View File

@ -1,7 +1,7 @@
From ecab6fe48819adeafaceec1a33e7e1d380caec75 Mon Sep 17 00:00:00 2001
From 20ddcc2e04ef3bde507140be5da4f86f9dc0ba20 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 33/38] Support Samsung R multi-cams
Subject: [PATCH 18/26] Support Samsung R multi-cams
---
services/camera/libcameraservice/Android.bp | 1 +
@ -9,10 +9,10 @@ Subject: [PATCH 33/38] Support Samsung R multi-cams
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/services/camera/libcameraservice/Android.bp b/services/camera/libcameraservice/Android.bp
index be275e9346..bede98bfdc 100644
index 994391eecb..aa15e14d1e 100644
--- a/services/camera/libcameraservice/Android.bp
+++ b/services/camera/libcameraservice/Android.bp
@@ -129,6 +129,7 @@ cc_library_shared {
@@ -134,6 +134,7 @@ cc_library_shared {
"android.hardware.camera.device@3.5",
"android.hardware.camera.device@3.6",
"vendor.samsung.hardware.camera.provider@3.0",

View File

@ -1,7 +1,7 @@
From 347755b3b0d26b557ac0775433ccdbabe23ac6ed Mon Sep 17 00:00:00 2001
From 5dc5c6290ff4daf792153118dab8106a3d757587 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 34/38] [audiopolicy] Don't crash on unknown audio devices
Subject: [PATCH 19/26] Don't crash on unknown audio devices
---
.../common/managerdefinitions/src/Serializer.cpp | 7 ++++++-

View File

@ -1,7 +1,7 @@
From 0b8723c62a0d5b63f8afd46fddc3c38123b49d04 Mon Sep 17 00:00:00 2001
From 383d6a204d405f91f9df919386b3c582de63dc21 Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net>
Date: Sun, 28 Mar 2021 16:17:36 +0800
Subject: [PATCH 35/38] AudioPolicyManager: retry with SW bridge if hardware
Subject: [PATCH 20/26] AudioPolicyManager: retry with SW bridge if hardware
audio patch fails
* On two of my MT6771 Q vendor devices, in-call audio is broken due to
@ -75,10 +75,10 @@ index 63dcd538b1..6d2c38811e 100644
} else {
return BAD_VALUE;
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.h b/services/audiopolicy/managerdefault/AudioPolicyManager.h
index b588f898d4..60cbd7175e 100644
index b2a670e6a4..c05f8a51d5 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.h
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.h
@@ -910,12 +910,14 @@ private:
@@ -910,12 +910,14 @@ protected:
* @param[in] delayMs if required
* @param[in] sourceDesc [optional] in case of external source, source client to be
* configured by the patch, i.e. assigning an Output (HW or SW)

View File

@ -1,7 +1,7 @@
From c8a6af6fd0f3134b96fc291910cfc0380bc0dc31 Mon Sep 17 00:00:00 2001
From 42da083007be60cb02c72c74a71f20d5fe159839 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 28 Mar 2021 14:47:52 +0200
Subject: [PATCH 36/38] Reenable STRATEGY_ROUTING. This is a leftover of tries
Subject: [PATCH 21/26] Reenable STRATEGY_ROUTING. This is a leftover of tries
of 587b198, wrongly commited in 20f869
---
@ -9,7 +9,7 @@ Subject: [PATCH 36/38] Reenable STRATEGY_ROUTING. This is a leftover of tries
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/services/audiopolicy/enginedefault/src/Engine.cpp b/services/audiopolicy/enginedefault/src/Engine.cpp
index 16a7a4bbac..b14d2bbb0b 100755
index fbfd60cf75..37f1a9815f 100755
--- a/services/audiopolicy/enginedefault/src/Engine.cpp
+++ b/services/audiopolicy/enginedefault/src/Engine.cpp
@@ -52,7 +52,7 @@ static const std::vector<legacy_strategy_map>& getLegacyStrategy() {

View File

@ -1,7 +1,7 @@
From c3bd3dc63c34de7c688b24999769f7eb504784a3 Mon Sep 17 00:00:00 2001
From 293af5eccdd01586455f47387121a1176d807f5d 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 37/38] Use a fake volume policy when none has been found
Subject: [PATCH 22/26] 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 23f277e7a6afee9d256582204099c4c645606b98 Mon Sep 17 00:00:00 2001
From 47130e6b9ac45b6e5de14f63cbc3d65d01614011 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 38/38] Not all sources in a route are valid. Dont ignore the
Subject: [PATCH 23/26] Not all sources in a route are valid. Dont ignore the
whole route because of one broken source
---

View File

@ -1,7 +1,7 @@
From 2fd4810ec5e6a453e980cacba2e1bcdd30b3f967 Mon Sep 17 00:00:00 2001
From 55ec222972110aa5c1f20f1c383ba8b886487dff Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net>
Date: Wed, 14 Apr 2021 10:20:22 +0800
Subject: [PATCH 39/40] Revert "AudioPolicyManager: retry with SW bridge if
Subject: [PATCH 24/26] Revert "AudioPolicyManager: retry with SW bridge if
hardware audio patch fails"
This reverts commit 5d869232d42a2fee6b7cb07b6a240aef5838021b.
@ -49,10 +49,10 @@ index 6d2c38811e..63dcd538b1 100644
} else {
return BAD_VALUE;
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.h b/services/audiopolicy/managerdefault/AudioPolicyManager.h
index 60cbd7175e..b588f898d4 100644
index c05f8a51d5..b2a670e6a4 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.h
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.h
@@ -910,14 +910,12 @@ private:
@@ -910,14 +910,12 @@ protected:
* @param[in] delayMs if required
* @param[in] sourceDesc [optional] in case of external source, source client to be
* configured by the patch, i.e. assigning an Output (HW or SW)

View File

@ -1,7 +1,7 @@
From 7bb3de067cec0c8c3bd5341bf9ad42b808fefd39 Mon Sep 17 00:00:00 2001
From f1fffcbcfed01f65e190f36b7871852c8d3deb20 Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net>
Date: Wed, 14 Apr 2021 11:09:12 +0800
Subject: [PATCH 40/40] APM: Fall back to legacy voice call routing if creating
Subject: [PATCH 25/26] APM: Fall back to legacy voice call routing if creating
audio patch failed
* On some MT6771 Q vendor devices, in-call audio is broken due to APM

View File

@ -1,7 +1,7 @@
From 9baa78c7bd75638e1b9ebd4377596e997275927d Mon Sep 17 00:00:00 2001
From 65ca140c685c2bc4d95206a7616282d868eabbd6 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sat, 7 Aug 2021 11:11:39 +0200
Subject: [PATCH 40/40] When aux cameras are enabled, ignore "system only"
Subject: [PATCH 26/26] When aux cameras are enabled, ignore "system only"
camera flag (it shouldnt be q security issue since secure cameras are listed
otherwise)

View File

@ -1,7 +1,7 @@
From 494741f30b1c6a1ce223e6331d6ade70e9bc0b52 Mon Sep 17 00:00:00 2001
From ba3e4a959adb7b59885d83736d86b0e531a81da6 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] Relax requirement for visible flag to sdcards
Subject: [PATCH 01/41] 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)
@ -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 498c52a5aa6..dd7f4560000 100644
index db8656ea3d5..b0ceaee8977 100644
--- a/services/core/java/com/android/server/StorageManagerService.java
+++ b/services/core/java/com/android/server/StorageManagerService.java
@@ -1525,7 +1525,8 @@ class StorageManagerService extends IStorageManager.Stub
@@ -1534,7 +1534,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,7 +1,7 @@
From db0376e279f7aa4744934376157b844f51d334ce Mon Sep 17 00:00:00 2001
From 13a6922acefdbff1b631be22811cb21900a60bb5 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] backlight: Fix backlight control on Galaxy S9(+)
Subject: [PATCH 02/41] backlight: Fix backlight control on Galaxy S9(+)
Change-Id: I1fbbb47939c377597ef8ad6b88b2acea5f4acaa6

View File

@ -1,7 +1,7 @@
From b236ed36a97c09a15fa18d3387ff20dadd5be965 Mon Sep 17 00:00:00 2001
From b5dcca82cf5b77f83635afd1561f922f4126d006 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 1 May 2018 17:47:36 +0200
Subject: [PATCH 03/25] Also scan /system/overlay
Subject: [PATCH 03/41] Also scan /system/overlay
Change-Id: Ib0223560606b80cdaaa986b159b34b4db0154589
---
@ -25,10 +25,10 @@ index 12abc256a20..3133f2f3023 100644
LOG(WARNING) << "no directories for idmap2 to scan";
return env->NewObjectArray(0, g_stringClass, nullptr);
diff --git a/core/jni/fd_utils.cpp b/core/jni/fd_utils.cpp
index c72668f84fb..d4307ae6579 100644
index 49d75dc35e6..d5f2317d7c0 100644
--- a/core/jni/fd_utils.cpp
+++ b/core/jni/fd_utils.cpp
@@ -135,7 +135,8 @@ bool FileDescriptorWhitelist::IsAllowed(const std::string& path) const {
@@ -136,7 +136,8 @@ bool FileDescriptorWhitelist::IsAllowed(const std::string& path) const {
|| android::base::StartsWith(path, kSystemOdmOverlayDir)
|| android::base::StartsWith(path, kOdmOverlayDir)
|| android::base::StartsWith(path, kSystemOemOverlayDir)
@ -39,5 +39,5 @@ index c72668f84fb..d4307ae6579 100644
&& path.find("/../") == std::string::npos) {
return true;
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 2436b6da10c438a3b71ca3a2a5aa9705e7c00813 Mon Sep 17 00:00:00 2001
From 5a860b80300eaf21d4bc370350f751ea318cb816 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/25] Don't crash if there is IR HAL is not declared
Subject: [PATCH 04/41] Don't crash if there is IR HAL is not declared
---
services/core/java/com/android/server/ConsumerIrService.java | 2 --
@ -21,5 +21,5 @@ index 2ed6c77baa0..c574a03c9a3 100644
}
--
2.17.1
2.25.1

View File

@ -1,17 +1,17 @@
From 25b2ec68fe9ce8a2e3b35fc91ff47ae65ba95be4 Mon Sep 17 00:00:00 2001
From 92b7d4527507f738f5baa3406d6cc20efe585907 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 30 May 2018 14:05:30 +0200
Subject: [PATCH 05/25] Fix(?) #62
Subject: [PATCH 05/41] Fix(?) #62
---
.../src/com/android/keyguard/KeyguardUpdateMonitor.java | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
index 3acbfb87c3f..358053343f2 100644
index 8e5f128143d..c0c5c1c0c6d 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -1270,7 +1270,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
@@ -1282,7 +1282,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
@Override
public void onAuthenticationError(int errMsgId, CharSequence errString) {
@ -24,5 +24,5 @@ index 3acbfb87c3f..358053343f2 100644
@Override
--
2.17.1
2.25.1

View File

@ -1,8 +1,8 @@
From f3d0a467c4c1f9df19c3c4819b4c6cb4b26fe2a3 Mon Sep 17 00:00:00 2001
From 59cf97b58783f0fe6b2180d69a7ee955519f4fb4 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Fri, 11 Sep 2020 23:42:37 +0200
Subject: [PATCH] property-matching RROs: allow to prefix the value with + to
do glob match instead of exact match
Subject: [PATCH 06/41] property-matching RROs: allow to prefix the value with
+ to do glob match instead of exact match
Change-Id: I1f5b7c907523eb6e48d41f5163984564d3db9506
---

View File

@ -1,8 +1,8 @@
From 649f6bd7789acae16c1e3fa8c57919bd4ae0d1e3 Mon Sep 17 00:00:00 2001
From 1d4e89caf6261b0f85ebc033112f232c3593b470 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 2 Jul 2018 23:36:39 +0200
Subject: [PATCH 07/25] [Galaxy S9] "remaining" of HAL onEnroll is actually a
percent of progress
Subject: [PATCH 07/41] "remaining" of HAL onEnroll is actually a percent of
progress
Change-Id: I8a586163eca93ae3c5bd968d1e7ddbf994ddcc91
---
@ -10,10 +10,10 @@ Change-Id: I8a586163eca93ae3c5bd968d1e7ddbf994ddcc91
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
index 6b7ba6a56d8..c247731be13 100644
index a90fee6788a..7ab2a44bcc0 100644
--- a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
@@ -588,7 +588,13 @@ public class FingerprintService extends BiometricServiceBase {
@@ -661,7 +661,13 @@ public class FingerprintService extends BiometricServiceBase {
final Fingerprint fingerprint =
new Fingerprint(getBiometricUtils().getUniqueName(getContext(), groupId),
groupId, fingerId, deviceId);
@ -29,5 +29,5 @@ index 6b7ba6a56d8..c247731be13 100644
}
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From ee9dcfb6a267f05f6affb47b4bdc1e908c01ec84 Mon Sep 17 00:00:00 2001
From 92a1a350b06a4f847e318076ea013cde579a6ce5 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] Show APN Settings for CDMA carriers
Subject: [PATCH 08/41] Show APN Settings for CDMA carriers
---
telephony/java/android/telephony/CarrierConfigManager.java | 2 +-

View File

@ -1,7 +1,7 @@
From 44809d8cda54d0fcfaa76c81f858ac26c0c08cbe Mon Sep 17 00:00:00 2001
From 8d86373cd08189aa68f9a40ce0d7bed34b666c5a Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 21 Aug 2018 22:24:02 +0200
Subject: [PATCH] Don't wait IR HAL to the infinity and beyond
Subject: [PATCH 09/41] Don't wait IR HAL to the infinity and beyond
Change-Id: I3afded27441bbee8244d5fda544b3e6d1238dc1b
---

View File

@ -1,7 +1,7 @@
From 6befde035c29a499fd4320753909c98a2c239410 Mon Sep 17 00:00:00 2001
From b05a49890f39eb9749cbde9ba7624ca8076dc339 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 10/25] Re-order services so that it works even without qtaguid
Subject: [PATCH 10/41] Re-order services so that it works even without qtaguid
Change-Id: I0c0f527b3ae151d45c68f7ac6c205da3f34e74df
---
@ -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 d6557f6410e..e65edcdc12c 100644
index eeccb73da3a..2b603feb1e0 100644
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
@@ -731,6 +731,10 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
@@ -748,6 +748,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 d6557f6410e..e65edcdc12c 100644
// Boost thread's priority during system server init
Process.setThreadPriority(Process.THREAD_PRIORITY_FOREGROUND);
if (!isBandwidthControlEnabled()) {
@@ -738,10 +742,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
@@ -755,10 +759,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
return;
}
@ -35,5 +35,5 @@ index d6557f6410e..e65edcdc12c 100644
synchronized (mNetworkPoliciesSecondLock) {
updatePowerSaveWhitelistUL();
--
2.17.1
2.25.1

View File

@ -1,8 +1,8 @@
From bff763fb4b54c97fbb3535ea68a093acf81969bc Mon Sep 17 00:00:00 2001
From 3a6869d07b2d6d273f1f22e1e3744cfc28dccd77 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] Support new samsung Pie and Q light hal and Samsung Power
HALs
Subject: [PATCH 11/41] Support new samsung Pie and Q light hal and Samsung
Power HALs
Change-Id: I37dc7af3fbc6f9bfa2a4822d4dfba817e803945e
---

View File

@ -1,7 +1,7 @@
From ea68a77524fc2cbfa571d7afa01442460b3ea284 Mon Sep 17 00:00:00 2001
From 94adb798b2f9c994b24e09ad0e07f8d090441590 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 2 Jul 2019 21:19:29 +0200
Subject: [PATCH 12/25] Make Samsung fingerprint broken HAL overridable
Subject: [PATCH 12/41] Make Samsung fingerprint broken HAL overridable
Change-Id: I8be38daa7c80fdb61e9209f12215e6daea171d03
---
@ -9,10 +9,10 @@ Change-Id: I8be38daa7c80fdb61e9209f12215e6daea171d03
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
index c247731be13..5552086c17f 100644
index 7ab2a44bcc0..def1a873590 100644
--- a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
@@ -590,8 +590,10 @@ public class FingerprintService extends BiometricServiceBase {
@@ -663,8 +663,10 @@ public class FingerprintService extends BiometricServiceBase {
groupId, fingerId, deviceId);
int remaining2 = remaining;
@ -25,5 +25,5 @@ index c247731be13..5552086c17f 100644
FingerprintService.super.handleEnrollResult(fingerprint, remaining2);
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From e9848dbafb20526eed8e5d8dfbd2df01b240cab8 Mon Sep 17 00:00:00 2001
From 1e0500b2933a1323216139a606aa53469f663bc6 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 11 Aug 2019 10:30:37 +0200
Subject: [PATCH 13/25] Add property to use linear brightness slider
Subject: [PATCH 13/41] Add property to use linear brightness slider
Change-Id: I1af7eb923779fa60c7a735904ba8fc82d0622c1d
---
@ -34,5 +34,5 @@ index 4f86afaa995..f1fe73a6a1d 100644
final float normalizedVal = MathUtils.norm(min, max, val) * 12;
final float ret;
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 33ba0d099de0181f34b3795ad5b2ee25d8c252a4 Mon Sep 17 00:00:00 2001
From 1034f1287025b834b7fb264ff720cfc06926efcc 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 14/25] Add support for samsung touch proximity sensor as
Subject: [PATCH 14/41] Add support for samsung touch proximity sensor as
fallback to real proximity sensor
---
@ -9,10 +9,10 @@ Subject: [PATCH 14/25] Add support for samsung touch proximity sensor as
1 file changed, 14 insertions(+)
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
index 9411c562945..774e5a38777 100644
index f77f0e302aa..4b8d65d00c3 100644
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -527,6 +527,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
@@ -545,6 +545,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
if (!DEBUG_PRETEND_PROXIMITY_SENSOR_ABSENT) {
mProximitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
@ -26,7 +26,7 @@ index 9411c562945..774e5a38777 100644
if (mProximitySensor != null) {
mProximityThreshold = Math.min(mProximitySensor.getMaximumRange(),
TYPICAL_PROXIMITY_THRESHOLD);
@@ -1970,6 +1977,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
@@ -2074,6 +2081,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
public void onSensorChanged(SensorEvent event) {
if (mProximitySensorEnabled) {
final long time = SystemClock.uptimeMillis();
@ -41,5 +41,5 @@ index 9411c562945..774e5a38777 100644
boolean positive = distance >= 0.0f && distance < mProximityThreshold;
handleProximitySensorEvent(time, positive);
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 298c7cd14541920c09b4bbcfb3255ec1ddcaad67 Mon Sep 17 00:00:00 2001
From c3f762b056afb9a12898b28c717e89bd126ac4fe Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 14 Aug 2019 23:36:45 +0200
Subject: [PATCH 15/25] Also add com.samsung.sensor.physical_proximity (if
Subject: [PATCH 15/41] Also add com.samsung.sensor.physical_proximity (if
available, it is more a true proximity sensor than touch proximity sensor)
---
@ -9,10 +9,10 @@ Subject: [PATCH 15/25] Also add com.samsung.sensor.physical_proximity (if
1 file changed, 7 insertions(+)
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
index 774e5a38777..4c12ebbd94f 100644
index 4b8d65d00c3..7a50ef4346c 100644
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -527,6 +527,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
@@ -545,6 +545,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
if (!DEBUG_PRETEND_PROXIMITY_SENSOR_ABSENT) {
mProximitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
@ -27,5 +27,5 @@ index 774e5a38777..4c12ebbd94f 100644
List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);
for(Sensor sensor: sensors) {
--
2.17.1
2.25.1

View File

@ -1,8 +1,8 @@
From d2cdf9ba6dc99f28c94e093078c1307dd4414a56 Mon Sep 17 00:00:00 2001
From acd804ea45ec0a9b40870e8238543836a4a7e813 Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net>
Date: Thu, 2 Jan 2020 10:16:49 +0800
Subject: [PATCH] fix crashing on devices with higher aspect ratio down to
sw288dp
Subject: [PATCH 16/41] fix crashing on devices with higher aspect ratio down
to sw288dp
* This is what the Qin 2 (Pro) is.

View File

@ -1,7 +1,7 @@
From 76cbbb0d09a80eaad75c64281d635e58976bd5be Mon Sep 17 00:00:00 2001
From 0e2924e35111803bfd95d2825cd9d09adb564ef6 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 1 Mar 2020 18:14:40 +0100
Subject: [PATCH 17/25] Remove orientation 4 from sensor earlier in the process
Subject: [PATCH 17/41] Remove orientation 4 from sensor earlier in the process
chain
Change-Id: Id8e2e860a73d417fc70db6cf5fc5fa5ef187aa50
@ -10,10 +10,10 @@ Change-Id: Id8e2e860a73d417fc70db6cf5fc5fa5ef187aa50
1 file changed, 3 insertions(+)
diff --git a/services/core/java/com/android/server/policy/WindowOrientationListener.java b/services/core/java/com/android/server/policy/WindowOrientationListener.java
index 0157706866c..732417b88f4 100644
index 34867adec91..f3899dc9654 100644
--- a/services/core/java/com/android/server/policy/WindowOrientationListener.java
+++ b/services/core/java/com/android/server/policy/WindowOrientationListener.java
@@ -1055,6 +1055,9 @@ public abstract class WindowOrientationListener {
@@ -1060,6 +1060,9 @@ public abstract class WindowOrientationListener {
synchronized (mLock) {
mDesiredRotation = reportedRotation;
@ -24,5 +24,5 @@ index 0157706866c..732417b88f4 100644
}
if (newRotation >=0) {
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 0dc5a490d8aac60ce2ed3efafc9f6bcb6ced71f4 Mon Sep 17 00:00:00 2001
From f6f9505fb1462e8095dee8c74418593f0215fbe4 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 10 Mar 2020 23:30:17 +0100
Subject: [PATCH 18/25] Allow disabling of fingerprint cleanups, needed on some
Subject: [PATCH 18/41] Allow disabling of fingerprint cleanups, needed on some
Realme devices that cant enumerate
Change-Id: I8a486e707712b81711fb1a691faec029499fa897
@ -10,10 +10,10 @@ Change-Id: I8a486e707712b81711fb1a691faec029499fa897
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
index 75452ea5fb6..fd77ada1109 100644
index 70369732fea..aa50e18071b 100644
--- a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
+++ b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
@@ -344,6 +344,7 @@ public abstract class BiometricServiceBase extends SystemService
@@ -347,6 +347,7 @@ public abstract class BiometricServiceBase extends SystemService
private List<? extends BiometricAuthenticator.Identifier> mEnrolledList;
// List of templates to remove from the HAL
private List<BiometricAuthenticator.Identifier> mUnknownHALTemplates = new ArrayList<>();
@ -21,7 +21,7 @@ index 75452ea5fb6..fd77ada1109 100644
InternalEnumerateClient(Context context,
DaemonWrapper daemon, long halDeviceId, IBinder token,
@@ -389,8 +390,10 @@ public abstract class BiometricServiceBase extends SystemService
@@ -392,8 +393,10 @@ public abstract class BiometricServiceBase extends SystemService
Slog.e(getTag(), "doTemplateCleanup(): Removing dangling template from framework: "
+ identifier.getBiometricId() + " "
+ identifier.getName());
@ -35,5 +35,5 @@ index 75452ea5fb6..fd77ada1109 100644
statsModality(),
BiometricsProtoEnums.ISSUE_UNKNOWN_TEMPLATE_ENROLLED_FRAMEWORK);
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From dc92080dc096ff77e5d751026d24decc1e424ca9 Mon Sep 17 00:00:00 2001
From cb7cc744be862936a84c2c0d51294896abc8c518 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 20/25] Always allow overriding the number of work profiles
Subject: [PATCH 19/41] Always allow overriding the number of work profiles
Change-Id: I6eb09aa71663c6fbe7563e3038bffcabdba0ff6a
---
@ -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 27924a68ff4..4d687679f59 100644
index a768e8e0291..6b8eaf1657d 100644
--- a/services/core/java/com/android/server/pm/UserManagerService.java
+++ b/services/core/java/com/android/server/pm/UserManagerService.java
@@ -5282,12 +5282,8 @@ public class UserManagerService extends IUserManager.Stub {
@@ -5353,12 +5353,8 @@ public class UserManagerService extends IUserManager.Stub {
*/
private static int getMaxUsersOfTypePerParent(UserTypeDetails userTypeDetails) {
final int defaultMax = userTypeDetails.getMaxAllowedPerParent();
@ -28,5 +28,5 @@ index 27924a68ff4..4d687679f59 100644
return defaultMax;
}
--
2.17.1
2.25.1

View File

@ -1,8 +1,8 @@
From 3be1d7309cb7c496963c5d391b53ad3932563282 Mon Sep 17 00:00:00 2001
From 97fb86a12ed60322e5a06829649416d17008ce53 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] HOME deserves to wake-up devices just as well as back and
menu
Subject: [PATCH 20/41] HOME deserves to wake-up devices just as well as back
and menu
Change-Id: Ia562bafd8c620d00c17e8eb338e4701c6c4a3c3a
---

View File

@ -1,7 +1,7 @@
From b8adbf5e35d5d1e40077b3226ad3f842fc9be6dc Mon Sep 17 00:00:00 2001
From 778b360f0b111463f648aeaf50be8b134c05e307 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 21 Sep 2020 10:30:18 +0200
Subject: [PATCH 23/25] On old inits (A-only devices), multi-sim basedband
Subject: [PATCH 21/41] On old inits (A-only devices), multi-sim basedband
property too long, catch that and make it shorter
Change-Id: I2f52595409f0d43b148063d5fd90c80d1182ff8c
@ -10,10 +10,10 @@ Change-Id: I2f52595409f0d43b148063d5fd90c80d1182ff8c
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 8ae1ee99b06..4659c7909bc 100644
index 10c3e6db520..09acdea73c1 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -10104,7 +10104,13 @@ public class TelephonyManager {
@@ -10120,7 +10120,13 @@ public class TelephonyManager {
if (SubscriptionManager.isValidPhoneId(phoneId)) {
List<String> newList = updateTelephonyProperty(
TelephonyProperties.baseband_version(), phoneId, version);
@ -29,5 +29,5 @@ index 8ae1ee99b06..4659c7909bc 100644
}
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 11dae80179722994abd9e3501e6c14d4393c4c93 Mon Sep 17 00:00:00 2001
From ddd256856f8fd33fced66ef4c33a101ff45047be 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 24/25] Some devices have proximity sensor reporting NaN as max
Subject: [PATCH 22/41] 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 4c12ebbd94f..01f367e8a2f 100644
index 7a50ef4346c..f9f9e581ecc 100644
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -544,6 +544,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
@@ -562,6 +562,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
if (mProximitySensor != null) {
mProximityThreshold = Math.min(mProximitySensor.getMaximumRange(),
TYPICAL_PROXIMITY_THRESHOLD);
@ -24,5 +24,5 @@ index 4c12ebbd94f..01f367e8a2f 100644
}
mCurrentScreenBrightnessSetting = getScreenBrightnessSetting();
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From c341fe6ac6366d2e78b8ec69d11729180ab5cb84 Mon Sep 17 00:00:00 2001
From 768c5822cdf1376018df4599ce71f4774a7e1ddc 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 25/25] Fix brightness range not being complete on Samsung
Subject: [PATCH 23/41] 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 764ac969e18..40aeb32c40a 100644
index 3a2f3a211c8..d28078050b1 100644
--- a/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
@@ -913,9 +913,11 @@ public final class PowerManagerService extends SystemService
@@ -964,9 +964,11 @@ public final class PowerManagerService extends SystemService
if (min == INVALID_BRIGHTNESS_IN_CONFIG || max == INVALID_BRIGHTNESS_IN_CONFIG
|| def == INVALID_BRIGHTNESS_IN_CONFIG) {
@ -33,5 +33,5 @@ index 764ac969e18..40aeb32c40a 100644
PowerManager.BRIGHTNESS_MIN, PowerManager.BRIGHTNESS_MAX);
mScreenBrightnessMaximum = BrightnessSynchronizer.brightnessIntToFloat(
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From cbe557557ea73ea8fef866f362c869daf4c3be51 Mon Sep 17 00:00:00 2001
From c7dc08773098e4b27b5ef0666e4e897d91ac643c 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 26/26] Re-implement fnmatch-like behaviour for RRO java-side
Subject: [PATCH 24/41] Re-implement fnmatch-like behaviour for RRO java-side
Change-Id: Id38292a9a1453aa87b8401c1fdb390fa4e63c7d1
---
@ -33,5 +33,5 @@ index 70e4e6cbf62..a4d8941d1e5 100644
}
return true;
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 772f3c12ec0676d9e22eea8a005ddf302ad09940 Mon Sep 17 00:00:00 2001
From e580b18a7166a3d9fe2753816a9efee9c8a006e0 Mon Sep 17 00:00:00 2001
From: Danny Lin <danny@kdrag0n.dev>
Date: Mon, 5 Oct 2020 12:36:35 -0700
Subject: [PATCH 27/27] Add support for app signature spoofing
Subject: [PATCH 25/41] 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
@ -46,10 +46,10 @@ index 952ccdad992..73fb59fedab 100644
field public static final String GET_ACCOUNTS = "android.permission.GET_ACCOUNTS";
field public static final String GET_ACCOUNTS_PRIVILEGED = "android.permission.GET_ACCOUNTS_PRIVILEGED";
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 9945057f0e9..e1adee20ccf 100644
index ee428371a01..542b11a65ed 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -2829,6 +2829,13 @@
@@ -2852,6 +2852,13 @@
android:description="@string/permdesc_getPackageSize"
android:protectionLevel="normal" />
@ -64,10 +64,10 @@ index 9945057f0e9..e1adee20ccf 100644
{@link android.content.pm.PackageManager#addPackageToPreferred}
for details. -->
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index d21930f31df..372319ed32b 100644
index f4efcc7e4ee..51b461e7949 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -1646,6 +1646,8 @@
@@ -1654,6 +1654,8 @@
<string-array name="config_locationProviderPackageNames" translatable="false">
<!-- The standard AOSP fused location provider -->
<item>com.android.location.fused</item>
@ -77,7 +77,7 @@ index d21930f31df..372319ed32b 100644
<!-- This string array can be overriden to enable test location providers initially. -->
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 4f9911fbe38..32f2dbf33d3 100644
index d6ee28b93f9..d5b3f54afc5 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -847,6 +847,18 @@
@ -112,10 +112,10 @@ index 5f15216e840..c29feb9cd7b 100644
field public static final String GET_ACCOUNTS = "android.permission.GET_ACCOUNTS";
field public static final String GET_ACCOUNTS_PRIVILEGED = "android.permission.GET_ACCOUNTS_PRIVILEGED";
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index c3c655d632e..f7faf418fb4 100644
index 70b869e594d..af619aa6bd2 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -4395,8 +4395,9 @@ public class PackageManagerService extends IPackageManager.Stub
@@ -4454,8 +4454,9 @@ public class PackageManagerService extends IPackageManager.Stub
});
}
@ -127,7 +127,7 @@ index c3c655d632e..f7faf418fb4 100644
if (packageInfo == null) {
return null;
@@ -4432,6 +4433,24 @@ public class PackageManagerService extends IPackageManager.Stub
@@ -4491,6 +4492,24 @@ public class PackageManagerService extends IPackageManager.Stub
}
}
@ -153,5 +153,5 @@ index c3c655d632e..f7faf418fb4 100644
public void checkPackageStartable(String packageName, int userId) {
final int callingUid = Binder.getCallingUid();
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 014ba558076692fb0009b0100c4f18a6800e30ac Mon Sep 17 00:00:00 2001
From 10e7e4c086909f0ff7c1c0fac457d5592cfb4740 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] Make rounded corners padding overridable with
Subject: [PATCH 26/41] Make rounded corners padding overridable with
persist.sys.phh.rounded_corners_padding
Change-Id: Id5d73b06b9a2cb2da95ff31f204c1984555872ff
@ -12,7 +12,7 @@ Change-Id: Id5d73b06b9a2cb2da95ff31f204c1984555872ff
3 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
index 7533f2ac1db..94fd996d085 100644
index b1c3782c85e..006b52fbe1e 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
@@ -32,6 +32,7 @@ import android.graphics.Rect;
@ -23,7 +23,7 @@ index 7533f2ac1db..94fd996d085 100644
import android.provider.AlarmClock;
import android.provider.Settings;
import android.service.notification.ZenModeConfig;
@@ -447,8 +448,11 @@ public class QuickStatusBarHeader extends RelativeLayout implements
@@ -448,8 +449,11 @@ public class QuickStatusBarHeader extends RelativeLayout implements
Resources resources = mContext.getResources();
updateMinimumHeight();
@ -37,7 +37,7 @@ index 7533f2ac1db..94fd996d085 100644
// Update height for a few views, especially due to landscape mode restricting space.
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 8a4ea21a11c..a54269460e5 100644
index 574f835401c..9baac56410a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
@@ -25,6 +25,7 @@ import android.content.res.Resources;
@ -48,7 +48,7 @@ index 8a4ea21a11c..a54269460e5 100644
import android.util.AttributeSet;
import android.util.Pair;
import android.util.TypedValue;
@@ -186,8 +187,11 @@ public class KeyguardStatusBarView extends RelativeLayout
@@ -175,8 +176,11 @@ public class KeyguardStatusBarView extends RelativeLayout
R.dimen.system_icons_super_container_avatarless_margin_end);
mCutoutSideNudge = getResources().getDimensionPixelSize(
R.dimen.display_cutout_margin_consumption);
@ -62,7 +62,7 @@ index 8a4ea21a11c..a54269460e5 100644
private void updateVisibilities() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
index 1c6c7db6a69..f0e5c7bb3d2 100644
index 8856d892fcf..3debe9263eb 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
@@ -25,6 +25,7 @@ import android.content.Context;
@ -73,7 +73,7 @@ index 1c6c7db6a69..f0e5c7bb3d2 100644
import android.util.AttributeSet;
import android.util.EventLog;
import android.util.Pair;
@@ -331,8 +332,11 @@ public class PhoneStatusBarView extends PanelBar implements Callbacks {
@@ -332,8 +333,11 @@ public class PhoneStatusBarView extends PanelBar implements Callbacks {
public void updateResources() {
mCutoutSideNudge = getResources().getDimensionPixelSize(
R.dimen.display_cutout_margin_consumption);

View File

@ -1,7 +1,7 @@
From 54222334328e1bf9202ca95a941894ce48758c40 Mon Sep 17 00:00:00 2001
From 78dcffe53a015cae6eedf2a26b82c3f6f568781a 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 30/35] Remove useless notification about "console" service
Subject: [PATCH 27/41] Remove useless notification about "console" service
being running
---
@ -9,10 +9,10 @@ Subject: [PATCH 30/35] 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 091c77ecaac..df72122a4c5 100644
index 0ae9cc279e6..07fd9ba7984 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -5563,7 +5563,7 @@ public class ActivityManagerService extends IActivityManager.Stub
@@ -5574,7 +5574,7 @@ public class ActivityManagerService extends IActivityManager.Stub
}
private void showConsoleNotificationIfActive() {

View File

@ -1,17 +1,17 @@
From 9d2d5c8b106404769d8e6c2bebd4a2779fd2f21f Mon Sep 17 00:00:00 2001
From 0115026473a0efdf8c92be97fa64cdbe8c371271 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 13 Dec 2020 01:38:50 +0100
Subject: [PATCH 31/35] [Tethering] Ignore DUN required and always use main APN
Subject: [PATCH 28/41] Ignore DUN required and always use main APN
---
.../android/networkstack/tethering/TetheringConfiguration.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/Tethering/src/com/android/networkstack/tethering/TetheringConfiguration.java b/packages/Tethering/src/com/android/networkstack/tethering/TetheringConfiguration.java
index e1771a56137..65d17ffa54b 100644
index ef2ea3ad6d0..90eb638ec31 100644
--- a/packages/Tethering/src/com/android/networkstack/tethering/TetheringConfiguration.java
+++ b/packages/Tethering/src/com/android/networkstack/tethering/TetheringConfiguration.java
@@ -132,7 +132,7 @@ public class TetheringConfiguration {
@@ -130,7 +130,7 @@ public class TetheringConfiguration {
tetherableBluetoothRegexs = getResourceStringArray(
res, R.array.config_tether_bluetooth_regexs);

View File

@ -1,7 +1,7 @@
From e8f19bb6d060133e461791fc51c243f081fc00d0 Mon Sep 17 00:00:00 2001
From b794722f0917a6548dda6ce031ab7b130929bcee Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net>
Date: Wed, 16 Dec 2020 21:24:12 +0800
Subject: [PATCH 32/35] Revert "Remove unused SystemProperties.set"
Subject: [PATCH 29/41] Revert "Remove unused SystemProperties.set"
This reverts commit debb4616ef67f9ed5054eca51ec58592358ff55f.
@ -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 1b197b00069..89147084043 100644
index 09acdea73c1..79c11feb7f4 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -7033,6 +7033,75 @@ public class TelephonyManager {
@@ -7043,6 +7043,75 @@ public class TelephonyManager {
}
}

View File

@ -1,7 +1,7 @@
From 7268f850f701698f948f37a7d5bfac3cc4dae644 Mon Sep 17 00:00:00 2001
From 2f71f5fb95dcaf1933e66e17c3c257c0d9e90efb Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net>
Date: Wed, 16 Dec 2020 13:46:15 +0800
Subject: [PATCH 33/35] TelephonyManager: bring back getNetworkClass()
Subject: [PATCH 30/41] TelephonyManager: bring back getNetworkClass()
This partially reverts commit c058cac051ab083dc7fb7ea6aa85699110b2e9bf.
@ -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 89147084043..f470d4595c3 100644
index 79c11feb7f4..130d872b985 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -3135,6 +3135,64 @@ public class TelephonyManager {
@@ -3145,6 +3145,64 @@ public class TelephonyManager {
}
}

View File

@ -1,7 +1,7 @@
From 04a8e10d1ac42ade9e707081920940931bc80f07 Mon Sep 17 00:00:00 2001
From c015a844f9180ed590127edaeb3493bb54101bbd Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net>
Date: Wed, 16 Dec 2020 21:26:45 +0800
Subject: [PATCH 34/35] TelephonyManager: add API annotations for
Subject: [PATCH 31/41] TelephonyManager: add API annotations for
setTelephonyProperty
* This method was added back by reverting commit
@ -14,10 +14,10 @@ Subject: [PATCH 34/35] 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 f470d4595c3..4b912e88798 100644
index 130d872b985..8e16e783523 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -7097,7 +7097,7 @@ public class TelephonyManager {
@@ -7107,7 +7107,7 @@ public class TelephonyManager {
* @hide
*/
@UnsupportedAppUsage
@ -26,7 +26,7 @@ index f470d4595c3..4b912e88798 100644
String propVal = "";
String p[] = null;
String prop = SystemProperties.get(property);
@@ -7151,7 +7151,8 @@ public class TelephonyManager {
@@ -7161,7 +7161,8 @@ public class TelephonyManager {
*
* @hide
*/

View File

@ -1,7 +1,7 @@
From 368af07a0fc4fbed6f6946c8bf8237702841d914 Mon Sep 17 00:00:00 2001
From c80e63a38195f4a3f45c76f4b583b68e09f8b2ac Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Fri, 18 Dec 2020 16:38:58 -0500
Subject: [PATCH] Fix Samsung Power HAL (switch/case was filled with
Subject: [PATCH 32/41] Fix Samsung Power HAL (switch/case was filled with
mines/returns), and cleanup code and add logs
---

View File

@ -1,7 +1,8 @@
From a54f02964ce04634fcf6178c8127800dfb1cfba6 Mon Sep 17 00:00:00 2001
From c965a22bfdf6b0c9b7c39d006d25422ff2058fb1 Mon Sep 17 00:00:00 2001
From: Alberto Ponces <ponces26@gmail.com>
Date: Mon, 18 Jan 2021 09:23:57 +0000
Subject: [PATCH] KeyStore: Block key attestation for Google Play Services
Subject: [PATCH 33/41] KeyStore: Block key attestation for Google Play
Services
Change-Id: Ia2cd58ea1abfdb1a2c0eb358442c36b5c6809c6b
---

View File

@ -1,7 +1,7 @@
From d47fac84706c80d14989b6348808d2d6602a250d Mon Sep 17 00:00:00 2001
From b30f8b1b3f5d3376733bc059cabde9cc5815b9ac Mon Sep 17 00:00:00 2001
From: Alberto Ponces <ponces26@gmail.com>
Date: Tue, 2 Feb 2021 10:20:51 +0000
Subject: [PATCH 37/37] Fix Wakelock issue
Subject: [PATCH 34/41] Fix Wakelock issue
Prevent SystemUI crash due to "WakeLock under-locked Doze" (issue #12) by only releasing a wakelock that was not already released
---
@ -9,10 +9,10 @@ Prevent SystemUI crash due to "WakeLock under-locked Doze" (issue #12) by only r
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/packages/SystemUI/src/com/android/systemui/util/wakelock/WakeLock.java b/packages/SystemUI/src/com/android/systemui/util/wakelock/WakeLock.java
index 08cd6e38389..c54dca88dcf 100644
index 8d77c4a194a..e9f25343374 100644
--- a/packages/SystemUI/src/com/android/systemui/util/wakelock/WakeLock.java
+++ b/packages/SystemUI/src/com/android/systemui/util/wakelock/WakeLock.java
@@ -109,7 +109,9 @@ public interface WakeLock {
@@ -110,7 +110,9 @@ public interface WakeLock {
} else {
mActiveClients.put(why, count - 1);
}

View File

@ -1,7 +1,7 @@
From 109bc691f314f18f923c5c72fc82ff072c77eca3 Mon Sep 17 00:00:00 2001
From f298ce644fa19ee8b43b776a24119bcc006aa7ac Mon Sep 17 00:00:00 2001
From: N Harish <kqn736@zebra.com>
Date: Mon, 25 Jan 2021 17:22:33 +0530
Subject: [PATCH 40/40] Fix for TestDirectBootEmulated testcase
Subject: [PATCH 35/41] Fix for TestDirectBootEmulated testcase
In case of emulated FBE the secrets are empty hence add this
exception to prevent from unlocking userkey.
@ -16,10 +16,10 @@ Change-Id: I5be2ceb61d9ef47219862e75cc8ec03ab5513426
1 file changed, 6 insertions(+)
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
index 87afdac45dae..179899ee6067 100644
index b0ceaee8977..676dab2fa4c 100644
--- a/services/core/java/com/android/server/StorageManagerService.java
+++ b/services/core/java/com/android/server/StorageManagerService.java
@@ -3295,6 +3295,12 @@ class StorageManagerService extends IStorageManager.Stub
@@ -3321,6 +3321,12 @@ class StorageManagerService extends IStorageManager.Stub
enforcePermission(android.Manifest.permission.STORAGE_INTERNAL);
if (isFsEncrypted) {

View File

@ -1,7 +1,7 @@
From 8b9a1e5df3dd1b25b2cf9d83eca1353327697796 Mon Sep 17 00:00:00 2001
From 5296cec29b201ca7c4ededf348d16a57a18220f4 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sat, 6 Mar 2021 18:39:15 -0500
Subject: [PATCH 41/41] Make secondary displays' lock screen black. Useful for
Subject: [PATCH 36/41] Make secondary displays' lock screen black. Useful for
Moto Razr AOD
---
@ -9,7 +9,7 @@ Subject: [PATCH 41/41] Make secondary displays' lock screen black. Useful for
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/packages/SystemUI/res-keyguard/layout/keyguard_presentation.xml b/packages/SystemUI/res-keyguard/layout/keyguard_presentation.xml
index f4d34f4ca141..58650b26ceaf 100644
index f4d34f4ca14..58650b26cea 100644
--- a/packages/SystemUI/res-keyguard/layout/keyguard_presentation.xml
+++ b/packages/SystemUI/res-keyguard/layout/keyguard_presentation.xml
@@ -22,7 +22,8 @@

View File

@ -1,7 +1,7 @@
From e202b51e3522636dade7a0ede8688ccd38306468 Mon Sep 17 00:00:00 2001
From 7cb9e3ee13d036156ac48d84c9220d2b2270d044 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sat, 13 Mar 2021 13:21:46 -0500
Subject: [PATCH 42/45] On Samsung R vendor, there is still the ISehMiscPower
Subject: [PATCH 37/41] On Samsung R vendor, there is still the ISehMiscPower
HIDL HAL, but there is also the AOSP's AIDL HAL. It was previously assumed
this wouldn't happen, fix this assumption.
@ -10,10 +10,10 @@ Subject: [PATCH 42/45] On Samsung R vendor, there is still the ISehMiscPower
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/services/core/jni/com_android_server_power_PowerManagerService.cpp b/services/core/jni/com_android_server_power_PowerManagerService.cpp
index 2ebff05d6c5c..c5d9aa94687e 100644
index 298cd8c7171..a5812379f86 100644
--- a/services/core/jni/com_android_server_power_PowerManagerService.cpp
+++ b/services/core/jni/com_android_server_power_PowerManagerService.cpp
@@ -112,6 +112,14 @@ static HalVersion connectPowerHalLocked() {
@@ -124,6 +124,14 @@ static HalVersion connectPowerHalLocked() {
if (!gPowerHalHidlExists && !gPowerHalAidlExists) {
return HalVersion::NONE;
}
@ -28,7 +28,7 @@ index 2ebff05d6c5c..c5d9aa94687e 100644
if (gPowerHalAidlExists) {
if (!gPowerHalAidl_) {
gPowerHalAidl_ = waitForVintfService<IPowerAidl>();
@@ -123,12 +131,6 @@ static HalVersion connectPowerHalLocked() {
@@ -135,12 +143,6 @@ static HalVersion connectPowerHalLocked() {
gPowerHalAidlExists = false;
}
}

View File

@ -1,7 +1,7 @@
From a4d9278457f0035b44a4b18e07a224d0a827e446 Mon Sep 17 00:00:00 2001
From 7d5c3b0bc59848c5bac63d8410431c2d70862ca4 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sat, 20 Mar 2021 14:30:17 +0100
Subject: [PATCH 43/45] Handle another type of Samsung proximity sensor: Hover
Subject: [PATCH 38/41] Handle another type of Samsung proximity sensor: Hover
Proximity Sensor, with yet another behavior (seen on S20 FE)
---
@ -9,10 +9,10 @@ Subject: [PATCH 43/45] Handle another type of Samsung proximity sensor: Hover
1 file changed, 14 insertions(+)
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
index bd41d38ad34c..0d160c37f6ea 100644
index f9f9e581ecc..733d245e1a9 100644
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -540,6 +540,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
@@ -552,6 +552,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
mProximitySensor = sensor;
}
}
@ -26,7 +26,7 @@ index bd41d38ad34c..0d160c37f6ea 100644
if(mProximitySensor == null) {
List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);
for(Sensor sensor: sensors) {
@@ -2055,6 +2062,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
@@ -2098,6 +2105,13 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
handleProximitySensorEvent(time, positive);
return;
}

View File

@ -1,7 +1,7 @@
From b560c2bba2559c95a97ca614fa46d542be6d2858 Mon Sep 17 00:00:00 2001
From 83131b917d381afd9866645aa9cfa69bf447b755 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 44/45] Automatically detect pick up sensor, so that an overlay
Subject: [PATCH 39/41] 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 44/45] 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 ece5c28884fa..010fce24057d 100644
index ece5c28884f..010fce24057 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;

View File

@ -1,7 +1,7 @@
From 575db4c47ba68a6355774abc815f2f4c8de7a996 Mon Sep 17 00:00:00 2001
From 21fbfa2f75c222e4c866d79ac02dcb258a5585fb 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 45/45] Catch broken mainBuiltInDisplayCutoutRectApproximation
Subject: [PATCH 40/41] Catch broken mainBuiltInDisplayCutoutRectApproximation
Some devices (Redmi Note 9T) have:
mainBuiltInDisplayCutoutRectApproximation = @android:mainBuiltInDisplayCutout
@ -16,7 +16,7 @@ Fix it by catching it, and parsing mainBuiltInDisplayCutout instead
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/core/java/android/view/DisplayCutout.java b/core/java/android/view/DisplayCutout.java
index b4863f9c6dd0..e1d57e6869aa 100644
index b4863f9c6dd..e1d57e6869a 100644
--- a/core/java/android/view/DisplayCutout.java
+++ b/core/java/android/view/DisplayCutout.java
@@ -681,9 +681,15 @@ public final class DisplayCutout {

View File

@ -0,0 +1,823 @@
From 6b85e4a7d4f31df6f3be30d3d10907fe6f2edccf Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 10 Aug 2021 19:09:56 -0400
Subject: [PATCH 41/41] Import back FacolaView for under-display fingerprint
Tested, working-ish on OnePlus Nord2
---
services/core/Android.bp | 6 +
.../biometrics/fingerprint/FacolaView.java | 703 ++++++++++++++++++
.../fingerprint/FingerprintService.java | 35 +
3 files changed, 744 insertions(+)
create mode 100644 services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
diff --git a/services/core/Android.bp b/services/core/Android.bp
index 7ad86fae59f..0e3707cf5bd 100644
--- a/services/core/Android.bp
+++ b/services/core/Android.bp
@@ -141,6 +141,12 @@ java_library_static {
"org.lineageos.platform.internal",
"overlayable_policy_aidl-java",
"SurfaceFlingerProperties",
+ "vendor.goodix.extend.service-V2.0-java",
+ "vendor.goodix.hardware.biometrics.fingerprint-V2.1-java",
+ "vendor.samsung.hardware.biometrics.fingerprint-V2.1-java",
+ "vendor.samsung.hardware.biometrics.fingerprint-V3.0-java",
+ "vendor.oppo.hardware.biometrics.fingerprint-V2.1-java",
+ "vendor.xiaomi.hardware.fingerprintextension-V1.0-java",
],
}
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
new file mode 100644
index 00000000000..1b052db6fea
--- /dev/null
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FacolaView.java
@@ -0,0 +1,703 @@
+/**
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.biometrics.fingerprint;
+
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Point;
+import android.content.Context;
+import android.view.View.OnTouchListener;
+import android.view.View;
+import android.widget.ImageView;
+import android.view.MotionEvent;
+import android.util.Slog;
+
+import android.view.WindowManager;
+import android.graphics.PixelFormat;
+import android.view.Gravity;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.PrintWriter;
+import java.util.Arrays;
+
+import vendor.xiaomi.hardware.fingerprintextension.V1_0.IXiaomiFingerprint;
+import vendor.goodix.extend.service.V2_0.IGoodixFPExtendService;
+import vendor.samsung.hardware.biometrics.fingerprint.V2_1.ISecBiometricsFingerprint;
+import vendor.samsung.hardware.biometrics.fingerprint.V3_0.ISehBiometricsFingerprint;
+
+import android.hardware.display.DisplayManager;
+
+import android.os.Build;
+import android.os.FileObserver;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.ServiceManager;
+
+import android.util.DisplayMetrics;
+
+public class FacolaView extends ImageView implements OnTouchListener {
+ private int mX, mY, mW, mH;
+ private final Paint mPaintFingerprint = new Paint();
+ private final Paint mPaintShow = new Paint();
+ private IXiaomiFingerprint mXiaomiFingerprint = null;
+ private IGoodixFPExtendService mGoodixFingerprint = null;
+ private vendor.goodix.hardware.biometrics.fingerprint.V2_1.IGoodixFingerprintDaemon mGoodixFingerprintV2_1 = null;
+ private ISecBiometricsFingerprint mSamsungFingerprint = null;
+ private ISehBiometricsFingerprint mSamsungFingerprint3_0 = null;
+ private vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint mOppoFingerprint = null;
+ private boolean mInsideCircle = false;
+ private final WindowManager.LayoutParams mParams = new WindowManager.LayoutParams();
+ private final WindowManager.LayoutParams mParamsTouched = new WindowManager.LayoutParams();
+
+ private final static float UNTOUCHED_DIM = .0f;
+ private final static float TOUCHED_DIM = .9f;
+
+ private final HandlerThread mHandlerThread;
+ private final Handler mHandler;
+
+ private final WindowManager mWM;
+ private final DisplayManager mDM;
+ private final boolean samsungFod = samsungHasCmd("fod_enable");
+ private boolean noDim;
+ private boolean bypassedBrightness;
+ private boolean isDown = false;
+
+ private java.util.ArrayList<Object> objectsToKeep = new java.util.ArrayList();
+
+ private boolean mFullGreenDisplayed = false;
+ private final View mFullGreen;
+ private boolean mHidden = true;
+ private boolean mUiHidden = true;
+ private boolean xiaomiAsynchronous = false;
+ FacolaView(Context context) {
+ super(context);
+
+ mFullGreen = new ImageView(context) {
+ @Override
+ protected void onDraw(Canvas canvas) {
+ super.onDraw(canvas);
+ canvas.drawCircle(mW/2, mH/2, (float) (mW/2.0f), mPaintFingerprint);
+ };
+ };
+
+ mWM = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
+ mDM = (DisplayManager) getContext().getSystemService(Context.DISPLAY_SERVICE);
+
+ Point displayRealSize = new Point();
+ DisplayMetrics displayMetrics = new DisplayMetrics();
+ mDM.getDisplay(0).getRealSize(displayRealSize);
+ mDM.getDisplay(0).getMetrics(displayMetrics);
+
+ android.util.Log.d("PHH", "Samsung FOD " + samsungFod);
+
+ mHandlerThread = new HandlerThread("FacolaThread");
+ mHandlerThread.start();
+ mHandler = new Handler(mHandlerThread.getLooper());
+
+ noDim = android.os.SystemProperties.getBoolean("persist.sys.phh.nodim", false);
+ String[] location = android.os.SystemProperties.get("persist.vendor.sys.fp.fod.location.X_Y", "").split(",");
+ if(location.length != 2)
+ location = android.os.SystemProperties.get("persist.sys.fp.fod.location.X_Y", "").split(",");
+ String[] size = android.os.SystemProperties.get("persist.vendor.sys.fp.fod.size.width_height", "").split(",");
+ if(size.length != 2)
+ size = android.os.SystemProperties.get("persist.sys.fp.fod.size.width_height", "").split(",");
+ Slog.d("PHH-Enroll", "FacolaView hello");
+ if(size.length == 2 && location.length == 2) {
+ Slog.d("PHH-Enroll", "Got real values");
+ mX = Integer.parseInt(location[0]);
+ mY = Integer.parseInt(location[1]);
+ mW = Integer.parseInt(size[0]);
+ mH = Integer.parseInt(size[1]);
+ } else {
+ //a50
+ //mX = -1;//443;// - 190/2;
+ //mY = -1;// 1972;// - 190 / 2;
+ //mW = -1;//190;
+ //mH = -1;//190;
+
+ //x2 pro
+ //mX = 445;// - 190/2;
+ //mY = 1988;// - 190/2;
+ //mW = 190;
+ //mH = 190;
+ mX = -1;
+ mY = -1;
+ mW = -1;
+ mH = -1;
+ }
+
+ mParamsTouched.dimAmount = 0;
+
+ int oppoSize = android.os.SystemProperties.getInt("persist.vendor.fingerprint.optical.iconsize", 0);
+ if(oppoSize > 0) {
+ mW = oppoSize;
+ mH = oppoSize;
+ }
+ int oppoLocation = android.os.SystemProperties.getInt("persist.vendor.fingerprint.optical.iconlocation", 0);
+ if(oppoLocation > 0) {
+ Slog.d("PHH-Enroll", "Got Oppo icon location " + oppoLocation);
+ Slog.d("PHH-Enroll", "\tscreen size " + displayRealSize.x + ", " + displayRealSize.y);
+ mX = displayRealSize.x/2 - mW/2;
+ mY = displayRealSize.y - mH/2 - oppoLocation;
+ Slog.d("PHH-Enroll", "\tfacola at " + mX + ", " + mY);
+ noDim = true;
+ }
+
+ String gammaStr = android.os.SystemProperties.get("persist.sys.phh.fod.gamma", "2.2");
+ float gamma = Float.parseFloat(gammaStr);
+
+ mPaintFingerprint.setAntiAlias(true);
+ mPaintFingerprint.setColor(Color.GREEN);
+
+ mPaintShow.setAntiAlias(true);
+ mPaintShow.setColor(Color.argb(0x18, 0x00, 0xff, 0x00));
+ setOnTouchListener(this);
+ Slog.d("PHH-Enroll", "Created facola...");
+ try {
+ mXiaomiFingerprint = IXiaomiFingerprint.getService();
+ } catch(Exception e) {
+ Slog.d("PHH-Enroll", "Failed getting xiaomi fingerprint service", e);
+ }
+ try {
+ mGoodixFingerprint = IGoodixFPExtendService.getService();
+ } catch(Exception e) {
+ Slog.d("PHH-Enroll", "Failed getting goodix fingerprint service", e);
+ }
+ try {
+ mGoodixFingerprintV2_1 = vendor.goodix.hardware.biometrics.fingerprint.V2_1.IGoodixFingerprintDaemon.getService();
+ } catch(Exception e) {
+ Slog.d("PHH-Enroll", "Failed getting goodix2 fingerprint service", e);
+ }
+ try {
+ mSamsungFingerprint = ISecBiometricsFingerprint.getService();
+ } catch(Exception e) {
+ Slog.d("PHH-Enroll", "Failed getting samsung fingerprint service", e);
+ }
+ try {
+ mSamsungFingerprint3_0 = ISehBiometricsFingerprint.getService();
+ } catch(Exception e) {
+ Slog.d("PHH-Enroll", "Failed getting samsung 3.0 fingerprint service", e);
+ }
+ try {
+ mOppoFingerprint = vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint.getService();
+ } catch(Exception e) {
+ Slog.d("PHH-Enroll", "Failed getting oppo fingerprint service", e);
+ }
+
+ if(mSamsungFingerprint3_0 != null || mSamsungFingerprint != null) {
+ noDim = true;
+ bypassedBrightness = true;
+
+ String fodPositionString = readFile("/sys/class/fingerprint/fingerprint/position");
+ final String brightnessFile;
+ if("qcom".equals(Build.HARDWARE))
+ brightnessFile = "/sys/class/backlight/panel0-backlight/brightness";
+ else
+ brightnessFile = "/sys/class/lcd/panel/device/backlight/panel/brightness";
+
+ String maskBrightnessStr = readFile("/sys/class/lcd/panel/mask_brightness");
+ if(maskBrightnessStr == null) {
+ maskBrightnessStr = readFile("/sys/class/backlight/panel0-backlight/max_brightness");
+ }
+ String actualMaskBrightnessPath = "/sys/class/lcd/panel/actual_mask_brightness";
+
+ Slog.d("PHH-Enroll", "Got fod position, mask brightness " + fodPositionString + ", " + maskBrightnessStr);
+
+ if(fodPositionString != null && maskBrightnessStr != null) {
+ double maskBrightness = Double.parseDouble(maskBrightnessStr);
+ String[] fodPositionArray = readFile("/sys/class/fingerprint/fingerprint/position").split(",");
+ float bottomMM = Float.parseFloat(fodPositionArray[0]);
+ float areaSizeMM = Float.parseFloat(fodPositionArray[5]);
+
+ float bottomInch = bottomMM * 0.0393700787f;
+ float areaSizeInch = areaSizeMM * 0.0393700787f;
+
+ int bottomPx = (int)(bottomInch * displayMetrics.ydpi);
+ int areaSizePx = (int)(areaSizeInch * displayMetrics.ydpi);
+ mW = areaSizePx;
+ mH = areaSizePx;
+ mX = displayRealSize.x/2 - mW/2;
+ mY = displayRealSize.y - bottomPx - mH;
+ Slog.d("PHH-Enroll", "Samsung computed " + mX + "," + mY + "; " + mW + "x" + mH);
+
+ String cmd = String.format("fod_rect,%d,%d,%d,%d", mX, mY, mX+mW, mY+mH);
+ samsungCmd(cmd);
+
+ Slog.d("PHH-Enroll", "Reading brightness file gives " + readFile(brightnessFile));
+ FileObserver samsungCallback = new FileObserver(brightnessFile, FileObserver.MODIFY) {
+ //Don't use LightsService' observer, because Samsung's brightness file is in nits, which makes for much more accurate computation
+ @Override
+ public void onEvent(int event, String path) {
+ String currentBrightnessStr = readFile(brightnessFile);
+ Slog.d("PHH-Enroll", "New brightness is " + currentBrightnessStr);
+ int currentBrightness = Integer.parseInt(currentBrightnessStr);
+
+ mHandler.post( () -> {
+ double dim = 1.0d - Math.pow( (currentBrightness / maskBrightness), 1/gamma);
+ Slog.d("PHH-Enroll", "Setting dim to " + dim);
+ mParamsTouched.dimAmount = (float)dim;
+ if(!mHidden) {
+ Slog.d("PHH-Enroll", "++Setting dim to " + dim);
+ if(mFullGreenDisplayed && !mHidden) {
+ mWM.updateViewLayout(mFullGreen, mParamsTouched);
+ }
+ }
+ });
+ }
+ };
+ samsungCallback.startWatching();
+ objectsToKeep.add(samsungCallback);
+
+ Slog.d("PHH-Enroll", "Reading actual brightness file gives " + readFile(actualMaskBrightnessPath));
+ FileObserver actualMaskObserver = new FileObserver(actualMaskBrightnessPath, FileObserver.MODIFY) {
+ @Override
+ public void onEvent(int event, String path) {
+ String actualMask = readFile(actualMaskBrightnessPath);
+ Slog.d("PHH-Enroll", "New actual mask brightness is " + actualMask);
+ try {
+ int eventReq = 0;
+ if("0".equals(actualMask)) {
+ eventReq = 1; //released
+ } else {
+ eventReq = 2; //pressed
+ }
+ if(mSamsungFingerprint != null) {
+ mSamsungFingerprint.request(22 /* SEM_FINGER_STATE */, 0, eventReq, new java.util.ArrayList<Byte>(),
+ (int retval, java.util.ArrayList<Byte> out) -> {} );
+ } else if(mSamsungFingerprint3_0 != null) {
+ mSamsungFingerprint3_0.sehRequest(22 /* SEM_FINGER_STATE */, eventReq, new java.util.ArrayList<Byte>(),
+ (int retval, java.util.ArrayList<Byte> out) -> {} );
+ }
+ } catch(Exception e) {
+ Slog.d("PHH-Enroll", "Failed setting samsung event for mask observer", e);
+ }
+ }
+ };
+ actualMaskObserver.startWatching();
+ objectsToKeep.add(actualMaskObserver);
+
+ }
+ }
+
+ String xiaomiFodReadyPath = "/sys/class/drm/card0-DSI-1/fod_ui_ready";
+ if(new File(xiaomiFodReadyPath).exists()) {
+ xiaomiAsynchronous = true;
+ noDim = true;
+ FileObserver xiaomiUiReadyCb = new FileObserver(xiaomiFodReadyPath, FileObserver.MODIFY) {
+ @Override
+ public void onEvent(int event, String path) {
+ String currentUiReady = readFile(xiaomiFodReadyPath);
+ Slog.d("PHH-Enroll", "New fod ready is " + currentUiReady);
+
+ mHandler.post( () -> {
+ try {
+ if("0".equals(currentUiReady)) {
+ mXiaomiFingerprint.extCmd(0xa, 0);
+ } else if("1".equals(currentUiReady)) {
+ mXiaomiFingerprint.extCmd(0xa, 1);
+ }
+ } catch(Exception e) {
+ Slog.d("PHH-Enroll", "Failed Xiaomi async extcmd", e);
+ }
+ });
+ }
+ };
+ xiaomiUiReadyCb.startWatching();
+ objectsToKeep.add(xiaomiUiReadyCb);
+ }
+
+ if(mX != -1) {
+ android.os.SystemProperties.set("persist.sys.phh.has_fod", "true");
+ } else {
+ android.os.SystemProperties.set("persist.sys.phh.has_fod", "false");
+ }
+ /*
+ com.android.server.lights.LightsService.backlightChangeListener = new com.android.server.lights.LightsService.OnBacklightChange() {
+ public void onBacklightChange(int brightness) {
+ //Simple (but wrong) math assuming 255 is max brightness with 2.2 screen gamma and linear backlight
+ double dim = (1.0 - Math.pow(brightness/255.0, 1/gamma));
+
+ int alpha = (int)(255.0*dim);
+ Slog.d("PHH-Enroll", "Setting Xiaomi dim alpha to " + alpha + ", from " + brightness);
+ writeFile("/sys/class/drm/card0-DSI-1/dim_alpha", Integer.toString(alpha));
+
+ mHandler.post( () -> {
+ if(!noDim) {
+ Slog.d("PHH-Enroll", "Setting dim to " + dim);
+ mParams.dimAmount = (float)dim;
+ if(!mUiHidden) {
+ Slog.d("PHH-Enroll", "++Setting dim to " + dim);
+ mWM.updateViewLayout(FacolaView.this, mParams);
+ }
+ }
+ });
+ }
+ };*/
+
+ bypassedBrightness = hbmCtrl1.exists() || noDim;
+ }
+
+ private final File hbmCtrl1 = new File("/proc/leds/hbm_mode");
+
+ private boolean oppoFodInited = false;
+ private File oppoFod;
+ private void oppoPress(boolean pressed) {
+ if(!oppoFodInited) {
+ oppoFodInited = true;
+ oppoFod = new File("/sys/kernel/oppo_display/notify_fppress");
+ if(!oppoFod.exists())
+ oppoFod = new File("/sys/kernel/oplus_display/oplus_notify_fppress");
+ }
+ if(oppoFod == null || !oppoFod.exists()) return;
+ try {
+ String v = "0";
+ if(pressed) v = "1";
+ PrintWriter writer = new PrintWriter(oppoFod, "UTF-8");
+ writer.println(v);
+ writer.close();
+ } catch(Exception e) {
+ Slog.d("PHH", "Failed to notify oppo fp press", e);
+ }
+ }
+
+ @Override
+ protected void onDraw(Canvas canvas) {
+ super.onDraw(canvas);
+
+ Slog.d("PHH-Enroll", "Drawing at " + mX + ", " + mY + ", " + mW + ", " + mH);
+ //TODO w!=h?
+ if(mInsideCircle) {
+ try {
+ mParamsTouched.x = mX;
+ mParamsTouched.y = mY;
+
+ mParamsTouched.height = mW;
+ mParamsTouched.width = mH;
+ mParamsTouched.format = PixelFormat.TRANSLUCENT;
+
+ mParamsTouched.type = WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY;
+ mParamsTouched.setTitle("Fingerprint on display.touched");
+ mParamsTouched.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
+ WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN |
+ WindowManager.LayoutParams.FLAG_DIM_BEHIND;
+ writeFile(hbmCtrl1, "1");
+ if(!noDim) {
+ mParamsTouched.screenBrightness = 1.0f;
+ if(!bypassedBrightness) {
+ mParamsTouched.screenBrightness = 1.0f;
+ }
+ }
+
+ mParamsTouched.packageName = "android";
+
+ mParamsTouched.gravity = Gravity.TOP | Gravity.LEFT;
+ if(!mFullGreenDisplayed && !mHidden) {
+ mHandler.post( () -> {
+ Slog.d("PHH-Enroll", "Adding full green because of finger pressed");
+ mFullGreenDisplayed = true;
+ mWM.addView(mFullGreen, mParamsTouched);
+ });
+ }
+ if(!isDown) {
+ isDown = true;
+ int nitValue = 2;
+ mHandler.postDelayed( () -> {
+ try {
+ if(mXiaomiFingerprint != null && !xiaomiAsynchronous) {
+ mXiaomiFingerprint.extCmd(0xa, nitValue);
+ } else if(mGoodixFingerprint != null) {
+ mGoodixFingerprint.goodixExtendCommand(10, 1);
+ } else if(mGoodixFingerprintV2_1 != null) {
+ mGoodixFingerprintV2_1.sendCommand(0x600, new java.util.ArrayList<Byte>(),
+ (int retval, java.util.ArrayList<Byte> out) -> {} );
+ }
+ } catch(Exception e) {
+ Slog.d("PHH-Enroll", "Failed calling late fp extcmd", e);
+ }
+ }, 200);
+ }
+ } catch(Exception e) {
+ Slog.d("PHH-Enroll", "Failed calling fp extcmd", e);
+ }
+ oppoPress(true);
+ } else {
+ writeFile(hbmCtrl1, "1");
+ oppoPress(false);
+ if(isDown) {
+ isDown = false;
+ try {
+ if(mXiaomiFingerprint != null && !xiaomiAsynchronous) {
+ mXiaomiFingerprint.extCmd(0xa, 0);
+ } else if(mGoodixFingerprint != null) {
+ mGoodixFingerprint.goodixExtendCommand(10, 0);
+ } else if(mGoodixFingerprintV2_1 != null) {
+ mGoodixFingerprintV2_1.sendCommand(0x601, new java.util.ArrayList<Byte>(),
+ (int retval, java.util.ArrayList<Byte> out) -> {});
+ } else if(mSamsungFingerprint != null) {
+ mSamsungFingerprint.request(22 /* SEM_FINGER_STATE */, 0, 1 /* released */, new java.util.ArrayList<Byte>(),
+ (int retval, java.util.ArrayList<Byte> out) -> {} );
+ } else if(mSamsungFingerprint3_0 != null) {
+ mSamsungFingerprint3_0.sehRequest(22 /* SEM_FINGER_STATE */, 1 /* released */, new java.util.ArrayList<Byte>(),
+ (int retval, java.util.ArrayList<Byte> out) -> {} );
+ }
+ } catch(Exception e) {
+ Slog.d("PHH-Enroll", "Failed calling fp extcmd", e);
+ }
+
+ }
+ if(mFullGreenDisplayed) {
+ mHandler.post( () -> {
+ Slog.d("PHH-Enroll", "Removing full green because of finger released");
+ mFullGreenDisplayed = false;
+ mWM.removeView(mFullGreen);
+ });
+ }
+ }
+ canvas.drawCircle(mW/2, mH/2, (float) (mW/2.0f), this.mPaintShow);
+ }
+
+ @Override
+ public boolean onTouch(View v, MotionEvent event) {
+ float x = event.getAxisValue(MotionEvent.AXIS_X);
+ float y = event.getAxisValue(MotionEvent.AXIS_Y);
+
+ boolean newInside = (x > 0 && x < mW) && (y > 0 && y < mW);
+ if(event.getAction() == MotionEvent.ACTION_UP)
+ newInside = false;
+
+ Slog.d("PHH-Enroll", "Got action " + event.getAction() + ", x = " + x + ", y = " + y + ", inside = " + mInsideCircle + "/" + newInside);
+ if(newInside == mInsideCircle) return mInsideCircle;
+ mInsideCircle = newInside;
+
+ invalidate();
+
+ if(!mInsideCircle) {
+ mParams.screenBrightness = .0f;
+ if(!noDim) {
+ mParams.dimAmount = UNTOUCHED_DIM;
+ }
+ mWM.updateViewLayout(this, mParams);
+ return false;
+ }
+
+ if(!noDim) {
+ mParams.dimAmount = TOUCHED_DIM;
+ mParams.screenBrightness = 1.0f;
+ }
+ mWM.updateViewLayout(this, mParams);
+
+ return true;
+ }
+
+ public void show() {
+ Slog.d("PHH-Enroll", "Show", new Exception());
+ if(!mHidden) return;
+ mHidden = false;
+ try {
+ mSamsungFingerprint = ISecBiometricsFingerprint.getService();
+ mSamsungFingerprint.request(20 /* SEM_FINGER_STATE */, 0, 0 /* released */, new java.util.ArrayList<Byte>(),
+ (int retval, java.util.ArrayList<Byte> out) -> {} );
+ } catch(Exception e) {
+ Slog.d("PHH-Enroll", "Failed setting fast fingerprint recognition");
+ }
+ try {
+ mSamsungFingerprint3_0 = ISehBiometricsFingerprint.getService();
+ Slog.d("PHH-Enroll", "Samsung ask for sensor status");
+ mSamsungFingerprint3_0.sehRequest(6, 0, new java.util.ArrayList(), (int retval, java.util.ArrayList<Byte> out) -> {
+ Slog.d("PHH-Enroll", "Result is " + retval);
+ for(int i=0; i<out.size(); i++) {
+ Slog.d("PHH-Enroll", "\t" + i + ":" + out.get(i));
+ }
+ } );
+ Slog.d("PHH-Enroll", "Samsung ask for sensor brightness value");
+ mSamsungFingerprint3_0.sehRequest(32, 0, new java.util.ArrayList(), (int retval, java.util.ArrayList<Byte> out) -> {
+ Slog.d("PHH-Enroll", "Result is " + retval);
+ for(int i=0; i<out.size(); i++) {
+ Slog.d("PHH-Enroll", "\t" + i + ":" + out.get(i));
+ }
+ } );
+
+ } catch(Exception e) {
+ Slog.d("PHH-Enroll", "Failed setting samsung3.0 fingerprint recognition", e);
+ }
+
+ if(mOppoFingerprint != null) {
+ try {
+ mOppoFingerprint.setScreenState(vendor.oppo.hardware.biometrics.fingerprint.V2_1.FingerprintScreenState.FINGERPRINT_SCREEN_ON);
+ } catch(Exception e) {
+ Slog.d("PHH-Enroll", "Failed setting oppo screen state", e);
+ }
+ }
+ mInsideCircle = false;
+ writeFile("/sys/kernel/oppo_display/dimlayer_hbm", "1");
+ writeFile("/sys/kernel/oplus_display/dimlayer_bl_en", "1");
+ if(samsungFod) {
+ samsungCmd("fod_enable,1,1");
+ samsungCmd("fod_enable,1,1,0");
+ }
+ if(mX == -1 || mY == -1 || mW == -1 || mH == -1) return;
+
+ try {
+ PrintWriter writer = new PrintWriter("/sys/devices/virtual/touch/tp_dev/fod_status", "UTF-8");
+ writer.println("1");
+ writer.close();
+ } catch(Exception e) {
+ Slog.d("PHH-Enroll", "Failed setting fod status for touchscreen");
+ }
+
+ mParams.x = mX;
+ mParams.y = mY;
+
+ mParams.height = mW;
+ mParams.width = mH;
+ mParams.format = PixelFormat.TRANSLUCENT;
+
+ mParams.type = WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY;
+ mParams.setTitle("Fingerprint on display.untouched");
+ mParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
+ WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH |
+ WindowManager.LayoutParams.FLAG_DIM_BEHIND |
+ WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
+ if(!noDim) {
+ mParams.dimAmount = UNTOUCHED_DIM;
+ mParams.screenBrightness = .0f;
+ } else {
+ mParams.dimAmount = 0;
+ }
+
+ mParams.packageName = "android";
+
+ mParams.gravity = Gravity.TOP | Gravity.LEFT;
+ mHandler.post( () -> {
+ mUiHidden = false;
+ mWM.addView(this, mParams);
+ });
+
+ }
+
+ public void hide() {
+ mInsideCircle = false;
+ Slog.d("PHH-Enroll", "Hide", new Exception());
+ if(mHidden) return;
+ if(mOppoFingerprint != null) {
+ try {
+ mOppoFingerprint.setScreenState(vendor.oppo.hardware.biometrics.fingerprint.V2_1.FingerprintScreenState.FINGERPRINT_SCREEN_ON);
+ } catch(Exception e) {
+ Slog.d("PHH-Enroll", "Failed setting oppo screen state", e);
+ }
+ }
+ writeFile("/sys/kernel/oppo_display/dimlayer_hbm", "0");
+ writeFile("/sys/kernel/oplus_display/dimlayer_bl_en", "0");
+ mHidden = true;
+ if(mFullGreenDisplayed) {
+ Slog.d("PHH-Enroll", "Removing full green because of hide");
+ mFullGreenDisplayed = false;
+ mWM.removeView(mFullGreen);
+ }
+ if(samsungFod) {
+ samsungCmd("fod_enable,0");
+ }
+ if(mX == -1 || mY == -1 || mW == -1 || mH == -1) return;
+
+ try {
+ if(mXiaomiFingerprint != null) {
+ mXiaomiFingerprint.extCmd(0xa, 0);
+ }
+ } catch(Exception e) {
+ Slog.d("PHH-Enroll", "Failed calling xiaomi fp extcmd");
+ }
+ try {
+ PrintWriter writer = new PrintWriter("/sys/devices/virtual/touch/tp_dev/fod_status", "UTF-8");
+ writer.println("0");
+ writer.close();
+ } catch(Exception e) {
+ Slog.d("PHH-Enroll", "Failed setting fod status for touchscreen");
+ }
+
+ Slog.d("PHH-Enroll", "Removed facola");
+ mHandler.post( () -> {
+ mUiHidden = true;
+ mWM.removeView(this);
+ });
+ }
+
+ private static boolean samsungHasCmd(String cmd) {
+ try {
+ File f = new File("/sys/devices/virtual/sec/tsp/cmd_list");
+ if(!f.exists()) return false;
+
+ BufferedReader b = new BufferedReader(new FileReader(f));
+ String line = null;
+ while( (line = b.readLine()) != null) {
+ if(line.equals(cmd)) return true;
+ }
+ return false;
+ } catch(Exception e) {
+ return false;
+ }
+ }
+
+ private static String readFile(String path) {
+ try {
+ File f = new File(path);
+
+ BufferedReader b = new BufferedReader(new FileReader(f));
+ return b.readLine();
+ } catch(Exception e) {
+ return null;
+ }
+ }
+
+ public static void samsungCmd(String cmd) {
+ try {
+ PrintWriter writer = new PrintWriter("/sys/devices/virtual/sec/tsp/cmd", "UTF-8");
+ writer.println(cmd);
+ writer.close();
+
+ String status = readFile("/sys/devices/virtual/sec/tsp/cmd_status");
+ String ret = readFile("/sys/devices/virtual/sec/tsp/cmd_result");
+
+ android.util.Log.d("PHH", "Sending command " + cmd + " returned " + ret + ":" + status);
+ } catch(Exception e) {
+ android.util.Log.d("PHH", "Failed sending command " + cmd, e);
+ }
+ }
+
+ private static void writeFile(String path, String value) {
+ try {
+ PrintWriter writer = new PrintWriter(path, "UTF-8");
+ writer.println(value);
+ writer.close();
+ } catch(Exception e) {
+ android.util.Log.d("PHH", "Failed writing to " + path + ": " + value);
+ }
+ }
+
+ private static void writeFile(File file, String value) {
+ try {
+ PrintWriter writer = new PrintWriter(file, "UTF-8");
+ writer.println(value);
+ writer.close();
+ } catch(Exception e) {
+ android.util.Log.d("PHH", "Failed writing to " + file + ": " + value);
+ }
+ }
+
+}
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
index def1a873590..7143655d5da 100644
--- a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
@@ -126,6 +126,7 @@ public class FingerprintService extends BiometricServiceBase {
}
}
+ private FacolaView mFacola;
private final class FingerprintAuthClient extends AuthenticationClientImpl {
private final boolean mDetectOnly;
@@ -186,6 +187,34 @@ public class FingerprintService extends BiometricServiceBase {
boolean isDetectOnly() {
return mDetectOnly;
+ }
+
+ @Override
+ public boolean onAcquired(int acquiredInfo, int vendorCode) {
+ boolean result = super.onAcquired(acquiredInfo, vendorCode);
+ if(result) mFacola.hide();
+ return result;
+ }
+
+ @Override
+ public boolean onAuthenticated(BiometricAuthenticator.Identifier identifier,
+ boolean authenticated, ArrayList<Byte> token) {
+ boolean result = super.onAuthenticated(identifier, authenticated, token);
+ if(result) mFacola.hide();
+ return result;
+ }
+
+
+ @Override
+ public int start() {
+ mFacola.show();
+ return super.start();
+ }
+
+ @Override
+ public int stop(boolean initiatedByClient) {
+ mFacola.hide();
+ return super.stop(initiatedByClient);
}
}
@@ -216,6 +245,7 @@ public class FingerprintService extends BiometricServiceBase {
final IFingerprintServiceReceiver receiver, final int flags,
final String opPackageName) {
checkPermission(MANAGE_FINGERPRINT);
+ mFacola.show();
final boolean restricted = isRestricted();
final int groupId = userId; // default group for fingerprint enrollment
@@ -707,6 +737,9 @@ public class FingerprintService extends BiometricServiceBase {
public void onError(final long deviceId, final int error, final int vendorCode) {
mHandler.post(() -> {
FingerprintService.super.handleError(deviceId, error, vendorCode);
+ if ( error == BiometricConstants.BIOMETRIC_ERROR_CANCELED) {
+ mFacola.hide();
+ }
// TODO: this chunk of code should be common to all biometric services
if (error == BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE) {
// If we get HW_UNAVAILABLE, try to connect again later...
@@ -794,6 +827,7 @@ public class FingerprintService extends BiometricServiceBase {
Slog.w(TAG, "enroll(): no fingerprint HAL!");
return ERROR_ESRCH;
}
+ mFacola.show();
return daemon.enroll(cryptoToken, groupId, timeout);
}
@@ -813,6 +847,7 @@ public class FingerprintService extends BiometricServiceBase {
context.registerReceiver(mLockoutReceiver, new IntentFilter(getLockoutResetIntent()),
getLockoutBroadcastPermission(), null /* handler */);
mLockPatternUtils = new LockPatternUtils(context);
+ mFacola = new FacolaView(context);
}
@Override
--
2.25.1

View File

@ -1,7 +1,7 @@
From d8fbdb4092155a1c8f8e2b2ee77b4fcfb7102367 Mon Sep 17 00:00:00 2001
From b6a356865be43df45ef33cc6473683f3795b77d8 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 12 Aug 2019 23:48:37 +0200
Subject: [PATCH 1/8] Some Samsung devices requires lying colorspace
Subject: [PATCH 01/12] Some Samsung devices requires lying colorspace
Change-Id: I4153b8e7abc10c519565e4e4386c6388621477b2
---
@ -28,5 +28,5 @@ index aa24e8ee6..1c6380f6f 100644
} else if (colorspace == EGL_GL_COLORSPACE_SRGB_KHR) {
return HAL_DATASPACE_V0_SRGB;
--
2.17.1
2.25.1

View File

@ -1,8 +1,8 @@
From 61f5f4b804e8e14f15b928630489f22a5e7df04e Mon Sep 17 00:00:00 2001
From ecd87a69db2346a697eeb81aa0c4f2173a6298f8 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 2/8] On Samsung, we need to send a hack-message to HAL to get
all Sensors
Subject: [PATCH 02/12] On Samsung, we need to send a hack-message to HAL to
get all Sensors
Change-Id: Id6a1fa48340de61c418493668e9abd22c2599376
---
@ -24,7 +24,7 @@ index 1c6380f6f..6e810e592 100644
if (colorspace == EGL_GL_COLORSPACE_LINEAR_KHR) {
if(samsungColorspace)
diff --git a/services/sensorservice/SensorDevice.cpp b/services/sensorservice/SensorDevice.cpp
index 8a282e238..53b686870 100644
index e35559417..99b10faf5 100644
--- a/services/sensorservice/SensorDevice.cpp
+++ b/services/sensorservice/SensorDevice.cpp
@@ -34,7 +34,9 @@
@ -47,5 +47,5 @@ index 8a282e238..53b686870 100644
[&](const auto &list) {
const size_t count = list.size();
--
2.17.1
2.25.1

View File

@ -1,7 +1,8 @@
From 113f48e1e25d168e16e6a6717c7ea70fbef033e3 Mon Sep 17 00:00:00 2001
From 9c8545bb4e7cc03e38e665aef1e11ba733002556 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 3/8] Use BKK's hwcomposer hacks to properly display FOD layers
Subject: [PATCH 03/12] Use BKK's hwcomposer hacks to properly display FOD
layers
Insecure hack: Set FOD layers to magical Z values to trigger
OPPO/Realme/Oneplus' whole blitter behaviours:
@ -38,5 +39,5 @@ index 1faf775ed..deb0b0923 100644
outputDependentState.z, to_string(error).c_str(), static_cast<int32_t>(error));
}
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 0c7b289c3d724f32f4d64e8972736f3aa8e3261f Mon Sep 17 00:00:00 2001
From 5d0b6b58d1f928894cd48d784d80e82719fcf4c7 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 4/8] Samsung + Xiaomi new FOD HBM controls
Subject: [PATCH 04/12] 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 07be7916e..472ceda4d 100644
index 6e4235e40..22b564b8d 100644
--- a/services/surfaceflinger/BufferQueueLayer.cpp
+++ b/services/surfaceflinger/BufferQueueLayer.cpp
@@ -26,6 +26,7 @@
@ -36,7 +36,7 @@ index 07be7916e..472ceda4d 100644
namespace android {
BufferQueueLayer::BufferQueueLayer(const LayerCreationArgs& args) : BufferLayer(args) {}
@@ -486,6 +495,7 @@ void BufferQueueLayer::onFirstRef() {
@@ -491,6 +500,7 @@ void BufferQueueLayer::onFirstRef() {
mConsumer =
mFlinger->getFactory().createBufferLayerConsumer(consumer, mFlinger->getRenderEngine(),
mTextureName, this);
@ -44,7 +44,7 @@ index 07be7916e..472ceda4d 100644
mConsumer->setConsumerUsageBits(getEffectiveUsage(0));
mContentsChangedListener = new ContentsChangedListener(this);
@@ -509,9 +519,16 @@ status_t BufferQueueLayer::setDefaultBufferProperties(uint32_t w, uint32_t h, Pi
@@ -514,9 +524,16 @@ status_t BufferQueueLayer::setDefaultBufferProperties(uint32_t w, uint32_t h, Pi
return BAD_VALUE;
}
@ -118,5 +118,5 @@ index deb0b0923..5f9620715 100644
if (auto error = hwcLayer->setZOrder(z); error != hal::Error::NONE) {
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 15125c6d89352f46742c0e575556e43720e1c03c Mon Sep 17 00:00:00 2001
From 028e6894c88da578f88c7fa5359623d57fa340d3 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Fri, 11 Sep 2020 21:33:05 +0200
Subject: [PATCH 5/8] vr_hwc crashes because it registers a 2.3 hwc, while
Subject: [PATCH 05/12] vr_hwc crashes because it registers a 2.3 hwc, while
manifest says 2.1
Change-Id: Icfaea3e471209e5773f52f880ffbcf5de744737e
@ -23,5 +23,5 @@ index 1068cac33..6694ac086 100644
<name>IComposer</name>
<instance>vr</instance>
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 1003d0293dc372b8fc0bbefe160f7d6a770b184b Mon Sep 17 00:00:00 2001
From 1bd5c0c257ad9df65049928fb859b04353278c5a Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 30 Sep 2020 22:41:39 +0200
Subject: [PATCH 6/8] Add persist.sys.phh.no_present_or_validate property to
Subject: [PATCH 06/12] Add persist.sys.phh.no_present_or_validate property to
disable presentOrValidate since on vndk 26/27 presentOrValidate can be broken
Change-Id: I5f0c6c5e129bc21348d6f279d3ba455a5a0f008b
@ -46,5 +46,5 @@ index 7a2f0f34e..1ea104521 100644
uint32_t state = UINT32_MAX;
error = hwcDisplay->presentOrValidate(&numTypes, &numRequests, &outPresentFence , &state);
--
2.17.1
2.25.1

View File

@ -1,8 +1,9 @@
From dc47d76a49d2a2d8dc2bd6bf68098cd910fcb364 Mon Sep 17 00:00:00 2001
From f42ba2e579fcac3e8be40dc52de43a6a1a4c64d8 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 30 Sep 2020 22:51:37 +0200
Subject: [PATCH 7/8] Add persist.sys.phh.disable_sensor_direct_report property
to disable Sensors direct report (it seems to break Qin 2 Pro sensors HAL)
Subject: [PATCH 07/12] Add persist.sys.phh.disable_sensor_direct_report
property to disable Sensors direct report (it seems to break Qin 2 Pro
sensors HAL)
Change-Id: I0763324a4bd6a3ba6716c396c4cb3f0772b85d62
---
@ -10,7 +11,7 @@ Change-Id: I0763324a4bd6a3ba6716c396c4cb3f0772b85d62
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/services/sensorservice/SensorDevice.cpp b/services/sensorservice/SensorDevice.cpp
index 53b686870..87899e2cd 100644
index 99b10faf5..eb5bfe281 100644
--- a/services/sensorservice/SensorDevice.cpp
+++ b/services/sensorservice/SensorDevice.cpp
@@ -22,6 +22,7 @@
@ -37,5 +38,5 @@ index 53b686870..87899e2cd 100644
void SensorDevice::initializeSensorList() {
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From f26a70a804a669d6379d80285c92520ecfa3942e Mon Sep 17 00:00:00 2001
From 7cb681c036beac8cae5912d8af30493a12d9df22 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 08/10] Matching an input with a display uses uniqueId
Subject: [PATCH 08/12] 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,10 +15,10 @@ 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 4b19e5e35..8f2d3a685 100644
index 3347ba6ad..67a3c565f 100644
--- a/services/inputflinger/reader/InputDevice.cpp
+++ b/services/inputflinger/reader/InputDevice.cpp
@@ -275,7 +275,10 @@ void InputDevice::configure(nsecs_t when, const InputReaderConfiguration* config
@@ -279,7 +279,10 @@ void InputDevice::configure(nsecs_t when, const InputReaderConfiguration* config
mAssociatedDisplayPort = std::nullopt;
mAssociatedViewport = std::nullopt;
// Find the display port that corresponds to the current input port.

View File

@ -1,7 +1,7 @@
From 5edeb168bf831aaca539aa8f063564f740676e16 Mon Sep 17 00:00:00 2001
From a24b28b8cf08839ea0052c2bb37696b9d24ba8bc Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 26 Oct 2020 23:16:30 +0100
Subject: [PATCH 09/10] Apply associated display for joysticks
Subject: [PATCH 09/12] Apply associated display for joysticks
Change-Id: I5f6c237e6bf53312aff3dc02a46ce1c779063203
---

View File

@ -1,7 +1,7 @@
From 6097954863cabad45d48672f56b878686e6be088 Mon Sep 17 00:00:00 2001
From d90165b4d9bbd1ee1ca69fb4fe87ffacb1e376cc Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Sun, 19 Aug 2018 23:07:24 +0200
Subject: [PATCH 10/10] Ignore usage bits verification
Subject: [PATCH 10/12] Ignore usage bits verification
This didn't ignore as of 8.1, so we're ""safe""
@ -11,10 +11,10 @@ Change-Id: I40c1d588c1fa104d844322b469f76e52bee1495a
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libs/ui/Gralloc2.cpp b/libs/ui/Gralloc2.cpp
index 040a62b54..01dba7689 100644
index 224caf721..042d58df0 100644
--- a/libs/ui/Gralloc2.cpp
+++ b/libs/ui/Gralloc2.cpp
@@ -108,7 +108,7 @@ status_t Gralloc2Mapper::validateBufferDescriptorInfo(
@@ -115,7 +115,7 @@ status_t Gralloc2Mapper::validateBufferDescriptorInfo(
if (descriptorInfo->usage & ~validUsageBits) {
ALOGE("buffer descriptor contains invalid usage bits 0x%" PRIx64,
descriptorInfo->usage & ~validUsageBits);

View File

@ -1,7 +1,7 @@
From cc94e422c0a8b2680e7f9cfc391b2b03a56da765 Mon Sep 17 00:00:00 2001
From 25a8d86f4887f16636af67b88adb2c7813cbd512 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 11/11] unshared_oob didn't exist in O/P, so detect its
Subject: [PATCH 11/12] unshared_oob didn't exist in O/P, so detect its
supported based on vndk version
---

View File

@ -1,7 +1,7 @@
From 862798495297d8cb0d02951d533644929570ae1f Mon Sep 17 00:00:00 2001
From c551bf9764cee07ba7b0e5b682df70614d4f5df5 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 14/14] Remove Samsung system permission on sensors
Subject: [PATCH 12/12] Remove Samsung system permission on sensors
---
libs/sensor/Sensor.cpp | 1 +

View File

@ -1,7 +1,7 @@
From 3337759a488bf320bbebcb5b7d5da981555bb758 Mon Sep 17 00:00:00 2001
From 5829017394d9c90cf4456f39401db5c57ae54d97 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 20 Feb 2018 23:04:50 +0100
Subject: [PATCH 1/3] Make BTM_BYPASS_EXTRA_ACL_SETUP dynamic
Subject: [PATCH 1/4] Make BTM_BYPASS_EXTRA_ACL_SETUP dynamic
Change-Id: Icb0868566b29b053ed7e83c9fd32e225af3f2e46
---
@ -26,7 +26,7 @@ index 110354f05..b81185e2c 100644
/******************************************************************************
* Constants & Macros
diff --git a/internal_include/bt_target.h b/internal_include/bt_target.h
index 4aca86822..57bd69e9f 100644
index 63b00b00c..004c0cc66 100644
--- a/internal_include/bt_target.h
+++ b/internal_include/bt_target.h
@@ -32,6 +32,9 @@
@ -40,10 +40,10 @@ index 4aca86822..57bd69e9f 100644
#include "bt_types.h" /* This must be defined AFTER buildcfg.h */
diff --git a/stack/btm/btm_acl.cc b/stack/btm/btm_acl.cc
index 3c8a6a69a..894459854 100644
index 2c7bebd63..a20e6de34 100644
--- a/stack/btm/btm_acl.cc
+++ b/stack/btm/btm_acl.cc
@@ -1208,17 +1208,17 @@ void btm_read_remote_ext_features_failed(uint8_t status, uint16_t handle) {
@@ -1209,17 +1209,17 @@ void btm_read_remote_ext_features_failed(uint8_t status, uint16_t handle) {
void btm_establish_continue(tACL_CONN* p_acl_cb) {
tBTM_BL_EVENT_DATA evt_data;
BTM_TRACE_DEBUG("btm_establish_continue");
@ -72,7 +72,7 @@ index 3c8a6a69a..894459854 100644
BTM_TRACE_ERROR("%s: Already link is up ", __func__);
return;
diff --git a/stack/btm/btm_sec.cc b/stack/btm/btm_sec.cc
index 63e4f6ce1..7dea81b44 100644
index bdda174ac..d04741367 100644
--- a/stack/btm/btm_sec.cc
+++ b/stack/btm/btm_sec.cc
@@ -4168,15 +4168,15 @@ void btm_sec_connected(const RawAddress& bda, uint16_t handle, uint8_t status,
@ -101,5 +101,5 @@ index 63e4f6ce1..7dea81b44 100644
btm_acl_created(bda, p_dev_rec->dev_class, p_dev_rec->sec_bd_name, handle,
HCI_ROLE_SLAVE, BT_TRANSPORT_BR_EDR);
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From a39b9abfe1e7e1bea9c409a1680cb6f18a6ec354 Mon Sep 17 00:00:00 2001
From eeea95f0991885edec372341a77c440da9298706 Mon Sep 17 00:00:00 2001
From: penn5 <penn5@users.noreply.github.com>
Date: Mon, 4 Mar 2019 22:21:07 +0000
Subject: [PATCH 2/3] Add props to control supported features and states (#1)
Subject: [PATCH 2/4] Add props to control supported features and states (#1)
* Add bitmask for supported fields
Use persist.sys.bt.unsupport.states, defaults to 0, left-aligned.
@ -149,5 +149,5 @@ index b1efd444d..88dc4c6cd 100644
}
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From eba7ce1a14f942bfdc6ac93eac14188b7b2b91ec Mon Sep 17 00:00:00 2001
From edfc435eb11aeaf581084e55b4295cecb0a3fe47 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 25 May 2020 21:25:12 +0200
Subject: [PATCH 3/3] Add persist.sys.phh.disable_a2dp_offload property to
Subject: [PATCH 3/4] Add persist.sys.phh.disable_a2dp_offload property to
force a2dp offload
---
@ -10,10 +10,10 @@ Subject: [PATCH 3/3] Add persist.sys.phh.disable_a2dp_offload property to
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/btif/src/btif_av.cc b/btif/src/btif_av.cc
index 1003b0f82..b7832a478 100644
index 679ec5ef5..0cab72a4a 100644
--- a/btif/src/btif_av.cc
+++ b/btif/src/btif_av.cc
@@ -968,9 +968,14 @@ bt_status_t BtifAvSource::Init(
@@ -971,9 +971,14 @@ bt_status_t BtifAvSource::Init(
osi_property_get("ro.bluetooth.a2dp_offload.supported", value_sup, "false");
osi_property_get("persist.bluetooth.a2dp_offload.disabled", value_dis,
"false");
@ -30,10 +30,10 @@ index 1003b0f82..b7832a478 100644
callbacks_ = callbacks;
if (a2dp_offload_enabled_) {
diff --git a/stack/a2dp/a2dp_codec_config.cc b/stack/a2dp/a2dp_codec_config.cc
index edf7e0c46..795cbab9c 100644
index 5f4371fbc..b9d91f3d8 100644
--- a/stack/a2dp/a2dp_codec_config.cc
+++ b/stack/a2dp/a2dp_codec_config.cc
@@ -560,13 +560,18 @@ bool A2dpCodecs::init() {
@@ -573,13 +573,18 @@ bool A2dpCodecs::init() {
char* tok = NULL;
char* tmp_token = NULL;
bool offload_codec_support[BTAV_A2DP_CODEC_INDEX_MAX] = {false};
@ -53,7 +53,7 @@ index edf7e0c46..795cbab9c 100644
if (a2dp_offload_status) {
char value_cap[PROPERTY_VALUE_MAX];
@@ -654,7 +659,7 @@ bool A2dpCodecs::init() {
@@ -667,7 +672,7 @@ bool A2dpCodecs::init() {
}
}
@ -63,5 +63,5 @@ index edf7e0c46..795cbab9c 100644
A2dpCodecConfig* A2dpCodecs::findSourceCodecConfig(
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From f40e85b84e53cccee6a80e5aff2db2adec55dfeb Mon Sep 17 00:00:00 2001
From 362b7dad26bf6bb77f82bed4f15ff14dc8b8d7cc Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Mon, 7 Jun 2021 17:09:13 -0400
Subject: [PATCH 5/5] Add a property to disable eSCO
Subject: [PATCH 4/4] Add a property to disable eSCO
eSCO is troublesome on some old devices.
It is unknown whether it applies to any Treble device, but investigation

View File

@ -1,7 +1,7 @@
From b7ff0d28b15d50e4c3aa6ff636eed67290d20e33 Mon Sep 17 00:00:00 2001
From 628fae19c2ba80345ba7fb7532d6812596b14051 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 1/7] Detect allowed sdcard options based on vndk
Subject: [PATCH 1/8] Detect allowed sdcard options based on vndk
Some kernel crashes when using too recent sdcardfs options
@ -25,5 +25,5 @@ index 622de5b7a..955ddbb4c 100644
for (int j = 0; j < new_opts_list.size() - i; ++j) {
new_opts += new_opts_list[j];
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 79508b1e216217f4e9b8a8692049407e30bbb0b6 Mon Sep 17 00:00:00 2001
From 195e3c90c6657edc16993b8d8126d93a9556e921 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Wed, 2 Jan 2019 17:17:20 +0100
Subject: [PATCH 2/7] Ignore /proc/kmsg if reading from it faults
Subject: [PATCH 2/8] Ignore /proc/kmsg if reading from it faults
On some devices, (The only known one is Y6 2018), reading from
/proc/kmsg fails, with a status EFAULT
@ -29,5 +29,5 @@ index edd326aec..8ff719f6e 100644
}
len += retval;
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 87add47acc49be7c6b2eb9802f8d99382409847a Mon Sep 17 00:00:00 2001
From 84460c07ac7b90774999ef61f1de75f24fc11342 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 3/7] [first stage] If Vboot2 fails, fall-back to Vboot1
Subject: [PATCH 3/8] 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.
@ -37,5 +37,5 @@ index 8eb2f9748..990d76928 100644
void SetInitAvbVersionInRecovery() {
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From c45bbb47bdbab406a5e24f82ec76dbe7a44adcca Mon Sep 17 00:00:00 2001
From c5d530799f4813f189b470998cfad20c44eeb291 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 4/7] Ugly but secure: Set /dev/uinput as 0666 to fix
Subject: [PATCH 4/8] 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
@ -28,5 +28,5 @@ index 9c2cdf27f..081037d44 100644
/dev/tty0 0660 root system
/dev/graphics/* 0660 root graphics
--
2.17.1
2.25.1

View File

@ -1,7 +1,7 @@
From 12d11df31c36c0d043efb30b8b3010ba816cb9d0 Mon Sep 17 00:00:00 2001
From 908f6c07ce66aa530510dd73560a31d2dfbad022 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/7] Have sdcard daemon detect sdcardfs params based on vndk
Subject: [PATCH 5/8] Have sdcard daemon detect sdcardfs params based on vndk
version
Change-Id: Id374e781957927d5604cb96c7a39b3fb28b3a6c5
@ -43,5 +43,5 @@ index 955ddbb4c..e580190e9 100644
for (int j = 0; j < new_opts_list.size() - i; ++j) {
new_opts += new_opts_list[j];
--
2.17.1
2.25.1

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