Fix the unbundled mainline module build
This change fixes two problems: 1) the prebuilt apexes are force disabled for the unbundled builds because we need to build the modules from the source then 2) the dependencies from an sdk_library module to *.stubs.{public|system|tests} are not added for the unbundled build because the stubs modules are disabled. Bug: 137282010 Test: unbundled mainline builds are successful Test: build com.android.media and inspect the jar file to see if hiddenapi flags are there $ cd out/dist/mainline_modules_arm $ unzip com.android.media.apex apex_payload.img $ mkdir -p mnt $ sudo mount -o ro,loop apex_payload.img mnt $ dexdump2 mnt/javalib/updatable-media.jar | grep hiddenapi shows results Change-Id: I2c00af07aac4a15770d3acab011a36e2e4803bfc
This commit is contained in:
parent
09cb629c15
commit
e3ef3c8f0c
3 changed files with 16 additions and 8 deletions
11
apex/apex.go
11
apex/apex.go
|
@ -1433,10 +1433,13 @@ func (p *Prebuilt) installable() bool {
|
|||
}
|
||||
|
||||
func (p *Prebuilt) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
// If the device is configured to use flattened APEX, don't set
|
||||
// p.properties.Source so that the prebuilt module (which is
|
||||
// a non-flattened APEX) is not used.
|
||||
forceDisable := ctx.Config().FlattenApex() && !ctx.Config().UnbundledBuild()
|
||||
// If the device is configured to use flattened APEX, force disable the prebuilt because
|
||||
// the prebuilt is a non-flattened one.
|
||||
forceDisable := ctx.Config().FlattenApex()
|
||||
|
||||
// Force disable the prebuilts when we are doing unbundled build. We do unbundled build
|
||||
// to build the prebuilts themselves.
|
||||
forceDisable = forceDisable || !ctx.Config().UnbundledBuild()
|
||||
|
||||
// b/137216042 don't use prebuilts when address sanitizer is on
|
||||
forceDisable = forceDisable || android.InList("address", ctx.Config().SanitizeDevice()) ||
|
||||
|
|
|
@ -97,7 +97,7 @@ func stubFlagsRule(ctx android.SingletonContext) {
|
|||
// Add the android.test.base to the set of stubs only if the android.test.base module is on
|
||||
// the boot jars list as the runtime will only enforce hiddenapi access against modules on
|
||||
// that list.
|
||||
if inList("android.test.base", ctx.Config().BootJars()) {
|
||||
if inList("android.test.base", ctx.Config().BootJars()) && !ctx.Config().UnbundledBuildUsePrebuiltSdks() {
|
||||
publicStubModules = append(publicStubModules, "android.test.base.stubs")
|
||||
}
|
||||
|
||||
|
|
|
@ -149,16 +149,21 @@ var _ Dependency = (*SdkLibrary)(nil)
|
|||
var _ SdkLibraryDependency = (*SdkLibrary)(nil)
|
||||
|
||||
func (module *SdkLibrary) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
useBuiltStubs := !ctx.Config().UnbundledBuildUsePrebuiltSdks()
|
||||
// Add dependencies to the stubs library
|
||||
ctx.AddVariationDependencies(nil, publicApiStubsTag, module.stubsName(apiScopePublic))
|
||||
if useBuiltStubs {
|
||||
ctx.AddVariationDependencies(nil, publicApiStubsTag, module.stubsName(apiScopePublic))
|
||||
}
|
||||
ctx.AddVariationDependencies(nil, publicApiFileTag, module.docsName(apiScopePublic))
|
||||
|
||||
sdkDep := decodeSdkDep(ctx, sdkContext(&module.Library))
|
||||
if sdkDep.hasStandardLibs() {
|
||||
ctx.AddVariationDependencies(nil, systemApiStubsTag, module.stubsName(apiScopeSystem))
|
||||
if useBuiltStubs {
|
||||
ctx.AddVariationDependencies(nil, systemApiStubsTag, module.stubsName(apiScopeSystem))
|
||||
ctx.AddVariationDependencies(nil, testApiStubsTag, module.stubsName(apiScopeTest))
|
||||
}
|
||||
ctx.AddVariationDependencies(nil, systemApiFileTag, module.docsName(apiScopeSystem))
|
||||
ctx.AddVariationDependencies(nil, testApiFileTag, module.docsName(apiScopeTest))
|
||||
ctx.AddVariationDependencies(nil, testApiStubsTag, module.stubsName(apiScopeTest))
|
||||
}
|
||||
|
||||
module.Library.deps(ctx)
|
||||
|
|
Loading…
Reference in a new issue