Merge "apex: set ":vndk" as required for vendor apexes"
diff --git a/apex/apex.go b/apex/apex.go
index e3a95fa..9905b79 100644
--- a/apex/apex.go
+++ b/apex/apex.go
@@ -2162,10 +2162,7 @@
 							return false
 						}
 						if cc.UseVndk() && proptools.Bool(a.properties.Use_vndk_as_stable) && cc.IsVndk() {
-							// For vendor APEX with use_vndk_as_stable: true, we don't include VNDK libs
-							// and use them from VNDK APEX.
-							// TODO(b/159576928): add "vndk" as requiredDeps so that linkerconfig can make "vndk"
-							// linker namespace avaiable to this apex.
+							requireNativeLibs = append(requireNativeLibs, ":vndk")
 							return false
 						}
 						af := apexFileForNativeLibrary(ctx, cc, handleSpecialLibs)
diff --git a/apex/apex_test.go b/apex/apex_test.go
index 7db61d5..0959a49 100644
--- a/apex/apex_test.go
+++ b/apex/apex_test.go
@@ -2201,6 +2201,10 @@
 	data.Custom(&builder, name, prefix, "", data)
 	androidMk := builder.String()
 	ensureContains(t, androidMk, `LOCAL_MODULE_PATH := /tmp/target/product/test_device/vendor/apex`)
+
+	apexManifestRule := ctx.ModuleForTests("myapex", "android_common_myapex_image").Rule("apexManifestRule")
+	requireNativeLibs := names(apexManifestRule.Args["requireNativeLibs"])
+	ensureListNotContains(t, requireNativeLibs, ":vndk")
 }
 
 func TestVendorApex_use_vndk_as_stable(t *testing.T) {
@@ -2250,6 +2254,10 @@
 		"bin/mybin",
 		"lib64/libvendor.so",
 	})
+
+	apexManifestRule := ctx.ModuleForTests("myapex", "android_common_myapex_image").Rule("apexManifestRule")
+	requireNativeLibs := names(apexManifestRule.Args["requireNativeLibs"])
+	ensureListContains(t, requireNativeLibs, ":vndk")
 }
 
 func TestAndroidMk_UseVendorRequired(t *testing.T) {