Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 069010cc authored by Sam Delmerico's avatar Sam Delmerico
Browse files

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
Change-Id: I0f137e34cae3478dc8b9178d138121ff1d936f07
parent fa946f7d
Loading
Loading
Loading
Loading
+1 −2
Original line number Original line Diff line number Diff line
@@ -6222,8 +6222,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" ],
		}
		}
+9 −1
Original line number Original line Diff line number Diff line
@@ -620,13 +620,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
+6 −12
Original line number Original line Diff line number Diff line
@@ -3555,9 +3555,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 {
@@ -3570,17 +3569,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