Don't use APEX prebuilts when asan is on

Some prebuilt APEXes are enabled with scudo, which causes crash on
devices with asan.

Bug: 137216042
Test: build walleye_hwasan and check if apexes are not from prebuilts
Merged-In: Ic436ad06e724af952d99fb8e66358a595450eb84
(cherry picked from commit 3b98a509f19cb25e9734bb62ba0b592663ed8e4e)
Change-Id: Ic436ad06e724af952d99fb8e66358a595450eb84
diff --git a/apex/apex.go b/apex/apex.go
index f7042fc..5f69398 100644
--- a/apex/apex.go
+++ b/apex/apex.go
@@ -1433,10 +1433,16 @@
 }
 
 func (p *Prebuilt) DepsMutator(ctx android.BottomUpMutatorContext) {
-	if ctx.Config().FlattenApex() && !ctx.Config().UnbundledBuild() && p.prebuilt.SourceExists() {
-		// If the device is configured to use flattened APEX, don't set
-		// p.properties.Source so that the prebuilt module (which is
-		// a non-flattened APEX) is not used.
+	// If the device is configured to use flattened APEX, don't set
+	// p.properties.Source so that the prebuilt module (which is
+	// a non-flattened APEX) is not used.
+	forceDisable := ctx.Config().FlattenApex() && !ctx.Config().UnbundledBuild()
+
+	// b/137216042 don't use prebuilts when address sanitizer is on
+	forceDisable = forceDisable || android.InList("address", ctx.Config().SanitizeDevice()) ||
+		android.InList("hwaddress", ctx.Config().SanitizeDevice())
+
+	if forceDisable && p.prebuilt.SourceExists() {
 		p.properties.ForceDisable = true
 		return
 	}