diff --git a/CMakeLists.txt b/CMakeLists.txt index d8a6591b7..29c432b8a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -592,7 +592,7 @@ elseif(APPLE) src/detection/bios/bios_apple.c src/detection/bluetooth/bluetooth_apple.m src/detection/board/board_apple.c - src/detection/bootmgr/bootmgr_nosupport.c + src/detection/bootmgr/bootmgr_apple.c src/detection/brightness/brightness_apple.c src/detection/chassis/chassis_nosupport.c src/detection/cpu/cpu_apple.c diff --git a/src/detection/bootmgr/bootmgr_apple.c b/src/detection/bootmgr/bootmgr_apple.c new file mode 100644 index 000000000..bd4c5dc98 --- /dev/null +++ b/src/detection/bootmgr/bootmgr_apple.c @@ -0,0 +1,12 @@ +#include "bootmgr.h" +#include "common/io/io.h" + +const char* ffDetectBootmgr(FFBootmgrResult* result) +{ + if (ffPathExists("/System/Library/CoreServices/boot.efi", FF_PATHTYPE_FILE)) + ffStrbufSetStatic(&result->firmware, "/System/Library/CoreServices/boot.efi"); + + ffStrbufSetStatic(&result->name, "iBoot"); + + return NULL; +} diff --git a/src/modules/bootmgr/bootmgr.c b/src/modules/bootmgr/bootmgr.c index 7e1a2d480..ac6ef5e39 100644 --- a/src/modules/bootmgr/bootmgr.c +++ b/src/modules/bootmgr/bootmgr.c @@ -22,8 +22,11 @@ void ffPrintBootmgr(FFBootmgrOptions* options) } FF_STRBUF_AUTO_DESTROY firmwareName = ffStrbufCreateCopy(&bootmgr.firmware); - ffStrbufSubstrBeforeLastC(&firmwareName, '.'); + #ifndef __APPLE__ ffStrbufSubstrAfterLastC(&firmwareName, '\\'); + #else + ffStrbufSubstrAfterLastC(&firmwareName, '/'); + #endif if(options->moduleArgs.outputFormat.length == 0) {