Merge "Relax restriction on suffix of apex_set filename to include .capex"
This commit is contained in:
@@ -382,7 +382,7 @@ func (a *apexBundle) androidMkForType() android.AndroidMkData {
|
|||||||
fmt.Fprintln(w, "LOCAL_MODULE_PATH :=", a.installDir.ToMakePath().String())
|
fmt.Fprintln(w, "LOCAL_MODULE_PATH :=", a.installDir.ToMakePath().String())
|
||||||
stemSuffix := apexType.suffix()
|
stemSuffix := apexType.suffix()
|
||||||
if a.isCompressed {
|
if a.isCompressed {
|
||||||
stemSuffix = ".capex"
|
stemSuffix = imageCapexSuffix
|
||||||
}
|
}
|
||||||
fmt.Fprintln(w, "LOCAL_MODULE_STEM :=", name+stemSuffix)
|
fmt.Fprintln(w, "LOCAL_MODULE_STEM :=", name+stemSuffix)
|
||||||
fmt.Fprintln(w, "LOCAL_UNINSTALLABLE_MODULE :=", !a.installable())
|
fmt.Fprintln(w, "LOCAL_UNINSTALLABLE_MODULE :=", !a.installable())
|
||||||
|
@@ -1153,6 +1153,7 @@ const (
|
|||||||
const (
|
const (
|
||||||
// File extensions of an APEX for different packaging methods
|
// File extensions of an APEX for different packaging methods
|
||||||
imageApexSuffix = ".apex"
|
imageApexSuffix = ".apex"
|
||||||
|
imageCapexSuffix = ".capex"
|
||||||
zipApexSuffix = ".zipapex"
|
zipApexSuffix = ".zipapex"
|
||||||
flattenedSuffix = ".flattened"
|
flattenedSuffix = ".flattened"
|
||||||
|
|
||||||
|
@@ -4640,6 +4640,35 @@ func TestPrebuiltFilenameOverride(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestApexSetFilenameOverride(t *testing.T) {
|
||||||
|
testApex(t, `
|
||||||
|
apex_set {
|
||||||
|
name: "com.company.android.myapex",
|
||||||
|
apex_name: "com.android.myapex",
|
||||||
|
set: "company-myapex.apks",
|
||||||
|
filename: "com.company.android.myapex.apex"
|
||||||
|
}
|
||||||
|
`).ModuleForTests("com.company.android.myapex", "android_common_com.android.myapex")
|
||||||
|
|
||||||
|
testApex(t, `
|
||||||
|
apex_set {
|
||||||
|
name: "com.company.android.myapex",
|
||||||
|
apex_name: "com.android.myapex",
|
||||||
|
set: "company-myapex.apks",
|
||||||
|
filename: "com.company.android.myapex.capex"
|
||||||
|
}
|
||||||
|
`).ModuleForTests("com.company.android.myapex", "android_common_com.android.myapex")
|
||||||
|
|
||||||
|
testApexError(t, `filename should end in .apex or .capex for apex_set`, `
|
||||||
|
apex_set {
|
||||||
|
name: "com.company.android.myapex",
|
||||||
|
apex_name: "com.android.myapex",
|
||||||
|
set: "company-myapex.apks",
|
||||||
|
filename: "some-random-suffix"
|
||||||
|
}
|
||||||
|
`)
|
||||||
|
}
|
||||||
|
|
||||||
func TestPrebuiltOverrides(t *testing.T) {
|
func TestPrebuiltOverrides(t *testing.T) {
|
||||||
ctx := testApex(t, `
|
ctx := testApex(t, `
|
||||||
prebuilt_apex {
|
prebuilt_apex {
|
||||||
|
@@ -786,7 +786,7 @@ func (a *apexBundle) buildUnflattenedApex(ctx android.ModuleContext) {
|
|||||||
|
|
||||||
if apexType == imageApex && (compressionEnabled || a.testOnlyShouldForceCompression()) {
|
if apexType == imageApex && (compressionEnabled || a.testOnlyShouldForceCompression()) {
|
||||||
a.isCompressed = true
|
a.isCompressed = true
|
||||||
unsignedCompressedOutputFile := android.PathForModuleOut(ctx, a.Name()+".capex.unsigned")
|
unsignedCompressedOutputFile := android.PathForModuleOut(ctx, a.Name()+imageCapexSuffix+".unsigned")
|
||||||
|
|
||||||
compressRule := android.NewRuleBuilder(pctx, ctx)
|
compressRule := android.NewRuleBuilder(pctx, ctx)
|
||||||
compressRule.Command().
|
compressRule.Command().
|
||||||
@@ -800,7 +800,7 @@ func (a *apexBundle) buildUnflattenedApex(ctx android.ModuleContext) {
|
|||||||
FlagWithOutput("--output ", unsignedCompressedOutputFile)
|
FlagWithOutput("--output ", unsignedCompressedOutputFile)
|
||||||
compressRule.Build("compressRule", "Generate unsigned compressed APEX file")
|
compressRule.Build("compressRule", "Generate unsigned compressed APEX file")
|
||||||
|
|
||||||
signedCompressedOutputFile := android.PathForModuleOut(ctx, a.Name()+".capex")
|
signedCompressedOutputFile := android.PathForModuleOut(ctx, a.Name()+imageCapexSuffix)
|
||||||
if ctx.Config().UseRBE() && ctx.Config().IsEnvTrue("RBE_SIGNAPK") {
|
if ctx.Config().UseRBE() && ctx.Config().IsEnvTrue("RBE_SIGNAPK") {
|
||||||
args["outCommaList"] = signedCompressedOutputFile.String()
|
args["outCommaList"] = signedCompressedOutputFile.String()
|
||||||
}
|
}
|
||||||
|
@@ -924,8 +924,8 @@ func (a *ApexSet) ApexInfoMutator(mctx android.TopDownMutatorContext) {
|
|||||||
|
|
||||||
func (a *ApexSet) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
func (a *ApexSet) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||||
a.installFilename = a.InstallFilename()
|
a.installFilename = a.InstallFilename()
|
||||||
if !strings.HasSuffix(a.installFilename, imageApexSuffix) {
|
if !strings.HasSuffix(a.installFilename, imageApexSuffix) && !strings.HasSuffix(a.installFilename, imageCapexSuffix) {
|
||||||
ctx.ModuleErrorf("filename should end in %s for apex_set", imageApexSuffix)
|
ctx.ModuleErrorf("filename should end in %s or %s for apex_set", imageApexSuffix, imageCapexSuffix)
|
||||||
}
|
}
|
||||||
|
|
||||||
inputApex := android.OptionalPathForModuleSrc(ctx, a.prebuiltCommonProperties.Selected_apex).Path()
|
inputApex := android.OptionalPathForModuleSrc(ctx, a.prebuiltCommonProperties.Selected_apex).Path()
|
||||||
|
Reference in New Issue
Block a user