joe codes

x-cart guru & custom programmer

  • About
  • Archives
  • Contact

Powered by Genesis

MacBook External DVD Player

August 21, 2021 by joecodes Leave a Comment

My trusty mid-2012 MacBook Pro running Catalina got an upgrade by replacing the integrated SuperDrive with an OWC Data Doubler and SSD, moving the SuperDrive to an OWC SuperSlim external enclosure. Everything went great except they don’t tell you make it clear that the DVD Player app will not play DVDs from an external SuperDrive.

tl;dr —

  1. Disable SIP
  2. Mount writable
  3. Hexedit DVDPlayback to replace “Internal” with “External”
  4. Codesign the modified DVDPlayback
  5. Enable SIP

1. Disable SIP

System Integrity Protection must be disabled since we want to modify a System file. Restart to Recovery Mode and disable, as Apple describes:

  1. Restart your computer Recovery Mode (holding cmd-r).
  2. Utilities > Terminal
  3. > csrutil disable
  4. > reboot

2. Hexedit DVDPlayback

DVD Player uses the DVDPlayback framework file which expects to find the SuperDrive is still internal. Modify the file to change all occurrences of “Internal” to “External.”

  1. Go to Folder: /System/Library/Frameworks/DVDPlayback.framework/Versions/A
  2. Copy (drag) DVDPlayback to the Desktop
  3. Use a hex editor like Hex Fiend to open the DVDPlayback file from the Desktop.*
  4. Find and replace all occurrences of “Internal” with “External” then save.

*An alternative is to brew install hexedit and edit the file from Terminal with sudo hexedit DVDPlayback.

Replace the file original file with the modified version.

  1. Open Terminal
  2. > sudo mount -uw /
  3. > cd /System/Library/Frameworks/DVDPlayback.framework/Versions/A
  4. > copy ~/Desktop/DVDPlayback .

After mount, you may be able to drop-and-drop the modified file back to the framework folder to replace it instead of the Terminal commands above.

You may also be able to use the steps above to edit the file in-place.

3. Code sign DVDPlayback

After modifying DVDPlayback, the file must be code signed. While still in the framework directory in Terminal:

  1. > sudo codesign -f -s – DVDPlayback

4. Play a DVD

Attach the external SuperDrive, insert a DVD, and DVD Player should automatically start.

5. Enable SIP

Be safe by enabling System Integrity Protection again.

  1. Restart your computer Recovery Mode (holding cmd-r).
  2. Utilities > Terminal
  3. > csrutil enable
  4. > reboot

References

These steps were cobbled together from several different web sites, each having a different piece of the puzzle.

  • https://www.tonymacx86.com/threads/success-mojave-external-usb-dvd-rw-dvd-playback-and-authoring.264559/
  • https://macriot.com/tt/how-to-get-an-external-optical-drive-working-with-dvd-player-application/
  • https://discussions.apple.com/thread/7445335

Share this:

  • Click to share on Twitter (Opens in new window)
  • Click to share on Reddit (Opens in new window)
  • Click to share on Facebook (Opens in new window)
  • Click to share on LinkedIn (Opens in new window)
  • Click to email a link to a friend (Opens in new window)

Related

Filed Under: Uncategorized Tagged With: Apple

Leave a Reply Cancel reply

You must be logged in to post a comment.

Quick Thoughts

  • I was surprised to learn that foreach in JavaScript does not have a traditional break. The loop will run to completion.

  • Who knew that combination sums across all permutation lengths of an array would be so difficult? It was a challenge but the final product looks good and takes a lot of resources. Limiting the max length for basic memory limits. Would only do something like this for occasional reporting.

  • Working on a new project that can have hundreds of forms on a page. The browser was spending way too much time in Parse HTML. Wasted a bunch of time before learning this is a long-standing bug in Chrome when there are many forms or inputs. Other browsers are fine.

Recent Posts

  • MacBook External DVD Player
  • Progressive Enhancement
  • Keychain Password Search
  • Smarty preg_match
  • iPhone Plus Experiment

Tag Cloud

Apple JavaScript Mason Perl PHP security simple Smarty speed stability Tax WWDC X-Cart

Search

Subscribe

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Recent Comments

  • Bad App Alert on Startup Item Help
  • iPhone Pre-Order Needs to Change on iPhone Pre-Order Warning
  • Apple vs Pro on My Personal Three S’s of Development