Jump to content

Clover General discussion


ErmaC
29,866 posts in this topic

Recommended Posts

Clover supported hot keys.

Is it only from the GUI? I could never get Clover to boot blind like rEFInd - with rEFInd, I could hold w to boot windows. With Clover, the only way I've found to let the GUI load first, then hit a hotkey to boot the corresponding OS. Holding down the hotkey from boot just loads the GUI and cancels any boot timer in Clover.

 

Am I just missing something in here? Still pretty new at all this. And Slice, I appreciate the time you already took to respond above.

Link to comment
Share on other sites

It will be nice, if possible.

You can :yes: : NVRAM Dumper Pro.app_v1.0_(beta).zip

 

It's a top-bar app that cost 0 resources to the System , and is configurable.

By default, the first time you use it, detect if you have real NVRAM support and deactivate the dump on disk, otherwise marked as active (you can rearm it). Under its settings you can set also a different file name and if you want to save to a subdirectory:

post-674334-0-82583900-1487443750_thumb.png

 

By default, if fields are empty, save nvram.plist to the root of the boot partition;

if for some reason the boot partition is no longer available (a USB stick ejected?) dump nvram to the ESP and if the current OS is running on a logical volume open the ESP on the physical disk and save it there. If no ESPs are available it save to "/".

I think can be an alternative to 80.save_nvram_plist.local.

 

Yep, you can dump nvram also when the System goes to sleep (is an option in the settings) and as I said you can try by specifying another file name.

 

P.S. support 10.7+ and in yosemite + follow the dark theme of the system, if set, automatically. Retina display support.

Tested in El Capitan and Sierra, not in old ones, but I will do it shortly (is beta)

 

P.S.2 obviously shows you the contents of the NVRAM

  • Like 3
Link to comment
Share on other sites

You can :yes: : attachicon.gifNVRAM Dumper Pro.app_v1.0_(beta).zip

 

It's a top-bar app that cost 0 to the System, and is configurable.

By default, the first time you use it, detect if you have real NVRAM support and deactivate the dump on disk, otherwise marked as active (you can rearm it). Under its settings you can set also a different file name and if you want to save to a subdirectory:

attachicon.gifnvram.png

 

By default, if fields are empty, save nvram.plist to the root of the boot partition;

if for some reason the boot partition is no longere available (a USB stick ejected?) dump nvram to the ESP and if the current OS is running on a logical volume open the ESP on the physical disk and save it there. If no ESPs are available it save to "/".

I think can be an alternative to 80.save_nvram_plist.local.

 

Yep, you can dump nvram also when the System goes to sleep (is an option in the settings) and as I said you can try by specifying another file name.

 

PS support 10.7+ and in yosemite + follow the dark theme of the system if set automatically. Retina display support.

Tested in El Capitan and Sierra, not in old ones, but I will do it shortly (is beta)

 

P.S. obviously shows you the contents of the NVRAM

Nice!.

 

I want to know that never failure case?

Rc script still has failure case.

Maybe related mount issue sometimes.

 

Can i use both rc script and your app?

 

나의 LG-F410S 의 Tapatalk에서 보냄

Link to comment
Share on other sites

Nice!.

 

I want to know that never failure case?

Rc script still has failure case.

Maybe related mount issue sometimes.

 

Can i use both rc script and your app?

 

나의 LG-F410S 의 Tapatalk에서 보냄

Yes but change the name of the file like this way:

post-674334-0-43658600-1487445367_thumb.png

"sherlocksNvram" ... and will be saved as 'sherlocksNvram.plist'. That just to not overwrite the same file!

  • Like 1
Link to comment
Share on other sites

You can :yes: : attachicon.gifNVRAM Dumper Pro.app_v1.0_(beta).zip

 

It's a top-bar app that cost 0 to the System, and is configurable.

By default, the first time you use it, detect if you have real NVRAM support and deactivate the dump on disk, otherwise marked as active (you can rearm it). Under its settings you can set also a different file name and if you want to save to a subdirectory:

attachicon.gifnvram.png

 

By default, if fields are empty, save nvram.plist to the root of the boot partition;

if for some reason the boot partition is no longer available (a USB stick ejected?) dump nvram to the ESP and if the current OS is running on a logical volume open the ESP on the physical disk and save it there. If no ESPs are available it save to "/".

I think can be an alternative to 80.save_nvram_plist.local.

 

Yep, you can dump nvram also when the System goes to sleep (is an option in the settings) and as I said you can try by specifying another file name.

 

P.S. support 10.7+ and in yosemite + follow the dark theme of the system if set automatically. Retina display support.

Tested in El Capitan and Sierra, not in old ones, but I will do it shortly (is beta)

 

P.S.2 obviously shows you the contents of the NVRAM

Is this open source?

Link to comment
Share on other sites

Is this open source?

Even if could be, this app use a payed developer id certificate (valid until 2025) to do some privileged tasks and building it will break Clover compilation or anyway a long long and complicate setup to be done, but even after this the Helper Tools that the app installs can have a different code signature if builted by another person, causing it to not be usable. So let other peoples doing that is dangerous and useless, and for most w/o nvram because not saved.

Link to comment
Share on other sites

Even if could be, this app use a payed developer id certificate (valid until 2025) to do some privileged tasks and building it will break Clover compilation or anyway a long long and complicate setup to be done, but even after this the Helper Tools that the app installs can have a different code signature if builted by another person, causing it to not be usable. So let other peoples doing that is dangerous and useless, and for most w/o nvram because not saved.

Why are you assuming that others don't have a payed developer ID. I just don't want to run a closed source software on my system and therefore my question, hence I'm interested in what you(r software) promise...

 

A simple "no" would have been enough ;)

Link to comment
Share on other sites

You can :yes: : attachicon.gifNVRAM Dumper Pro.app_v1.0_(beta).zip

 

It's a top-bar app that cost 0 resources to the System , and is configurable.

By default, the first time you use it, detect if you have real NVRAM support and deactivate the dump on disk, otherwise marked as active (you can rearm it). Under its settings you can set also a different file name and if you want to save to a subdirectory:

attachicon.gifnvram.png

 

By default, if fields are empty, save nvram.plist to the root of the boot partition;

if for some reason the boot partition is no longer available (a USB stick ejected?) dump nvram to the ESP and if the current OS is running on a logical volume open the ESP on the physical disk and save it there. If no ESPs are available it save to "/".

I think can be an alternative to 80.save_nvram_plist.local.

 

Yep, you can dump nvram also when the System goes to sleep (is an option in the settings) and as I said you can try by specifying another file name.

 

P.S. support 10.7+ and in yosemite + follow the dark theme of the system, if set, automatically. Retina display support.

Tested in El Capitan and Sierra, not in old ones, but I will do it shortly (is beta)

 

P.S.2 obviously shows you the contents of the NVRAM

Test in 10.7.5

Screen Shot 2017-02-20 at 12.26.59.png

Link to comment
Share on other sites

Hi, Micky1979

It works in Sierra without problem but my new computer can't sleep and I can't test  the main function.

Tell me, please, can it save variables with other GUID? For example

8BE4DF61-93CA-11D2-AA0D-00E098032B8C:Boot0082

It is produces by macOS only when going to hibernatesleep and used to perform hibernation.

Link to comment
Share on other sites

Hi, Micky1979

It works in Sierra without problem but my new computer can't sleep and I can't test  the main function.

Tell me, please, can it save variables with other GUID? For example

8BE4DF61-93CA-11D2-AA0D-00E098032B8C:Boot0082

It is produces by macOS only when going to hibernatesleep and used to perform hibernation.

Fixed the error in my PC where I have Mac OS 10.7.5, but now I have to see if the file is correctly saved.. after a wake from sleep I'll tell you, otherwise some minutes.

The app can add all GUIDs you want, and I can make this conditional if the booter is Clover and if we are shoutting down/restaring or sleeping. Also I can add/remove stuff if the pc is waking up.. just tell me.

See you after my testing

 

EDIT

What is 'BootNext', and what the value for 'Boot0082' ? they appear to be hex data..

Link to comment
Share on other sites

Fixed the error in my PC where I have Mac OS 10.7.5, but now I have to see if the file is correctly saved.. after a wake from sleep I'll tell you, otherwise some minutes.

The app can add all GUIDs you want, and I can make this conditional if the booter is Clover and if we are shoutting down/restaring or sleeping. Also I can add/remove stuff if the pc is waking up.. just tell me.

See you after my testing

 

EDIT

What is 'BootNext', and what the value for 'Boot0082' ? they appear to be hex data..

From Clover investigations

/*
    Variable NV+RT+BS '7C436110-AB2A-4BBB-A880-FE41995C9F82:boot-image' DataSize = 0x3A
    00000000: 02 01 0C 00 D0 41 03 0A-00 00 00 00 01 01 06 00  *.....A..........*
    00000010: 02 1F 03 12 0A 00 00 00-00 00 00 00 04 04 1A 00  *................*
    00000020: 33 00 36 00 63 00 34 00-64 00 64 00 63 00 30 00  *3.6.c.4.d.d.c.0.*
    00000030: 30 00 30 00 00 00 7F FF-04 00                    *0.0.......*
     02 - ACPI_DEVICE_PATH
     01 - ACPI_DP
     0C - 4 bytes
     00 D0 41 03 - PNP0A03
     
 // FileVault2
  4:609  0:000      Boot0082 points to Volume with UUID:BA92975E-E2FB-48E6-95CC-8138B286F646
  4:609  0:000      boot-image before: PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x5,0x0,0x0)\25593c7000:A82E84C6-9DD6-49D6-960A-0F4C2FE4851C
*/

Link to comment
Share on other sites

 

From Clover investigations

/*
    Variable NV+RT+BS '7C436110-AB2A-4BBB-A880-FE41995C9F82:boot-image' DataSize = 0x3A
    00000000: 02 01 0C 00 D0 41 03 0A-00 00 00 00 01 01 06 00  *.....A..........*
    00000010: 02 1F 03 12 0A 00 00 00-00 00 00 00 04 04 1A 00  *................*
    00000020: 33 00 36 00 63 00 34 00-64 00 64 00 63 00 30 00  *3.6.c.4.d.d.c.0.*
    00000030: 30 00 30 00 00 00 7F FF-04 00                    *0.0.......*
     02 - ACPI_DEVICE_PATH
     01 - ACPI_DP
     0C - 4 bytes
     00 D0 41 03 - PNP0A03
     
 // FileVault2
  4:609  0:000      Boot0082 points to Volume with UUID:BA92975E-E2FB-48E6-95CC-8138B286F646
  4:609  0:000      boot-image before: PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x5,0x0,0x0)\25593c7000:A82E84C6-9DD6-49D6-960A-0F4C2FE4851C
*/

Ok, fixed and tested in 10.7.5, plus I've added the possibility of adding custom keys while dumping the nvram:

post-674334-0-96084600-1487725464_thumb.png

 

You can add what you like with Data, String and Number tags. Like a plist Data tag must contains a valid hex datas, Number means integers (floats/double are converted to max 32 bit int). String can be what you like. If you type invalid characters for Data/Numbers, the app will continue beebing until you fix it. Keys with lenght 0 will not be saved.

Actually there's no check for duplicate keys, so in the case, the higer index is what will finish to nvram.plist.

 

This is a new version and the first time will require to reinstall the helper tool, and you have to restart the app manually (later will be sutomatic). Before try this new one uncheck "run at login" from the old one, otherwise you will have two apps loaded..

NVRAM Dumper Pro.app_v1.1_(beta1).zip

  • Like 2
Link to comment
Share on other sites

FYI this EDK2 commit breaks the Clover build

 

Below is a patch to edk2 tree to revert it

diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py b/BaseTools/Source/Python/Workspace/MetaFileParser.py
index 37a7f5d..da525bb 100644
--- a/BaseTools/Source/Python/Workspace/MetaFileParser.py
+++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py
@@ -351,13 +351,6 @@ class MetaFileParser(object):
 
         self._ValueList = [ReplaceMacro(Value, self._Macros) for Value in self._ValueList]
         Name, Value = self._ValueList[1], self._ValueList[2]
-        MacroUsed = GlobalData.gMacroRefPattern.findall(Value)
-        if len(MacroUsed) != 0:
-            for Macro in MacroUsed:
-                if Macro in GlobalData.gGlobalDefines:
-                    EdkLogger.error("Parser", FORMAT_INVALID, "Global macro %s is not permitted." % (Macro), ExtraData=self._CurrentLine, File=self.MetaFile, Line=self._LineIndex + 1)
-            else:
-                EdkLogger.error("Parser", FORMAT_INVALID, "%s not defined" % (Macro), ExtraData=self._CurrentLine, File=self.MetaFile, Line=self._LineIndex + 1)
         # Sometimes, we need to make differences between EDK and EDK2 modules 
         if Name == 'INF_VERSION':
             if re.match(r'0[xX][\da-f-A-F]{5,8}', Value):
diff --git a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
index 0686721..dbe2986 100644
--- a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
+++ b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
@@ -1830,8 +1830,6 @@ class InfBuildData(ModuleBuildClassObject):
             if self.AutoGenVersion < 0x00010005:
                 self.__Macros.update(GlobalData.gEdkGlobal)
                 self.__Macros.update(GlobalData.gGlobalDefines)
-            else:
-                self.__Macros.update(self.Defines)
         return self.__Macros
 
     ## Get architecture
Link to comment
Share on other sites

FYI this EDK2 commit breaks the Clover build

 

Below is a patch to edk2 tree to revert it

diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py b/BaseTools/Source/Python/Workspace/MetaFileParser.py
index 37a7f5d..da525bb 100644
--- a/BaseTools/Source/Python/Workspace/MetaFileParser.py
+++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py
@@ -351,13 +351,6 @@ class MetaFileParser(object):
 
         self._ValueList = [ReplaceMacro(Value, self._Macros) for Value in self._ValueList]
         Name, Value = self._ValueList[1], self._ValueList[2]
-        MacroUsed = GlobalData.gMacroRefPattern.findall(Value)
-        if len(MacroUsed) != 0:
-            for Macro in MacroUsed:
-                if Macro in GlobalData.gGlobalDefines:
-                    EdkLogger.error("Parser", FORMAT_INVALID, "Global macro %s is not permitted." % (Macro), ExtraData=self._CurrentLine, File=self.MetaFile, Line=self._LineIndex + 1)
-            else:
-                EdkLogger.error("Parser", FORMAT_INVALID, "%s not defined" % (Macro), ExtraData=self._CurrentLine, File=self.MetaFile, Line=self._LineIndex + 1)
         # Sometimes, we need to make differences between EDK and EDK2 modules 
         if Name == 'INF_VERSION':
             if re.match(r'0[xX][\da-f-A-F]{5,8}', Value):
diff --git a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
index 0686721..dbe2986 100644
--- a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
+++ b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
@@ -1830,8 +1830,6 @@ class InfBuildData(ModuleBuildClassObject):
             if self.AutoGenVersion < 0x00010005:
                 self.__Macros.update(GlobalData.gEdkGlobal)
                 self.__Macros.update(GlobalData.gGlobalDefines)
-            else:
-                self.__Macros.update(self.Defines)
         return self.__Macros
 
     ## Get architecture

Include it into patches_for_EDK2?

Link to comment
Share on other sites

@Slice @syscl, there is still problem with the latest 80.save_nvram_plist.local 1.15. On my desktop, except touching the .metadata_never_index file in EFI, it creates one at the root folder as well.

Good report. I also reported other issue.

 

1.5 still has issues. Spin wait and metadata never index can't help failure case in my case and your case.

 

I will report it to syscl.

Now, he is busy. Because he has exams.

 

Thank you

 

나의 LG-F410S 의 Tapatalk에서 보냄

  • Like 1
Link to comment
Share on other sites

Ok, fixed and tested in 10.7.5, plus I've added the possibility of adding custom keys while dumping the nvram:

attachicon.gifbeta1.png

 

You can add what you like with Data, String and Number tags. Like a plist Data tag must contains a valid hex datas, Number means integers (floats/double are converted to max 32 bit int). String can be what you like. If you type invalid characters for Data/Numbers, the app will continue beebing until you fix it. Keys with lenght 0 will not be saved.

Actually there's no check for duplicate keys, so in the case, the higer index is what will finish to nvram.plist.

 

This is a new version and the first time will require to reinstall the helper tool, and you have to restart the app manually (later will be sutomatic). Before try this new one uncheck "run at login" from the old one, otherwise you will have two apps loaded..

Tested with sleep to hibernatemode 25.

Yes, there is boot0082 saved!

	<key>8BE4DF61-93CA-11D2-AA0D-00E098032B8C:Boot0082</key>
	<string></string>

This is the great application in this case!

Link to comment
Share on other sites

But why I see no decryption key? The application works before it set?


And boot0082 is fake

42:436  0:003  DeleteBootOption: Boot0082
42:440  0:003   Error del. variable: Boot0082 = Not Found
42:451  0:010  Options 0082 was not deleted: Not Found

Link to comment
Share on other sites

I have poor references about that sorry, except some from xnu/macosxbootloader/chameleon/revoboot which still counfusing. You may want to read what people talk earlier in this thread. Clover appear to have new settings under "BootGraphics". Have you tried it? They store "UIScale" value into nvram like described in this blog.

 

 

Thank you—

 

I tried compiling that person's EFI script (ended up having to install an Ubuntu VM, because I could not get it to work in OS X). Unfortunately the script does not work for me; I tried adding some "debug" printout lines but I don't see an easy fix. (A simple "Hello, world" EFI script does work.)

 

Do you know how I can manipulate Clover BootGraphics settings instead? Would I have to edit Settings.c and build the entire Clover package locally?

Link to comment
Share on other sites

×
×
  • Create New...