diff --git a/patches/frameworks/native/0001-Ignore-usage-bits-verification.patch b/patches/frameworks/native/0001-Ignore-usage-bits-verification.patch
new file mode 100644
index 0000000..582ef1d
--- /dev/null
+++ b/patches/frameworks/native/0001-Ignore-usage-bits-verification.patch
@@ -0,0 +1,31 @@
+From 2ef0a95324974587a6b3d73217d34ca0f1e57063 Mon Sep 17 00:00:00 2001
+From: Pierre-Hugues Husson <phh@phh.me>
+Date: Sun, 19 Aug 2018 23:07:24 +0200
+Subject: [PATCH 1/4] Ignore usage bits verification
+
+This didn't ignore as of 8.1, so we're ""safe""
+
+Conflicts:
+	libs/ui/Gralloc2.cpp
+
+Change-Id: I5d7643416e24249b30347369eec2510259fa1c53
+---
+ libs/ui/Gralloc2.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libs/ui/Gralloc2.cpp b/libs/ui/Gralloc2.cpp
+index 105d2cbfa..8d859afb3 100644
+--- a/libs/ui/Gralloc2.cpp
++++ b/libs/ui/Gralloc2.cpp
+@@ -92,7 +92,7 @@ Gralloc2::Error Mapper::validateBufferDescriptorInfo(
+     if (descriptorInfo.usage & ~validUsageBits) {
+         ALOGE("buffer descriptor contains invalid usage bits 0x%" PRIx64,
+               descriptorInfo.usage & ~validUsageBits);
+-        return Error::NONE;
++        //return Error::BAD_VALUE;
+     }
+     return Error::NONE;
+ }
+-- 
+2.17.1
+
diff --git a/patches/frameworks/native/0001-Enable-fallback-to-old-ro.sf.hwrotation-property.patch b/patches/frameworks/native/0002-Enable-fallback-to-old-ro.sf.hwrotation-property.patch
similarity index 89%
rename from patches/frameworks/native/0001-Enable-fallback-to-old-ro.sf.hwrotation-property.patch
rename to patches/frameworks/native/0002-Enable-fallback-to-old-ro.sf.hwrotation-property.patch
index 8a00c8e..05c6be7 100644
--- a/patches/frameworks/native/0001-Enable-fallback-to-old-ro.sf.hwrotation-property.patch
+++ b/patches/frameworks/native/0002-Enable-fallback-to-old-ro.sf.hwrotation-property.patch
@@ -1,14 +1,14 @@
-From ab72887deb1b7b297efc3bb26a62e23069a42081 Mon Sep 17 00:00:00 2001
+From 520e662326d5932d74c9e4fb0a3dc57fcb858b23 Mon Sep 17 00:00:00 2001
 From: phh <phh@phh.me>
 Date: Wed, 22 Aug 2018 08:57:52 +0000
-Subject: [PATCH] Enable fallback to old ro.sf.hwrotation property
+Subject: [PATCH 2/4] 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 b2d4637f1..22b13a578 100644
+index d1a6ca781..cb3fa9ec1 100644
 --- a/services/surfaceflinger/SurfaceFlinger.cpp
 +++ b/services/surfaceflinger/SurfaceFlinger.cpp
 @@ -292,6 +292,24 @@ SurfaceFlinger::SurfaceFlinger() : SurfaceFlinger(SkipInitialization) {
diff --git a/patches/frameworks/native/0003-Revert-sf-Fix-damage-for-Huawei-compositor.patch b/patches/frameworks/native/0003-Revert-sf-Fix-damage-for-Huawei-compositor.patch
new file mode 100644
index 0000000..7b44a7e
--- /dev/null
+++ b/patches/frameworks/native/0003-Revert-sf-Fix-damage-for-Huawei-compositor.patch
@@ -0,0 +1,93 @@
+From 090a7ac43a4ee42a092580a4339d51e66e0cab7a Mon Sep 17 00:00:00 2001
+From: Pierre-Hugues Husson <phh@phh.me>
+Date: Sat, 25 Aug 2018 02:13:29 -0400
+Subject: [PATCH 3/4] Revert "sf: Fix damage for Huawei compositor"
+
+This reverts commit 508eeaea266bc018bf1265f789ed858b73dd7079.
+---
+ services/surfaceflinger/BufferLayer.cpp    | 35 +---------------------
+ services/surfaceflinger/SurfaceFlinger.cpp |  8 -----
+ services/surfaceflinger/SurfaceFlinger.h   |  2 --
+ 3 files changed, 1 insertion(+), 44 deletions(-)
+
+diff --git a/services/surfaceflinger/BufferLayer.cpp b/services/surfaceflinger/BufferLayer.cpp
+index 264d35aed..7ac143219 100644
+--- a/services/surfaceflinger/BufferLayer.cpp
++++ b/services/surfaceflinger/BufferLayer.cpp
+@@ -631,40 +631,7 @@ void BufferLayer::setPerFrameData(const sp<const DisplayDevice>& displayDevice)
+         visible.dump(LOG_TAG);
+     }
+ 
+-    if(mFlinger->mDamageUsesScreenReference) {
+-       const Rect& frame = hwcInfo.displayFrame;
+-       int32_t left = frame.left;
+-       int32_t top = frame.top;
+-       int32_t right = frame.right;
+-       int32_t bottom = frame.bottom;
+-       if(surfaceDamageRegion.getBounds() == Rect::INVALID_RECT) {
+-          auto fullSource = Region(Rect(left, top, right, bottom));
+-          error = hwcLayer->setSurfaceDamage(fullSource);
+-       } else {
+-          //There is no easy way to scale, so just scale the bounds
+-          const Rect& preDamageRect = surfaceDamageRegion.bounds();
+-          const FloatRect& crop = hwcInfo.sourceCrop;
+-
+-          float frameWidth = right - left;
+-          float frameHeight = bottom - top;
+-
+-          float cropWidth = crop.right - crop.left;
+-          float cropHeight = crop.bottom - crop.top;
+-
+-          float wFactor = frameWidth / cropWidth;
+-          float hFactor = frameHeight / cropHeight;
+-
+-          Rect scaledDamageRect = Rect(
+-              (int)(preDamageRect.left * wFactor),
+-              (int)(preDamageRect.top * hFactor),
+-              (int)(preDamageRect.right * wFactor),
+-              (int)(preDamageRect.bottom * hFactor));
+-          Region realDamage = Region(scaledDamageRect).translate(frame.left, frame.top);
+-          error = hwcLayer->setSurfaceDamage(realDamage);
+-       }
+-    } else {
+-       error = hwcLayer->setSurfaceDamage(surfaceDamageRegion);
+-    }
++    error = hwcLayer->setSurfaceDamage(surfaceDamageRegion);
+     if (error != HWC2::Error::None) {
+         ALOGE("[%s] Failed to set surface damage: %s (%d)", mName.string(),
+               to_string(error).c_str(), static_cast<int32_t>(error));
+diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
+index cb3fa9ec1..0580b4bfc 100644
+--- a/services/surfaceflinger/SurfaceFlinger.cpp
++++ b/services/surfaceflinger/SurfaceFlinger.cpp
+@@ -384,14 +384,6 @@ SurfaceFlinger::SurfaceFlinger() : SurfaceFlinger(SkipInitialization) {
+         // for production purposes later on.
+         setenv("TREBLE_TESTING_OVERRIDE", "true", true);
+     }
+-
+-    property_get("ro.hardware", value, "");
+-    if (!strcmp(value, "hi3660") ||
+-            !strcmp(value, "hi6250") ||
+-            !strcmp(value, "hi3670") ||
+-            !strcmp(value, "kirin970")) {
+-        mDamageUsesScreenReference = true;
+-    }
+ }
+ 
+ void SurfaceFlinger::onFirstRef()
+diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h
+index 7a8762b83..0148ab675 100644
+--- a/services/surfaceflinger/SurfaceFlinger.h
++++ b/services/surfaceflinger/SurfaceFlinger.h
+@@ -852,8 +852,6 @@ private:
+     // Restrict layers to use two buffers in their bufferqueues.
+     bool mLayerTripleBufferingDisabled = false;
+ 
+-    bool mDamageUsesScreenReference;
+-
+     // these are thread safe
+     mutable std::unique_ptr<MessageQueue> mEventQueue{std::make_unique<impl::MessageQueue>()};
+     FrameTracker mAnimFrameTracker;
+-- 
+2.17.1
+
diff --git a/patches/frameworks/native/0004-device-Huawei-HWC-doesn-t-understand-0-0-0-0-fullscr.patch b/patches/frameworks/native/0004-device-Huawei-HWC-doesn-t-understand-0-0-0-0-fullscr.patch
new file mode 100644
index 0000000..0002bec
--- /dev/null
+++ b/patches/frameworks/native/0004-device-Huawei-HWC-doesn-t-understand-0-0-0-0-fullscr.patch
@@ -0,0 +1,74 @@
+From 8ee3c4eba65c42f02c13d5bb65dcce33e9c0260a Mon Sep 17 00:00:00 2001
+From: Pierre-Hugues Husson <phh@phh.me>
+Date: Fri, 5 Jan 2018 00:26:38 +0100
+Subject: [PATCH 4/4] [device] ::Huawei:: HWC doesn't understand 0,0,0,0 ==
+ fullscreen damage. Set it to the whole visible surface
+
+::Huawei:: Fix damage for Huawei compositor
+
+For Huawei compositor, the damage area is a region on the screen.
+But for SurfaceFlinger, this is a region on the source surface.
+On Huawei devices, do the plane conversion.
+
+This fixes several UI glitches, most notably GBoard.
+---
+ services/surfaceflinger/BufferLayer.cpp    | 8 +++++++-
+ services/surfaceflinger/SurfaceFlinger.cpp | 8 ++++++++
+ services/surfaceflinger/SurfaceFlinger.h   | 3 +++
+ 3 files changed, 18 insertions(+), 1 deletion(-)
+
+diff --git a/services/surfaceflinger/BufferLayer.cpp b/services/surfaceflinger/BufferLayer.cpp
+index 7ac143219..2646af0c9 100644
+--- a/services/surfaceflinger/BufferLayer.cpp
++++ b/services/surfaceflinger/BufferLayer.cpp
+@@ -631,7 +631,13 @@ void BufferLayer::setPerFrameData(const sp<const DisplayDevice>& displayDevice)
+         visible.dump(LOG_TAG);
+     }
+ 
+-    error = hwcLayer->setSurfaceDamage(surfaceDamageRegion);
++    if(mFlinger->mDamageUsesScreenReference) {
++        const auto& frame = hwcInfo.displayFrame;
++        auto fullSource = Region(Rect(frame.left, frame.top, frame.right, frame.bottom));
++        error = hwcLayer->setSurfaceDamage(fullSource);
++    } else {
++        error = hwcLayer->setSurfaceDamage(surfaceDamageRegion);
++    }
+     if (error != HWC2::Error::None) {
+         ALOGE("[%s] Failed to set surface damage: %s (%d)", mName.string(),
+               to_string(error).c_str(), static_cast<int32_t>(error));
+diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
+index 0580b4bfc..49e3b269a 100644
+--- a/services/surfaceflinger/SurfaceFlinger.cpp
++++ b/services/surfaceflinger/SurfaceFlinger.cpp
+@@ -384,6 +384,14 @@ SurfaceFlinger::SurfaceFlinger() : SurfaceFlinger(SkipInitialization) {
+         // for production purposes later on.
+         setenv("TREBLE_TESTING_OVERRIDE", "true", true);
+     }
++
++    property_get("ro.hardware", value, "");
++    if(strstr(value, "hi3660")||
++            strstr(value, "hi6250") ||
++            strstr(value, "hi3670") ||
++            strstr(value, "kirin970")) {
++        mDamageUsesScreenReference = true;
++    }
+ }
+ 
+ void SurfaceFlinger::onFirstRef()
+diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h
+index 0148ab675..367ea555a 100644
+--- a/services/surfaceflinger/SurfaceFlinger.h
++++ b/services/surfaceflinger/SurfaceFlinger.h
+@@ -852,6 +852,9 @@ private:
+     // Restrict layers to use two buffers in their bufferqueues.
+     bool mLayerTripleBufferingDisabled = false;
+ 
++    bool mDamageUsesScreenReference;
++
++
+     // these are thread safe
+     mutable std::unique_ptr<MessageQueue> mEventQueue{std::make_unique<impl::MessageQueue>()};
+     FrameTracker mAnimFrameTracker;
+-- 
+2.17.1
+
