don't require package_name for non-override android_apps
For a non-override android_app, we can assume that the privapp_allowlist already contains the correct package_name, and so we don't need to overwrite it in this case. Bug: 242509786 Test: go test Ignore-AOSP-First: need to submit here to update PermissionController in sync with internal version Merged-In: I0f137e34cae3478dc8b9178d138121ff1d936f07 Change-Id: I0f137e34cae3478dc8b9178d138121ff1d936f07
This commit is contained in:
committed by
Anton Hansson
parent
c53cfd54d9
commit
502d807ae9
@@ -6165,8 +6165,7 @@ func TestApexWithApps(t *testing.T) {
|
|||||||
sdk_version: "current",
|
sdk_version: "current",
|
||||||
system_modules: "none",
|
system_modules: "none",
|
||||||
privileged: true,
|
privileged: true,
|
||||||
privapp_allowlist: "perms.xml",
|
privapp_allowlist: "privapp_allowlist_com.android.AppFooPriv.xml",
|
||||||
package_name: "com.android.AppFooPriv",
|
|
||||||
stl: "none",
|
stl: "none",
|
||||||
apex_available: [ "myapex" ],
|
apex_available: [ "myapex" ],
|
||||||
}
|
}
|
||||||
|
10
java/app.go
10
java/app.go
@@ -621,13 +621,21 @@ func (a *AndroidApp) InstallApkName() string {
|
|||||||
return a.installApkName
|
return a.installApkName
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *AndroidApp) createPrivappAllowlist(ctx android.ModuleContext) *android.OutputPath {
|
func (a *AndroidApp) createPrivappAllowlist(ctx android.ModuleContext) android.Path {
|
||||||
if a.appProperties.Privapp_allowlist == nil {
|
if a.appProperties.Privapp_allowlist == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isOverrideApp := a.GetOverriddenBy() != ""
|
||||||
|
if !isOverrideApp {
|
||||||
|
// if this is not an override, we don't need to rewrite the existing privapp allowlist
|
||||||
|
return android.PathForModuleSrc(ctx, *a.appProperties.Privapp_allowlist)
|
||||||
|
}
|
||||||
|
|
||||||
if a.overridableAppProperties.Package_name == nil {
|
if a.overridableAppProperties.Package_name == nil {
|
||||||
ctx.PropertyErrorf("privapp_allowlist", "package_name must be set to use privapp_allowlist")
|
ctx.PropertyErrorf("privapp_allowlist", "package_name must be set to use privapp_allowlist")
|
||||||
}
|
}
|
||||||
|
|
||||||
packageName := *a.overridableAppProperties.Package_name
|
packageName := *a.overridableAppProperties.Package_name
|
||||||
fileName := "privapp_allowlist_" + packageName + ".xml"
|
fileName := "privapp_allowlist_" + packageName + ".xml"
|
||||||
outPath := android.PathForModuleOut(ctx, fileName).OutputPath
|
outPath := android.PathForModuleOut(ctx, fileName).OutputPath
|
||||||
|
@@ -3563,9 +3563,8 @@ func TestPrivappAllowlist(t *testing.T) {
|
|||||||
android_app {
|
android_app {
|
||||||
name: "foo",
|
name: "foo",
|
||||||
srcs: ["a.java"],
|
srcs: ["a.java"],
|
||||||
privapp_allowlist: "perms.xml",
|
privapp_allowlist: "privapp_allowlist_com.android.foo.xml",
|
||||||
privileged: true,
|
privileged: true,
|
||||||
package_name: "com.android.foo",
|
|
||||||
sdk_version: "current",
|
sdk_version: "current",
|
||||||
}
|
}
|
||||||
override_android_app {
|
override_android_app {
|
||||||
@@ -3578,17 +3577,12 @@ func TestPrivappAllowlist(t *testing.T) {
|
|||||||
app := result.ModuleForTests("foo", "android_common")
|
app := result.ModuleForTests("foo", "android_common")
|
||||||
overrideApp := result.ModuleForTests("foo", "android_common_bar")
|
overrideApp := result.ModuleForTests("foo", "android_common_bar")
|
||||||
|
|
||||||
// verify that privapp allowlist is created
|
// verify that privapp allowlist is created for override apps
|
||||||
app.Output("out/soong/.intermediates/foo/android_common/privapp_allowlist_com.android.foo.xml")
|
|
||||||
overrideApp.Output("out/soong/.intermediates/foo/android_common_bar/privapp_allowlist_com.google.android.foo.xml")
|
overrideApp.Output("out/soong/.intermediates/foo/android_common_bar/privapp_allowlist_com.google.android.foo.xml")
|
||||||
expectedAllowlist := "perms.xml"
|
expectedAllowlistInput := "privapp_allowlist_com.android.foo.xml"
|
||||||
actualAllowlist := app.Rule("modifyAllowlist").Input.String()
|
overrideActualAllowlistInput := overrideApp.Rule("modifyAllowlist").Input.String()
|
||||||
if expectedAllowlist != actualAllowlist {
|
if expectedAllowlistInput != overrideActualAllowlistInput {
|
||||||
t.Errorf("expected allowlist to be %q; got %q", expectedAllowlist, actualAllowlist)
|
t.Errorf("expected override allowlist to be %q; got %q", expectedAllowlistInput, overrideActualAllowlistInput)
|
||||||
}
|
|
||||||
overrideActualAllowlist := overrideApp.Rule("modifyAllowlist").Input.String()
|
|
||||||
if expectedAllowlist != overrideActualAllowlist {
|
|
||||||
t.Errorf("expected override allowlist to be %q; got %q", expectedAllowlist, overrideActualAllowlist)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// verify that permissions are copied to device
|
// verify that permissions are copied to device
|
||||||
|
Reference in New Issue
Block a user