diff --git a/Android.mk b/Android.mk
index 6af3af912bbd1abea06c5819a2175042f22d2fcd..3eddee824bea03387e3a594b87597ec26ff4592b 100644
--- a/Android.mk
+++ b/Android.mk
@@ -140,6 +140,7 @@ $(PLAT_PUBLIC_POLICY) $(PLAT_PRIVATE_POLICY))
 		-D target_build_variant=$(TARGET_BUILD_VARIANT) \
 		-D target_build_treble=$(ENABLE_TREBLE) \
 		-D target_with_dexpreopt=$(WITH_DEXPREOPT) \
+		-D target_with_dexpreopt_pic=$(WITH_DEXPREOPT_PIC) \
 		-s $^ > $@
 	$(hide) sed '/dontaudit/d' $@ > $@.dontaudit
 
@@ -158,6 +159,7 @@ $(PLAT_PUBLIC_POLICY) $(PLAT_PRIVATE_POLICY) $(BOARD_SEPOLICY_DIRS))
 		-D target_build_variant=$(TARGET_BUILD_VARIANT) \
 		-D target_build_treble=$(ENABLE_TREBLE) \
 		-D target_with_dexpreopt=$(WITH_DEXPREOPT) \
+		-D target_with_dexpreopt_pic=$(WITH_DEXPREOPT_PIC) \
 		-D target_arch=$(LOCAL_TARGET_ARCH) \
 		-s $^ > $@
 	$(hide) sed '/dontaudit/d' $@ > $@.dontaudit
@@ -200,6 +202,7 @@ $(PLAT_PUBLIC_POLICY) $(PLAT_PRIVATE_POLICY) $(BOARD_SEPOLICY_DIRS))
 		-D target_build_variant=$(TARGET_BUILD_VARIANT) \
 		-D target_build_treble=$(ENABLE_TREBLE) \
 		-D target_with_dexpreopt=$(WITH_DEXPREOPT) \
+		-D target_with_dexpreopt_pic=$(WITH_DEXPREOPT_PIC) \
 		-D target_recovery=true \
 		-s $^ > $@
 
@@ -237,6 +240,7 @@ $(PLAT_PUBLIC_POLICY) $(PLAT_PRIVATE_POLICY))
 		-D target_build_variant=user \
 		-D target_build_treble=$(ENABLE_TREBLE) \
 		-D target_with_dexpreopt=$(WITH_DEXPREOPT) \
+		-D target_with_dexpreopt_pic=$(WITH_DEXPREOPT_PIC) \
 		-s $^ > $@
 	$(hide) sed '/dontaudit/d' $@ > $@.dontaudit
 
diff --git a/public/te_macros b/public/te_macros
index 9664b3196894732c0bb588975d4f3709d8a7023a..a826e968303b24a9e78dc673f0c4f8ee12cdf1f6 100644
--- a/public/te_macros
+++ b/public/te_macros
@@ -290,9 +290,9 @@ define(`passthrough_hal', ifelse(target_build_treble, `', $1))
 
 #####################################
 # WITH_DEXPREOPT builds
-# SELinux rules which apply only when pre-opting.
+# SELinux rules which apply only when pre-opting with PIC.
 #
-define(`with_dexpreopt', ifelse(target_with_dexpreopt, `true', $1))
+define(`with_dexpreopt', ifelse(target_with_dexpreopt, `true', ifelse(target_with_dexpreopt_pic, `true', $1)))
 
 #####################################
 # write_logd(domain)