diff --git a/CleanSpec.mk b/CleanSpec.mk
new file mode 100644
index 0000000..4350ca1
--- /dev/null
+++ b/CleanSpec.mk
@@ -0,0 +1,48 @@
+# Copyright 2018 The Android Open Source 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.
+#
+
+# If you don't need to do a full clean build but would like to touch
+# a file or delete some intermediate files, add a clean step to the end
+# of the list.  These steps will only be run once, if they haven't been
+# run before.
+#
+# E.g.:
+#     $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
+#     $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
+#
+# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
+# files that are missing or have been moved.
+#
+# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
+# Use $(OUT_DIR) to refer to the "out" directory.
+#
+# If you need to re-do something that's already mentioned, just copy
+# the command and add it to the bottom of the list.  E.g., if a change
+# that you made last week required touching a file and a change you
+# made today requires touching the same file, just copy the old
+# touch step and add it to the end of the list.
+#
+# ************************************************
+# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
+# ************************************************
+
+# For example:
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
+#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -exec rm -f {} \;)
+#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
+
+# Migrate to versioned VNDK directory layout
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/vndk-sp)
diff --git a/vndk/Android.mk b/vndk/Android.mk
deleted file mode 100644
index d254a92..0000000
--- a/vndk/Android.mk
+++ /dev/null
@@ -1,73 +0,0 @@
-# TODO(b/69526027): DEPRECATE USE OF THIS.
-# USE BOARD_VNDK_VERSION:=current instead.
-
-ifneq ($(filter generic%,$(TARGET_DEVICE)),)
-
-LOCAL_PATH := $(call my-dir)
-
-# b/69526027: This VNDK-SP install routine must be removed. Instead, we must
-# build vendor variants of the VNDK-SP modules.
-
-ifndef BOARD_VNDK_VERSION
-# The libs with "vndk: {enabled: true, support_system_process: true}" will be
-# added VNDK_SP_LIBRARIES automatically. And the core variants of the VNDK-SP
-# libs will be copied to vndk-sp directory.
-# However, some of those libs need FWK-ONLY libs, which must be listed here
-# manually.
-VNDK_SP_LIBRARIES := \
-    libdexfile
-
-install_in_hw_dir := \
-   android.hidl.memory@1.0-impl
-
-define define-vndk-sp-lib
-include $$(CLEAR_VARS)
-LOCAL_MODULE := $1.vndk-sp-gen
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-LOCAL_PREBUILT_MODULE_FILE := $$(call intermediates-dir-for,SHARED_LIBRARIES,$1,,,,)/$1.so
-LOCAL_STRIP_MODULE := false
-LOCAL_MULTILIB := first
-LOCAL_MODULE_TAGS := optional
-LOCAL_INSTALLED_MODULE_STEM := $1.so
-LOCAL_MODULE_SUFFIX := .so
-LOCAL_MODULE_RELATIVE_PATH := vndk-sp$(if $(filter $1,$(install_in_hw_dir)),/hw)
-include $$(BUILD_PREBUILT)
-
-ifneq ($$(TARGET_2ND_ARCH),)
-ifneq ($$(TARGET_TRANSLATE_2ND_ARCH),true)
-include $$(CLEAR_VARS)
-LOCAL_MODULE := $1.vndk-sp-gen
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-LOCAL_PREBUILT_MODULE_FILE := $$(call intermediates-dir-for,SHARED_LIBRARIES,$1,,,$$(TARGET_2ND_ARCH_VAR_PREFIX),)/$1.so
-LOCAL_STRIP_MODULE := false
-LOCAL_MULTILIB := 32
-LOCAL_MODULE_TAGS := optional
-LOCAL_INSTALLED_MODULE_STEM := $1.so
-LOCAL_MODULE_SUFFIX := .so
-LOCAL_MODULE_RELATIVE_PATH := vndk-sp$(if $(filter $1,$(install_in_hw_dir)),/hw)
-include $$(BUILD_PREBUILT)
-endif # TARGET_TRANSLATE_2ND_ARCH is not true
-endif # TARGET_2ND_ARCH is not empty
-endef
-
-# Add VNDK-SP libs to the list if they are missing
-$(foreach lib,$(VNDK_SAMEPROCESS_LIBRARIES),\
-    $(if $(filter $(lib),$(VNDK_SP_LIBRARIES)),,\
-    $(eval VNDK_SP_LIBRARIES += $(lib))))
-
-# Remove libz from the VNDK-SP list (b/73296261)
-VNDK_SP_LIBRARIES := $(filter-out libz,$(VNDK_SP_LIBRARIES))
-
-$(foreach lib,$(VNDK_SP_LIBRARIES),\
-    $(eval $(call define-vndk-sp-lib,$(lib))))
-
-install_in_hw_dir :=
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := vndk-sp
-LOCAL_MODULE_OWNER := google
-LOCAL_MODULE_TAGS := optional
-LOCAL_REQUIRED_MODULES := $(addsuffix .vndk-sp-gen,$(VNDK_SP_LIBRARIES))
-include $(BUILD_PHONY_PACKAGE)
-endif # BOARD_VNDK_VERSION
-endif # TARGET_DEVICE is generic*
