patches: Update for Bliss 11.2 Stable

Signed-off-by: Jackeagle <jackeagle102@gmail.com>
Change-Id: I6f7c6beee6581a349627f4f449f99f5c894e37e7
diff --git a/patches/vendor/bliss/0001-Revert-verity_tool-Implement-status-getter.patch b/patches/vendor/bliss/0001-Revert-verity_tool-Implement-status-getter.patch
new file mode 100644
index 0000000..2cda6de
--- /dev/null
+++ b/patches/vendor/bliss/0001-Revert-verity_tool-Implement-status-getter.patch
@@ -0,0 +1,199 @@
+From 6d89034411393db371fb376931dc6c1b6b114c40 Mon Sep 17 00:00:00 2001
+From: Jackeagle <jackeagle102@gmail.com>
+Date: Sat, 17 Nov 2018 08:24:08 -0700
+Subject: [PATCH 1/9] Revert "verity_tool: Implement status getter"
+
+This reverts commit 385296fd334a854915d41ef556ce7bb981f66bb3.
+
+Change-Id: I8748c6c4ee0158124ad9c4469521be7d1cc02fc6
+---
+ config/BoardConfigBliss.mk        |  8 ++--
+ verity_tool/include/verity_tool.h | 15 --------
+ verity_tool/main.cpp              | 27 +------------
+ verity_tool/verity_tool.cpp       | 63 -------------------------------
+ 4 files changed, 6 insertions(+), 107 deletions(-)
+
+diff --git a/config/BoardConfigBliss.mk b/config/BoardConfigBliss.mk
+index 032e061..7ccae1d 100644
+--- a/config/BoardConfigBliss.mk
++++ b/config/BoardConfigBliss.mk
+@@ -9,8 +9,8 @@ ifeq ($(TARGET_HW_DISK_ENCRYPTION),true)
+ endif
+ 
+ include vendor/bliss/config/BoardConfigKernel.mk
+-include vendor/bliss/config/BoardConfigSoong.mk
++include vendor/lineage/config/BoardConfigSoong.mk
+ 
+-ifeq ($(BOARD_USES_QCOM_HARDWARE),true)
+-include vendor/bliss/config/BoardConfigQcom.mk
+-endif
++ifeq ($(BOARD_USES_QCOM_HARDWARE),true) 
++include vendor/bliss/config/BoardConfigQcom.mk 
++endif 
+diff --git a/verity_tool/include/verity_tool.h b/verity_tool/include/verity_tool.h
+index b81eda1..25a6a7c 100644
+--- a/verity_tool/include/verity_tool.h
++++ b/verity_tool/include/verity_tool.h
+@@ -18,14 +18,6 @@
+ 
+ #include <string>
+ 
+-typedef enum {
+-    VERITY_STATE_UNKNOWN,
+-    VERITY_STATE_NO_DEVICE,
+-    VERITY_STATE_DISABLED,
+-    VERITY_STATE_ENABLED,
+-    VERITY_STATE_MAX = VERITY_STATE_ENABLED
+-} verity_state_t;
+-
+ /*
+  * Return codes:
+  *
+@@ -35,13 +27,6 @@ typedef enum {
+ bool set_block_device_verity_enabled(const std::string& block_device,
+                                      bool enable);
+ 
+-/*
+- * Return codes:
+- *
+- *    verity state (unknown, disabled, enabled)
+- */
+-verity_state_t get_verity_state();
+-
+ /*
+  * Return codes:
+  *
+diff --git a/verity_tool/main.cpp b/verity_tool/main.cpp
+index befdafa..f5f026a 100644
+--- a/verity_tool/main.cpp
++++ b/verity_tool/main.cpp
+@@ -24,23 +24,20 @@ static void print_usage() {
+     printf("veritytool - toggle block device verification\n"
+            "    --help        show this help\n"
+            "    --enable      enable dm-verity\n"
+-           "    --disable     disable dm-verity\n"
+-           "    --show        show current dm-verity state\n");
++           "    --disable     disable dm-verity\n");
+ }
+ 
+ int main(int argc, char** argv) {
+     int c, rc;
+     int enable = 0;
+-    int show = 0;
+     bool flag_set = false;
+     struct option long_opts[] = {
+         {"disable", no_argument, &enable, 0},
+         {"enable", no_argument, &enable, 1},
+-        {"show", no_argument, &show, 1},
+         {NULL, 0, NULL, 0},
+     };
+ 
+-    while ((c = getopt_long(argc, argv, "des", long_opts, NULL)) != -1) {
++    while ((c = getopt_long(argc, argv, "de", long_opts, NULL)) != -1) {
+         switch (c) {
+             case 0:
+                 flag_set = true;
+@@ -56,26 +53,6 @@ int main(int argc, char** argv) {
+         exit(0);
+     }
+ 
+-    if (show) {
+-        printf("dm-verity state: ");
+-        switch (get_verity_state()) {
+-            case VERITY_STATE_NO_DEVICE:
+-                printf("NO DEVICE");
+-                break;
+-            case VERITY_STATE_DISABLED:
+-                printf("DISABLED");
+-                break;
+-            case VERITY_STATE_ENABLED:
+-                printf("ENABLED");
+-                break;
+-            default:
+-                printf("UNKNOWN");
+-                break;
+-        }
+-        printf("\n");
+-        return 0;
+-    }
+-
+     if (!set_verity_enabled(enable)) {
+         printf("Error occurred in set_verity_enable\n");
+         exit(EXIT_FAILURE);
+diff --git a/verity_tool/verity_tool.cpp b/verity_tool/verity_tool.cpp
+index 48e95b6..9575c4c 100644
+--- a/verity_tool/verity_tool.cpp
++++ b/verity_tool/verity_tool.cpp
+@@ -108,69 +108,6 @@ static std::string get_ab_suffix() {
+     return ab_suffix;
+ }
+ 
+-verity_state_t get_verity_state() {
+-    verity_state_t rc = VERITY_STATE_NO_DEVICE;
+-    std::string ab_suffix = get_ab_suffix();
+-
+-    // Figure out if we're using VB1.0 or VB2.0 (aka AVB) - by
+-    // contract, androidboot.vbmeta.digest is set by the bootloader
+-    // when using AVB).
+-    bool using_avb = !android::base::GetProperty("ro.boot.vbmeta.digest", "").empty();
+-
+-    if (using_avb) {
+-        // Yep, the system is using AVB.
+-        AvbOps* ops = avb_ops_user_new();
+-        if (ops == nullptr) {
+-            LOG(ERROR) << "Error getting AVB ops";
+-            avb_ops_user_free(ops);
+-            return VERITY_STATE_UNKNOWN;
+-        }
+-        bool verity_enabled;
+-        if (!avb_user_verity_get(ops, ab_suffix.c_str(), &verity_enabled)) {
+-            LOG(ERROR) << "Error getting verity state";
+-            avb_ops_user_free(ops);
+-            return VERITY_STATE_UNKNOWN;
+-        }
+-        rc = verity_enabled ? VERITY_STATE_ENABLED : VERITY_STATE_DISABLED;
+-        avb_ops_user_free(ops);
+-    } else {
+-        // Not using AVB - assume VB1.0.
+-
+-        // read all fstab entries at once from all sources
+-        struct fstab* fstab = fs_mgr_read_fstab_default();
+-        if (!fstab) {
+-            LOG(ERROR) << "Failed to read fstab";
+-            fs_mgr_free_fstab(fstab);
+-            return VERITY_STATE_UNKNOWN;
+-        }
+-
+-        // Loop through entries looking for ones that vold manages.
+-        for (int i = 0; i < fstab->num_entries; i++) {
+-            if (fs_mgr_is_verified(&fstab->recs[i])) {
+-                std::string block_device = fstab->recs[i].blk_device;
+-                fec::io fh(block_device, O_RDONLY);
+-                if (!fh) {
+-                    PLOG(ERROR) << "Could not open block device " << block_device;
+-                    rc = VERITY_STATE_UNKNOWN;
+-                    break;
+-                }
+-
+-                fec_verity_metadata metadata;
+-                if (!fh.get_verity_metadata(metadata)) {
+-                    LOG(ERROR) << "Couldn't find verity metadata!";
+-                    rc = VERITY_STATE_UNKNOWN;
+-                    break;
+-                }
+-
+-                rc = metadata.disabled ? VERITY_STATE_DISABLED : VERITY_STATE_ENABLED;
+-            }
+-        }
+-        fs_mgr_free_fstab(fstab);
+-    }
+-
+-    return rc;
+-}
+-
+ /* Use AVB to turn verity on/off */
+ static bool set_avb_verity_enabled_state(AvbOps* ops, bool enable_verity) {
+     std::string ab_suffix = get_ab_suffix();
+-- 
+2.17.1
+
diff --git a/patches/vendor/bliss/0002-Revert-kernel.mk-Support-kernels-that-use-LTO.patch b/patches/vendor/bliss/0002-Revert-kernel.mk-Support-kernels-that-use-LTO.patch
new file mode 100644
index 0000000..f92e018
--- /dev/null
+++ b/patches/vendor/bliss/0002-Revert-kernel.mk-Support-kernels-that-use-LTO.patch
@@ -0,0 +1,114 @@
+From 923baf7c52a3598ab9c35ef689a9d53bfb850024 Mon Sep 17 00:00:00 2001
+From: Jackeagle <jackeagle102@gmail.com>
+Date: Sat, 17 Nov 2018 08:24:36 -0700
+Subject: [PATCH 2/9] Revert "kernel.mk: Support kernels that use LTO"
+
+This reverts commit 811524eef488f81295c876b669d8ec7a6cad9cea.
+
+Change-Id: I01ddf5eedfed84c04c1a36856e495da4fb5a83c3
+---
+ build/tasks/kernel.mk | 31 +++++++++++++++----------------
+ 1 file changed, 15 insertions(+), 16 deletions(-)
+
+diff --git a/build/tasks/kernel.mk b/build/tasks/kernel.mk
+index 54812a9..7a674ee 100644
+--- a/build/tasks/kernel.mk
++++ b/build/tasks/kernel.mk
+@@ -178,9 +178,8 @@ ifeq ($(TARGET_KERNEL_CLANG_COMPILE),true)
+     else ifeq ($(KERNEL_ARCH),x86)
+         KERNEL_CLANG_TRIPLE ?= CLANG_TRIPLE=x86_64-linux-gnu-
+     endif
+-    PATH_OVERRIDE := PATH=$(TARGET_KERNEL_CLANG_PATH):$$PATH LD_LIBRARY_PATH=$(BUILD_TOP)/prebuilts/clang/host/$(HOST_OS)-x86/$(KERNEL_CLANG_VERSION)/lib64:$$LD_LIBRARY_PATH
+     ifeq ($(KERNEL_CC),)
+-        KERNEL_CC := CC="$(CCACHE_BIN) clang"
++        KERNEL_CC := CC="$(CCACHE_BIN) $(TARGET_KERNEL_CLANG_PATH)/clang"
+     endif
+ endif
+ 
+@@ -197,17 +196,17 @@ $(KERNEL_ADDITIONAL_CONFIG_OUT): force_additional_config
+ $(KERNEL_CONFIG): $(KERNEL_DEFCONFIG_SRC) $(KERNEL_ADDITIONAL_CONFIG_OUT)
+ 	@echo "Building Kernel Config"
+ 	$(hide) mkdir -p $(KERNEL_OUT)
+-	$(PATH_OVERRIDE) $(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG)
++	$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG)
+ 	$(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
+ 			echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
+ 			echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \
+-			$(PATH_OVERRIDE) $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) oldconfig; fi
++			$(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) oldconfig; fi
+ 	# Create defconfig build artifact
+-	$(hide) $(PATH_OVERRIDE) $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) savedefconfig
++	$(hide) $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) savedefconfig
+ 	$(hide) if [ ! -z "$(KERNEL_ADDITIONAL_CONFIG)" ]; then \
+ 			echo "Using additional config '$(KERNEL_ADDITIONAL_CONFIG)'"; \
+ 			$(KERNEL_SRC)/scripts/kconfig/merge_config.sh -m -O $(KERNEL_OUT) $(KERNEL_OUT)/.config $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG); \
+-			$(PATH_OVERRIDE) $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) KCONFIG_ALLCONFIG=$(KERNEL_OUT)/.config alldefconfig; fi
++			$(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) KCONFIG_ALLCONFIG=$(KERNEL_OUT)/.config alldefconfig; fi
+ 
+ .PHONY: TARGET_KERNEL_BINARIES
+ TARGET_KERNEL_BINARIES: $(KERNEL_CONFIG)
+@@ -215,21 +214,21 @@ TARGET_KERNEL_BINARIES: $(KERNEL_CONFIG)
+ 	$(hide) rm -rf $(KERNEL_MODULES_OUT)
+ 	$(hide) mkdir -p $(KERNEL_MODULES_OUT)
+ 	$(hide) rm -rf $(KERNEL_DEPMOD_STAGING_DIR)
+-	$(PATH_OVERRIDE) $(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(BOARD_KERNEL_IMAGE_NAME)
++	$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(BOARD_KERNEL_IMAGE_NAME)
+ 	$(hide) if grep -q '^CONFIG_OF=y' $(KERNEL_CONFIG); then \
+ 			echo "Building DTBs"; \
+-			$(PATH_OVERRIDE) $(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) dtbs; \
++			$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) dtbs; \
+ 		fi
+ 	$(hide) if grep -q '^CONFIG_MODULES=y' $(KERNEL_CONFIG); then \
+ 			echo "Building Kernel Modules"; \
+-			$(PATH_OVERRIDE) $(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) modules; \
++			$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) modules; \
+ 		fi
+ 
+ .PHONY: INSTALLED_KERNEL_MODULES
+ INSTALLED_KERNEL_MODULES: depmod-host
+ 	$(hide) if grep -q '^CONFIG_MODULES=y' $(KERNEL_CONFIG); then \
+ 			echo "Installing Kernel Modules"; \
+-			$(PATH_OVERRIDE) $(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) modules_install && \
++			$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) modules_install && \
+ 			mofile=$$(find $(KERNEL_MODULES_OUT) -type f -name modules.order) && \
+ 			mpath=$$(dirname $$mofile) && \
+ 			for f in $$(find $$mpath/kernel -type f -name '*.ko'); do \
+@@ -250,29 +249,29 @@ $(TARGET_PREBUILT_INT_KERNEL): $(TARGET_KERNEL_MODULES)
+ .PHONY: kerneltags
+ kerneltags: $(KERNEL_CONFIG)
+ 	$(hide) mkdir -p $(KERNEL_OUT)
+-	$(PATH_OVERRIDE) $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) tags
++	$(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) tags
+ 
+ .PHONY: kernelsavedefconfig alldefconfig
+ 
+ kernelsavedefconfig:
+ 	$(hide) mkdir -p $(KERNEL_OUT)
+-	$(PATH_OVERRIDE) $(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG)
++	$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG)
+ 	env KCONFIG_NOTIMESTAMP=true \
+-		 $(PATH_OVERRIDE) $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) savedefconfig
++		 $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) savedefconfig
+ 	cp $(KERNEL_OUT)/defconfig $(KERNEL_DEFCONFIG_SRC)
+ 
+ alldefconfig:
+ 	$(hide) mkdir -p $(KERNEL_OUT)
+ 	env KCONFIG_NOTIMESTAMP=true \
+-		 $(PATH_OVERRIDE) $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) alldefconfig
++		 $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) alldefconfig
+ 
+ endif # FULL_KERNEL_BUILD
+ 
+ TARGET_PREBUILT_DTBO = $(PRODUCT_OUT)/dtbo/arch/$(KERNEL_ARCH)/boot/dtbo.img
+ $(TARGET_PREBUILT_DTBO): $(AVBTOOL)
+ 	echo -e ${CL_GRN}"Building DTBO.img"${CL_RST}
+-	$(PATH_OVERRIDE) $(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(PRODUCT_OUT)/dtbo ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG)
+-	$(PATH_OVERRIDE) $(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(PRODUCT_OUT)/dtbo ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) dtbo.img
++	$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(PRODUCT_OUT)/dtbo ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG)
++	$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(PRODUCT_OUT)/dtbo ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) dtbo.img
+ 	$(AVBTOOL) add_hash_footer \
+ 		--image $@ \
+ 		--partition_size $(BOARD_DTBOIMG_PARTITION_SIZE) \
+-- 
+2.17.1
+
diff --git a/patches/vendor/bliss/0003-Revert-kernel-Remove-kernel-x-config.patch b/patches/vendor/bliss/0003-Revert-kernel-Remove-kernel-x-config.patch
new file mode 100644
index 0000000..f1c9601
--- /dev/null
+++ b/patches/vendor/bliss/0003-Revert-kernel-Remove-kernel-x-config.patch
@@ -0,0 +1,37 @@
+From 851e1066c8571b64f73abbbf4c702332fcaac623 Mon Sep 17 00:00:00 2001
+From: Jackeagle <jackeagle102@gmail.com>
+Date: Sat, 17 Nov 2018 08:26:00 -0700
+Subject: [PATCH 3/9] Revert "kernel: Remove kernel{x}config"
+
+This reverts commit 12c4070d98e0bb69869874d8fcaa22769a07d994.
+---
+ build/tasks/kernel.mk | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/build/tasks/kernel.mk b/build/tasks/kernel.mk
+index 7a674ee..61d63bc 100644
+--- a/build/tasks/kernel.mk
++++ b/build/tasks/kernel.mk
+@@ -251,7 +251,18 @@ kerneltags: $(KERNEL_CONFIG)
+ 	$(hide) mkdir -p $(KERNEL_OUT)
+ 	$(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) tags
+ 
+-.PHONY: kernelsavedefconfig alldefconfig
++.PHONY: kernelconfig kernelxconfig kernelsavedefconfig alldefconfig
++
++kernelconfig:  KERNELCONFIG_MODE := menuconfig
++kernelxconfig: KERNELCONFIG_MODE := xconfig
++kernelxconfig kernelconfig:
++	$(hide) mkdir -p $(KERNEL_OUT)
++	$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG)
++	env KCONFIG_NOTIMESTAMP=true \
++		 $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNELCONFIG_MODE)
++	env KCONFIG_NOTIMESTAMP=true \
++		 $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) savedefconfig
++	cp $(KERNEL_OUT)/defconfig $(KERNEL_DEFCONFIG_SRC)
+ 
+ kernelsavedefconfig:
+ 	$(hide) mkdir -p $(KERNEL_OUT)
+-- 
+2.17.1
+
diff --git a/patches/vendor/bliss/0004-Revert-kernel-Remove-deprecated-flag-errors.patch b/patches/vendor/bliss/0004-Revert-kernel-Remove-deprecated-flag-errors.patch
new file mode 100644
index 0000000..a1378c9
--- /dev/null
+++ b/patches/vendor/bliss/0004-Revert-kernel-Remove-deprecated-flag-errors.patch
@@ -0,0 +1,30 @@
+From aeecbbc9482abc64bedd18df3ab3a74b96d5c95a Mon Sep 17 00:00:00 2001
+From: Jackeagle <jackeagle102@gmail.com>
+Date: Sat, 17 Nov 2018 08:26:06 -0700
+Subject: [PATCH 4/9] Revert "kernel: Remove deprecated flag errors"
+
+This reverts commit 31a4c13150d86dd3690fe4b79678f0578900591c.
+---
+ build/tasks/kernel.mk | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/build/tasks/kernel.mk b/build/tasks/kernel.mk
+index 61d63bc..b42d86d 100644
+--- a/build/tasks/kernel.mk
++++ b/build/tasks/kernel.mk
+@@ -77,6 +77,12 @@ KERNEL_DEFCONFIG_SRC := $(KERNEL_SRC)/arch/$(KERNEL_DEFCONFIG_ARCH)/configs/$(KE
+ ifeq ($(BOARD_KERNEL_IMAGE_NAME),)
+ $(error BOARD_KERNEL_IMAGE_NAME not defined.)
+ endif
++ifneq ($(TARGET_USES_UNCOMPRESSED_KERNEL),)
++$(error TARGET_USES_UNCOMPRESSED_KERNEL is deprecated.)
++endif
++ifneq ($(TARGET_KERNEL_APPEND_DTB),)
++$(error TARGET_KERNEL_APPEND_DTB is deprecated.)
++endif
+ TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/$(BOARD_KERNEL_IMAGE_NAME)
+ 
+ ifneq ($(TARGET_KERNEL_ADDITIONAL_CONFIG),)
+-- 
+2.17.1
+
diff --git a/patches/vendor/bliss/0005-Revert-vendor-bliss-Remove-kernel.mk-headers-generat.patch b/patches/vendor/bliss/0005-Revert-vendor-bliss-Remove-kernel.mk-headers-generat.patch
new file mode 100644
index 0000000..7bc4f19
--- /dev/null
+++ b/patches/vendor/bliss/0005-Revert-vendor-bliss-Remove-kernel.mk-headers-generat.patch
@@ -0,0 +1,82 @@
+From 290db10c7e0160ae1cb35e4d3d24ee40ab517362 Mon Sep 17 00:00:00 2001
+From: Jackeagle <jackeagle102@gmail.com>
+Date: Sat, 17 Nov 2018 08:26:15 -0700
+Subject: [PATCH 5/9] Revert "vendor/bliss: Remove kernel.mk headers
+ generation"
+
+This reverts commit 6a4c7c1258ffecc26324b034c9091373bf0272dd.
+---
+ build/tasks/kernel.mk | 50 +++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 50 insertions(+)
+
+diff --git a/build/tasks/kernel.mk b/build/tasks/kernel.mk
+index b42d86d..d0263d3 100644
+--- a/build/tasks/kernel.mk
++++ b/build/tasks/kernel.mk
+@@ -151,6 +151,9 @@ endif
+ 
+ ifeq ($(FULL_KERNEL_BUILD),true)
+ 
++KERNEL_HEADERS_INSTALL_DIR := $(KERNEL_OUT)/usr
++KERNEL_HEADERS_INSTALL_DEPS := $(KERNEL_OUT)/.headers_install_deps
++
+ ifeq ($(NEED_KERNEL_MODULE_ROOT),true)
+ KERNEL_MODULES_INSTALL := root
+ KERNEL_MODULES_OUT := $(TARGET_ROOT_OUT)/lib/modules
+@@ -252,6 +255,53 @@ $(TARGET_KERNEL_MODULES): TARGET_KERNEL_BINARIES
+ 
+ $(TARGET_PREBUILT_INT_KERNEL): $(TARGET_KERNEL_MODULES)
+ 
++# Install kernel (uapi) headers.
++#
++# The dependency file serves two purposes:
++#  - It is a stamp indicating when the headers were last installed.
++#  - It contains a rule to regenerate itself when any kernel header
++#    files change.  This rule is identical to the rule emitted by
++#    GCC using the M/MM flags.
++#
++# Note that the location of installed kernel headers changed when the
++# kernel uapi system was introduced in 3.7.  Unfortunately, it is not
++# sufficient to test whether the uapi directories exist because some
++# kernels backport patches that contain uapi headers.  So we look for
++# the string "version_h" in the kernel makefile which was introduced
++# as a part of the uapi system (commit d183e6f570f3).
++-include $(KERNEL_HEADERS_INSTALL_DEPS)
++$(KERNEL_HEADERS_INSTALL_DEPS):
++	@echo "Building Kernel Headers"
++	$(hide) mkdir -p $(KERNEL_OUT)
++	$(hide) rm -f $@
++	$(hide) $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) headers_install
++	$(hide) echo "$@: \\" > $@
++	$(hide) ( cd $(KERNEL_SRC); \
++		if grep -q '^version_h' 'Makefile'; then \
++			depdirs="arch/$(KERNEL_ARCH)/include/uapi include/uapi"; \
++		else \
++			depdirs="arch/$(KERNEL_ARCH)/include/asm include"; \
++		fi; \
++		deps="Makefile $$(find $$depdirs -type f -name '*.h')"; \
++		for f in $$deps; do \
++			echo "  $(KERNEL_SRC)/$$f \\" >> $@; \
++		done ; \
++		echo "" >> $@ ; \
++		for f in $$deps; do \
++			echo "$(KERNEL_SRC)/$$f:" >> $@; \
++			echo "" >> $@; \
++		done \
++		)
++
++.PHONY: INSTALLED_KERNEL_HEADERS
++INSTALLED_KERNEL_HEADERS: $(KERNEL_HEADERS_INSTALL_DEPS)
++
++# Dependencies on $(KERNEL_OUT)/usr are deprecated
++$(KERNEL_HEADERS_INSTALL_DIR): $(KERNEL_HEADERS_INSTALL_DEPS)
++	@echo "Depending on $(KERNEL_HEADERS_INSTALL_DIR) is deprecated." 1>&2
++	@echo "Use INSTALLED_KERNEL_HEADERS instead." 1>&2
++	@exit 1
++
+ .PHONY: kerneltags
+ kerneltags: $(KERNEL_CONFIG)
+ 	$(hide) mkdir -p $(KERNEL_OUT)
+-- 
+2.17.1
+
diff --git a/patches/vendor/bliss/0006-Revert-vendor-bliss-Dynamically-generate-kernel-head.patch b/patches/vendor/bliss/0006-Revert-vendor-bliss-Dynamically-generate-kernel-head.patch
new file mode 100644
index 0000000..8b3b2ff
--- /dev/null
+++ b/patches/vendor/bliss/0006-Revert-vendor-bliss-Dynamically-generate-kernel-head.patch
@@ -0,0 +1,150 @@
+From bfb9d40fb9a61288099d69a48294f21ecad3d2ca Mon Sep 17 00:00:00 2001
+From: Jackeagle <jackeagle102@gmail.com>
+Date: Sat, 17 Nov 2018 08:26:24 -0700
+Subject: [PATCH 6/9] Revert "vendor/bliss: Dynamically generate kernel headers
+ using bliss generator"
+
+This reverts commit e0831af9a803dc2bdd1d203d93c3e3ce9b8e120a.
+---
+ build/soong/Android.bp             | 22 ----------------------
+ build/soong/generator/generator.go |  5 +----
+ build/soong/generator/variables.go | 28 ----------------------------
+ config/BoardConfigBliss.mk         |  1 -
+ config/BoardConfigSoong.mk         | 18 ------------------
+ 5 files changed, 1 insertion(+), 73 deletions(-)
+ delete mode 100644 build/soong/generator/variables.go
+ delete mode 100644 config/BoardConfigSoong.mk
+
+diff --git a/build/soong/Android.bp b/build/soong/Android.bp
+index 3addbe3..45a4ab7 100644
+--- a/build/soong/Android.bp
++++ b/build/soong/Android.bp
+@@ -18,28 +18,6 @@ bootstrap_go_package {
+     ],
+     srcs: [
+         "generator/generator.go",
+-        "generator/variables.go",
+     ],
+     pluginFor: ["soong_build"],
+ }
+-
+-bliss_generator {
+-    name: "generated_kernel_includes",
+-
+-    // The headers make command
+-    cmd: "make $(KERNEL_MAKE_FLAGS) -C $(TARGET_KERNEL_SOURCE) O=$(genDir) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) headers_install",
+-
+-    // Directories that can be imported by a cc_* module generated_headers property
+-    export_include_dirs: ["usr/include"],
+-
+-    // Sources for dependency tracking
+-    dep_root: "$(TARGET_KERNEL_SOURCE)",
+-    dep_files: [ "Makefile", "include/**/*", "arch/$(KERNEL_ARCH)/include/**/*"],
+-}
+-
+-cc_library_headers {
+-    name: "generated_kernel_headers",
+-    generated_headers: ["generated_kernel_includes"],
+-    export_generated_headers: ["generated_kernel_includes"],
+-    vendor_available: true,
+-}
+diff --git a/build/soong/generator/generator.go b/build/soong/generator/generator.go
+index ffaece3..b14a19c 100644
+--- a/build/soong/generator/generator.go
++++ b/build/soong/generator/generator.go
+@@ -213,13 +213,10 @@ func (g *Module) GenerateAndroidBuildActions(ctx android.ModuleContext) {
+ 	depRoot := String(g.properties.Dep_root)
+ 	if depRoot == "" {
+ 		depRoot = ctx.ModuleDir()
+-	} else {
+-		depRoot = blissExpandVariables(ctx, depRoot)
+ 	}
+ 
+ 	// Glob dep_files property
+ 	for _, dep_file := range g.properties.Dep_files {
+-		dep_file = blissExpandVariables(ctx, dep_file)
+ 		globPath := filepath.Join(depRoot, dep_file)
+ 		paths, err := ctx.GlobWithDeps(globPath, nil)
+ 		if err != nil {
+@@ -231,7 +228,7 @@ func (g *Module) GenerateAndroidBuildActions(ctx android.ModuleContext) {
+ 		}
+ 	}
+ 
+-	cmd := blissExpandVariables(ctx, String(g.properties.Cmd))
++	cmd := String(g.properties.Cmd)
+ 
+ 	rawCommand, err := android.Expand(cmd, func(name string) (string, error) {
+ 		switch name {
+diff --git a/build/soong/generator/variables.go b/build/soong/generator/variables.go
+deleted file mode 100644
+index 3e633ff..0000000
+--- a/build/soong/generator/variables.go
++++ /dev/null
+@@ -1,28 +0,0 @@
+-package generator
+-
+-import (
+-	"fmt"
+-
+-	"android/soong/android"
+-)
+-
+-func blissExpandVariables(ctx android.ModuleContext, in string) string {
+-	blissVars := ctx.Config().VendorConfig("blissVarsPlugin")
+-
+-	out, err := android.Expand(in, func(name string) (string, error) {
+-		if blissVars.IsSet(name) {
+-			return blissVars.String(name), nil
+-		}
+-		// This variable is not for us, restore what the original
+-		// variable string will have looked like for an Expand
+-		// that comes later.
+-		return fmt.Sprintf("$(%s)", name), nil
+-	})
+-
+-	if err != nil {
+-		ctx.PropertyErrorf("%s: %s", in, err.Error())
+-		return ""
+-	}
+-
+-	return out
+-}
+diff --git a/config/BoardConfigBliss.mk b/config/BoardConfigBliss.mk
+index 7ccae1d..e38938b 100644
+--- a/config/BoardConfigBliss.mk
++++ b/config/BoardConfigBliss.mk
+@@ -9,7 +9,6 @@ ifeq ($(TARGET_HW_DISK_ENCRYPTION),true)
+ endif
+ 
+ include vendor/bliss/config/BoardConfigKernel.mk
+-include vendor/lineage/config/BoardConfigSoong.mk
+ 
+ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) 
+ include vendor/bliss/config/BoardConfigQcom.mk 
+diff --git a/config/BoardConfigSoong.mk b/config/BoardConfigSoong.mk
+deleted file mode 100644
+index 35d7893..0000000
+--- a/config/BoardConfigSoong.mk
++++ /dev/null
+@@ -1,18 +0,0 @@
+-# Add variables that we wish to make available to soong here.
+-EXPORT_TO_SOONG := \
+-    KERNEL_ARCH \
+-    KERNEL_CROSS_COMPILE \
+-    KERNEL_MAKE_FLAGS \
+-    TARGET_KERNEL_CONFIG \
+-    TARGET_KERNEL_SOURCE
+-
+-SOONG_CONFIG_NAMESPACES += blissVarsPlugin
+-
+-SOONG_CONFIG_blissVarsPlugin :=
+-
+-define addVar
+-  SOONG_CONFIG_blissVarsPlugin += $(1)
+-  SOONG_CONFIG_blissVarsPlugin_$(1) := $$(subst ",\",$$($1))
+-endef
+-
+-$(foreach v,$(EXPORT_TO_SOONG),$(eval $(call addVar,$(v))))
+-- 
+2.17.1
+
diff --git a/patches/vendor/bliss/0007-Revert-vendor-bliss-Add-soong-generator-module-type.patch b/patches/vendor/bliss/0007-Revert-vendor-bliss-Add-soong-generator-module-type.patch
new file mode 100644
index 0000000..f4b6ffa
--- /dev/null
+++ b/patches/vendor/bliss/0007-Revert-vendor-bliss-Add-soong-generator-module-type.patch
@@ -0,0 +1,352 @@
+From b0683d4e56b31ee4594e10e046fd4e5b2e1e8b2f Mon Sep 17 00:00:00 2001
+From: Jackeagle <jackeagle102@gmail.com>
+Date: Sat, 17 Nov 2018 08:26:48 -0700
+Subject: [PATCH 7/9] Revert "vendor/bliss: Add soong generator module type"
+
+This reverts commit 0d2bcd429f2227c1efd59c2a7a4916f6f10c8af2.
+---
+ build/soong/Android.bp             |  16 --
+ build/soong/generator/generator.go | 307 -----------------------------
+ 2 files changed, 323 deletions(-)
+ delete mode 100644 build/soong/generator/generator.go
+
+diff --git a/build/soong/Android.bp b/build/soong/Android.bp
+index 45a4ab7..2cb1afa 100644
+--- a/build/soong/Android.bp
++++ b/build/soong/Android.bp
+@@ -5,19 +5,3 @@ bootstrap_go_package {
+         "android/variable.go",
+     ],
+ }
+-
+-bootstrap_go_package {
+-    name: "soong-bliss-generator",
+-    pkgPath: "bliss/soong/generator",
+-    deps: [
+-        "blueprint",
+-        "blueprint-pathtools",
+-        "soong",
+-        "soong-android",
+-        "soong-shared",
+-    ],
+-    srcs: [
+-        "generator/generator.go",
+-    ],
+-    pluginFor: ["soong_build"],
+-}
+diff --git a/build/soong/generator/generator.go b/build/soong/generator/generator.go
+deleted file mode 100644
+index b14a19c..0000000
+--- a/build/soong/generator/generator.go
++++ /dev/null
+@@ -1,307 +0,0 @@
+-// Copyright 2015 Google Inc. All rights reserved.
+-// Copyright (C) 2018 The LineageOS Project
+-//
+-// Licensed under the Apache License, Version 2.0 (the "License");
+-// you may not use this file except in compliance with the License.
+-// You may obtain a copy of the License at
+-//
+-//     http://www.apache.org/licenses/LICENSE-2.0
+-//
+-// Unless required by applicable law or agreed to in writing, software
+-// distributed under the License is distributed on an "AS IS" BASIS,
+-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-// See the License for the specific language governing permissions and
+-// limitations under the License.
+-
+-package generator
+-
+-import (
+-	"fmt"
+-	"strings"
+-
+-	"github.com/google/blueprint"
+-	"github.com/google/blueprint/bootstrap"
+-	"github.com/google/blueprint/proptools"
+-
+-	"android/soong/android"
+-	"android/soong/shared"
+-	"path/filepath"
+-)
+-
+-func init() {
+-	android.RegisterModuleType("bliss_generator", GeneratorFactory)
+-
+-	pctx.HostBinToolVariable("sboxCmd", "sbox")
+-}
+-
+-var String = proptools.String
+-
+-var (
+-	pctx = android.NewPackageContext("android/soong/generator")
+-)
+-
+-type HostToolProvider interface {
+-	HostToolPath() android.OptionalPath
+-}
+-
+-type hostToolDependencyTag struct {
+-	blueprint.BaseDependencyTag
+-}
+-
+-var hostToolDepTag hostToolDependencyTag
+-
+-type generatorProperties struct {
+-	// The command to run on one or more input files. Cmd supports substitution of a few variables
+-	// (the actual substitution is implemented in GenerateAndroidBuildActions below)
+-	//
+-	// Available variables for substitution:
+-	//
+-	//  $(location): the path to the first entry in tools or tool_files
+-	//  $(location <label>): the path to the tool or tool_file with name <label>
+-	//  $(genDir): the sandbox directory for this tool; contains $(out)
+-	//  $$: a literal $
+-	//
+-	Cmd *string
+-
+-	// name of the modules (if any) that produces the host executable.   Leave empty for
+-	// prebuilts or scripts that do not need a module to build them.
+-	Tools []string
+-
+-	// Local file that is used as the tool
+-	Tool_files []string
+-
+-	// List of directories to export as headers
+-	Export_include_dirs []string
+-
+-	// List of directories to export as sources
+-	Export_source_dirs []string
+-
+-	// Root directory for dep_files.
+-	// Relative to top build dir.
+-	Dep_root *string
+-
+-	// Declare list of files that should be used for timestamp dependency checking
+-	Dep_files []string
+-}
+-
+-type Module struct {
+-	android.ModuleBase
+-
+-	properties generatorProperties
+-
+-	rule blueprint.Rule
+-
+-	// Tool dependencies
+-	implicitDeps android.Paths
+-	// Deps from input files declared in dep_files property.
+-	inputDeps android.Paths
+-
+-	exportedIncludeDirs android.Paths
+-	exportedSourceDirs  android.Paths
+-
+-	outputDeps android.Paths
+-}
+-
+-// These three methods satisfy genrule.SourceFileGenerator.
+-// Which cc modules check for when including headers etc.
+-func (g *Module) GeneratedHeaderDirs() android.Paths {
+-	return g.exportedIncludeDirs
+-}
+-
+-func (g *Module) GeneratedSourceFiles() android.Paths {
+-	return g.exportedSourceDirs
+-}
+-
+-func (g *Module) GeneratedDeps() android.Paths {
+-	return g.outputDeps
+-}
+-
+-func (g *Module) DepsMutator(ctx android.BottomUpMutatorContext) {
+-	android.ExtractSourcesDeps(ctx, g.properties.Dep_files)
+-	android.ExtractSourcesDeps(ctx, g.properties.Tool_files)
+-	if g, ok := ctx.Module().(*Module); ok {
+-		if len(g.properties.Tools) > 0 {
+-			ctx.AddFarVariationDependencies([]blueprint.Variation{
+-				{"arch", ctx.Config().BuildOsVariant},
+-			}, hostToolDepTag, g.properties.Tools...)
+-		}
+-	}
+-}
+-
+-func (g *Module) GenerateAndroidBuildActions(ctx android.ModuleContext) {
+-	if len(g.properties.Export_include_dirs) > 0 {
+-		for _, dir := range g.properties.Export_include_dirs {
+-			g.exportedIncludeDirs = append(g.exportedIncludeDirs,
+-				android.PathForModuleGen(ctx, dir))
+-		}
+-	} else {
+-		g.exportedIncludeDirs = append(g.exportedIncludeDirs, android.PathForModuleGen(ctx, ""))
+-	}
+-	if len(g.properties.Export_source_dirs) > 0 {
+-		for _, dir := range g.properties.Export_source_dirs {
+-			g.exportedSourceDirs = append(g.exportedSourceDirs,
+-				android.PathForModuleGen(ctx, dir))
+-		}
+-	} else {
+-		g.exportedSourceDirs = append(g.exportedSourceDirs, android.PathForModuleGen(ctx, ""))
+-	}
+-
+-	tools := map[string]android.Path{}
+-
+-	if len(g.properties.Tools) > 0 {
+-		ctx.VisitDirectDepsBlueprint(func(module blueprint.Module) {
+-			switch ctx.OtherModuleDependencyTag(module) {
+-			case android.SourceDepTag:
+-				// Nothing to do
+-			case hostToolDepTag:
+-				tool := ctx.OtherModuleName(module)
+-				var path android.OptionalPath
+-
+-				if t, ok := module.(HostToolProvider); ok {
+-					if !t.(android.Module).Enabled() {
+-						if ctx.Config().AllowMissingDependencies() {
+-							ctx.AddMissingDependencies([]string{tool})
+-						} else {
+-							ctx.ModuleErrorf("depends on disabled module %q", tool)
+-						}
+-						break
+-					}
+-					path = t.HostToolPath()
+-				} else if t, ok := module.(bootstrap.GoBinaryTool); ok {
+-					if s, err := filepath.Rel(android.PathForOutput(ctx).String(), t.InstallPath()); err == nil {
+-						path = android.OptionalPathForPath(android.PathForOutput(ctx, s))
+-					} else {
+-						ctx.ModuleErrorf("cannot find path for %q: %v", tool, err)
+-						break
+-					}
+-				} else {
+-					ctx.ModuleErrorf("%q is not a host tool provider", tool)
+-					break
+-				}
+-
+-				if path.Valid() {
+-					g.implicitDeps = append(g.implicitDeps, path.Path())
+-					if _, exists := tools[tool]; !exists {
+-						tools[tool] = path.Path()
+-					} else {
+-						ctx.ModuleErrorf("multiple tools for %q, %q and %q", tool, tools[tool], path.Path().String())
+-					}
+-				} else {
+-					ctx.ModuleErrorf("host tool %q missing output file", tool)
+-				}
+-			default:
+-				ctx.ModuleErrorf("unknown dependency on %q", ctx.OtherModuleName(module))
+-			}
+-		})
+-	}
+-
+-	if ctx.Failed() {
+-		return
+-	}
+-
+-	toolFiles := ctx.ExpandSources(g.properties.Tool_files, nil)
+-	for _, tool := range toolFiles {
+-		g.implicitDeps = append(g.implicitDeps, tool)
+-		if _, exists := tools[tool.Rel()]; !exists {
+-			tools[tool.Rel()] = tool
+-		} else {
+-			ctx.ModuleErrorf("multiple tools for %q, %q and %q", tool, tools[tool.Rel()], tool.Rel())
+-		}
+-	}
+-
+-	// Determine root dir for dep_files.  Defaults to current ctx ModuleDir.
+-	depRoot := String(g.properties.Dep_root)
+-	if depRoot == "" {
+-		depRoot = ctx.ModuleDir()
+-	}
+-
+-	// Glob dep_files property
+-	for _, dep_file := range g.properties.Dep_files {
+-		globPath := filepath.Join(depRoot, dep_file)
+-		paths, err := ctx.GlobWithDeps(globPath, nil)
+-		if err != nil {
+-			ctx.ModuleErrorf("unable to glob %s: %s", globPath, err.Error())
+-			return
+-		}
+-		for _, path := range paths {
+-			g.inputDeps = append(g.inputDeps, android.PathForSourceRelaxed(ctx, path))
+-		}
+-	}
+-
+-	cmd := String(g.properties.Cmd)
+-
+-	rawCommand, err := android.Expand(cmd, func(name string) (string, error) {
+-		switch name {
+-		case "location":
+-			if len(g.properties.Tools) == 0 && len(toolFiles) == 0 {
+-				return "", fmt.Errorf("at least one `tools` or `tool_files` is required if $(location) is used")
+-			}
+-
+-			if len(g.properties.Tools) > 0 {
+-				return tools[g.properties.Tools[0]].String(), nil
+-			} else {
+-				return tools[toolFiles[0].Rel()].String(), nil
+-			}
+-		case "genDir":
+-			return "__SBOX_OUT_DIR__", nil
+-		default:
+-			if strings.HasPrefix(name, "location ") {
+-				label := strings.TrimSpace(strings.TrimPrefix(name, "location "))
+-				if tool, ok := tools[label]; ok {
+-					return tool.String(), nil
+-				} else {
+-					return "", fmt.Errorf("unknown location label %q", label)
+-				}
+-			}
+-			return "", fmt.Errorf("unknown variable '$(%s)'", name)
+-		}
+-	})
+-
+-	if err != nil {
+-		ctx.PropertyErrorf("cmd", "%s", err.Error())
+-		return
+-	}
+-
+-	// Dummy output dep
+-	dummyDep := android.PathForModuleGen(ctx, ".dummy_dep")
+-
+-	// tell the sbox command which directory to use as its sandbox root
+-	buildDir := android.PathForOutput(ctx).String()
+-	sandboxPath := shared.TempDirForOutDir(buildDir)
+-
+-	genDir := android.PathForModuleGen(ctx)
+-	// Escape the command for the shell
+-	rawCommand = "'" + strings.Replace(rawCommand, "'", `'\''`, -1) + "'"
+-	sandboxCommand := fmt.Sprintf("$sboxCmd --sandbox-path %s --output-root %s --copy-all-output -c %s && touch %s",
+-		sandboxPath, genDir, rawCommand, dummyDep.String())
+-
+-	ruleParams := blueprint.RuleParams{
+-		Command:     sandboxCommand,
+-		CommandDeps: []string{"$sboxCmd"},
+-	}
+-	g.rule = ctx.Rule(pctx, "generator", ruleParams)
+-
+-	params := android.BuildParams{
+-		Rule:        g.rule,
+-		Description: "generate",
+-		Output:      dummyDep,
+-		Inputs:      g.inputDeps,
+-		Implicits:   g.implicitDeps,
+-	}
+-
+-	g.outputDeps = append(g.outputDeps, dummyDep)
+-
+-	ctx.Build(pctx, params)
+-}
+-
+-func NewGenerator() *Module {
+-	module := &Module{}
+-	module.AddProperties(&module.properties)
+-	return module
+-}
+-
+-func GeneratorFactory() android.Module {
+-	m := NewGenerator()
+-	android.InitAndroidModule(m)
+-	return m
+-}
+-- 
+2.17.1
+
diff --git a/patches/vendor/bliss/0008-Revert-vendor-bliss-Move-some-kernel-definitions-to-.patch b/patches/vendor/bliss/0008-Revert-vendor-bliss-Move-some-kernel-definitions-to-.patch
new file mode 100644
index 0000000..caf67d9
--- /dev/null
+++ b/patches/vendor/bliss/0008-Revert-vendor-bliss-Move-some-kernel-definitions-to-.patch
@@ -0,0 +1,401 @@
+From f47a7f340355df09288b5c6aa293bc62d48da6c7 Mon Sep 17 00:00:00 2001
+From: Jackeagle <jackeagle102@gmail.com>
+Date: Sat, 17 Nov 2018 08:26:58 -0700
+Subject: [PATCH 8/9] Revert "vendor/bliss: Move some kernel definitions to
+ BoardConfigKernel"
+
+This reverts commit 3a8423358f51b6616622c881e04d82ba2f603984.
+---
+ build/tasks/kernel.mk       | 122 ++++++++++++++++++++++++++++++++----
+ config/BoardConfigBliss.mk  |   2 -
+ config/BoardConfigKernel.mk | 111 --------------------------------
+ 3 files changed, 111 insertions(+), 124 deletions(-)
+ delete mode 100644 config/BoardConfigKernel.mk
+
+diff --git a/build/tasks/kernel.mk b/build/tasks/kernel.mk
+index d0263d3..6057b9f 100644
+--- a/build/tasks/kernel.mk
++++ b/build/tasks/kernel.mk
+@@ -1,5 +1,4 @@
+ # Copyright (C) 2012 The CyanogenMod Project
+-#           (C) 2017 The LineageOS Project
+ #
+ # Licensed under the Apache License, Version 2.0 (the "License");
+ # you may not use this file except in compliance with the License.
+@@ -21,10 +20,17 @@
+ #
+ # These config vars are usually set in BoardConfig.mk:
+ #
++#   TARGET_KERNEL_SOURCE               = Kernel source dir, optional, defaults
++#                                        to kernel/$(TARGET_DEVICE_DIR)
+ #   TARGET_KERNEL_CONFIG               = Kernel defconfig
+ #   TARGET_KERNEL_VARIANT_CONFIG       = Variant defconfig, optional
+ #   TARGET_KERNEL_SELINUX_CONFIG       = SELinux defconfig, optional
+ #   TARGET_KERNEL_ADDITIONAL_CONFIG    = Additional defconfig, optional
++#   TARGET_KERNEL_ARCH                 = Kernel Arch
++#   TARGET_KERNEL_CROSS_COMPILE_PREFIX = Compiler prefix (e.g. arm-eabi-)
++#                                          defaults to arm-linux-androidkernel- for arm
++#                                                      aarch64-linux-androidkernel- for arm64
++#                                                      x86_64-linux-androidkernel- for x86
+ #
+ #   TARGET_KERNEL_CLANG_COMPILE        = Compile kernel with clang, defaults to false
+ #
+@@ -41,6 +47,13 @@
+ #                                          For example, for ARM devices,
+ #                                          use zImage-dtb instead of zImage.
+ #
++#   KERNEL_TOOLCHAIN_PREFIX            = Overrides TARGET_KERNEL_CROSS_COMPILE_PREFIX,
++#                                          Set this var in shell to override
++#                                          toolchain specified in BoardConfig.mk
++#   KERNEL_TOOLCHAIN                   = Path to toolchain, if unset, assumes
++#                                          TARGET_KERNEL_CROSS_COMPILE_PREFIX
++#                                          is in PATH
++#
+ #   KERNEL_CC                          = The C Compiler used. This is automatically set based
+ #                                          on whether the clang version is set, optional.
+ #
+@@ -49,6 +62,8 @@
+ #                                                      aarch64-linux-gnu- for arm64
+ #                                                      x86_64-linux-gnu- for x86
+ #
++#   USE_CCACHE                         = Enable ccache (global Android flag)
++#
+ #   NEED_KERNEL_MODULE_ROOT            = Optional, if true, install kernel
+ #                                          modules in root instead of vendor
+ #   NEED_KERNEL_MODULE_SYSTEM          = Optional, if true, install kernel
+@@ -56,7 +71,11 @@
+ 
+ ifneq ($(TARGET_NO_KERNEL),true)
+ 
++TARGET_AUTO_KDIR := $(shell echo $(TARGET_DEVICE_DIR) | sed -e 's/^device/kernel/g')
++
+ ## Externally influenced variables
++# kernel location - optional, defaults to kernel/<vendor>/<device>
++TARGET_KERNEL_SOURCE ?= $(TARGET_AUTO_KDIR)
+ KERNEL_SRC := $(TARGET_KERNEL_SOURCE)
+ # kernel configuration - mandatory
+ KERNEL_DEFCONFIG := $(TARGET_KERNEL_CONFIG)
+@@ -67,6 +86,13 @@ SELINUX_DEFCONFIG := $(TARGET_KERNEL_SELINUX_CONFIG)
+ KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ
+ KERNEL_CONFIG := $(KERNEL_OUT)/.config
+ 
++TARGET_KERNEL_ARCH := $(strip $(TARGET_KERNEL_ARCH))
++ifeq ($(TARGET_KERNEL_ARCH),)
++KERNEL_ARCH := $(TARGET_ARCH)
++else
++KERNEL_ARCH := $(TARGET_KERNEL_ARCH)
++endif
++
+ ifeq ($(KERNEL_ARCH),x86_64)
+ KERNEL_DEFCONFIG_ARCH := x86
+ else
+@@ -85,6 +111,19 @@ $(error TARGET_KERNEL_APPEND_DTB is deprecated.)
+ endif
+ TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/$(BOARD_KERNEL_IMAGE_NAME)
+ 
++# Clear this first to prevent accidental poisoning from env
++MAKE_FLAGS :=
++
++ifeq ($(KERNEL_ARCH),arm)
++  # Avoid "Unknown symbol _GLOBAL_OFFSET_TABLE_" errors
++  MAKE_FLAGS += CFLAGS_MODULE="-fno-pic"
++endif
++
++ifeq ($(KERNEL_ARCH),arm64)
++  # Avoid "unsupported RELA relocation: 311" errors (R_AARCH64_ADR_GOT_PAGE)
++  MAKE_FLAGS += CFLAGS_MODULE="-fno-pic"
++endif
++
+ ifneq ($(TARGET_KERNEL_ADDITIONAL_CONFIG),)
+ KERNEL_ADDITIONAL_CONFIG := $(TARGET_KERNEL_ADDITIONAL_CONFIG)
+ KERNEL_ADDITIONAL_CONFIG_SRC := $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG)
+@@ -96,6 +135,16 @@ else
+     KERNEL_ADDITIONAL_CONFIG_SRC := /dev/null
+ endif
+ 
++## Do be discontinued in a future version. Notify builder about target
++## kernel format requirement
++ifeq ($(BOARD_KERNEL_IMAGE_NAME),)
++ifeq ($(BOARD_USES_UBOOT),true)
++        $(error "Please set BOARD_KERNEL_IMAGE_NAME to uImage")
++else ifeq ($(BOARD_USES_UNCOMPRESSED_BOOT),true)
++        $(error "Please set BOARD_KERNEL_IMAGE_NAME to Image")
++endif
++endif
++
+ ifeq "$(wildcard $(KERNEL_SRC) )" ""
+     ifneq ($(TARGET_PREBUILT_KERNEL),)
+         HAS_PREBUILT_KERNEL := true
+@@ -114,6 +163,7 @@ ifeq "$(wildcard $(KERNEL_SRC) )" ""
+         $(warning * THIS IS DEPRECATED, AND WILL BE DISCONTINUED                *)
+         $(warning * Please configure your device to download the kernel         *)
+         $(warning * source repository to $(KERNEL_SRC))
++        $(warning * See http://wiki.cyanogenmod.org/w/Doc:_integrated_kernel_building)
+         $(warning * for more information                                        *)
+         $(warning ***************************************************************)
+         FULL_KERNEL_BUILD := false
+@@ -171,6 +221,27 @@ KERNEL_DEPMOD_STAGING_DIR := $(call intermediates-dir-for,PACKAGING,depmod_vendo
+ KERNEL_MODULE_MOUNTPOINT := vendor
+ endif
+ 
++TARGET_KERNEL_CROSS_COMPILE_PREFIX := $(strip $(TARGET_KERNEL_CROSS_COMPILE_PREFIX))
++ifneq ($(TARGET_KERNEL_CROSS_COMPILE_PREFIX),)
++KERNEL_TOOLCHAIN_PREFIX ?= $(TARGET_KERNEL_CROSS_COMPILE_PREFIX)
++else ifeq ($(KERNEL_ARCH),arm64)
++KERNEL_TOOLCHAIN_PREFIX ?= aarch64-linux-androidkernel-
++else ifeq ($(KERNEL_ARCH),arm)
++KERNEL_TOOLCHAIN_PREFIX ?= arm-linux-androidkernel-
++else ifeq ($(KERNEL_ARCH),x86)
++KERNEL_TOOLCHAIN_PREFIX ?= x86_64-linux-androidkernel-
++endif
++
++ifeq ($(KERNEL_TOOLCHAIN),)
++KERNEL_TOOLCHAIN_PATH := $(KERNEL_TOOLCHAIN_PREFIX)
++else
++ifneq ($(KERNEL_TOOLCHAIN_PREFIX),)
++KERNEL_TOOLCHAIN_PATH := $(KERNEL_TOOLCHAIN)/$(KERNEL_TOOLCHAIN_PREFIX)
++endif
++endif
++
++BUILD_TOP := $(shell pwd)
++
+ ifeq ($(TARGET_KERNEL_CLANG_COMPILE),true)
+     ifneq ($(TARGET_KERNEL_CLANG_VERSION),)
+         # Find the clang-* directory containing the specified version
+@@ -187,9 +258,38 @@ ifeq ($(TARGET_KERNEL_CLANG_COMPILE),true)
+     else ifeq ($(KERNEL_ARCH),x86)
+         KERNEL_CLANG_TRIPLE ?= CLANG_TRIPLE=x86_64-linux-gnu-
+     endif
++endif
++
++ifneq ($(USE_CCACHE),)
++    # Detect if the system already has ccache installed to use instead of the prebuilt
++    ccache := $(shell which ccache)
++
++    ifeq ($(ccache),)
++        ccache := $(BUILD_TOP)/prebuilts/misc/$(HOST_PREBUILT_TAG)/ccache/ccache
++        # Check that the executable is here.
++        ccache := $(strip $(wildcard $(ccache)))
++    endif
++endif
++
++ifeq ($(TARGET_KERNEL_CLANG_COMPILE),true)
++    KERNEL_CROSS_COMPILE := CROSS_COMPILE="$(KERNEL_TOOLCHAIN_PATH)"
+     ifeq ($(KERNEL_CC),)
+-        KERNEL_CC := CC="$(CCACHE_BIN) $(TARGET_KERNEL_CLANG_PATH)/clang"
++        KERNEL_CC := CC="$(ccache) $(TARGET_KERNEL_CLANG_PATH)/clang"
+     endif
++else
++    KERNEL_CROSS_COMPILE := CROSS_COMPILE="$(ccache) $(KERNEL_TOOLCHAIN_PATH)"
++endif
++
++# Needed for CONFIG_COMPAT_VDSO, safe to set for all arm64 builds
++ifeq ($(KERNEL_ARCH),arm64)
++   KERNEL_CROSS_COMPILE += CROSS_COMPILE_ARM32="arm-linux-androideabi-"
++endif
++
++ccache =
++
++ifeq ($(HOST_OS),darwin)
++  MAKE_FLAGS += C_INCLUDE_PATH=$(BUILD_TOP)/external/elfutils/libelf:/usr/local/opt/openssl/include
++  MAKE_FLAGS += LIBRARY_PATH=/usr/local/opt/openssl/lib
+ endif
+ 
+ ifeq ($(TARGET_KERNEL_MODULES),)
+@@ -205,7 +305,7 @@ $(KERNEL_ADDITIONAL_CONFIG_OUT): force_additional_config
+ $(KERNEL_CONFIG): $(KERNEL_DEFCONFIG_SRC) $(KERNEL_ADDITIONAL_CONFIG_OUT)
+ 	@echo "Building Kernel Config"
+ 	$(hide) mkdir -p $(KERNEL_OUT)
+-	$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG)
++	$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG)
+ 	$(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
+ 			echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
+ 			echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \
+@@ -223,21 +323,21 @@ TARGET_KERNEL_BINARIES: $(KERNEL_CONFIG)
+ 	$(hide) rm -rf $(KERNEL_MODULES_OUT)
+ 	$(hide) mkdir -p $(KERNEL_MODULES_OUT)
+ 	$(hide) rm -rf $(KERNEL_DEPMOD_STAGING_DIR)
+-	$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(BOARD_KERNEL_IMAGE_NAME)
++	$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(BOARD_KERNEL_IMAGE_NAME)
+ 	$(hide) if grep -q '^CONFIG_OF=y' $(KERNEL_CONFIG); then \
+ 			echo "Building DTBs"; \
+-			$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) dtbs; \
++			$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) dtbs; \
+ 		fi
+ 	$(hide) if grep -q '^CONFIG_MODULES=y' $(KERNEL_CONFIG); then \
+ 			echo "Building Kernel Modules"; \
+-			$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) modules; \
++			$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) modules; \
+ 		fi
+ 
+ .PHONY: INSTALLED_KERNEL_MODULES
+ INSTALLED_KERNEL_MODULES: depmod-host
+ 	$(hide) if grep -q '^CONFIG_MODULES=y' $(KERNEL_CONFIG); then \
+ 			echo "Installing Kernel Modules"; \
+-			$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) modules_install && \
++			$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) modules_install && \
+ 			mofile=$$(find $(KERNEL_MODULES_OUT) -type f -name modules.order) && \
+ 			mpath=$$(dirname $$mofile) && \
+ 			for f in $$(find $$mpath/kernel -type f -name '*.ko'); do \
+@@ -313,7 +413,7 @@ kernelconfig:  KERNELCONFIG_MODE := menuconfig
+ kernelxconfig: KERNELCONFIG_MODE := xconfig
+ kernelxconfig kernelconfig:
+ 	$(hide) mkdir -p $(KERNEL_OUT)
+-	$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG)
++	$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG)
+ 	env KCONFIG_NOTIMESTAMP=true \
+ 		 $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNELCONFIG_MODE)
+ 	env KCONFIG_NOTIMESTAMP=true \
+@@ -322,7 +422,7 @@ kernelxconfig kernelconfig:
+ 
+ kernelsavedefconfig:
+ 	$(hide) mkdir -p $(KERNEL_OUT)
+-	$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG)
++	$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG)
+ 	env KCONFIG_NOTIMESTAMP=true \
+ 		 $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) savedefconfig
+ 	cp $(KERNEL_OUT)/defconfig $(KERNEL_DEFCONFIG_SRC)
+@@ -337,8 +437,8 @@ endif # FULL_KERNEL_BUILD
+ TARGET_PREBUILT_DTBO = $(PRODUCT_OUT)/dtbo/arch/$(KERNEL_ARCH)/boot/dtbo.img
+ $(TARGET_PREBUILT_DTBO): $(AVBTOOL)
+ 	echo -e ${CL_GRN}"Building DTBO.img"${CL_RST}
+-	$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(PRODUCT_OUT)/dtbo ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG)
+-	$(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(PRODUCT_OUT)/dtbo ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) dtbo.img
++	$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(PRODUCT_OUT)/dtbo ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_DEFCONFIG)
++	$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(PRODUCT_OUT)/dtbo ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) dtbo.img
+ 	$(AVBTOOL) add_hash_footer \
+ 		--image $@ \
+ 		--partition_size $(BOARD_DTBOIMG_PARTITION_SIZE) \
+diff --git a/config/BoardConfigBliss.mk b/config/BoardConfigBliss.mk
+index e38938b..e6102f7 100644
+--- a/config/BoardConfigBliss.mk
++++ b/config/BoardConfigBliss.mk
+@@ -8,8 +8,6 @@ ifeq ($(TARGET_HW_DISK_ENCRYPTION),true)
+     TARGET_CRYPTFS_HW_PATH ?= vendor/qcom/opensource/cryptfs_hw
+ endif
+ 
+-include vendor/bliss/config/BoardConfigKernel.mk
+-
+ ifeq ($(BOARD_USES_QCOM_HARDWARE),true) 
+ include vendor/bliss/config/BoardConfigQcom.mk 
+ endif 
+diff --git a/config/BoardConfigKernel.mk b/config/BoardConfigKernel.mk
+deleted file mode 100644
+index 74f3413..0000000
+--- a/config/BoardConfigKernel.mk
++++ /dev/null
+@@ -1,111 +0,0 @@
+-# Copyright (C) 2018 The LineageOS Project
+-#
+-# Licensed under the Apache License, Version 2.0 (the "License");
+-# you may not use this file except in compliance with the License.
+-# You may obtain a copy of the License at
+-#
+-#      http://www.apache.org/licenses/LICENSE-2.0
+-#
+-# Unless required by applicable law or agreed to in writing, software
+-# distributed under the License is distributed on an "AS IS" BASIS,
+-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-# See the License for the specific language governing permissions and
+-# limitations under the License.
+-#
+-#
+-# Kernel build configuration variables
+-# ====================================
+-#
+-# These config vars are usually set in BoardConfig.mk:
+-#
+-#   TARGET_KERNEL_SOURCE               = Kernel source dir, optional, defaults
+-#                                          to kernel/$(TARGET_DEVICE_DIR)
+-#   TARGET_KERNEL_ARCH                 = Kernel Arch
+-#   TARGET_KERNEL_CROSS_COMPILE_PREFIX = Compiler prefix (e.g. arm-eabi-)
+-#                                          defaults to arm-linux-androidkernel- for arm
+-#                                                      aarch64-linux-androidkernel- for arm64
+-#                                                      x86_64-linux-androidkernel- for x86
+-#
+-#   TARGET_KERNEL_CLANG_COMPILE        = Compile kernel with clang, defaults to false
+-#
+-#   KERNEL_TOOLCHAIN_PREFIX            = Overrides TARGET_KERNEL_CROSS_COMPILE_PREFIX,
+-#                                          Set this var in shell to override
+-#                                          toolchain specified in BoardConfig.mk
+-#   KERNEL_TOOLCHAIN                   = Path to toolchain, if unset, assumes
+-#                                          TARGET_KERNEL_CROSS_COMPILE_PREFIX
+-#                                          is in PATH
+-#   USE_CCACHE                         = Enable ccache (global Android flag)
+-
+-BUILD_TOP := $(shell pwd)
+-
+-TARGET_AUTO_KDIR := $(shell echo $(TARGET_DEVICE_DIR) | sed -e 's/^device/kernel/g')
+-TARGET_KERNEL_SOURCE ?= $(TARGET_AUTO_KDIR)
+-ifneq ($(TARGET_PREBUILT_KERNEL),)
+-TARGET_KERNEL_SOURCE :=
+-endif
+-
+-TARGET_KERNEL_ARCH := $(strip $(TARGET_KERNEL_ARCH))
+-ifeq ($(TARGET_KERNEL_ARCH),)
+-KERNEL_ARCH := $(TARGET_ARCH)
+-else
+-KERNEL_ARCH := $(TARGET_KERNEL_ARCH)
+-endif
+-
+-TARGET_KERNEL_CROSS_COMPILE_PREFIX := $(strip $(TARGET_KERNEL_CROSS_COMPILE_PREFIX))
+-ifneq ($(TARGET_KERNEL_CROSS_COMPILE_PREFIX),)
+-KERNEL_TOOLCHAIN_PREFIX ?= $(TARGET_KERNEL_CROSS_COMPILE_PREFIX)
+-else ifeq ($(KERNEL_ARCH),arm64)
+-KERNEL_TOOLCHAIN_PREFIX ?= aarch64-linux-androidkernel-
+-else ifeq ($(KERNEL_ARCH),arm)
+-KERNEL_TOOLCHAIN_PREFIX ?= arm-linux-androidkernel-
+-else ifeq ($(KERNEL_ARCH),x86)
+-KERNEL_TOOLCHAIN_PREFIX ?= x86_64-linux-androidkernel-
+-endif
+-
+-ifeq ($(KERNEL_TOOLCHAIN),)
+-KERNEL_TOOLCHAIN_PATH := $(KERNEL_TOOLCHAIN_PREFIX)
+-else
+-ifneq ($(KERNEL_TOOLCHAIN_PREFIX),)
+-KERNEL_TOOLCHAIN_PATH := $(KERNEL_TOOLCHAIN)/$(KERNEL_TOOLCHAIN_PREFIX)
+-endif
+-endif
+-
+-ifneq ($(USE_CCACHE),)
+-    # Detect if the system already has ccache installed to use instead of the prebuilt
+-    CCACHE_BIN := $(shell which ccache)
+-
+-    ifeq ($(CCACHE_BIN),)
+-        CCACHE_BIN := $(BUILD_TOP)/prebuilts/misc/$(HOST_PREBUILT_TAG)/ccache/ccache
+-        # Check that the executable is here.
+-        CCACHE_BIN := $(strip $(wildcard $(CCACHE_BIN)))
+-    endif
+-endif
+-
+-ifeq ($(TARGET_KERNEL_CLANG_COMPILE),true)
+-    KERNEL_CROSS_COMPILE := CROSS_COMPILE="$(KERNEL_TOOLCHAIN_PATH)"
+-else
+-    KERNEL_CROSS_COMPILE := CROSS_COMPILE="$(CCACHE_BIN) $(KERNEL_TOOLCHAIN_PATH)"
+-endif
+-
+-# Needed for CONFIG_COMPAT_VDSO, safe to set for all arm64 builds
+-ifeq ($(KERNEL_ARCH),arm64)
+-   KERNEL_CROSS_COMPILE += CROSS_COMPILE_ARM32="arm-linux-androidkernel-"
+-endif
+-
+-# Clear this first to prevent accidental poisoning from env
+-KERNEL_MAKE_FLAGS :=
+-
+-ifeq ($(KERNEL_ARCH),arm)
+-  # Avoid "Unknown symbol _GLOBAL_OFFSET_TABLE_" errors
+-  KERNEL_MAKE_FLAGS += CFLAGS_MODULE="-fno-pic"
+-endif
+-
+-ifeq ($(KERNEL_ARCH),arm64)
+-  # Avoid "unsupported RELA relocation: 311" errors (R_AARCH64_ADR_GOT_PAGE)
+-  KERNEL_MAKE_FLAGS += CFLAGS_MODULE="-fno-pic"
+-endif
+-
+-ifeq ($(HOST_OS),darwin)
+-  KERNEL_MAKE_FLAGS += C_INCLUDE_PATH=$(BUILD_TOP)/external/elfutils/libelf:/usr/local/opt/openssl/include
+-  KERNEL_MAKE_FLAGS += LIBRARY_PATH=/usr/local/opt/openssl/lib
+-endif
+-- 
+2.17.1
+
diff --git a/patches/vendor/bliss/0009-skip-dependencies-check-for-Treble-builds.patch b/patches/vendor/bliss/0009-skip-dependencies-check-for-Treble-builds.patch
new file mode 100644
index 0000000..7873cb2
--- /dev/null
+++ b/patches/vendor/bliss/0009-skip-dependencies-check-for-Treble-builds.patch
@@ -0,0 +1,24 @@
+From f38cfa492098d083008249434a99c3f27fbfbe0d Mon Sep 17 00:00:00 2001
+From: Jon West <electrikjesus@gmail.com>
+Date: Thu, 25 Oct 2018 20:56:53 -0400
+Subject: [PATCH 9/9] skip dependencies check for Treble builds
+
+Change-Id: I345095b3e8c7edc1e1f373e71696f9cb309cc599
+---
+ build/tools/roomservice.py | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/build/tools/roomservice.py b/build/tools/roomservice.py
+index c8bcf57..71d510c 100755
+--- a/build/tools/roomservice.py
++++ b/build/tools/roomservice.py
+@@ -313,5 +313,4 @@ if __name__ == '__main__':
+         deps_only = False
+ 
+     if not deps_only:
+-        fetch_device(device)
+-    fetch_dependencies(device)
++        print("This is a Treble build, moving along... nothing to see here")
+-- 
+2.17.1
+