diff --git a/java/builder.go b/java/builder.go
index 2c72cab..f0cfeae 100644
--- a/java/builder.go
+++ b/java/builder.go
@@ -62,6 +62,13 @@
 		},
 		"outDir", "dxFlags")
 
+	jarjar = pctx.StaticRule("jarjar",
+		blueprint.RuleParams{
+			Command:     "java -jar $jarjarCmd process $rulesFile $in $out",
+			Description: "jarjar $out",
+		},
+		"rulesFile")
+
 	extractPrebuilt = pctx.StaticRule("extractPrebuilt",
 		blueprint.RuleParams{
 			Command: `rm -rf $outDir && unzip -qo $in -d $outDir && ` +
@@ -80,6 +87,9 @@
 	pctx.VariableFunc("dxCmd", func(c interface{}) (string, error) {
 		return c.(Config).HostBinTool("dx")
 	})
+	pctx.VariableFunc("jarjarCmd", func(c interface{}) (string, error) {
+		return c.(Config).HostJavaTool("jarjar.jar")
+	})
 }
 
 type javaBuilderFlags struct {
@@ -198,6 +208,21 @@
 	return outputFile
 }
 
+func TransformJarJar(ctx common.AndroidModuleContext, classesJar string, rulesFile string) string {
+	outputFile := filepath.Join(common.ModuleOutDir(ctx), "classes-jarjar.jar")
+	ctx.Build(pctx, blueprint.BuildParams{
+		Rule:      jarjar,
+		Outputs:   []string{outputFile},
+		Inputs:    []string{classesJar},
+		Implicits: []string{"$jarjarCmd"},
+		Args: map[string]string{
+			"rulesFile": rulesFile,
+		},
+	})
+
+	return outputFile
+}
+
 func TransformPrebuiltJarToClasses(ctx common.AndroidModuleContext,
 	prebuilt string) (classJarSpec, resourceJarSpec jarSpec) {
 
diff --git a/java/java.go b/java/java.go
index 8b7e02d..f934721 100644
--- a/java/java.go
+++ b/java/java.go
@@ -33,6 +33,7 @@
 	SrcDir() string
 	PrebuiltOS() string
 	HostBinTool(string) (string, error)
+	HostJavaTool(string) (string, error)
 	Getenv(string) string
 }
 
@@ -90,6 +91,9 @@
 		// Set for device java libraries, and for host versions of device java libraries
 		// built for testing
 		Dex bool `blueprint:"mutated"`
+
+		// jarjar_rules: if not blank, run jarjar using the specified rules file
+		Jarjar_rules string
 	}
 
 	// output file suitable for inserting into the classpath of another compile
@@ -235,8 +239,19 @@
 	if ctx.Failed() {
 		return
 	}
+
 	j.classJarSpecs = classJarSpecs
 	j.resourceJarSpecs = resourceJarSpecs
+
+	if j.properties.Jarjar_rules != "" {
+		jarjar_rules := filepath.Join(common.ModuleSrcDir(ctx), j.properties.Jarjar_rules)
+		// Transform classes-full-debug.jar into classes-jarjar.jar
+		outputFile = TransformJarJar(ctx, outputFile, jarjar_rules)
+		if ctx.Failed() {
+			return
+		}
+	}
+
 	j.classpathFile = outputFile
 
 	if j.properties.Dex {
