diff --git a/patches/frameworks/base/0001-Fix-backlight-control-on-Galaxy-S9.patch b/patches/frameworks/base/0001-Fix-backlight-control-on-Galaxy-S9.patch
index 1ef7b5b..471b7dc 100644
--- a/patches/frameworks/base/0001-Fix-backlight-control-on-Galaxy-S9.patch
+++ b/patches/frameworks/base/0001-Fix-backlight-control-on-Galaxy-S9.patch
@@ -1,4 +1,4 @@
-From e09b16ffadbeabfcb3c91878e5bfa34b694391e8 Mon Sep 17 00:00:00 2001
+From 6bd7271866e189b7daedb84a2a003a4f0dd03e51 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 01/28] Fix backlight control on Galaxy S9(+)
diff --git a/patches/frameworks/base/0002-Relax-requirement-for-visible-flag-to-sdcards.patch b/patches/frameworks/base/0002-Relax-requirement-for-visible-flag-to-sdcards.patch
index ff2a254..2fb8363 100644
--- a/patches/frameworks/base/0002-Relax-requirement-for-visible-flag-to-sdcards.patch
+++ b/patches/frameworks/base/0002-Relax-requirement-for-visible-flag-to-sdcards.patch
@@ -1,4 +1,4 @@
-From 407350d3278e62ec700ab46c7eb29d5a3e327c8c Mon Sep 17 00:00:00 2001
+From a07a200d464401523f00bfabda903af18057fa0d Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <phh@phh.me>
 Date: Tue, 28 Nov 2017 18:28:04 +0100
 Subject: [PATCH 02/28] Relax requirement for visible flag to sdcards
diff --git a/patches/frameworks/base/0003-Also-scan-system-overlay.patch b/patches/frameworks/base/0003-Also-scan-system-overlay.patch
index e306e8c..69952cb 100644
--- a/patches/frameworks/base/0003-Also-scan-system-overlay.patch
+++ b/patches/frameworks/base/0003-Also-scan-system-overlay.patch
@@ -1,4 +1,4 @@
-From 2e2ca9fba1d98e93d3fdb4dad47cbf8c5fcc1e1b Mon Sep 17 00:00:00 2001
+From 31c8c0bbc202f8e40935db3ea1a569cdbaceafb7 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/28] Also scan /system/overlay
diff --git a/patches/frameworks/base/0004-Don-t-crash-if-there-is-IR-HAL-is-not-declared.patch b/patches/frameworks/base/0004-Don-t-crash-if-there-is-IR-HAL-is-not-declared.patch
index d58bc5b..93bbee2 100644
--- a/patches/frameworks/base/0004-Don-t-crash-if-there-is-IR-HAL-is-not-declared.patch
+++ b/patches/frameworks/base/0004-Don-t-crash-if-there-is-IR-HAL-is-not-declared.patch
@@ -1,4 +1,4 @@
-From cbdeffa0f4428fc5fd91f815c425af09545a5820 Mon Sep 17 00:00:00 2001
+From 6f9b42f6260845b9ff6f9c70c1f685b11898cf63 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/28] Don't crash if there is IR HAL is not declared
diff --git a/patches/frameworks/base/0005-Fix-62.patch b/patches/frameworks/base/0005-Fix-62.patch
index 338af54..253868f 100644
--- a/patches/frameworks/base/0005-Fix-62.patch
+++ b/patches/frameworks/base/0005-Fix-62.patch
@@ -1,4 +1,4 @@
-From 658be986bca32ad68dda0cbd2fed9ff684077b0a Mon Sep 17 00:00:00 2001
+From 1d862c2a56e03941f49dc58172afd9c00a519264 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/28] Fix(?) #62
diff --git a/patches/frameworks/base/0006-S9-brightness-override-only-for-screen.patch b/patches/frameworks/base/0006-S9-brightness-override-only-for-screen.patch
index c606f15..1ac2fc5 100644
--- a/patches/frameworks/base/0006-S9-brightness-override-only-for-screen.patch
+++ b/patches/frameworks/base/0006-S9-brightness-override-only-for-screen.patch
@@ -1,4 +1,4 @@
-From b55ab7d88e2d9c8233a5b732071a84030c649008 Mon Sep 17 00:00:00 2001
+From 961afaf5f6f3102729ea4f11805c28f5ac0b6c43 Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <pierre-hugues.husson@softathome.com>
 Date: Thu, 7 Jun 2018 13:36:51 +0200
 Subject: [PATCH 06/28] S9 brightness override only for screen
diff --git a/patches/frameworks/base/0007-Fix-OP6-brightness.patch b/patches/frameworks/base/0007-Fix-OP6-brightness.patch
index 66e87e0..7a15769 100644
--- a/patches/frameworks/base/0007-Fix-OP6-brightness.patch
+++ b/patches/frameworks/base/0007-Fix-OP6-brightness.patch
@@ -1,4 +1,4 @@
-From 47703e85e3b6d3b04fe0ae9746565481368815ba Mon Sep 17 00:00:00 2001
+From e10fac35f4a0e7b03046260ce93dc9b820349a16 Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <pierre-hugues.husson@softathome.com>
 Date: Thu, 7 Jun 2018 13:42:02 +0200
 Subject: [PATCH 07/28] Fix OP6 brightness
diff --git a/patches/frameworks/base/0007-WIP-Fix-OP6-brightness.patch b/patches/frameworks/base/0007-WIP-Fix-OP6-brightness.patch
deleted file mode 100644
index b97c749..0000000
--- a/patches/frameworks/base/0007-WIP-Fix-OP6-brightness.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 0171e6233f7de549bdc94118f31b55830ef470c5 Mon Sep 17 00:00:00 2001
-From: Pierre-Hugues Husson <pierre-hugues.husson@softathome.com>
-Date: Thu, 7 Jun 2018 13:42:02 +0200
-Subject: [PATCH 07/27] [WIP] Fix OP6 brightness
-
----
- .../com/android/server/lights/LightsService.java     | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
-diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
-index eb25943fa6b..a77af445ba6 100644
---- a/services/core/java/com/android/server/lights/LightsService.java
-+++ b/services/core/java/com/android/server/lights/LightsService.java
-@@ -59,6 +59,18 @@ public class LightsService extends SystemService {
-                         setLightLocked(brightness*100, LIGHT_FLASH_HARDWARE, 0, 0, brightnessMode);
-                         return;
-                     }
-+
-+                    boolean qcomExtendBrightness = SystemProperties.getBoolean("persist.extend.brightness", false);
-+                    int scale = SystemProperties.getInt("persist.display.max_brightness", 1023);
-+                    if(fp.contains("OnePlus6")) {
-+                        qcomExtendBrightness = true;
-+                        scale = 1023;
-+                    }
-+
-+                    if(qcomExtendBrightness) {
-+                        setLightLocked(brightness * scale / 255, LIGHT_FLASH_NONE, 0, 0, brightnessMode);
-+                        return;
-+                    }
-                 }
- 
-                 int color = brightness & 0x000000ff;
--- 
-2.17.1
-
diff --git a/patches/frameworks/base/0008-Try-to-make-brightness-more-generic-using-property-s.patch b/patches/frameworks/base/0008-Try-to-make-brightness-more-generic-using-property-s.patch
index 9c9a246..522bd7a 100644
--- a/patches/frameworks/base/0008-Try-to-make-brightness-more-generic-using-property-s.patch
+++ b/patches/frameworks/base/0008-Try-to-make-brightness-more-generic-using-property-s.patch
@@ -1,4 +1,4 @@
-From 6c29648a36aa2f42059ea9ad308fd6712c8b4f66 Mon Sep 17 00:00:00 2001
+From f6ccbdbc264f471ee4effd4f57b5c2971da6e914 Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <phh@phh.me>
 Date: Sun, 10 Jun 2018 22:54:55 +0200
 Subject: [PATCH 08/28] Try to make brightness more generic using property set
diff --git a/patches/frameworks/base/0009-property-matching-RROs-allow-to-prefix-the-value-wit.patch b/patches/frameworks/base/0009-property-matching-RROs-allow-to-prefix-the-value-wit.patch
index 672ea01..162a74f 100644
--- a/patches/frameworks/base/0009-property-matching-RROs-allow-to-prefix-the-value-wit.patch
+++ b/patches/frameworks/base/0009-property-matching-RROs-allow-to-prefix-the-value-wit.patch
@@ -1,4 +1,4 @@
-From a877d5e95b0f102f3c4a750086ff3af7d0513cd8 Mon Sep 17 00:00:00 2001
+From 1246ba66fe9372d85c1409f1cda6576ddcb9a53a Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <phh@phh.me>
 Date: Tue, 12 Jun 2018 22:55:32 +0200
 Subject: [PATCH 09/28] property-matching RROs: allow to prefix the value with
diff --git a/patches/frameworks/base/0010-Fix-typo-on-fnmatch-return-value-check.patch b/patches/frameworks/base/0010-Fix-typo-on-fnmatch-return-value-check.patch
index c2b2243..3616903 100644
--- a/patches/frameworks/base/0010-Fix-typo-on-fnmatch-return-value-check.patch
+++ b/patches/frameworks/base/0010-Fix-typo-on-fnmatch-return-value-check.patch
@@ -1,4 +1,4 @@
-From 7ce8bffed817e20a5f79fed31b62dfaa6e8ddebc Mon Sep 17 00:00:00 2001
+From 2cdac8c0882c5df9e73019adacff8b67a491ce1d Mon Sep 17 00:00:00 2001
 From: Song Fuchang <song.fc@gmail.com>
 Date: Sun, 17 Jun 2018 22:39:37 +0800
 Subject: [PATCH 10/28] Fix typo on fnmatch return value check
diff --git a/patches/frameworks/base/0011-Add-Qualcomm-starlte.patch b/patches/frameworks/base/0011-Add-Qualcomm-starlte.patch
index b5a69dc..aa7efc5 100644
--- a/patches/frameworks/base/0011-Add-Qualcomm-starlte.patch
+++ b/patches/frameworks/base/0011-Add-Qualcomm-starlte.patch
@@ -1,4 +1,4 @@
-From 971fea540371e8ca99dbe0fdef049e11168c1c42 Mon Sep 17 00:00:00 2001
+From 3f62b02b194cf3e39124d1504ddecc17ff6b84ff Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <phh@phh.me>
 Date: Mon, 25 Jun 2018 22:43:32 +0200
 Subject: [PATCH 11/28] Add Qualcomm starlte
diff --git a/patches/frameworks/base/0012-Galaxy-S9-remaining-of-HAL-onEnroll-is-actually-a-pe.patch b/patches/frameworks/base/0012-Galaxy-S9-remaining-of-HAL-onEnroll-is-actually-a-pe.patch
deleted file mode 100644
index 1db1bbb..0000000
--- a/patches/frameworks/base/0012-Galaxy-S9-remaining-of-HAL-onEnroll-is-actually-a-pe.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From e4d810a1141460417b4db866401acb3d5397f46b 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 12/27] [Galaxy S9] "remaining" of HAL onEnroll is actually a
- percent of progress
-
----
- .../com/android/server/fingerprint/FingerprintService.java  | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/services/core/java/com/android/server/fingerprint/FingerprintService.java b/services/core/java/com/android/server/fingerprint/FingerprintService.java
-index 06329e571b4..6f09433c002 100644
---- a/services/core/java/com/android/server/fingerprint/FingerprintService.java
-+++ b/services/core/java/com/android/server/fingerprint/FingerprintService.java
-@@ -1046,7 +1046,11 @@ public class FingerprintService extends SystemService implements IHwBinder.Death
-             mHandler.post(new Runnable() {
-                 @Override
-                 public void run() {
--                    handleEnrollResult(deviceId, fingerId, groupId, remaining);
-+                    int remaining2 = remaining;
-+                    String fp = android.os.SystemProperties.get("ro.vendor.build.fingerprint");
-+                    if(fp != null && (fp.contains("starlte") || fp.contains("star2lte") || fp.contains("starqlte") || fp.contains("star2qlte")))
-+                        remaining2 = 100 - remaining2;
-+                    handleEnrollResult(deviceId, fingerId, groupId, remaining2);
-                 }
-             });
-         }
--- 
-2.17.1
-
diff --git a/patches/frameworks/base/0012-remaining-of-HAL-onEnroll-is-actually-a-percent-of-p.patch b/patches/frameworks/base/0012-remaining-of-HAL-onEnroll-is-actually-a-percent-of-p.patch
index 1256b8a..3e8a68f 100644
--- a/patches/frameworks/base/0012-remaining-of-HAL-onEnroll-is-actually-a-percent-of-p.patch
+++ b/patches/frameworks/base/0012-remaining-of-HAL-onEnroll-is-actually-a-percent-of-p.patch
@@ -1,4 +1,4 @@
-From 8b8151519a0fe385ae3a682a837ffd7c674fc883 Mon Sep 17 00:00:00 2001
+From 3368e7c1d0b3a048ac3b5bb1fa3b75aa0aae62d3 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 12/28] "remaining" of HAL onEnroll is actually a percent of
diff --git a/patches/frameworks/base/0013-Show-APN-Settings-for-CDMA-carriers.patch b/patches/frameworks/base/0013-Show-APN-Settings-for-CDMA-carriers.patch
index 7f667f3..3692018 100644
--- a/patches/frameworks/base/0013-Show-APN-Settings-for-CDMA-carriers.patch
+++ b/patches/frameworks/base/0013-Show-APN-Settings-for-CDMA-carriers.patch
@@ -1,4 +1,4 @@
-From 7eb9fe33b46957cd510e558e337668c5929bc9d2 Mon Sep 17 00:00:00 2001
+From 0de75ef68b3d13a02a3048dd4cee4be9042908d6 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 13/28] Show APN Settings for CDMA carriers
diff --git a/patches/frameworks/base/0014-Change-SignalStrentgh-to-change-behaviour-based-on-p.patch b/patches/frameworks/base/0014-Change-SignalStrentgh-to-change-behaviour-based-on-p.patch
index 8be6b0a..ce5dd90 100644
--- a/patches/frameworks/base/0014-Change-SignalStrentgh-to-change-behaviour-based-on-p.patch
+++ b/patches/frameworks/base/0014-Change-SignalStrentgh-to-change-behaviour-based-on-p.patch
@@ -1,4 +1,4 @@
-From 1c50acac96d1a3aea9acd474db48fcfeb17adf0c Mon Sep 17 00:00:00 2001
+From 8e555b45dff0bb454adabe8e020a4da62d0e4a4f Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <phh@phh.me>
 Date: Mon, 6 Aug 2018 20:01:44 +0200
 Subject: [PATCH 14/28] Change SignalStrentgh to change behaviour based on
diff --git a/patches/frameworks/base/0015-idmap-Don-t-silently-ignore-RROs-with-same-priority.patch b/patches/frameworks/base/0015-idmap-Don-t-silently-ignore-RROs-with-same-priority.patch
index 1c50139..3823022 100644
--- a/patches/frameworks/base/0015-idmap-Don-t-silently-ignore-RROs-with-same-priority.patch
+++ b/patches/frameworks/base/0015-idmap-Don-t-silently-ignore-RROs-with-same-priority.patch
@@ -1,4 +1,4 @@
-From 0582b5385471ec08573918bf8c3de715d0bd44e1 Mon Sep 17 00:00:00 2001
+From 241dc58203f4d59f985d4d8a2ed87ea92eed91ac Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <phh@phh.me>
 Date: Sun, 19 Aug 2018 10:51:06 +0200
 Subject: [PATCH 15/28] idmap: Don't silently ignore RROs with same priority
diff --git a/patches/frameworks/base/0016-Move-SysuiDarkThemeOverlay-to-system.patch b/patches/frameworks/base/0016-Move-SysuiDarkThemeOverlay-to-system.patch
index ddd8ea9..7d262d9 100644
--- a/patches/frameworks/base/0016-Move-SysuiDarkThemeOverlay-to-system.patch
+++ b/patches/frameworks/base/0016-Move-SysuiDarkThemeOverlay-to-system.patch
@@ -1,4 +1,4 @@
-From 947ea3e7734a56d324b7e90cdd0b0c9aa5d5e3f2 Mon Sep 17 00:00:00 2001
+From 641fdcb522b7c28bda3c306a49df6191afc08d01 Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <phh@phh.me>
 Date: Sun, 19 Aug 2018 10:57:21 +0200
 Subject: [PATCH 16/28] Move SysuiDarkThemeOverlay to /system
diff --git a/patches/frameworks/base/0017-It-is-okay-not-to-have-wifi-in-SystemUI-on-FDE-lock.patch b/patches/frameworks/base/0017-It-is-okay-not-to-have-wifi-in-SystemUI-on-FDE-lock.patch
index 5e61baf..cc4c99f 100644
--- a/patches/frameworks/base/0017-It-is-okay-not-to-have-wifi-in-SystemUI-on-FDE-lock.patch
+++ b/patches/frameworks/base/0017-It-is-okay-not-to-have-wifi-in-SystemUI-on-FDE-lock.patch
@@ -1,4 +1,4 @@
-From 209ef1fd6103ea99db0775692ca74d9c24dca34f Mon Sep 17 00:00:00 2001
+From d8a220a78600edaecefcf36b06dd05405562ba81 Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <phh@phh.me>
 Date: Mon, 20 Aug 2018 22:27:02 +0200
 Subject: [PATCH 17/28] It is okay not to have wifi in SystemUI (on FDE lock)
diff --git a/patches/frameworks/base/0017-Reintroduce-button-backlight-and-respective-inactivi.patch b/patches/frameworks/base/0017-Reintroduce-button-backlight-and-respective-inactivi.patch
deleted file mode 100644
index 8815a18..0000000
--- a/patches/frameworks/base/0017-Reintroduce-button-backlight-and-respective-inactivi.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 6fb8a9da588b864630a72bffd2d45c27aeb1cc56 Mon Sep 17 00:00:00 2001
-From: Ricardo Cerqueira <cyanogenmod@cerqueira.org>
-Date: Fri, 23 Nov 2012 14:23:16 +0000
-Subject: [PATCH 17/27] Reintroduce button-backlight (and respective inactivity
- timeout)
-
-The power manager rewrite from Change I1d7a52e98f0449f76d70bf421f6a7f245957d1d7
-completely removed support for control of the button backlights, which makes
-all capacitive buttons out there stay dark. The commit message in that change
-mentions it hasn't been implemented _yet_, so this fix should be temporary
-until upstream does their own implementation
-
-[RC: Updated to 5.0]
-
-Change-Id: I6094c446e0b8c23f57d30652a3cbd35dee5e821a
-
-Conflicts:
-	services/core/java/com/android/server/power/PowerManagerService.java
----
- .../android/server/power/PowerManagerService.java   | 13 +++++++++++++
- 1 file changed, 13 insertions(+)
-
-diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
-index eaaa77600bc..e85d8adf21b 100644
---- a/services/core/java/com/android/server/power/PowerManagerService.java
-+++ b/services/core/java/com/android/server/power/PowerManagerService.java
-@@ -233,6 +233,12 @@ public final class PowerManagerService extends SystemService
- 
-     private static final float PROXIMITY_NEAR_THRESHOLD = 5.0f;
- 
-+    // Add button light timeout
-+    private static final int BUTTON_ON_DURATION = 5 * 1000;
-+
-+    // File location for last reboot reason
-+    private static final String LAST_REBOOT_LOCATION = "/data/misc/reboot/last_reboot_reason";
-+
-     private final Context mContext;
-     private final ServiceThread mHandlerThread;
-     private final PowerManagerHandler mHandler;
-@@ -2076,6 +2082,7 @@ public final class PowerManagerService extends SystemService
-                 final long screenOffTimeout = getScreenOffTimeoutLocked(sleepTimeout);
-                 final long screenDimDuration = getScreenDimDurationLocked(screenOffTimeout);
-                 final boolean userInactiveOverride = mUserInactiveOverrideFromWindowManager;
-+                final int screenBrightness = mScreenBrightnessSettingDefault;
-                 final long nextProfileTimeout = getNextProfileTimeoutLocked(now);
- 
-                 mUserActivitySummary = 0;
-@@ -2083,6 +2090,12 @@ public final class PowerManagerService extends SystemService
-                     nextTimeout = mLastUserActivityTime
-                             + screenOffTimeout - screenDimDuration;
-                     if (now < nextTimeout) {
-+                        if (now > mLastUserActivityTime + BUTTON_ON_DURATION) {
-+                            mButtonsLight.setBrightness(0);
-+                        } else {
-+                            mButtonsLight.setBrightness(screenBrightness);
-+                            nextTimeout = now + BUTTON_ON_DURATION;
-+                        }
-                         mUserActivitySummary = USER_ACTIVITY_SCREEN_BRIGHT;
-                         if (mWakefulness == WAKEFULNESS_AWAKE) {
-                             int buttonBrightness;
--- 
-2.17.1
-
diff --git a/patches/frameworks/base/0018-Don-t-wake-IR-HAL-to-the-infinity-and-beyond.patch b/patches/frameworks/base/0018-Don-t-wake-IR-HAL-to-the-infinity-and-beyond.patch
index 3cdc0d0..9f877b8 100644
--- a/patches/frameworks/base/0018-Don-t-wake-IR-HAL-to-the-infinity-and-beyond.patch
+++ b/patches/frameworks/base/0018-Don-t-wake-IR-HAL-to-the-infinity-and-beyond.patch
@@ -1,4 +1,4 @@
-From d406d29e41b6c37744e03444336730779a2b1241 Mon Sep 17 00:00:00 2001
+From 96d882452fbeb23540987f04dd41721c1ba0e89b 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 18/28] Don't wake IR HAL to the infinity and beyond
diff --git a/patches/frameworks/base/0018-power-Disable-keyboard-button-lights-while-dozing-dr.patch b/patches/frameworks/base/0018-power-Disable-keyboard-button-lights-while-dozing-dr.patch
deleted file mode 100644
index ed44762..0000000
--- a/patches/frameworks/base/0018-power-Disable-keyboard-button-lights-while-dozing-dr.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 7875341091780754a82c84420b2ac632f44553c6 Mon Sep 17 00:00:00 2001
-From: Steve Kondik <steve@cyngn.com>
-Date: Sat, 3 Jan 2015 05:13:26 -0800
-Subject: [PATCH 18/27] power: Disable keyboard/button lights while
- dozing/dreaming
-
- * With hardkeys and doze mode enabled, entering suspend results in
-   an epic battle over the lights. It's a bad situation. Disable
-   them when we're sleepy.
-
-Change-Id: I7f1fc35a1573717d1ea101a07c4171d6f66d1553
----
- .../core/java/com/android/server/power/PowerManagerService.java | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
-index e85d8adf21b..7964b847bd1 100644
---- a/services/core/java/com/android/server/power/PowerManagerService.java
-+++ b/services/core/java/com/android/server/power/PowerManagerService.java
-@@ -2086,7 +2086,7 @@ public final class PowerManagerService extends SystemService
-                 final long nextProfileTimeout = getNextProfileTimeoutLocked(now);
- 
-                 mUserActivitySummary = 0;
--                if (mLastUserActivityTime >= mLastWakeTime) {
-+                if (mWakefulness == WAKEFULNESS_AWAKE && mLastUserActivityTime >= mLastWakeTime) {
-                     nextTimeout = mLastUserActivityTime
-                             + screenOffTimeout - screenDimDuration;
-                     if (now < nextTimeout) {
--- 
-2.17.1
-
diff --git a/patches/frameworks/base/0019-It-is-okay-not-to-have-wifi-in-SystemUI-on-FDE-lock.patch b/patches/frameworks/base/0019-It-is-okay-not-to-have-wifi-in-SystemUI-on-FDE-lock.patch
deleted file mode 100644
index 6a5be4f..0000000
--- a/patches/frameworks/base/0019-It-is-okay-not-to-have-wifi-in-SystemUI-on-FDE-lock.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 90443b5a5c607a9312f717b43dbd44b0b6bbb084 Mon Sep 17 00:00:00 2001
-From: Pierre-Hugues Husson <phh@phh.me>
-Date: Mon, 20 Aug 2018 22:27:02 +0200
-Subject: [PATCH 19/27] It is okay not to have wifi in SystemUI (on FDE lock)
-
-Conflicts:
-	packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
-	packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
-
-Change-Id: I567a4fc81a53a8d3a55acb6ee8aa979c5a38a4f8
----
- .../src/com/android/settingslib/wifi/WifiTracker.java  |  2 +-
- .../statusbar/policy/HotspotControllerImpl.java        |  1 +
- .../statusbar/policy/WifiSignalController.java         | 10 +++++-----
- 3 files changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
-index 11c22eef5ad..1ca952aaee3 100644
---- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
-+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
-@@ -207,7 +207,7 @@ public class WifiTracker implements LifecycleObserver, OnStart, OnStop, OnDestro
-         mConnectivityManager = connectivityManager;
- 
-         // check if verbose logging developer option has been turned on or off
--        sVerboseLogging = (mWifiManager == null) ? false : (mWifiManager.getVerboseLoggingLevel() > 0);
-+        sVerboseLogging = mWifiManager != null ? (mWifiManager.getVerboseLoggingLevel() > 0) : false;
- 
-         mFilter = filter;
- 
-diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java
-index c44b385f505..e5696edb9e0 100644
---- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java
-+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java
-@@ -109,6 +109,7 @@ public class HotspotControllerImpl implements HotspotController, WifiManager.Sof
-      * @param shouldListen whether we should start listening to various wifi statuses
-      */
-     private void updateWifiStateListeners(boolean shouldListen) {
-+        if(mWifiManager == null) return;
-         if (shouldListen) {
-             mWifiManager.registerSoftApCallback(
-                     this,
-diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
-index b83c6b88f8d..78b30500da7 100644
---- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
-+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
-@@ -59,11 +59,11 @@ public class WifiSignalController extends
-         mHasMobileData = hasMobileData;
-         Handler handler = new WifiHandler(Looper.getMainLooper());
-         mWifiChannel = new AsyncChannel();
--        if (wifiManager != null) {
--            Messenger wifiMessenger = wifiManager.getWifiServiceMessenger();
--            if (wifiMessenger != null) {
--                mWifiChannel.connect(context, handler, wifiMessenger);
--            }
-+        Messenger wifiMessenger = null;
-+        if(wifiManager != null)
-+            wifiMessenger = wifiManager.getWifiServiceMessenger();
-+        if (wifiMessenger != null) {
-+            mWifiChannel.connect(context, handler, wifiMessenger);
-         }
-         // WiFi only has one state.
-         mCurrentState.iconGroup = mLastState.iconGroup = new IconGroup(
--- 
-2.17.1
-
diff --git a/patches/frameworks/base/0019-Switch-samsung-light-fingerprint-match-to-regexp-to-.patch b/patches/frameworks/base/0019-Switch-samsung-light-fingerprint-match-to-regexp-to-.patch
index 41b6d61..02ec8e3 100644
--- a/patches/frameworks/base/0019-Switch-samsung-light-fingerprint-match-to-regexp-to-.patch
+++ b/patches/frameworks/base/0019-Switch-samsung-light-fingerprint-match-to-regexp-to-.patch
@@ -1,4 +1,4 @@
-From 87962755eb743cb3949f0800ca98d2448ddfc31c Mon Sep 17 00:00:00 2001
+From 9d24f4a217ed84cfc9eee80d6d15da05d316391e Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <phh@phh.me>
 Date: Thu, 23 Aug 2018 23:39:16 +0200
 Subject: [PATCH 19/28] Switch samsung light fingerprint match to regexp, to
diff --git a/patches/frameworks/base/0020-Add-a-property-toggle-to-enable-high-brightness-rang.patch b/patches/frameworks/base/0020-Add-a-property-toggle-to-enable-high-brightness-rang.patch
index f92d5e1..4aaffb4 100644
--- a/patches/frameworks/base/0020-Add-a-property-toggle-to-enable-high-brightness-rang.patch
+++ b/patches/frameworks/base/0020-Add-a-property-toggle-to-enable-high-brightness-rang.patch
@@ -1,4 +1,4 @@
-From d4bd8d2ae0fba3accc9e0ad12ec825bbd87ab0ac Mon Sep 17 00:00:00 2001
+From 60787a0f8cd1dc8f67980992b6267c6bf1f83b2f Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <phh@phh.me>
 Date: Mon, 27 Aug 2018 00:47:13 +0200
 Subject: [PATCH 20/28] Add a property toggle to enable high brightness range
diff --git a/patches/frameworks/base/0020-Don-t-wake-IR-HAL-to-the-infinity-and-beyond.patch b/patches/frameworks/base/0020-Don-t-wake-IR-HAL-to-the-infinity-and-beyond.patch
deleted file mode 100644
index 6beb6e0..0000000
--- a/patches/frameworks/base/0020-Don-t-wake-IR-HAL-to-the-infinity-and-beyond.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 7c6f3ad50399d8c57c02f8882e2df5c68b903a92 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 20/27] Don't wake IR HAL to the infinity and beyond
-
-Conflicts:
-	services/core/java/com/android/server/ConsumerIrService.java
-
-Change-Id: Ie0e152f11246baed6f3571a1c9d8b901d5a3dc02
----
- services/core/java/com/android/server/ConsumerIrService.java | 5 -----
- services/core/jni/com_android_server_ConsumerIrService.cpp   | 2 +-
- 2 files changed, 1 insertion(+), 6 deletions(-)
-
-diff --git a/services/core/java/com/android/server/ConsumerIrService.java b/services/core/java/com/android/server/ConsumerIrService.java
-index 0a0065a7b55..ead288ea01a 100644
---- a/services/core/java/com/android/server/ConsumerIrService.java
-+++ b/services/core/java/com/android/server/ConsumerIrService.java
-@@ -48,11 +48,6 @@ public class ConsumerIrService extends IConsumerIrService.Stub {
-         mWakeLock.setReferenceCounted(true);
- 
-         mHasNativeHal = halOpen();
--        if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CONSUMER_IR)) {
--            if (!mHasNativeHal) {
--                throw new RuntimeException("FEATURE_CONSUMER_IR present, but no IR HAL loaded!");
--            }
--        }
-         mParameter = AudioSystem.getParameters("audio_capability#irda_support");
-     }
- 
-diff --git a/services/core/jni/com_android_server_ConsumerIrService.cpp b/services/core/jni/com_android_server_ConsumerIrService.cpp
-index 2ca348b3ae4..148fba9a688 100644
---- a/services/core/jni/com_android_server_ConsumerIrService.cpp
-+++ b/services/core/jni/com_android_server_ConsumerIrService.cpp
-@@ -36,7 +36,7 @@ static sp<IConsumerIr> mHal;
- 
- static jboolean halOpen(JNIEnv* /* env */, jobject /* obj */) {
-     // TODO(b/31632518)
--    mHal = IConsumerIr::getService();
-+    mHal = IConsumerIr::tryGetService();
-     return mHal != nullptr;
- }
- 
--- 
-2.17.1
-
diff --git a/patches/frameworks/base/0021-Add-a-property-to-override-pre-o-max-aspect-ratio.patch b/patches/frameworks/base/0021-Add-a-property-to-override-pre-o-max-aspect-ratio.patch
index 7b21eae..514d058 100644
--- a/patches/frameworks/base/0021-Add-a-property-to-override-pre-o-max-aspect-ratio.patch
+++ b/patches/frameworks/base/0021-Add-a-property-to-override-pre-o-max-aspect-ratio.patch
@@ -1,4 +1,4 @@
-From 11609f76801c9995fb3b1eb92e0ab25a79f7b977 Mon Sep 17 00:00:00 2001
+From b4adb133f63b5880240db852c66f815302a95bd0 Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <phh@phh.me>
 Date: Wed, 29 Aug 2018 11:05:54 +0200
 Subject: [PATCH 21/28] Add a property to override pre-o max aspect ratio
diff --git a/patches/frameworks/base/0021-Switch-samsung-light-fingerprint-match-to-regexp-to-.patch b/patches/frameworks/base/0021-Switch-samsung-light-fingerprint-match-to-regexp-to-.patch
deleted file mode 100644
index 2840f1a..0000000
--- a/patches/frameworks/base/0021-Switch-samsung-light-fingerprint-match-to-regexp-to-.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From f9293512357921379a48aea5ae1e0db7c61d31a0 Mon Sep 17 00:00:00 2001
-From: Pierre-Hugues Husson <phh@phh.me>
-Date: Thu, 23 Aug 2018 23:39:16 +0200
-Subject: [PATCH 21/27] Switch samsung light fingerprint match to regexp, to
- include Note9
-
----
- .../core/java/com/android/server/lights/LightsService.java    | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
-index 2886f2900d9..2ad38774b9d 100644
---- a/services/core/java/com/android/server/lights/LightsService.java
-+++ b/services/core/java/com/android/server/lights/LightsService.java
-@@ -55,9 +55,7 @@ public class LightsService extends SystemService {
- 
-                 if(mId == 0) {
-                     String fp = SystemProperties.get("ro.vendor.build.fingerprint", "hello");
--                    if(
--                           fp.contains("starlte") || fp.contains("star2lte") ||
--                           fp.contains("starqlte") || fp.contains("star2qlte")) {
-+                    if(fp.matches(".*(crown|star)[q2]*lte.*")) {
-                         setLightLocked(brightness*100, LIGHT_FLASH_HARDWARE, 0, 0, brightnessMode);
-                         return;
-                     }
--- 
-2.17.1
-
diff --git a/patches/frameworks/base/0022-Add-a-property-toggle-to-enable-high-brightness-rang.patch b/patches/frameworks/base/0022-Add-a-property-toggle-to-enable-high-brightness-rang.patch
deleted file mode 100644
index 05bb32e..0000000
--- a/patches/frameworks/base/0022-Add-a-property-toggle-to-enable-high-brightness-rang.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From ca7d5cf6b4c569f247a24b42b700f1976e7e600e Mon Sep 17 00:00:00 2001
-From: Pierre-Hugues Husson <phh@phh.me>
-Date: Mon, 27 Aug 2018 00:47:13 +0200
-Subject: [PATCH 22/27] Add a property toggle to enable high brightness range
- on samsung device
-
----
- .../core/java/com/android/server/lights/LightsService.java  | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
-index 2ad38774b9d..89008ea3134 100644
---- a/services/core/java/com/android/server/lights/LightsService.java
-+++ b/services/core/java/com/android/server/lights/LightsService.java
-@@ -56,7 +56,11 @@ public class LightsService extends SystemService {
-                 if(mId == 0) {
-                     String fp = SystemProperties.get("ro.vendor.build.fingerprint", "hello");
-                     if(fp.matches(".*(crown|star)[q2]*lte.*")) {
--                        setLightLocked(brightness*100, LIGHT_FLASH_HARDWARE, 0, 0, brightnessMode);
-+                        int newBrightness = brightness * 100;
-+                        if(SystemProperties.getBoolean("persist.sys.samsung.full_brightness", false)) {
-+                            newBrightness = (int) (brightness * 40960.0 / 255.0);
-+                        }
-+                        setLightLocked(newBrightness, LIGHT_FLASH_HARDWARE, 0, 0, brightnessMode);
-                         return;
-                     }
- 
--- 
-2.17.1
-
diff --git a/patches/frameworks/base/0022-Add-japanese-S9.patch b/patches/frameworks/base/0022-Add-japanese-S9.patch
index a2bad6c..93d4f5e 100644
--- a/patches/frameworks/base/0022-Add-japanese-S9.patch
+++ b/patches/frameworks/base/0022-Add-japanese-S9.patch
@@ -1,4 +1,4 @@
-From 9baf3750c4f0fe4c9a84e84a44bb644659321914 Mon Sep 17 00:00:00 2001
+From 3c9fc319e502b70954b64bd1a683d0769ba53778 Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <phh@phh.me>
 Date: Tue, 28 Aug 2018 20:39:26 +0200
 Subject: [PATCH 22/28] Add japanese S9
diff --git a/patches/frameworks/base/0023-Add-a-property-to-override-pre-o-max-aspect-ratio.patch b/patches/frameworks/base/0023-Add-a-property-to-override-pre-o-max-aspect-ratio.patch
deleted file mode 100644
index 4ec82c0..0000000
--- a/patches/frameworks/base/0023-Add-a-property-to-override-pre-o-max-aspect-ratio.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 7acb0b76ae43d46c6c310063e01c036efabb5bbf Mon Sep 17 00:00:00 2001
-From: Pierre-Hugues Husson <phh@phh.me>
-Date: Wed, 29 Aug 2018 11:05:54 +0200
-Subject: [PATCH 23/27] Add a property to override pre-o max aspect ratio
-
-Conflicts:
-	services/core/java/com/android/server/am/ActivityRecord.java
-
-Change-Id: I523b4e99bf647bb202a70003dbad1fb8551f3942
----
- .../core/java/com/android/server/am/ActivityRecord.java   | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/services/core/java/com/android/server/am/ActivityRecord.java b/services/core/java/com/android/server/am/ActivityRecord.java
-index 4a9f8fc5a6e..8c5465a5134 100644
---- a/services/core/java/com/android/server/am/ActivityRecord.java
-+++ b/services/core/java/com/android/server/am/ActivityRecord.java
-@@ -164,6 +164,7 @@ import android.os.PersistableBundle;
- import android.os.Process;
- import android.os.RemoteException;
- import android.os.SystemClock;
-+import android.os.SystemProperties;
- import android.os.UserHandle;
- import android.os.storage.StorageManager;
- import android.service.voice.IVoiceInteractionSession;
-@@ -2416,7 +2417,6 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo
-     // TODO(b/36505427): Consider moving this method and similar ones to ConfigurationContainer.
-     private void computeBounds(Rect outBounds) {
-         outBounds.setEmpty();
--
-         float maxAspectRatio = info.maxAspectRatio;
-         if (maxAspectRatio != 0.0f && higherAspectRatio && service.getAspectRatioApps() != null) {
-             if (service.getAspectRatioApps().contains(packageName)) {
-@@ -2438,6 +2438,12 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo
-             return;
-         }
- 
-+        if(info.applicationInfo.targetSdkVersion < O) {
-+            try {
-+                maxAspectRatio = Float.parseFloat(SystemProperties.get("persist.sys.max_aspect_ratio.pre_o", ""));
-+            } catch (Throwable t) {}
-+            Log.d("PHH", "Overrode aspect ratio because pre-o to " + maxAspectRatio);
-+        }
-         // We must base this on the parent configuration, because we set our override
-         // configuration's appBounds based on the result of this method. If we used our own
-         // configuration, it would be influenced by past invocations.
--- 
-2.17.1
-
diff --git a/patches/frameworks/base/0023-Re-order-services-so-that-it-works-even-without-qtag.patch b/patches/frameworks/base/0023-Re-order-services-so-that-it-works-even-without-qtag.patch
index 64a566a..b687d95 100644
--- a/patches/frameworks/base/0023-Re-order-services-so-that-it-works-even-without-qtag.patch
+++ b/patches/frameworks/base/0023-Re-order-services-so-that-it-works-even-without-qtag.patch
@@ -1,4 +1,4 @@
-From 60a9452721932a3c35d41a73e563761a6427df5b Mon Sep 17 00:00:00 2001
+From c9b70e927c587d4160b5d769075ca8e3602527f0 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 23/28] Re-order services so that it works even without qtaguid
diff --git a/patches/frameworks/base/0024-Add-japanese-S9.patch b/patches/frameworks/base/0024-Add-japanese-S9.patch
deleted file mode 100644
index 938376a..0000000
--- a/patches/frameworks/base/0024-Add-japanese-S9.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 2f7955a2a4c8cb161806f065092d627f87511fcf Mon Sep 17 00:00:00 2001
-From: Pierre-Hugues Husson <phh@phh.me>
-Date: Tue, 28 Aug 2018 20:39:26 +0200
-Subject: [PATCH 24/27] Add japanese S9
-
----
- .../core/java/com/android/server/lights/LightsService.java     | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
-index 89008ea3134..47c1d9297fe 100644
---- a/services/core/java/com/android/server/lights/LightsService.java
-+++ b/services/core/java/com/android/server/lights/LightsService.java
-@@ -55,7 +55,8 @@ public class LightsService extends SystemService {
- 
-                 if(mId == 0) {
-                     String fp = SystemProperties.get("ro.vendor.build.fingerprint", "hello");
--                    if(fp.matches(".*(crown|star)[q2]*lte.*")) {
-+                    if(fp.matches(".*(crown|star)[q2]*lte.*") ||
-+				    fp.matches(".*(SC-0[23]K|SCV3[89]).*")) {
-                         int newBrightness = brightness * 100;
-                         if(SystemProperties.getBoolean("persist.sys.samsung.full_brightness", false)) {
-                             newBrightness = (int) (brightness * 40960.0 / 255.0);
--- 
-2.17.1
-
diff --git a/patches/frameworks/base/0024-Use-Samsung-fingerprint-percent-thingy-on-all-Samsun.patch b/patches/frameworks/base/0024-Use-Samsung-fingerprint-percent-thingy-on-all-Samsun.patch
index 7c1117d..9fa3605 100644
--- a/patches/frameworks/base/0024-Use-Samsung-fingerprint-percent-thingy-on-all-Samsun.patch
+++ b/patches/frameworks/base/0024-Use-Samsung-fingerprint-percent-thingy-on-all-Samsun.patch
@@ -1,4 +1,4 @@
-From 85cf9e48af84f9b3d57828b491d2c6c406c3553b Mon Sep 17 00:00:00 2001
+From 2fc6b6b2f8d30fee2fb32ac327ea0a04edc1592f Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <phh@phh.me>
 Date: Sun, 9 Dec 2018 16:31:44 +0100
 Subject: [PATCH 24/28] Use Samsung fingerprint percent thingy on all Samsung
diff --git a/patches/frameworks/base/0025-Different-value-for-astarqlte.-Probably-more-devices.patch b/patches/frameworks/base/0025-Different-value-for-astarqlte.-Probably-more-devices.patch
index 76b335f..fee8cd0 100644
--- a/patches/frameworks/base/0025-Different-value-for-astarqlte.-Probably-more-devices.patch
+++ b/patches/frameworks/base/0025-Different-value-for-astarqlte.-Probably-more-devices.patch
@@ -1,4 +1,4 @@
-From d6213d584ef165a7d9e26ae07debf88825367090 Mon Sep 17 00:00:00 2001
+From ecf80dd72496d0a2211b5e73bc10d24b596bb01a Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <phh@phh.me>
 Date: Sun, 10 Mar 2019 19:35:06 +0100
 Subject: [PATCH 25/28] Different value for astarqlte. Probably more devices to
diff --git a/patches/frameworks/base/0025-Re-order-services-so-that-it-works-even-without-qtag.patch b/patches/frameworks/base/0025-Re-order-services-so-that-it-works-even-without-qtag.patch
deleted file mode 100644
index e8cf142..0000000
--- a/patches/frameworks/base/0025-Re-order-services-so-that-it-works-even-without-qtag.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From ed2199875bd2357a8b9864dfa0beeec0f500b806 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 25/27] Re-order services so that it works even without qtaguid
-
----
- .../com/android/server/net/NetworkPolicyManagerService.java | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
-index db33bd8f08d..c612b2ab211 100644
---- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
-+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
-@@ -710,6 +710,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
-         Trace.traceBegin(Trace.TRACE_TAG_NETWORK, "systemReady");
-         final int oldPriority = Process.getThreadPriority(Process.myTid());
-         try {
-+            mUsageStats = LocalServices.getService(UsageStatsManagerInternal.class);
-+            mNetworkStats = LocalServices.getService(NetworkStatsManagerInternal.class);
-+
-             // Boost thread's priority during system server init
-             Process.setThreadPriority(Process.THREAD_PRIORITY_FOREGROUND);
-             if (!isBandwidthControlEnabled()) {
-@@ -717,9 +720,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
-                 return;
-             }
- 
--            mUsageStats = LocalServices.getService(UsageStatsManagerInternal.class);
--            mNetworkStats = LocalServices.getService(NetworkStatsManagerInternal.class);
--
-             synchronized (mUidRulesFirstLock) {
-                 synchronized (mNetworkPoliciesSecondLock) {
-                     updatePowerSaveWhitelistUL();
--- 
-2.17.1
-
diff --git a/patches/frameworks/base/0026-Revert-LockSettingsService-Support-for-separate-clea.patch b/patches/frameworks/base/0026-Revert-LockSettingsService-Support-for-separate-clea.patch
index d698d8f..85448da 100644
--- a/patches/frameworks/base/0026-Revert-LockSettingsService-Support-for-separate-clea.patch
+++ b/patches/frameworks/base/0026-Revert-LockSettingsService-Support-for-separate-clea.patch
@@ -1,4 +1,4 @@
-From bbccdea5094fdebb4e238c731699f434dd0bf708 Mon Sep 17 00:00:00 2001
+From 5e4bf328d5d2c884b85ea2a5c1ba52380e0f77e6 Mon Sep 17 00:00:00 2001
 From: Jackeagle <jackeagle102@gmail.com>
 Date: Thu, 25 Apr 2019 05:34:02 +0200
 Subject: [PATCH 26/28] Revert "LockSettingsService: Support for separate clear
diff --git a/patches/frameworks/base/0026-Use-Samsung-fingerprint-percent-thingy-on-all-Samsun.patch b/patches/frameworks/base/0026-Use-Samsung-fingerprint-percent-thingy-on-all-Samsun.patch
deleted file mode 100644
index a79a071..0000000
--- a/patches/frameworks/base/0026-Use-Samsung-fingerprint-percent-thingy-on-all-Samsun.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 588c991ca754ec5c863fabef6c8bc0f9f7a638e3 Mon Sep 17 00:00:00 2001
-From: Pierre-Hugues Husson <phh@phh.me>
-Date: Sun, 9 Dec 2018 16:31:44 +0100
-Subject: [PATCH 26/27] Use Samsung fingerprint percent thingy on all Samsung
- devices
-
----
- .../java/com/android/server/fingerprint/FingerprintService.java | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/services/core/java/com/android/server/fingerprint/FingerprintService.java b/services/core/java/com/android/server/fingerprint/FingerprintService.java
-index 6f09433c002..8c2990b1999 100644
---- a/services/core/java/com/android/server/fingerprint/FingerprintService.java
-+++ b/services/core/java/com/android/server/fingerprint/FingerprintService.java
-@@ -1048,7 +1048,7 @@ public class FingerprintService extends SystemService implements IHwBinder.Death
-                 public void run() {
-                     int remaining2 = remaining;
-                     String fp = android.os.SystemProperties.get("ro.vendor.build.fingerprint");
--                    if(fp != null && (fp.contains("starlte") || fp.contains("star2lte") || fp.contains("starqlte") || fp.contains("star2qlte")))
-+                    if(fp != null && (fp.startsWith("samsung/")))
-                         remaining2 = 100 - remaining2;
-                     handleEnrollResult(deviceId, fingerId, groupId, remaining2);
-                 }
--- 
-2.17.1
-
diff --git a/patches/frameworks/base/0027-Different-value-for-astarqlte.-Probably-more-devices.patch b/patches/frameworks/base/0027-Different-value-for-astarqlte.-Probably-more-devices.patch
deleted file mode 100644
index 2cee4ea..0000000
--- a/patches/frameworks/base/0027-Different-value-for-astarqlte.-Probably-more-devices.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 31d6daf664c0f51d5b40d5a6275aeb16ac615ffd Mon Sep 17 00:00:00 2001
-From: Pierre-Hugues Husson <phh@phh.me>
-Date: Sun, 10 Mar 2019 19:35:06 +0100
-Subject: [PATCH 27/27] Different value for astarqlte. Probably more devices to
- add later
-
----
- .../java/com/android/server/lights/LightsService.java    | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
-index 47c1d9297fe..e5299e456f5 100644
---- a/services/core/java/com/android/server/lights/LightsService.java
-+++ b/services/core/java/com/android/server/lights/LightsService.java
-@@ -55,6 +55,15 @@ public class LightsService extends SystemService {
- 
-                 if(mId == 0) {
-                     String fp = SystemProperties.get("ro.vendor.build.fingerprint", "hello");
-+                    if(fp.matches(".*astarqlte.*")) {
-+                        int newBrightness = brightness;
-+                        if(SystemProperties.getBoolean("persist.sys.samsung.full_brightness", false)) {
-+                            newBrightness = (int) (brightness * 365.0 / 255.0);
-+                        }
-+                        setLightLocked(newBrightness, LIGHT_FLASH_HARDWARE, 0, 0, brightnessMode);
-+                        return;
-+                    }
-+
-                     if(fp.matches(".*(crown|star)[q2]*lte.*") ||
- 				    fp.matches(".*(SC-0[23]K|SCV3[89]).*")) {
-                         int newBrightness = brightness * 100;
--- 
-2.17.1
-
diff --git a/patches/frameworks/base/0027-Revert-frameworks-base-Port-password-retention-featu.patch b/patches/frameworks/base/0027-Revert-frameworks-base-Port-password-retention-featu.patch
index e5213b2..e8d0112 100644
--- a/patches/frameworks/base/0027-Revert-frameworks-base-Port-password-retention-featu.patch
+++ b/patches/frameworks/base/0027-Revert-frameworks-base-Port-password-retention-featu.patch
@@ -1,4 +1,4 @@
-From 7bd103d2fd1b539684862c31250c7e97b04ce68b Mon Sep 17 00:00:00 2001
+From a2c201af8850cbd1bc49df570bdff978882b1ef6 Mon Sep 17 00:00:00 2001
 From: Jackeagle <jackeagle102@gmail.com>
 Date: Thu, 25 Apr 2019 05:34:18 +0200
 Subject: [PATCH 27/28] Revert "frameworks: base: Port password retention
diff --git a/patches/frameworks/base/0028-Revert-Use-fdeCheckPassword-error-code-to-indicate-p.patch b/patches/frameworks/base/0028-Revert-Use-fdeCheckPassword-error-code-to-indicate-p.patch
index 8407447..5d59344 100644
--- a/patches/frameworks/base/0028-Revert-Use-fdeCheckPassword-error-code-to-indicate-p.patch
+++ b/patches/frameworks/base/0028-Revert-Use-fdeCheckPassword-error-code-to-indicate-p.patch
@@ -1,4 +1,4 @@
-From 323a88311763b402b04ec4588e8962f97b3a2c75 Mon Sep 17 00:00:00 2001
+From 6d5a98ced482e5fe7e8af55554f25004f9bef29c Mon Sep 17 00:00:00 2001
 From: Jackeagle <jackeagle102@gmail.com>
 Date: Thu, 25 Apr 2019 05:34:34 +0200
 Subject: [PATCH 28/28] Revert "Use fdeCheckPassword error code to indicate pw
