Some Hidden Changes in OS X El Capitan

OS X El Capitan introduced lots of changes, most of them are not easy to be found since they are not on the GUI level. Well, SIP can be one of them but this post will not talk about it once again.
Here are some changes/hacks I found.

1. Hibernate mode restriction
To check current hibernate mode setting:

pmset -g custom

“hibernatemode” value teardown (Reference):
_ ____ ___1 (bit 0) enable hibernate, suspend to disk, write sleep image file.
_ ____ __1_ (bit 1) safe sleep, suspend to RAM first, and hibernate when battery level critical.
_ ____ _1__ (bit 2) sleepimage file encryption.
_ ____ 1___ (bit 3) “encourages the dynamic pager to page out inactive pages prior to hibernation, for a smaller memory footprint.”
_ ___1 ____ (bit 4) “encourages the dynamic pager to page out more aggressively prior to hibernation, for a smaller memory footprint.”
_ __1_ ____ (bit 5) set “boot-switch-vars”, useful for CloverEFI on some Hacks.
_ _1__ ____ (bit 6) restart machine after writing sleepimage
_ 1___ ____ (bit 7) SSD mode invert
1 ____ ____ (bit 8) dynamic sleepimage size

And also code reference from Apple Open Source:

enum
{
    kIOHibernateModeOn      = 0x00000001,
    kIOHibernateModeSleep   = 0x00000002,
    kIOHibernateModeEncrypt = 0x00000004,
    kIOHibernateModeDiscardCleanInactive = 0x00000008,
    kIOHibernateModeDiscardCleanActive   = 0x00000010,
    kIOHibernateModeSwitch	= 0x00000020,
    kIOHibernateModeRestart	= 0x00000040,
    kIOHibernateModeSSDInvert	= 0x00000080,
    kIOHibernateModeFileResize	= 0x00000100,
};

Before 10.11, hibernate mode can be set without restriction. However, in 10.11, pmset tool would only allow mode 0, 3 and 25 to be set. If values other than these three need to be set, just edit the system preferences file manually:

/Library/Preferences/SystemConfiguration/com.apple.PowerManagement.plist

Update – file location for 10.12:

/Library/Preferences/com.apple.PowerManagement.plist

After reboot, the new hibernate mode would be working perfectly as before.

2. Handoff/Continuity support restriction
These features were first introduced in 10.10 and they do require suitable hardwares (BT4 LE + Certain Brcm WiFi) to work. The WiFi and Bluetooth kexts will check hardwares to see if they are supported. For driver level check and restriction, kext patches can be done (just use this lovely CAT) for many unofficial supported hardwares in order to enable these features. If everything goes well as in 10.10, the following system logs should be found:

Device Capabilities (Handoff:YES, Instant Hotspot:YES, AirDrop:YES, Legacy AirDrop:YES, Remote Disc:YES)

Well in 10.11, another whitelist was added in the system config to check every Mac board-id and determine if the continuity could be activated or not:
You may need to find out your mac board-id first:

ioreg -l | grep "board-id"

And then check this file:

/System/Library/Frameworks/IOBluetooth.framework/Versions/A/Resources/SystemParameters.plist

Find your Mac board-id and make sure the ContinuitySupport is set to true/YES.
Also, if the file system protection from SIP is in place, then disable it in the Recovery HD first in order to make any changes to the system config file:

csrutl enable --without fs

3. Maybe more coming…

8 thoughts on “Some Hidden Changes in OS X El Capitan

  1. Safari 9.0 Safari 9.0 Mac OS X  10.11 Mac OS X 10.11
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebKit/601.1.56 (KHTML, like Gecko) Version/9.0 Safari/601.1.56

    Usb port limit I am also taking~It‘s god~

  2. Safari 9.0 Safari 9.0 Mac OS X  10.11 Mac OS X 10.11
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebKit/601.1.56 (KHTML, like Gecko) Version/9.0 Safari/601.1.56

    i have an annoying problem with hibernation my machine goes to sleep and don’t wake up , it used to wake up on Yosemite .
    i use the same things as Yosemite , patched AppleRTC , my hibernation mode is set to 0 (tried 3 too) still have a problem with waking from deep sleep .
    i use clover UEFI .

    1. Safari 9.0 Safari 9.0 Mac OS X  10.11 Mac OS X 10.11
      Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebKit/601.1.56 (KHTML, like Gecko) Version/9.0 Safari/601.1.56

      Hi, please check that all usb ports are working properly. Mode 0 or 3 would both do the s3 sleep first, which is suspend to ram. Also, could u describe in detail what happened when u try to wake up your machine? Thanks.

      1. Safari 9.0 Safari 9.0 Mac OS X  10.11 Mac OS X 10.11
        Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebKit/601.1.56 (KHTML, like Gecko) Version/9.0 Safari/601.1.56

        i have usb 2,3 and i set up the bios for them to work as 2 so i don’t do any hacks for the usb at all . they just works in El Capitan and before .
        when i wake the machine the fans works and the hard disk rotates but nothing comes on the screen ..it stays black .
        i tried to install Yosemite with the same clover partition and sleep works with the DSDT with no problem , it seems it’s just in 10.11

        1. Safari 9.0 Safari 9.0 Mac OS X  10.11 Mac OS X 10.11
          Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebKit/601.1.56 (KHTML, like Gecko) Version/9.0 Safari/601.1.56

          I’m wondering what graphic card are you using on this machine? Seems that some Radeon card got this issue. To narrow down the issue, just try enable the remote login in Sharing and see if you can use ssh to log on your machine after wake up. If the ssh works. Then the problem shall be on the graphic card.

          1. Safari 9.0 Safari 9.0 Mac OS X  10.11 Mac OS X 10.11
            Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebKit/601.1.56 (KHTML, like Gecko) Version/9.0 Safari/601.1.56

            yea saw a lot of posts in Tonymac & insanelyMac Forums about the issue with Radeon Graphics , it’s so annoying we couldn’t figure it out .

          2. Google Chrome 45.0.2454.101 Google Chrome 45.0.2454.101 Windows 10 x64 Edition Windows 10 x64 Edition
            Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36

            Possibly framebuffer problem. Too bad that there is no solution for this issue at this time.

Leave a Reply to sameh Cancel reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.