Chameleon 101

Chameleon is an open-source EFI bootloader project for BIOS-based x86 systems. It is designed to replace Darwin and PC_EFI bootloaders with new features.

Chameleon bootloader


  • Boot into Legacy OS (Windows XP, Linux, DOS) by their boot sectors.
  • Dual/Triple  boot  support.
  • Allow the installation to the EFI partition
  • Default boot after timeout.
  • Customization GUI: themes support, own icons, fonts, background image.
  • Custom DSDT  load from  Extra folder.
  • ACPI tables loading (SSDT-xx, APIC, BOOT, SLIC, SLIT, SRAT , DSDT)
  • Ability to inject GPU properties , USB fix, EDID, HDA id, HDMI fix, PCIRootUID, Ethernet Built-in and many more.
  •  Nvidia & ATI/AMD Graphics Card Enabler.
  • Automatic FSB detection code even for recent AMD CPUs
  • Module support
  • Ability to use type boot flags on boot GUI.
  • Automatic FSB detection code even for recent AMD CPUs
  • Boot from Recovery HD

Chameleon bootloader installs boot files (boot0, boot0hfs, boot0md) and a “Extra” folder for settings into HDD . Extra is on “Root System”, or “the directory where you installed OS X” or “/” .The folder contains Extensions, Themes, Org.chameleon.Boot.plist. You have to put  DSDT ,SSDT and smbios in Extra folder.

What can I install on ?
It can install to a hard drive or USB flash drive using either an MBR or hybrid GPT/MBR, and can install to FAT32, HFS and ExFat partitions.

Installation  and Configure :

Downloaded chameleon
Personally i like Enoch Chameleon Branch .

Chameleon: Legacy/Bios boot only. Chameleon is a legacy bootloader. So installation settings is simple
A.Install chameleon bootloader

  •    Standard (This will install boot loader in ‘/’ HDD or USB) or
  •    Install Chameleon in the ESP

The modules system incorporated in chameleon allows for a user or developer to extend the core functionality of chameleon without replacing the main boot file.
Creates an /Extra/org.chameleon.Boot.plist by selecting any of these boot options and kernel flags.Most important are….

  •    General options
  •    Kernel Flags
  •    Video

D.Key Layout
Select one key layout to use. This will also install the Key layout module and key maps.Mainly for keyboard.
Creates an /Extra/org.chameleon.Boot.plist by selecting any of these boot options and kernel flags.


After installation finish.Go to installed partition and start edit settings or put important kext that you need.

Extra folder settings :

Boot loader will load files and settings from Extra folder.So its important to have proper settings for it.

Extra folder contains :

  • Extensions folder and Extensions.mkext
  • Modules
  • Org.chameleon.boot.plist
  • Smbios.plist
  • Themes

Extensions Folder:

Here you have to put  patched Kexts . which is a mirror of the folder “/System/ Library/Extensions” That you need to boot or patch os .It is helpful because it does patch system kext and dont have to edit/patch kext again if you update os.

The file “Extensions.mkext” is a “cache” file and also mirror of the file in the folder”/System/Library/Caches/” that aims to reduce the loading time of the system, preventing the system on each boot to make a scan of the folder to verify existing kext’s


boot.plist is where you have to put all you boot flags and settings for others.which is a mirror of the original file which is in “/Library/Preferences/SystemConfiguration” and is the file where we set our “Preferences” for the system boot.

To edit Org.chameleon.boot.plist ,There are many tools you can use…. i use TextEdit .


Also can use….


The file “smbios.plist” is a file used by Chameleon to “induce” the system  to believe that it is running under a specific platform, providing  information such as processor type, memory, Apple Computer, serial  numbers, etc … and supplying the use of SMBIOS injectors like  AppleSMBIOSEFI, AplleSMBIOSResolver, etc …

The example below”smbios.plist.smbiosplist.png


The “Themes ” folder is only “cosmetic”, we can put themes for the BootLoader.So choose as you like.

1. Some useful  Flags:

  • xcpm (XCPM only works on Ivy and Haswell cpus ,{and the CPUs Ivy Bridger use by default the power management given by AICPUPM kext, to use the power management provided by the kernel XCPM you must enable this flag(Chameleon))
  • HDAEnabler (Automatic device-properties generation for audio controllers)
  • HDEFLayoutID  (use (HEX value ) Inject alternate value of layout-id for HDEF)
  • HDAULayoutID (use (HEX value ) Inject alternate value of layout-id for HDEF)
  • EnableHDMIAudio (Use Hex value, Inject value of HDMI audio for NVIDIA/ATI)
  • npci=0x2000 or 0x3000 (For PCI configuration began Fix)
  • PciRoot=1 (Default is 0 .some mobo uses id 1)
  • USBBusFix=Yes or No (To fix use related error.Like Ownershipfix,sleep error)
  • arch=X86_64  (Used in  AMD kernels on 10.9, arch=i386 mean 32bit mode Osx.After 10.6 all Osx runes 64bit mode)
  • Usekernelcache=Yes|No  (Enable/Disable  load pre-Linked kernel.”Yes” will ignore from E/E or S/L/E/ Extensions.mkext and also make boot time faster)
  • ForceWake=Yes  (Force using the sleepimage (disabled by default). Sometimes helps wake from sleep,if you have error)
  • ForceHPET=Yes|No (Force Enable HPET.Osx uses 64 bit.If you have No HPET error)
  • DropSSDT= Yes  (Skip the SSDT tables while relocating the ACPI table, Drop Bios SSDT table and use custom SSDT)
  • dart=0  (If you can’t boot with OS X and VT-x/VT-d enabled in Bios, use this flag UEFI Bios & fix VTd[0] error)
  • darkwake=0|1  (Disable/Enable  wake up of certain parts of your Mac from sleep, while leaving other parts in sleep mode)
  • CSTUsingSystemIO=Yes (New C-State _CST generation method using SystemIO registers instead of FixedHW)
  • Ethernetbuiltin=Yes|No (“built-in”=yes device-properties generation for Ethernet interfaces.Most of time “Yes” fix Apps-Store login error)
  • Kext-dev-mode=1  (For 10.10 OSX.Its helps to load Un-sign kext to in system)
  • GraphicsEnabler=Yes|No (“Yes” is used for patched supported like GT 2,4.5.6 or GTX 2,4,5 for nvidia and  4,5,6 serise AMD cards “No” is for native supported cards like GTX 6, 7 and 7.R series cards)
  • <key>Kernel</key>                     
  • <string>/System/Library/Kernels/kernel </string>  { For use in 10.10 cause kernel now not in root ,Apple has change in  to /System/Library/kernels/kernel }
  • AtiConfig=framebuffername  (Use to enable full QE/CI support for AMD/ATI cards)
  • Atiports=     (Number of output ports you have in your card and specify it e.g. 2 ,3 ,4 )
  • VBIOS=Yes   (Injects Nvidia VBIOS into device properties)
  • USBBusFix=Yes/No ( For to Enable all USB fixes)

How to fix the boot0: error (for chameleon)

1. Boot using the OSX Installation USB you created and enter the OSX Installer.
2. Run Disk Utility and unmount the drive you installed OSX on.
3. Launch Terminal and execute the following command

dd if=/usr/standalone/i386/boot1h of=/dev/disk0s2 bs=4096

4. Exit Terminal
5. Reboot Normally
Replace disk0s2 with the correct drive/partition number where OSX is installed. Use diskutil list to get a list of drives/partitions.


Download binaries chameleon folder i386
1. open the folder i386 and copy boot1h for your USBInstaller.
2. boot from USBinstaller and go for utilities and open app Terminal
3. type diskutil list for identified your disk and partition where you installed of system = “(i.e: diskXsY)”
4. type diskutil unmount diskXsY
5. type cd /
6. type dd if=boot1h of=/dev/diskXsY bs=4096
7. reboot
in step 6 put your disk and partition “(i.e diskXsY “)


on progress…..


About dmos

Just having fun
This entry was posted in Hackintosh Guides and tagged , , . Bookmark the permalink.

One Response to Chameleon 101

  1. Pingback: AMD Guide For Hackintosh | dmos Blog

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s