Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit acfa26b5 authored by Spandan Das's avatar Spandan Das Committed by Gerrit Code Review
Browse files

Merge "Create an installation rule to copy vdex to common arch device directory" into main

parents 0ca0dd8e 71559430
Loading
Loading
Loading
Loading
+11 −14
Original line number Diff line number Diff line
@@ -943,20 +943,17 @@ func packageFileForTargetImage(ctx android.ModuleContext, image *bootImageVarian
	}

	for _, install := range image.vdexInstalls {
		if image.target.Arch.ArchType.Name != ctx.DeviceConfig().DeviceArch() {
			// Note that the vdex files are identical between architectures. If the target image is
			// not for the primary architecture create symlinks to share the vdex of the primary
			// architecture with the other architectures.
			//
			// Assuming that the install path has the architecture name with it, replace the
			// architecture name with the primary architecture name to find the source vdex file.
		installPath, relDir, name := getModuleInstallPathInfo(ctx, install.To)
			if name != "" {
				srcRelDir := strings.Replace(relDir, image.target.Arch.ArchType.Name, ctx.DeviceConfig().DeviceArch(), 1)
				ctx.InstallSymlink(installPath.Join(ctx, relDir), name, installPath.Join(ctx, srcRelDir, name))
		if name == "" {
			continue
		}
		} else {
			packageFile(ctx, install)
		// Note that the vdex files are identical between architectures. Copy the vdex to a no arch directory
		// and create symlinks for both the primary and secondary arches.
		ctx.InstallSymlink(installPath.Join(ctx, relDir), name, installPath.Join(ctx, "framework", name))
		if image.target.Arch.ArchType.Name == ctx.DeviceConfig().DeviceArch() {
			// Copy the vdex from the primary arch to the no-arch directory
			// e.g. /system/framework/$bootjar.vdex
			ctx.InstallFile(installPath.Join(ctx, "framework"), name, install.From)
		}
	}
}