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
+