diff --git a/patches/frameworks/av/0001-FIH-devices-Fix-Earpiece-audio-output.patch b/patches/frameworks/av/0001-FIH-devices-Fix-Earpiece-audio-output.patch
index d0d75fc..469972e 100644
--- a/patches/frameworks/av/0001-FIH-devices-Fix-Earpiece-audio-output.patch
+++ b/patches/frameworks/av/0001-FIH-devices-Fix-Earpiece-audio-output.patch
@@ -1,4 +1,4 @@
-From 8508cdce9a6a1b3806972ca7c44ab49823863fdb Mon Sep 17 00:00:00 2001
+From bbfa6e68621509f98286a857d1c843157906b104 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 1/4] FIH devices: Fix "Earpiece" audio output
@@ -16,7 +16,7 @@
  1 file changed, 22 insertions(+), 3 deletions(-)
 
 diff --git a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
-index a2531131d..380e2f82b 100644
+index a2531131d5..380e2f82bc 100644
 --- a/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
 +++ b/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp
 @@ -191,16 +191,25 @@ const char AudioProfileTraits::Attributes::name[] = "name";
diff --git a/patches/frameworks/av/0002-Fix-WiFi-Display-on-Huawei-devices-EMUI-8.0.patch b/patches/frameworks/av/0002-Fix-WiFi-Display-on-Huawei-devices-EMUI-8.0.patch
index 8eb7c4e..45141ae 100644
--- a/patches/frameworks/av/0002-Fix-WiFi-Display-on-Huawei-devices-EMUI-8.0.patch
+++ b/patches/frameworks/av/0002-Fix-WiFi-Display-on-Huawei-devices-EMUI-8.0.patch
@@ -1,4 +1,4 @@
-From 9c84cfa568c5d5629e514deb2b48ce5f42275895 Mon Sep 17 00:00:00 2001
+From f4a99cd7019aeb212011c6245069964291fadc21 Mon Sep 17 00:00:00 2001
 From: Alexander Pohl <pohl199885@gmail.com>
 Date: Fri, 15 Jun 2018 19:58:07 +0200
 Subject: [PATCH 2/4] Fix WiFi-Display on Huawei devices (EMUI 8.0)
@@ -11,7 +11,7 @@
  1 file changed, 2 insertions(+), 3 deletions(-)
 
 diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp
-index 8949daecd..fbee52b8e 100644
+index 8949daecd3..fbee52b8e7 100644
 --- a/media/libstagefright/ACodec.cpp
 +++ b/media/libstagefright/ACodec.cpp
 @@ -4279,9 +4279,8 @@ status_t ACodec::setupAVCEncoderParameters(const sp<AMessage> &msg) {
diff --git a/patches/frameworks/av/0003-Kirin-Remove-lock-to-prevent-self-lock.patch b/patches/frameworks/av/0003-Kirin-Remove-lock-to-prevent-self-lock.patch
index 79977cd..5b71dd1 100644
--- a/patches/frameworks/av/0003-Kirin-Remove-lock-to-prevent-self-lock.patch
+++ b/patches/frameworks/av/0003-Kirin-Remove-lock-to-prevent-self-lock.patch
@@ -1,7 +1,7 @@
-From 7338690836a48da7303d111a0f38f98996a9cdd5 Mon Sep 17 00:00:00 2001
+From e49a2aaf5937eceff7ab9e220a4840296db766bd 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 3/4] Kirin:: Remove lock to prevent self-lock
+Subject: [PATCH 3/4] ::Kirin:: Remove lock to prevent self-lock
 
 With Huawei Camera HAL, we get the following call order:
 cameraserver CameraService::enumerateProviders (*)
@@ -17,7 +17,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
-index fb740053e..b62d22080 100644
+index fb740053e8..b62d22080b 100644
 --- a/services/camera/libcameraservice/CameraService.cpp
 +++ b/services/camera/libcameraservice/CameraService.cpp
 @@ -233,7 +233,7 @@ void CameraService::onNewProviderRegistered() {
diff --git a/patches/frameworks/av/0004-We-might-not-have-a-mFlashlight-at-this-state-but-th.patch b/patches/frameworks/av/0004-We-might-not-have-a-mFlashlight-at-this-state-but-th.patch
index 36c2509..b7b1488 100644
--- a/patches/frameworks/av/0004-We-might-not-have-a-mFlashlight-at-this-state-but-th.patch
+++ b/patches/frameworks/av/0004-We-might-not-have-a-mFlashlight-at-this-state-but-th.patch
@@ -1,4 +1,4 @@
-From c195131280ea47a045dbc78a9f6a83eb880b733d Mon Sep 17 00:00:00 2001
+From e5c496ab9a64a05809a7149b047c8160395aff2b 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 4/4] We might not have a mFlashlight at this state, but that's
@@ -9,7 +9,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
-index b62d22080..0f2c4cac7 100644
+index b62d22080b..0f2c4cac70 100644
 --- a/services/camera/libcameraservice/CameraService.cpp
 +++ b/services/camera/libcameraservice/CameraService.cpp
 @@ -258,7 +258,7 @@ void CameraService::addStates(const String8 id) {
diff --git a/patches/frameworks/base/0003-Fix-backlight-control-on-Galaxy-S9.patch b/patches/frameworks/base/0001-Fix-backlight-control-on-Galaxy-S9.patch
similarity index 91%
rename from patches/frameworks/base/0003-Fix-backlight-control-on-Galaxy-S9.patch
rename to patches/frameworks/base/0001-Fix-backlight-control-on-Galaxy-S9.patch
index 20ef93a..3825bd9 100644
--- a/patches/frameworks/base/0003-Fix-backlight-control-on-Galaxy-S9.patch
+++ b/patches/frameworks/base/0001-Fix-backlight-control-on-Galaxy-S9.patch
@@ -1,7 +1,7 @@
-From 8fa619b8a4e063730776b3ac63d1be73a5b1ac46 Mon Sep 17 00:00:00 2001
+From 91eb4080d604b196ba0f3099a5e3d22b94950b8f 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 03/26] Fix backlight control on Galaxy S9(+)
+Subject: [PATCH 01/24] Fix backlight control on Galaxy S9(+)
 
 ---
  .../core/java/com/android/server/lights/LightsService.java | 7 +++++++
diff --git a/patches/frameworks/base/0001-Utils-Import-restart-systemui-api.patch b/patches/frameworks/base/0001-Utils-Import-restart-systemui-api.patch
deleted file mode 100644
index 91a6cd2..0000000
--- a/patches/frameworks/base/0001-Utils-Import-restart-systemui-api.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-From 797c4020f25fb4a76dee82f5fc7008aada330d2f Mon Sep 17 00:00:00 2001
-From: SpiritCroc <dev@spiritcroc.de>
-Date: Sun, 11 Nov 2018 14:59:35 -0700
-Subject: [PATCH 01/26] Utils: Import restart systemui api
-
-Change-Id: Ief06016032e14fe15ec8348722546c54e0d379c7
----
- .../internal/util/omni/DeviceUtils.java       | 61 +++++++++++++++++++
- core/res/res/values/bliss_strings.xml         |  4 ++
- core/res/res/values/bliss_symbols.xml         |  4 ++
- 3 files changed, 69 insertions(+)
-
-diff --git a/core/java/com/android/internal/util/omni/DeviceUtils.java b/core/java/com/android/internal/util/omni/DeviceUtils.java
-index 811b52d57cc..59db7500a1c 100644
---- a/core/java/com/android/internal/util/omni/DeviceUtils.java
-+++ b/core/java/com/android/internal/util/omni/DeviceUtils.java
-@@ -15,8 +15,12 @@
- */
- package com.android.internal.util.omni;
- 
-+import android.app.ActivityManager;
-+import android.app.AlertDialog;
-+import android.app.IActivityManager;
- import android.bluetooth.BluetoothAdapter;
- import android.content.Context;
-+import android.content.DialogInterface;
- import android.content.pm.ApplicationInfo;
- import android.content.pm.PackageInfo;
- import android.content.pm.PackageManager;
-@@ -29,6 +33,7 @@ import android.hardware.camera2.CameraManager;
- import android.hardware.SensorManager;
- import android.net.ConnectivityManager;
- import android.nfc.NfcAdapter;
-+import android.os.AsyncTask;
- import android.os.RemoteException;
- import android.os.SystemProperties;
- import android.os.Vibrator;
-@@ -45,6 +50,7 @@ import com.android.internal.telephony.PhoneConstants;
- import static android.hardware.Sensor.TYPE_LIGHT;
- import static android.hardware.Sensor.TYPE_PROXIMITY;
- 
-+import com.android.internal.R;
- import java.util.List;
- import java.util.Locale;
- 
-@@ -221,4 +227,59 @@ public class DeviceUtils {
-             e.printStackTrace();
-         }
-     }
-+
-+    public static void restartSystemUi(Context context) {
-+        new RestartSystemUiTask(context).execute();
-+    }
-+
-+     public static void showSystemUiRestartDialog(Context context) {
-+        new AlertDialog.Builder(context)
-+                .setTitle(R.string.systemui_restart_title)
-+                .setMessage(R.string.systemui_restart_message)
-+                .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
-+                    public void onClick(DialogInterface dialog, int id) {
-+                        restartSystemUi(context);
-+                    }
-+                })
-+                .setNegativeButton(R.string.cancel, null)
-+                .show();
-+    }
-+
-+     private static class RestartSystemUiTask extends AsyncTask<Void, Void, Void> {
-+         private Context mContext;
-+         public RestartSystemUiTask(Context context) {
-+            super();
-+            mContext = context;
-+        }
-+
-+         @Override
-+        protected Void doInBackground(Void... params) {
-+            try {
-+                ActivityManager am =
-+                        (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
-+                IActivityManager ams = ActivityManager.getService();
-+                for (ActivityManager.RunningAppProcessInfo app: am.getRunningAppProcesses()) {
-+                    if ("com.android.systemui".equals(app.processName)) {
-+                        ams.killApplicationProcess(app.processName, app.uid);
-+                        break;
-+                    }
-+                }
-+                //Class ActivityManagerNative = Class.forName("android.app.ActivityManagerNative");
-+                //Method getDefault = ActivityManagerNative.getDeclaredMethod("getDefault", null);
-+                //Object amn = getDefault.invoke(null, null);
-+                //Method killApplicationProcess = amn.getClass().getDeclaredMethod("killApplicationProcess", String.class, int.class);
-+                //mContext.stopService(new Intent().setComponent(new ComponentName("com.android.systemui", "com.android.systemui.SystemUIService")));
-+                //am.killBackgroundProcesses("com.android.systemui");
-+                //for (ActivityManager.RunningAppProcessInfo app : am.getRunningAppProcesses()) {
-+                //    if ("com.android.systemui".equals(app.processName)) {
-+                //        killApplicationProcess.invoke(amn, app.processName, app.uid);
-+                //        break;
-+                //    }
-+                //}
-+            } catch (Exception e) {
-+                e.printStackTrace();
-+            }
-+            return null;
-+        }
-+    }
- }
-diff --git a/core/res/res/values/bliss_strings.xml b/core/res/res/values/bliss_strings.xml
-index 9ba4f1844ca..da16771ba18 100644
---- a/core/res/res/values/bliss_strings.xml
-+++ b/core/res/res/values/bliss_strings.xml
-@@ -54,4 +54,8 @@
-     <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-     <string name="permdesc_fakePackageSignature">Allows the app to pretend to be a different app. Malicious applications might be able to use this to access private application data. Legitimate uses include an emulator pretending to be what it emulates. Grant this permission with caution only!</string>
- 
-+    <!-- SystemUI Restart -->
-+    <string name="systemui_restart_title">SystemUI restart required</string>
-+    <string name="systemui_restart_message">For all changes to take effect, a SystemUI restart is required. Restart SystemUI now?</string>
-+
- </resources>
-diff --git a/core/res/res/values/bliss_symbols.xml b/core/res/res/values/bliss_symbols.xml
-index 35d9555b2f9..f8e2bdb5bf6 100644
---- a/core/res/res/values/bliss_symbols.xml
-+++ b/core/res/res/values/bliss_symbols.xml
-@@ -145,4 +145,8 @@
-   <!-- Oreo's recents component activity -->
-   <java-symbol type="string" name="config_recentsComponentNameOreo" />
- 
-+  <!-- SystemUI Restart -->
-+  <java-symbol type="string" name="systemui_restart_title" />
-+  <java-symbol type="string" name="systemui_restart_message" />
-+
- </resources>
--- 
-2.17.1
-
diff --git a/patches/frameworks/base/0004-Relax-requirement-for-visible-flag-to-sdcards.patch b/patches/frameworks/base/0002-Relax-requirement-for-visible-flag-to-sdcards.patch
similarity index 90%
rename from patches/frameworks/base/0004-Relax-requirement-for-visible-flag-to-sdcards.patch
rename to patches/frameworks/base/0002-Relax-requirement-for-visible-flag-to-sdcards.patch
index ab6d087..18fe613 100644
--- a/patches/frameworks/base/0004-Relax-requirement-for-visible-flag-to-sdcards.patch
+++ b/patches/frameworks/base/0002-Relax-requirement-for-visible-flag-to-sdcards.patch
@@ -1,7 +1,7 @@
-From a9b12570584788b9e4b1ee8a41cdc79f2cbf51e3 Mon Sep 17 00:00:00 2001
+From d1d4caf3c5d8860f45688965664d8a985a645e57 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 04/26] Relax requirement for visible flag to sdcards
+Subject: [PATCH 02/24] 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)
diff --git a/patches/frameworks/base/0002-Revert-Telephony-Stop-using-rssnr-it-falsly-shows-wr.patch b/patches/frameworks/base/0002-Revert-Telephony-Stop-using-rssnr-it-falsly-shows-wr.patch
deleted file mode 100644
index b3b9044..0000000
--- a/patches/frameworks/base/0002-Revert-Telephony-Stop-using-rssnr-it-falsly-shows-wr.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From d5d060f229203c48962b0580946fe115775d3338 Mon Sep 17 00:00:00 2001
-From: Jackeagle <jackeagle102@gmail.com>
-Date: Thu, 18 Oct 2018 04:55:17 -0400
-Subject: [PATCH 02/26] Revert "Telephony: Stop using rssnr, it falsly shows
- wrong signal bars"
-
-This reverts commit b9ff83d0b1d5a81d55057ae2fa892e5d0f1083be.
----
- telephony/java/android/telephony/SignalStrength.java | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/telephony/java/android/telephony/SignalStrength.java b/telephony/java/android/telephony/SignalStrength.java
-index 55c0c778972..4e5639683a7 100644
---- a/telephony/java/android/telephony/SignalStrength.java
-+++ b/telephony/java/android/telephony/SignalStrength.java
-@@ -897,9 +897,6 @@ public class SignalStrength implements Parcelable {
-                 + rsrpIconLevel + " snrIconLevel:" + snrIconLevel
-                 + " lteRsrpBoost:" + mLteRsrpBoost);
- 
--	/* Ignore RSSNR for now */
--	if(rsrpIconLevel != -1) return rsrpIconLevel;
--
-         /* Choose a measurement type to use for notification */
-         if (snrIconLevel != -1 && rsrpIconLevel != -1) {
-             /*
--- 
-2.17.1
-
diff --git a/patches/frameworks/base/0005-Also-scan-system-overlay.patch b/patches/frameworks/base/0003-Also-scan-system-overlay.patch
similarity index 94%
rename from patches/frameworks/base/0005-Also-scan-system-overlay.patch
rename to patches/frameworks/base/0003-Also-scan-system-overlay.patch
index 127d880..cb2dc20 100644
--- a/patches/frameworks/base/0005-Also-scan-system-overlay.patch
+++ b/patches/frameworks/base/0003-Also-scan-system-overlay.patch
@@ -1,7 +1,7 @@
-From fe2320fb75d4b04720641632c8009d0bcb4ee3c6 Mon Sep 17 00:00:00 2001
+From 71b335142aee451ecad3beb9dd99735a82591405 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 05/26] Also scan /system/overlay
+Subject: [PATCH 03/24] Also scan /system/overlay
 
 Change-Id: Ib0223560606b80cdaaa986b159b34b4db0154589
 ---
diff --git a/patches/frameworks/base/0006-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
similarity index 72%
rename from patches/frameworks/base/0006-Don-t-crash-if-there-is-IR-HAL-is-not-declared.patch
rename to patches/frameworks/base/0004-Don-t-crash-if-there-is-IR-HAL-is-not-declared.patch
index ca478ae..39db573 100644
--- a/patches/frameworks/base/0006-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,25 +1,25 @@
-From 5d5a6a281c69f7eb8b78ddd7a4b7b120fe3d56df Mon Sep 17 00:00:00 2001
+From d16ee43a647ba52a8a535806ec74476b6177555e 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 06/26] Don't crash if there is IR HAL is not declared
+Subject: [PATCH 04/24] Don't crash if there is IR HAL is not declared
 
 ---
  services/core/java/com/android/server/ConsumerIrService.java | 2 --
  1 file changed, 2 deletions(-)
 
 diff --git a/services/core/java/com/android/server/ConsumerIrService.java b/services/core/java/com/android/server/ConsumerIrService.java
-index 2ed6c77baa0..c574a03c9a3 100644
+index 839629c6f82..0a0065a7b55 100644
 --- a/services/core/java/com/android/server/ConsumerIrService.java
 +++ b/services/core/java/com/android/server/ConsumerIrService.java
-@@ -50,8 +50,6 @@ public class ConsumerIrService extends IConsumerIrService.Stub {
+@@ -52,8 +52,6 @@ public class ConsumerIrService extends IConsumerIrService.Stub {
              if (!mHasNativeHal) {
                  throw new RuntimeException("FEATURE_CONSUMER_IR present, but no IR HAL loaded!");
              }
 -        } else if (mHasNativeHal) {
 -            throw new RuntimeException("IR HAL present, but FEATURE_CONSUMER_IR is not set!");
          }
+         mParameter = AudioSystem.getParameters("audio_capability#irda_support");
      }
- 
 -- 
 2.17.1
 
diff --git a/patches/frameworks/base/0007-Fix-62.patch b/patches/frameworks/base/0005-Fix-62.patch
similarity index 91%
rename from patches/frameworks/base/0007-Fix-62.patch
rename to patches/frameworks/base/0005-Fix-62.patch
index 8794785..9b107f8 100644
--- a/patches/frameworks/base/0007-Fix-62.patch
+++ b/patches/frameworks/base/0005-Fix-62.patch
@@ -1,7 +1,7 @@
-From 7b666d0761c2a1af8e206943d394468a1315b334 Mon Sep 17 00:00:00 2001
+From b4de2fb9ed6fcb74afe27f1ec142404a6b5d4a9a 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 07/26] Fix(?) #62
+Subject: [PATCH 05/24] Fix(?) #62
 
 ---
  .../src/com/android/keyguard/KeyguardUpdateMonitor.java      | 5 ++++-
diff --git a/patches/frameworks/base/0008-S9-brightness-override-only-for-screen.patch b/patches/frameworks/base/0006-S9-brightness-override-only-for-screen.patch
similarity index 91%
rename from patches/frameworks/base/0008-S9-brightness-override-only-for-screen.patch
rename to patches/frameworks/base/0006-S9-brightness-override-only-for-screen.patch
index 25368f1..f321bb0 100644
--- a/patches/frameworks/base/0008-S9-brightness-override-only-for-screen.patch
+++ b/patches/frameworks/base/0006-S9-brightness-override-only-for-screen.patch
@@ -1,7 +1,7 @@
-From fcb2d6953ad707ff8eabdf0eb5b2525e23d6392c Mon Sep 17 00:00:00 2001
+From a7ee8a4b4ad97efbf40abbb5431520c8d47f9512 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 08/26] S9 brightness override only for screen
+Subject: [PATCH 06/24] S9 brightness override only for screen
 
 ---
  .../com/android/server/lights/LightsService.java     | 12 +++++++-----
diff --git a/patches/frameworks/base/0009-Fix-OP6-brightness.patch b/patches/frameworks/base/0007-WIP-Fix-OP6-brightness.patch
similarity index 92%
rename from patches/frameworks/base/0009-Fix-OP6-brightness.patch
rename to patches/frameworks/base/0007-WIP-Fix-OP6-brightness.patch
index 11f6c18..595281c 100644
--- a/patches/frameworks/base/0009-Fix-OP6-brightness.patch
+++ b/patches/frameworks/base/0007-WIP-Fix-OP6-brightness.patch
@@ -1,7 +1,7 @@
-From 6923e824c890e6ed6a65881341749a83b489c954 Mon Sep 17 00:00:00 2001
+From 12e3da8a0a0aaffcf27b5e3551d2a264245f2804 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 09/26] Fix OP6 brightness
+Subject: [PATCH 07/24] [WIP] Fix OP6 brightness
 
 ---
  .../com/android/server/lights/LightsService.java     | 12 ++++++++++++
diff --git a/patches/frameworks/base/0010-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
similarity index 91%
rename from patches/frameworks/base/0010-Try-to-make-brightness-more-generic-using-property-s.patch
rename to patches/frameworks/base/0008-Try-to-make-brightness-more-generic-using-property-s.patch
index 090287c..09a7453 100644
--- a/patches/frameworks/base/0010-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,7 +1,7 @@
-From 82c87e64737aed3c80aa16566ac3546182d00ffc Mon Sep 17 00:00:00 2001
+From ff7a83182f1055bf26101f411fce378bbc9ef674 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 10/26] Try to make brightness more generic using property set
+Subject: [PATCH 08/24] Try to make brightness more generic using property set
  by rw-system
 
 ---
diff --git a/patches/frameworks/base/0011-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
similarity index 85%
rename from patches/frameworks/base/0011-property-matching-RROs-allow-to-prefix-the-value-wit.patch
rename to patches/frameworks/base/0009-property-matching-RROs-allow-to-prefix-the-value-wit.patch
index 557f85b..a9d2b36 100644
--- a/patches/frameworks/base/0011-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,7 +1,7 @@
-From 92055b58d15be699f3652f6d9726de7da1188768 Mon Sep 17 00:00:00 2001
+From 602f7828e34cbc4363a337f3babba30a3496e2e4 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 11/26] property-matching RROs: allow to prefix the value with
+Subject: [PATCH 09/24] property-matching RROs: allow to prefix the value with
  + to do glob match instead of exact match
 
 ---
diff --git a/patches/frameworks/base/0012-Fix-typo-on-fnmatch-return-value-check.patch b/patches/frameworks/base/0010-Fix-typo-on-fnmatch-return-value-check.patch
similarity index 82%
rename from patches/frameworks/base/0012-Fix-typo-on-fnmatch-return-value-check.patch
rename to patches/frameworks/base/0010-Fix-typo-on-fnmatch-return-value-check.patch
index 971502d..7988733 100644
--- a/patches/frameworks/base/0012-Fix-typo-on-fnmatch-return-value-check.patch
+++ b/patches/frameworks/base/0010-Fix-typo-on-fnmatch-return-value-check.patch
@@ -1,7 +1,7 @@
-From 6434c54e04ece8b327af3f1d453b9d2845f12fe2 Mon Sep 17 00:00:00 2001
+From e7da57411443c24b20a73085c10d0cf32872e94a 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 12/26] Fix typo on fnmatch return value check
+Subject: [PATCH 10/24] Fix typo on fnmatch return value check
 
 ---
  cmds/idmap/scan.cpp | 2 +-
diff --git a/patches/frameworks/base/0013-Add-Qualcomm-starlte.patch b/patches/frameworks/base/0011-Add-Qualcomm-starlte.patch
similarity index 91%
rename from patches/frameworks/base/0013-Add-Qualcomm-starlte.patch
rename to patches/frameworks/base/0011-Add-Qualcomm-starlte.patch
index 74fd837..3e6e3f2 100644
--- a/patches/frameworks/base/0013-Add-Qualcomm-starlte.patch
+++ b/patches/frameworks/base/0011-Add-Qualcomm-starlte.patch
@@ -1,7 +1,7 @@
-From c232a221826b04cacf0c9ba19d0f687b5adb61f4 Mon Sep 17 00:00:00 2001
+From 462337890f4e88da2ddb4c9f7927930b790aa889 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 13/26] Add Qualcomm starlte
+Subject: [PATCH 11/24] Add Qualcomm starlte
 
 ---
  .../core/java/com/android/server/lights/LightsService.java    | 4 +++-
diff --git a/patches/frameworks/base/0014-remaining-of-HAL-onEnroll-is-actually-a-percent-of-p.patch b/patches/frameworks/base/0012-Galaxy-S9-remaining-of-HAL-onEnroll-is-actually-a-pe.patch
similarity index 88%
rename from patches/frameworks/base/0014-remaining-of-HAL-onEnroll-is-actually-a-percent-of-p.patch
rename to patches/frameworks/base/0012-Galaxy-S9-remaining-of-HAL-onEnroll-is-actually-a-pe.patch
index b42ac73..87e7baf 100644
--- a/patches/frameworks/base/0014-remaining-of-HAL-onEnroll-is-actually-a-percent-of-p.patch
+++ b/patches/frameworks/base/0012-Galaxy-S9-remaining-of-HAL-onEnroll-is-actually-a-pe.patch
@@ -1,8 +1,8 @@
-From 7f583a4e841bfa0525abb0a523fee67f500a7e2f Mon Sep 17 00:00:00 2001
+From 934c4c7816086915410546c4737a1961b0e90ed7 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 14/26] "remaining" of HAL onEnroll is actually a percent of
- progress
+Subject: [PATCH 12/24] [Galaxy S9] "remaining" of HAL onEnroll is actually a
+ percent of progress
 
 ---
  .../com/android/server/fingerprint/FingerprintService.java  | 6 +++++-
diff --git a/patches/frameworks/base/0015-Show-APN-Settings-for-CDMA-carriers.patch b/patches/frameworks/base/0013-Show-APN-Settings-for-CDMA-carriers.patch
similarity index 90%
rename from patches/frameworks/base/0015-Show-APN-Settings-for-CDMA-carriers.patch
rename to patches/frameworks/base/0013-Show-APN-Settings-for-CDMA-carriers.patch
index f656493..7ee2e03 100644
--- a/patches/frameworks/base/0015-Show-APN-Settings-for-CDMA-carriers.patch
+++ b/patches/frameworks/base/0013-Show-APN-Settings-for-CDMA-carriers.patch
@@ -1,7 +1,7 @@
-From 4929e9f4ecda2f7083e8f975526e0f42e8ddac9f Mon Sep 17 00:00:00 2001
+From 39208bac6cdd94269f41f992d2597d050196e0c7 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 15/26] Show APN Settings for CDMA carriers
+Subject: [PATCH 13/24] Show APN Settings for CDMA carriers
 
 ---
  telephony/java/android/telephony/CarrierConfigManager.java | 2 +-
diff --git a/patches/frameworks/base/0016-Change-SignalStrentgh-to-change-behaviour-based-on-p.patch b/patches/frameworks/base/0014-Change-SignalStrentgh-to-change-behaviour-based-on-p.patch
similarity index 89%
rename from patches/frameworks/base/0016-Change-SignalStrentgh-to-change-behaviour-based-on-p.patch
rename to patches/frameworks/base/0014-Change-SignalStrentgh-to-change-behaviour-based-on-p.patch
index 846777e..b13082f 100644
--- a/patches/frameworks/base/0016-Change-SignalStrentgh-to-change-behaviour-based-on-p.patch
+++ b/patches/frameworks/base/0014-Change-SignalStrentgh-to-change-behaviour-based-on-p.patch
@@ -1,16 +1,17 @@
-From 5d298fdddbdf236dcd3908e8cfd2bd00c8a221a2 Mon Sep 17 00:00:00 2001
+From baa43b505d69d7d5dadf13bdb25d97eac8145d5f 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 16/26] Change SignalStrentgh to change behaviour based on
+Subject: [PATCH 14/24] Change SignalStrentgh to change behaviour based on
  property
 
 Change-Id: I940ed724047567ec5195ac93ea04574c3d92f70b
+Signed-off-by: Jackeagle <jackeagle102@gmail.com>
 ---
  .../android/telephony/SignalStrength.java     | 39 +++++++++++++------
  1 file changed, 27 insertions(+), 12 deletions(-)
 
 diff --git a/telephony/java/android/telephony/SignalStrength.java b/telephony/java/android/telephony/SignalStrength.java
-index 4e5639683a7..ff906d330d4 100644
+index 55c0c778972..69bc6128da6 100644
 --- a/telephony/java/android/telephony/SignalStrength.java
 +++ b/telephony/java/android/telephony/SignalStrength.java
 @@ -854,6 +854,7 @@ public class SignalStrength implements Parcelable {
@@ -21,9 +22,9 @@
          int rssiIconLevel = SIGNAL_STRENGTH_NONE_OR_UNKNOWN, rsrpIconLevel = -1, snrIconLevel = -1;
  
          if (mLteRsrp > MAX_LTE_RSRP || mLteRsrp < MIN_LTE_RSRP) {
-@@ -897,6 +898,32 @@ public class SignalStrength implements Parcelable {
-                 + rsrpIconLevel + " snrIconLevel:" + snrIconLevel
-                 + " lteRsrpBoost:" + mLteRsrpBoost);
+@@ -900,6 +901,32 @@ public class SignalStrength implements Parcelable {
+ 	/* Ignore RSSNR for now */
+ 	if(rsrpIconLevel != -1) return rsrpIconLevel;
  
 +        /* Valid values are (0-63, 99) as defined in TS 36.331 */
 +        // TODO the range here is probably supposed to be (0..31, 99). It's unclear if anyone relies
@@ -54,7 +55,7 @@
          /* Choose a measurement type to use for notification */
          if (snrIconLevel != -1 && rsrpIconLevel != -1) {
              /*
-@@ -911,18 +938,6 @@ public class SignalStrength implements Parcelable {
+@@ -914,18 +941,6 @@ public class SignalStrength implements Parcelable {
  
          if (rsrpIconLevel != -1) return rsrpIconLevel;
  
diff --git a/patches/frameworks/base/0017-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
similarity index 82%
rename from patches/frameworks/base/0017-idmap-Don-t-silently-ignore-RROs-with-same-priority.patch
rename to patches/frameworks/base/0015-idmap-Don-t-silently-ignore-RROs-with-same-priority.patch
index ffa27e6..bd9750c 100644
--- a/patches/frameworks/base/0017-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,7 +1,7 @@
-From 918aacb06ef25d3c6ede826ef65916103b9c5584 Mon Sep 17 00:00:00 2001
+From a44e1c7060944b61680d635bba3f3cf6c6ec0fc3 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 17/26] idmap: Don't silently ignore RROs with same priority
+Subject: [PATCH 15/24] idmap: Don't silently ignore RROs with same priority
 
 Change-Id: I64a6899f1b30e0cd9e9a872b7ca83d831f038cbe
 ---
diff --git a/patches/frameworks/base/0018-Move-SysuiDarkThemeOverlay-to-system.patch b/patches/frameworks/base/0016-Move-SysuiDarkThemeOverlay-to-system.patch
similarity index 86%
rename from patches/frameworks/base/0018-Move-SysuiDarkThemeOverlay-to-system.patch
rename to patches/frameworks/base/0016-Move-SysuiDarkThemeOverlay-to-system.patch
index 104d6dd..f1e1997 100644
--- a/patches/frameworks/base/0018-Move-SysuiDarkThemeOverlay-to-system.patch
+++ b/patches/frameworks/base/0016-Move-SysuiDarkThemeOverlay-to-system.patch
@@ -1,7 +1,7 @@
-From 1d441d72b476758932f06c9d742701af4756dedd Mon Sep 17 00:00:00 2001
+From 5e5f594514771d06e0a21d61b6a40dde00cff3a5 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 18/26] Move SysuiDarkThemeOverlay to /system
+Subject: [PATCH 16/24] Move SysuiDarkThemeOverlay to /system
 
 Change-Id: I31b3edc5d1abcc1163a13e63c909fee9d27ff432
 ---
diff --git a/patches/frameworks/base/0019-Reintroduce-button-backlight-and-respective-inactivi.patch b/patches/frameworks/base/0017-Reintroduce-button-backlight-and-respective-inactivi.patch
similarity index 96%
rename from patches/frameworks/base/0019-Reintroduce-button-backlight-and-respective-inactivi.patch
rename to patches/frameworks/base/0017-Reintroduce-button-backlight-and-respective-inactivi.patch
index 076a85d..b973400 100644
--- a/patches/frameworks/base/0019-Reintroduce-button-backlight-and-respective-inactivi.patch
+++ b/patches/frameworks/base/0017-Reintroduce-button-backlight-and-respective-inactivi.patch
@@ -1,7 +1,7 @@
-From 2beeca83b6ef8837355d84c5939ee543d6d2701f Mon Sep 17 00:00:00 2001
+From 06f853e0f4d05f28fa2d84a7b8744ba550d627dd Mon Sep 17 00:00:00 2001
 From: Ricardo Cerqueira <cyanogenmod@cerqueira.org>
 Date: Fri, 23 Nov 2012 14:23:16 +0000
-Subject: [PATCH 19/26] Reintroduce button-backlight (and respective inactivity
+Subject: [PATCH 17/24] Reintroduce button-backlight (and respective inactivity
  timeout)
 
 The power manager rewrite from Change I1d7a52e98f0449f76d70bf421f6a7f245957d1d7
@@ -13,6 +13,7 @@
 [RC: Updated to 5.0]
 
 Change-Id: I6094c446e0b8c23f57d30652a3cbd35dee5e821a
+Signed-off-by: Jackeagle <jackeagle102@gmail.com>
 ---
  .../server/display/DisplayPowerController.java       | 11 +++++++++++
  .../android/server/power/PowerManagerService.java    | 12 ++++++++++++
diff --git a/patches/frameworks/base/0020-power-Disable-keyboard-button-lights-while-dozing-dr.patch b/patches/frameworks/base/0018-power-Disable-keyboard-button-lights-while-dozing-dr.patch
similarity index 91%
rename from patches/frameworks/base/0020-power-Disable-keyboard-button-lights-while-dozing-dr.patch
rename to patches/frameworks/base/0018-power-Disable-keyboard-button-lights-while-dozing-dr.patch
index 4996927..4464dc4 100644
--- a/patches/frameworks/base/0020-power-Disable-keyboard-button-lights-while-dozing-dr.patch
+++ b/patches/frameworks/base/0018-power-Disable-keyboard-button-lights-while-dozing-dr.patch
@@ -1,7 +1,7 @@
-From b56a05837a3f080ffad773d7b4f8ad89fe69a697 Mon Sep 17 00:00:00 2001
+From 63233394738bb6292e2f7c1e463ea8ac22a1a3b8 Mon Sep 17 00:00:00 2001
 From: Steve Kondik <steve@cyngn.com>
 Date: Sat, 3 Jan 2015 05:13:26 -0800
-Subject: [PATCH 20/26] power: Disable keyboard/button lights while
+Subject: [PATCH 18/24] power: Disable keyboard/button lights while
  dozing/dreaming
 
  * With hardkeys and doze mode enabled, entering suspend results in
diff --git a/patches/frameworks/base/0021-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
similarity index 95%
rename from patches/frameworks/base/0021-It-is-okay-not-to-have-wifi-in-SystemUI-on-FDE-lock.patch
rename to patches/frameworks/base/0019-It-is-okay-not-to-have-wifi-in-SystemUI-on-FDE-lock.patch
index cd4ba84..d915028 100644
--- a/patches/frameworks/base/0021-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
@@ -1,7 +1,7 @@
-From 160cb121fe386b18361771dc6886fee42c6a4552 Mon Sep 17 00:00:00 2001
+From e32a7aee2baed63892967cdf00ff3934e0030613 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 21/26] It is okay not to have wifi in SystemUI (on FDE lock)
+Subject: [PATCH 19/24] It is okay not to have wifi in SystemUI (on FDE lock)
 
 ---
  .../src/com/android/settingslib/wifi/WifiTracker.java         | 2 +-
diff --git a/patches/frameworks/base/0022-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
similarity index 78%
rename from patches/frameworks/base/0022-Don-t-wake-IR-HAL-to-the-infinity-and-beyond.patch
rename to patches/frameworks/base/0020-Don-t-wake-IR-HAL-to-the-infinity-and-beyond.patch
index dbf6464..e56ab1a 100644
--- a/patches/frameworks/base/0022-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
@@ -1,18 +1,20 @@
-From c31d457bbc90e1c0dc0a5e21f0591af959b4a92b Mon Sep 17 00:00:00 2001
+From 289ddb298f77979a6c11947f8a7401cc4ca752cf 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 22/26] Don't wake IR HAL to the infinity and beyond
+Subject: [PATCH 20/24] Don't wake IR HAL to the infinity and beyond
 
+Change-Id: Ic538ab35ec9eb3ede43a277414b00c51a2efaed1
+Signed-off-by: Jackeagle <jackeagle102@gmail.com>
 ---
  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 c574a03c9a3..82ec033bc30 100644
+index 0a0065a7b55..ead288ea01a 100644
 --- a/services/core/java/com/android/server/ConsumerIrService.java
 +++ b/services/core/java/com/android/server/ConsumerIrService.java
-@@ -46,11 +46,6 @@ public class ConsumerIrService extends IConsumerIrService.Stub {
+@@ -48,11 +48,6 @@ public class ConsumerIrService extends IConsumerIrService.Stub {
          mWakeLock.setReferenceCounted(true);
  
          mHasNativeHal = halOpen();
@@ -21,9 +23,9 @@
 -                throw new RuntimeException("FEATURE_CONSUMER_IR present, but no IR HAL loaded!");
 -            }
 -        }
+         mParameter = AudioSystem.getParameters("audio_capability#irda_support");
      }
  
-     @Override
 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
diff --git a/patches/frameworks/base/0023-Switch-samsung-light-fingerprint-match-to-regexp-to-.patch b/patches/frameworks/base/0021-Switch-samsung-light-fingerprint-match-to-regexp-to-.patch
similarity index 90%
rename from patches/frameworks/base/0023-Switch-samsung-light-fingerprint-match-to-regexp-to-.patch
rename to patches/frameworks/base/0021-Switch-samsung-light-fingerprint-match-to-regexp-to-.patch
index 2a77571..205daa2 100644
--- a/patches/frameworks/base/0023-Switch-samsung-light-fingerprint-match-to-regexp-to-.patch
+++ b/patches/frameworks/base/0021-Switch-samsung-light-fingerprint-match-to-regexp-to-.patch
@@ -1,7 +1,7 @@
-From 2807a9946b7a22c46cd98f10f64a6bc55101b860 Mon Sep 17 00:00:00 2001
+From 015d04e949b09a5687164d6187674e2f951d092f 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 23/26] Switch samsung light fingerprint match to regexp, to
+Subject: [PATCH 21/24] Switch samsung light fingerprint match to regexp, to
  include Note9
 
 ---
diff --git a/patches/frameworks/base/0024-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
similarity index 91%
rename from patches/frameworks/base/0024-Add-a-property-toggle-to-enable-high-brightness-rang.patch
rename to patches/frameworks/base/0022-Add-a-property-toggle-to-enable-high-brightness-rang.patch
index 1aa969b..589f886 100644
--- a/patches/frameworks/base/0024-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
@@ -1,7 +1,7 @@
-From 54e3c7f10257e7fb9419429e6e3bebfccde3aeba Mon Sep 17 00:00:00 2001
+From 904c159a60f4b821cdcca0a55e156a4c9580d9e0 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 24/26] Add a property toggle to enable high brightness range
+Subject: [PATCH 22/24] Add a property toggle to enable high brightness range
  on samsung device
 
 ---
diff --git a/patches/frameworks/base/0025-Add-japanese-S9.patch b/patches/frameworks/base/0023-Add-japanese-S9.patch
similarity index 91%
rename from patches/frameworks/base/0025-Add-japanese-S9.patch
rename to patches/frameworks/base/0023-Add-japanese-S9.patch
index f501cb2..10bf4f4 100644
--- a/patches/frameworks/base/0025-Add-japanese-S9.patch
+++ b/patches/frameworks/base/0023-Add-japanese-S9.patch
@@ -1,7 +1,7 @@
-From be5482c01553a3dfc8e2b2e176c9d7f8069d5f53 Mon Sep 17 00:00:00 2001
+From 9874b4e728292d2cea21ffd61ca830544f1cf153 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 25/26] Add japanese S9
+Subject: [PATCH 23/24] Add japanese S9
 
 ---
  .../core/java/com/android/server/lights/LightsService.java     | 3 ++-
diff --git a/patches/frameworks/base/0026-Re-order-services-so-that-it-works-even-without-qtag.patch b/patches/frameworks/base/0024-Re-order-services-so-that-it-works-even-without-qtag.patch
similarity index 93%
rename from patches/frameworks/base/0026-Re-order-services-so-that-it-works-even-without-qtag.patch
rename to patches/frameworks/base/0024-Re-order-services-so-that-it-works-even-without-qtag.patch
index bab659b..1e54ef5 100644
--- a/patches/frameworks/base/0026-Re-order-services-so-that-it-works-even-without-qtag.patch
+++ b/patches/frameworks/base/0024-Re-order-services-so-that-it-works-even-without-qtag.patch
@@ -1,7 +1,7 @@
-From 377d3dd22093bbf4f324777af4865b46168496dd Mon Sep 17 00:00:00 2001
+From c14fdbff1137f5e03e9371eeedeea07bfad378de 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 26/26] Re-order services so that it works even without qtaguid
+Subject: [PATCH 24/24] Re-order services so that it works even without qtaguid
 
 ---
  .../com/android/server/net/NetworkPolicyManagerService.java | 6 +++---
diff --git a/patches/frameworks/compile/mclinker/0001-Revert-Update-FlexLinker.h-to-current-version-of-fle.patch b/patches/frameworks/compile/mclinker/0001-Revert-Update-FlexLinker.h-to-current-version-of-fle.patch
deleted file mode 100644
index d1211e8..0000000
--- a/patches/frameworks/compile/mclinker/0001-Revert-Update-FlexLinker.h-to-current-version-of-fle.patch
+++ /dev/null
@@ -1,241 +0,0 @@
-From e6c2552e60db1443867762dd62f51f9370dfb23d Mon Sep 17 00:00:00 2001
-From: Steven Moreland <smoreland@google.com>
-Date: Thu, 31 May 2018 14:38:54 -0700
-Subject: [PATCH] Revert "Update FlexLinker.h to current version of flex."
-
-This reverts commit a0a36870d5b5a66b7f7d04ea1aa15488b396d42d.
----
- include/mcld/Script/FlexLexer.h | 133 ++++++++++++++------------------
- 1 file changed, 56 insertions(+), 77 deletions(-)
-
-diff --git a/include/mcld/Script/FlexLexer.h b/include/mcld/Script/FlexLexer.h
-index cbc95f9..3514ee1 100644
---- a/include/mcld/Script/FlexLexer.h
-+++ b/include/mcld/Script/FlexLexer.h
-@@ -44,141 +44,122 @@
- // to rename each yyFlexLexer to some other xxFlexLexer.  You then
- // include <FlexLexer.h> in your other sources once per lexer class:
- //
--//      #undef yyFlexLexer
--//      #define yyFlexLexer xxFlexLexer
--//      #include <FlexLexer.h>
-+//	#undef yyFlexLexer
-+//	#define yyFlexLexer xxFlexLexer
-+//	#include <FlexLexer.h>
- //
--//      #undef yyFlexLexer
--//      #define yyFlexLexer zzFlexLexer
--//      #include <FlexLexer.h>
--//      ...
-+//	#undef yyFlexLexer
-+//	#define yyFlexLexer zzFlexLexer
-+//	#include <FlexLexer.h>
-+//	...
- 
- #ifndef __FLEX_LEXER_H
- // Never included before - need to define base class.
- #define __FLEX_LEXER_H
- 
- #include <iostream>
-+#ifndef FLEX_STD
-+#define FLEX_STD std::
-+#endif
- 
- extern "C++" {
--
- struct yy_buffer_state;
- typedef int yy_state_type;
- 
--class FlexLexer
--{
--public:
--  virtual ~FlexLexer()        { }
-+class FlexLexer {
-+ public:
-+  virtual ~FlexLexer() {}
- 
--  const char* YYText() const  { return yytext; }
--  int YYLeng()        const   { return yyleng; }
-+  const char* YYText() const { return yytext; }
-+  int YYLeng() const { return yyleng; }
- 
--  virtual void
--  yy_switch_to_buffer( yy_buffer_state* new_buffer ) = 0;
--  virtual yy_buffer_state* yy_create_buffer( std::istream* s, int size ) = 0;
--  virtual yy_buffer_state* yy_create_buffer( std::istream& s, int size ) = 0;
--  virtual void yy_delete_buffer( yy_buffer_state* b ) = 0;
--  virtual void yyrestart( std::istream* s ) = 0;
--  virtual void yyrestart( std::istream& s ) = 0;
-+  virtual void yy_switch_to_buffer(struct yy_buffer_state* new_buffer) = 0;
-+  virtual struct yy_buffer_state* yy_create_buffer(FLEX_STD istream* s,
-+                                                   int size) = 0;
-+  virtual void yy_delete_buffer(struct yy_buffer_state* b) = 0;
-+  virtual void yyrestart(FLEX_STD istream* s) = 0;
- 
-   virtual int yylex() = 0;
- 
-   // Call yylex with new input/output sources.
--  int yylex( std::istream& new_in, std::ostream& new_out )
--  {
--    switch_streams( new_in, new_out );
--    return yylex();
--  }
--
--  int yylex( std::istream* new_in, std::ostream* new_out = 0)
--  {
--    switch_streams( new_in, new_out );
-+  int yylex(FLEX_STD istream* new_in, FLEX_STD ostream* new_out = 0) {
-+    switch_streams(new_in, new_out);
-     return yylex();
-   }
- 
-   // Switch to new input/output streams.  A nil stream pointer
-   // indicates "keep the current one".
--  virtual void switch_streams( std::istream* new_in,
--                               std::ostream* new_out ) = 0;
--  virtual void switch_streams( std::istream& new_in,
--                               std::ostream& new_out ) = 0;
-+  virtual void switch_streams(FLEX_STD istream* new_in = 0,
-+                              FLEX_STD ostream* new_out = 0) = 0;
- 
--  int lineno() const          { return yylineno; }
-+  int lineno() const { return yylineno; }
- 
--  int debug() const           { return yy_flex_debug; }
--  void set_debug( int flag )  { yy_flex_debug = flag; }
-+  int debug() const { return yy_flex_debug; }
-+  void set_debug(int flag) { yy_flex_debug = flag; }
- 
--protected:
-+ protected:
-   char* yytext;
-   int yyleng;
-   int yylineno;       // only maintained if you use %option yylineno
-   int yy_flex_debug;  // only has effect with -d or "%option debug"
- };
--
- }
--#endif // FLEXLEXER_H
-+#endif  // FLEXLEXER_H
- 
--#if defined(yyFlexLexer) || ! defined(yyFlexLexerOnce)
-+#if defined(yyFlexLexer) || !defined(yyFlexLexerOnce)
- // Either this is the first time through (yyFlexLexerOnce not defined),
- // or this is a repeated include to define a different flavor of
- // yyFlexLexer, as discussed in the flex manual.
--# define yyFlexLexerOnce
-+#define yyFlexLexerOnce
- 
- extern "C++" {
--
- class yyFlexLexer : public FlexLexer {
--public:
-+ public:
-   // arg_yyin and arg_yyout default to the cin and cout, but we
-   // only make that assignment when initializing in yylex().
--  yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout );
--  yyFlexLexer( std::istream* arg_yyin = 0, std::ostream* arg_yyout = 0 );
--private:
--  void ctor_common();
--
--public:
-+  yyFlexLexer(FLEX_STD istream* arg_yyin = 0, FLEX_STD ostream* arg_yyout = 0);
- 
-   virtual ~yyFlexLexer();
- 
--  void yy_switch_to_buffer( yy_buffer_state* new_buffer );
--  yy_buffer_state* yy_create_buffer( std::istream* s, int size );
--  yy_buffer_state* yy_create_buffer( std::istream& s, int size );
--  void yy_delete_buffer( yy_buffer_state* b );
--  void yyrestart( std::istream* s );
--  void yyrestart( std::istream& s );
-+  void yy_switch_to_buffer(struct yy_buffer_state* new_buffer);
-+  struct yy_buffer_state* yy_create_buffer(FLEX_STD istream* s, int size);
-+  void yy_delete_buffer(struct yy_buffer_state* b);
-+  void yyrestart(FLEX_STD istream* s);
- 
--  void yypush_buffer_state( yy_buffer_state* new_buffer );
-+  void yypush_buffer_state(struct yy_buffer_state* new_buffer);
-   void yypop_buffer_state();
- 
-   virtual int yylex();
--  virtual void switch_streams( std::istream& new_in, std::ostream& new_out );
--  virtual void switch_streams( std::istream* new_in = 0, std::ostream* new_out = 0 );
-+  virtual void switch_streams(FLEX_STD istream* new_in,
-+                              FLEX_STD ostream* new_out = 0);
-   virtual int yywrap();
- 
--protected:
--  virtual int LexerInput( char* buf, int max_size );
--  virtual void LexerOutput( const char* buf, int size );
--  virtual void LexerError( const char* msg );
-+ protected:
-+  virtual int LexerInput(char* buf, int max_size);
-+  virtual void LexerOutput(const char* buf, int size);
-+  virtual void LexerError(const char* msg);
- 
--  void yyunput( int c, char* buf_ptr );
-+  void yyunput(int c, char* buf_ptr);
-   int yyinput();
- 
-   void yy_load_buffer_state();
--  void yy_init_buffer( yy_buffer_state* b, std::istream& s );
--  void yy_flush_buffer( yy_buffer_state* b );
-+  void yy_init_buffer(struct yy_buffer_state* b, FLEX_STD istream* s);
-+  void yy_flush_buffer(struct yy_buffer_state* b);
- 
-   int yy_start_stack_ptr;
-   int yy_start_stack_depth;
-   int* yy_start_stack;
- 
--  void yy_push_state( int new_state );
-+  void yy_push_state(int new_state);
-   void yy_pop_state();
-   int yy_top_state();
- 
-   yy_state_type yy_get_previous_state();
--  yy_state_type yy_try_NUL_trans( yy_state_type current_state );
-+  yy_state_type yy_try_NUL_trans(yy_state_type current_state);
-   int yy_get_next_buffer();
- 
--  std::istream yyin;  // input source for default LexerInput
--  std::ostream yyout; // output sink for default LexerOutput
-+  FLEX_STD istream* yyin;   // input source for default LexerInput
-+  FLEX_STD ostream* yyout;  // output sink for default LexerOutput
- 
-   // yy_hold_char holds the character lost when yytext is formed.
-   char yy_hold_char;
-@@ -189,17 +170,16 @@ protected:
-   // Points to current character in buffer.
-   char* yy_c_buf_p;
- 
--  int yy_init;                // whether we need to initialize
--  int yy_start;               // start state number
-+  int yy_init;   // whether we need to initialize
-+  int yy_start;  // start state number
- 
-   // Flag which is used to allow yywrap()'s to do buffer switches
-   // instead of setting up a fresh yyin.  A bit of a hack ...
-   int yy_did_buffer_switch_on_eof;
- 
--
--  size_t yy_buffer_stack_top; /**< index of top of stack. */
--  size_t yy_buffer_stack_max; /**< capacity of stack. */
--  yy_buffer_state ** yy_buffer_stack; /**< Stack as an array. */
-+  size_t yy_buffer_stack_top;               /**< index of top of stack. */
-+  size_t yy_buffer_stack_max;               /**< capacity of stack. */
-+  struct yy_buffer_state** yy_buffer_stack; /**< Stack as an array. */
-   void yyensure_buffer_stack(void);
- 
-   // The following are not always needed, but may be depending
-@@ -223,7 +203,6 @@ protected:
-   int yy_more_offset;
-   int yy_prev_more_offset;
- };
--
- }
- 
- #endif  // yyFlexLexer || ! yyFlexLexerOnce
--- 
-2.17.1
-
diff --git a/patches/frameworks/native/0004-Enable-fallback-to-old-ro.sf.hwrotation-property.patch b/patches/frameworks/native/0001-Enable-fallback-to-old-ro.sf.hwrotation-property.patch
similarity index 85%
rename from patches/frameworks/native/0004-Enable-fallback-to-old-ro.sf.hwrotation-property.patch
rename to patches/frameworks/native/0001-Enable-fallback-to-old-ro.sf.hwrotation-property.patch
index 658e08a..8a00c8e 100644
--- a/patches/frameworks/native/0004-Enable-fallback-to-old-ro.sf.hwrotation-property.patch
+++ b/patches/frameworks/native/0001-Enable-fallback-to-old-ro.sf.hwrotation-property.patch
@@ -1,17 +1,17 @@
-From c1d5c4623ee96cc37299a7da3034b8e8a1e62e9d Mon Sep 17 00:00:00 2001
+From ab72887deb1b7b297efc3bb26a62e23069a42081 Mon Sep 17 00:00:00 2001
 From: phh <phh@phh.me>
 Date: Wed, 22 Aug 2018 08:57:52 +0000
-Subject: [PATCH 4/4] Enable fallback to old ro.sf.hwrotation property
+Subject: [PATCH] Enable fallback to old ro.sf.hwrotation property
 
 ---
  services/surfaceflinger/SurfaceFlinger.cpp | 18 ++++++++++++++++++
  1 file changed, 18 insertions(+)
 
 diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
-index 729671d..f5bbae7 100644
+index b2d4637f1..22b13a578 100644
 --- a/services/surfaceflinger/SurfaceFlinger.cpp
 +++ b/services/surfaceflinger/SurfaceFlinger.cpp
-@@ -291,6 +291,24 @@ SurfaceFlinger::SurfaceFlinger() : SurfaceFlinger(SkipInitialization) {
+@@ -292,6 +292,24 @@ SurfaceFlinger::SurfaceFlinger() : SurfaceFlinger(SkipInitialization) {
              mPrimaryDisplayOrientation = DisplayState::eOrientationDefault;
              break;
      }
@@ -37,5 +37,5 @@
  
      mPrimaryDispSync.init(SurfaceFlinger::hasSyncFramework, SurfaceFlinger::dispSyncPresentTimeOffset);
 -- 
-2.7.4
+2.17.1
 
diff --git a/patches/frameworks/opt/net/wifi/0001-Revert-SupplicantManager-Remove-ensure_config_file_e.patch b/patches/frameworks/opt/net/wifi/0001-Revert-SupplicantManager-Remove-ensure_config_file_e.patch
index 48be182..67490f4 100644
--- a/patches/frameworks/opt/net/wifi/0001-Revert-SupplicantManager-Remove-ensure_config_file_e.patch
+++ b/patches/frameworks/opt/net/wifi/0001-Revert-SupplicantManager-Remove-ensure_config_file_e.patch
@@ -1,4 +1,4 @@
-From 327d25dd7f34dbf3218ad989d4de538515d3c189 Mon Sep 17 00:00:00 2001
+From 577b3801db3060a5ceff1171569b17e2c7a6d299 Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <phh@phh.me>
 Date: Tue, 14 Aug 2018 16:59:12 +0200
 Subject: [PATCH 1/3] Revert "SupplicantManager: Remove
@@ -6,11 +6,11 @@
 
 This reverts commit f61dc8cd7dadda5741d6e4a1bb6b576ba89cc24b.
 ---
- libwifi_system/supplicant_manager.cpp | 97 +++++++++++++++++++++++++++++++++++
+ libwifi_system/supplicant_manager.cpp | 97 +++++++++++++++++++++++++++
  1 file changed, 97 insertions(+)
 
 diff --git a/libwifi_system/supplicant_manager.cpp b/libwifi_system/supplicant_manager.cpp
-index 5667648..be0c33a 100644
+index 5667648b3..be0c33a8a 100644
 --- a/libwifi_system/supplicant_manager.cpp
 +++ b/libwifi_system/supplicant_manager.cpp
 @@ -33,7 +33,89 @@ namespace wifi_system {
@@ -126,5 +126,5 @@
     * Get a reference to the status property, so we can distinguish
     * the case where it goes stopped => running => stopped (i.e.,
 -- 
-2.7.4
+2.17.1
 
diff --git a/patches/frameworks/opt/net/wifi/0002-Start-supplicant-later.patch b/patches/frameworks/opt/net/wifi/0002-Start-supplicant-later.patch
index c841f21..2f7aa0e 100644
--- a/patches/frameworks/opt/net/wifi/0002-Start-supplicant-later.patch
+++ b/patches/frameworks/opt/net/wifi/0002-Start-supplicant-later.patch
@@ -1,15 +1,15 @@
-From a891832a0b7aa42978630532cb5bba2c45e7633d Mon Sep 17 00:00:00 2001
+From 5427620c157f9ef0c6948c31868f273d8ca27b74 Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <phh@phh.me>
 Date: Wed, 15 Aug 2018 00:04:45 +0200
 Subject: [PATCH 2/3] Start supplicant later
 
 Change-Id: I6a67baad486162415840006711fb6d8dbf96a66a
 ---
- service/java/com/android/server/wifi/WifiNative.java | 16 ++++++++++------
+ .../java/com/android/server/wifi/WifiNative.java | 16 ++++++++++------
  1 file changed, 10 insertions(+), 6 deletions(-)
 
 diff --git a/service/java/com/android/server/wifi/WifiNative.java b/service/java/com/android/server/wifi/WifiNative.java
-index 0f78587..18f06f7 100644
+index bc599c141..eb5e11aca 100644
 --- a/service/java/com/android/server/wifi/WifiNative.java
 +++ b/service/java/com/android/server/wifi/WifiNative.java
 @@ -332,13 +332,15 @@ public class WifiNative {
@@ -63,5 +63,5 @@
                  Log.e(TAG, "Failed to setup iface in wificond on " + iface);
                  teardownInterface(iface.name);
 -- 
-2.7.4
+2.17.1
 
diff --git a/patches/frameworks/opt/net/wifi/0003-Support-hostap-on-O-O-MR1-vendors.patch b/patches/frameworks/opt/net/wifi/0003-Support-hostap-on-O-O-MR1-vendors.patch
index d48b353..33b17a7 100644
--- a/patches/frameworks/opt/net/wifi/0003-Support-hostap-on-O-O-MR1-vendors.patch
+++ b/patches/frameworks/opt/net/wifi/0003-Support-hostap-on-O-O-MR1-vendors.patch
@@ -1,4 +1,4 @@
-From 0ff44cc65aa9dc16ff9f0301142b9b537b4912f8 Mon Sep 17 00:00:00 2001
+From 9aaa142521aabfd63d31abdf1da2aea4d07813a1 Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <pierre-hugues.husson@softathome.com>
 Date: Tue, 18 Sep 2018 17:05:07 +0200
 Subject: [PATCH 3/3] Support hostap on O/O-MR1 vendors
@@ -11,12 +11,12 @@
 Now, it is a requirement to be supported, so most(all?) HALs don't
 support it. force stop/start for every reconfiguration
 ---
- .../com/android/server/wifi/HalDeviceManager.java  | 22 ++++++++++++++++++++--
- .../java/com/android/server/wifi/WifiNative.java   | 15 ++++++++++++++-
+ .../android/server/wifi/HalDeviceManager.java | 22 +++++++++++++++++--
+ .../com/android/server/wifi/WifiNative.java   | 15 ++++++++++++-
  2 files changed, 34 insertions(+), 3 deletions(-)
 
 diff --git a/service/java/com/android/server/wifi/HalDeviceManager.java b/service/java/com/android/server/wifi/HalDeviceManager.java
-index 3c61217..68fc9cc 100644
+index 3c61217d7..68fc9ccfa 100644
 --- a/service/java/com/android/server/wifi/HalDeviceManager.java
 +++ b/service/java/com/android/server/wifi/HalDeviceManager.java
 @@ -63,8 +63,8 @@ import java.util.Set;
@@ -63,7 +63,7 @@
      }
  
 diff --git a/service/java/com/android/server/wifi/WifiNative.java b/service/java/com/android/server/wifi/WifiNative.java
-index 18f06f7..3680f14 100644
+index eb5e11aca..af8ccc8d9 100644
 --- a/service/java/com/android/server/wifi/WifiNative.java
 +++ b/service/java/com/android/server/wifi/WifiNative.java
 @@ -692,8 +692,21 @@ public class WifiNative {
@@ -90,5 +90,5 @@
                  Log.i(TAG, "Vendor Hal not supported, ignoring createApIface.");
                  return handleIfaceCreationWhenVendorHalNotSupported(iface);
 -- 
-2.7.4
+2.17.1
 
diff --git a/patches/frameworks/opt/telephony/0001-Add-route-to-gateway-on-null-netmask.patch b/patches/frameworks/opt/telephony/0001-Add-route-to-gateway-on-null-netmask.patch
index 35e2e0e..4e6bbcb 100644
--- a/patches/frameworks/opt/telephony/0001-Add-route-to-gateway-on-null-netmask.patch
+++ b/patches/frameworks/opt/telephony/0001-Add-route-to-gateway-on-null-netmask.patch
@@ -1,4 +1,4 @@
-From 3c8c5e2125a845d6868be27c389a5cfb5200e187 Mon Sep 17 00:00:00 2001
+From 0bd942753da9a6c8d7207afb1e0354a9873ddb69 Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <phh@phh.me>
 Date: Thu, 16 Aug 2018 22:12:46 +0200
 Subject: [PATCH 1/2] Add route to gateway on null netmask
@@ -7,11 +7,11 @@
 
 Change-Id: I8133da8e8f5203666684100009ba658528a02e94
 ---
- .../telephony/dataconnection/DataConnection.java        | 17 +++++++++++++++++
+ .../dataconnection/DataConnection.java          | 17 +++++++++++++++++
  1 file changed, 17 insertions(+)
 
 diff --git a/src/java/com/android/internal/telephony/dataconnection/DataConnection.java b/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
-index 0696aa9..11947a5 100644
+index 0696aa931..11947a5af 100644
 --- a/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
 +++ b/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
 @@ -24,6 +24,7 @@ import android.content.Context;
@@ -46,5 +46,5 @@
                      // this indicates a point-to-point interface.
                      linkProperties.addRoute(new RouteInfo(gateway));
 -- 
-2.7.4
+2.17.1
 
diff --git a/patches/frameworks/opt/telephony/0002-Allow-LocaleTracker-to-work-even-if-wifi-is-not-up-F.patch b/patches/frameworks/opt/telephony/0002-Allow-LocaleTracker-to-work-even-if-wifi-is-not-up-F.patch
index 5ea34d1..a6069b0 100644
--- a/patches/frameworks/opt/telephony/0002-Allow-LocaleTracker-to-work-even-if-wifi-is-not-up-F.patch
+++ b/patches/frameworks/opt/telephony/0002-Allow-LocaleTracker-to-work-even-if-wifi-is-not-up-F.patch
@@ -1,4 +1,4 @@
-From a04735c181e6212d3a31c47e7b984163a5df0a70 Mon Sep 17 00:00:00 2001
+From d4c7fb7f3d8193ea8680942169f396e93ccd71bf Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <phh@phh.me>
 Date: Mon, 20 Aug 2018 22:39:39 +0200
 Subject: [PATCH 2/2] Allow LocaleTracker to work even if wifi is not up (FDE)
@@ -9,7 +9,7 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/src/java/com/android/internal/telephony/LocaleTracker.java b/src/java/com/android/internal/telephony/LocaleTracker.java
-index 996e288..263d7e5 100644
+index 996e288dc..263d7e572 100644
 --- a/src/java/com/android/internal/telephony/LocaleTracker.java
 +++ b/src/java/com/android/internal/telephony/LocaleTracker.java
 @@ -408,8 +408,8 @@ public class LocaleTracker extends Handler {
@@ -24,5 +24,5 @@
      }
  
 -- 
-2.7.4
+2.17.1
 
