TheRacerMaster Posted August 23, 2017 Share Posted August 23, 2017 The platform-feature changes in Clover are the cause of the memory tab disappearing. In your NoName dump, you were running r4173, which didn't inject a platform-feature value into SMBIOS table type 133. In your NoRAM dump, you were running r4182, which does inject a model-specific platform-feature value into SMBIOS table type 133 (this was enabled in r4175 by Sherlocks). MacBookPro13,3/14,3 use 0x1A (26) as the platform-feature value, which is responsible for the disappearance of the memory tab (which makes sense, as those models have soldered RAM). I did some reversing of AppleSystemInfo.framework & SPMemoryReporter to confirm this. SPMemoryReporter (/System/Library/System Profiler/SPMemoryReporter.spreporter) is responsible for updating the memory section in System Information. In updateDictionary, it sets Upgradeable Memory (in System Information/Memory) to either Yes or No depending on a few factors. //----- (0000000000001059) ---------------------------------------------------- // SPMemoryReporter - (id)updateDictionary:(id) id __cdecl -[SPMemoryReporter updateDictionary:](struct SPMemoryReporter *self, SEL a2, id a3) { ... // Get the SMBIOS product name CFStringRef v4 = ASI_CopyComputerModelName(true); CFStringRef v5 = v4; // Check if begins with "MacBookAir" or "MacBookPro10" bool v6 = CFStringHasPrefix(v4, CFSTR("MacBookAir")); bool v7 = CFStringHasPrefix(v5, CFSTR("MacBookPro10,1")); CFRelease(v5); // True if platform feature 2 is disabled bool v221 = ASI_IsPlatformFeatureEnabled(2) == 0; // True if the SMBIOS product name doesn't begin with MacBookAir or MacBookPro10,1 bool v196 = (v6 | v7) == 0; ... bool v197 = v221 && v196; ... LABEL_149: v168 = v20(classRef_NSMutableDictionary, selRef_alloc); v169 = v20(v168, selRef_init); v20(v169, selRef_setObject_forKey_, v204, &cfstr__items); v20(v204, selRef_release); // Set "Upgradeable Memory" in System Information/Memory to "No" v170 = CFSTR("No"); if ( v197 ) // Set "Upgradeable Memory" in System Information/Memory to "Yes" v170 = CFSTR("Yes"); v20(v169, selRef_setObject_forKey_, v170); ... } For reference, ASI_CopyComputerModelName(false) returns a CFStringRef of "MacBook Pro" (using localizations). ASI_CopyComputerModelName(true) returns a CFStringRef of the SMBIOS product name (in this case, "MacBookPro14,3"). As for ASI_IsPlatformFeatureEnabled, you can see a somewhat complete (excluding the platform override debug case) implementation here (partially reproduced below). bool ASI_IsPlatformFeatureEnabled(int feature) { int v2 = false; int v3 = 0; bool v4 = false; CFStringRef v5 = NULL; CFStringRef v6 = NULL; bool v7 = false; bool v8 = false; bool v9 = false; bool v10 = false; v3 = (unsigned int) feature & (unsigned int) GetIOPlatformFeature(); v2 = (v3 == feature); v4 = (v3 != (unsigned int) feature); if (feature == 2 && v4) { v5 = ASI_CopyComputerModelName(true); v6 = v5; if (v5) { v7 = CFStringHasPrefix(v5, CFSTR("MacBookAir")); v8 = CFStringHasPrefix(v6, CFSTR("MacBookPro10")); CFRelease(v6); v9 = v7 != 0; v10 = v8 != 0; } else { v9 = false; v10 = false; } if (v9 || v10) { v2 = true; } } return v2; } For some feature values (such as feature 2), this is simple a bitwise AND (feature_num AND GetIOPlatformFeature()), with some exceptions (e.g. MacBookPro10,x/MacBookAirX,X). If ASI_IsPlatformFeatureEnabled(2) returns true, the system has soldered RAM (which isn't upgradeable by the user). Setting platform-feature to 0x18 (24, setting the second bit to 0) instead of 0x1A (26) should disable platform feature 2, restoring the memory tab in About This Mac. You could also not inject a platform feature value at all by setting config.plist/SMBIOS/PlatformFeature to 0xFFFF. Edit: Some more info + RE'd implementations can be found in this repo: https://github.com/al3xtjames/AppleSystemInfo 9 Link to comment Share on other sites More sharing options...
Sherlocks Posted August 23, 2017 Share Posted August 23, 2017 The platform-feature changes in Clover are the cause of the memory tab disappearing. In your NoName dump, you were running r4173, which didn't inject a platform-feature value into SMBIOS table type 133. In your NoRAM dump, you were running r4182, which does inject a model-specific platform-feature value into SMBIOS table type 133 (this was enabled in r4175 by Sherlocks). MacBookPro13,3/14,3 use 0x1A (26) as the platform-feature value, which is responsible for the disappearance of the memory tab (which makes sense, as those models have soldered RAM). I did some reversing of AppleSystemInfo.framework & SPMemoryReporter to confirm this. SPMemoryReporter (/System/Library/System Profiler/SPMemoryReporter.spreporter) is responsible for updating the memory section in System Information. In updateDictionary, it sets Upgradeable Memory (in System Information/Memory) to either Yes or No depending on a few factors. //----- (0000000000001059) ----------------------------------------------------// SPMemoryReporter - (id)updateDictionary:(id) id __cdecl -[SPMemoryReporter updateDictionary:](struct SPMemoryReporter *self, SEL a2, id a3){ ... // Get the SMBIOS product name CFStringRef v4 = ASI_CopyComputerModelName(true); CFStringRef v5 = v4; // Check if begins with "MacBookAir" or "MacBookPro10" bool v6 = CFStringHasPrefix(v4, CFSTR("MacBookAir")); bool v7 = CFStringHasPrefix(v5, CFSTR("MacBookPro10,1")); CFRelease(v5); // True if platform feature 2 is disabled bool v221 = ASI_IsPlatformFeatureEnabled(2) == 0; // True if the SMBIOS product name doesn't begin with MacBookAir or MacBookPro10,1 bool v196 = (v6 | v7) == 0; ... bool v197 = v221 && v196; ...LABEL_149: v168 = v20(classRef_NSMutableDictionary, selRef_alloc); v169 = v20(v168, selRef_init); v20(v169, selRef_setObject_forKey_, v204, &cfstr__items); v20(v204, selRef_release); // Set "Upgradeable Memory" in System Information/Memory to "No" v170 = CFSTR("No"); if ( v197 ) // Set "Upgradeable Memory" in System Information/Memory to "Yes" v170 = CFSTR("Yes"); v20(v169, selRef_setObject_forKey_, v170); ...}For reference, ASI_CopyComputerModelName(false) returns a CFStringRef of "MacBook Pro" (using localizations). ASI_CopyComputerModelName(true) returns a CFStringRef of the SMBIOS product name (in this case, "MacBookPro14,3"). As for ASI_IsPlatformFeatureEnabled, you can see a somewhat complete (excluding the platform override debug case) implementation here (partially reproduced below). bool ASI_IsPlatformFeatureEnabled(int feature){ int v2 = false; int v3 = 0; bool v4 = false; CFStringRef v5 = NULL; CFStringRef v6 = NULL; bool v7 = false; bool v8 = false; bool v9 = false; bool v10 = false; // skipped the platform override part v3 = (unsigned int) feature & (unsigned int) GetIOPlatformFeature(); v2 = (v3 == feature); v4 = (v3 != (unsigned int) feature); if (feature == 2 && v4) { v5 = ASI_CopyComputerModelName(true); v6 = v5; if (v5) { v7 = CFStringHasPrefix(v5, CFSTR("MacBookAir")); v8 = CFStringHasPrefix(v6, CFSTR("MacBookPro10")); CFRelease(v6); v9 = v7 != 0; v10 = v8 != 0; } else { v9 = false; v10 = false; } if (v9 || v10) { v2 = true; } } return v2;}In most cases, this is simple a bitwise AND (feature_num AND GetIOPlatformFeature()). If ASI_IsPlatformFeatureEnabled(2) returns true, the system has soldered RAM (which isn't upgradeable by the user). Setting platform-feature to 0x18 (24, setting the second bit to 0) instead of 0x1A (26) should disable platform feature 2, restoring the memory tab in About This Mac. Hi TheRacerMaster. Thank you for info. I just followed reference value from each models. So need to change 0x1a to 0x18 for only macbook, macbookpro? Imac and other smbios model also consider other value? I just wonder best way. Or return default 0xFFFF for all models? Thanks in advance 나의 LG-F800S 의 Tapatalk에서 보냄 EDIT1. i checked 0x1a on macpro6,1, i lost ram tap. 1 Link to comment Share on other sites More sharing options...
TheRacerMaster Posted August 23, 2017 Share Posted August 23, 2017 I would keep using the default values, at least for now. Your platform feature values in platformdata.c seem accurate (MacBook8,1+/MacBookPro10,1+/Macmini7,1+ all have soldered RAM). 2 Link to comment Share on other sites More sharing options...
Sherlocks Posted August 23, 2017 Share Posted August 23, 2017 I would keep using the default values, at least for now. Your platform feature values in platformdata.c seem accurate (MacBook8,1+/MacBookPro10,1+/Macmini7,1+ all have soldered RAM). okay. keep reference value. i will add info from your info about ram tap. sorry for my bad english. thank you so much for clear platform feature define 1 Link to comment Share on other sites More sharing options...
gujiangjiang Posted August 23, 2017 Share Posted August 23, 2017 okay. keep reference value. i will add info from your info about ram tap. sorry for my bad english. thank you so much for clear platform feature define I am also think keep value default. your date in platformdata are correct so just keep the right value for the best performance. Thanks for your work. 从我的 iPhone 发送,使用 Tapatalk I would keep using the default values, at least for now. Your platform feature values in platformdata.c seem accurate (MacBook8,1+/MacBookPro10,1+/Macmini7,1+ all have soldered RAM). Yes i ask some people who have MacBookPro 2016 or 2017 they also dont have RAM tab so i prefered keep the accurate data on platformdata. And thanks for your patch to make the SK Hynix DDR4 Ram recognized correctly! 从我的 iPhone 发送,使用 Tapatalk 1 Link to comment Share on other sites More sharing options...
chris1111 Posted August 24, 2017 Share Posted August 24, 2017 Since some revisions already, the USB icon is missing from Clover Edit** Only the HS usb icons is missing ** After a few tests and checks, it seems that the USB volume APFS that is not visible Link to comment Share on other sites More sharing options...
Sherlocks Posted August 25, 2017 Share Posted August 25, 2017 board-id: Mac-DB15BD556843C820 – Model: iMac17,1 (Retina 5K, 27-inch, Late 2015) / Core i5 3.2GHz board-id: Mac-B809C3757DA9BB8D – Model: iMac17,1 (Retina 5K, 27-inch, Late 2015) / Core i5 3.3GHz board-id: Mac-65CE76090165799A – Model: iMac17,1 (Retina 5K, 27-inch, Late 2015) / Core i7 4.0GHz thanks to pike for imac17,1 board list i searched smc data according to board-id for our data accuracy when i'm updating platformdata iMac17,1 (Mac-65CE76090165799A) Model: iMac17,1, BootROM IM171.0105.B09, 4 processors, Intel Core i5, 3.2 GHz, 8 GB, SMC 2.33f10 Graphics: AMD Radeon R9 M380, AMD Radeon R9 M380, PCIe, 2048 MB 1.link iMac17,1 (Mac-DB15BD556843C820) Model: iMac17,1, BootROM IM171.0105.B08, 4 processors, Intel Core i5, 3.2 GHz, 16 GB, SMC 2.33f10 Graphics: AMD Radeon R9 M390, AMD Radeon R9 M390, PCIe, 2048 MB 1.link 2.link iMac17,1 (Mac-B809C3757DA9BB8D) Model: iMac17,1, BootROM IM171.0105.B26, 4 processors, Intel Core i7, 4 GHz, 24 GB, SMC 2.34f2 Graphics: AMD Radeon R9 M395, AMD Radeon R9 M395, PCIe, 2048 MB 1.link now, clover default Mac-B809C3757DA9BB8D smc 2.33f10 @Slice what is your default imac17,1 board-id? we need to match board-id and smc for clear data. also i have a idea for two smc values thanks in advance Link to comment Share on other sites More sharing options...
Slice Posted August 26, 2017 Share Posted August 26, 2017 board-id: Mac-DB15BD556843C820 – Model: iMac17,1 (Retina 5K, 27-inch, Late 2015) / Core i5 3.2GHz board-id: Mac-B809C3757DA9BB8D – Model: iMac17,1 (Retina 5K, 27-inch, Late 2015) / Core i5 3.3GHz board-id: Mac-65CE76090165799A – Model: iMac17,1 (Retina 5K, 27-inch, Late 2015) / Core i7 4.0GHz thanks to pike for imac17,1 board list i searched smc data according to board-id for our data accuracy when i'm updating platformdata iMac17,1 (Mac-65CE76090165799A) Model: iMac17,1, BootROM IM171.0105.B09, 4 processors, Intel Core i5, 3.2 GHz, 8 GB, SMC 2.33f10 Graphics: AMD Radeon R9 M380, AMD Radeon R9 M380, PCIe, 2048 MB 1.link iMac17,1 (Mac-DB15BD556843C820) Model: iMac17,1, BootROM IM171.0105.B08, 4 processors, Intel Core i5, 3.2 GHz, 16 GB, SMC 2.33f10 Graphics: AMD Radeon R9 M390, AMD Radeon R9 M390, PCIe, 2048 MB 1.link 2.link iMac17,1 (Mac-B809C3757DA9BB8D) Model: iMac17,1, BootROM IM171.0105.B26, 4 processors, Intel Core i7, 4 GHz, 24 GB, SMC 2.34f2 Graphics: AMD Radeon R9 M395, AMD Radeon R9 M395, PCIe, 2048 MB 1.link now, clover default Mac-B809C3757DA9BB8D smc 2.33f10 @Slice what is your default imac17,1 board-id? we need to match board-id and smc for clear data. also i have a idea for two smc values thanks in advance Currently I am using iMac17,1 (Mac-B809C3757DA9BB8D) Model: iMac17,1, BootROM IM171.0105.B26, 4 processors, Intel Core i7, 4 GHz, 24 GB, SMC 2.34f2 Graphics: AMD Radeon R9 M395, AMD Radeon R9 M395, PCIe, 2048 MB 1. Although I have i5 skylake. I think it is bad idea to change Clover everyday with new Mac updating. It should be better to allow users to customise those values including SMC. 2 Link to comment Share on other sites More sharing options...
Sherlocks Posted August 26, 2017 Share Posted August 26, 2017 Currently I am using iMac17,1 (Mac-B809C3757DA9BB8D) Model: iMac17,1, BootROM IM171.0105.B26, 4 processors, Intel Core i7, 4 GHz, 24 GB, SMC 2.34f2 Graphics: AMD Radeon R9 M395, AMD Radeon R9 M395, PCIe, 2048 MB 1. Although I have i5 skylake. I think it is bad idea to change Clover everyday with new Mac updating. It should be better to allow users to customise those values including SMC. thanks. Does it mean smc option at config for smc part to avoid every update like BiosVersion? Edit1. Why did you change smc 2.33f10 before on r4090? Thanks in advance 나의 LG-F800S 의 Tapatalk에서 보냄 Link to comment Share on other sites More sharing options...
Slice Posted August 26, 2017 Share Posted August 26, 2017 thanks. Does it mean smc option at config for smc part to avoid every update like BiosVersion? Edit1. Why did you change smc 2.33f10 before on r4090? Thanks in advance 나의 LG-F800S 의 Tapatalk에서 보냄 I use Clover 4128 and SMC 2.33f10 1 Link to comment Share on other sites More sharing options...
Sherlocks Posted August 26, 2017 Share Posted August 26, 2017 I use Clover 4128 and SMC 2.33f10I saw you changed imac17 2.34f2 to 2.33f10 on r4090 commit Clover's default imac17.1 Board-ID is Mac-B809C3757DA9BB8D Seems wrong smc value. Ofc its not big problem. Just checked yesterday and report it to you. Because you are using imac171 smbios. iMac17,1 (Mac-B809C3757DA9BB8D) Model: iMac17,1, BootROM IM171.0105.B26, 4 processors, Intel Core i7, 4 GHz, 24 GB, SMC 2.34f2 나의 LG-F800S 의 Tapatalk에서 보냄 Link to comment Share on other sites More sharing options...
zxv Posted August 26, 2017 Share Posted August 26, 2017 board-id: Mac-DB15BD556843C820 – Model: iMac17,1 (Retina 5K, 27-inch, Late 2015) / Core i5 3.2GHz board-id: Mac-B809C3757DA9BB8D – Model: iMac17,1 (Retina 5K, 27-inch, Late 2015) / Core i5 3.3GHz board-id: Mac-65CE76090165799A – Model: iMac17,1 (Retina 5K, 27-inch, Late 2015) / Core i7 4.0GHz thanks to pike for imac17,1 board list The Pike list is wrong. Real iMac17,1 w/ i7-6700K 4.0GHz uses board-id Mac-B809C3757DA9BB8D. 1 Link to comment Share on other sites More sharing options...
Sherlocks Posted August 26, 2017 Share Posted August 26, 2017 The Pike list is wrong. Real iMac17,1 w/ i7-6700K 4.0GHz uses board-id Mac-B809C3757DA9BB8D.Okay one more check corrected info later. Thank you for info EDIT1. You are right. I added link for info. Shown corrected info about cpu. Pike's imac171 is wrong EDIT2. i just wonder that now clover is not match Boardid and smc value for imac17.1 What is choose one as default between i5 or i7 boardid and match smc value. Hmm. I dont use imac17.1 Slice uses imac17.1 smbios. So i wonder slice think. Then match smc value. EDIT3. or support smc key at config for user. Thanks in advance 나의 LG-F800S 의 Tapatalk에서 보냄 2 Link to comment Share on other sites More sharing options...
SavageAUS Posted August 26, 2017 Share Posted August 26, 2017 Okay one more check corrected info later. Thank you for info EDIT1. You are right. I added link for info. Shown corrected info about cpu. Pike's imac171 is wrong EDIT2. i just wonder that now clover is not match Boardid and smc value for imac17.1 What is choose one as default between i5 or i7 boardid and match smc value. Hmm. I dont use imac17.1 Slice uses imac17.1 smbios. So i wonder slice think. Then match smc value. Thanks in advance 나의 LG-F800S 의 Tapatalk에서 보냄 This is what my smbios looks like for iMac 17,1 <dict> <key>BiosReleaseDate</key> <string>08/08/2017</string> <key>BiosVendor</key> <string>Apple Inc.</string> <key>BiosVersion</key> <string>IM171.88Z.0110.B00.1708080012</string> <key>Board-ID</key> <string>Mac-B809C3757DA9BB8D</string> <key>BoardManufacturer</key> <string>Apple Inc.</string> <key>BoardSerialNumber</key> <string></string> <key>BoardType</key> <integer>10</integer> <key>BoardVersion</key> <string>iMac17,1</string> <key>ChassisAssetTag</key> <string>iMac-Aluminum</string> <key>ChassisManufacturer</key> <string>Apple Inc.</string> <key>ChassisType</key> <string>0x09</string> <key>Family</key> <string>iMac</string> <key>LocationInChassis</key> <string>Part Component</string> <key>Manufacturer</key> <string>Apple Inc.</string> <key>ProductName</key> <string>iMac17,1</string> <key>SerialNumber</key> <string></string> <key>SmUUID</key> <string></string> <key>Trust</key> <true/> <key>Version</key> <string>1.0</string> </dict> </plist> Link to comment Share on other sites More sharing options...
zxv Posted August 26, 2017 Share Posted August 26, 2017 Okay one more check corrected info later. Thank you for info EDIT1. You are right. I added link for info. Shown corrected info about cpu. Pike's imac171 is wrong EDIT2. i just wonder that now clover is not match Boardid and smc value for imac17.1 What is choose one as default between i5 or i7 boardid and match smc value. Hmm. I dont use imac17.1 Slice uses imac17.1 smbios. So i wonder slice think. Then match smc value. EDIT3. or support smc key at config for user. Thanks in advance 나의 LG-F800S 의 Tapatalk에서 보냄 I know Mac-B809C3757DA9BB8D should use SMC 2.34f2—if set below this version, system updates will attempt to install an update to 2.34f2 in /EFI/APPLE/UPDATERS/SMC. As for the other iMac17,1 board-id models, I'm not sure. 1 Link to comment Share on other sites More sharing options...
Sherlocks Posted August 26, 2017 Share Posted August 26, 2017 I know Mac-B809C3757DA9BB8D should use SMC 2.34f2—if set below this version, system updates will attempt to install an update to 2.34f2 in /EFI/APPLE/UPDATERS/SMC. As for the other iMac17,1 board-id models, I'm not sure.Yes. You mentioned major point at each BoardID and SMC correctly match. But its not now for imac171 in clover.So i wonder that r4090 commited for iMac171 SMC by Slice. He used i5 BoardID's SMC 2.33f10 with i7 BoardID Mac-B809C3757DA9BB8D. I wonder it. If this is wrong, i want to correct this as original values. So before return values, i did question to Slice Sorry for my bad english 나의 LG-F800S 의 Tapatalk에서 보냄 This is what my smbios looks like for iMac 17,1 <dict> <key>BiosReleaseDate</key> <string>08/08/2017</string> <key>BiosVendor</key> <string>Apple Inc.</string> <key>BiosVersion</key> <string>IM171.88Z.0110.B00.1708080012</string> <key>Board-ID</key> <string>Mac-B809C3757DA9BB8D</string> <key>BoardManufacturer</key> <string>Apple Inc.</string> <key>BoardSerialNumber</key> <string></string> <key>BoardType</key> <integer>10</integer> <key>BoardVersion</key> <string>iMac17,1</string> <key>ChassisAssetTag</key> <string>iMac-Aluminum</string> <key>ChassisManufacturer</key> <string>Apple Inc.</string> <key>ChassisType</key> <string>0x09</string> <key>Family</key> <string>iMac</string> <key>LocationInChassis</key> <string>Part Component</string> <key>Manufacturer</key> <string>Apple Inc.</string> <key>ProductName</key> <string>iMac17,1</string> <key>SerialNumber</key> <string></string> <key>SmUUID</key> <string></string> <key>Trust</key> <true/> <key>Version</key> <string>1.0</string> </dict> </plist> No problem. Just recommend family iMac17,1Its original values as realmac. 나의 LG-F800S 의 Tapatalk에서 보냄 2 Link to comment Share on other sites More sharing options...
TheRacerMaster Posted August 26, 2017 Share Posted August 26, 2017 The Pike list is wrong. Real iMac17,1 w/ i7-6700K 4.0GHz uses board-id Mac-B809C3757DA9BB8D. iMacs still use socketed CPUs AFAIK, so the motherboard does not change based on the CPU selected. It's the GPU that determines that (it's soldered to the board since ~2012 iMacs). I would just keep one of the board IDs, I doubt there's a big difference between them. 2 Link to comment Share on other sites More sharing options...
Slice Posted August 27, 2017 Share Posted August 27, 2017 I don't remember why 2.33 is better. I think SMC rev must be in config. And again. I think no sense to inflate Clover to elefant size to known hundreds configuration. Ten configs and customization will be quite enough. 3 Link to comment Share on other sites More sharing options...
Slice Posted September 6, 2017 Share Posted September 6, 2017 Feature request. May be I will do this by myself but I have limited time. The problem is very old and confusing codes for DeviceProperties protocol. The better one is known from apple's sources presented by Download-Fritz on GitHub but they needed to be adapted for Clover. Currently Inject, AddProperties, NoDefaultProperties, Arbitrary are conflicted with each other. The problem I encountered: If I set Arbitrary for one device then I can't use AddProperties for other device. But making all devices Arbitary is not possible because of dynamic calculated values. I will resolve it asap as a workaround with other possible problems. Will be much better to implement real DeviceProperties protocol. 2 Link to comment Share on other sites More sharing options...
TheRacerMaster Posted September 6, 2017 Share Posted September 6, 2017 I could maybe look into this. I have written some new device property injectors for Intel graphics devices and HDA controllers using the Apple protocol implementation (EFI_DEVICE_PATH_PROPERTY_DATABASE_PROTOCOL), but haven't implemented Abritrary/etc yet. 1 Link to comment Share on other sites More sharing options...
joevt Posted September 6, 2017 Share Posted September 6, 2017 Feature request. May be I will do this by myself but I have limited time. The problem is very old and confusing codes for DeviceProperties protocol. The better one is known from apple's sources presented by Download-Fritz on GitHub but they needed to be adapted for Clover. Currently Inject, AddProperties, NoDefaultProperties, Arbitrary are conflicted with each other. The problem I encountered: If I set Arbitrary for one device then I can't use AddProperties for other device. But making all devices Arbitary is not possible because of dynamic calculated values. I will resolve it asap as a workaround with other possible problems. Will be much better to implement real DeviceProperties protocol. I started working on this but I haven't had time to finish it. Additional features: - Match on any property using regular expressions (slot, name, path, class, id, bus, device, function, etc...). Maybe start with a simple string search first, then add regular expression method later. - Match on any handle with a device path protocol - not just PCI devices. For example, ACPI devices such as UART. - Allow more compact property specification <key>thekey</key><data>thedata</data> instead of silly <key>key</key><string>thekey</string><key>data</key><data>thedata</data> - Allow all methods of setting properties to work with each other: Inject, AddProperties, NoDefaultProperties, Arbitrary, Properties. - Reuse code for each method. Combine similar code into a single function. Create a device loop function that can be given different call-back functions. - Code changes should not require changes to config.plist, unless config.plist expects silly side effects like where one method doesn't do anything when another method is specified. Because why would you enter info that you don't expect to be acted upon? - Allow specify device path for devices that may not actually exist. - Parse binary properties (<key>Properties</key>) if any other method of defining properties is used, so that conflicts can be reported. It shouldn't be necessary to parse binary properties otherwise but it may be useful for debugging. - When adding a property, include a "Source" field which indicates what part of Clover is adding the property. - Report an error if an attempt to add the same property to a device occurs, so user can know when Inject conflicts with AddProperties for example (using the Source field to report the origin of the original setting). - The code will build a database of device path, property name/data information. The database is compiled into binary properties before booting into macOS. - Before booting macOS, dump the list of device paths, properties and their Source to the log. 5 Link to comment Share on other sites More sharing options...
Slice Posted September 6, 2017 Share Posted September 6, 2017 I started working on this but I haven't had time to finish it. Tell me your Nick on sf.net, I will give you commit right to Clover. Link to comment Share on other sites More sharing options...
Slice Posted September 7, 2017 Share Posted September 7, 2017 My fault. Commit 4196 + AddMenuItem(SubScreen, 18, "Intel Max Backlight:", TAG_INPUT, TRUE); //gSettings.IntelMaxValue should be + AddMenuItem(SubScreen, 112, "Intel Max Backlight:", TAG_INPUT, TRUE); //gSettings.IntelMaxValue 2 Link to comment Share on other sites More sharing options...
Sherlocks Posted September 8, 2017 Share Posted September 8, 2017 today, i checked FixHeaders_20000000 features. still no luck. i have two null oem table id files here tested cases case1 only checked FixHeaders_20000000 without drop. -no luck, get mach_reboot panic case2 drop two acpi table - can skip mach_reboot panic thanks in advance i bought i3 6100 to surely clear problem between skylake pentium and ix series. this issue relate pentium problem about Symbol issue on HS. as result, FixHeaders_20000000 is no problem. 2 Link to comment Share on other sites More sharing options...
syscl Posted September 10, 2017 Share Posted September 10, 2017 One weird behavior with Clover is that Clover try to create misc folder(EFI\CLOVER\misc) per boot, there's generally two drawback of this behavior: Perform I/O especially write per boot(slow, especially on HDD) Undesirable if user remove misc intentionally but Clover persists creating it every time More reasonable behavior should be egSave do a simple check to see if the directory exist or not(we may check each directories existence iteratively/recursively, but seems a bit slow?) egSave has been improved in r4205, and misc will not be created each boot. syscl 2 Link to comment Share on other sites More sharing options...
Recommended Posts