diff --git a/build/soong/policy.go b/build/soong/policy.go
index 380faff..3946a04 100644
--- a/build/soong/policy.go
+++ b/build/soong/policy.go
@@ -287,10 +287,6 @@
 	// Policy file to be compiled to cil file.
 	Src *string `android:"path"`
 
-	// If true, the input policy file is a binary policy that will be decompiled to a cil file.
-	// Defaults to false.
-	Decompile_binary *bool
-
 	// Additional cil files to be added in the end of the output. This is to support workarounds
 	// which are not supported by the policy language.
 	Additional_cil_files []string `android:"path"`
@@ -342,22 +338,17 @@
 func (c *policyCil) compileConfToCil(ctx android.ModuleContext, conf android.Path) android.OutputPath {
 	cil := android.PathForModuleOut(ctx, c.stem()).OutputPath
 	rule := android.NewRuleBuilder(pctx, ctx)
+	rule.Command().BuiltTool("checkpolicy").
+		Flag("-C"). // Write CIL
+		Flag("-M"). // Enable MLS
+		FlagWithArg("-c ", strconv.Itoa(PolicyVers)).
+		FlagWithOutput("-o ", cil).
+		Input(conf)
 
-	if proptools.Bool(c.properties.Decompile_binary) {
-		rule.Command().BuiltTool("checkpolicy").
-			Flag("-b"). // Read binary
-			Flag("-C"). // Write CIL
-			Flag("-M"). // Enable MLS
-			FlagWithArg("-c ", strconv.Itoa(PolicyVers)).
-			FlagWithOutput("-o ", cil).
-			Input(conf)
-	} else {
-		rule.Command().BuiltTool("checkpolicy").
-			Flag("-C"). // Write CIL
-			Flag("-M"). // Enable MLS
-			FlagWithArg("-c ", strconv.Itoa(PolicyVers)).
-			FlagWithOutput("-o ", cil).
-			Input(conf)
+	if len(c.properties.Additional_cil_files) > 0 {
+		rule.Command().Text("cat").
+			Inputs(android.PathsForModuleSrc(ctx, c.properties.Additional_cil_files)).
+			Text(">> ").Output(cil)
 	}
 
 	if len(c.properties.Filter_out) > 0 {
@@ -368,12 +359,6 @@
 			FlagWithOutput("-t ", cil)
 	}
 
-	if len(c.properties.Additional_cil_files) > 0 {
-		rule.Command().Text("cat").
-			Inputs(android.PathsForModuleSrc(ctx, c.properties.Additional_cil_files)).
-			Text(">> ").Output(cil)
-	}
-
 	if proptools.Bool(c.properties.Remove_line_marker) {
 		rule.Command().Text("grep -v").
 			Text(proptools.ShellEscape(";;")).
