Chameleon and High Sierra…

I helped the developers of Chameleon with previous OS upgrades and I am wondering what the current state is. Is Chameleon already patched and working with High Sierra? If not, then feel free to reply here with a link to the latest source code.


24 thoughts on “Chameleon and High Sierra…

    • I am waiting for some developer to contact me (here as I can not read my e-mail from here).

      The good news is that I have successfully installed High Sierra with RevoBoot, and I have done it with the Beta installer app from the Apple Store, so it should be easy.

      • It only worked for my P6TSE hackintosh after bootable by Clover r4078, and always failed for Z87 & Z97 hackintoshs. For Z87 hackintosh High Sierra beta can be booted with either Intel HD4600 alone (nv_disable=1) or GTX-680 alone (BIOS disable HD4600). I sincerely hope you can fix it to boot both Intel HD4600 & GTX-680 which is not possible by Clover bootlaoder yet in my hackintoshs.

      • I usually only look into new hardware. Like new motherboards for the new Intel Core i7 and Intel Core i9 processors. Going back is no option for me since I don’t have that much free time.

  1. Greetings Piker Alpha. Very grateful for all your wonderful work here – it is so awesome to read about the latest and greatest hardware/software happenings at Apple!! May I bother you for documentation on how to use the said RevoBoot? Do not see it in the github link. Thanks!

    • There is no documentation, but what I can tell you is that RevoBoot is a pain to compile and setup, for people who never used it, and it is mostly used as a testbed. Why not use Chameleon/Enoch or Clover?

      • Appreciate that PikerAlpha and agree. Used clover and getting KP in regards to the My guess is that it is in regards to a conflict with the MacPro System Definition? See a few other users with the same issue – but have not seen a solution.

      • The OSBundleLibraries in AppleSMC.kext has changed. This one is new:


        AppleACHIPlatform.kext now also relies on:


        AppleSMCRTC.kext is a new kext relying on:


        Listen. I’m not saying that this is the case, but if AppleSMCRTC.kext isn’t loading (IONameMatch -> ACPI000E) then AppleSMC.kext may not get loaded (IONameMatch -> APP0001) and then AppleACHIPlatform.kext may also fail.

        We now also have a new property called IOPlatformPanicAction (Number) 89000 in AppleSMC.kext/Content/Info.plist and that may also be related.

        The only time that I had issues with AppleACHIPlatform.kext was when AppleSMCRTC.kext wasn’t loaded. And then only without a prelinkedkernel, but that was with the new iMaci9,1 which has a new Device for it:

        Device (ARTC)
            Name (_HID, "ACPI000E")
            Method (_GCP, 0, NotSerialized)
                Return (0x05)
            Method (_GRT, 0, Serialized)
                Name (BUFF, Buffer (0x10) {})
                Store (^^EC.YRLB, Index (BUFF, Zero))
                Store (^^EC.YRMB, Index (BUFF, One))
                Store (^^EC.MNTH, Index (BUFF, 0x02))
                Store (^^EC.DAYB, Index (BUFF, 0x03))
                Store (^^EC.HOUR, Index (BUFF, 0x04))
                Store (^^EC.MINT, Index (BUFF, 0x05))
                Store (^^EC.SECD, Index (BUFF, 0x06))
                Store (^^EC.PAD0, Index (BUFF, 0x07))
                Store (^^EC.MSLB, Index (BUFF, 0x08))
                Store (^^EC.MSMB, Index (BUFF, 0x09))
                Store (^^EC.TZLB, Index (BUFF, 0x0A))
                Store (^^EC.TZMB, Index (BUFF, 0x0B))
                Store (^^EC.DAYL, Index (BUFF, 0x0C))
                Store (^^EC.PAD1, Index (BUFF, 0x0D))
                Store (^^EC.PAD2, Index (BUFF, 0x0E))
                Store (^^EC.PAD3, Index (BUFF, 0x0F))
                Return (BUFF)
            Method (_SRT, 1, Serialized)
                Store (Index (Arg0, Zero), ^^EC.YRLB)
                Store (Index (Arg0, One), ^^EC.YRMB)
                Store (Index (Arg0, 0x02), ^^EC.MNTH)
                Store (Index (Arg0, 0x03), ^^EC.DAYB)
                Store (Index (Arg0, 0x04), ^^EC.HOUR)
                Store (Index (Arg0, 0x05), ^^EC.MINT)
                Store (Index (Arg0, 0x06), ^^EC.SECD)
                Store (Index (Arg0, 0x08), ^^EC.MSLB)
                Store (Index (Arg0, 0x09), ^^EC.MSMB)
                Store (Index (Arg0, 0x0A), ^^EC.TZLB)
                Store (Index (Arg0, 0x0B), ^^EC.TZMB)
                Store (Index (Arg0, 0x0C), ^^EC.DAYL)
                Return (Zero)
            Method (_STV, 2, Serialized)
                Store (And (Arg1, 0xFF), ^^EC.ALR0)
                Store (And (ShiftRight (Arg1, 0x08), 0xFF), ^^EC.ALR1)
                Store (And (ShiftRight (Arg1, 0x10), 0xFF), ^^EC.ALR2)
                Store (And (ShiftRight (Arg1, 0x18), 0xFF), ^^EC.ALR3)
                Return (Zero)
            Method (_CWS, 1, Serialized)
                Store (Zero, ^^EC.TMRF)
                Store (Zero, ^^EC.TMRW)
                Return (Zero)
      • Kernel CPU panics. Doesn’t matter if warm or cold. Check out at the Ozmosis forum. Lots of guys including myself having difficulty getting HS to boot with out dropping MATS tables in Clover with our Z87 boards. Even with that its a challenge. Ironic that Oz guys got to use Clover..

      • Oh the MATS table errors. Let’s see. Did you try to patch _isprint in the AppleACPIPLatform.kext binary:

        55 48 89 E5 8 8D 05 E5 77 05 00 F6 04 07 97 0F 95 C0 5D C3
        55 48 89 E5 8 8D 05 E5 77 05 00 F6 04 07 57 0F 95 C0 5D C3

        Now take a look at this code snippet and note that Apple is using a different value.

        #define isprint(c) (AcpiGbl_Ctypes[(unsigned char)(c)] & (_ACPI_LO) | _ACPI_UP | _ACPI_DI | _ACPI_XD | _ACPI_PU))

        instead of:

        #define isprint(c) (AcpiGbl_Ctypes[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP | _ACPI_DI | _ACPI_XS | _ACPI_PU))

        So what Apple does, basically, is that they use 0x80 instead of 0x40 and thus they use 0x97 instead of 0x57.

  2. Unfortunately I do not know how to do that.. but I would love to learn! I gather I need to load up AppleACPLatform.kext in hex editor and change 97 to 57? Also curious about why is this necessary? You know the guys in the Oz forums are suggesting editing the acpi headers directly in the bios and flashing it back to the rom. Patching a kext sounds so much easier..

    • ACPI became more strict and as a result now throws warnings and errors – non-printable character triggers the error. Patching a kext can be done in Clover and should work for all boot loaders. Not just Oz.

      Don’t you have some sort of patch function for kexts in Oz?

  3. I don’t think Oz has Kext patching. It has Kext Injection built in but the problem is that the main developer behind Oz just declared it EOL but not dead such that I’m not sure even kext injection is working. So there are some other guys picking up the mantle and recently HS support was patched but I had ACPIPlatform error and KP right at the start of the verbose errors along with a few others such that it was necessary to use Clover to install HS and by dropping MATS and using the iGpu was able to get through the install from USB but after the install and two reboots it still failed to load from the final install stuck on ‘Firewire 0000000000 guid is invalid’ endless messages. Hoping this patch or even your dp1 to dp2 upgrade script might fix the install though still just having fun experimenting so not the end of the world if it doesn’t work as I still have a functioning Sierra install. Thanks.

  4. thank you for all your generosity, huh..I got some appleacpiplatform panic when I install 10.13 on my haswell laptop..tried to drop MATS acpi but I find there is no such MATS….Just too upsetting..I tried patch _isprint in the AppleACPIPLatform.kext by kexttopatch of clover but it didnt work..could you help me with some adivice.. thanks a lot

      • thanks for your reply,i take a slow motion video,here is my dsdt and mov。

      • I have installed successfully without dsdt ,no need prelinkedkernel,the dsdt is perfect in my 10.12.6 beta4,but 10.13 it causes AppleACPIPLatform error,i just want to make the dsdt worked without Extracting and modifying DSDT again…

  5. Piker,
    Do you know what could cause a ‘Firewire GUID 000000000000000 is invalid’ message in the HS verbose logs? This is driving me crazy trying to figure it out..


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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s