How to make the MacBook Air SuperDrive work with any Mac

Note: for Mac OS X 10.11 El Capitan and later, please see this updated post instead.

(Edited/clarified Nov. 2012, Nov. 2013, Jan 2015 and June 2016)

The story is this - a while ago I replaced the built-in optical disk drive in my MacBook Pro 17" by an OptiBay (in the meantime, there are also alternatives) which allows to connect a second harddrive, or in my case, a SSD.

To be able to continue using the SuperDrive (Apple's name for the CD/DVD read/write drive), the Optibay came with an external USB case which worked fine, but was ugly. And I didn't want to carry that around, so I left it at home and bought a shiny new MacBook Air SuperDrive (by 2012, Apple USB SuperDrive) for the office.

It just didn't occur to me that this thing could possibly not just work with any Mac, so I didn't even ask before buying. I knew that many third-party USB optical drives work fine, so I just assumed that would be the same for the Apple drive. But I had to learn otherwise. This drive only works for Macs which, in their original form, do not have an optical drive.

At this point, I started to search the net, finding hints, disassembling Mac OS X USB drivers and finally patching code in a hex editor which was the first, but ugly, solution to make the superdrive work, and gave me the information to eventually find the second, much nicer solution presented below. For those interested in the nitfy details of disassembling and hex code patching, the first approach is still documented here.

For actually making the SuperDrive work in clean and easy way, just read on (but note: while it has proven to be a quite safe method, still you'll be doing this entirely on your own risk! Using sudo and editing system files incorrectly can damage things severely!).

Apparently, Apple engineers had the need to test the superdrive with non-MacBookAir computers themselves, so the driver already has an option built-in to work on officially unsupported machines! All you need to do is enable that option, as follows:

The driver recognizes a boot parameter named "mbasd" (Mac Book Air Super Drive), which sets a flag in the driver which both overrides the check for the MBA and also tweaks something related to USB power management (the superdrive probably needs more power than regular USB allows). So just editing /Library/Preferences/SystemConfiguration/com.apple.Boot.plist and inserting the "mbasd=1″ into the "Kernel Flags" does the trick:

[For OS X 10.11 El Capitan onwards please see here for updated instructions instead!]

  1. open a terminal
  2. type the following two commands (two lines, each "sudo" starting on a new line)

    sudo plutil -convert xml1 /Library/Preferences/SystemConfiguration/com.apple.Boot.plist

    sudo pico /Library/Preferences/SystemConfiguration/com.apple.Boot.plist

  3. Insert mbasd=1 in the <string></string> value below the <key>Kernel Flags</key> (If and only if there is already something written between <string> and </string>, then use a space to separate the mbasd=1 from what's already there. Otherwise, avoid any extra spaces!). The file will then look like:

    <?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>Kernel Flags</key>
    <string>mbasd=1</string>
    </dict>
    </plist>

    [Important update for users of Trim Enabler (thanks boabmatic!): Since Yosemite, installation of Trim enabler puts another flag "kext-dev-mode=1" into the com.apple.Boot.plist, and, unfortunately, also converts the .plist to binary format which shows as mostly garbage in many text editors (that's what the "plutil" line in step 2 above takes care about: it converts the file back to XML so you can edit it). Note that the system will not boot any more when trim enabler is installed, but "kext-dev-mode=1" is missing! So to apply the "mdasd=1" with trim enabler active, you need to combine both flags, such that the line will read
    <string>kext-dev-mode=1 mbasd=1</string>. For details on Yosemite and Trim Enabler, see here]
    [Update: As CyborgSam pointed out in the comments, the file might not yet exist at all on some Macs. In that case, the pico editor window will initially be empty - if so, just copy and paste the entire XML block from above].

  4. Save (press Ctrl-X, answer yes to save by pressing Y, press enter to confirm the file name).
  5. Restart your machine. That's it!

I tested this [Updated:2013-11-03] on Lion 10.7.2 up to 10.7.4, Mountain Lion up to 10.8.4 and Mavericks 10.9 so far, but I expect it to work for all Mac OS versions that came after the initial release of the Macbook Air Superdrive, which is probably 10.5.3, and is likely to work with future versions of OS X. Just let me know your experience in the comments!

BTW: the boot options plist and how it works is described in the Darwin man pages

503 thoughts on “How to make the MacBook Air SuperDrive work with any Mac”

  1. Fantastic!!!

    Thanks a lot for this tip. Works absolutely perfect on both an IMac 2011 and a MacBook Pro 2010. Thx for saving my money :-)

    Cheers from Germany.
    Marc

    1. Solution theoretically is excellent but as u mentioned external USB super drive draws more power than internal. But a doubt is arise here is back end circuit is designed for that much power requirement. I think it is not a solution just a jugad.

      1. The solution also works in practice because Apple’s USB ports deliver more power than the USB specs demand (500mA @ 5V = 2.5). Apple wants that you can charge your iPhone by connecting it to the computer, which needs around 1A @ 5V = 5W. So as long as you connect the Superdrive directly to an Apple USB port and not via a USB hub, it will have enough power supply.
        But of course it’s a jugaad in the sense of “workaround” – a way to work around Apple’s refusal to use this drive with certain Mac models :-)

        1. Luz, When I open the terminal window, I type sudo pico, then my password. after that, the screen is blank, so I copy and paste the

          Kernel Flags
          mbasd=1

          After that, I hit control x, and then Yes….
          the filename at the bottom is empty….. Should I put the /Library/Preferences/SystemConfiguration/com.apple.Boot.plist in that spot???? if not, do I just leave it blank? I wasn’t sure if I was supposed to put sudo pico enter,/Library/Preferences/SystemConfiguration/com.apple.Boot.plist and then enter, then copy and paste the long list above, and then save… Any advice would help. thnx.

          1. Bottom line is that there was no filename at the bottom when i was done with the inputs you stated in the above article. If my screen was blank (white) with no words or scripts, did I have to input the /Library comma you mentioned above, or just copy and paste the long script you provided then save, and leave no filename since it was empty.

          2. Hi Stevo,

            I think that you need to type the following if your screen is blank:

            Kernel Flags
            mbasd=1

            That’s what I understood. We were able to make it work 2010 Macbook Pro running Mavericks. Thanks!

    1. The approach is the same for Leopard and Snow Leopard. However, the exact patch locations most probably differ if the driver was updated between Mac OS versions. And if the drivers are in fact different, the search for the correct patch locations needs to be done for the Leopard/Snow Leopard versions separately.

      Another idea worth trying (but on your own risk!) could be using the patched driver from Lion and copy it to Snow Leopard / Leopard. There’s no fundamental reason why this should not work, but of course there might be subtle details in the way. I’d be interested to hear if it actually works should anyone dare to try :-)

      1. Any chance you could do this for Snow Leopard for us? I downloaded and tried IDA, but I couldn’t easily correlate its hex offsets to 0xED’s. I can follow the code OK, but I didn’t see any 0x75 bytes nearby. And it wasn’t 100% clear to me if I was replacing the jz or jnz or the test before it…

        1. Yes, please re-read the post, I just updated it in the beginning – I found a much simpler method which requires no driver patching and which should work on SL as well. Apple engineers apparently had the need to test the drive with non-Macbook Air computers, so the driver has a command line flag for that.

          1. Thanks! The com.apple.Boot.plist “trick” worked OK in Snow Leopard 10.6.8.

            Let’s hope Apple doesn’t disable this………

            I saw that method on the web but since Snow Leopard doesn’t have a com.apple.Boot.plist by default, I had erroneously assumed it wouldn’t work.

  2. Can’t get this to work with mine, kext patching went fine but console reports:

    AppleUSBCDC: start – initDevice failed

    I saw on tnkgrl’s site mention that there are “new” and “old” superdrives, perhaps I have an “old” one for which this method won’t work.

    Can anyone confirm?

    USB Prober provides the following details for my superdrive (some ommitted).

    bcdDevice 512 (0x200)
    bDeviceClass 0 (0x0)
    idProduct 5376 (0x1500)
    idVendor 1452 (0x5ac)
    iProduct 2 (0x2)
    iSerialNumber 3 (0x3)
    USB Product Name MacBook Air SuperDrive
    USB Serial Number KEMB8IA5534
    USB Vendor Name Apple Inc.

    1. Have you tried the new, simpler method (see update at the beginning of the original post)? It could be related to power consumption of the old vs. the new MBASD. The new method apparently also influences power management, so it might work with the old drive.

  3. when i type in “sudo cp -R AppleUSBODD.kext ~/Desktop” on “PlugIns mymac$”
    it says
    “WARNING: Improper use of the sudo command could lead to data loss
    or the deletion of important system files. Please double-check your
    typing when using sudo. Type “man sudo” for more information.

    To proceed, enter your password, or type Ctrl-C to abort.

    Password:”

    How should i find my password? I did not set any to it…
    can anyone help? thx
    Alfred

    1. If you really have no admin passwort you can just press enter at the prompt. However I doubt it is possible to set-up a Mac without an admin password without tricks, so most probably you did set a password when you initially installed Mac OS.

      BTW: I recommend you to use the new method (see update at the beginning of the original post) which is better and simpler. You still need sudo, though, so if you need to get past that passwort prompt in either case.

      1. Thanks for the update (and the tweet which I missed!).

        I gave the kernel flags a go but it still doesn’t seem to work for me.

        I may just buy a newer model drive from Apple or sacrifice an old external for the usb->ide bridge instead of stuffing around too much.

        Thanks for all the great info!

        1. Did you check the console log for the “The MacBook Air SuperDrive is not supported on this Mac” message when you plug in the drive? If it still appears, the kernel flag is not active (for whatever reason, e.g. typo in the .plist). Because if the flag is set, I see absolutely zero possibility in the code for the message to appear, even if some other problem should prevent the older MBASD from working. What I mean is: as long as you still see the message, the problem is not the drive, but the flag not being active.

          1. no “not supported on…” message, just failed to read dvd (movies), I didn’t think to try a regular dvd or cd.

            I got a new drive instead and all is well!

            great work thx!

  4. hi luz,

    i tried the new method it is success in osx leopard. the drive is recognize now.

    but the dvdplayer app didn’t recognize the drive it said

    “There was an initialization error
    A valid DVD drive could not be found . [-70012]”

    by the way thank you very much for your effort making this superdrive usable….

    regards,

  5. Hey,

    So thank you for your work on this problem. I am trying to use my macbook air superdrive with my original mac mini running leopard, but it doesn’t recognize the kernel flag (in verbose mode it still shows the message “this mac does not support the macbook air superdrive”). I tried using terminal to add the file as suggested (as stated the file was not there to begin with), have you any suggestions as to how to solve this?

    1. I would guess that for some reason the kernel cannot read the com.apple.Boot.plist file. Maybe the XML is not valid – if you created the file by cut & paste from the blog, maybe something more than the plain XML was copied.

  6. Hi.

    I’ve never done anything like this before, so just one clarification if you wouldn’t mind. Where you’re written: “(If the string is not empty to begin with (it normally is), then use a space to separate the mbasd=1 from what’s already there).” Do you mean that mbsad=1 will be *after* whatever’s written there already, separated by a space on the same line? Like:

    Kernel Flags
    xyz mbasd=1

    Thanks!

    1. What I meant to say was:
      if at the beginning it e.g. looks like:

      <key>Kernel Flags</key>
      <string>something</string>

      …then you need to add a space after “something”, and then write “mbasd=1” after that (double check spelling, you wrote “mbsad” in your comment, that would not work!), so the result would look like:

      <key>Kernel Flags</key>
      <string>something mbasd=1</string>

      But usually, there’s no “something” at the beginning, so the result would be just

      <key>Kernel Flags</key>
      <string>mbasd=1</string>

    1. The < and > disappear because the comment is treated as HTML which uses < and > for formatting tags. Use &lt; and &gt; for < and > (less than, greater than).

  7. Thank you for this super tip. I am glad my research finally paid off. My superdrive just died. I figured if I was going to pay for a used internal, I may as well pay a little bit extra and get something in warranty.

  8. I went through the new terminal instructions on my mid 09 MCP. The file was there, with no other data in the string, so i added in mbasd=1, saved, etc, rebooted, and still cannot access the drive. Ideas?

    1. Can you please explain exactly what you typed starting with the sudo pico line. Did you enter and then type in the /Library stuff and hit enter again? As well, was your screen blank or did it have the stringer with stuff in it???? Mine was blank, but I don’t know if I was still supposed to add the /Library stuff at the beginning or just copy paste the long stuff in his paragraph, then save…. There was no filename that was listed, so i bailed out and didn’t do thru with it. Any help would be appreciated.

  9. Hi Luz, this worked perfectly on my Macbook pro early ’11 (10.7.3) w optiBay installed , thank you for such simple instructions. Soon after restart I was instantly burning CD’s into itunes. However I noticed a comment above from Ali about using it with DVD player, by default does your method above effect many other applications which try to access a dvd drive? Or should this method instantly work with anything trying to access the new superdrive? im just curious to know before I go on and play ‘just google it’

    regards
    seb

    1. Type “terminal” into the Spotlight search box and choose the top hit.
      However, if you’ve never used a command line before, I’m not sure if you’ll be comfortable with the rest of the procedure. After all, it’s still a hack.

  10. It is all too complicated for an “oldie” like myself. Besides I have the Snow Leopard iMac. So, that wouldn’t work I understand, even if I would be able to do this. Is that correct?

  11. I’m trying to get the superdrive to work with my 2011 15 inch MBP, however when I navigate to the /Library/Preferences there is no SystemConfiguration folder (and hence no com.apple.Boot.plist to edit). When looking around my computer I can’t find that plist anywhere! Any suggestions on how to get it to work for me?

    1. Nevermind, I found the folder and file, but now it seems like the superdrive isn’t working properly. I put a Windows 7 DVD into it, and the first time it said it was a blank DVD (which it isn’t). I put it into my other macs internal drive and it worked fine. I switched it into the external superdrive and now it won’t even read it at all, just spits it right out.

      1. That’s most likely not a problem caused by the hack. Is that DVD a burned one? Just because burnt DVDs are often not very reliable. I have dozens of data DVDs that failed to mount in some drives, still worked in others.

        1. I tested it with non-burned CDs as well, even tested on a macbook air and it still wasn’t working (so it must be the drive itself). I ordered a bare 12.7 IDE slot drive off eBay and will try replacing the one in there.

  12. Works absolutely fine on my MBPro (mid 2010) with 10.7.3, including the little tweak to the DVDPlayer framework highlighted by Ali.

    This has been annoying me for some time, so thanks for taking the time to investigate this and publish the solution…

  13. Ok, I’m still not able to get this to work and I can’t figure out why. I did everything listed, and the superdrive is now recognized by the mac (shows up in system profile) and it even spins up disks, however the disk never gets mounted (I never see it show up on the desktop). I’ve tried this with multiple disks and still no go. I even bought another 12.7mm IDE DVD-burner and replaced the one in the superdrive with a new one (thinking maybe the drive was dead), and the same thing is happening. Any idea why this would be the case?

    1. I looked at the plist file, and mine looks slightly different than the one listed.

      <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple$

      Kernel
      mach_kernel
      Kernel Flags
      mbasd=1

      Could this be the issue?

    2. I looked at the plist file, and mine looks slightly different than the one listed.


      <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple$

      Kernel
      mach_kernel
      Kernel Flags
      mbasd=1

      Could this be the issue?

      1. I have the same problem as you. My code comes up as this: Kernel
        mach_kernel
        Kernel Flags
        mbasd=1

        I inserted mbasd=1 after Kernel Flags, but does the mach_kernel mess anything up? I have a mac running on leopard, 10.5.8. thanks!

        1. Unfortunately, it’s hard to quote XML here in the comments as wordpress usually eats all > and < characters, so I’m not sure how your file really looks now (the ways as it appears to be in your comment would certainly not work, but that’s most probably not what’s really in your file).

          Anyway – it’s really important that you leave everything untouched in that file except the insert of “mbasd=1” as derscribed in the main post. A single missing > or < or extra space in the wrong place will likely make the entire file become an invalid plist and thus ignored by OS X. I also recommend (see my comment from July 4th) to use the command line method to edit the file, because not only the contents, but also the permissions of that file are important.

        1. Have a look at the output of console.app – do you see the “The MacBook Air SuperDrive is not supported on this Mac.” message when you connect the drive?

          1. 1/1/01 7:59:17 AM quicklookd[119] [QL ERROR] ‘Creating thumbnail’ timed out for ”

            is all it says when I plug in the superdrive. I assume that may mean I am screwed?

Leave a Reply

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