[GUIDE]Creating your own SMBIOS.plist

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

28 thoughts on “[GUIDE]Creating your own SMBIOS.plist”

  1. To say “that its purely cosmetic/asthetic” is not entirely true. In fact, Silverlight and several other apps use the data from System Profiler to dermine PPC vs Intel. I would agree that this is probably improper use, but tell them that.

    My question involves the CPU naming in System Profiler. I have an Intel Q9550 Quad Core processor and shows up in about this mac as Unknown and does not show up at all in System Profiler. My Core 2 E6750 shows up in System Profiler as a Core 2 Duo E6750 @ 2.66 GHz. Since the quad core does not show up at all, Silverlight 2 installer and others think my system is PPC. Now, I know there are work-arounds, but that is annoying. How can I fix system profiler to properly recognize my CPU as at least an Intel CPU?

  2. Hi, thanks for this guide, makes things very clear.

    I did find that the VoodooPowerMini kext actually uses the values from the SMBIOS when setting the speed of the processor using speedstep, so for me fixing my SMBIOS file stopped my kernel panics!

  3. Pingback: FakeSMC Editing
  4. Applications could check these values. I think it’s best to be complete, correct & coherent with getting everything filled in the way that Apple would.

    Lizardapp goes part way to generate smbios.plist and especially a serial number. It doesn’t finish though, as it provides no guidance as to what the values should be.

    I think that checking is going to become more prevalent – Teamview.app won’t run if your serial number is not set – how long before applications start to ensure other smbios relationships appropriately correspond?

    Lizardapp could prompt the user to use some safe combinations, perhaps you would like to suggest some?

    Thanks, TRMC.

  5. I have successfully used your Hack on 2 PC’s
    I have a new tower and I thought I would try a raid config. It seems it won’t boot after I run the post install boor loader. Is raid 1 supported ? should I just stat over with a single drive? Thanks for your answer.
    You have done great work on this!!

  6. Just a heads up:
    The example and the attached file has “SMboardmanufacturer” where it should be “SMboardmanufacter”.

  7. Found some more.

    The SMbiosversion and the SMproductname don’t match. One is a MacPro2,1 (which doesn’t exist), the other is a MacBookAir1,1.

    The SMbios date does not match the date in the SMbiosversion.
    Boot ROM is dated 060822 (08/22/2006) but smbios date is 04/01/2008.

    The correct boot ROM for a MacBookAir1,1 would be MBA11.88Z.00BB.B03.0803171226 making the SMbios date 03/17/2008.

    The correct SMboardproduct for a MacBookAir1,1 is Mac-F42C8CC8, the example has Mac-F4208DC8 which is from a MacPro1,1.

    Real Macs don’t have “Apple Inc.” and “Apple Computer, Inc.” mixed, they have one or the other.

    For example, MacPro1,1 has “Apple Computer, Inc.” but the MacBookAir1,1 uses “Apple Inc.”

  8. The SMBIOS data is easy to get at if you google “model identifier + DMI”, like this for example – try googling “MacPro3,1 DMI” (no quotes) and then check the Linux bug report sites among the search results (avoid the Hackintosh sites!). Usually the good stuff comes from https://bugs.launchpad.net/ and http://www.mail-archive.com – sometimes even with complete LSPCI dumps and lots of other goodies. Good hunting!

  9. And now comes the time to correct my own mistake..

    MacPro2,1 does in fact exist, and shares SMboardproduct Mac-F4208DC8 with the MacPro1,1.

  10. This guide is reality very good.
    Thanks for help many peoples. I can do my SMBios with Chameleon Wizard, but build your own SMBios is the best.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

CommentLuv badge