From 5417f775e5823cb93fd0547c019fd78e6e3cfe70 Mon Sep 17 00:00:00 2001 From: Jooyung Han Date: Thu, 12 Mar 2020 18:37:20 +0900 Subject: [PATCH] apex: Deprecate legacy_android10_support prop min_sdk_version = 29 implies that the module should support Android10. Bug: 150431944 Test: m Change-Id: Iad90a239898f59456900ae7816b90379b1b43406 --- android/apex.go | 9 +++++---- apex/apex.go | 10 ++-------- apex/apex_test.go | 2 +- apex/builder.go | 16 ++++++++-------- 4 files changed, 16 insertions(+), 21 deletions(-) diff --git a/android/apex.go b/android/apex.go index eb7912323..eabe05944 100644 --- a/android/apex.go +++ b/android/apex.go @@ -21,13 +21,14 @@ import ( "sync" ) +const ( + SdkVersion_Android10 = 29 +) + type ApexInfo struct { // Name of the apex variant that this module is mutated into ApexName string - // Whether this apex variant needs to target Android 10 - LegacyAndroid10Support bool - MinSdkVersion int } @@ -207,7 +208,7 @@ func (m *ApexModuleBase) ChooseSdkVersion(versionList []string, useLatest bool) } func (m *ApexModuleBase) ShouldSupportAndroid10() bool { - return !m.IsForPlatform() && (m.ApexProperties.Info.MinSdkVersion <= 29 || m.ApexProperties.Info.LegacyAndroid10Support) + return !m.IsForPlatform() && (m.ApexProperties.Info.MinSdkVersion <= SdkVersion_Android10) } func (m *ApexModuleBase) checkApexAvailableProperty(mctx BaseModuleContext) { diff --git a/apex/apex.go b/apex/apex.go index cddd72b3c..c010d4e19 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -1059,11 +1059,9 @@ func apexDepsMutator(mctx android.TopDownMutatorContext) { var apexBundles []android.ApexInfo var directDep bool if a, ok := mctx.Module().(*apexBundle); ok && !a.vndkApex { - minSdkVersion := a.minSdkVersion(mctx) apexBundles = []android.ApexInfo{android.ApexInfo{ - ApexName: mctx.ModuleName(), - LegacyAndroid10Support: proptools.Bool(a.properties.Legacy_android10_support), - MinSdkVersion: minSdkVersion, + ApexName: mctx.ModuleName(), + MinSdkVersion: a.minSdkVersion(mctx), }} directDep = true } else if am, ok := mctx.Module().(android.ApexModule); ok { @@ -1307,10 +1305,6 @@ type apexBundleProperties struct { // Should be only used in tests#. Test_only_no_hashtree *bool - // Whether this APEX should support Android10. Default is false. If this is set true, then apex_manifest.json is bundled as well - // because Android10 requires legacy apex_manifest.json instead of apex_manifest.pb - Legacy_android10_support *bool - IsCoverageVariant bool `blueprint:"mutated"` // Whether this APEX is considered updatable or not. When set to true, this will enforce additional diff --git a/apex/apex_test.go b/apex/apex_test.go index ad9187890..b8e887836 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -3737,7 +3737,7 @@ func TestLegacyAndroid10Support(t *testing.T) { name: "myapex", key: "myapex.key", native_shared_libs: ["mylib"], - legacy_android10_support: true, + min_sdk_version: "29", } apex_key { diff --git a/apex/builder.go b/apex/builder.go index d7a20e422..552d907dd 100644 --- a/apex/builder.go +++ b/apex/builder.go @@ -20,6 +20,7 @@ import ( "path/filepath" "runtime" "sort" + "strconv" "strings" "android/soong/android" @@ -206,7 +207,7 @@ func (a *apexBundle) buildManifest(ctx android.ModuleContext, provideNativeLibs, }, }) - if proptools.Bool(a.properties.Legacy_android10_support) { + if a.minSdkVersion(ctx) == android.SdkVersion_Android10 { // b/143654022 Q apexd can't understand newly added keys in apex_manifest.json // prepare stripped-down version so that APEX modules built from R+ can be installed to Q a.manifestJsonOut = android.PathForModuleOut(ctx, "apex_manifest.json") @@ -355,7 +356,7 @@ func (a *apexBundle) buildUnflattenedApex(ctx android.ModuleContext) { var emitCommands []string imageContentFile := android.PathForModuleOut(ctx, "content.txt") emitCommands = append(emitCommands, "echo ./apex_manifest.pb >> "+imageContentFile.String()) - if proptools.Bool(a.properties.Legacy_android10_support) { + if a.minSdkVersion(ctx) == android.SdkVersion_Android10 { emitCommands = append(emitCommands, "echo ./apex_manifest.json >> "+imageContentFile.String()) } for _, fi := range a.filesInfo { @@ -454,10 +455,9 @@ func (a *apexBundle) buildUnflattenedApex(ctx android.ModuleContext) { targetSdkVersion := ctx.Config().DefaultAppTargetSdk() minSdkVersion := ctx.Config().DefaultAppTargetSdk() - // TODO: this should be based on min_sdk_version property of an APEX. - if proptools.Bool(a.properties.Legacy_android10_support) { - targetSdkVersion = "29" - minSdkVersion = "29" + if a.minSdkVersion(ctx) == android.SdkVersion_Android10 { + minSdkVersion = strconv.Itoa(a.minSdkVersion(ctx)) + targetSdkVersion = strconv.Itoa(a.minSdkVersion(ctx)) } if java.UseApiFingerprint(ctx) { @@ -486,7 +486,7 @@ func (a *apexBundle) buildUnflattenedApex(ctx android.ModuleContext) { ctx.PropertyErrorf("test_only_no_hashtree", "not available") return } - if !proptools.Bool(a.properties.Legacy_android10_support) || a.testOnlyShouldSkipHashtreeGeneration() { + if a.minSdkVersion(ctx) > android.SdkVersion_Android10 || a.testOnlyShouldSkipHashtreeGeneration() { // Apexes which are supposed to be installed in builtin dirs(/system, etc) // don't need hashtree for activation. Therefore, by removing hashtree from // apex bundle (filesystem image in it, to be specific), we can save storage. @@ -499,7 +499,7 @@ func (a *apexBundle) buildUnflattenedApex(ctx android.ModuleContext) { optFlags = append(optFlags, "--do_not_check_keyname") } - if proptools.Bool(a.properties.Legacy_android10_support) { + if a.minSdkVersion(ctx) == android.SdkVersion_Android10 { implicitInputs = append(implicitInputs, a.manifestJsonOut) optFlags = append(optFlags, "--manifest_json "+a.manifestJsonOut.String()) }