Collect permitted packages from java_sdk_library instances
Switching an updatable boot jar from java_library to java_sdk_library changed the contents of the updatable-bcp-packages.txt due to the code requiring the module to be *Library. This change updates that to allow it to be any module that implements the PermittedPackagesForUpdatableBootJars interface which is *Library and anything that embeds that like *SdkLibrary. Bug: 155164730 Test: m droid and check the contents of system/etc/updatable-bcp-packages.txt Change-Id: I464af74628da311734f102f77ec8158daec5b32d
This commit is contained in:
parent
75ab309e33
commit
e739f1ed9f
2 changed files with 13 additions and 2 deletions
|
@ -619,10 +619,10 @@ func updatableBcpPackagesRule(ctx android.SingletonContext, image *bootImageConf
|
|||
// Collect `permitted_packages` for updatable boot jars.
|
||||
var updatablePackages []string
|
||||
ctx.VisitAllModules(func(module android.Module) {
|
||||
if j, ok := module.(*Library); ok {
|
||||
if j, ok := module.(PermittedPackagesForUpdatableBootJars); ok {
|
||||
name := ctx.ModuleName(module)
|
||||
if i := android.IndexList(name, updatableModules); i != -1 {
|
||||
pp := j.properties.Permitted_packages
|
||||
pp := j.PermittedPackagesForUpdatableBootJars()
|
||||
if len(pp) > 0 {
|
||||
updatablePackages = append(updatablePackages, pp...)
|
||||
} else {
|
||||
|
|
11
java/java.go
11
java/java.go
|
@ -1840,6 +1840,17 @@ type Library struct {
|
|||
InstallMixin func(ctx android.ModuleContext, installPath android.Path) (extraInstallDeps android.Paths)
|
||||
}
|
||||
|
||||
// Provides access to the list of permitted packages from updatable boot jars.
|
||||
type PermittedPackagesForUpdatableBootJars interface {
|
||||
PermittedPackagesForUpdatableBootJars() []string
|
||||
}
|
||||
|
||||
var _ PermittedPackagesForUpdatableBootJars = (*Library)(nil)
|
||||
|
||||
func (j *Library) PermittedPackagesForUpdatableBootJars() []string {
|
||||
return j.properties.Permitted_packages
|
||||
}
|
||||
|
||||
func shouldUncompressDex(ctx android.ModuleContext, dexpreopter *dexpreopter) bool {
|
||||
// Store uncompressed (and aligned) any dex files from jars in APEXes.
|
||||
if am, ok := ctx.Module().(android.ApexModule); ok && !am.IsForPlatform() {
|
||||
|
|
Loading…
Reference in a new issue