Add armv8-aarch64 mkenvimage
The cvd-host.tar.gz tools for various revisions of the Android Open Source Platform (AOSP) android-12.1.0_r* only provides an x86-64 version of mkenvimage for the Cuttlefish emulator even for aarch64 builds when cross-compiling on an x86-64 host.
$ file ./device/google/cuttlefish_prebuilts/uboot_tools/mkenvimage
./device/google/cuttlefish_prebuilts/uboot_tools/mkenvimage: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, not stripped
This can be remediated by statically compiling mkenvimage for aarch64 and providing it to the cvd-host.tar.gz package.
The binary was statically compiled for source commit version commit 7b79f5b573949b55c0c794ee971a57849ad6ec1c (HEAD, m/u-boot-mainline, aosp/u-boot-mainline) using the aarch64-linux-gnu-gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0 compiler.
After following the normal build instructions to create the object files, run the following command to link the objects together for mkenvimage to build a static binary:
$ cd u-boot/tools/
$ aarch64-linux-gnu-gcc -static -o mkenvimage-static mkenvimage.o generated/lib/crc32.o
$ file mkenvimage-static
mkenvimage-static: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), statically linked, BuildID[sha1]=6c5444b49484490d1f050bf4a60f2dfe8a5a407c, for GNU/Linux 3.7.0, not stripped