Mudanças entre as edições de "Hacking Apple TV"

De Área31 Hackerspace
Linha 28: Linha 28:
 
Recomendo usar o bind pela estabilidade oferecida. Segue uma configuração a ser realizada no arquivo named.conf:
 
Recomendo usar o bind pela estabilidade oferecida. Segue uma configuração a ser realizada no arquivo named.conf:
  
<pre>
+
{{file|name=/etc/bind/named.conf|desc=bind config dns zone|body=
####################################################################################################
 
 
# Plex on AppleTV
 
# Plex on AppleTV
  
Linha 43: Linha 42:
 
zone "appldnld.apple.com" IN { type master; file "master/noupdate.apple.com.zone"; };
 
zone "appldnld.apple.com" IN { type master; file "master/noupdate.apple.com.zone"; };
 
zone "appldnld.apple.com.edgesuite.net" IN { type master; file "master/noupdate.apple.com.zone"; };
 
zone "appldnld.apple.com.edgesuite.net" IN { type master; file "master/noupdate.apple.com.zone"; };
 
+
}}
####################################################################################################
 
</pre>
 
  
  
 
Crie o arquivo de zona:
 
Crie o arquivo de zona:
vi /var/lib/named/master/trailers.apple.com.zone
+
{{console|body=
 +
###i## vi /var/lib/named/master/trailers.apple.com.zone
 +
}}
  
<pre>
+
{{file|name=/var/lib/named/master/trailers.apple.com.zone|desc=arquivo fake dns zone|body=
 
$TTL 300
 
$TTL 300
 
@              IN SOA  @  root (
 
@              IN SOA  @  root (
Linha 65: Linha 64:
  
 
Corrija a permissão dos arquivos:
 
Corrija a permissão dos arquivos:
 
+
{{console|body=
chown named. /var/lib/named/master/trailers.apple.com.zone ; cp -p /var/lib/named/master/noupdate.apple.com.zone
+
###i## chown named. /var/lib/named/master/trailers.apple.com.zone ; cp -p /var/lib/named/master/noupdate.apple.com.zone
 +
}}
  
 
Confira se está corretamente configurado:
 
Confira se está corretamente configurado:
 
+
{{console|body=
named-checkconf -z
+
###i## named-checkconf -z
 +
}}
  
 
Reinicie o serviço de DNS:
 
Reinicie o serviço de DNS:
 
+
{{console|body=
/etc/init.d/named restart
+
###i## /etc/init.d/named restart
 
+
}}
  
 
Desative o DNS em python do PlexConnect:
 
Desative o DNS em python do PlexConnect:
sed -i s,'enable_dnsserver = True','enable_dnsserver = False',g /opt/PlexConnect/Settings.cfg
+
{{console|body=
 
+
###i## sed -i s,'enable_dnsserver = True','enable_dnsserver = False',g /opt/PlexConnect/Settings.cfg
 +
}}
  
 
=== Execute o Plex Connect ===
 
=== Execute o Plex Connect ===
 
Altere a porta padrão do webserver em python para instalação do certificado:
 
Altere a porta padrão do webserver em python para instalação do certificado:
sed -i s,'port_webserver = 80','port_webserver = 32480',g /opt/PlexConnect/Settings.cfg
+
{{console|body=
 
+
###i## sed -i s,'port_webserver = 80','port_webserver = 32480',g /opt/PlexConnect/Settings.cfg
 
+
###i## cd /opt/PlexConnect && python2.7 PlexConnect.py
cd /opt/PlexConnect && python2.7 PlexConnect.py
+
}}
  
 
Caso não tenha nenhum serviço nas portas 80, 443 e 53 tudo será executado sem problemas. Deixe o processo rodando, pode ser em '''nohup'''. ;)
 
Caso não tenha nenhum serviço nas portas 80, 443 e 53 tudo será executado sem problemas. Deixe o processo rodando, pode ser em '''nohup'''. ;)
Linha 114: Linha 116:
  
 
= Instale o Plex Media Center no Funtoo Linux (compatível 100% com Gentoo Linux) =
 
= Instale o Plex Media Center no Funtoo Linux (compatível 100% com Gentoo Linux) =
echo app-portage/layman mercurial >>/etc/portage/package.use
+
{{console|body=
 
+
###i## echo app-portage/layman mercurial >>/etc/portage/package.use
emerge layman
+
###i## emerge layman
 +
}}
  
 +
Adicione no arquivo de configuração o repositório megacoffee conforme exemplo abaixo:
 +
{{console|body=
 +
###i## vi /etc/layman/layman.cfg
 +
}}
  
Adicione no arquivo de configuração o repositório megacoffee conforme exemplo abaixo:
 
vi /etc/layman/layman.cfg
 
  
<pre>
 
 
overlays  : http://www.gentoo.org/proj/en/overlays/repositories.xml
 
overlays  : http://www.gentoo.org/proj/en/overlays/repositories.xml
 
             http://gentoo-overlay.megacoffee.net/repositories.xml
 
             http://gentoo-overlay.megacoffee.net/repositories.xml
 
#-----------------------------------------------------------
 
</pre>
 
  
  
 
Atualize os repositórios:
 
Atualize os repositórios:
layman -f
+
{{console|body=
 
+
###i## layman -f
 +
}}
  
 
Após atualizar, adicione o overlay "MegaCoffee":
 
Após atualizar, adicione o overlay "MegaCoffee":
layman -a megacoffee
+
{{console|body=
 
+
###i## layman -a megacoffee
 +
}}
  
 
== Atualize seu '''/etc/make.conf''' ==
 
== Atualize seu '''/etc/make.conf''' ==
Linha 152: Linha 155:
  
 
== Instale o Plex Media Server ==
 
== Instale o Plex Media Server ==
emerge plex-media-server
+
{{console|body=
 
+
###i## emerge plex-media-server
 +
}}
  
 
== Execute o Plex Media Server ==
 
== Execute o Plex Media Server ==
/etc/init.d/plex-media-server start
+
{{console|body=
 
+
###i## /etc/init.d/plex-media-server start
 +
}}
  
 
== Adicione o Plex ao boot do Funtoo ==
 
== Adicione o Plex ao boot do Funtoo ==
rc-update add plex-media-server default
+
{{console|body=
 
+
###i## rc-update add plex-media-server default
 +
}}
  
 
=== Personalize o boot, caso seja o mesmo servidor de Plex Media Center e Plex Connect ===
 
=== Personalize o boot, caso seja o mesmo servidor de Plex Media Center e Plex Connect ===
 
Personalize seu script de init do Plex conforme abaixo:
 
Personalize seu script de init do Plex conforme abaixo:
 +
{{console|body=
 +
###i## vi /etc/init.d/plex-media-server
 +
}}
  
vi /etc/init.d/plex-media-server
 
  
 
<pre>
 
<pre>
Linha 202: Linha 210:
  
 
PS: Lembre-se de alterar o cabeçalho do script python caso seu python default do sistema não seja a versão 2.7 conforme exemplo abaixo (a minha versão do python default é a 3.3):
 
PS: Lembre-se de alterar o cabeçalho do script python caso seu python default do sistema não seja a versão 2.7 conforme exemplo abaixo (a minha versão do python default é a 3.3):
 
+
{{console|body=
vi /opt/PlexConnect/PlexConnect.py
+
###i## vi /opt/PlexConnect/PlexConnect.py
 
+
}}
#!/usr/bin/env python2.7
+
{{console|body=
 
+
#!/usr/bin/env python2.7
 +
}}
  
 
== Acesse via Browser e personalize seu sistema ==
 
== Acesse via Browser e personalize seu sistema ==
 
É possível criar bibliotecas novas de filmes, músicas e outros. Acesse via browser:
 
É possível criar bibliotecas novas de filmes, músicas e outros. Acesse via browser:
http://192.168.100.254:32400/manage
+
http://192.168.100.254:32400/manage
  
 
[[Image:Plex on pc search01.png|300px]] [[Image:Plex on pc search02.png|300px]] [[Image:Plex on pc search03.png|300px]]
 
[[Image:Plex on pc search01.png|300px]] [[Image:Plex on pc search02.png|300px]] [[Image:Plex on pc search03.png|300px]]
Linha 222: Linha 231:
  
 
== PLEX para arquitetura ARM ==
 
== PLEX para arquitetura ARM ==
http://plexrpms.markwalker.dk/arm/
+
http://plexrpms.markwalker.dk/arm/
  
 
=== PLEX on Raspberry Pi ===
 
=== PLEX on Raspberry Pi ===
<pre>
+
{{console|body=
 
#!/bin/sh
 
#!/bin/sh
 
cd ~/pms
 
cd ~/pms
Linha 241: Linha 250:
 
ulimit -s 8192
 
ulimit -s 8192
 
'./Plex Media Server'
 
'./Plex Media Server'
</pre>
+
}}
  
 
Acesso:
 
Acesso:
http://<ip rasp>:32400/web/index.html
+
http://<ip rasp>:32400/web/index.html
  
  
 
= Linux on Apple TV first generation (based on x86) =
 
= Linux on Apple TV first generation (based on x86) =
http://www.mythic-beasts.com/resources/appletv/walk-through.html
+
http://www.mythic-beasts.com/resources/appletv/walk-through.html
  
  
 
= Jailbreak Apple TV 3rd Gen =
 
= Jailbreak Apple TV 3rd Gen =
 
Estamos tentando fazer jailbreak na Apple TV terceira geração, porém ainda não saiu nada oficial:
 
Estamos tentando fazer jailbreak na Apple TV terceira geração, porém ainda não saiu nada oficial:
http://snow3rd.com
+
 
 +
http://snow3rd.com
  
  
 
== Outras opções de Jailbreak da Apple TV ==
 
== Outras opções de Jailbreak da Apple TV ==
http://ijailbrk.com
+
http://ijailbrk.com
  
  
Linha 263: Linha 273:
  
 
== Caso você tenha atualizado o iOS da Apple TV ==
 
== Caso você tenha atualizado o iOS da Apple TV ==
<pre>
+
 
 
http://9to5mac.com/2013/07/22/plex-ios-app-updated-with-more-responsive-browser-other-performance-improvements/
 
http://9to5mac.com/2013/07/22/plex-ios-app-updated-with-more-responsive-browser-other-performance-improvements/
  
Linha 274: Linha 284:
 
https://forums.plex.tv/index.php/topic/83700-exact-way-to-get-plex-on-apple-tv-3/
 
https://forums.plex.tv/index.php/topic/83700-exact-way-to-get-plex-on-apple-tv-3/
  
</pre>
+
 
  
 
Referências:
 
Referências:
http://samkear.com/software/linux/install-plex-media-server-funtoo-linux
 
  
https://github.com/iBaa/PlexConnect/wiki/OSX-and-ATV-with-5.2-firmware-and-ethernet-internet-connection-installation-guide
+
http://samkear.com/software/linux/install-plex-media-server-funtoo-linux
 +
 
 +
https://github.com/iBaa/PlexConnect/wiki/OSX-and-ATV-with-5.2-firmware-and-ethernet-internet-connection-installation-guide
  
https://forums.plex.tv/index.php/topic/54447-raspberry-pi-plex-media-server/
+
https://forums.plex.tv/index.php/topic/54447-raspberry-pi-plex-media-server/
  
 
[[Categoria:Hacking Projects]]
 
[[Categoria:Hacking Projects]]
 
[[Categoria:SoftwareOpensource]]
 
[[Categoria:SoftwareOpensource]]

Edição das 18h29min de 12 de fevereiro de 2019

Responsável:
* Raphael Bastos
Apple-TV-3.png

O hackerspace possui hoje uma Apple TV de terceira geração disponível para hack. :D

Instalação do PLEX (media center) sem necessidade de jailbreak

Plex on atv3 01.jpg Plex on atv3 02.jpg Plex on atv3 03.jpg Plex on atv3 04.jpg Plex on atv3 08.jpg Plex on atv3 09.jpg


Instalação do Plex Connect no Linux

Obtenha o código fonte do Plex Connect

# cd /opt ; git clone https://github.com/area31/PlexConnect

Crie os certificados SSL para o DNS Fake

# cd /opt/PlexConnect/assets/certificates/
# openssl req -new -nodes -newkey rsa:2048 -out trailers.pem -keyout trailers.key -x509 -days 365 -subj "/C=US/CN=trailers.apple.com"
# openssl x509 -in trailers.pem -outform der -out trailers.cer && cat trailers.key >> trailers.pem

Configure um fake DNS usando o BIND (opcional)

Recomendo usar o bind pela estabilidade oferecida. Segue uma configuração a ser realizada no arquivo named.conf:

   /etc/bind/named.conf - bind config dns zone
# Plex on AppleTV

zone "trailers.apple.com" IN {
    type master;
    file "master/trailers.apple.com.zone";
};


# Previne update da AppleTV

zone "mesu.apple.com" IN { type master; file "master/noupdate.apple.com.zone"; };
zone "appldnld.apple.com" IN { type master; file "master/noupdate.apple.com.zone"; };
zone "appldnld.apple.com.edgesuite.net" IN { type master; file "master/noupdate.apple.com.zone"; };


Crie o arquivo de zona:

# vi /var/lib/named/master/trailers.apple.com.zone

{{file|name=/var/lib/named/master/trailers.apple.com.zone|desc=arquivo fake dns zone|body= $TTL 300 @ IN SOA @ root (

                               42              ; serial (d. adams)
                               2D              ; refresh
                               4H              ; retry
                               6W              ; expiry
                               1W )            ; minimum
               IN NS           @
               IN A            192.168.100.254

Corrija a permissão dos arquivos:

# chown named. /var/lib/named/master/trailers.apple.com.zone ; cp -p /var/lib/named/master/noupdate.apple.com.zone

Confira se está corretamente configurado:

# named-checkconf -z

Reinicie o serviço de DNS:

# /etc/init.d/named restart

Desative o DNS em python do PlexConnect:

# sed -i s,'enable_dnsserver = True','enable_dnsserver = False',g /opt/PlexConnect/Settings.cfg

Execute o Plex Connect

Altere a porta padrão do webserver em python para instalação do certificado:

# sed -i s,'port_webserver = 80','port_webserver = 32480',g /opt/PlexConnect/Settings.cfg
# cd /opt/PlexConnect && python2.7 PlexConnect.py

Caso não tenha nenhum serviço nas portas 80, 443 e 53 tudo será executado sem problemas. Deixe o processo rodando, pode ser em nohup. ;)


Instale os certificados SSL na Apple TV

Acesse as configurações da Apple TV de rede, e configure o DNS apontando para o IP do Linux ao qual está sendo executado o PlexConnect.py.

Plex on atv3 05.jpg

Acesse o menu principal dos ajustes, e na opção "Enviar dados a Apple" selecione NÃO. Após isso, pare sobre a opção sem clicar, e pressione o botão PLAY.

Plex on atv3 07.jpg


Surgirá uma tela para criação do perfil. Selecione que deseja criar um perfil, e preencha o endereço conforme abaixo, supondo que o IP do Linux é o 192.168.100.254:

Digite conforme imagem abaixo o endereço:

http://192.168.100.254:32480/trailers.cer

Plex on atv3 06.jpg


Após isso, reinicie sua Apple TV (pressione os botões "Menu+direcional para baixo" durante 6s). Após o reboot, acesse no menu principal o ícone "Trailers". voilá! Você está dentro do Plex. :D


Instale o Plex Media Center no Funtoo Linux (compatível 100% com Gentoo Linux)

# echo app-portage/layman mercurial >>/etc/portage/package.use
# emerge layman

Adicione no arquivo de configuração o repositório megacoffee conforme exemplo abaixo:

# vi /etc/layman/layman.cfg


overlays : http://www.gentoo.org/proj/en/overlays/repositories.xml

           http://gentoo-overlay.megacoffee.net/repositories.xml


Atualize os repositórios:

# layman -f

Após atualizar, adicione o overlay "MegaCoffee":

# layman -a megacoffee

Atualize seu /etc/make.conf

Adicione o overlay

PORTDIR_OVERLAY="
/var/lib/layman/megacoffee
"


Adicione as flags globais

USE='gtk utils X'


Instale o Plex Media Server

# emerge plex-media-server

Execute o Plex Media Server

# /etc/init.d/plex-media-server start

Adicione o Plex ao boot do Funtoo

# rc-update add plex-media-server default

Personalize o boot, caso seja o mesmo servidor de Plex Media Center e Plex Connect

Personalize seu script de init do Plex conforme abaixo:

# vi /etc/init.d/plex-media-server


#!/sbin/runscript

depend() {
        need netif.eth1
        need avahi-daemon
}

start() {
        ebegin "Starting Plex Media Server"
        start-stop-daemon -S -m -p /var/run/plex-connect.pid -1 /var/log/pms/plex-connect.log -2 /var/log/pms/err-plex-connect.log --quiet -u root -N -5 -b --exec /opt/PlexConnect/PlexConnect.py

        start-stop-daemon -S -m -p /var/run/plex-media-server.pid -1 /var/log/pms/out.log -2 /var/log/pms/err.log --quiet -u plex -N -5 -b --exec /usr/sbin/start_pms
        eend $?
}

stop() {
        ebegin "Stopping Plex Media Server"
        start-stop-daemon --stop --pidfile /var/run/plex-media-server.pid --quiet --exec /usr/sbin/start_pms
        #kill -- -`cat /var/run/plex-media-server.pid`
        kill -- -`cat /var/run/plex-connect.pid`
        killall -9 -u plex
        eend $?
}

restart() {
        stop
        sleep 3
        start
}


PS: Lembre-se de alterar o cabeçalho do script python caso seu python default do sistema não seja a versão 2.7 conforme exemplo abaixo (a minha versão do python default é a 3.3):

# vi /opt/PlexConnect/PlexConnect.py
#!/usr/bin/env python2.7

Acesse via Browser e personalize seu sistema

É possível criar bibliotecas novas de filmes, músicas e outros. Acesse via browser: http://192.168.100.254:32400/manage

Plex on pc search01.png Plex on pc search02.png Plex on pc search03.png


Após isso, basta acessar via Apple TV seu media center. \o/

É possível criar bibliotecas via rede, usando NFS, DRBD. CIFS... use sua imaginação. ;)


PLEX para arquitetura ARM

http://plexrpms.markwalker.dk/arm/

PLEX on Raspberry Pi

#!/bin/sh
cd ~/pms
export PLEX_MEDIA_SERVER_MAX_PLUGIN_PROCS=6
export PLEX_MEDIA_SERVER_HOME=`pwd`
export PLEX_MEDIA_SERVER_MAX_STACK_SIZE=3000
export PLEX_MEDIA_SERVER_TMPDIR=/tmp
export 'PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR="`pwd`/Library/Application\ Support"
export LD_LIBRARY_PATH=`pwd`
export TMPDIR=/tmp
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
ulimit -n 4096
ulimit -l 3000
ulimit -s 8192
'./Plex Media Server'

Acesso: http://<ip rasp>:32400/web/index.html


Linux on Apple TV first generation (based on x86)

http://www.mythic-beasts.com/resources/appletv/walk-through.html


Jailbreak Apple TV 3rd Gen

Estamos tentando fazer jailbreak na Apple TV terceira geração, porém ainda não saiu nada oficial:

http://snow3rd.com


Outras opções de Jailbreak da Apple TV

http://ijailbrk.com



Caso você tenha atualizado o iOS da Apple TV

http://9to5mac.com/2013/07/22/plex-ios-app-updated-with-more-responsive-browser-other-performance-improvements/

https://langui.sh/2013/08/27/appletv-ssl-plexconnect/

http://9to5mac.com/2013/08/28/workaround-restores-plexconnect-after-apple-tv-update-broke-it/

http://9to5mac.com/2013/08/27/apple-broke-plexconnect-apple-tv-hack-with-this-mornings-update/

https://forums.plex.tv/index.php/topic/83700-exact-way-to-get-plex-on-apple-tv-3/


Referências:

http://samkear.com/software/linux/install-plex-media-server-funtoo-linux

https://github.com/iBaa/PlexConnect/wiki/OSX-and-ATV-with-5.2-firmware-and-ethernet-internet-connection-installation-guide

https://forums.plex.tv/index.php/topic/54447-raspberry-pi-plex-media-server/