Allow for setting a logging_parent for an Android App.
Unit test: go test ./... -test.v -run TestOverrideAndroidApp Unit test: python manifest_fixer_test.py BUG: 148198056 Change-Id: Ib5ff235d2a93e88b86aec1c0b16327ea938a094d
This commit is contained in:
@@ -101,6 +101,7 @@ type aapt struct {
|
||||
usesNonSdkApis bool
|
||||
sdkLibraries []string
|
||||
hasNoCode bool
|
||||
LoggingParent string
|
||||
|
||||
splitNames []string
|
||||
splits []split
|
||||
@@ -241,7 +242,8 @@ func (a *aapt) buildActions(ctx android.ModuleContext, sdkContext sdkContext, ex
|
||||
manifestSrcPath := android.PathForModuleSrc(ctx, manifestFile)
|
||||
|
||||
manifestPath := manifestFixer(ctx, manifestSrcPath, sdkContext, sdkLibraries,
|
||||
a.isLibrary, a.useEmbeddedNativeLibs, a.usesNonSdkApis, a.useEmbeddedDex, a.hasNoCode)
|
||||
a.isLibrary, a.useEmbeddedNativeLibs, a.usesNonSdkApis, a.useEmbeddedDex, a.hasNoCode,
|
||||
a.LoggingParent)
|
||||
|
||||
// Add additional manifest files to transitive manifests.
|
||||
additionalManifests := android.PathsForModuleSrc(ctx, a.aaptProperties.Additional_manifests)
|
||||
|
@@ -53,7 +53,7 @@ var optionalUsesLibs = []string{
|
||||
|
||||
// Uses manifest_fixer.py to inject minSdkVersion, etc. into an AndroidManifest.xml
|
||||
func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext sdkContext, sdkLibraries []string,
|
||||
isLibrary, useEmbeddedNativeLibs, usesNonSdkApis, useEmbeddedDex, hasNoCode bool) android.Path {
|
||||
isLibrary, useEmbeddedNativeLibs, usesNonSdkApis, useEmbeddedDex, hasNoCode bool, loggingParent string) android.Path {
|
||||
|
||||
var args []string
|
||||
if isLibrary {
|
||||
@@ -91,6 +91,9 @@ func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext
|
||||
args = append(args, "--has-no-code")
|
||||
}
|
||||
|
||||
if loggingParent != "" {
|
||||
args = append(args, "--logging-parent", loggingParent)
|
||||
}
|
||||
var deps android.Paths
|
||||
targetSdkVersion, err := sdkContext.targetSdkVersion().effectiveVersionString(ctx)
|
||||
if err != nil {
|
||||
|
@@ -111,6 +111,9 @@ type overridableAppProperties struct {
|
||||
|
||||
// the package name of this app. The package name in the manifest file is used if one was not given.
|
||||
Package_name *string
|
||||
|
||||
// the logging parent of this app.
|
||||
Logging_parent *string
|
||||
}
|
||||
|
||||
type AndroidApp struct {
|
||||
@@ -309,7 +312,7 @@ func (a *AndroidApp) aaptBuildActions(ctx android.ModuleContext) {
|
||||
|
||||
a.aapt.splitNames = a.appProperties.Package_splits
|
||||
a.aapt.sdkLibraries = a.exportedSdkLibs
|
||||
|
||||
a.aapt.LoggingParent = String(a.overridableAppProperties.Logging_parent)
|
||||
a.aapt.buildActions(ctx, sdkContext(a), aaptLinkFlags...)
|
||||
|
||||
// apps manifests are handled by aapt, don't let Module see them
|
||||
|
@@ -1181,6 +1181,7 @@ func TestOverrideAndroidApp(t *testing.T) {
|
||||
name: "bar",
|
||||
base: "foo",
|
||||
certificate: ":new_certificate",
|
||||
logging_parent: "bah",
|
||||
}
|
||||
|
||||
android_app_certificate {
|
||||
@@ -1196,37 +1197,41 @@ func TestOverrideAndroidApp(t *testing.T) {
|
||||
`)
|
||||
|
||||
expectedVariants := []struct {
|
||||
moduleName string
|
||||
variantName string
|
||||
apkName string
|
||||
apkPath string
|
||||
signFlag string
|
||||
overrides []string
|
||||
aaptFlag string
|
||||
moduleName string
|
||||
variantName string
|
||||
apkName string
|
||||
apkPath string
|
||||
signFlag string
|
||||
overrides []string
|
||||
aaptFlag string
|
||||
logging_parent string
|
||||
}{
|
||||
{
|
||||
moduleName: "foo",
|
||||
variantName: "android_common",
|
||||
apkPath: "/target/product/test_device/system/app/foo/foo.apk",
|
||||
signFlag: "build/make/target/product/security/expiredkey.x509.pem build/make/target/product/security/expiredkey.pk8",
|
||||
overrides: []string{"qux"},
|
||||
aaptFlag: "",
|
||||
moduleName: "foo",
|
||||
variantName: "android_common",
|
||||
apkPath: "/target/product/test_device/system/app/foo/foo.apk",
|
||||
signFlag: "build/make/target/product/security/expiredkey.x509.pem build/make/target/product/security/expiredkey.pk8",
|
||||
overrides: []string{"qux"},
|
||||
aaptFlag: "",
|
||||
logging_parent: "",
|
||||
},
|
||||
{
|
||||
moduleName: "bar",
|
||||
variantName: "android_common_bar",
|
||||
apkPath: "/target/product/test_device/system/app/bar/bar.apk",
|
||||
signFlag: "cert/new_cert.x509.pem cert/new_cert.pk8",
|
||||
overrides: []string{"qux", "foo"},
|
||||
aaptFlag: "",
|
||||
moduleName: "bar",
|
||||
variantName: "android_common_bar",
|
||||
apkPath: "/target/product/test_device/system/app/bar/bar.apk",
|
||||
signFlag: "cert/new_cert.x509.pem cert/new_cert.pk8",
|
||||
overrides: []string{"qux", "foo"},
|
||||
aaptFlag: "",
|
||||
logging_parent: "bah",
|
||||
},
|
||||
{
|
||||
moduleName: "baz",
|
||||
variantName: "android_common_baz",
|
||||
apkPath: "/target/product/test_device/system/app/baz/baz.apk",
|
||||
signFlag: "build/make/target/product/security/expiredkey.x509.pem build/make/target/product/security/expiredkey.pk8",
|
||||
overrides: []string{"qux", "foo"},
|
||||
aaptFlag: "--rename-manifest-package org.dandroid.bp",
|
||||
moduleName: "baz",
|
||||
variantName: "android_common_baz",
|
||||
apkPath: "/target/product/test_device/system/app/baz/baz.apk",
|
||||
signFlag: "build/make/target/product/security/expiredkey.x509.pem build/make/target/product/security/expiredkey.pk8",
|
||||
overrides: []string{"qux", "foo"},
|
||||
aaptFlag: "--rename-manifest-package org.dandroid.bp",
|
||||
logging_parent: "",
|
||||
},
|
||||
}
|
||||
for _, expected := range expectedVariants {
|
||||
@@ -1260,6 +1265,13 @@ func TestOverrideAndroidApp(t *testing.T) {
|
||||
expected.overrides, mod.appProperties.Overrides)
|
||||
}
|
||||
|
||||
// Test Overridable property: Logging_parent
|
||||
logging_parent := mod.aapt.LoggingParent
|
||||
if expected.logging_parent != logging_parent {
|
||||
t.Errorf("Incorrect overrides property value for logging parent, expected: %q, got: %q",
|
||||
expected.logging_parent, logging_parent)
|
||||
}
|
||||
|
||||
// Check the package renaming flag, if exists.
|
||||
res := variant.Output("package-res.apk")
|
||||
aapt2Flags := res.Args["flags"]
|
||||
|
Reference in New Issue
Block a user