Everyday (almost every day) . I do get questions on how to fix RAM detection of OSX , how to fix CPU Detection of OSX , etc. Most of the people who have asked this question aren’t aware that its purely cosmetic/asthetic. If OSX shows you that it sees your 800Mhz DDR2 RAM as 667Mhz. It doesn’t mean that your RAMs are clocked at 667Mhz when you’re in OSX. But still some insist on fixing it right so that they would make themselves proud. Anyhow , this guide explains the fundementals on building your own Apple SMBIOS.plist (more after the jump)
To get started , you must be using Chameleon VR RC1/RC2/RC3 boot loader. This trick doesn’t work with earlier version of Chameleon as it doesn’t support SMBIOS injection. If you’re wondering what SMBIOS stands for – Its System Management BIOS. You could read more about it here. Lets take a look on how we could build our own SMBIOS. You can make it to feel like a real macintosh by altering its value to match with a real Mac , or alternatively you may use your own values. Its up to you. Remember that its purely cosmetic. Its has no impact on performance
This is an example of SMBIOS.plist (I’ve attached one here so that you can take a look at modify it).
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>SMbiosvendor</key> <string>Apple Inc.</string> <key>SMbiosversion</key> <string>MP21.88Z.005C.B01.0608221120</string> <key>SMbiosdate</key> <string>04/01/2008</string> <key>SMboardmanufacturer</key> <string>Apple Computer, Inc.</string> <key>SMboardproduct</key> <string>Mac-F4208DC8</string> <key>SMfamily</key> <string>MacBookAir</string> <key>SMmanufacturer</key> <string>Apple Inc.</string> <key>SMproductname</key> <string>MacBookAir1,1</string> <key>SMserial</key> <string>W88033AKY51</string> <key>SMsystemversion</key> <string>1.0</string> <key>SMUUID</key> <string>00000000-0000-1000-8000-000000000000</string> <key>SMmemtype</key> <string>24</string> <key>SMmemspeed</key> <string>1600</string> <key>SMmemmanufacter</key> <string>Apple Computer Inc.</string> <key>SMmempart_1</key> <string>0x48594D503131325336344350362D59352020</string> <key>SMmempart_2</key> <string>0x48594D503131325336344350362D59352020</string> <key>SMmemserial_1</key> <string>0x00001020</string> <key>SMmemserial_2</key> <string>0x00003021</string> <key>SMexternalclock</key> <string></string> <key>SMmaximalclock</key> <string></string> </dict> </plist>
You don’t have to key in all the details , if you wish. For instance if you would like Chameleon to use default memory part number for your RAM. Feel free to remove the entire string and key corresponds to it. Its that simple. Now lets take a look at what these key means and how to get the values.
- SMfamily : The Mac Model Family . For instance if you want to emulate as a MacPro , the Family would be “MacPro” (without quotes) , as for a Mac Mini it would be “MacMini” (without quotes)
- SMproductname : The model , for instance you can call yours as “MacPro0,1” , or “MacPro1,5” or even follow a real Mac Model. Its up to you
- SMbiosdate : Date when the firmware was released. This is optional , you could actually skip this.
- SMbiosversion : Its used when fakeSMC is not being used. But since we have fakeSMC , you can easily skip this part. Only use this if you plan to stick with dsmos or if you want SMC Version to be like a RealMac
- SMmanufacter : The manufacturer of the Computer. Default its Apple , but then if you want to put your own OEM branding. Feel free to edit it
- SMsystemversion : The boot rom (aka BIOS version). You can take this data from a real mac or from Apple’s site (which I would describe on how to get information on a particular Boot ROM for a particular mac)
- SMbiosvendor : As the name suggests it reflects the company who made the BIOS. By default its Apple , but if you want to use any other name or branding. Feel free to adjust it
- SMserial : Serial Number of your Hackint0sh
- SMexternalclock : Frequency of your FSB (measured in Mhz)
- SMmaximalclock : Your computer clock speed (i.e Intel Pentium D 830 is a 3.00Ghz processor) . Therefore it would be 3000 (Measured in Mhz) (whereby 1Ghz = 1000Mhz)
- SMmemtype : Memory type. Use 18 for DDR / 19 for DDR2 / 20 for DDR2 FB-DIMM / 24 for DDR3 – You can get the whole list for SMmemtype by reading Chameleon’s documentation or grabbing the source code
- SMmemspeed : Memory clock speed (i.e 533Mhz , 667Mhz) . Its measured in Mhz
- SMmemmanufacter_1 : Manufacturer of your RAM (i.e Kingston , Apple , etc)
- SMmemserial_1 : Serial number of your RAM
- SMmempart_1 : part number of your RAM
- SMUUID : Enter your UUID here if you’re having issues with UUID
If you have plans on fixing your CPU being recognised as Unknown , then do check out this post on patched version of Chameleon. Generally you’ll be needing it if you want to get certain program such as Silverlight , etc to work properly
Well thats about it. Now you may want to use TextEdit or nano or plist editor to create a new file (or modify my existing SMBIOS.plist) and call it as SMBIOS.plist. Place it in your /Extra folder. If you have an EFI partition , then place it in the /Extra folder of your EFI partition. Now as for finding the right values (i.e Product name , BIOS version). You may get the data directly from Apple’s website . For instance if you wish to mimic a MacMini Early 2006. Your SMProductName would be “MacMini1,1” and your SMBiosversion would be “MM11.0055.B08” . You can find out the generation of Mac by simply looking at EFI Boot ROM version in Apple’s Web site.
Thats how its done. Save it . Place it in /Extra – Reboot and then check out your system profiler. You should have the correct values !
If you want to deepen your understanding and broaden your knowledge , read the white papers on SMBIOS. Its a complex pdf which gives you better understanding and deeper understanding if you plan to customize yours. Highly recommended for advanced OSX86 users . You may download it from here
If you want to customise your serial number to be as close to a real mac , then check out my other article
If you want to customise the version of your “SMC controller” , then check out this article