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

Commit f854d3e4 authored by Paul Duffin's avatar Paul Duffin Committed by Gerrit Code Review
Browse files

Merge "Support libraries (not just boot jars) that have hiddenapi"

parents 39b31fa0 e5b5657f
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -33,7 +33,12 @@ var (
	DefaultLambdaStubsLibrary     = "core-lambda-stubs"
	SdkLambdaStubsPath            = "prebuilts/sdk/tools/core-lambda-stubs.jar"

	// A list of the jars that provide information about usages of the hidden API.
	// A list of the non-boot jars that provide hidden APIs, i.e. libraries.
	HiddenAPIProvidingNonBootJars = []string{
		"android.test.base",
	}

	// A list of the non-boot jars that provide information about usages of the hidden API.
	HiddenAPIExtraAppUsageJars = []string{
		// The core-oj-hiddenapi provides information for the core-oj jar.
		"core-oj-hiddenapi",
+12 −2
Original line number Diff line number Diff line
@@ -59,7 +59,14 @@ func (h *hiddenAPI) hiddenAPI(ctx android.ModuleContext, dexJar android.ModuleOu

	if !ctx.Config().IsEnvTrue("UNSAFE_DISABLE_HIDDENAPI_FLAGS") {
		isBootJar := inList(ctx.ModuleName(), ctx.Config().BootJars())
		if isBootJar || inList(ctx.ModuleName(), config.HiddenAPIExtraAppUsageJars) {
		// Check to see if this module provides part of the hiddenapi, i.e. is a boot jar or a white listed
		// library.
		isProvidingJar := isBootJar || inList(ctx.ModuleName(), config.HiddenAPIProvidingNonBootJars)

		// If this module provides part of the hiddenapi or is a special module that simply provides information
		// about the hiddenapi then extract information about the hiddenapi from the UnsupportedAppUsage
		// annotations compiled into the classes.jar.
		if isProvidingJar || inList(ctx.ModuleName(), config.HiddenAPIExtraAppUsageJars) {
			// Derive the greylist from classes jar.
			flagsCSV := android.PathForModuleOut(ctx, "hiddenapi", "flags.csv")
			metadataCSV := android.PathForModuleOut(ctx, "hiddenapi", "metadata.csv")
@@ -67,7 +74,10 @@ func (h *hiddenAPI) hiddenAPI(ctx android.ModuleContext, dexJar android.ModuleOu
			h.flagsCSVPath = flagsCSV
			h.metadataCSVPath = metadataCSV
		}
		if isBootJar {

		// If this module provides part of the hiddenapi then encode the information about the hiddenapi into
		// the dex file created for this module.
		if isProvidingJar {
			hiddenAPIJar := android.PathForModuleOut(ctx, "hiddenapi", ctx.ModuleName()+".jar")
			h.bootDexJarPath = dexJar
			hiddenAPIEncodeDex(ctx, hiddenAPIJar, dexJar, uncompressDex)