Программная загрузка канала Roku без плагина Eclipse

Мне было интересно, можно ли загрузить zip-файл канала на устройство roku с помощью терминала. Кажется, это должно быть возможно, потому что для Eclipse доступен плагин, но моя цель — не использовать Eclipse, если это возможно. Любая помощь будет оценена по достоинству.


person Alex Bieg    schedule 24.07.2017    source источник


Ответы (3)


Конечно, вы можете использовать терминал, если ваша машина и Roku находятся в одной беспроводной сети.

  1. Включите режим разработчика на Roku, нажмите: «Домой» 3 раза, «Вверх» 2, «Вправо», «Влево», «Вправо», «Влево», «Вправо». Откроется экран разработчика, где вы сможете увидеть свой IP-адрес и установить пароль.
  2. В вашем пути ENV (.bash_profile или что-то еще) создайте переменную ROKU_DEV_TARGET и USERPASS. Установите IP-адрес Roku на ROKU_DEV_TARGET и пароль на USERPASS. убедитесь, что вы перезагрузили окно терминала, чтобы эти переменные env были доступны. Проверьте, набрав ECHO $ROKU_DEV_TARGET, и вы должны увидеть там свой IP-адрес.
  3. Далее вам понадобится make-файл. Вы можете использовать тот, который предоставлен Roku. Загрузите Roku SDK и ознакомьтесь с examples/source/app.mk. Вы можете видеть, что он использует переменные, которые мы установили выше.
  4. Скопируйте файл app.mk в свой репозиторий, затем перейдите в этот каталог в терминале. запустите make install, и он сможет установиться на ваш roku.

ПРИМЕЧАНИЕ. Возможно, вам придется возиться с путями DISTREL, COMMONREL, SOURCEREL в app.mk в зависимости от настроек вашего репозитория.

Полезный совет: в другом окне терминала введите telnet $ROKU_DEV_TARGET 8085, чтобы увидеть журнал консоли из roku.

Удачи!

person panzhuli    schedule 27.07.2017

Да, сборка и развертывание на устройстве Roku выполняется быстро и легко, так что даже make-файл кажется переусердствовавшим. Вот скрипт, который я использовал для Mac OSX:

#!/bin/bash
#ROKU_DEV_TARGET=192.168.1.25   # Roku 2XS
ROKU_DEV_TARGET=192.168.1.28   # put YOUR roku IP here

# wake up/interrupt Roku - workaround for fw5.4 crash
curl -sS -d '' http://$ROKU_DEV_TARGET:8060/keypress/Home
curl -sS -d '' http://$ROKU_DEV_TARGET:8060/keypress/Home

# build. zip _must_ change for Roku to accept re-deploy (grr!)
cd -- "$(dirname "$0")"
touch timestamp
zip -FS -9 -r bundle * -x run extras

# deploy
curl -f -sS --user rokudev:nuisance --anyauth -F "mysubmit=Install" -F "[email protected]" -F "passwd=" http://$ROKU_DEV_TARGET/plugin_install  \
| python -c 'import sys, re; print "\n".join(re.findall("<font color=\"red\">(.*?)</font>", sys.stdin.read(), re.DOTALL))'

Я бы сохранил его как файл сценария с именем run (помеченный как исполняемый с помощью chmod +x run; см. https://stackoverflow.com/a/29710607/226086 для большего, например, «почему бы не .sh», что было моим первоначальным желанием), так что его также можно запустить двойным щелчком из Finder. Или из TextWrangler с помощью cmd-R, как было в моем случае.

PS. я даже не копировал один и тот же файл run в каждый проект, а связывался с ним, но я забыл, была ли это мягкая или жесткая ссылка, которая работала с более новым TextWrangler.

person Nas Banov    schedule 30.07.2017
comment
если вы получаете ошибку 401, замените неприятный пароль своим собственным паролем - person Benjamin Jimenez; 06.09.2019

Возможно, Roku изменил авторизацию и теперь использует Digest Auth. Вам нужно передать различные заголовки авторизации, чтобы он работал успешно. Вам нужно добавить Digest Username, Realm, nounce, uri, qop, nc, cnounce и response.

Скрипт для загрузки zip-файла в Roku -

curl -i -H 'Authorization:Digest username="...", realm="...", nonce="...", uri="/plugin_install", qop=auth, nc=, cnonce="", response="..."' --form [email protected] --form "mysubmit=Install" "http://IP/plugin_install"
person Shrinidhi Kulkarni    schedule 07.11.2019