Separate device and product overlays

This change adds book-keeping of whether an overlay came from
DEVICE_PACKAGE_OVERLAYS or PRODUCT_PACKAGE_OVERLAYS. This is
later used when writing the output to soong_app_prebuilt.mk, to
use either LOCAL_SOONG_[DEVICE|PRODUCT]_RRO_PACKAGES depending
on the original source.

This change is intended to be a noop on its own, but allows a
follow-up make change to customize the location of the auto-generated
RRO packages.

Bug: 127758779
Test: verify noop on presubmit targets
Change-Id: Ib24fe1d05be132c360dd6966f7c83968c9939f77
diff --git a/java/androidmk.go b/java/androidmk.go
index 0c3b1c7..5b4f738 100644
--- a/java/androidmk.go
+++ b/java/androidmk.go
@@ -257,10 +257,24 @@
 					fmt.Fprintln(w, "LOCAL_NO_STANDARD_LIBRARIES := true")
 				}
 
-				if len(app.rroDirs) > 0 {
+				filterRRO := func(filter overlayType) android.Paths {
+					var paths android.Paths
+					for _, d := range app.rroDirs {
+						if d.overlayType == filter {
+							paths = append(paths, d.path)
+						}
+					}
 					// Reverse the order, Soong stores rroDirs in aapt2 order (low to high priority), but Make
 					// expects it in LOCAL_RESOURCE_DIRS order (high to low priority).
-					fmt.Fprintln(w, "LOCAL_SOONG_RRO_DIRS :=", strings.Join(android.ReversePaths(app.rroDirs).Strings(), " "))
+					return android.ReversePaths(paths)
+				}
+				deviceRRODirs := filterRRO(device)
+				if len(deviceRRODirs) > 0 {
+					fmt.Fprintln(w, "LOCAL_SOONG_DEVICE_RRO_DIRS :=", strings.Join(deviceRRODirs.Strings(), " "))
+				}
+				productRRODirs := filterRRO(product)
+				if len(productRRODirs) > 0 {
+					fmt.Fprintln(w, "LOCAL_SOONG_PRODUCT_RRO_DIRS :=", strings.Join(productRRODirs.Strings(), " "))
 				}
 
 				if Bool(app.appProperties.Export_package_resources) {