【问题标题】:Programmatically Upload Roku Channel without Eclipse Plugin在没有 Eclipse 插件的情况下以编程方式上传 Roku 频道
【发布时间】:2017-12-30 08:20:18
【问题描述】:

我想知道是否可以使用终端将频道的 zip 文件上传到 roku 设备。似乎它应该是可能的,因为有一个可用于 Eclipse 的插件,但我的目标是尽可能不使用 Eclipse。任何帮助,将不胜感激。

【问题讨论】:

    标签: roku


    【解决方案1】:

    如果您的机器和 Roku 在同一个无线网络上,您当然可以使用终端。

    1. 在 Roku 上启用开发者模式,按:Home 3 次,上 2、右、左、右、左、右。这将打开一个开发者屏幕,您可以在其中查看您的 IP 地址并设置密码。
    2. 在您的 ENV 路径(.bash_profile 或其他)中,创建 ROKU_DEV_TARGET 和 USERPASS 变量。将 Roku 的 IP 地址设置为 ROKU_DEV_TARGET,将密码设置为 USERPASS。确保重新加载终端窗口,以便这些环境变量可用。通过输入ECHO $ROKU_DEV_TARGET 进行测试,您应该会在此处看到您的 IP 地址。
    3. 接下来,您需要一个生成文件。您可以使用 Roku 提供的那个。下载Roku SDK 并查看examples/source/app.mk。您可以看到它使用了我们在上面设置的变量。
    4. 将 app.mk 文件复制到您的存储库中,然后在终端中浏览到该目录。运行make install,它应该能够安装到您的 roku。

    注意:您可能不得不在 app.mk 中弄乱 DISTREL、COMMONREL、SOURCEREL 路径,具体取决于您的 repo 的设置。

    有用的提示:在另一个终端窗口中,键入 telnet $ROKU_DEV_TARGET 8085 以查看来自 roku 的控制台日志记录。

    祝你好运!

    【讨论】:

      【解决方案2】:

      为什么,是的 - 构建和部署到 Roku 设备既快速又简单,所以即使是生成文件也感觉有点过头了。这是我用于 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 "archive=@bundle.zip" -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 一起使用的软链接还是硬链接。

      【讨论】:

      • 如果遇到 401 错误,应将“nuisance”替换为您自己的密码
      【解决方案3】:

      Roku 可能已更改授权并现在使用 Digest Auth。 您需要传递各种授权标头才能使其成功运行。 你需要添加Digest UsernameRealmnounceuriqopnccnounceresponse

      将 zip 文件上传到 Roku 的脚本 -

      curl -i -H 'Authorization:Digest username="...", realm="...", nonce="...", uri="/plugin_install", qop=auth, nc=, cnonce="", response="..."' --form archive=@example.zip --form "mysubmit=Install" "http://IP/plugin_install"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-16
        • 2017-10-19
        • 1970-01-01
        • 2017-07-16
        • 2011-02-28
        • 1970-01-01
        • 2012-09-02
        相关资源
        最近更新 更多