Guide: Black boot screen + white Apple logo on "unsupported" Macs (boot.efi hack)

Discussion in 'OS X Yosemite (10.10)' started by Manic Harmonic, Jul 5, 2014.

  1. Manic Harmonic, Jul 5, 2014
    Last edited: Nov 12, 2014

    Manic Harmonic macrumors 6502

    Joined:
    Dec 4, 2011
    #1
    This is a guide for enabling the black boot screen + white Apple logo on "unsupported" Macs.

    It should in theory work on all 64-bit EFI Macs.

    WARNING: A small mistake or even just a fluke problem could potentially prevent your Yosemite partition from booting. Make sure you have a backup of it! I'm not responsible for anything that happens to your Mac.

    NOTE: When you run an update it's possible that it could revert this, so you may have to repeat the process again after the update.

    UPDATE: w0lf has been kind enough to write a script to automate this process! This link will always have the latest version: https://github.com/w0lfschild/DarkBoot
    note: You may have to make DarkBoot.command executable after downloading. Put it on your desktop, open the Terminal and type the following:
    Code:
    cd ~/Downloads && chmod +x DarkBoot.command
    The following method is how to do this manually, but it's outdated so it won't work on current versions of Yosemite. I have left it here for informational purposes.

    If you want to see what the current script is doing, you can open it in a text editor.

    IMPORTANT NOTE: If you boot back into an older version of OS X after doing this, it will boot with a completely black screen. On the next boot, you will have your white screen back in both pre-10.10 and 10.10 versions. To get the black Yosemite screen again, just reboot into your Yosemite partition twice.

    For this guide you need:
    -A hex editor such as HexFiend
    -Preferably some basic terminal knowledge... however I have done my best to make this guide as fool-proof as possible so even if you have no terminal knowledge you should be able to do it.

    First off, I would like to thank Pike R. Alpha for explaining how boot.efi determines whether to use a black or white boot screen, as seen here: http://www.insanelymac.com/forum/topic/298808-can-we-get-back-the-apple-logo-on-boot/?p=2036030 Also, thanks to VanillaCracker who explained how he got this to work on his 2012 Mac Mini in that same thread.

    What this hack does is it simply checks the board id of your Mac to determine if it supports the black boot screen.

    So basically, what we will be doing is changing one of the "supported" board id's to our own to trick it into thinking our Mac is supported.

    Here's how to do it:

    1. First, you need to get the board id of your Mac model.
    EDIT: Thanks to w0lf, here is a script you can use to tell you your board id:
    Code:
    var_ID=$(ioreg -p IODeviceTree -r -n / -d 1 | grep board-id);var_ID=${var_ID##*<\"};var_ID=${var_ID%%\">};echo $var_ID
    Screen Shot 2014-07-06 at 5.32.47 PM.png
    As you can see, the board id for my MacBookPro8,1 is Mac-94245B3640C91C81.
    2. Now let's back up the boot.efi file just in case. Make a folder on your desktop called "efi_backup" and copy /System/Library/CoreServices/boot.efi to that folder.
    3. Now make another folder called "new_efi" for example, drag boot.efi into that folder. Note that the icon has a lock on it:
    Screen Shot 2014-07-05 at 4.58.09 AM.png
    This means that NO user can modify the permissions or ownership of the file, not even the root user. Let's fix this so we can actually modify it.
    4. Open the terminal and navigate to your new efi folder:
    Code:
    cd ~/Desktop/new_efi/
    5. Type this command to disable the lock flag for the file:
    Code:
    sudo chflags nouchg boot.efi
    6. Make sure you have write permissions:
    Code:
    sudo chmod 755 boot.efi
    7. Now we're going to edit boot.efi to tell it that our Mac supports the black boot screen. Open it up with HexFiend, click on the right column, and search for "Mac-" (make sure you have the dash). You should see a bunch of Mac board id's. Highlight one of them, in this example I am using the third one which is Mac-35C1E88140C3E6CF. That's the MacBookAir6,1 board id. Replace that with your board id, which again in my case is Mac-94245B3640C91C81.
    Screen Shot 2014-07-05 at 4.36.21 AM.png
    NOTE: If you have an 8-digit board id, the last 8 digits of the board number you are replacing will have to be replaced with spaces (this can be done by going to the hex side of the window and replacing that section of the board number with 00 00 00 00 00 00 00 00)
    Save the file and exit hex fiend.
    8. Now let's replace the original boot.efi file. Since the file is locked, we need to unlock the original before it will let us replace it, just like we did before:
    Code:
    sudo chflags nouchg /System/Library/CoreServices/boot.efi
    9. Drag your newly modified boot.efi file into the CoreServices folder to replace it, and type in your password when prompted.
    10. The last thing we need to do is set ownership+permissions and re-lock the file:
    Code:
    sudo chmod 644 /System/Library/CoreServices/boot.efi
    Code:
    sudo chown root:wheel /System/Library/CoreServices/boot.efi
    Code:
    sudo chflags uchg /System/Library/CoreServices/boot.efi
    11. Now let's reboot! You will most likely need to reboot twice for the settings to take effect.
    Here is the result:
    IMG_20140704_044543.jpg
    IMG_20140704_044603.jpg

    I'm extremely happy with this hack, I hope some of you will find it as useful as I have!

    If this guide is useful to you, please check out my music in my signature. :)
     
  2. abcdefg12345 macrumors regular

    abcdefg12345

    Joined:
    Jul 10, 2013
    #2
    nice one

    I followed your guide and got the black boot screen working on my 13 early 2011 MBP looks like what people said about needing the firmware update is not true, its all in the OS itself.
     
  3. 53kyle macrumors 65816

    53kyle

    Joined:
    Mar 27, 2012
    Location:
    Sebastopol, CA
    #3
    Works on a 2012 13" cMBP (see sig). Thanks for the guide!
     
  4. ACDIT macrumors member

    ACDIT

    Joined:
    Jun 16, 2014
  5. ccard3dev macrumors regular

    ccard3dev

    Joined:
    Nov 6, 2013
    Location:
    Michigan, US
    #5
    Thanks for the tip, looks great on my mid-2012 MacBook Air (although it would look even better with the MBP's black bezel)!
     
  6. ACDIT, Jul 5, 2014
    Last edited: Jul 5, 2014

    ACDIT macrumors member

    ACDIT

    Joined:
    Jun 16, 2014
    #6
    it does ! maybe you can ''emulate'' that bezel with a custom shaped black sticker or something if there's no way of installing a real one :D
     
  7. p3ntyne macrumors 6502

    p3ntyne

    Joined:
    Jan 10, 2014
    Location:
    Sydney, Australia
    #7
    Thanks!

    I did it on my mid-2012 cMBP and it looks wonderful.
     
  8. Antoni Nygaard macrumors 6502a

    Antoni Nygaard

    Joined:
    Jun 23, 2009
    Location:
    Denmark
    #8
    It doesn't seems to work on my MBP 4,1 the one before the Unibody models
     
  9. VanillaCrackerC macrumors newbie

    Joined:
    Jun 8, 2013
    #9
    Try to patch boot.efi in /usr/standalone/i386/
     
  10. Antoni Nygaard macrumors 6502a

    Antoni Nygaard

    Joined:
    Jun 23, 2009
    Location:
    Denmark
    #10

    Still nothing
     
  11. bu78 macrumors newbie

    Joined:
    Jun 4, 2014
  12. Manic Harmonic thread starter macrumors 6502

    Joined:
    Dec 4, 2011
    #12
    Double check to make sure boot.efi in coreservices is actually patched with your board id. When I first tried this, I forgot to unlock the file, so it acted like it replaced it but it didn't. Also of course make sure your board id is correct.

    It sounds though like your efi just might not be compatible, although that wouldn't really make sense to me.
     
  13. Antoni Nygaard, Jul 6, 2014
    Last edited: Jul 6, 2014

    Antoni Nygaard macrumors 6502a

    Antoni Nygaard

    Joined:
    Jun 23, 2009
    Location:
    Denmark
    #13
    i checked already, but i checked my board ID and it seems that it's not that long as newer macs. Mine is via terminal command: ioreg -p IODeviceTree -r -n / -d 1 Mac-F42C89C8

    and through Geekbench Mac-F42C89C8 PVT and i patched it with both and one with no space before PVT
     
  14. w0lf macrumors 65816

    w0lf

    Joined:
    Feb 16, 2013
    Location:
    USA
    #14
    I think this simply doesn't work with Core 2 Duo machines because they all have an 8 character board ID vs a 16 character board ID that Intel core i-Series use. If you change the size of boot.efi you boot to recovery. If you null on either side of the ID it simply does nothing.

    Also you don't need a 3rd party app to get your board ID. Terminal can do that.

    Code:
    var_ID=$(ioreg -p IODeviceTree -r -n / -d 1 | grep board-id);var_ID=${var_ID##*<\"};var_ID=${var_ID%%\">};echo $var_ID
    Aside from that here's a script to modify the boot.efi in one step with no terminal knowledge.

    Code:
    do_work()
    {
    	echo -e "Now you'll need to enter your password for some sudo commands\n"
    	sudo -v
    	echo -e "\n"
    
    	echo -e "Unlocking boot.efi"
    	sudo chflags nouchg /System/Library/CoreServices/boot.efi
    	
    	cur_time=$(date +%y%m%d%H%M%S)
    	echo -e "Backing up boot.efi to ~/Desktop/boot${cur_time}.efi"
    	sudo cp /System/Library/CoreServices/boot.efi ~/Desktop/boot${cur_time}.efi
    
    	echo -e "Editing boot.efi"
    	sudo mv /System/Library/CoreServices/boot.efi /tmp/___boot.efi
    	LANG=C sudo sed -i -e 's/Mac-35C1E88140C3E6CF/'$var_ID'/g' /tmp/___boot.efi
    	sudo perl -pe 'chomp if eof' /tmp/___boot.efi > /tmp/_boot.efi
    	sudo mv /tmp/_boot.efi /System/Library/CoreServices/boot.efi
    	sudo rm /tmp/___boot.efi
    
    	echo -e "Adjusting permissions and locking boot.efi"
    	sudo chmod 644 /System/Library/CoreServices/boot.efi
    	sudo chown root:wheel /System/Library/CoreServices/boot.efi
    	sudo chflags uchg /System/Library/CoreServices/boot.efi
    
    	echo -e "Done!\n\nNow all you need to do is reboot twice."
    	sleep 1
    	osascript -e 'tell app "loginwindow" to «event aevtrrst»'
    }
    
    var_ID=0
    clear
    echo -e "Welcome\n"
    var_ID=$(ioreg -p IODeviceTree -r -n / -d 1 | grep board-id)
    var_ID=${var_ID##*<\"}
    var_ID=${var_ID%%\">}
    if [[ ${#var_ID} -eq "20" ]]; then
    	echo -e "Awesome your ID should work!\n\nYour ID : $var_ID\nOld  ID : Mac-35C1E88140C3E6CF\n"
    	do_work
    else
    	echo -e "Sadly the ID is too short. You're likely using a Core 2 Duo machine."
    fi
    
    Download link: MediaFire

    Steps with script:
    1. Unzip
    2. Open bootEFI.command *
    3. Enter password

    * If it doesn't run you might need to make it executable by opening terminal and typing "chmod 755 " (minus the quotes) then dragging in the file and pressing return.
     
  15. Antoni Nygaard macrumors 6502a

    Antoni Nygaard

    Joined:
    Jun 23, 2009
    Location:
    Denmark
    #15
    Is it possible to switch around the files for the Boot greens. I mean replace the black in the grey one folder?
     
  16. w0lf macrumors 65816

    w0lf

    Joined:
    Feb 16, 2013
    Location:
    USA
    #16
    You mean have a computer that normally boots black boot with the grey screen instead? If so I would assume just nulling your ID out of boot.efi would work.
     
  17. Antoni Nygaard macrumors 6502a

    Antoni Nygaard

    Joined:
    Jun 23, 2009
    Location:
    Denmark
    #17
    Nope.


    Grey Folder

    Grey.png

    Black Folder

    Black.png

    to something like this.

    Grey folder

    Black.png

    Black Folder

    Grey.png
     
  18. ccard3dev macrumors regular

    ccard3dev

    Joined:
    Nov 6, 2013
    Location:
    Michigan, US
    #18
    Actually, I found a "Bezel emulator" for the MacBook Air on the MacRumors forums! I would buy it right away, but I am planning on buying the Retina MacBook Air when (and if) it comes out...
     
  19. Manic Harmonic thread starter macrumors 6502

    Joined:
    Dec 4, 2011
    #19
    Thanks dude! This will make it way easier for everyone, I'll put it in the OP.

    Here's what I'm wondering... What if you just replaced the other 8 digits with zeros? Something like this:

    Before
    Screen Shot 2014-07-06 at 5.24.38 PM.png

    After
    Screen Shot 2014-07-06 at 5.25.24 PM.png

    Would that work or something similar?

    EDIT: nevermind I read too quickly... I see you already addressed that, assuming you meant what I think you did. I'm surprised it doesn't work, it works for some kext binaries (Trim patch for example).
     
  20. ACDIT macrumors member

    ACDIT

    Joined:
    Jun 16, 2014
    #20
    Well it shouldn't cost a lot anyway , plus if/when it comes out you could benefit from that bezel on both machines !
     
  21. ccard3dev macrumors regular

    ccard3dev

    Joined:
    Nov 6, 2013
    Location:
    Michigan, US
    #21
    I was planning on selling my old MacBook Air and buying the new one when it comes out, that is why I don't want to buy it now.
     
  22. chrf097 macrumors 68040

    chrf097

    Joined:
    Dec 16, 2011
    #22
    Is there any major system damage that can be caused by doing this i.e. rendering the computer useless or unbootable?

    I'm bookmarking this post for when I go back to Yosemite cause I love that black boot screen but I don't want to do it if I put myself at a huge system failure risk.
     
  23. w0lf macrumors 65816

    w0lf

    Joined:
    Feb 16, 2013
    Location:
    USA
    #23
    No. You can make it boot straight to recovery mode though.
     
  24. ACDIT macrumors member

    ACDIT

    Joined:
    Jun 16, 2014
    #24
    DP3 Didn't ruin the new boot.efi ! good news.
     
  25. Manic Harmonic thread starter macrumors 6502

    Joined:
    Dec 4, 2011
    #25
    It looks like boot.efi WAS in fact replaced, but it didn't change the boot screen back. My guess is that if you booted into Mavericks twice you would have to re-do the hack.
     

Share This Page