common/update/verify_linux_arm64.go (19 lines of code) (raw):

package update import ( "debug/elf" "fmt" ) func ValidateExecutable(executablePath string) error { executable, err := elf.Open(executablePath) if err != nil { return fmt.Errorf("%w: %s", ErrInvalidELF, err.Error()) } if executable.FileHeader.OSABI != elf.ELFOSABI_NONE && executable.FileHeader.OSABI != elf.ELFOSABI_LINUX { return fmt.Errorf("%w: %s", ErrELFUnsupportedOSABI, executable.FileHeader.OSABI.String()) } if executable.FileHeader.Machine != elf.EM_AARCH64 { return fmt.Errorf("%w: %s", ErrELFUnsupportedArchitecture, executable.FileHeader.Machine.String()) } return nil }