Hacking Apple TV: mudanças entre as edições
Sem resumo de edição |
Sem resumo de edição |
||
(22 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
Responsável: | Responsável: | ||
* [[ | * [[Usuário:Coffnix|Coffnix]] | ||
[[Image:Apple-TV-3.png|thumb| | |||
[[Image:Apple-TV-3.png|thumb|350px]] | |||
__TOC__ | __TOC__ | ||
Linha 9: | Linha 10: | ||
= Instalação do PLEX (media center) sem necessidade de jailbreak = | = Instalação do PLEX (media center) sem necessidade de jailbreak = | ||
[[Image:Plex on atv3 01.jpg|235px]] [[Image:Plex on atv3 02.jpg|300px]] [[Image:Plex on atv3 03.jpg|300px]] [[Image:Plex on atv3 04.jpg|300px]] | [[Image:Plex on atv3 01.jpg|235px]] [[Image:Plex on atv3 02.jpg|300px]] [[Image:Plex on atv3 03.jpg|300px]] [[Image:Plex on atv3 04.jpg|300px]] [[Image:Plex on atv3 08.jpg|300px]] [[Image:Plex on atv3 09.jpg|300px]] | ||
== Instalação do Plex Connect no Linux == | == Instalação do Plex Connect no Linux == | ||
=== Obtenha o código fonte do Plex Connect === | === Obtenha o código fonte do Plex Connect === | ||
{{console|body= | |||
###i## cd /opt ; git clone https://github.com/area31/PlexConnect | |||
}} | |||
=== Crie os certificados SSL para o DNS Fake === | |||
{{console|body= | |||
###i## cd /opt/PlexConnect/assets/certificates/ | |||
###i## openssl req -new -nodes -newkey rsa:2048 -out trailers.pem -keyout trailers.key -x509 -days 365 -subj "/C=US/CN=trailers.apple.com" | |||
###i## 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: | |||
=== Crie | {{file|name=/etc/bind/named.conf|desc=bind config dns zone|body= | ||
# 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: | |||
{{console|body= | |||
###i## 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: | |||
{{console|body= | |||
###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: | |||
{{console|body= | |||
###i## named-checkconf -z | |||
}} | |||
Reinicie o serviço de DNS: | |||
{{console|body= | |||
###i## /etc/init.d/named restart | |||
}} | |||
Desative o DNS em python do PlexConnect: | |||
{{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: | |||
{{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 | |||
}} | |||
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'''. ;) | ||
=== Instale os certificados SSL na Apple TV === | === Instale os certificados SSL na Apple TV === | ||
Linha 34: | Linha 98: | ||
[[Image:Plex on atv3 05.jpg|300px]] | [[Image:Plex on atv3 05.jpg|300px]] | ||
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. | 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. | ||
Linha 42: | Linha 105: | ||
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: | 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 | |||
[[Image:Plex on atv3 06.jpg|300px]] | [[Image:Plex on atv3 06.jpg|300px]] | ||
Linha 50: | Linha 117: | ||
= 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) = | ||
{{console|body= | |||
###i## echo app-portage/layman mercurial >>/etc/portage/package.use | |||
###i## emerge layman | |||
}} | |||
Adicione no arquivo de configuração o repositório megacoffee conforme exemplo abaixo: | Adicione no arquivo de configuração o repositório megacoffee conforme exemplo abaixo: | ||
{{console|body= | |||
###i## vi /etc/layman/layman.cfg | |||
}} | |||
{{file|name=/etc/layman/layman.cfg|body= | |||
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 | ||
}} | |||
Atualize os repositórios: | Atualize os repositórios: | ||
{{console|body= | |||
###i## layman -f | |||
}} | |||
Após atualizar, adicione o overlay "MegaCoffee": | Após atualizar, adicione o overlay "MegaCoffee": | ||
{{console|body= | |||
###i## layman -a megacoffee | |||
}} | |||
== Atualize seu '''/etc/make.conf''' == | == Atualize seu '''/etc/make.conf''' == | ||
=== Adicione o overlay === | === Adicione o overlay === | ||
{{file|name=/etc/make.conf|desc=megacofee overlay|body= | |||
PORTDIR_OVERLAY=" | PORTDIR_OVERLAY=" | ||
/var/lib/layman/megacoffee | /var/lib/layman/megacoffee | ||
" | " | ||
}} | |||
== Instale o Plex Media Server == | == Instale o Plex Media Server == | ||
{{console|body= | |||
###i## emerge plex-media-server | |||
}} | |||
== Execute o Plex Media Server == | == Execute o Plex Media Server == | ||
{{console|body= | |||
###i## /etc/init.d/plex-media-server start | |||
}} | |||
== Adicione o Plex ao boot do Funtoo == | == Adicione o Plex ao boot do Funtoo == | ||
{{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 | |||
}} | |||
{{file|name=/etc/init.d/plex-media-server|desc=init plex|body= | |||
#!/sbin/runscript | #!/sbin/runscript | ||
Linha 123: | Linha 192: | ||
ebegin "Stopping Plex Media Server" | ebegin "Stopping Plex Media Server" | ||
start-stop-daemon --stop --pidfile /var/run/plex-media-server.pid --quiet --exec /usr/sbin/start_pms | 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` | kill -- -`cat /var/run/plex-connect.pid` | ||
killall -9 -u plex | |||
eend $? | eend $? | ||
} | } | ||
Linha 134: | Linha 203: | ||
start | 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 (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= | |||
###i## vi /opt/PlexConnect/PlexConnect.py | |||
}} | |||
{{console|body= | |||
#!/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 | |||
[[Image:Plex on pc search01.png|300px]] [[Image:Plex on pc search02.png|300px]] [[Image:Plex on pc search03.png|300px]] | |||
Após isso, basta acessar via Apple TV seu media center. \o/ | 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. ;) | É 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 === | |||
{{console|body= | |||
#!/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) = | = Linux on Apple TV first generation (based on x86) = | ||
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 | |||
== Outras opções de Jailbreak da Apple TV == | == 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: | 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/ | |||
[[Categoria: | [[Categoria:Hacking Projects]] | ||
[[Categoria:SoftwareOpensource]] | [[Categoria:SoftwareOpensource]] |
Edição atual tal como às 14h33min de 8 de junho de 2023
Responsável: * Coffnix

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
Instalação do Plex Connect no Linux
Obtenha o código fonte do Plex Connect
root # cd /opt ; git clone https://github.com/area31/PlexConnect
Crie os certificados SSL para o DNS Fake
root # cd /opt/PlexConnect/assets/certificates/ root # openssl req -new -nodes -newkey rsa:2048 -out trailers.pem -keyout trailers.key -x509 -days 365 -subj "/C=US/CN=trailers.apple.com" root # 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:
root # vi /var/lib/named/master/trailers.apple.com.zone
/var/lib/named/master/trailers.apple.com.zone
- arquivo fake dns zone$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:
root # 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:
root # named-checkconf -z
Reinicie o serviço de DNS:
root # /etc/init.d/named restart
Desative o DNS em python do PlexConnect:
root # 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:
root # sed -i s,'port_webserver = 80','port_webserver = 32480',g /opt/PlexConnect/Settings.cfg root # 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.
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.
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
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)
root # echo app-portage/layman mercurial >>/etc/portage/package.use root # emerge layman
Adicione no arquivo de configuração o repositório megacoffee conforme exemplo abaixo:
root # vi /etc/layman/layman.cfg
/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:
root # layman -f
Após atualizar, adicione o overlay "MegaCoffee":
root # layman -a megacoffee
Atualize seu /etc/make.conf
Adicione o overlay
/etc/make.conf
- megacofee overlayPORTDIR_OVERLAY="
/var/lib/layman/megacoffee
"
Instale o Plex Media Server
root # emerge plex-media-server
Execute o Plex Media Server
root # /etc/init.d/plex-media-server start
Adicione o Plex ao boot do Funtoo
root # 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:
root # vi /etc/init.d/plex-media-server
/etc/init.d/plex-media-server
- init plex#!/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):
root # vi /opt/PlexConnect/PlexConnect.py
root #!/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
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
root #!/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:
Outras opções de Jailbreak da Apple TV
Caso você tenha atualizado o iOS da Apple TV
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://forums.plex.tv/index.php/topic/54447-raspberry-pi-plex-media-server/