Allow apex to use generated file_contexts
To support trunk stable, file_contexts files should be processed before creating APEX images. That means that file_contexts may be under out/. This change relaxes the path check so we can use Soong-generated file_contexts, not only the real source file_contexts. Of course the restriction that modules should be under system/sepolicy is still enforced. Bug: 306563735 Test: build with generated file_contexts; see virt apex Change-Id: I3aa368b338141d4826fc8622e1c8d2838bfd8484
This commit is contained in:
@@ -344,10 +344,12 @@ func (a *apexBundle) buildManifest(ctx android.ModuleContext, provideNativeLibs,
|
||||
func (a *apexBundle) buildFileContexts(ctx android.ModuleContext) android.OutputPath {
|
||||
var fileContexts android.Path
|
||||
var fileContextsDir string
|
||||
isFileContextsModule := false
|
||||
if a.properties.File_contexts == nil {
|
||||
fileContexts = android.PathForSource(ctx, "system/sepolicy/apex", ctx.ModuleName()+"-file_contexts")
|
||||
} else {
|
||||
if m, t := android.SrcIsModuleWithTag(*a.properties.File_contexts); m != "" {
|
||||
isFileContextsModule = true
|
||||
otherModule := android.GetModuleFromPathDep(ctx, m, t)
|
||||
fileContextsDir = ctx.OtherModuleDir(otherModule)
|
||||
}
|
||||
@@ -363,7 +365,7 @@ func (a *apexBundle) buildFileContexts(ctx android.ModuleContext) android.Output
|
||||
ctx.PropertyErrorf("file_contexts", "should be under system/sepolicy, but found in %q", fileContextsDir)
|
||||
}
|
||||
}
|
||||
if !android.ExistentPathForSource(ctx, fileContexts.String()).Valid() {
|
||||
if !isFileContextsModule && !android.ExistentPathForSource(ctx, fileContexts.String()).Valid() {
|
||||
ctx.PropertyErrorf("file_contexts", "cannot find file_contexts file: %q", fileContexts.String())
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user