superchase9000 Posted February 18, 2017 Share Posted February 18, 2017 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 More sharing options...
Micky1979 Posted February 18, 2017 Share Posted February 18, 2017 It will be nice, if possible. You can : 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: 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 3 Link to comment Share on other sites More sharing options...
Sherlocks Posted February 18, 2017 Share Posted February 18, 2017 You can : NVRAM 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: nvram.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 More sharing options...
Micky1979 Posted February 18, 2017 Share Posted February 18, 2017 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: "sherlocksNvram" ... and will be saved as 'sherlocksNvram.plist'. That just to not overwrite the same file! 1 Link to comment Share on other sites More sharing options...
smolderas Posted February 18, 2017 Share Posted February 18, 2017 You can : NVRAM 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: nvram.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 More sharing options...
Micky1979 Posted February 18, 2017 Share Posted February 18, 2017 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 More sharing options...
smolderas Posted February 18, 2017 Share Posted February 18, 2017 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 More sharing options...
Micky1979 Posted February 18, 2017 Share Posted February 18, 2017 Good luck than using opensource softwares in OSX 2 Link to comment Share on other sites More sharing options...
Slice Posted February 20, 2017 Share Posted February 20, 2017 You can : 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: nvram.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 Link to comment Share on other sites More sharing options...
Slice Posted February 21, 2017 Share Posted February 21, 2017 You can : NVRAM Dumper Pro.app_v1.0_(beta).zip 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 More sharing options...
Micky1979 Posted February 21, 2017 Share Posted February 21, 2017 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 More sharing options...
Slice Posted February 21, 2017 Share Posted February 21, 2017 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 More sharing options...
Micky1979 Posted February 22, 2017 Share Posted February 22, 2017 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: 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 2 Link to comment Share on other sites More sharing options...
Zenith432 Posted February 22, 2017 Share Posted February 22, 2017 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 More sharing options...
Slice Posted February 22, 2017 Share Posted February 22, 2017 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 More sharing options...
mhaeuser Posted February 22, 2017 Share Posted February 22, 2017 Include it into patches_for_EDK2? You could also fix your code base... Link to comment Share on other sites More sharing options...
Zenith432 Posted February 22, 2017 Share Posted February 22, 2017 Good luck figuring out how... I tried and gave up - reverted the EDK2 change instead. You could also fix your code base... Link to comment Share on other sites More sharing options...
Philip Petev Posted February 22, 2017 Share Posted February 22, 2017 @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. 1 Link to comment Share on other sites More sharing options...
Sherlocks Posted February 22, 2017 Share Posted February 22, 2017 @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에서 보냄 1 Link to comment Share on other sites More sharing options...
Slice Posted February 23, 2017 Share Posted February 23, 2017 Ok, fixed and tested in 10.7.5, plus I've added the possibility of adding custom keys while dumping the nvram: beta1.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 More sharing options...
Micky1979 Posted February 23, 2017 Share Posted February 23, 2017 Thanks , small bugs typing strings, but I'll fix it soon. 1 Link to comment Share on other sites More sharing options...
Slice Posted February 23, 2017 Share Posted February 23, 2017 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 More sharing options...
Micky1979 Posted February 23, 2017 Share Posted February 23, 2017 Hi Slice. Sorry really short time now, but with a quick look at the source I've lost where Clover handles the separator ':', can be this the problem? Link to comment Share on other sites More sharing options...
Zenith432 Posted February 23, 2017 Share Posted February 23, 2017 The part that couldn't be adapted to in WorkspaceDatabase.py was a regression. It's now been fixed in this commit. Good luck figuring out how... I tried and gave up - reverted the EDK2 change instead. Link to comment Share on other sites More sharing options...
randombrain Posted February 23, 2017 Share Posted February 23, 2017 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 More sharing options...
Recommended Posts