How to Get An External Optical Drive Working With DVD Player Application

By default, the latest Mac portables now ship sans an optical drive. There are also those who have older Mac portables which shipped with optical drives which have either broken down or the owner has elected to extend the life of their beloved Mac portables by displacing the optical drive with an additional hard drive (HDD) or Solid State Drive (SSD) by adding a third party hard drive caddy.

Notwithstanding which situation you are in, Apple (obviously) encourages the purchase of Apple’s own external USB SuperDrive either as an add-on option or replacement, respectively.

As good as Apple USB SuperDrives are, most opt to purchase non-Apple external USB optical drives, since more often than not the price point makes more sense.

Provided the third party USB optical drive is compatible with OS X, for most part there usually isn’t much fuss or muss in the realm of burning CDRs or DVRs or reading data CDRs or DVRs – most times it truly is a plug and play affair.

The trouble really only becomes apparent when a movie DVD is inserted into the USB optical drive and an attempt is made to view the movie using the Apple DVD Player application.

That’s when users gawk when they see this:

ExtDrv1

 

Note: this is not the signal to panic and go running back to the store you bought your third party USB optical drive at to scream at the vendor for claiming that it was “OS X compatible”.

Nine times out of ten, the USB optical drive is not at fault.

OS X is.

Apple Inc has fiendishly encoded a check into OS X to verify whether the attached USB optical drive is in fact an Apple USB SuperDrive. If not, ‘tell the user that DVD Player will not play nice’ which translated in OS X speak is “A valid DVD drive could not be found [-70012]”.

There is a workaround but be fair warned that it is quite a geeky one.

You will need to modify some code embedded into OS X’s DVDPlayback framework; essentially replacing the words “internal” with “external”.

This sounds easy on the face of it, but here comes the geeky part – its not written in regular human English – its written in Hexadecimal programming language, or Hex for short.

 

Telling OS X DVDPlayback Framework to Work With External Optical Drives

  • To access, read and write the DVDPlayback framework file you will need to download a free Hex editor app, 0xed by Suavetech
  • Before you begin make sure you have a way to revert, backup the original DVDPlayback framework file first; in Finder hit Shift + CMD + G, copy and paste the file path “/System/Library/Frameworks/DVDPlayback.framework/Versions/A/DVDPlayback” into the Go to Folder field
  • Copy and paste the DVDPlayback file to your Desktop or somewhere else in your Mac (its advisable to rename the file to indicate that its a backup of the original version e.g. “DVDPlayback_orignal_file”
  • Open the original DVDPlayback file using 0xed – to do this simply open another Finder window to the Applications folder, ensure that the 0xed application icon is visible then simply drag and drop the DVDPlayback file over the 0xed application icon. If you have done this correctly 0xed should launch and look something like this:

ExtDrv2

  • What we want to do next is Find and Replace all the words “internal” with “external” within this Hexadecimal language DVDPlayback framework file. In 0xed hit CMD + F and then type “internal” in the Find field and type “external” in the Replace field. Leave the “Ignore Case” field checked. Repeat until you have replaced all the words “internal” with “external”.

ExtDrv3

  • OS X will not allow you to overwrite the existing DVDPlayback file from 0xed. You must perform a Save As to save your now modified DVDPlayback framework to somewhere else on your Mac first, e.g. Desktop. Quit 0xed and drag and drop the modified DVDPlayback file to replace the existing. Enter your admin username and password when prompted (you may also be prompted to enter your admin password to modify this file)
  • Plug in your USB optical drive and give it a try

 

If somewhere along the way this either doesn’t work or you messed up, open Finder to the DVDPlayback framework file location and copy and paste your backup DVDPlayback over the original.

Remember to rename the backup to correspond to its original name, “DVDPlayback” and when prompted, agree to Replace the existing DVDPlayback file.

Also, if for some reason you have re-installed/repaired your original SuperDrive back into your Mac portable, redo the above process but instead of replacing “internal” with “external”, this time replace “external” with “internal” to reverse the process and get DVD Player working with your internal SuperDrive again.

Note: from our limited tests it appears that Apple Inc has been a little more generous on systems that originally ship sans optical drives by not imposing the check to ensure that only Apple SuperDrives work in conjunction with DVD Player.

Its best to test it out first before committing the above ‘fix’. As the old idiom goes, “if it ain’t broken, don’t fix it”.

Update 25 July 2015: Tested that this method still works in OS X 10.10.4, Yosemite. However, if you still face problems trying the above method, what you can do is download this already modified version of DVDPlayback framework file.

Make sure before anything backup your existing DVDPlayback framework file according to the above instructions, then copy and replace the downloaded modified DVDPlayback framework file over the existing one.

Connect your external USB optical drive, insert your DVD. Sit back and enjoy…

24 Comments on "How to Get An External Optical Drive Working With DVD Player Application"

  1. Thanks for the info. 1- Fixing the code, 2- Converting file, 3 – (where I am stuck) I am tech savvy, but this was hard to do in a sense. it takes about 30 mins to do the Internet System recovery to disable the protection.I followed the instructions patiently, but to no avail was it disabled.

    Used this: “csrutil disable; reboot” – Didn’t get a message it is disabled. I checked the status and it is still enabled (annoyed).
    Running El Capitan 10.11.6

    I have been at it for a few hours and really don’t want to Recover again and wit 30 mins. Is there another updated way since the last post perhaps?

  2. I have el capitan and doesn’t work. i can’t do the last step , i don’t have permissions to replace it 🙁

  3. There’s a better and more reliable solution. If your external drive (any make) doesn’t work anymore with El Capitan and up please see this page:

    http://www.hardturm.ch/luz/2016/07/how-to-make-the-macbook-air-superdrive-work-with-any-mac-el-capitan-onwards/

    The procedure on that page is needlessly complicated; you don’t need to boot into recovery mode and use the terminal. In short, you go to /Library/Preferences/SystemConfiguration in the Finder, duplicate com.apple.Boot.plist in case you need to restore it and in a plain text editor such as TextWrangler (NOT TextEdit!) change
    Kernel Flags

    to
    Kernel Flags
    mbasd=1
    in the original file. Save and reboot, and you’ll see the CD/DVD mounted on the Desktop. I have tested on my Mac Mini and it works, but please note that by doing this you are modifying an important system file; you alone are responsible for any mishap that may break your Mac.

    • Correction on editing com.apple.Boot.plist (tags were removed):
      change
      <key>Kernel Flags</key>
      <string></string>
      to
      <key>Kernel Flags</key>
      <string>mbasd=1</string>

      Thanks

  4. Karen F Mcguire | 23 July, 2017 at 02:41 |

    I’m on Yosemite (10.10.5) and it worked beautifully for me! So happy I can play DVDs. Thanks!
    Karen

  5. Has anyone found a workaround for Mac OS 10.12.4 (Sierra)?

  6. This works just fine on Yosemite and Snow Leopard – if it isn’t for you, something’s messed up.
    I never ran El Capitan, so I can’t vouch for that.
    HOWEVER, this solution does NOT work for Sierra. To get around Sierra’s security, after modifying and saving “as” the file in another location, I booted up in Snow Leopard and replaced the file in the Sierra volume. Sierra boots fine, but when you run DVD player, a different error msg comes up ” …. cannot run because there was a problem” with an option to send Apple a message all about it (yeah, right.). Le sigh . . .

  7. Doesn’t work for me. Get this error:

    DVD Player cannot be opened because of a problem.

    Check with the developer to make sure DVD Player works with this version of OS X. You may need to reinstall the application. Be sure to install any available updates for the application and OS X.

    Click Report to see more detailed information and send a report to Apple.

  8. Reino Karvinen | 22 October, 2016 at 08:42 |

    Doesn’t work with OSX sierra

  9. Well, the trick no longer worked on my 10.11.5 El Capitan. After some trials I found the problem: DON’T replace ALL “Internal” with “External”, it would catch some false hits like “30MacDVDBlockDriveParamsInternal”.
    Instead use the hex replace mode and replace all “00 49 6E 74 65 72 6E 61 6C” with “00 45 78 74 65 72 6E 61 6C”.

    Hope that helps you, too 🙂

  10. Hi. This brilliant worked for me. I have OS LION on a 4.1 macbook. The only problem was the file OxED saved was in document form and needed to be converted to unix excutable file. but otherwise. EASY, THANK YOU.

  11. It worked perfectly on OS X 10.9.5. Just I had to change permissions on the file DVDPlayback since I’m not accessing with root privileges (just typed “sudo chmod 777 DVDPlayback” and entered the root password when prompted). Many Thanks!

  12. Any solution for el Capitain ?

  13. Bernard Wyche | 3 December, 2015 at 08:39 |

    The above worked on Yosemite BUT not my El Capitan you cannot over write systems files. You get a message “you don’t have permission”

  14. Thanks a lot for this. And thanks even more to Robert Fischer, I too had to go through the disabling of csrutil to modify anything in my system folder. Oh and also, turns out 0xED does not let you save the DVDPlayback, you have to save it “as” first, and then replace it.

  15. I did all the steps and it begins to play, thats a good step, but no I only get a gray screen, no picture using Apple DVD player. If I use VLC the DVD plays no problem. I’m on 10.10.5. Any thoughts?

    Thank you for the solution,

    Bob

  16. Just want to let you know that this wonderful hint also seems to work on El Capitan, at least in my initial tests.
    However, you have to disable system integrity protection (temporarily) to be allowed to change this system related file.
    I’ve followed the instructions at “osxdaily.com/2015/10/05/disable-rootless-system-integrity-protection-mac-os-x/” to disable and later re-enable integrity protection.

  17. Checked, and there is no DVDPlayer.Framework folder/file where it’s supposed to be. Going to check again tomorrow.

  18. Philip Danks | 9 July, 2015 at 16:58 |

    Works perfectly! Many thanks. Very much appreciated.

  19. Jürgen Wölm | 19 June, 2015 at 01:51 |

    Doesn’t work for Yosemite. Can’t find “/System/Library/Frameworks/DVDPlayback.framework/Versions/A/DVDPlayback”.
    It worked so well with OS X 10.9…

  20. Doesn’t work for accounts with parental controls on 10.10.2. DVD Player keeps crashing.

  21. Works like a charm. Thanks you for the solution.

  22. This work like a charm… and i don’t now if i miss it, but it should say that it have to replace all internal to external, at list that how it work for me and thanks for posting this that works 🙂

    Thank again

Comments are closed.