Sunday, August 11, 2013

Howto: Apple TV 3, Jailbreak Like Solution Using Plex Connect & Plex Server

So the ATV3 jailbreak remains as far away as ever it seems except for all the frauds out there trying to take your money.

I've stumbled upon a free solution that the fine users and makers of Plex Server have created to work around the issue which is almost as good as jailbreak.  The solution hijacks the Apple Trailer app on the ATV by using DNS to redirect it to fetch data from Plex Server.

This allows you access to all the Plex plugins/transcoding and sharing of your local media in an air play like solution.  So this is basically everything you could want in jailbreak but without having to jailbreak anything though you must run Plex on a computer somewhere in your house while using your ATV.

Enough talking onto the downloads.

First, we'll need to generate a certificate to get it running over SSL since Apple recently switched the trailers channel to https (SSL).


  1. Download and install Apple Configurator (it is in the Appstore & available for Windows).
  2. Open terminal window, paste the below commands:

  3. openssl req -new -nodes -newkey rsa:2048 -out ~/Desktop/trailers.pem -keyout ~/Desktop/trailers.key -x509 -days 7300 -subj "/C=US/CN=trailers.apple.com"

    openssl x509 -in ~/Desktop/trailers.pem -outform der -out ~/Desktop/trailers.cer && cat ~/Desktop/trailers.key >> ~/Desktop/trailers.pem




  4. Now you have three files on your Desktop.  Launch Apple Configurator.  You should now see the below screen.  Click Supervision on the below screen to get the profiles menu.  Click the plus sign to get the create new profile wizard.

  5. Apple Configurator Prepare Screen
  6. The Window will change and you will see a profiles form on the window.  Enter "appletv-fix for the name as shown below.

  7. Profiles Window








  8. Now click certificates on the left and click the the configure button.  You'll be prompted to pick a file.  Navigate to your desktop and select "trailers.cer" that we created from the terminal commands earlier.
  9. Click save on the bottom right and your profile will be saved.  We can now transfer the profile to the Apple TV.  This is necessary so your Apple TV can encrypt the content in a manner that the PlexConnect script can decrypt and we'll use the same cert in our PlexConnect configuration later.
  10. Turn supervisor mode off in Apple Configurator and connect your Apple TV to your computer with a mini-usb cable (like the charger for an Android phone).  Ensure your Apple TV has power too or it won't work.
  11. Apple Configurator will change to the below screen when it recognises your Apple TV.
    Apple Configurator screen once it recognizes your Apple TV








  12. All you do is click next and it transfers the cert to your Apple TV.  You'll see a green icon appear to indicate success.

We are now done with Apple Configurator and you can disconnect the Apple TV.  Now, we need to get PlexConnect script and configure it to use the cert generated above to connect to the Apple TV.

  1. To get this setup going, your going to need to download Plex Server onto your computer.  You can get it HERE.
  2. Get PlexConnect using Git on their repository HERE.  You can use this command from the terminal if you have Git installed: git clone https://github.com/iBaa/PlexConnect.git
  3. In a terminal, get your machines, IP address: ifconfig -a (or ipconfig on windows)
  4. Run PlexConnect using this command: sudo ./PlexConnect.py
  5. Shutdown the script immediately.  It has now generated a configuration file for you.
  6. Create a folder in the PlexConnect folder called certs.  Move the trailers.cer, trailers.key and trailers.pem files to this folder.  I recommend backing up these files so you have them for later.
  7. Open the Settings.cfg file in text editor and edit the line certfile to point to your trailers.pem file above.  It will looks like below.
  8. certfile = ./certs/trailers.pem
  9. Run PlexConnect from the terminal again using: sudo ./PlexConnect.py
  10. Change your Apple TV DNS from Automatic and enter in your IP address from your machine running PlexConnect (usually in format 192.168.X.X).  Step by step screenshots HERE on how to change DNS.
  11. Run the trailer app and Plex should launch.

I recommend also getting the unsupported Plex Plugins HERE and you'll need to put them in the plugins directory of Plex (this depends on where your plex is setup, on OSX, it is ~/Library/Application Support/Plex Media Server/Plug-ins/

This will allow you to install some more plugins.

NOTE: The screenshots and text for cert generation here are taken from the post I followed about it here. I'm putting them all into one guide for simplicity.

8 comments:

  1. In step 2, the link to the zip file is dead.

    ReplyDelete
  2. its working.But as of now just changing the dns and running python script alone will not do.you have to create a certificate using openssl plus apple iphone configuration utility to import the certificate and upload to appletv3 via micro usb cable.After that everything works great.also you have to change some lines in plexconnect script.

    ReplyDelete
  3. Yes, I'll update when I have time.

    Apple changed trailers app so now more steps are required but it still works.

    I only discovered this myself at weekend.

    ReplyDelete
  4. I think no one works... I recently checked for another link for jailbreaking my apple tv 3 device but to no use...
    Going to try this one now..
    http://techguru3d.com/apple-tv-3-jailbreak/

    ReplyDelete
  5. This works, guide is just out of date. Works with latest firmware.

    Steps not listed here are for SSL setup which Apple added to trailers app recently.

    ReplyDelete
  6. hi, followed all these steps but it does not work on my network. Running ATV 5.3

    ReplyDelete
  7. Brim4Brim, do you have a link to the new steps involved?

    ReplyDelete
    Replies
    1. Hi motion 2082, I've updated the instructions just now to include cert generation and added a link at the bottom of the blog to show where I got them from :)

      Delete