diff --git a/build/core/config.mk b/build/core/config.mk
index 887a622..963fef4 100644
--- a/build/core/config.mk
+++ b/build/core/config.mk
@@ -20,6 +20,4 @@
 FRAMEWORK_LINEAGE_PLATFORM_REMOVED_API_FILE := $(TOPDIR)lineage-sdk/api/lineage_removed.txt
 FRAMEWORK_LINEAGE_API_NEEDS_UPDATE_TEXT := $(TOPDIR)vendor/lineage/build/core/apicheck_msg_current.txt
 
-BUILD_HTTP_PREBUILT := $(TOP)/vendor/lineage/build/core/http_prebuilt.mk
-
 BUILD_RRO_SYSTEM_PACKAGE := $(TOP)/vendor/lineage/build/core/system_rro.mk
diff --git a/build/core/http_prebuilt.mk b/build/core/http_prebuilt.mk
deleted file mode 100644
index 592df5c..0000000
--- a/build/core/http_prebuilt.mk
+++ /dev/null
@@ -1,89 +0,0 @@
-# Copyright (C) 2015 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.
-# 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.
-
-ifeq ($(strip $(LOCAL_HTTP_PATH)),)
-  $(error LOCAL_HTTP_PATH not defined.)
-endif
-
-ifeq ($(strip $(LOCAL_HTTP_FILENAME)),)
-  $(error LOCAL_HTTP_FILENAME not defined.)
-endif
-
-ifeq ($(strip $(LOCAL_HTTP_MD5SUM)),)
-  $(error LOCAL_HTTP_MD5SUM not defined.)
-endif
-
-PREBUILT_MODULE_ARCHIVE := vendor/lineage/prebuilt/archive/$(LOCAL_MODULE)
-
-PREBUILT_MODULE_FILE := $(PREBUILT_MODULE_ARCHIVE)/$(LOCAL_HTTP_FILENAME)
-
-PREBUILT_MODULE_MD5SUM := $(PREBUILT_MODULE_ARCHIVE)/md5sum
-
-HTTP_FILE_URL := $(LOCAL_HTTP_PATH)/$(LOCAL_HTTP_FILENAME)
-HTTP_FILE_MD5_URL := $(LOCAL_HTTP_PATH)/$(LOCAL_HTTP_MD5SUM)
-
-LOCAL_PREBUILT_MODULE_FILE := $(call intermediates-dir-for,$(LOCAL_MODULE_CLASS),$(LOCAL_MODULE),,COMMON)/$(LOCAL_HTTP_FILENAME)
-
-$(LOCAL_PREBUILT_MODULE_FILE): filename := $(LOCAL_HTTP_FILENAME)
-$(LOCAL_PREBUILT_MODULE_FILE): checksum := $(PREBUILT_MODULE_MD5SUM)
-$(LOCAL_PREBUILT_MODULE_FILE): filepath := $(PREBUILT_MODULE_FILE)
-$(LOCAL_PREBUILT_MODULE_FILE): version  := $(LOCAL_HTTP_FILE_VERSION)
-
-define curl-checksum
-  @echo "Pulling comparison md5sum for $(filename)"
-  $(call download-prebuilt-module, $(HTTP_FILE_MD5_URL),$(checksum))
-endef
-
-define audit-checksum
-  $(hide) if [ ! -f $(filepath) ]; then \
-            echo "Downloading: $(filename) (version $(version)) -> $(filepath)"; \
-            $(call download-prebuilt-module, $(HTTP_FILE_URL),$(filepath)) \
-          else \
-            temp_checksum=$(shell md5sum $(filepath) | cut -d ' ' -f1); \
-            if [ "$$temp_checksum" != "$(shell cat $(checksum) | cut -d ' ' -f1)" ]; then \
-              echo "Downloading: $(filename) (version $(version)) -> $(filepath)"; \
-              rm -rf $(filepath); \
-              $(call download-prebuilt-module, $(HTTP_FILE_URL),$(filepath)) \
-            fi; \
-          fi; \
-          rm -f $(checksum);
-endef
-
-# $(1) url
-# $(2) file output
-define download-prebuilt-module
-  ./vendor/lineage/build/tasks/http_curl_prebuilt.sh $(1) $(2);
-endef
-
-define cleanup
-  @echo "Copying: $(filename) -> $(dir $@)"
-  $(hide) mkdir -p $(dir $@)
-  $(hide) cp $(filepath) $(dir $@)/$(filename)
-endef
-
-$(LOCAL_PREBUILT_MODULE_FILE):
-	$(call curl-checksum)
-	$(call audit-checksum)
-	$(call cleanup)
-
-include $(BUILD_PREBUILT)
-
-# the "fetchprebuilts" target will go through and pre-download all of the maven dependencies in the tree
-fetchprebuilts: $(LOCAL_PREBUILT_MODULE_FILE)
-
-# the "nukeprebuilts" target will evict all archived artifacts
-nukeprebuilts:
-	  @echo "Removing artifact for $(LOCAL_HTTP_FILENAME)"
-	  $(hide) rm -rf $(PREBUILT_MODULE_ARCHIVE)
