Jump to content

Clover Problems and Solutions


ErmaC
3,206 posts in this topic

Recommended Posts

Clover can't remove nvram.plist produced by HibernationFixup plugin. 

The plugin can't write nvram.plist anywhere but in root.

Understand?


Meanwhile when you have a problem after hibernation then you have to choose Details Menu -> Cancel Hibernation

  • Like 3
Link to comment
Share on other sites

Clover can't remove nvram.plist produced by HibernationFixup plugin. 

The plugin can't write nvram.plist anywhere but in root.

Understand?

Meanwhile when you have a problem after hibernation then you have to choose Details Menu -> Cancel Hibernation

 

now, i understand. thanks.

can we avoid this issue if clover read nvram.plist witih hibernation info on not supported hibernation system? any trick or etc?

one way, don't use EmuVariableUefi. then clover not read nvram.plist in mac installed partition. but my laptop should use EmuVariableUefi to avoid AppleEFINVRAM time error.

 

Meanwhile when you have a problem after hibernation then you have to choose Details Menu -> Cancel Hibernation

-> already i tried it and all in GUI. but no luck. still happen instant reboot. i don't know why. 

 

also i don't see there is no "hibernated" on Macintosh HD in my log and GUI

https://sourceforge.net/p/hibernationfixup/discussion/general/thread/93f601f6/#f494

0:588 0:000 - [07]: 'Macintosh HD'

0:619 0:031 AddLoaderEntry for Volume Name=Macintosh HD

0:637 0:017 Check if volume Is Hibernated:

0:637 0:000 Check sleep image 'by signature':

0:663 0:025 read prefs \Library\Preferences\com.apple.PowerManagement.plist status=Success

0:663 0:000 using default sleep image name = \private\var\vm\sleepimage

0:674 0:011 sleepimage not found -> Not Found

0:674 0:000 hibernated: no - sign

 

i remember hibernationfixup with "-hbfx-dump-nvram" makes nvram dump in ESP long time ago. not remember that time. i wrote it before in clover thread.

Maybe I'm wrong or not. I can not say I'm sure.

Link to comment
Share on other sites

No, hibernationfixup never able to write to other volume then it is.

 

I know that EmuVariable can't be dropped. Some systems will not boot. My computer #1 is among them.

 

May be set HibernationFixup=NO in Clover's config.plist? And set it in priority on automatic check!

I see no reason why you can't boot if boot0082 is present. It used ONLY for hibernation.

And if we detect that hibernation is disabled

0:674 0:000 hibernated: no - sign

then we can safely delete all hibernations variables: boot0082 , boot-image, boot-switch-var etc. As well delete 0082 from boot-order and set boot-next to 0000.

All this happen with hibernation except your case and I think we can do this with ordinary boot.

Link to comment
Share on other sites

No, hibernationfixup never able to write to other volume then it is.

 

I know that EmuVariable can't be dropped. Some systems will not boot. My computer #1 is among them.

 

May be set HibernationFixup=NO in Clover's config.plist? And set it in priority on automatic check!

I see no reason why you can't boot if boot0082 is present. It used ONLY for hibernation.

And if we detect that hibernation is disabled

0:674 0:000 hibernated: no - sign

then we can safely delete all hibernations variables: boot0082 , boot-image, boot-switch-var etc. As well delete 0082 from boot-order and set boot-next to 0000.

All this happen with hibernation except your case and I think we can do this with ordinary boot.

 

i didn't have HibernationFixup=NO and any hibernation keys in config.plist at that time.

anyways, in my system, seems I would rather not use hibernationfixup.

 

today, i tested -f(without caches option) on snow leopard.

boot-args -f, actually not works. not operation this part from "-f". spacbar option(-f) is not work too in GUI

https://sourceforge.net/p/cloverefiboot/code/4301/tree/rEFIt_UEFI/Platform/Settings.c#l7131

 

clover first load \\System\\Library\\Caches\\com.apple.kext.caches\\Startup\\Extensions.mkext file in 10.6.8 when booting.

snow leopard installer, there is only \\System\\Library\\Caches\\com.apple.kext.caches\\Startup\\Extensions.mkext.

so clover can't patch binary patch. example AppleICPUPM in config.plist. because of mkext file. so always get its kext panic.

i can't pass this. i don't know why clover read mkext file.

 

so i seted 

<key>SystemParameters</key>

<dict>

<key>NoCaches</key>

<true/>

</dict>

without "-f"

 

then, clover block to load \\System\\Library\\Caches\\com.apple.kext.caches\\Startup\\Extensions.mkext. then i can get boot without kp.

spent some times for message "........................."(nocache is working).

 

then after setting snowleopard, i have to rebuild cache to use clover kexttopatch(AppleICPUPM) and get fastboot by using kernelcache. then 

<key>NoCaches</key>

<false/>

post-980913-0-09144400-1510676939_thumb.png

 

if there is 2 files(mkext, kernelcache file), clover read kernelcache file except mkext.

i don't know why if there are 2 files, first read kernelcache. i didn't debug this.

 

as result, "-f" actually not work to avoid kernelcache or operation Blacklist

need to improve if using -f flag or make nocache option to enable in GUI.

if you want snow's boot.efi file, i will upload.

 

summary.

- "-f" not work. if user use "-f" flag, clover have to operate blacklist option.

- 10.6 installation in clover, first, always use nocache option. because there is only mkext file in Startup folder.

  there is no default kernelcache file. then rebuild cache file, then disable nocache option. then can use normal macos like 10.7~10.13

 

sorry for bad english.

 

EDIT1.

"\\System\\Library\\Caches\\com.apple.kext.caches\\Startup\\kernelcache-******

in snow leopard, after rebuild cache, There always is a specific name after kernelcache above pic. This is given randomly..

if there is 2files(mkext,kernelcache), then user use nocache option, seems clover now can't block kernelcache-****file.

seems need to improve blacklist part for snow leopard.

 

thanks in advance.

Link to comment
Share on other sites

All would be fine except EmuVariable doesn't appear to be able to delete specific (maybe any?) variables. Sherlocks showed that in the general discussion. I don't know if cancel hibernate will work since he didn't appear able to delete the variables necessary. I see no problem having a reset for variables that we mostly set, or are set by macOS. It is helpful if you want to reset to original state because you did something stupid. As for the adding randomness to the end of a path, just check the beginning matches up to kernelcache, the rest is irrelevant, don't load any of them since trying to skip them anyway. As for the fixup, why would a kext not have access to other volumes? Are they all unmounted? It's being hibernated, there shouldn't really be a change, why would a kext not be able to gain access to the EFI volume?

 

EDIT: You can use the collation protocol's meta match method, to block wildcard paths, and everyone except one person knows -f does not work in clover....

  • Like 1
Link to comment
Share on other sites

Delete Variables works else Clover will not work

    //
    // If current Load Option is the same as BootNext,
    // must delete BootNext in order to make sure
    // there will be no panic on next boot
    //
    if (NewLoadContext->IsBootNext) {
      EfiLibDeleteVariable (L"BootNext", &gEfiGlobalVariableGuid);
    }

  if (gSettings.NvidiaWeb) {
    NvidiaWebValue = "1";
    SetNvramVariable(L"nvda_drv", &gEfiAppleBootGuid, Attributes, 2, (VOID*)NvidiaWebValue);
  } else {
    DeleteNvramVariable(L"nvda_drv", &gEfiAppleBootGuid);
  }

This is very bad condition that I successfully resolved in past

   DeleteNvramVariable(L"recovery-boot-mode", &gEfiAppleBootGuid);

.

/** Deletes Startup disk vars: efi-boot-device, efi-boot-device-data, BootCampHD. */
VOID
RemoveStartupDiskVolume ()
{
//    EFI_STATUS Status;
    
//    DBG ("RemoveStartupDiskVolume:\n");
    
    /*Status =*/ DeleteNvramVariable (L"efi-boot-device", &gEfiAppleBootGuid);
//    DBG ("  * efi-boot-device = %r\n", Status);
    
    /*Status =*/ DeleteNvramVariable (L"efi-boot-device-data", &gEfiAppleBootGuid);
//    DBG ("  * efi-boot-device-data = %r\n", Status);
    
    /*Status =*/ DeleteNvramVariable (L"BootCampHD", &gEfiAppleBootGuid);
//    DBG ("  * BootCampHD = %r\n", Status);
//    DBG ("Removed efi-boot-device-data variable: %r\n", Status);
}

  • Like 1
Link to comment
Share on other sites

 

Delete Variables works else Clover will not work

    //
    // If current Load Option is the same as BootNext,
    // must delete BootNext in order to make sure
    // there will be no panic on next boot
    //
    if (NewLoadContext->IsBootNext) {
      EfiLibDeleteVariable (L"BootNext", &gEfiGlobalVariableGuid);
    }

  if (gSettings.NvidiaWeb) {
    NvidiaWebValue = "1";
    SetNvramVariable(L"nvda_drv", &gEfiAppleBootGuid, Attributes, 2, (VOID*)NvidiaWebValue);
  } else {
    DeleteNvramVariable(L"nvda_drv", &gEfiAppleBootGuid);
  }

This is very bad condition that I successfully resolved in past

   DeleteNvramVariable(L"recovery-boot-mode", &gEfiAppleBootGuid);

.

/** Deletes Startup disk vars: efi-boot-device, efi-boot-device-data, BootCampHD. */
VOID
RemoveStartupDiskVolume ()
{
//    EFI_STATUS Status;
    
//    DBG ("RemoveStartupDiskVolume:\n");
    
    /*Status =*/ DeleteNvramVariable (L"efi-boot-device", &gEfiAppleBootGuid);
//    DBG ("  * efi-boot-device = %r\n", Status);
    
    /*Status =*/ DeleteNvramVariable (L"efi-boot-device-data", &gEfiAppleBootGuid);
//    DBG ("  * efi-boot-device-data = %r\n", Status);
    
    /*Status =*/ DeleteNvramVariable (L"BootCampHD", &gEfiAppleBootGuid);
//    DBG ("  * BootCampHD = %r\n", Status);
//    DBG ("Removed efi-boot-device-data variable: %r\n", Status);
}

 

i tested DeleteNvramVariable part again

5:893  0:000  Beginning FSInjection
FSInjectionInstall ...
- Our FSI_SIMPLE_FILE_SYSTEM_PROTOCOL installed on handle: D1B86B98
FSInjectionInstall ...
- Our FSI_SIMPLE_FILE_SYSTEM_PROTOCOL installed on handle: D1B86B98
SetNvramVariable (system-id, guid, 0x2, 16):
SetNvramVariable (MLB, guid, 0x6, 17):
SetNvramVariable (ROM, guid, 0x6, 6):
SetNvramVariable (FirmwareFeatures, guid, 0x6, 4):
DeleteNvramVariable (test_boot_guid, guid = Success):
DeleteNvramVariable (test_nvram_guid, guid = Success):
DeleteNvramVariable (DefaultBackgroundColor, guid = Not Found):
SetNvramVariable (UIScale, guid, 0x6, 1):
SetNvramVariable (EFILoginHiDPI, guid, 0x6, 4): exists(0x6, 4), equal -> not writing again.
5:894  0:000  SetNvramVariable (flagstate, guid, 0x6, 32): exists(0x6, 32), equal -> not writing again.
5:894  0:000  SetNvramVariable (csr-active-config, guid, 0x6, 4): exists(0x6, 4), equal -> not writing again.
5:894  0:000  SetNvramVariable (bootercfg, guid, 0x6, 2): exists(0x6, 2), equal -> not writing again.
5:894  0:000  DeleteNvramVariable (nvda_drv, guid = Not Found
7:318  0:003  DeleteNvramVariable (efi-boot-device, guid = Not Found):
DeleteNvramVariable (efi-boot-device-data, guid = Not Found):
DeleteNvramVariable (BootCampHD, guid = Not Found
 
DeleteNvramVariable works after
=== [ StartLoader ] =======================================
=== [ PatchSmbios ] =======================================
=== [ PatchACPI ] =========================================
=== [ FixBiosDsdt ] =======================================
=== [ ACPIDropTables ] ====================================
=== [ PatchAllSSDT ] ======================================
=== [ RestSetup macOS ] ===================================
 
strangely, 
1:413  0:000  === [ AddCustomTool ] =====================================
1:414  0:000  found tool \EFI\CLOVER\tools\Shell64U.efi
1:414  0:000  Checking EFI partition Volume 1 for Clover
1:414  0:000   Found Clover
1:414  0:000  EmuVariable UninstallEmulation: CloseEvent = Success, original var services restored
1:416  0:001  EmuVariable InstallEmulation: orig vars copied, emu.var.services installed, CreateEvent VirtualAddressChange = Success, CreateEvent ExitBootServices = Success, set Status=Success
1:465  0:048  === [ GetEfiBootDeviceFromNvram ] =========================
1:465  0:000   - found entry 1. 'Boot macOS from Macintosh HD', Volume 'Macintosh HD', DevicePath 'PciRoot(0x0)\Pci(0x17,0x0)\Sata(0x1,0x0,0x0)\HD(2,GPT,8C350A8F-50C6-43E6-ADA6-5E1670D265D9,0x64800,0x82A2800)\VenMedia(BE74FCF7-0B7C-49F3-9147-01F4042E6842,BDD25F5B80180E368ACDF1F15FB89CB7)\System\Library\CoreServices\boot.efii'
1:465  0:000  EmuVariable UninstallEmulation: CloseEvent = Success, original var services restored
1:465  0:000  DefaultIndex=1 and MainMenu.EntryCount=9
1:858  0:393  GUI ready
----- this part reset nvram------
4:907  3:049  === [ StartLoader ] =======================================

 

can't use DeleteNvramVariable part. always not found message.

also if use cancel hibernation wakeup, where is remove hibernation keys or reset part?

you said

then we can safely delete all hibernations variables: boot0082 , boot-image, boot-switch-var etc. As well delete 0082 from boot-order and set boot-next to 0000.

All this happen with hibernation except your case and I think we can do this with ordinary boot.

i can't see part to can temporarily remove keys if nvram.plist load with boot0082 info when use cancel hibernate wake.

 

also if nvram.plist in root, after cancel hibernate mode, next boot, come back normal boot? no need refresh nvram.plist in root?

Of course, if you use the rc script, the files at the root are deleted when logout.
However,
If you only use hibernationfixup without the rc script, the nvram.plist file is still likely to remain on the root.
in this situation, always use cancel hibernate wake. also user will experience instant reboot if not support hibernation.
i just did think various situation. then reported it.

 

thanks in advance

 

EDIT1.

i will debug DeleteNvramVariable in detail again. and will report

 

EDIT2.

i'm sure that DeleteNvramVariable is not work after get GUI

1:449  0:048  === [ GetEfiBootDeviceFromNvram ] =========================
1:449  0:000   - found entry 1. 'Boot macOS from Macintosh HD', Volume 'Macintosh HD', DevicePath 'PciRoot(0x0)\Pci(0x17,0x0)\Sata(0x1,0x0,0x0)\HD(2,GPT,8C350A8F-50C6-43E6-ADA6-5E1670D265D9,0x64800,0x82A2800)\VenMedia(BE74FCF7-0B7C-49F3-9147-01F4042E6842,BDD25F5B80180E368ACDF1F15FB89CB7)\System\Library\CoreServices\boot.efii'
1:449  0:000  EmuVariable UninstallEmulation: CloseEvent = Success, original var services restored
1:449  0:000  DefaultIndex=1 and MainMenu.EntryCount=9
1:846  0:396  GUI ready
2:467  0:621  ResetEmuNvram: searching volumes for nvram.plist
2:467  0:000  - [01]: 'EFI' - found nvram.plist and deleted it
2:468  0:001  - [04]: 'Mac Data' - no nvram.plist - skipping!
2:469  0:000  - [06]: 'Preboot' - no nvram.plist - skipping!
2:470  0:001  - [07]: 'Macintosh HD' - no nvram.plist - skipping!
2:470  0:000  - [08]: 'Recovery' - no nvram.plist - skipping!
2:470  0:000  - [09]: 'VM' - no nvram.plist - skipping!
2:470  0:000  SetNvramVariable (test_boot_guid, guid, 0x6, 5):
2:471  0:000  DeleteNvramVariable (test_boot_guid, guid = Not Found):
2:471  0:000  SetNvramVariable (test_nvram_guid, guid, 0x6, 5):
2:471  0:000  DeleteNvramVariable (test_nvram_guid, guid = Not Found):
4:138  1:667  BootVariable of the entry is empty
 
FSInjectionInstall ...
- Our FSI_SIMPLE_FILE_SYSTEM_PROTOCOL installed on handle: D1C0C818
FSInjectionInstall ...
- Our FSI_SIMPLE_FILE_SYSTEM_PROTOCOL installed on handle: D1C0C818
5:124  0:000  SetNvramVariable (system-id, guid, 0x2, 16):SetNvramVariable (MLB, guid, 0x6, 17):SetNvramVariable (ROM, guid, 0x6, 6):SetNvramVariable (FirmwareFeatures, guid, 0x6, 4):SetNvramVariable (FirmwareFeaturesMask, guid, 0x6, 4):
5:124  0:000  SetNvramVariable (HW_BID, guid, 0x6, 20):
5:124  0:000  SetNvramVariable (security-mode, guid, 0x6, 5):
5:124  0:000  SetNvramVariable (test_boot_guid, guid, 0x6, 5):
5:124  0:000  DeleteNvramVariable (test_boot_guid, guid = Success):
5:124  0:000  SetNvramVariable (test_nvram_guid, guid, 0x6, 5):
5:124  0:000  DeleteNvramVariable (test_nvram_guid, guid = Success):
5:124  0:000  SetNvramVariable (backlight-level, guid, 0x6, 2):
5:124  0:000  DeleteNvramVariable (DefaultBackgroundColor, guid = Not Found):
5:124  0:000  SetNvramVariable (UIScale, guid, 0x6, 1):SetNvramVariable (EFILoginHiDPI, guid, 0x6, 4): exists(0x6, 4), equal -> not writing again.
5:124  0:000  SetNvramVariable (flagstate, guid, 0x6, 32): exists(0x6, 32), equal -> not writing again.
5:124  0:000  SetNvramVariable (csr-active-config, guid, 0x6, 4): exists(0x6, 4), equal -> not writing again.
5:124  0:000  SetNvramVariable (bootercfg, guid, 0x6, 2): exists(0x6, 2), equal -> not writing again.
5:124  0:000  DeleteNvramVariable (nvda_drv, guid = Not Found):
5:124  0:000  DeleteNvramVariable (recovery-boot-mode, guid = Not Found
Link to comment
Share on other sites

@Sherlocks

See

1:449  0:000  EmuVariable UninstallEmulation: CloseEvent = Success, original var services restored

When EmuVariable is disabled you can't set or delete variables.

Check when the service will be switch on again.


Tbh, I trust RehabMan over "it's not in boot.efi"... A few dozen kexts left to check. ;)

Not so much as you think.

We already worked with different kexts: IOPCIFamily, IOUSBFamily,  IOACPIFamily (?), AppleSMBIOS,... I don't think we should take into account any LAN, Graphics, WiFi or other devices.

As Rehabman said about audio then there is AppleHDA.kext to check if user is not using VoodooHDA.

 

But the origin of the key is Chameleon where we can read what is it and why.

Link to comment
Share on other sites

@Sherlocks

See

1:449  0:000  EmuVariable UninstallEmulation: CloseEvent = Success, original var services restored
When EmuVariable is disabled you can't set or delete variables.

Check when the service will be switch on again.

 

Not so much as you think.

We already worked with different kexts: IOPCIFamily, IOUSBFamily, IOACPIFamily (?), AppleSMBIOS,... I don't think we should take into account any LAN, Graphics, WiFi or other devices.

As Rehabman said about audio then there is AppleHDA.kext to check if user is not using VoodooHDA.

 

But the origin of the key is Chameleon where we can read what is it and why.

thanks. i will check again and report

 

apianti wrote chameleon "-f"

http://www.insanelymac.com/forum/topic/284656-clover-general-discussion/?p=2531390

 

EDIT1.

@Slice

strangely, still not working.

 

EDIT2.

if deletenvramvariable works, i have a idea to improve better nvram reset than before for all cases.

 

EDIT3.

resolved

Link to comment
Share on other sites

Tbh, I trust RehabMan over "it's not in boot.efi"... A few dozen kexts left to check. ;)

 

Why would the flag to not load a cache ever be in a kext? That doesn't even make sense. I also said it's not in the kernel and there is no such evidence there was ever such a flag, especially since chameleon clearly does not use it as a boot or kernel flag. This is a discussion that's already taken place years ago and there is no -f flag to force not loading caches, which is why it does not exist in clover, because there is different method to block caches.

  • Like 1
Link to comment
Share on other sites

Why would the flag to not load a cache ever be in a kext? That doesn't even make sense. I also said it's not in the kernel and there is no such evidence there was ever such a flag, especially since chameleon clearly does not use it as a boot or kernel flag. This is a discussion that's already taken place years ago and there is no -f flag to force not loading caches, which is why it does not exist in clover, because there is different method to block caches.

Who said or implied that is what it does now or is the only thing it ever did?
Link to comment
Share on other sites

Who said or implied that is what it does now or is the only thing it ever did?

 

.....What.......?  :blink:

 

EDIT: If it was indeed ever used, then using it in chameleon to not load the cache would cause unwanted side effects. It would be like if we decided to add -s flag to do something. It would never work because then single user mode would always be used....

Link to comment
Share on other sites

.....What.......? :blink:

 

EDIT: If it was indeed ever used, then using it in chameleon to not load the cache would cause unwanted side effects. It would be like if we decided to add -s flag to do something. It would never work because then single user mode would always be used....

Could be it was used as a boot.efi flag to not load the cache and by some kext, system process or whatever as a hint to rebuild the cache etc. Same as RM, I'm not interested in it technically, but you can falsify it by not being able to reproduce RM's steps ;)
Link to comment
Share on other sites

I think -f probably existed in Apple's boot-132, which was a transition (non-EFI) bootloader written by Apple.  It was then developed by David F Elliott for VMware to boot OS X as vmware guest, and was later developed into Chameleon bootloader.  boot.efi is EFI bootloader that is not derived from Apple's boot-132.

Also, I'm under the impression that starting some OS X version (around 10.8 or so), boot.efi stopped being able to boot without a kernelcache present.  I haven't tried it recently but is boot.efi able to boot without a preexisting kernelcache?  By "boot" I mean even get into single-user mode which can rebuild kernelcache with kextcache -Boot.

  • Like 1
Link to comment
Share on other sites

I think -f probably existed in Apple's boot-132, which was a transition (non-EFI) bootloader written by Apple.  It was then developed by David F Elliott for VMware to boot OS X as vmware guest, and was later developed into Chameleon bootloader.  boot.efi is EFI bootloader that is not derived from Apple's boot-132.

Also, I'm under the impression that starting some OS X version (around 10.8 or so), boot.efi stopped being able to boot without a kernelcache present.  I haven't tried it recently but is boot.efi able to boot without a preexisting kernelcache?  By "boot" I mean even get into single-user mode which can rebuild kernelcache with kextcache -Boot.

 

There was a boot.efi argument that allowed you to set the kernel to load and then the kernelcache is blocked by filesystem injection. But that argument no longer works, probably is not present in boot.efi code anymore, but I haven't looked, I just know it no longer works. You should be able to use -x and -s, I think, I am not sure actually.

Link to comment
Share on other sites

There was a boot.efi argument that allowed you to set the kernel to load and then the kernelcache is blocked by filesystem injection. But that argument no longer works, probably is not present in boot.efi code anymore, but I haven't looked, I just know it no longer works. You should be able to use -x and -s, I think, I am not sure actually.

I tested -x with Legacy and UEFI in 10.6.8. -x actually works that not load cache files(mkext, kernelcache).

I spent some times for "+++++++++++++++".

-f and -F are not working in 10.6.8 from clover.

 

 

So, to avoid cache in clover for old osx

1. Use -x

2. Nocache option in config.plist

 

EDIT1.

@Slice

its working. i mistook some code. i will improve for all cases. thank you so much.

2:350 0:512 EmuVariable InstallEmulation: orig vars copied, emu.var.services installed, CreateEvent VirtualAddressChange = Success, CreateEvent ExitBootServices = Success, set Status=Success

2:399 0:049 ResetEmuNvram: searching volumes for nvram.plist

2:399 0:000 - [01]: 'EFI' - found nvram.plist and deleted it

2:400 0:001 SetNvramVariable (test_boot_guid, guid, 0x6, 5):

2:400 0:000 DeleteNvramVariable (test_boot_guid, guid = Success):

2:400 0:000 SetNvramVariable (test_nvram_guid, guid, 0x6, 5):

2:401 0:000 DeleteNvramVariable (test_nvram_guid, guid = Success):

2:401 0:000 - [04]: 'Mac Data' - no nvram.plist - skipping!

2:401 0:000 - [06]: 'Preboot' - no nvram.plist - skipping!

2:402 0:001 - [07]: 'Macintosh HD' - no nvram.plist - skipping!

2:403 0:000 - [08]: 'Recovery' - no nvram.plist - skipping!

2:403 0:000 - [09]: 'VM' - no nvram.plist - skipping!

2:403 0:000 EmuVariable UninstallEmulation: CloseEvent = Success, original var services restored

나의 LG-F800S 의 Tapatalk에서 보냄

Link to comment
Share on other sites

I think -f probably existed in Apple's boot-132, which was a transition (non-EFI) bootloader written by Apple.  It was then developed by David F Elliott for VMware to boot OS X as vmware guest, and was later developed into Chameleon bootloader.  boot.efi is EFI bootloader that is not derived from Apple's boot-132.

 

Could be... boot.efi did use some boot-132 codes though, I once read a debug str in boot.efi containing a function name, which was present in boot-132 as well. ;)

 

Also, I'm under the impression that starting some OS X version (around 10.8 or so), boot.efi stopped being able to boot without a kernelcache present.  I haven't tried it recently but is boot.efi able to boot without a preexisting kernelcache?

 

It wasn't 10.8, it was later... not quite sure, either 10.10 or 10.11. Since then prelinkedkernel needs to be present or you cannot boot.

Link to comment
Share on other sites

Could be... boot.efi did use some boot-132 codes though, I once read a debug str in boot.efi containing a function name, which was present in boot-132 as well. ;)

 

 

There is no problem to make binary serach though all code of boot.efi.

A little more problem to disasm all finds to exclude false positive like this

Снимок.PNG

boot.efi doesn't use a flag "-f".

Link to comment
Share on other sites

i tested hibernation debug in detail.

1. after hibernation, get gui, i can't see Macintosh HD("hibernated") tag.

  it means that can't see cancel hibernate wake option. so if user failed hibernation mode on user system, it means instant reboot when using any osx disk or partition.

post-980913-0-16018700-1510845172_thumb.png

post-980913-0-16525300-1510845184_thumb.png

 

there is no way to resolve issue. if user has windows, in windows, user refresh nvram.plist's date in ESP than nvram.plist in Root. then clover use nvram without hibernation info in esp.

we can avoid instant reboot. so i made improved reset nvram.

here is log with neverhibernate

 

 

1:301  0:006  Loading nvram.plist from Vol 'Macintosh HD' - loaded, size=2692

1:315  0:014  === [ PutNvramPlistToRtVars ] =============================
1:315  0:000   Skipping EmuVariableUefiPresent
1:315  0:000   Adding Key: EFILoginHiDPI: Size = 4, Data: 00 00 00 00 
1:315  0:000  SetNvramVariable (EFILoginHiDPI, guid, 0x6, 4):
1:315  0:000   Adding Key: SystemAudioVolume: Size = 1, Data: 1F 
1:315  0:000  SetNvramVariable (SystemAudioVolume, guid, 0x6, 1):
1:315  0:000   Adding Key: SystemAudioVolumeDB: Size = 1, Data: D5 
1:315  0:000  SetNvramVariable (SystemAudioVolumeDB, guid, 0x6, 1):
1:315  0:000   Adding Key: backlight-level: Size = 2, Data: 69 05 
1:315  0:000  SetNvramVariable (backlight-level, guid, 0x6, 2):
1:315  0:000   Adding Key: bluetoothActiveControllerInfo: Size = 16, Data: 7A E0 89 04 00 00 00 00 50 14 AC D1 B8 E2 A4 D0 
1:315  0:000  SetNvramVariable (bluetoothActiveControllerInfo, guid, 0x6, 16):
1:315  0:000   Adding Key: bootercfg: Size = 2, Data: 28 00 
1:315  0:000  SetNvramVariable (bootercfg, guid, 0x6, 2):
1:315  0:000   Adding Key: csr-active-config: Size = 4, Data: 77 00 00 00 
1:315  0:000  SetNvramVariable (csr-active-config, guid, 0x6, 4):
1:315  0:000   Adding Key: fakesmc-key-#KEY-ui32: Size = 4, Data: 00 00 00 11 
1:315  0:000  SetNvramVariable (fakesmc-key-#KEY-ui32, guid, 0x6, 4):
1:315  0:000   Adding Key: fakesmc-key-$Adr-ui32: Size = 4, Data: 00 00 03 00 
1:315  0:000  SetNvramVariable (fakesmc-key-$Adr-ui32, guid, 0x6, 4):
1:315  0:000   Adding Key: fakesmc-key-$Num-ui8: Size = 1, Data: 01 
1:315  0:000  SetNvramVariable (fakesmc-key-$Num-ui8, guid, 0x6, 1):
1:315  0:000   Adding Key: fakesmc-key-BATP-flag: Size = 1, Data: 00 
1:315  0:000  SetNvramVariable (fakesmc-key-BATP-flag, guid, 0x6, 1):
1:315  0:000   Adding Key: fakesmc-key-BBIN-ui8: Size = 1, Data: 01 
1:315  0:000  SetNvramVariable (fakesmc-key-BBIN-ui8, guid, 0x6, 1):
1:315  0:000   Adding Key: fakesmc-key-BEMB-flag: Size = 1, Data: 01 
1:315  0:000  SetNvramVariable (fakesmc-key-BEMB-flag, guid, 0x6, 1):
1:315  0:000   Adding Key: fakesmc-key-BNum-ui8: Size = 1, Data: 01 
1:315  0:000  SetNvramVariable (fakesmc-key-BNum-ui8, guid, 0x6, 1):
1:315  0:000   Adding Key: fakesmc-key-EPCI-ui32: Size = 4, Data: 09 20 F0 00 
1:315  0:000  SetNvramVariable (fakesmc-key-EPCI-ui32, guid, 0x6, 4):
1:315  0:000   Adding Key: fakesmc-key-MSAc-ui16: Size = 2, Data: 00 00 
1:315  0:000  SetNvramVariable (fakesmc-key-MSAc-ui16, guid, 0x6, 2):
1:315  0:000   Adding Key: fakesmc-key-MSFW-ui8: Size = 2, Data: 01 00 
1:315  0:000  SetNvramVariable (fakesmc-key-MSFW-ui8, guid, 0x6, 2):
1:315  0:000   Adding Key: fakesmc-key-MSPS-ui16: Size = 2, Data: 00 03 
1:315  0:000  SetNvramVariable (fakesmc-key-MSPS-ui16, guid, 0x6, 2):
1:315  0:000   Adding Key: fakesmc-key-MSTc-ui8: Size = 1, Data: 00 
1:315  0:000  SetNvramVariable (fakesmc-key-MSTc-ui8, guid, 0x6, 1):
1:315  0:000   Adding Key: fakesmc-key-MSWr-ui8: Size = 1, Data: 00 
1:315  0:000  SetNvramVariable (fakesmc-key-MSWr-ui8, guid, 0x6, 1):
1:315  0:000   Adding Key: fakesmc-key-RBr -ch8*: Size = 8, Data: 32 30 31 36 6D 62 00 00 
1:315  0:000  SetNvramVariable (fakesmc-key-RBr -ch8*, guid, 0x6, 8):
1:315  0:000   Adding Key: fakesmc-key-REV -ch8*: Size = 6, Data: 02 36 0F 00 00 97 
1:315  0:000  SetNvramVariable (fakesmc-key-REV -ch8*, guid, 0x6, 6):
1:315  0:000   Adding Key: fakesmc-key-RMde-char: Size = 1, Data: 41 
1:315  0:000  SetNvramVariable (fakesmc-key-RMde-char, guid, 0x6, 1):
1:315  0:000   Adding Key: fakesmc-key-RPlt-ch8*: Size = 8, Data: 6A 31 33 30 00 00 00 00 
1:315  0:000  SetNvramVariable (fakesmc-key-RPlt-ch8*, guid, 0x6, 8):
1:315  0:000   Adding Key: flagstate: Size = 32, Data: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
1:315  0:000  SetNvramVariable (flagstate, guid, 0x6, 32):
1:315  0:000   Adding Key: fmm-computer-name: Size = 28, Data: 53 68 65 72 6C 6F 63 6B 73 EC 9D 98 20 4D 61 63 42 6F 6F 6B 20 50 72 6F 20 28 32 29 
1:315  0:000  SetNvramVariable (fmm-computer-name, guid, 0x6, 28):
1:315  0:000   Adding Key: prev-lang:kbd: Size = 4, Data: 6B 6F 3A 30 
1:315  0:000  SetNvramVariable (prev-lang:kbd, guid, 0x6, 4):
1:315  0:000   Adding Key: security-mode: String: Size = 4, Val = 'none'
1:315  0:000  SetNvramVariable (security-mode, guid, 0x6, 4):
1:315  0:000   Adding Key: specialbootdevice: Size = 110, Data: 02 01 0C 00 D0 41 03 0A 00 00 00 00 01 01 06 00 00 17 03 12 0A 00 01 00 00 00 00 00 04 01 2A 00 02 00 00 00 00 48 06 00 00 00 00 00 00 28 2A 08 00 00 00 00 8F 0A 35 8C C6 50 E6 43 AD A6 5E 16 70 D2 65 D9 02 02 04 03 24 00 F7 FC 74 BE 7C 0B F3 49 91 47 01 F4 04 2E 68 42 BD D2 5F 5B 80 18 0E 36 8A CD F1 F1 5F B8 9C B7 7F FF 04 00 
1:315  0:000  SetNvramVariable (specialbootdevice, guid, 0x6, 110):
1:316  0:000   Adding Key: boot-image: Size = 54, Data: 02 01 0C 00 D0 41 03 0A 00 00 00 00 01 01 06 00 00 17 03 12 0A 00 01 00 00 00 00 00 04 04 16 00 63 00 63 00 39 00 30 00 30 00 30 00 30 00 30 00 00 00 7F FF 04 00 
1:316  0:000  SetNvramVariable (boot-image, guid, 0x6, 54):
1:316  0:000   Adding Key: IOHibernateRTCVariables: Size = 44, Data: 41 41 50 4C 01 00 00 00 64 01 79 99 A2 3A 14 08 43 7F 4B 91 87 9A AF 2B 6F 54 F6 1A D3 8A 8E A2 D9 58 ED DB A7 FC 96 A5 F6 5F 4D 6A 
1:316  0:000  SetNvramVariable (IOHibernateRTCVariables, guid, 0x6, 44):
1:316  0:000   Adding Key: Boot0082: Size = 198, Data: 01 00 00 00 BE 00 00 00 02 01 0C 00 D0 41 03 0A 00 00 00 00 01 01 06 00 00 17 03 12 0A 00 01 00 00 00 00 00 04 01 2A 00 02 00 00 00 00 48 06 00 00 00 00 00 00 28 2A 08 00 00 00 00 8F 0A 35 8C C6 50 E6 43 AD A6 5E 16 70 D2 65 D9 02 02 04 03 24 00 F7 FC 74 BE 7C 0B F3 49 91 47 01 F4 04 2E 68 42 BD D2 5F 5B 80 18 0E 36 8A CD F1 F1 5F B8 9C B7 04 04 50 00 5C 00 53 00 79 00 73 00 74 00 65 00 6D 00 5C 00 4C 00 69 00 62 00 72 00 61 00 72 00 79 00 5C 00 43 00 6F 00 72 00 65 00 53 00 65 00 72 00 76 00 69 00 63 00 65 00 73 00 5C 00 62 00 6F 00 6F 00 74 00 2E 00 65 00 66 00 69 00 00 00 7F FF 04 00 
1:316  0:000  SetNvramVariable (Boot0082, guid, 0x6, 198):
1:316  0:000   Adding Key: BootNext: Size = 2, Data: 82 00 
1:316  0:000  SetNvramVariable (BootNext, guid, 0x6, 2):
1:316  0:000  === [ InitTheme ] =========================================
1:321  0:005  Using theme 'bootcamp' (EFI\CLOVER\themes\bootcamp)
1:321  0:000  Warning! Character width 9 should be even!
1:322  0:000  Loading font from ThemeDir: Error
1:323  0:000  Choosing theme bootcamp
1:323  0:000  after NVRAM boot-args=-xcpm kext-dev-mode=1 -disablegfxfirmware
1:323  0:000  === [ Dump SMC keys from NVRAM ] ==========================
1:323  0:000  found AppleSMC protocol
1:323  0:000  === [ ScanLoader ] ========================================
1:323  0:000  - [01]: 'EFI'
1:326  0:003          AddLoaderEntry for Volume Name=EFI
1:329  0:003  - [04]: 'Mac Data'
1:330  0:000  - [06]: 'Preboot', hidden
1:330  0:000  - [07]: 'Macintosh HD'
1:365  0:035          AddLoaderEntry for Volume Name=Macintosh HD
1:385  0:019      hibernated: set as never
1:392  0:007  - [08]: 'Recovery'
1:402  0:010          AddLoaderEntry for Volume Name=Recovery
1:417  0:014  - [09]: 'VM'
1:417  0:000  === [ AddCustomTool ] =====================================
 
16:313  14:450  EmuVariable InstallEmulation: orig vars copied, emu.var.services installed, CreateEvent VirtualAddressChange = Success, CreateEvent ExitBootServices = Success, set Status=Success
16:363  0:049  ResetEmuNvram: searching volumes for nvram.plist
16:363  0:000  - [01]: 'EFI' - found nvram.plist and deleted it
16:363  0:000  - [04]: 'Mac Data' - found nvram.plist but can't delete it
16:364  0:000  - [06]: 'Preboot' - no nvram.plist - skipping!
16:366  0:001  - [07]: 'Macintosh HD' - found nvram.plist but can't delete it
16:366  0:000  - [08]: 'Recovery' - no nvram.plist - skipping!
16:366  0:000  - [09]: 'VM' - no nvram.plist - skipping!
16:366  0:000  ResetEmuNvram: cleanup NVRAM variables
16:366  0:000  SetNvramVariable (test_boot_guid, guid, 0x6, 5):
16:366  0:000  DeleteNvramVariable (test_boot_guid, guid = Success):
16:366  0:000  SetNvramVariable (test_nvram_guid, guid, 0x6, 5):
16:366  0:000  DeleteNvramVariable (test_nvram_guid, guid = Success):
16:366  0:000  DeleteNvramVariable (boot-args, guid = Not Found):
16:366  0:000  DeleteNvramVariable (IOHibernateRTCVariables, guid = Success):
16:366  0:000  DeleteNvramVariable (Boot0082, guid = Not Found):
16:366  0:000  DeleteNvramVariable (BootNext, guid = Not Found):
16:366  0:000  DeleteNvramVariable (IOHibernateRTCVariables, guid = Not Found):
16:366  0:000  DeleteNvramVariable (Boot0082, guid = Not Found):
16:366  0:000  DeleteNvramVariable (BootNext, guid = Not Found):
16:366  0:000  DeleteNvramVariable (Boot0082, guid = Success):
16:366  0:000  DeleteNvramVariable (boot-switch-vars, guid = Not Found):
16:366  0:000  DeleteNvramVariable (boot-signature, guid = Not Found):
16:366  0:000  DeleteNvramVariable (boot-image-key, guid = Not Found):
16:366  0:000  DeleteNvramVariable (boot-image, guid = Success):
16:366  0:000  EmuVariable UninstallEmulation: CloseEvent = Success, original var services restored
20:739  4:373   boot with args: -xcpm kext-dev-mode=1 -disablegfxfirmware -v 
20:740  0:000  BootVariable of the entry is empty
20:740  0:000  === [ StartLoader ] =======================================

 

 

 

here is log without neverhibernate

post-980913-0-16018700-1510845172_thumb.png

post-980913-0-16525300-1510845184_thumb.png

 

 

1:425  0:006  Loading nvram.plist from Vol 'Macintosh HD' - loaded, size=2692
1:440  0:014  === [ PutNvramPlistToRtVars ] =============================
1:440  0:000   Skipping EmuVariableUefiPresent
1:440  0:000   Adding Key: EFILoginHiDPI: Size = 4, Data: 00 00 00 00 
1:440  0:000  SetNvramVariable (EFILoginHiDPI, guid, 0x6, 4):
1:440  0:000   Adding Key: SystemAudioVolume: Size = 1, Data: 1F 
1:440  0:000  SetNvramVariable (SystemAudioVolume, guid, 0x6, 1):
1:440  0:000   Adding Key: SystemAudioVolumeDB: Size = 1, Data: D5 
1:440  0:000  SetNvramVariable (SystemAudioVolumeDB, guid, 0x6, 1):
1:440  0:000   Adding Key: backlight-level: Size = 2, Data: 69 05 
1:440  0:000  SetNvramVariable (backlight-level, guid, 0x6, 2):
1:440  0:000   Adding Key: bluetoothActiveControllerInfo: Size = 16, Data: 7A E0 89 04 00 00 00 00 50 14 AC D1 B8 E2 A4 D0 
1:440  0:000  SetNvramVariable (bluetoothActiveControllerInfo, guid, 0x6, 16):
1:440  0:000   Adding Key: bootercfg: Size = 2, Data: 28 00 
1:440  0:000  SetNvramVariable (bootercfg, guid, 0x6, 2):
1:440  0:000   Adding Key: csr-active-config: Size = 4, Data: 77 00 00 00 
1:440  0:000  SetNvramVariable (csr-active-config, guid, 0x6, 4):
1:440  0:000   Adding Key: fakesmc-key-#KEY-ui32: Size = 4, Data: 00 00 00 11 
1:440  0:000  SetNvramVariable (fakesmc-key-#KEY-ui32, guid, 0x6, 4):
1:440  0:000   Adding Key: fakesmc-key-$Adr-ui32: Size = 4, Data: 00 00 03 00 
1:440  0:000  SetNvramVariable (fakesmc-key-$Adr-ui32, guid, 0x6, 4):
1:440  0:000   Adding Key: fakesmc-key-$Num-ui8: Size = 1, Data: 01 
1:440  0:000  SetNvramVariable (fakesmc-key-$Num-ui8, guid, 0x6, 1):
1:440  0:000   Adding Key: fakesmc-key-BATP-flag: Size = 1, Data: 00 
1:440  0:000  SetNvramVariable (fakesmc-key-BATP-flag, guid, 0x6, 1):
1:440  0:000   Adding Key: fakesmc-key-BBIN-ui8: Size = 1, Data: 01 
1:440  0:000  SetNvramVariable (fakesmc-key-BBIN-ui8, guid, 0x6, 1):
1:440  0:000   Adding Key: fakesmc-key-BEMB-flag: Size = 1, Data: 01 
1:440  0:000  SetNvramVariable (fakesmc-key-BEMB-flag, guid, 0x6, 1):
1:440  0:000   Adding Key: fakesmc-key-BNum-ui8: Size = 1, Data: 01 
1:440  0:000  SetNvramVariable (fakesmc-key-BNum-ui8, guid, 0x6, 1):
1:440  0:000   Adding Key: fakesmc-key-EPCI-ui32: Size = 4, Data: 09 20 F0 00 
1:440  0:000  SetNvramVariable (fakesmc-key-EPCI-ui32, guid, 0x6, 4):
1:440  0:000   Adding Key: fakesmc-key-MSAc-ui16: Size = 2, Data: 00 00 
1:440  0:000  SetNvramVariable (fakesmc-key-MSAc-ui16, guid, 0x6, 2):
1:440  0:000   Adding Key: fakesmc-key-MSFW-ui8: Size = 2, Data: 01 00 
1:440  0:000  SetNvramVariable (fakesmc-key-MSFW-ui8, guid, 0x6, 2):
1:440  0:000   Adding Key: fakesmc-key-MSPS-ui16: Size = 2, Data: 00 03 
1:440  0:000  SetNvramVariable (fakesmc-key-MSPS-ui16, guid, 0x6, 2):
1:440  0:000   Adding Key: fakesmc-key-MSTc-ui8: Size = 1, Data: 00 
1:440  0:000  SetNvramVariable (fakesmc-key-MSTc-ui8, guid, 0x6, 1):
1:440  0:000   Adding Key: fakesmc-key-MSWr-ui8: Size = 1, Data: 00 
1:440  0:000  SetNvramVariable (fakesmc-key-MSWr-ui8, guid, 0x6, 1):
1:440  0:000   Adding Key: fakesmc-key-RBr -ch8*: Size = 8, Data: 32 30 31 36 6D 62 00 00 
1:440  0:000  SetNvramVariable (fakesmc-key-RBr -ch8*, guid, 0x6, 8):
1:440  0:000   Adding Key: fakesmc-key-REV -ch8*: Size = 6, Data: 02 36 0F 00 00 97 
1:440  0:000  SetNvramVariable (fakesmc-key-REV -ch8*, guid, 0x6, 6):
1:440  0:000   Adding Key: fakesmc-key-RMde-char: Size = 1, Data: 41 
1:440  0:000  SetNvramVariable (fakesmc-key-RMde-char, guid, 0x6, 1):
1:440  0:000   Adding Key: fakesmc-key-RPlt-ch8*: Size = 8, Data: 6A 31 33 30 00 00 00 00 
1:440  0:000  SetNvramVariable (fakesmc-key-RPlt-ch8*, guid, 0x6, 8):
1:440  0:000   Adding Key: flagstate: Size = 32, Data: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
1:440  0:000  SetNvramVariable (flagstate, guid, 0x6, 32):
1:440  0:000   Adding Key: fmm-computer-name: Size = 28, Data: 53 68 65 72 6C 6F 63 6B 73 EC 9D 98 20 4D 61 63 42 6F 6F 6B 20 50 72 6F 20 28 32 29 
1:440  0:000  SetNvramVariable (fmm-computer-name, guid, 0x6, 28):
1:440  0:000   Adding Key: prev-lang:kbd: Size = 4, Data: 6B 6F 3A 30 
1:440  0:000  SetNvramVariable (prev-lang:kbd, guid, 0x6, 4):
1:440  0:000   Adding Key: security-mode: String: Size = 4, Val = 'none'
1:440  0:000  SetNvramVariable (security-mode, guid, 0x6, 4):
1:440  0:000   Adding Key: specialbootdevice: Size = 110, Data: 02 01 0C 00 D0 41 03 0A 00 00 00 00 01 01 06 00 00 17 03 12 0A 00 01 00 00 00 00 00 04 01 2A 00 02 00 00 00 00 48 06 00 00 00 00 00 00 28 2A 08 00 00 00 00 8F 0A 35 8C C6 50 E6 43 AD A6 5E 16 70 D2 65 D9 02 02 04 03 24 00 F7 FC 74 BE 7C 0B F3 49 91 47 01 F4 04 2E 68 42 BD D2 5F 5B 80 18 0E 36 8A CD F1 F1 5F B8 9C B7 7F FF 04 00 
1:440  0:000  SetNvramVariable (specialbootdevice, guid, 0x6, 110):
1:440  0:000   Adding Key: boot-image: Size = 54, Data: 02 01 0C 00 D0 41 03 0A 00 00 00 00 01 01 06 00 00 17 03 12 0A 00 01 00 00 00 00 00 04 04 16 00 63 00 63 00 39 00 30 00 30 00 30 00 30 00 30 00 00 00 7F FF 04 00 
1:440  0:000  SetNvramVariable (boot-image, guid, 0x6, 54):
1:440  0:000   Adding Key: IOHibernateRTCVariables: Size = 44, Data: 41 41 50 4C 01 00 00 00 64 01 79 99 A2 3A 14 08 43 7F 4B 91 87 9A AF 2B 6F 54 F6 1A D4 2F 68 BD CE 28 99 38 03 9E A9 E7 08 5B 0D 6C 
1:440  0:000  SetNvramVariable (IOHibernateRTCVariables, guid, 0x6, 44):
1:440  0:000   Adding Key: Boot0082: Size = 198, Data: 01 00 00 00 BE 00 00 00 02 01 0C 00 D0 41 03 0A 00 00 00 00 01 01 06 00 00 17 03 12 0A 00 01 00 00 00 00 00 04 01 2A 00 02 00 00 00 00 48 06 00 00 00 00 00 00 28 2A 08 00 00 00 00 8F 0A 35 8C C6 50 E6 43 AD A6 5E 16 70 D2 65 D9 02 02 04 03 24 00 F7 FC 74 BE 7C 0B F3 49 91 47 01 F4 04 2E 68 42 BD D2 5F 5B 80 18 0E 36 8A CD F1 F1 5F B8 9C B7 04 04 50 00 5C 00 53 00 79 00 73 00 74 00 65 00 6D 00 5C 00 4C 00 69 00 62 00 72 00 61 00 72 00 79 00 5C 00 43 00 6F 00 72 00 65 00 53 00 65 00 72 00 76 00 69 00 63 00 65 00 73 00 5C 00 62 00 6F 00 6F 00 74 00 2E 00 65 00 66 00 69 00 00 00 7F FF 04 00 
1:440  0:000  SetNvramVariable (Boot0082, guid, 0x6, 198):
1:440  0:000   Adding Key: BootNext: Size = 2, Data: 82 00 
1:440  0:000  SetNvramVariable (BootNext, guid, 0x6, 2):
1:440  0:000  === [ InitTheme ] =========================================
1:446  0:005  Using theme 'bootcamp' (EFI\CLOVER\themes\bootcamp)
1:446  0:000  Warning! Character width 9 should be even!
1:447  0:000  Loading font from ThemeDir: Error
1:447  0:000  Choosing theme bootcamp
1:447  0:000  after NVRAM boot-args=-xcpm kext-dev-mode=1 -disablegfxfirmware
1:448  0:000  === [ Dump SMC keys from NVRAM ] ==========================
1:448  0:000  === [ ScanLoader ] ========================================
1:448  0:000  - [01]: 'EFI'
1:451  0:003          AddLoaderEntry for Volume Name=EFI
1:454  0:002  - [04]: 'Mac Data'
1:454  0:000  - [06]: 'Preboot', hidden
1:454  0:000  - [07]: 'Macintosh HD'
1:489  0:034          AddLoaderEntry for Volume Name=Macintosh HD
1:508  0:019      Check if volume Is Hibernated:
1:508  0:000      Check sleep image 'by signature':
1:533  0:025      read prefs \Library\Preferences\com.apple.PowerManagement.plist status=Success
1:533  0:000      using default sleep image name = \private\var\vm\sleepimage
1:550  0:016      sleepimage not found -> Not Found
1:550  0:000      hibernated: no - sign
1:557  0:007  - [08]: 'Recovery'
1:568  0:010          AddLoaderEntry for Volume Name=Recovery
1:583  0:014  - [09]: 'VM'
 
17:994  0:048  ResetEmuNvram: searching volumes for nvram.plist
17:994  0:000  - [01]: 'EFI' - no nvram.plist - skipping!
17:994  0:000  - [04]: 'Mac Data' - found nvram.plist but can't delete it
17:994  0:000  - [06]: 'Preboot' - no nvram.plist - skipping!
17:996  0:001  - [07]: 'Macintosh HD' - found nvram.plist but can't delete it
17:996  0:000  - [08]: 'Recovery' - no nvram.plist - skipping!
17:997  0:000  - [09]: 'VM' - no nvram.plist - skipping!
17:997  0:000  ResetEmuNvram: cleanup NVRAM variables
17:997  0:000  SetNvramVariable (test_boot_guid, guid, 0x6, 5):
17:997  0:000  DeleteNvramVariable (test_boot_guid, guid = Success):
17:997  0:000  SetNvramVariable (test_nvram_guid, guid, 0x6, 5):
17:997  0:000  DeleteNvramVariable (test_nvram_guid, guid = Success):
17:997  0:000  DeleteNvramVariable (boot-args, guid = Not Found):
17:997  0:000  DeleteNvramVariable (IOHibernateRTCVariables, guid = Success):
17:997  0:000  DeleteNvramVariable (Boot0082, guid = Not Found):
17:997  0:000  DeleteNvramVariable (BootNext, guid = Not Found):
17:997  0:000  DeleteNvramVariable (IOHibernateRTCVariables, guid = Not Found):
17:997  0:000  DeleteNvramVariable (Boot0082, guid = Not Found):
17:997  0:000  DeleteNvramVariable (BootNext, guid = Not Found):
17:997  0:000  DeleteNvramVariable (Boot0082, guid = Success):
17:997  0:000  DeleteNvramVariable (boot-switch-vars, guid = Not Found):
17:997  0:000  DeleteNvramVariable (boot-signature, guid = Not Found):
17:997  0:000  DeleteNvramVariable (boot-image-key, guid = Not Found):
17:997  0:000  DeleteNvramVariable (boot-image, guid = Success):
17:997  0:000  EmuVariable UninstallEmulation: CloseEvent = Success, original var services restored
18:783  0:786  BootVariable of the entry is empty
18:783  0:000  === [ StartLoader ] =======================================

 

 

 

shown good result if user has critical issue.

 

2. if enable cancel hibernate wake option without hibernate detection from partition, it was not still works. always happen instant reboot.

so i tried to find 16:366  0:000  DeleteNvramVariable (Boot0082, guid = Success): this part when using cancel hibernate wake option. but there is no part.

 

thanks in advance.

 

EDIT1.

i tested it on 10.13.2 beta3 with APFS.

Link to comment
Share on other sites

Hi Zenith432,

I think it will be interesting for you.

I noticed this bug many revisions ago and now I was clearly reproduced it.

1. Updated EDK2 and Clover to latest revision.

2. Compile with ./ebuilds.sh -t XCODE8

3. Compile with ./ebuilds.sh -t XCODE5

Compare results

Xcode8

screenshot11.png

Xcode5

screenshot12.png

 

This is same sources rev4304, same computer #1, same macOS 10.12.6, and same XCode 9.1.

The results are different by different toolset.

Affected only embedded theme.

Any thought?

  • Like 3
Link to comment
Share on other sites

I'd like to qualify something I said a while back about patching Info.plist with Clover's kext patching using InfoPlistPatch - for a kext placed in the prelinkedkernel.

After some more checking, I found that

  • For kexts that have their OSBundleRequired set to either "Root", "Local-Root", "Network-Root" or "Console", their IOKitPersonalities are placed inside __PRELINK_INFO, and so their personalities can be patched using Clover.  These are the kexts necessary to boot into "-s" mode.
  • For kexts that have their OSBundleRequired set to "Safe Boot" ("-x" mode), or none (i.e. no OSBundleRequired), their IOKitPersonalities are not found inside __PRELINK_INFO, so cannot be patched.  The personalties are instead found in IOKitPersonalities_x86_64.ioplist.gz (see below) and loaded once the kernel can access the root filesystem.
     

In Clover's Kext Patcher, there is an option to patch a kext's Info.plist with

<key>InfoPlistPatch</key>
<true/>
 
Unfortunately, for kexts packed in prelinkedkernel this feature is nearly useless.  Because the Info.Plist used is the one placed inside __PRELINK_INFO segment of the prelinked kernel.
For example, here's the full Info.plist for AppleHDAController

[Example snipped]

The section IOKitPersonalities is missing, which is the most useful part to patch.
The personalities for kexts are cached in
/System/Library/Caches/com.apple.kext.caches/Startup/IOKitPersonalities_x86_64.ioplist.gz
which is only loaded by the kernel after starting.

 

  • Like 11
Link to comment
Share on other sites

Hi Zenith432,

I think it will be interesting for you.

I noticed this bug many revisions ago and now I was clearly reproduced it.

1. Updated EDK2 and Clover to latest revision.

2. Compile with ./ebuilds.sh -t XCODE8

3. Compile with ./ebuilds.sh -t XCODE5

Compare results

Xcode8

attachicon.gifscreenshot11.png

Xcode5

attachicon.gifscreenshot12.png

 

This is same sources rev4304, same computer #1, same macOS 10.12.6, and same XCode 9.1.

The results are different by different toolset.

Affected only embedded theme.

Any thought?

I can append that the result with GCC is pretty much the same as with XCODE8.

  • Like 1
Link to comment
Share on other sites

×
×
  • Create New...