diff --git a/android/config.go b/android/config.go
index f30a708..a70fa76 100644
--- a/android/config.go
+++ b/android/config.go
@@ -462,6 +462,10 @@
 	return Bool(c.ProductVariables.Allow_missing_dependencies)
 }
 
+func (c *config) UnbundledBuild() bool {
+	return Bool(c.ProductVariables.Unbundled_build)
+}
+
 func (c *config) DevicePrefer32BitExecutables() bool {
 	return Bool(c.ProductVariables.DevicePrefer32BitExecutables)
 }
diff --git a/java/app.go b/java/app.go
index e6b91a7..80d62fd 100644
--- a/java/app.go
+++ b/java/app.go
@@ -233,9 +233,7 @@
 
 	ctx.VisitDirectDeps(func(module blueprint.Module) {
 		var depFiles android.Paths
-		if sdkDep, ok := module.(sdkDependency); ok {
-			depFiles = sdkDep.ClasspathFiles()
-		} else if javaDep, ok := module.(Dependency); ok {
+		if javaDep, ok := module.(Dependency); ok {
 			if ctx.OtherModuleName(module) == "framework-res" {
 				depFiles = android.Paths{javaDep.(*AndroidApp).exportPackage}
 			}
diff --git a/java/java.go b/java/java.go
index 2ded80b..326d278 100644
--- a/java/java.go
+++ b/java/java.go
@@ -20,6 +20,7 @@
 
 import (
 	"fmt"
+	"path/filepath"
 	"strconv"
 	"strings"
 
@@ -41,7 +42,6 @@
 	android.RegisterModuleType("java_binary_host", BinaryHostFactory)
 	android.RegisterModuleType("java_import", ImportFactory)
 	android.RegisterModuleType("java_import_host", ImportFactoryHost)
-	android.RegisterModuleType("android_prebuilt_sdk", SdkPrebuiltFactory)
 	android.RegisterModuleType("android_app", AndroidAppFactory)
 
 	android.RegisterSingletonType("logtags", LogtagsSingleton)
@@ -179,26 +179,90 @@
 	libTag           = dependencyTag{name: "javalib"}
 	bootClasspathTag = dependencyTag{name: "bootclasspath"}
 	frameworkResTag  = dependencyTag{name: "framework-res"}
-	sdkDependencyTag = dependencyTag{name: "sdk"}
 )
 
+type sdkDep struct {
+	useModule, useFiles, useDefaultLibs bool
+	module                              string
+	jar                                 android.Path
+	aidl                                android.Path
+}
+
+func decodeSdkDep(ctx android.BaseContext, v string) sdkDep {
+	switch v {
+	case "", "current", "system_current", "test_current":
+		// OK
+	default:
+		if _, err := strconv.Atoi(v); err != nil {
+			ctx.PropertyErrorf("sdk_version", "invalid sdk version")
+			return sdkDep{}
+		}
+	}
+
+	toFile := func(v string) sdkDep {
+		dir := filepath.Join("prebuilts/sdk", v)
+		jar := filepath.Join(dir, "android.jar")
+		aidl := filepath.Join(dir, "framework.aidl")
+		jarPath := android.ExistentPathForSource(ctx, "sdkdir", jar)
+		aidlPath := android.ExistentPathForSource(ctx, "sdkdir", aidl)
+		if !jarPath.Valid() {
+			ctx.PropertyErrorf("sdk_version", "invalid sdk version %q, %q does not exist", v, jar)
+			return sdkDep{}
+		}
+		if !aidlPath.Valid() {
+			ctx.PropertyErrorf("sdk_version", "invalid sdk version %q, %q does not exist", v, aidl)
+			return sdkDep{}
+		}
+		return sdkDep{
+			useFiles: true,
+			jar:      jarPath.Path(),
+			aidl:     aidlPath.Path(),
+		}
+	}
+
+	toModule := func(m string) sdkDep {
+		return sdkDep{
+			useModule: true,
+			module:    m,
+		}
+	}
+
+	if ctx.AConfig().UnbundledBuild() {
+		if v == "" {
+			if ctx, ok := ctx.(android.ModuleContext); ok {
+				ctx.AddMissingDependencies([]string{"sdk_version_must_be_set_for_modules_used_in_unbundled_builds"})
+			}
+			return sdkDep{}
+		}
+		return toFile(v)
+	}
+
+	switch v {
+	case "":
+		return sdkDep{
+			useDefaultLibs: true,
+		}
+	case "current":
+		return toModule("android_stubs_current")
+	case "system_current":
+		return toModule("android_system_stubs_current")
+	case "test_current":
+		return toModule("android_test_stubs_current")
+	default:
+		return toFile(v)
+	}
+}
+
 func (j *Module) deps(ctx android.BottomUpMutatorContext) {
 	if !proptools.Bool(j.properties.No_standard_libs) {
 		if ctx.Device() {
-			switch j.deviceProperties.Sdk_version {
-			case "":
+			sdkDep := decodeSdkDep(ctx, j.deviceProperties.Sdk_version)
+			if sdkDep.useDefaultLibs {
 				ctx.AddDependency(ctx.Module(), bootClasspathTag, "core-oj", "core-libart")
 				ctx.AddDependency(ctx.Module(), libTag, config.DefaultLibraries...)
-			case "current":
-				// TODO: !TARGET_BUILD_APPS
-				// TODO: export preprocessed framework.aidl from android_stubs_current
-				ctx.AddDependency(ctx.Module(), bootClasspathTag, "android_stubs_current")
-			case "test_current":
-				ctx.AddDependency(ctx.Module(), bootClasspathTag, "android_test_stubs_current")
-			case "system_current":
-				ctx.AddDependency(ctx.Module(), bootClasspathTag, "android_system_stubs_current")
-			default:
-				ctx.AddDependency(ctx.Module(), sdkDependencyTag, "sdk_v"+j.deviceProperties.Sdk_version)
+			}
+			if sdkDep.useModule {
+				ctx.AddDependency(ctx.Module(), bootClasspathTag, sdkDep.module)
 			}
 		} else {
 			if j.deviceProperties.Dex {
@@ -247,6 +311,13 @@
 
 func (j *Module) collectDeps(ctx android.ModuleContext) deps {
 	var deps deps
+
+	sdkDep := decodeSdkDep(ctx, j.deviceProperties.Sdk_version)
+	if sdkDep.useFiles {
+		deps.classpath = append(deps.classpath, sdkDep.jar)
+		deps.aidlIncludeDirs = append(deps.aidlIncludeDirs, sdkDep.aidl)
+	}
+
 	ctx.VisitDirectDeps(func(module blueprint.Module) {
 		otherName := ctx.OtherModuleName(module)
 		tag := ctx.OtherModuleDependencyTag(module)
@@ -277,17 +348,6 @@
 				// generated by framework-res.apk
 				deps.srcFileLists = append(deps.srcFileLists, module.(*AndroidApp).aaptJavaFileList)
 			}
-		case sdkDependencyTag:
-			sdkDep := module.(sdkDependency)
-			deps.bootClasspath = append(deps.bootClasspath, sdkDep.ClasspathFiles()...)
-			if sdkDep.AidlPreprocessed().Valid() {
-				if deps.aidlPreprocess.Valid() {
-					ctx.ModuleErrorf("multiple dependencies with preprocessed aidls:\n %q\n %q",
-						deps.aidlPreprocess, sdkDep.AidlPreprocessed())
-				} else {
-					deps.aidlPreprocess = sdkDep.AidlPreprocessed()
-				}
-			}
 		default:
 			panic(fmt.Errorf("unknown dependency %q for %q", otherName, ctx.ModuleName()))
 		}
@@ -677,51 +737,6 @@
 	return module
 }
 
-//
-// SDK java prebuilts (.jar containing resources plus framework.aidl)
-//
-
-type sdkDependency interface {
-	Dependency
-	AidlPreprocessed() android.OptionalPath
-}
-
-var _ sdkDependency = (*sdkPrebuilt)(nil)
-
-type sdkPrebuiltProperties struct {
-	Aidl_preprocessed *string
-}
-
-type sdkPrebuilt struct {
-	Import
-
-	sdkProperties sdkPrebuiltProperties
-
-	aidlPreprocessed android.OptionalPath
-}
-
-func (j *sdkPrebuilt) GenerateAndroidBuildActions(ctx android.ModuleContext) {
-	j.Import.GenerateAndroidBuildActions(ctx)
-
-	j.aidlPreprocessed = android.OptionalPathForModuleSrc(ctx, j.sdkProperties.Aidl_preprocessed)
-}
-
-func (j *sdkPrebuilt) AidlPreprocessed() android.OptionalPath {
-	return j.aidlPreprocessed
-}
-
-func SdkPrebuiltFactory() android.Module {
-	module := &sdkPrebuilt{}
-
-	module.AddProperties(
-		&module.sdkProperties,
-		&module.Import.properties)
-
-	android.InitPrebuiltModule(module, &module.Import.properties.Jars)
-	android.InitAndroidArchModule(module, android.HostAndDeviceSupported, android.MultilibCommon)
-	return module
-}
-
 func inList(s string, l []string) bool {
 	for _, e := range l {
 		if e == s {
diff --git a/java/java_test.go b/java/java_test.go
index 040adb4..7159e3f 100644
--- a/java/java_test.go
+++ b/java/java_test.go
@@ -59,7 +59,6 @@
 	ctx.RegisterModuleType("java_library_host", android.ModuleFactoryAdaptor(LibraryHostFactory))
 	ctx.RegisterModuleType("java_import", android.ModuleFactoryAdaptor(ImportFactory))
 	ctx.RegisterModuleType("java_defaults", android.ModuleFactoryAdaptor(defaultsFactory))
-	ctx.RegisterModuleType("android_prebuilt_sdk", android.ModuleFactoryAdaptor(SdkPrebuiltFactory))
 	ctx.PreArchMutators(android.RegisterPrebuiltsPreArchMutators)
 	ctx.PreArchMutators(android.RegisterPrebuiltsPostDepsMutators)
 	ctx.PreArchMutators(android.RegisterDefaultsPreArchMutators)
@@ -86,21 +85,15 @@
 		`, extra)
 	}
 
-	bp += `
-		android_prebuilt_sdk {
-			name: "sdk_v14",
-			jars: ["sdk_v14.jar"],
-		}
-	`
-
 	ctx.MockFileSystem(map[string][]byte{
-		"Android.bp":  []byte(bp),
-		"a.java":      nil,
-		"b.java":      nil,
-		"c.java":      nil,
-		"a.jar":       nil,
-		"b.jar":       nil,
-		"sdk_v14.jar": nil,
+		"Android.bp": []byte(bp),
+		"a.java":     nil,
+		"b.java":     nil,
+		"c.java":     nil,
+		"a.jar":      nil,
+		"b.jar":      nil,
+		"prebuilts/sdk/14/android.jar":    nil,
+		"prebuilts/sdk/14/framework.aidl": nil,
 	})
 
 	_, errs := ctx.ParseBlueprintsFiles("Android.bp")
@@ -115,8 +108,8 @@
 	switch {
 	case name == `""`:
 		return name
-	case strings.HasPrefix(name, "sdk_v"):
-		return name + ".jar"
+	case strings.HasSuffix(name, ".jar"):
+		return name
 	default:
 		return filepath.Join(buildDir, ".intermediates", name, "android_common", "classes-desugar.jar")
 	}
@@ -187,8 +180,8 @@
 
 		name:          "sdk v14",
 		properties:    `sdk_version: "14",`,
-		bootclasspath: []string{"sdk_v14"},
-		classpath:     []string{},
+		bootclasspath: []string{`""`},
+		classpath:     []string{"prebuilts/sdk/14/android.jar"},
 	},
 	{
 
