Merge "Ensure consistent handling of generated headers/dirs" am: a0d58893fc am: 44242ee450 am: 4d54a5a580

Change-Id: I66ccacab3c2f411afdad5f91cd243b66ad519456
diff --git a/android/neverallow.go b/android/neverallow.go
index 0cb2029..f0d16b6 100644
--- a/android/neverallow.go
+++ b/android/neverallow.go
@@ -52,6 +52,7 @@
 	AddNeverAllowRules(createTrebleRules()...)
 	AddNeverAllowRules(createLibcoreRules()...)
 	AddNeverAllowRules(createMediaRules()...)
+	AddNeverAllowRules(createMediaProviderRules()...)
 	AddNeverAllowRules(createJavaDeviceForHostRules()...)
 }
 
@@ -159,6 +160,14 @@
 	}
 }
 
+func createMediaProviderRules() []Rule {
+	return []Rule{
+		NeverAllow().
+			With("libs", "framework-mediaprovider").
+			Because("framework-mediaprovider includes private APIs. Use framework_mediaprovider_stubs instead."),
+	}
+}
+
 func createJavaDeviceForHostRules() []Rule {
 	javaDeviceForHostProjectsWhitelist := []string{
 		"external/guava",
diff --git a/android/neverallow_test.go b/android/neverallow_test.go
index 6f07a4a..b57bb3f 100644
--- a/android/neverallow_test.go
+++ b/android/neverallow_test.go
@@ -203,6 +203,19 @@
 		},
 	},
 	{
+		name: "dependency on framework-mediaprovider",
+		fs: map[string][]byte{
+			"Android.bp": []byte(`
+				java_library {
+					name: "needs_framework_mediaprovider",
+					libs: ["framework-mediaprovider"],
+				}`),
+		},
+		expectedErrors: []string{
+			"framework-mediaprovider includes private APIs. Use framework_mediaprovider_stubs instead.",
+		},
+	},
+	{
 		name: "java_device_for_host",
 		fs: map[string][]byte{
 			"Android.bp": []byte(`
diff --git a/apex/apex.go b/apex/apex.go
index 79fdb71..a235ead 100644
--- a/apex/apex.go
+++ b/apex/apex.go
@@ -538,6 +538,7 @@
 		"android.hardware.configstore@1.1",
 		"android.hardware.graphics.allocator@2.0",
 		"android.hardware.graphics.allocator@3.0",
+		"android.hardware.graphics.allocator@4.0",
 		"android.hardware.graphics.bufferqueue@1.0",
 		"android.hardware.graphics.bufferqueue@2.0",
 		"android.hardware.graphics.common-ndk_platform",
@@ -550,6 +551,7 @@
 		"android.hardware.graphics.mapper@4.0",
 		"android.hardware.media.bufferpool@2.0",
 		"android.hardware.media.c2@1.0",
+		"android.hardware.media.c2@1.1",
 		"android.hardware.media.omx@1.0",
 		"android.hardware.media@1.0",
 		"android.hardware.media@1.0",
@@ -668,6 +670,7 @@
 		"libprocessgroup_headers",
 		"libscudo_wrapper",
 		"libsfplugin_ccodec_utils",
+		"libspeexresampler",
 		"libstagefright_amrnb_common",
 		"libstagefright_amrnbdec",
 		"libstagefright_amrnbenc",
@@ -730,6 +733,8 @@
 		"kotlinx-coroutines-core-nodeps",
 		"libprotobuf-java-lite",
 		"permissioncontroller-statsd",
+		"GooglePermissionController",
+		"PermissionController",
 	}
 	//
 	// Module separator
diff --git a/apex/builder.go b/apex/builder.go
index 5e0baf4..022353f 100644
--- a/apex/builder.go
+++ b/apex/builder.go
@@ -383,6 +383,16 @@
 
 		targetSdkVersion := ctx.Config().DefaultAppTargetSdk()
 		minSdkVersion := ctx.Config().DefaultAppTargetSdk()
+
+		if proptools.Bool(a.properties.Legacy_android10_support) {
+			if !java.UseApiFingerprint(ctx, targetSdkVersion) {
+				targetSdkVersion = "29"
+			}
+			if !java.UseApiFingerprint(ctx, minSdkVersion) {
+				minSdkVersion = "29"
+			}
+		}
+
 		if java.UseApiFingerprint(ctx, targetSdkVersion) {
 			targetSdkVersion += fmt.Sprintf(".$$(cat %s)", java.ApiFingerprintPath(ctx).String())
 			implicitInputs = append(implicitInputs, java.ApiFingerprintPath(ctx))
diff --git a/cc/config/vndk.go b/cc/config/vndk.go
index 54f693e..6f2e807 100644
--- a/cc/config/vndk.go
+++ b/cc/config/vndk.go
@@ -18,10 +18,12 @@
 // For these libraries, the vendor variants must be installed even if the device
 // has VndkUseCoreVariant set.
 var VndkMustUseVendorVariantList = []string{
+	"android.hardware.automotive.occupant_awareness-ndk_platform",
 	"android.hardware.light-ndk_platform",
 	"android.hardware.identity-ndk_platform",
 	"android.hardware.nfc@1.2",
 	"android.hardware.power-ndk_platform",
+	"android.hardware.rebootescrow-ndk_platform",
 	"android.hardware.vibrator-ndk_platform",
 	"libbinder",
 	"libcrypto",
diff --git a/java/config/config.go b/java/config/config.go
index 7f446e5..03588dc 100644
--- a/java/config/config.go
+++ b/java/config/config.go
@@ -37,6 +37,7 @@
 
 	InstrumentFrameworkModules = []string{
 		"framework",
+		"framework-minus-apex",
 		"telephony-common",
 		"services",
 		"android.car",
@@ -47,6 +48,7 @@
 		"core-libart",
 		// TODO: Could this be all updatable bootclasspath jars?
 		"updatable-media",
+		"framework-mediaprovider",
 		"framework-sdkextensions",
 		"ike",
 	}