diff --git a/build/core/config.mk b/build/core/config.mk
index 02e5c8b..887a622 100644
--- a/build/core/config.mk
+++ b/build/core/config.mk
@@ -20,9 +20,6 @@
 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_MAVEN_PREBUILT := $(TOP)/vendor/lineage/build/core/maven_artifact.mk
-PUBLISH_MAVEN_PREBUILT := $(TOP)/vendor/lineage/build/core/maven_artifact_publish.mk
-
 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/maven_artifact.mk b/build/core/maven_artifact.mk
deleted file mode 100644
index 67d46a4..0000000
--- a/build/core/maven_artifact.mk
+++ /dev/null
@@ -1,69 +0,0 @@
-# Copyright (C) 2015 The CyanogenMod 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_MAVEN_GROUP)),)
-  $(error LOCAL_MAVEN_GROUP not defined.)
-endif
-ifeq ($(strip $(LOCAL_MAVEN_ARTIFACT)),)
-  $(error LOCAL_MAVEN_ARTIFACT not defined.)
-endif
-ifeq ($(strip $(LOCAL_MAVEN_VERSION)),)
-  $(error LOCAL_MAVEN_VERSION not defined.)
-endif
-ifeq ($(strip $(LOCAL_MAVEN_REPO)),)
-  $(error LOCAL_MAVEN_REPO not defined.)
-endif
-ifeq ($(strip $(LOCAL_MAVEN_PACKAGING)),)
-  LOCAL_MAVEN_PACKAGING := jar
-endif
-
-artifact_filename := $(LOCAL_MAVEN_GROUP).$(LOCAL_MAVEN_ARTIFACT)-$(LOCAL_MAVEN_VERSION)$(if $(LOCAL_MAVEN_CLASSIFIER),-$(LOCAL_MAVEN_CLASSIFIER)).$(LOCAL_MAVEN_PACKAGING)
-
-LOCAL_PREBUILT_MODULE_FILE := $(call intermediates-dir-for,$(LOCAL_MODULE_CLASS),$(LOCAL_MODULE),,COMMON)/$(artifact_filename)
-
-$(LOCAL_PREBUILT_MODULE_FILE): repo := $(LOCAL_MAVEN_REPO)
-$(LOCAL_PREBUILT_MODULE_FILE): group := $(LOCAL_MAVEN_GROUP)
-$(LOCAL_PREBUILT_MODULE_FILE): artifact := $(LOCAL_MAVEN_ARTIFACT)
-$(LOCAL_PREBUILT_MODULE_FILE): version := $(LOCAL_MAVEN_VERSION)
-$(LOCAL_PREBUILT_MODULE_FILE): packaging := $(LOCAL_MAVEN_PACKAGING)
-$(LOCAL_PREBUILT_MODULE_FILE): classifier := $(LOCAL_MAVEN_CLASSIFIER)
-$(LOCAL_PREBUILT_MODULE_FILE):
-	$(hide) mvn -q org.apache.maven.plugins:maven-dependency-plugin:2.10:get \
-				   org.apache.maven.plugins:maven-dependency-plugin:2.10:copy \
-		-DremoteRepositories=central::::$(repo) \
-		-Dartifact=$(group):$(artifact):$(version):$(packaging)$(if $(classifier),:$(classifier)) \
-		-Dmdep.prependGroupId=true \
-		-Dmdep.overWriteSnapshots=true \
-		-Dmdep.overWriteReleases=true \
-		-Dtransitive=false \
-		-DoutputDirectory=$(dir $@)
-	@echo "Download: $@"
-
-ifneq ($(filter-out disabled, $(LOCAL_JACK_ENABLED)),)
-ifneq ($(LOCAL_MAVEN_PACKAGING),apk)
-# This is required to be defined before the LOCAL_MODULES target below gets defined, it's a NOOP registered again in
-# BUILD_PREBUILT.  This is done because BUILD_PREBUILT doesn't actually handle generating the .jack files properly and
-# only generates a target but doesn't set the LOCAL_MODULE dependent on it.
-$(call intermediates-dir-for,JAVA_LIBRARIES,$(LOCAL_MODULE),,COMMON):
-
-# This adds another step required for LOCAL_MODULE to be completed -- generating the jack file, it just so happens
-# to be built when doing a brunch, but not when doing an mmm, so this makes it work with both
-$(LOCAL_MODULE): $(call intermediates-dir-for,JAVA_LIBRARIES,$(LOCAL_MODULE),,COMMON)/classes.jack
-endif # LOCAL_MAVEN_PACKING is not apk
-endif # LOCAL_JACK_ENABLED is full or partial
-
-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)
diff --git a/build/core/maven_artifact_publish.mk b/build/core/maven_artifact_publish.mk
deleted file mode 100644
index f1a8dd3..0000000
--- a/build/core/maven_artifact_publish.mk
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright (C) 2015 The CyanogenMod 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.
-
-full_target := $(call doc-timestamp-for,$(LOCAL_MODULE))
-
-ifeq ($(strip $(LOCAL_MAVEN_POM)),)
-  $(warning LOCAL_MAVEN_POM not defined.)
-endif
-ifeq ($(strip $(LOCAL_MAVEN_REPO)),)
-  $(warning LOCAL_MAVEN_REPO not defined.)
-endif
-ifeq ($(strip $(LOCAL_MAVEN_REPO_ID)),)
-  $(warning LOCAL_MAVEN_REPO_ID not defined.)
-endif
-
-$(full_target): pomfile := $(LOCAL_MAVEN_POM)
-$(full_target): repo := $(LOCAL_MAVEN_REPO)
-ifdef LOCAL_MAVEN_TARGET_MODULE
-$(full_target): path_to_file := $(call intermediates-dir-for,JAVA_LIBRARIES,$(LOCAL_MAVEN_TARGET_MODULE),,COMMON)/javalib.aar
-endif
-$(full_target): repoId := $(LOCAL_MAVEN_REPO_ID)
-$(full_target): classifier := $(LOCAL_MAVEN_CLASSIFIER)
-$(full_target): sources := $(LOCAL_MAVEN_SOURCES)
-$(full_target): javadoc := $(LOCAL_MAVEN_JAVADOC)
-$(full_target): artifact_path := $(LOCAL_MAVEN_ARTIFACT_PATH)
-$(full_target): artifact_path ?= $(basename $(path_to_file))
-
-ifdef LOCAL_MAVEN_TARGET_MODULE
-$(full_target): $(LOCAL_MAVEN_TARGET_MODULE) $(path_to_file) $(artifact_path) $(ACP)
-	@echo "Renaming generated sdk javalib aar"
-	$(hide) $(ACP) $(path_to_file) $(artifact_path)
-	@echo "Publishing to Maven"
-		$(hide) mvn -e -X gpg:sign-and-deploy-file \
-			-DpomFile=$(pomfile) \
-			-Durl=$(repo) \
-			-Dfile=$(artifact_path) \
-			-DrepositoryId=$(repoId) \
-			-Dclassifier=$(classifier) \
-			-Dsources=$(sources) \
-			-Djavadoc=$(javadoc)
-	@echo "Publishing: $@"
-endif
-$(LOCAL_MODULE): $(full_target)
