Implement vendor snapshot
Vendor snapshot can be captured with "m dist vendor-snapshot". With
vendor snapshot and vndk snapshot, older version of /vendor and newer
version of /system will be able to be built together by setting
BOARD_VNDK_VERSION to past vendor's version.
Only vendor modules under AOSP are to be captured. In detail, modules
under following directories are ignored:
- device/
- vendor/
- hardware/, except for interfaces/, libhardware/, libhardware_legacy/,
and ril/
Test modules (cc_test, etc.) and sanitized modules are also ignored.
Bug: 65377115
Test: m dist vendor-snapshot
Change-Id: If7a2f6de7f36deee936930c0ccf7c47c4a0cebf6
diff --git a/android/module.go b/android/module.go
index 96c2e1e..0c732fb 100644
--- a/android/module.go
+++ b/android/module.go
@@ -215,6 +215,8 @@
InstallBypassMake() bool
SkipInstall()
ExportedToMake() bool
+ InitRc() Paths
+ VintfFragments() Paths
NoticeFile() OptionalPath
AddProperties(props ...interface{})
@@ -662,6 +664,9 @@
ruleParams map[blueprint.Rule]blueprint.RuleParams
variables map[string]string
+ initRcPaths Paths
+ vintfFragmentsPaths Paths
+
prefer32 func(ctx BaseModuleContext, base *ModuleBase, class OsClass) bool
}
@@ -932,6 +937,14 @@
return m.base().commonProperties.Target_required
}
+func (m *ModuleBase) InitRc() Paths {
+ return append(Paths{}, m.initRcPaths...)
+}
+
+func (m *ModuleBase) VintfFragments() Paths {
+ return append(Paths{}, m.vintfFragmentsPaths...)
+}
+
func (m *ModuleBase) generateModuleTarget(ctx ModuleContext) {
allInstalledFiles := Paths{}
allCheckbuildFiles := Paths{}
@@ -1148,6 +1161,8 @@
m.installFiles = append(m.installFiles, ctx.installFiles...)
m.checkbuildFiles = append(m.checkbuildFiles, ctx.checkbuildFiles...)
+ m.initRcPaths = PathsForModuleSrc(ctx, m.commonProperties.Init_rc)
+ m.vintfFragmentsPaths = PathsForModuleSrc(ctx, m.commonProperties.Vintf_fragments)
} else if ctx.Config().AllowMissingDependencies() {
// If the module is not enabled it will not create any build rules, nothing will call
// ctx.GetMissingDependencies(), and blueprint will consider the missing dependencies to be unhandled