Loading android/api_levels.go +2 −0 Original line number Diff line number Diff line Loading @@ -288,6 +288,8 @@ var FirstPackedRelocationsVersion = uncheckedFinalApiLevel(23) // a core-for-system-modules.jar for the module-lib API scope. var LastWithoutModuleLibCoreSystemModules = uncheckedFinalApiLevel(31) var ApiLevelR = uncheckedFinalApiLevel(30) // ReplaceFinalizedCodenames returns the API level number associated with that API level // if the `raw` input is the codename of an API level has been finalized. // If the input is *not* a finalized codename, the input is returned unmodified. Loading apex/platform_bootclasspath_test.go +7 −5 Original line number Diff line number Diff line Loading @@ -86,6 +86,7 @@ func TestPlatformBootclasspath_Fragments(t *testing.T) { "bar-fragment", ], updatable: false, min_sdk_version: "30", // R } apex_key { Loading Loading @@ -138,6 +139,7 @@ func TestPlatformBootclasspath_Fragments(t *testing.T) { sdk_version: "none", compile_dex: true, permitted_packages: ["bar"], min_sdk_version: "30", // R } java_sdk_library { Loading @@ -162,12 +164,12 @@ func TestPlatformBootclasspath_Fragments(t *testing.T) { android.AssertPathsRelativeToTopEquals(t, message, expected, info.FlagsFilesByCategory[category]) } android.AssertPathsRelativeToTopEquals(t, "annotation flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex10000/modular-hiddenapi/annotation-flags.csv"}, info.AnnotationFlagsPaths) android.AssertPathsRelativeToTopEquals(t, "metadata flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex10000/modular-hiddenapi/metadata.csv"}, info.MetadataPaths) android.AssertPathsRelativeToTopEquals(t, "index flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex10000/modular-hiddenapi/index.csv"}, info.IndexPaths) android.AssertPathsRelativeToTopEquals(t, "annotation flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex30/modular-hiddenapi/annotation-flags.csv"}, info.AnnotationFlagsPaths) android.AssertPathsRelativeToTopEquals(t, "metadata flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex30/modular-hiddenapi/metadata.csv"}, info.MetadataPaths) android.AssertPathsRelativeToTopEquals(t, "index flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex30/modular-hiddenapi/index.csv"}, info.IndexPaths) android.AssertArrayString(t, "stub flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex10000/modular-hiddenapi/filtered-stub-flags.csv:out/soong/.intermediates/bar-fragment/android_common_apex10000/modular-hiddenapi/signature-patterns.csv"}, info.StubFlagSubsets.RelativeToTop()) android.AssertArrayString(t, "all flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex10000/modular-hiddenapi/filtered-flags.csv:out/soong/.intermediates/bar-fragment/android_common_apex10000/modular-hiddenapi/signature-patterns.csv"}, info.FlagSubsets.RelativeToTop()) android.AssertArrayString(t, "stub flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex30/modular-hiddenapi/filtered-stub-flags.csv:out/soong/.intermediates/bar-fragment/android_common_apex30/modular-hiddenapi/signature-patterns.csv"}, info.StubFlagSubsets.RelativeToTop()) android.AssertArrayString(t, "all flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex30/modular-hiddenapi/filtered-flags.csv:out/soong/.intermediates/bar-fragment/android_common_apex30/modular-hiddenapi/signature-patterns.csv"}, info.FlagSubsets.RelativeToTop()) } // TestPlatformBootclasspath_LegacyPrebuiltFragment verifies that the Loading java/hiddenapi_monolithic.go +15 −4 Original line number Diff line number Diff line Loading @@ -68,7 +68,7 @@ func newMonolithicHiddenAPIInfo(ctx android.ModuleContext, flagFilesByCategory F case *ClasspathFragmentElement: fragment := e.Module() if info, ok := android.OtherModuleProvider(ctx, fragment, HiddenAPIInfoProvider); ok { monolithicInfo.append(&info) monolithicInfo.append(ctx, fragment, &info) } else { ctx.ModuleErrorf("%s does not provide hidden API information", fragment) } Loading @@ -79,14 +79,25 @@ func newMonolithicHiddenAPIInfo(ctx android.ModuleContext, flagFilesByCategory F } // append appends all the files from the supplied info to the corresponding files in this struct. func (i *MonolithicHiddenAPIInfo) append(other *HiddenAPIInfo) { func (i *MonolithicHiddenAPIInfo) append(ctx android.ModuleContext, otherModule android.Module, other *HiddenAPIInfo) { i.FlagsFilesByCategory.append(other.FlagFilesByCategory) i.AnnotationFlagsPaths = append(i.AnnotationFlagsPaths, other.AnnotationFlagsPath) i.MetadataPaths = append(i.MetadataPaths, other.MetadataPath) i.IndexPaths = append(i.IndexPaths, other.IndexPath) apexInfo, ok := android.OtherModuleProvider(ctx, otherModule, android.ApexInfoProvider) if !ok { ctx.ModuleErrorf("Could not determine min_version_version of %s\n", otherModule.Name()) return } if apexInfo.MinSdkVersion.LessThanOrEqualTo(android.ApiLevelR) { // Restrict verify_overlaps to R and older modules. // The runtime in S does not have the same restriction that // requires the hiddenapi flags to be generated in a monolithic // invocation. i.StubFlagSubsets = append(i.StubFlagSubsets, other.StubFlagSubset()) i.FlagSubsets = append(i.FlagSubsets, other.FlagSubset()) } } var MonolithicHiddenAPIInfoProvider = blueprint.NewProvider[MonolithicHiddenAPIInfo]() Loading
android/api_levels.go +2 −0 Original line number Diff line number Diff line Loading @@ -288,6 +288,8 @@ var FirstPackedRelocationsVersion = uncheckedFinalApiLevel(23) // a core-for-system-modules.jar for the module-lib API scope. var LastWithoutModuleLibCoreSystemModules = uncheckedFinalApiLevel(31) var ApiLevelR = uncheckedFinalApiLevel(30) // ReplaceFinalizedCodenames returns the API level number associated with that API level // if the `raw` input is the codename of an API level has been finalized. // If the input is *not* a finalized codename, the input is returned unmodified. Loading
apex/platform_bootclasspath_test.go +7 −5 Original line number Diff line number Diff line Loading @@ -86,6 +86,7 @@ func TestPlatformBootclasspath_Fragments(t *testing.T) { "bar-fragment", ], updatable: false, min_sdk_version: "30", // R } apex_key { Loading Loading @@ -138,6 +139,7 @@ func TestPlatformBootclasspath_Fragments(t *testing.T) { sdk_version: "none", compile_dex: true, permitted_packages: ["bar"], min_sdk_version: "30", // R } java_sdk_library { Loading @@ -162,12 +164,12 @@ func TestPlatformBootclasspath_Fragments(t *testing.T) { android.AssertPathsRelativeToTopEquals(t, message, expected, info.FlagsFilesByCategory[category]) } android.AssertPathsRelativeToTopEquals(t, "annotation flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex10000/modular-hiddenapi/annotation-flags.csv"}, info.AnnotationFlagsPaths) android.AssertPathsRelativeToTopEquals(t, "metadata flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex10000/modular-hiddenapi/metadata.csv"}, info.MetadataPaths) android.AssertPathsRelativeToTopEquals(t, "index flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex10000/modular-hiddenapi/index.csv"}, info.IndexPaths) android.AssertPathsRelativeToTopEquals(t, "annotation flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex30/modular-hiddenapi/annotation-flags.csv"}, info.AnnotationFlagsPaths) android.AssertPathsRelativeToTopEquals(t, "metadata flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex30/modular-hiddenapi/metadata.csv"}, info.MetadataPaths) android.AssertPathsRelativeToTopEquals(t, "index flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex30/modular-hiddenapi/index.csv"}, info.IndexPaths) android.AssertArrayString(t, "stub flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex10000/modular-hiddenapi/filtered-stub-flags.csv:out/soong/.intermediates/bar-fragment/android_common_apex10000/modular-hiddenapi/signature-patterns.csv"}, info.StubFlagSubsets.RelativeToTop()) android.AssertArrayString(t, "all flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex10000/modular-hiddenapi/filtered-flags.csv:out/soong/.intermediates/bar-fragment/android_common_apex10000/modular-hiddenapi/signature-patterns.csv"}, info.FlagSubsets.RelativeToTop()) android.AssertArrayString(t, "stub flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex30/modular-hiddenapi/filtered-stub-flags.csv:out/soong/.intermediates/bar-fragment/android_common_apex30/modular-hiddenapi/signature-patterns.csv"}, info.StubFlagSubsets.RelativeToTop()) android.AssertArrayString(t, "all flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex30/modular-hiddenapi/filtered-flags.csv:out/soong/.intermediates/bar-fragment/android_common_apex30/modular-hiddenapi/signature-patterns.csv"}, info.FlagSubsets.RelativeToTop()) } // TestPlatformBootclasspath_LegacyPrebuiltFragment verifies that the Loading
java/hiddenapi_monolithic.go +15 −4 Original line number Diff line number Diff line Loading @@ -68,7 +68,7 @@ func newMonolithicHiddenAPIInfo(ctx android.ModuleContext, flagFilesByCategory F case *ClasspathFragmentElement: fragment := e.Module() if info, ok := android.OtherModuleProvider(ctx, fragment, HiddenAPIInfoProvider); ok { monolithicInfo.append(&info) monolithicInfo.append(ctx, fragment, &info) } else { ctx.ModuleErrorf("%s does not provide hidden API information", fragment) } Loading @@ -79,14 +79,25 @@ func newMonolithicHiddenAPIInfo(ctx android.ModuleContext, flagFilesByCategory F } // append appends all the files from the supplied info to the corresponding files in this struct. func (i *MonolithicHiddenAPIInfo) append(other *HiddenAPIInfo) { func (i *MonolithicHiddenAPIInfo) append(ctx android.ModuleContext, otherModule android.Module, other *HiddenAPIInfo) { i.FlagsFilesByCategory.append(other.FlagFilesByCategory) i.AnnotationFlagsPaths = append(i.AnnotationFlagsPaths, other.AnnotationFlagsPath) i.MetadataPaths = append(i.MetadataPaths, other.MetadataPath) i.IndexPaths = append(i.IndexPaths, other.IndexPath) apexInfo, ok := android.OtherModuleProvider(ctx, otherModule, android.ApexInfoProvider) if !ok { ctx.ModuleErrorf("Could not determine min_version_version of %s\n", otherModule.Name()) return } if apexInfo.MinSdkVersion.LessThanOrEqualTo(android.ApiLevelR) { // Restrict verify_overlaps to R and older modules. // The runtime in S does not have the same restriction that // requires the hiddenapi flags to be generated in a monolithic // invocation. i.StubFlagSubsets = append(i.StubFlagSubsets, other.StubFlagSubset()) i.FlagSubsets = append(i.FlagSubsets, other.FlagSubset()) } } var MonolithicHiddenAPIInfoProvider = blueprint.NewProvider[MonolithicHiddenAPIInfo]()