New patches, AOSP v22
diff --git a/patches/platform_frameworks_base/0001-renderthread-relax-error-handling-for-wide-gamut-EGL.patch b/patches/platform_frameworks_base/0001-renderthread-relax-error-handling-for-wide-gamut-EGL.patch
index 81c8692..62d7ab7 100644
--- a/patches/platform_frameworks_base/0001-renderthread-relax-error-handling-for-wide-gamut-EGL.patch
+++ b/patches/platform_frameworks_base/0001-renderthread-relax-error-handling-for-wide-gamut-EGL.patch
@@ -1,7 +1,7 @@
-From 5063cdf366ef61b1151f5376ca106f77719404ee Mon Sep 17 00:00:00 2001
+From c4d6cce4e0e601677108be08a0c72ee58a9cb4b7 Mon Sep 17 00:00:00 2001
 From: Rob Herring <robh@kernel.org>
 Date: Wed, 29 Nov 2017 09:26:31 -0600
-Subject: [PATCH 1/6] renderthread: relax error handling for wide gamut EGL
+Subject: [PATCH 01/16] renderthread: relax error handling for wide gamut EGL
  configs
 
 It is valid to advertise EGL_EXT_pixel_format_float, but not have a
diff --git a/patches/platform_frameworks_base/0002-Reintroduce-button-backlight-and-respective-inactivi.patch b/patches/platform_frameworks_base/0002-Reintroduce-button-backlight-and-respective-inactivi.patch
index 5321082..eeb693f 100644
--- a/patches/platform_frameworks_base/0002-Reintroduce-button-backlight-and-respective-inactivi.patch
+++ b/patches/platform_frameworks_base/0002-Reintroduce-button-backlight-and-respective-inactivi.patch
@@ -1,7 +1,7 @@
-From d7116d97f5a71b125be642494d897aed4ef31c60 Mon Sep 17 00:00:00 2001
+From 1672d35b1d213d54adf7ef20bcc6344683e0969f Mon Sep 17 00:00:00 2001
 From: Ricardo Cerqueira <cyanogenmod@cerqueira.org>
 Date: Fri, 23 Nov 2012 14:23:16 +0000
-Subject: [PATCH 2/6] Reintroduce button-backlight (and respective inactivity
+Subject: [PATCH 02/16] Reintroduce button-backlight (and respective inactivity
  timeout)
 
 The power manager rewrite from Change I1d7a52e98f0449f76d70bf421f6a7f245957d1d7
diff --git a/patches/platform_frameworks_base/0003-power-Disable-keyboard-button-lights-while-dozing-dr.patch b/patches/platform_frameworks_base/0003-power-Disable-keyboard-button-lights-while-dozing-dr.patch
index 2f72489..70fbc6c 100644
--- a/patches/platform_frameworks_base/0003-power-Disable-keyboard-button-lights-while-dozing-dr.patch
+++ b/patches/platform_frameworks_base/0003-power-Disable-keyboard-button-lights-while-dozing-dr.patch
@@ -1,7 +1,7 @@
-From 0ac1c80ec58bee78a6240a197c68975b284e984c Mon Sep 17 00:00:00 2001
+From c7329117006efae651d4adc315cb5663fb62e2e6 Mon Sep 17 00:00:00 2001
 From: Steve Kondik <steve@cyngn.com>
 Date: Sat, 3 Jan 2015 05:13:26 -0800
-Subject: [PATCH 3/6] power: Disable keyboard/button lights while
+Subject: [PATCH 03/16] power: Disable keyboard/button lights while
  dozing/dreaming
 
  * With hardkeys and doze mode enabled, entering suspend results in
diff --git a/patches/platform_frameworks_base/0004-Fix-backlight-control-on-Galaxy-S9.patch b/patches/platform_frameworks_base/0004-Fix-backlight-control-on-Galaxy-S9.patch
index 60c03f1..513decf 100644
--- a/patches/platform_frameworks_base/0004-Fix-backlight-control-on-Galaxy-S9.patch
+++ b/patches/platform_frameworks_base/0004-Fix-backlight-control-on-Galaxy-S9.patch
@@ -1,7 +1,7 @@
-From ec221199a674603080ab183c912bf5a48cbf2f28 Mon Sep 17 00:00:00 2001
+From a82315411eca9c1bb28216eb537f5a63b8a5fb94 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 4/6] Fix backlight control on Galaxy S9(+)
+Subject: [PATCH 04/16] Fix backlight control on Galaxy S9(+)
 
 ---
  services/core/java/com/android/server/lights/LightsService.java | 7 +++++++
diff --git a/patches/platform_frameworks_base/0005-Relax-requirement-for-visible-flag-to-sdcards.patch b/patches/platform_frameworks_base/0005-Relax-requirement-for-visible-flag-to-sdcards.patch
index 645a1b3..3b124d3 100644
--- a/patches/platform_frameworks_base/0005-Relax-requirement-for-visible-flag-to-sdcards.patch
+++ b/patches/platform_frameworks_base/0005-Relax-requirement-for-visible-flag-to-sdcards.patch
@@ -1,7 +1,7 @@
-From 284d851a55d31127dfe140197968d6daaa2d92e9 Mon Sep 17 00:00:00 2001
+From d807609094b6da867f2cb2672a6c36fb6bddaf05 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 5/6] Relax requirement for visible flag to sdcards
+Subject: [PATCH 05/16] 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/platform_frameworks_base/0006-Also-scan-product-overlay-for-RRO.patch b/patches/platform_frameworks_base/0006-Also-scan-product-overlay-for-RRO.patch
new file mode 100644
index 0000000..c2bb075
--- /dev/null
+++ b/patches/platform_frameworks_base/0006-Also-scan-product-overlay-for-RRO.patch
@@ -0,0 +1,51 @@
+From 1fef41d82a1e7a2bbafebcf519a60c888ffd3c4b Mon Sep 17 00:00:00 2001
+From: Pierre-Hugues Husson <pierre-hugues.husson@softathome.com>
+Date: Tue, 24 Apr 2018 18:08:59 +0200
+Subject: [PATCH 06/16] Also scan /product/overlay for RRO
+
+---
+ core/jni/android_util_AssetManager.cpp | 6 +++++-
+ core/jni/fd_utils.cpp                  | 3 ++-
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/core/jni/android_util_AssetManager.cpp b/core/jni/android_util_AssetManager.cpp
+index b137da3..30d8abe 100644
+--- a/core/jni/android_util_AssetManager.cpp
++++ b/core/jni/android_util_AssetManager.cpp
+@@ -164,7 +164,7 @@ static void verifySystemIdmaps()
+                 }
+ 
+                 // Generic idmap parameters
+-                const char* argv[8];
++                const char* argv[9];
+                 int argc = 0;
+                 struct stat st;
+ 
+@@ -189,6 +189,10 @@ static void verifySystemIdmaps()
+                     argv[argc++] = AssetManager::OVERLAY_DIR;
+                 }
+ 
++               if (stat("/product/overlay/", &st) == 0) {
++                   argv[argc++] = "/product/overlay";
++               }
++
+                 // Finally, invoke idmap (if any overlay directory exists)
+                 if (argc > 5) {
+                     execv(AssetManager::IDMAP_BIN, (char* const*)argv);
+diff --git a/core/jni/fd_utils.cpp b/core/jni/fd_utils.cpp
+index 956b724..496b140 100644
+--- a/core/jni/fd_utils.cpp
++++ b/core/jni/fd_utils.cpp
+@@ -89,7 +89,8 @@ bool FileDescriptorWhitelist::IsAllowed(const std::string& path) const {
+ 
+   if ((android::base::StartsWith(path, kOverlayDir)
+        || android::base::StartsWith(path, kOverlaySubdir)
+-       || android::base::StartsWith(path, kVendorOverlayDir))
++       || android::base::StartsWith(path, kVendorOverlayDir)
++       || android::base::StartsWith(path, "/product/overlay"))
+       && android::base::EndsWith(path, kApkSuffix)
+       && path.find("/../") == std::string::npos) {
+     return true;
+-- 
+2.7.4
+
diff --git a/patches/platform_frameworks_base/0006-Include-gapps-modifications-for-webview.patch b/patches/platform_frameworks_base/0006-Include-gapps-modifications-for-webview.patch
deleted file mode 100644
index 4fcdb08..0000000
--- a/patches/platform_frameworks_base/0006-Include-gapps-modifications-for-webview.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-From 3ed5a82453bbe5f6d58324ea14a4b8c5583ab7a8 Mon Sep 17 00:00:00 2001
-From: Pierre-Hugues Husson <phh@phh.me>
-Date: Mon, 26 Sep 2016 13:17:56 +0200
-Subject: [PATCH 6/6] Include gapps modifications for webview
-
-webview_packages: prefer the more powerful webview packages
-
-If Gapps are installed, better webview providers
-become avaliable.
-
-This commit adds support for those and makes the system
-choose the best provider: Chrome Stable>Google Webview>AOSP Webview
-
-It also allows the user to choose between additional
-providers from Play Store: Chrome Beta, Chrome Dev and Chrome Canary.
-
-AOSP WebView is used as Fallback in case no Gapps were installed.
-If Gapps were detected, AOSP WebView will be blocked and cannot be
-chosen any more.
-
-This patch is a collobarative work of:
-
-mfonville <maarten.fonville@gmail.com> @mfonville
-rapperskull <rapper.skull@hotmail.it> @rapperskull
-Arne-Christian Blystad <arne.christian.blystad@bartec-pixavi.com> @Blystad
-Alex Naidis <alex.naidis@linux.com> @TheCrazyLex
-
-You can find more information on this topic here: opengapps/aosp_build#76
-
-Change-Id: I3beecf38c75600ec05c9018259dfe3b539b73614
-Signed-off-by: Alex Naidis <alex.naidis@linux.com>
-
-webview_packages: correct signature definition for Chrome Stable
-
-This is an incremental fix onto this patch:
-https://github.com/AOSPA/android_frameworks_base/commit/d36582165d4694da101cc65755af0841d443c80e
-
-Previously the definition of the signature for Chrome Stable
-was ignored since it wasn't inside the definition of Chrome
-Stable as webviewprovider.
-
-Thanks goes to @AKPWebDesign for initially noticing this.
-
-Change-Id: Id5c051859e7e51e11304874ec2defaa11aede1bf
-Signed-off-by: Alex Naidis <alex.naidis@linux.com>
-
-webview_packages: fix incorrect signatures
-
-Chrome Stable and Google Webview had incorrect
-signatures. That was due to an incorrect method
-of determining the right signature.
-
-That mistake wasn't noticed because Android
-disables the signature check on "userdebug" and
-"eng" builds. It is only enabled on "user" builds.
-
-So this commit replaces the wrong signatures
-of Chrome Stable and Google Webview by the
-correct ones and thus makes them avaliable
-webview providers on "user" builds.
-
-Main credits go to @KreAch3R for his
-extensive research on the issue.
-
-Change-Id: I081783b59254bfed0b2e3568ba8ae2801d86efea
-Signed-off-by: Alex Naidis <alex.naidis@linux.com>
----
- core/res/res/xml/config_webview_packages.xml | 19 +++++++++++++++++--
- 1 file changed, 17 insertions(+), 2 deletions(-)
-
-diff --git a/core/res/res/xml/config_webview_packages.xml b/core/res/res/xml/config_webview_packages.xml
-index f062b59..574f7c1 100644
---- a/core/res/res/xml/config_webview_packages.xml
-+++ b/core/res/res/xml/config_webview_packages.xml
-@@ -15,7 +15,22 @@
- -->
- 
- <webviewproviders>
--    <!-- The default WebView implementation -->
--    <webviewprovider description="Android WebView" packageName="com.android.webview" availableByDefault="true">
-+
-+    <webviewprovider description="Chrome Stable" packageName="com.android.chrome" availableByDefault="true">
-+        <signature>MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK</signature>
-+    </webviewprovider>
-+    <webviewprovider description="Chrome Beta" packageName="com.chrome.beta">
-+        <signature>MIIDwzCCAqugAwIBAgIJAOoj9MXoVhH6MA0GCSqGSIb3DQEBBQUAMHgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEUMBIGA1UEAwwLY2hyb21lX2JldGEwHhcNMTYwMjI5MTUxNTIzWhcNNDMwNzE3MTUxNTIzWjB4MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEUMBIGA1UECgwLR29vZ2xlIEluYy4xEDAOBgNVBAsMB0FuZHJvaWQxFDASBgNVBAMMC2Nocm9tZV9iZXRhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo/wW27nRxVqGbFOyXr8jtv2pc2Ke8XMr6Sfs+3JK2licVaAljGFpLtWH4wUdb50w/QQSPALNLSSyuK/94rtp5Jjs4RSJI+whuewV/R6El+mFXBO3Ek5/op4UrOsR91IM4emvS67Ji2u8gp5EmttVgJtllFZCbtZLPmKuTaOkOB+EdWIxrYiHVEEaAcQpEHa9UgWUZ0bMfPj8j3F0w+Ak2ttmTjoFGLaZjuBAYwfdctN1b0sdLT9Lif45kMCb8QwPp0F9/ozs0rrTc+I6vnTS8kfFQfk7GIE4Hgm+cYQEHkIA6gLJxUVWvPZGdulAZw7wPt/neOkazHNZPcV4pYuNLQIDAQABo1AwTjAdBgNVHQ4EFgQU5t7dhcZfOSixRsiJ1E46JhzPlwowHwYDVR0jBBgwFoAU5t7dhcZfOSixRsiJ1E46JhzPlwowDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAZO2jB8P1d8ki3KZILvp27a2VM3DInlp8I8UgG3gh7nBQfTrnZr5M1PL8eFHqX7MEvAiGCMTcrPklEhjtcHK/c7BcdeCWq6oL56UK3JTl33RxJcjmjrz3e3VI6ehRSm1feNAkMD0Nr2RWr2LCYheAEmwTPtluLOJS+i7WhnXJzBtg5UpUFEbdFYenqUbDzya+cUVp0197k7hUTs8/Hxs0wf79o/TZXzTBq9eYQkiITonRN8+5QCBl1XmZKV0IHkzGFES1RP+fTiZpIjZT+W4tasHgs9QTTks4CCpyHBAy+uy7tApe1AxCzihgecCfUN1hWIltKwGZS6EE0bu0OXPzaQ==</signature>
-+    </webviewprovider>
-+    <webviewprovider description="Chrome Dev" packageName="com.chrome.dev">
-+        <signature>MIIDwTCCAqmgAwIBAgIJAOSN+O0cdii5MA0GCSqGSIb3DQEBBQUAMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDETMBEGA1UEAwwKY2hyb21lX2RldjAeFw0xNjAyMjkxNzUwMDdaFw00MzA3MTcxNzUwMDdaMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDETMBEGA1UEAwwKY2hyb21lX2RldjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOYPj6Y9rVt8xizSHDYjDEkDfFZAgSiZ9T6tevkQXsFyfaq3Gk3h2qssi29G6cTPJ2VXFKlVB71wSXv5p9/LEcDQPWQiO3Q2cLmgUXxyhJWXI3g96tPAhZQX2q6SC37ZQdiBR/raMO70DAkvCyBGtNplsvutzSE3oZ7LYfzB8vTbe7zCh3fDYSS/7xb3ZVvFqydHS40uVq1qqg1S80Pge7tW3pDGsPMZN7yA4yfmsvA1rbHm9N8t3Rc9hqzh6OxNAAgRB535YcsWL7iF+mpdFILXk3jLYT0nMvMnB83rsdgnRREjlGQYHl2mh8+6CqujsW/eICDq/LR6BYDyqHhk0ECAwEAAaNQME4wHQYDVR0OBBYEFKzsl07JglgpbeYDYGqsgqRDo+01MB8GA1UdIwQYMBaAFKzsl07JglgpbeYDYGqsgqRDo+01MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBACka6SFF6xAcj8L8O6R36++E09DTiGZEjvKT8eIycgcQQ+p1WUmPb6M2EJpN6zvvSE62ussmXdzf8rIyc0JXA8jbViZt62Y39epNENFxPTLN9QzXlT+w8AW73Ka3cnbOuL5EgoDl8fM79WVlARY3X+wB/jGNrkiGIdRm2IZIeAodWgC2mtXMiferyYBKz2/F2bhnU6DwgCbegS8trFjEWviijWdJ+lBdobn7LRc3orZCtHl8UyvRDi7cye3sK9y3BM39k0g20F21wTNHAonnvL6zbuNgpd+UEsVxDpOeWrEdBFN7Md0CI2wnu8eA8ljJD45v0WWMEoxsIi131g5piNM=</signature>
-+    </webviewprovider>
-+    <webviewprovider description="Chrome Canary" packageName="com.chrome.canary">
-+        <signature>MIIDxzCCAq+gAwIBAgIJAML7APITsgV7MA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEWMBQGA1UEAwwNY2hyb21lX2NhbmFyeTAeFw0xNjAyMjkxOTA5MDdaFw00MzA3MTcxOTA5MDdaMHoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEWMBQGA1UEAwwNY2hyb21lX2NhbmFyeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANXfeAoZlr0ya1HBzIfAz/nLLjpPJeAPvuX5dueaxmiQgv2hNG22acriFuiiJI6TU0t8AIVJD5Ifbc4OOuA0zeFhdzWWGnmTRH6x27WI7bzOKnAqOvv21ZBmE9i8Vo++K13xWdTs3qVn1bn9oUONxFu0wKDzXYZhoj1Jom0RZGjXm16xuPlEuOzMcjiNBDoYuxPAXkMcK/G1gP4P4nAV8Rd/GGIjKRS/SUtcShhoAMOQhs4WIEkUrvEVRwhBDIbpM87oFbCVdBH38r0XS6F6CdhPJsKFhoEfq4c01HZqNmDpCPA8AAcCuSWqmXoTIqs7OqkWgduE2bInbWU7WMaTl+kCAwEAAaNQME4wHQYDVR0OBBYEFB/AsC4iPAqaLoNytNSx29qByI7+MB8GA1UdIwQYMBaAFB/AsC4iPAqaLoNytNSx29qByI7+MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAMb2Td3ro/+MGVnCPAbwBSOZMVLUKGqt6zr8CShW9mtFHnmy29EaWSYYAj1M4+6Vpkq85NsgBEck7rnUjV8A3Q0NKdTys1KRKJqVvQRBN6SwqQenSf/abxQCa8Z+69rh+3BkIU1HLtu5lrMDZwon5H91L5mpORn6vItd20uW132lwSDeUEW2CHslTrodoFuTUcSUlRiq/URfUH3baO1QHXkxpQwrBPKL5deJfcZnxh5MAtAGSQL7gHvayEFlDppETXdDO7vgGTH2dEK2TjKWALbGiKkxSqjRyTNt4/FOj10TqNRdUamj+ydVJgzGQ8bki4Vc6NnKm/r4asusxapkVR4=</signature>
-     </webviewprovider>
-+    <webviewprovider description="Google WebView" packageName="com.google.android.webview" availableByDefault="true">
-+<signature>MIIDuzCCAqOgAwIBAgIJANi6DgBQG4ZTMA0GCSqGSIb3DQEBBQUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEQMA4GA1UEAwwHd2VidmlldzAeFw0xNDA4MDgyMzIwMjBaFw00MTEyMjQyMzIwMjBaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEQMA4GA1UEAwwHd2VidmlldzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbtaFX0r5aZJMAbPVMAgK1ZZ29dTn91VsGxXv2hqrQo7IpqEy2JmPvPnoMsSiuTAe+UcQy8oKDQ2aYVSAd1DGIy+nSRyFTt3LSIAdwSBkB1qT4a+OqkpsR6bSNXQXQ18lCQu9gREY3h3QlYBQAyzRxw4hRGlrXAzuSz1Ec4W+6x4nLG5DG61MAMR8ClF9XSqbmGB3kyZ70A0X9OPYYxiMWP1ExaYvpaVqjyZZcrPwr+vtW8oCuGBUtHpBUH3OoG+9s2YMcgLG7vCK9awKDqlPcJSpIAAj6uGs4gORmkqxZRMskLSTWbhP4p+3Ap8jYzTVB6Y1/DMVmYTWRMcPW0macCAwEAAaNQME4wHQYDVR0OBBYEFJ6bAR6/QVm4w9LRSGQiaR5Rhp3TMB8GA1UdIwQYMBaAFJ6bAR6/QVm4w9LRSGQiaR5Rhp3TMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAEQu8QiVxax7/diEiJrgKE1LwdXsIygJK/KnaKdnYEkAQpeu/QmrLiycm+OFbL1qHJIB7OuI/PQBUtcaNSiJSCVgtwtEbZWWIdsynqG/Nf4aGOndXegSQNRH54M05sRHLoeRycPrY7xQlEwGikNFR76+5UdwFBQI3Gn22g6puJnVukQm/wXQ+ajoiS4QclrNlixoDQsZ4STLH4+Wju2wIWKFFArIhVEIlbamq+p6BghuzH3aIz/Fy0YTQKi7SA+0fuNeCaqlSm5pYSt6p5CH89y1Fr+wFc5r3iLRnUwRcy08ESC7bZJnxV3d/YQ5valTxBbzku/dQbXVj/xg69H8l8M</signature>
-+</webviewprovider>
-+  <!-- The default WebView implementation -->
-+    <webviewprovider description="AOSP WebView" packageName="com.android.webview" availableByDefault="true" isFallback="true" />
- </webviewproviders>
--- 
-2.7.4
-
diff --git a/patches/platform_frameworks_base/0007-Also-scan-system-overlay.patch b/patches/platform_frameworks_base/0007-Also-scan-system-overlay.patch
new file mode 100644
index 0000000..ec64a33
--- /dev/null
+++ b/patches/platform_frameworks_base/0007-Also-scan-system-overlay.patch
@@ -0,0 +1,51 @@
+From e89aed22785fc3ce5aa0bd75c6410003dbc55245 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 07/16] Also scan /system/overlay
+
+---
+ core/jni/android_util_AssetManager.cpp | 6 +++++-
+ core/jni/fd_utils.cpp                  | 3 ++-
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/core/jni/android_util_AssetManager.cpp b/core/jni/android_util_AssetManager.cpp
+index 30d8abe..9ec1a75 100644
+--- a/core/jni/android_util_AssetManager.cpp
++++ b/core/jni/android_util_AssetManager.cpp
+@@ -164,7 +164,7 @@ static void verifySystemIdmaps()
+                 }
+ 
+                 // Generic idmap parameters
+-                const char* argv[9];
++                const char* argv[10];
+                 int argc = 0;
+                 struct stat st;
+ 
+@@ -193,6 +193,10 @@ static void verifySystemIdmaps()
+                    argv[argc++] = "/product/overlay";
+                }
+ 
++               if (stat("/system/overlay/", &st) == 0) {
++                   argv[argc++] = "/system/overlay";
++               }
++
+                 // Finally, invoke idmap (if any overlay directory exists)
+                 if (argc > 5) {
+                     execv(AssetManager::IDMAP_BIN, (char* const*)argv);
+diff --git a/core/jni/fd_utils.cpp b/core/jni/fd_utils.cpp
+index 496b140..6ba3798 100644
+--- a/core/jni/fd_utils.cpp
++++ b/core/jni/fd_utils.cpp
+@@ -90,7 +90,8 @@ bool FileDescriptorWhitelist::IsAllowed(const std::string& path) const {
+   if ((android::base::StartsWith(path, kOverlayDir)
+        || android::base::StartsWith(path, kOverlaySubdir)
+        || android::base::StartsWith(path, kVendorOverlayDir)
+-       || android::base::StartsWith(path, "/product/overlay"))
++       || android::base::StartsWith(path, "/product/overlay")
++       || android::base::StartsWith(path, "/system/overlay"))
+       && android::base::EndsWith(path, kApkSuffix)
+       && path.find("/../") == std::string::npos) {
+     return true;
+-- 
+2.7.4
+
diff --git a/patches/platform_frameworks_base/0008-Don-t-crash-if-there-is-IR-HAL-is-not-declared.patch b/patches/platform_frameworks_base/0008-Don-t-crash-if-there-is-IR-HAL-is-not-declared.patch
new file mode 100644
index 0000000..7e0fbe7
--- /dev/null
+++ b/patches/platform_frameworks_base/0008-Don-t-crash-if-there-is-IR-HAL-is-not-declared.patch
@@ -0,0 +1,25 @@
+From b099c00a7e70e730a4d1c7227e911f8f09ffd5f3 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 08/16] 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 2ed6c77..c574a03 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 {
+             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!");
+         }
+     }
+ 
+-- 
+2.7.4
+
diff --git a/patches/platform_frameworks_base/0009-Fix-62.patch b/patches/platform_frameworks_base/0009-Fix-62.patch
new file mode 100644
index 0000000..2cbe176
--- /dev/null
+++ b/patches/platform_frameworks_base/0009-Fix-62.patch
@@ -0,0 +1,28 @@
+From 90b1f32b2e4bbc22ee9dbbf586a804639fbe90f4 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 09/16] Fix(?) #62
+
+---
+ .../SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java     | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
+index cd23c97..7a0e1cb 100644
+--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
++++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
+@@ -837,7 +837,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
+ 
+         @Override
+         public void onAuthenticationError(int errMsgId, CharSequence errString) {
+-            handleFingerprintError(errMsgId, errString.toString());
++            if(errString != null)
++                 handleFingerprintError(errMsgId, errString.toString());
++            else
++                 handleFingerprintError(errMsgId, "unknown error");
+         }
+ 
+         @Override
+-- 
+2.7.4
+
diff --git a/patches/platform_frameworks_base/0010-S9-brightness-override-only-for-screen.patch b/patches/platform_frameworks_base/0010-S9-brightness-override-only-for-screen.patch
new file mode 100644
index 0000000..8cc2205
--- /dev/null
+++ b/patches/platform_frameworks_base/0010-S9-brightness-override-only-for-screen.patch
@@ -0,0 +1,35 @@
+From 6ef0f1fc726df642fef81ccd15edde6e9daaed53 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 10/16] S9 brightness override only for screen
+
+---
+ .../core/java/com/android/server/lights/LightsService.java   | 12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
+index 762b0ae..eb25943 100644
+--- a/services/core/java/com/android/server/lights/LightsService.java
++++ b/services/core/java/com/android/server/lights/LightsService.java
+@@ -53,11 +53,13 @@ public class LightsService extends SystemService {
+                     return;
+                 }
+ 
+-		String fp = SystemProperties.get("ro.vendor.build.fingerprint", "hello");
+-		if(fp.contains("starlte") || fp.contains("star2lte")) {
+-			setLightLocked(brightness*100, LIGHT_FLASH_HARDWARE, 0, 0, brightnessMode);
+-			return;
+-		}
++                if(mId == 0) {
++                    String fp = SystemProperties.get("ro.vendor.build.fingerprint", "hello");
++                    if(fp.contains("starlte") || fp.contains("star2lte")) {
++                        setLightLocked(brightness*100, LIGHT_FLASH_HARDWARE, 0, 0, brightnessMode);
++                        return;
++                    }
++                }
+ 
+                 int color = brightness & 0x000000ff;
+                 color = 0xff000000 | (color << 16) | (color << 8) | color;
+-- 
+2.7.4
+
diff --git a/patches/platform_frameworks_base/0011-WIP-Fix-OP6-brightness.patch b/patches/platform_frameworks_base/0011-WIP-Fix-OP6-brightness.patch
new file mode 100644
index 0000000..0a036ec
--- /dev/null
+++ b/patches/platform_frameworks_base/0011-WIP-Fix-OP6-brightness.patch
@@ -0,0 +1,35 @@
+From d68bb6edb78ecc043456474e6f57725a319f0a81 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 11/16] [WIP] Fix OP6 brightness
+
+---
+ .../core/java/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 eb25943..a77af44 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.7.4
+
diff --git a/patches/platform_frameworks_base/0012-Try-to-make-brightness-more-generic-using-property-s.patch b/patches/platform_frameworks_base/0012-Try-to-make-brightness-more-generic-using-property-s.patch
new file mode 100644
index 0000000..d48a466
--- /dev/null
+++ b/patches/platform_frameworks_base/0012-Try-to-make-brightness-more-generic-using-property-s.patch
@@ -0,0 +1,31 @@
+From 33bc4de58fe68c44a270adbaeadd68e7756e98a6 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 12/16] Try to make brightness more generic using property set
+ by rw-system
+
+---
+ services/core/java/com/android/server/lights/LightsService.java | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
+index a77af44..4dc44de 100644
+--- a/services/core/java/com/android/server/lights/LightsService.java
++++ b/services/core/java/com/android/server/lights/LightsService.java
+@@ -62,9 +62,11 @@ public class LightsService extends SystemService {
+ 
+                     boolean qcomExtendBrightness = SystemProperties.getBoolean("persist.extend.brightness", false);
+                     int scale = SystemProperties.getInt("persist.display.max_brightness", 1023);
+-                    if(fp.contains("OnePlus6")) {
++                    //This is set by vndk-detect
++                    int qcomScale = SystemProperties.getInt("persist.sys.qcom-brightness", -1);
++                    if(qcomScale != -1) {
+                         qcomExtendBrightness = true;
+-                        scale = 1023;
++                        scale = qcomScale;
+                     }
+ 
+                     if(qcomExtendBrightness) {
+-- 
+2.7.4
+
diff --git a/patches/platform_frameworks_base/0013-property-matching-RROs-allow-to-prefix-the-value-wit.patch b/patches/platform_frameworks_base/0013-property-matching-RROs-allow-to-prefix-the-value-wit.patch
new file mode 100644
index 0000000..3621435
--- /dev/null
+++ b/patches/platform_frameworks_base/0013-property-matching-RROs-allow-to-prefix-the-value-wit.patch
@@ -0,0 +1,35 @@
+From 02f3116e5a71bef5643bc9a6e6e7cdc9a0d1cf06 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 13/16] property-matching RROs: allow to prefix the value with
+ + to do glob match instead of exact match
+
+---
+ cmds/idmap/scan.cpp | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/cmds/idmap/scan.cpp b/cmds/idmap/scan.cpp
+index d69dd79..2be6d23 100644
+--- a/cmds/idmap/scan.cpp
++++ b/cmds/idmap/scan.cpp
+@@ -1,5 +1,6 @@
+ #include <dirent.h>
+ #include <inttypes.h>
++#include <fnmatch.h>
+ #include <sys/file.h>
+ #include <sys/stat.h>
+ 
+@@ -92,6 +93,10 @@ namespace {
+         property_get(prop, propBuf, NULL);
+         val = strndup16to8(value.string(), value.size());
+ 
++	if(val[0]=='+') {
++            return fnmatch(val+1, propBuf, 0) != 0;
++	}
++
+         return (strcmp(propBuf, val) == 0);
+     }
+ 
+-- 
+2.7.4
+
diff --git a/patches/platform_frameworks_base/0014-Fix-typo-on-fnmatch-return-value-check.patch b/patches/platform_frameworks_base/0014-Fix-typo-on-fnmatch-return-value-check.patch
new file mode 100644
index 0000000..cdc860d
--- /dev/null
+++ b/patches/platform_frameworks_base/0014-Fix-typo-on-fnmatch-return-value-check.patch
@@ -0,0 +1,25 @@
+From b8fd5db5611395bef9b7338d70d1279317849334 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 14/16] Fix typo on fnmatch return value check
+
+---
+ cmds/idmap/scan.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmds/idmap/scan.cpp b/cmds/idmap/scan.cpp
+index 2be6d23..0acff23 100644
+--- a/cmds/idmap/scan.cpp
++++ b/cmds/idmap/scan.cpp
+@@ -94,7 +94,7 @@ namespace {
+         val = strndup16to8(value.string(), value.size());
+ 
+ 	if(val[0]=='+') {
+-            return fnmatch(val+1, propBuf, 0) != 0;
++            return fnmatch(val+1, propBuf, 0) == 0;
+ 	}
+ 
+         return (strcmp(propBuf, val) == 0);
+-- 
+2.7.4
+
diff --git a/patches/platform_frameworks_base/0015-Add-Qualcomm-starlte.patch b/patches/platform_frameworks_base/0015-Add-Qualcomm-starlte.patch
new file mode 100644
index 0000000..61adacd
--- /dev/null
+++ b/patches/platform_frameworks_base/0015-Add-Qualcomm-starlte.patch
@@ -0,0 +1,27 @@
+From 983bd7a99b11e25b620fe37622f1f3a7f81dc7bd 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 15/16] Add Qualcomm starlte
+
+---
+ services/core/java/com/android/server/lights/LightsService.java | 4 +++-
+ 1 file changed, 3 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 4dc44de..2886f29 100644
+--- a/services/core/java/com/android/server/lights/LightsService.java
++++ b/services/core/java/com/android/server/lights/LightsService.java
+@@ -55,7 +55,9 @@ public class LightsService extends SystemService {
+ 
+                 if(mId == 0) {
+                     String fp = SystemProperties.get("ro.vendor.build.fingerprint", "hello");
+-                    if(fp.contains("starlte") || fp.contains("star2lte")) {
++                    if(
++                           fp.contains("starlte") || fp.contains("star2lte") ||
++                           fp.contains("starqlte") || fp.contains("star2qlte")) {
+                         setLightLocked(brightness*100, LIGHT_FLASH_HARDWARE, 0, 0, brightnessMode);
+                         return;
+                     }
+-- 
+2.7.4
+
diff --git a/patches/platform_frameworks_base/0016-Galaxy-S9-remaining-of-HAL-onEnroll-is-actually-a-pe.patch b/patches/platform_frameworks_base/0016-Galaxy-S9-remaining-of-HAL-onEnroll-is-actually-a-pe.patch
new file mode 100644
index 0000000..50564d2
--- /dev/null
+++ b/patches/platform_frameworks_base/0016-Galaxy-S9-remaining-of-HAL-onEnroll-is-actually-a-pe.patch
@@ -0,0 +1,30 @@
+From 352a0b282645b142c4a57fd165e35b39602953b9 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 16/16] [Galaxy S9] "remaining" of HAL onEnroll is actually a
+ percent of progress
+
+---
+ .../java/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 b1c165e..3cfa367 100644
+--- a/services/core/java/com/android/server/fingerprint/FingerprintService.java
++++ b/services/core/java/com/android/server/fingerprint/FingerprintService.java
+@@ -955,7 +955,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.7.4
+