Remove "flattened" apexes
Now soong doesn't build "flattened" apexes.
Bug: 279835185
Test: m nothing (soong tests)
Test: m && launch_cvd (cuttlefish)
Change-Id: Id3c540ece1a15cecacc185da9aa17285edd2f493
diff --git a/apex/builder.go b/apex/builder.go
index a2fe2a0..db66a72 100644
--- a/apex/builder.go
+++ b/apex/builder.go
@@ -382,23 +382,6 @@
rule.Command().Text("echo").Text("/apex_manifest\\\\.pb").Text(forceLabel).Text(">>").Output(output)
rule.Command().Text("echo").Text("/").Text(forceLabel).Text(">>").Output(output)
}
- case flattenedApex:
- // For flattened apexes, install path should be prepended.
- // File_contexts file should be emiited to make via LOCAL_FILE_CONTEXTS
- // so that it can be merged into file_contexts.bin
- apexPath := android.InstallPathToOnDevicePath(ctx, a.installDir.Join(ctx, a.Name()))
- apexPath = strings.ReplaceAll(apexPath, ".", `\\.`)
- // remove old file
- rule.Command().Text("rm").FlagWithOutput("-f ", output)
- // copy file_contexts
- rule.Command().Text("awk").Text(`'/object_r/{printf("` + apexPath + `%s\n", $0)}'`).Input(fileContexts).Text(">").Output(output)
- // new line
- rule.Command().Text("echo").Text(">>").Output(output)
- if !useFileContextsAsIs {
- // force-label /apex_manifest.pb and /
- rule.Command().Text("echo").Text(apexPath + "/apex_manifest\\\\.pb").Text(forceLabel).Text(">>").Output(output)
- rule.Command().Text("echo").Text(apexPath + "/").Text(forceLabel).Text(">>").Output(output)
- }
default:
panic(fmt.Errorf("unsupported type %v", a.properties.ApexType))
}
@@ -479,8 +462,8 @@
})
}
-// buildUnflattendApex creates build rules to build an APEX using apexer.
-func (a *apexBundle) buildUnflattenedApex(ctx android.ModuleContext) {
+// buildApex creates build rules to build an APEX using apexer.
+func (a *apexBundle) buildApex(ctx android.ModuleContext) {
apexType := a.properties.ApexType
suffix := apexType.suffix()
apexName := a.BaseModuleName()
@@ -963,49 +946,6 @@
a.installedFilesFile = a.buildInstalledFilesFile(ctx, a.outputFile, imageDir)
}
-// buildFlattenedApex creates rules for a flattened APEX. Flattened APEX actually doesn't have a
-// single output file. It is a phony target for all the files under /system/apex/<name> directory.
-// This function creates the installation rules for the files.
-func (a *apexBundle) buildFlattenedApex(ctx android.ModuleContext) {
- bundleName := a.Name()
- installedSymlinks := append(android.InstallPaths(nil), a.compatSymlinks...)
- if a.installable() {
- for _, fi := range a.filesInfo {
- dir := filepath.Join("apex", bundleName, fi.installDir)
- installDir := android.PathForModuleInstall(ctx, dir)
- if a.linkToSystemLib && fi.transitiveDep && fi.availableToPlatform() {
- pathOnDevice := filepath.Join("/", fi.partition, fi.path())
- installedSymlinks = append(installedSymlinks,
- ctx.InstallAbsoluteSymlink(installDir, fi.stem(), pathOnDevice))
- } else {
- if fi.class == appSet {
- as := fi.module.(*java.AndroidAppSet)
- ctx.InstallFileWithExtraFilesZip(installDir, as.BaseModuleName()+".apk",
- as.OutputFile(), as.PackedAdditionalOutputs())
- } else {
- target := ctx.InstallFile(installDir, fi.stem(), fi.builtFile)
- for _, sym := range fi.symlinks {
- installedSymlinks = append(installedSymlinks,
- ctx.InstallSymlink(installDir, sym, target))
- }
- }
- }
- }
-
- // Create install rules for the files added in GenerateAndroidBuildActions after
- // buildFlattenedApex is called. Add the links to system libs (if any) as dependencies
- // of the apex_manifest.pb file since it is always present.
- dir := filepath.Join("apex", bundleName)
- installDir := android.PathForModuleInstall(ctx, dir)
- ctx.InstallFile(installDir, "apex_manifest.pb", a.manifestPbOut, installedSymlinks.Paths()...)
- ctx.InstallFile(installDir, "apex_pubkey", a.publicKeyFile)
- }
-
- a.fileContexts = a.buildFileContexts(ctx)
-
- a.outputFile = android.PathForModuleInstall(ctx, "apex", bundleName)
-}
-
// getCertificateAndPrivateKey retrieves the cert and the private key that will be used to sign
// the zip container of this APEX. See the description of the 'certificate' property for how
// the cert and the private key are found.