Slice Posted September 15, 2023 Author Share Posted September 15, 2023 Yes, detecting banks requires re-thinking. Link to comment Share on other sites More sharing options...
matxpa Posted September 15, 2023 Share Posted September 15, 2023 Hi Is that you need ? On a Laptop Ivy 12GB (4 GB soldered + 8 GB) (Terminal) system_profiler SPMemoryDataType Memory: Memory Slots: ECC: Disabled Upgradeable Memory: No BANK 0/DIMM0: Size: 4 GB Type: DDR3 Speed: 1600 MHz Status: OK Manufacturer: Micron Part Number: 8JTF51264HZ-1G6D 1 Serial Number: - BANK 0/DIMM2: Size: 8 GB Type: DDR3 Speed: 1600 MHz Status: OK Manufacturer: G Skill Intl Part Number: F3-1600C11-8GRSL Serial Number: - Regards Link to comment Share on other sites More sharing options...
Slice Posted September 15, 2023 Author Share Posted September 15, 2023 And how to write in swift? Link to comment Share on other sites More sharing options...
miliuco Posted September 15, 2023 Share Posted September 15, 2023 @Slice @matxpa I'm sure that both of you can find the way to get the RAM manufacturer from System Profiler as you get other data but the manufacturer can be as branch (string) or as number (hex code), and the code by itself says nothing if it isn't converted to the branch. Maybe this piece of info is less useful and more complicated to implement. In my opinion, both forks of ATH are very good without it. Link to comment Share on other sites More sharing options...
Slice Posted September 15, 2023 Author Share Posted September 15, 2023 Sorry but information about RAM manufacture contains in SPD as hex codes. It is never string. Clover is able to substitude the codes from SPD to string in DMI. https://github.com/CloverHackyColor/CloverBootloader/blob/master/rEFIt_UEFI/Platform/memvendors.h 1 Link to comment Share on other sites More sharing options...
miliuco Posted September 15, 2023 Share Posted September 15, 2023 @Slice I see. Clover has this feature but OpenCore doesn't. I've tried Clover 5155 on Ventura (basic settings, just for boot and see About This Hack) and memory manufacturer is well displayed, Corsair in my case, as Clover memvendors.h includes { 2, 0x9e, "Corsair" } and the code in System Profiler is 0x029E. Thanks for the info. Link to comment Share on other sites More sharing options...
Slice Posted September 15, 2023 Author Share Posted September 15, 2023 22 hours ago, Alpha22 said: V 1.0.2 I added grep -v Empty check if it helps you. Link to comment Share on other sites More sharing options...
matxpa Posted September 15, 2023 Share Posted September 15, 2023 (edited) @Slice Hi Is it something like this you want ? That content can't be added to Ram Text Field Cell, imagine a MAcPro 2019 with 6 RAM slots, it would be better to create a specific RAM tab So here (snapshot) it's easy Your version is a mix of last 8-bit-cat ATH and last 0xCUB3 ATH isn't it ? You need in your repo 1) a new component called ToolTips.swift (with 1 code line, at this time) 2) a new function in ViewController.swift (func setToolTips()) 3) a new function in YOUR HardwareCollector.swift (static func getMemDesc() ) 1) ToolTips.swif import Foundation let ramtoolTip = HCRAM.getMemDesc() 2) To add to ViewController.swift func setToolTips(){ ram.toolTip = ramtoolTip } Verify the name of the Text Field Cell (Memory info not the column header) 3) Add that new function in HardwareCollector.swift (static func getMemDesc() ) just after (or where you want) static func getRam() ... static var thesysmemfile = "~/.ath/sysmem.txt" // put where you want in HardwareCollector.swift or don't use it and replace " + thesysmemfile + " with ~/.ath/sysmem.txt ... static func getMemDesc() -> String { var memInfoFormatted = "" let memoryDataTmp = run("echo $(egrep \"BANK |Manufacturer:|Part Number:\" " + thesysmemfile + " | sed -e 's/$/ /g' -e 's/^. *//g' -e 's/:/: /g' -e 's/: /: /g' | tr -d '\n' | sed 's/BANK /\\nBANK /g' )") let memoryDataArray = memoryDataTmp.components(separatedBy: "BANK ").filter({ $0 != ""}) for index in 0..<memoryDataArray.count { memInfoFormatted += ("BANK " + "\(memoryDataArray[index])" + run("echo \"\n\"")) } return "\(memInfoFormatted)" } With Term you'd better to test the egrep commande (removing protectors backslashes) ie. echo $(egrep "BANK |Manufacturer:|Part Number:" ~/.ath/sysmem.txt | sed -e 's/$/ /g' -e 's/^. *//g' -e 's/:/: /g' -e 's/: /: /g' | tr -d '\n' | sed 's/BANK /\\nBANK /g') and the result on my Laptop (old Laptop) BANK 0/DIMM0: Manufacturer: Micron Part Number: 8JTF51264HZ-1G6D 1 BANK 0/DIMM2: Manufacturer: G Skill Intl Part Number: F3-1600C11-8GRSL And, if you would, you could ameliorate that (lol) Regards Edited September 15, 2023 by matxpa 1 1 Link to comment Share on other sites More sharing options...
miliuco Posted September 15, 2023 Share Posted September 15, 2023 @Slice I guess that Empty Empty occurs when the slot is empty, no memory module, then first Empty is the Manufacturer and second Empty is Part Number. But I have 4 slots, 2 filled and 2 empty, and I see no Empty word. Link to comment Share on other sites More sharing options...
Slice Posted September 15, 2023 Author Share Posted September 15, 2023 25 minutes ago, miliuco said: @Slice I guess that Empty Empty occurs when the slot is empty, no memory module, then first Empty is the Manufacturer and second Empty is Part Number. But I have 4 slots, 2 filled and 2 empty, and I see no Empty word. But Alpha22 does. 1 Link to comment Share on other sites More sharing options...
matxpa Posted September 15, 2023 Share Posted September 15, 2023 (edited) And if you want or need more info echo $(egrep "BANK |Size:|Type:|Speed:|Manufacturer:|Part Number:" ~/.ath/sysmem.txt \ | sed -e 's/$/ /g' -e 's/^. *//g' -e 's/:/: /g' -e 's/: /: /g' -e 's/Size://g' -e 's/Type://g' -e 's/Speed://g' -e 's/\Manufacturer://g' -e 's/Part Number:/Part:/g' \ | tr -d '\n' | sed 's/BANK /\\nBANK /g') | sed '1d' BANK 0/DIMM0: 4 GB DDR3 1600 MHz Micron Part: 8JTF51264HZ-1G6D 1 BANK 0/DIMM2: 8 GB DDR3 1600 MHz G Skill Intl Part: F3-1600C11-8GRSL Edited September 15, 2023 by matxpa 1 Link to comment Share on other sites More sharing options...
Alpha22 Posted September 15, 2023 Share Posted September 15, 2023 2 hours ago, Slice said: I added grep -v Empty check if it helps you. Link to comment Share on other sites More sharing options...
matxpa Posted September 15, 2023 Share Posted September 15, 2023 And if you want to simplify And getMemDesc code reduced static var thesysmemfile = "~/.ath/sysmem.txt" static func getMemDesc() -> String { return run("echo \"$(egrep \"BANK |Size:|Type:|Speed:|Manufacturer:|Part Number:\" " + thesysmemfile + ")\"") } Regards 1 Link to comment Share on other sites More sharing options...
matxpa Posted September 16, 2023 Share Posted September 16, 2023 @Slice And with ECC 1 Link to comment Share on other sites More sharing options...
calmesal Posted September 16, 2023 Share Posted September 16, 2023 On 9/13/2023 at 9:55 PM, Slice said: This is not my project. Origin is https://github.com/0xCUB3/About-This-Hack which came from https://github.com/8itCat/About-This-Hack But when I took new one I encounter a problem with signing. I have no paid Apple developer account so I prohibited from compile the application. It is not working with crash About This Hack.app/Contents/Frameworks/Sparkle.framework/Versions/B/Sparkle' not valid for use in process: mapped file has no Team ID and is not a platform binary (signed with custom identity or adhoc?)), bla-bla-bla... So I found old fork and improve it. It works. I also add my new features "Acceleration". Memory manufacture (first one) and Serial always hidden. Also link to our forum instead of Dortania. It is located in https://github.com/CloverHackyColor/About-This-Hack There is also release version. On my hack the serial still shows. Link to comment Share on other sites More sharing options...
miliuco Posted September 16, 2023 Share Posted September 16, 2023 18 minutes ago, calmesal said: On my hack the serial still shows. Mine shows XXXXXX. Link to comment Share on other sites More sharing options...
eSaF Posted September 16, 2023 Share Posted September 16, 2023 (edited) 2 hours ago, miliuco said: Mine shows XXXXXX. I really hope no one takes this the wrong way, but this hybrid ATH app of the original is a bit too busy with information for me from the examples I have seen. Some examples showing wrong or incomplete Memory modules installed. I don't know, but my thinking is it works better with a Clover install oppose to an OC install. The latest released version of the original ATH has a bug which existed in about 2 versions back which I submitted a bug report. Although it displays the correct version, it omits the Build Number, I submitted another bug report and was told they recognized there is a bug and it Spoiler will be addressed. The version that works perfectly for me is 0.8.1, I have attached the two versions 0.8.1 and the latest version 0.9.1 showing the difference. Edited September 16, 2023 by eSaF 2 Link to comment Share on other sites More sharing options...
MacNB Posted September 16, 2023 Share Posted September 16, 2023 1 hour ago, calmesal said: On my hack the serial still shows. Which is correct. You click on the Serial number to hide it 😏 Link to comment Share on other sites More sharing options...
Slice Posted September 16, 2023 Author Share Posted September 16, 2023 2 hours ago, calmesal said: On my hack the serial still shows. 1 hour ago, eSaF said: I really hope no one takes this the wrong way, but this hybrid ATH app of the original is a bit too busy with information for me from the examples I have seen. Some examples shows wrong or incomplete Memory modules installed. I don't know, but my thinking is it works better with a Clover install oppose to an OC install. The latest released version of the original ATH has a bug which existed in about 2 versions back which I submitted a bug report. Although it displays the correct version, it omits the Build Number, I submitted another bug report and was told they recognized there is a bug and it Hide contents will be addressed. The version that works perfectly for me is 0.8.1, I have attached the two versions 0.8.1 and the latest version 0.9.1 showing the difference. These are another versions. 1 hour ago, MacNB said: Which is correct. You click on the Serial number to hide it 😏 This is another version. Anybody really want to show own serial number? For a what purpose? 1 1 Link to comment Share on other sites More sharing options...
matxpa Posted September 16, 2023 Share Posted September 16, 2023 1 hour ago, eSaF said: I really hope no one takes this the wrong way, but this hybrid ATH app of the original is a bit too busy with information for me from the examples I have seen. Some examples showing wrong or incomplete Memory modules installed. I don't know, but my thinking is it works better with a Clover install oppose to an OC install. The latest released version of the original ATH has a bug which existed in about 2 versions back which I submitted a bug report. Although it displays the correct version, it omits the Build Number, I submitted another bug report and was told they recognized there is a bug and it Hide contents will be addressed. The version that works perfectly for me is 0.8.1, I have attached the two versions 0.8.1 and the latest version 0.9.1 showing the difference. Commits since 0.9.1 resolve that (missing compiled version #41) 1 Link to comment Share on other sites More sharing options...
miliuco Posted September 16, 2023 Share Posted September 16, 2023 @Slice Your current ATH: I guess storage data is not right. This is the code: return [""" \(name) \(size)(\(available)Available) """,String(percent)] } And the window: Prefixing percent with 1-: return [""" \(name) \(size)(\(available)Available) """,String(1-percent)] } And the window: Do you think so? Thanks. 1 1 Link to comment Share on other sites More sharing options...
naiclub Posted September 26, 2023 Share Posted September 26, 2023 On 9/15/2023 at 1:58 PM, Slice said: Thanks for the test! Anyway it is OpenCore fault. Do the same with Clover and see the difference. Clover is older bootloader and better tuned for most cases. The origin of the bug comes from Apple. Old macintoshes have several bugs in System Profiler including memory Manufacture, Serial, PCI devices and ROM properties. We are observing how Apple programmers excluded these fields instead of cure them. I decided to not follow Apple but show real values. Let Apple envy us. OK, Clover can't detect DDR5 yet. As well as OpenCore. About manufacture there is good second field while the program took first one. I need some algo to re-detect memory. Spoiler I can't open your version, sir. Link to comment Share on other sites More sharing options...
Slice Posted September 27, 2023 Author Share Posted September 27, 2023 Other users can. Link to comment Share on other sites More sharing options...
miliuco Posted September 27, 2023 Share Posted September 27, 2023 @naiclub Please translate the text in the dialog window to know what it means, me and others are able to run fine this app. 1 Link to comment Share on other sites More sharing options...
naiclub Posted September 27, 2023 Share Posted September 27, 2023 48 minutes ago, miliuco said: @naiclub Please translate the text in the dialog window to know what it means, me and others are able to run fine this app. It warns that it is leaving suddenly. Click Relaunch to launch the application again. Click Report to view more detailed information and send the report to Apple. 1Newly open 2 inform 3 not interested This one can be opened. https://github.com/0xCUB3/About-This-Hack Link to comment Share on other sites More sharing options...
Recommended Posts