From c0a9476c22e18b4a5c7ce8cb1b68d1deaaa83db9 Mon Sep 17 00:00:00 2001 From: Caelan Date: Wed, 17 Jul 2024 12:53:20 +0100 Subject: [PATCH] Properly detect universal binaries when packing .app bundles (#179) --- src/Velopack.Packaging.Unix/BinDetect.cs | 6 +++++- src/Velopack.Packaging.Unix/MachO.cs | 27 ------------------------ 2 files changed, 5 insertions(+), 28 deletions(-) delete mode 100644 src/Velopack.Packaging.Unix/MachO.cs diff --git a/src/Velopack.Packaging.Unix/BinDetect.cs b/src/Velopack.Packaging.Unix/BinDetect.cs index 369e3c71..3dd10226 100644 --- a/src/Velopack.Packaging.Unix/BinDetect.cs +++ b/src/Velopack.Packaging.Unix/BinDetect.cs @@ -7,7 +7,11 @@ public class BinDetect MH_MAGIC = 0xfeedface, MH_CIGAM = 0xcefaedfe, MH_MAGIC_64 = 0xfeedfacf, - MH_CIGAM_64 = 0xcffaedfe + MH_CIGAM_64 = 0xcffaedfe, + // https://developer.apple.com/documentation/kernel/fat_header/1558632-magic/ + // https://opensource.apple.com/source/file/file-80.40.2/file/magic/Magdir/cafebabe.auto.html + FAT_MAGIC = 0xcafebabe, + FAT_CIGAM = 0xbebafeca, } public static bool IsMachOImage(string filePath) diff --git a/src/Velopack.Packaging.Unix/MachO.cs b/src/Velopack.Packaging.Unix/MachO.cs deleted file mode 100644 index 7b6d90bb..00000000 --- a/src/Velopack.Packaging.Unix/MachO.cs +++ /dev/null @@ -1,27 +0,0 @@ -namespace Velopack.Packaging; - -public class MachO -{ - private enum MagicMachO : uint - { - MH_MAGIC = 0xfeedface, - MH_CIGAM = 0xcefaedfe, - MH_MAGIC_64 = 0xfeedfacf, - MH_CIGAM_64 = 0xcffaedfe, - // https://developer.apple.com/documentation/kernel/fat_header/1558632-magic/ - // https://opensource.apple.com/source/file/file-80.40.2/file/magic/Magdir/cafebabe.auto.html - FAT_MAGIC = 0xcafebabe, - FAT_CIGAM = 0xbebafeca, - } - - public static bool IsMachOImage(string filePath) - { - using (BinaryReader reader = new BinaryReader(File.OpenRead(filePath))) { - if (reader.BaseStream.Length < 256) // Header size - return false; - - uint magic = reader.ReadUInt32(); - return Enum.IsDefined(typeof(MagicMachO), magic); - } - } -} \ No newline at end of file