diff --git a/java/builder.go b/java/builder.go
index 12110f2..d36e0dc 100644
--- a/java/builder.go
+++ b/java/builder.go
@@ -66,6 +66,7 @@
 				`${config.GenKotlinBuildFileCmd} $classpath $outDir $out.rsp $srcJarDir/list > $outDir/kotlinc-build.xml &&` +
 				`${config.KotlincCmd} $kotlincFlags ` +
 				`-jvm-target $kotlinJvmTarget -Xbuild-file=$outDir/kotlinc-build.xml && ` +
+				`rm $outDir/kotlinc-build.xml && ` +
 				`${config.SoongZipCmd} -jar -o $out -C $outDir -D $outDir`,
 			CommandDeps: []string{
 				"${config.KotlincCmd}",
@@ -358,6 +359,11 @@
 	// for downstream tools like desugar.
 	jarArgs = append(jarArgs, "-stripFile module-info.class")
 
+	// Remove any kotlin-reflect related files
+	// TODO(pszczepaniak): Support kotlin-reflect
+	jarArgs = append(jarArgs, "-stripFile \"*.kotlin_module\"")
+	jarArgs = append(jarArgs, "-stripFile \"*.kotlin_builtin\"")
+
 	if stripDirs {
 		jarArgs = append(jarArgs, "-D")
 	}
diff --git a/java/java.go b/java/java.go
index 5f5225c..125fde1 100644
--- a/java/java.go
+++ b/java/java.go
@@ -83,6 +83,10 @@
 	// ext, and framework for device targets)
 	No_framework_libs *bool
 
+	// Use renamed kotlin stdlib (com.android.kotlin.*). This allows kotlin usage without colliding
+	// with app-provided kotlin stdlib.
+	Renamed_kotlin_stdlib *bool
+
 	// list of module-specific flags that will be used for javac compiles
 	Javacflags []string `android:"arch_variant"`
 
@@ -810,6 +814,7 @@
 		// won't emit any classes for them.
 
 		flags.kotlincFlags = "-no-stdlib"
+
 		if ctx.Device() {
 			flags.kotlincFlags += " -no-jdk"
 		}
@@ -830,9 +835,15 @@
 
 		// Make javac rule depend on the kotlinc rule
 		flags.classpath = append(flags.classpath, kotlinJar)
+
 		// Jar kotlin classes into the final jar after javac
 		jars = append(jars, kotlinJar)
-		jars = append(jars, deps.kotlinStdlib...)
+
+		// Don't add kotlin-stdlib if using (on-device) renamed stdlib
+		// (it's expected to be on device bootclasspath)
+		if !proptools.Bool(j.properties.Renamed_kotlin_stdlib) {
+			jars = append(jars, deps.kotlinStdlib...)
+		}
 	}
 
 	// Store the list of .java files that was passed to javac
@@ -952,6 +963,17 @@
 		outputFile = combinedJar
 	}
 
+	// Use renamed kotlin standard library?
+	if srcFiles.HasExt(".kt") && proptools.Bool(j.properties.Renamed_kotlin_stdlib) {
+		jarjarFile := android.PathForModuleOut(ctx, "kotlin-renamed", jarName)
+		TransformJarJar(ctx, jarjarFile, outputFile,
+			android.PathForSource(ctx, "external/kotlinc/jarjar-rules.txt"))
+		outputFile = jarjarFile
+		if ctx.Failed() {
+			return
+		}
+	}
+
 	if j.properties.Jarjar_rules != nil {
 		jarjar_rules := android.PathForModuleSrc(ctx, *j.properties.Jarjar_rules)
 		// Transform classes.jar into classes-jarjar.jar
diff --git a/java/java_test.go b/java/java_test.go
index 6ef406f..6e3ada4 100644
--- a/java/java_test.go
+++ b/java/java_test.go
@@ -176,6 +176,8 @@
 		"bar-doc/b.java":                 nil,
 		"bar-doc/known_oj_tags.txt":      nil,
 		"external/doclava/templates-sdk": nil,
+
+		"external/kotlinc/jarjar-rules.txt": nil,
 	}
 
 	for k, v := range fs {
@@ -755,6 +757,12 @@
 			name: "baz",
 			srcs: ["c.java"],
 		}
+
+		java_library {
+			name: "blorg",
+			renamed_kotlin_stdlib: true,
+			srcs: ["b.kt"],
+		}
 		`)
 
 	fooKotlinc := ctx.ModuleForTests("foo", "android_common").Rule("kotlinc")
@@ -797,6 +805,12 @@
 		t.Errorf(`expected %q in bar implicits %v`,
 			bazHeaderJar.Output.String(), barKotlinc.Implicits.Strings())
 	}
+
+	blorgRenamedJar := ctx.ModuleForTests("blorg", "android_common").Output("kotlin-renamed/blorg.jar")
+	if blorgRenamedJar.Implicit.String() != "external/kotlinc/jarjar-rules.txt" {
+		t.Errorf(`expected external/kotlinc/jarjar-rules.txt in blorg implicit %q`,
+			blorgRenamedJar.Implicit.String())
+	}
 }
 
 func TestTurbine(t *testing.T) {
