ensure that privapp_allowlist is installed before android_app
AndroidMk assumes that the app is the last file installed, and it uses this assumption to populate the LOCAL_SOONG_INSTALLED_MODULE entry. This CL moves the privapp_allowlist installation to before the app installation to respect this assumption. Bug: 242509786 Test: go test Test: OUT_DIR=out.ref m nothing && cp aosp/2562351 && OUT_DIR=out.change m nothing && GOWORK=$PWD/build/bazel/mkcompare/go.work \ go run android/bazel/mkcompare/cmd -json \ <(sed -e "s/out\.ref/out/g" out.ref/soong/Android-aosp_cheetah.mk) \ <(sed -e "s/out\.change/out/g" out.change/soong/Android-aosp_cheetah.mk) && verify manually that the only diffs are related to the removal of the prebuilt_etc module. Change-Id: I95ec27070f575e79fb976de68493a219717ed89a
This commit is contained in:
@@ -3589,3 +3589,82 @@ func TestPrivappAllowlist(t *testing.T) {
|
||||
app.Output("out/soong/target/product/test_device/system/etc/permissions/privapp_allowlist_com.android.foo.xml")
|
||||
overrideApp.Output("out/soong/target/product/test_device/system/etc/permissions/privapp_allowlist_com.google.android.foo.xml")
|
||||
}
|
||||
|
||||
func TestPrivappAllowlistAndroidMk(t *testing.T) {
|
||||
result := android.GroupFixturePreparers(
|
||||
PrepareForTestWithJavaDefaultModules,
|
||||
android.PrepareForTestWithAndroidMk,
|
||||
).RunTestWithBp(
|
||||
t,
|
||||
`
|
||||
android_app {
|
||||
name: "foo",
|
||||
srcs: ["a.java"],
|
||||
privapp_allowlist: "privapp_allowlist_com.android.foo.xml",
|
||||
privileged: true,
|
||||
sdk_version: "current",
|
||||
}
|
||||
override_android_app {
|
||||
name: "bar",
|
||||
base: "foo",
|
||||
package_name: "com.google.android.foo",
|
||||
}
|
||||
`,
|
||||
)
|
||||
baseApp := result.ModuleForTests("foo", "android_common")
|
||||
overrideApp := result.ModuleForTests("foo", "android_common_bar")
|
||||
|
||||
baseAndroidApp := baseApp.Module().(*AndroidApp)
|
||||
baseEntries := android.AndroidMkEntriesForTest(t, result.TestContext, baseAndroidApp)[0]
|
||||
android.AssertStringMatches(
|
||||
t,
|
||||
"androidmk has incorrect LOCAL_SOONG_INSTALLED_MODULE; expected to find foo.apk",
|
||||
baseEntries.EntryMap["LOCAL_SOONG_INSTALLED_MODULE"][0],
|
||||
"\\S+foo.apk",
|
||||
)
|
||||
android.AssertStringMatches(
|
||||
t,
|
||||
"androidmk has incorrect LOCAL_SOONG_INSTALL_PAIRS; expected to it to include foo.apk",
|
||||
baseEntries.EntryMap["LOCAL_SOONG_INSTALL_PAIRS"][0],
|
||||
"\\S+foo.apk",
|
||||
)
|
||||
android.AssertStringMatches(
|
||||
t,
|
||||
"androidmk has incorrect LOCAL_SOONG_INSTALL_PAIRS; expected to it to include app",
|
||||
baseEntries.EntryMap["LOCAL_SOONG_INSTALL_PAIRS"][0],
|
||||
"\\S+foo.apk:\\S+/target/product/test_device/system/priv-app/foo/foo.apk",
|
||||
)
|
||||
android.AssertStringMatches(
|
||||
t,
|
||||
"androidmk has incorrect LOCAL_SOONG_INSTALL_PAIRS; expected to it to include privapp_allowlist",
|
||||
baseEntries.EntryMap["LOCAL_SOONG_INSTALL_PAIRS"][0],
|
||||
"privapp_allowlist_com.android.foo.xml:\\S+/target/product/test_device/system/etc/permissions/privapp_allowlist_com.android.foo.xml",
|
||||
)
|
||||
|
||||
overrideAndroidApp := overrideApp.Module().(*AndroidApp)
|
||||
overrideEntries := android.AndroidMkEntriesForTest(t, result.TestContext, overrideAndroidApp)[0]
|
||||
android.AssertStringMatches(
|
||||
t,
|
||||
"androidmk has incorrect LOCAL_SOONG_INSTALLED_MODULE; expected to find bar.apk",
|
||||
overrideEntries.EntryMap["LOCAL_SOONG_INSTALLED_MODULE"][0],
|
||||
"\\S+bar.apk",
|
||||
)
|
||||
android.AssertStringMatches(
|
||||
t,
|
||||
"androidmk has incorrect LOCAL_SOONG_INSTALL_PAIRS; expected to it to include bar.apk",
|
||||
overrideEntries.EntryMap["LOCAL_SOONG_INSTALL_PAIRS"][0],
|
||||
"\\S+bar.apk",
|
||||
)
|
||||
android.AssertStringMatches(
|
||||
t,
|
||||
"androidmk has incorrect LOCAL_SOONG_INSTALL_PAIRS; expected to it to include app",
|
||||
overrideEntries.EntryMap["LOCAL_SOONG_INSTALL_PAIRS"][0],
|
||||
"\\S+bar.apk:\\S+/target/product/test_device/system/priv-app/bar/bar.apk",
|
||||
)
|
||||
android.AssertStringMatches(
|
||||
t,
|
||||
"androidmk has incorrect LOCAL_SOONG_INSTALL_PAIRS; expected to it to include privapp_allowlist",
|
||||
overrideEntries.EntryMap["LOCAL_SOONG_INSTALL_PAIRS"][0],
|
||||
"\\S+soong/.intermediates/foo/android_common_bar/privapp_allowlist_com.google.android.foo.xml:\\S+/target/product/test_device/system/etc/permissions/privapp_allowlist_com.google.android.foo.xml",
|
||||
)
|
||||
}
|
||||
|
Reference in New Issue
Block a user