视频加载失败

ElderTV 1.1.3 和 1.1.4:一个插件崩掉整个进程,更新下载从每秒 20KB 到 1.3MB

2352 字
12 分钟
ElderTV 1.1.3 和 1.1.4:一个插件崩掉整个进程,更新下载从每秒 20KB 到 1.3MB
ElderTV 1.1.3 和 1.1.4:一个插件崩掉整个进程,更新下载从每秒 20KB 到 1.3MB

1.1.2 发出去的第二天,“报告问题”又收到一条:换了一个订阅源,安全拦截也关了,还是什么数据都没有。查下来和 1.1.2 修的不是同一个原因。修完发了 1.1.3,接着第一次在电视上把应用内更新从头走了一遍,发现下载慢得没法用,于是又发了 1.1.4。这篇两个版本一起写。

下面的截图都来自同一台雷鸟电视(Android 11,32 位)。

1.1.3:关掉安全拦截后,这个订阅还是没数据#

这个订阅一共 126 个站,大多数站共用一个插件包。切到其中的“葵花”站,首页一片空白,搜索 99 个站也都没有结果:

eldertv-112-wex-home-empty
eldertv-112-wex-home-empty

报告自动带上的报错,还是上次那条更新检查超时,跟这个问题无关。报告里也没有插件进程的记录,因为上报时插件进程已经不在了。连上电视重新加载这个源,同时看系统日志,过程是这样的:

第一,插件要运行几个系统小程序。 插件先调用 getprop(读设备信息)、chmod(改文件权限)、killall,都被插件进程拒绝了。1.1.2 关闭安全拦截时只放开了原生库,运行其他程序仍然是禁止的。

第二,插件需要的代理库没有生成。 接下来插件要加载一个本地代理库 libwexproxy.so,但这个文件不存在。推测是前面读设备信息失败,下载这个库的那一步也就没成功。放开限制后实测,这个库确实生成了,代理也启动了,证实了这个推测。

第三,插件的后台线程出错,把整个插件进程带崩了。 加载失败后,插件在自己开的后台线程里抛出异常,没有人处理,整个插件进程随之退出。所有站都在这一个进程里运行,所以全部返回空。下次调用会重新拉起进程,然后又崩;连续崩 3 次后,程序会暂停 60 秒不再调用。

改了两处:

  • 关闭安全拦截后,插件可以运行其他程序。 设置里写的就是“关:全部放行”,以前实际上放行得不完整。仍然保留的限制:不能给其他进程发信号,不能调试或读写其他进程的内存;插件启动的程序也受同样的限制。代价是插件能做的事更多了,所以这一项只在你主动关闭安全拦截时生效。关闭前的确认框里也写明了这一点。
  • 插件自己的后台线程出错时,只结束那个线程。 插件进程照常运行,其他站不受影响,系统日志里会留一条记录。“报告问题”会把插件进程的报错一起带上来。

改后同一个订阅,代理正常启动,“葵花”站的首页有内容了:

eldertv-113-wex-home-after
eldertv-113-wex-home-after

1.1.3:设置页的几处小改#

  • 调试日志的地址打不开:设置里打开“调试日志”后显示的地址缺少访问密钥,用浏览器打开会被拒绝。现在地址里带上了密钥,我在电脑上实测能打开。
  • 隐藏了 DoH:这一项用得很少,原来的设置值不变。
  • “配置历史”改名为“点播地址历史”,和“直播地址历史”对应。

eldertv-113-settings
eldertv-113-settings

  • 手机推送换了新页面:设置 → 高级设置 → 手机推送。扫码后打开的网页和设置点播地址用的是同一个新页面,粘贴视频链接,点“推送到电视”,电视会直接开始播放。截图里的二维码打了码,因为里面带着这台电视的访问密钥。

eldertv-113-push
eldertv-113-push

电视只有在打开“点播地址”或“直播地址”窗口时,才会接收手机发来的地址。所以从“手机推送”扫码进去的页面只显示推送,从地址窗口扫码进去的页面不显示推送,免得手机上显示“已发送”,电视却没有反应。

1.1.4:应用内更新慢得没法用#

应用内更新是 1.1.1 加的,一直没在电视上完整走过。1.1.3 发布后,我在装着 1.1.2 的电视上试了一次,发现三个问题。

“有新版本”要等一到一分半钟才出现。 检查更新时,程序按固定顺序一个个问中转地址。排第一的中转地址从我家网络连不上,每次都要等 30 秒超时,才轮到下一个。

更新窗口按确定没反应。 窗口打开时没有选中任何按钮,要先按一下方向键才能选中“更新”。老人很容易卡在这一步。

eldertv-113-update-dialog-nofocus
eldertv-113-update-dialog-nofocus

下载只有每秒 16 到 22KB。 4 分钟才下到 5%,99MB 的安装包要一个多小时。

eldertv-113-update-slow
eldertv-113-update-slow

原因是程序只用第一个能连上的地址,不比较速度,下载再慢也不会换。我在同一个网络里,不走代理,每个地址各下 2MB:

地址速度
ghfast.top连不上
gh-proxy.com150KB/s
gh.acmsz.top1.5MB/s
gh.monlor.com365KB/s
GitHub 直连747KB/s

第一个连不上,程序就停在了第二个,而它恰好是能用的地址里最慢的。电视上实际的速度比这张表还要低。

1.1.4 的改法:

  • 下载前先测速:点“更新”后,所有地址同时下载开头的 256KB,最多等 8 秒,按实测速度从快到慢排好再开始下。
  • 下载中慢了自动换:开始 12 秒以后,如果连续 10 秒的平均速度低于每秒 48KB,就换下一个地址,从已经下好的位置接着下。
  • 检查更新同时问所有地址:每个最多等 8 秒,取版本号最新的结果。某个中转站缓存了旧版本的清单,也不会影响判断。
  • 更新窗口一打开就选中“更新”。

我先在电视上装了一个 1.1.4 的测试版,再发布正式的 1.1.4,让测试版用真实的发布包走一遍更新。结果:开机 21 秒出现“有新版本”(其中 8 秒是开机后固定的等待时间);窗口打开就选中了“更新”,直接按确定就开始下载:

eldertv-114-update-dialog
eldertv-114-update-dialog

下载速度在每秒 1.1 到 1.6MB 之间,30 秒到 40%:

eldertv-114-update-fast
eldertv-114-update-fast

大约 3 分半下完,安装包的校验值和签名都通过,交给了系统安装器。整个过程中没有弹出“允许安装未知来源应用”的提示:

eldertv-114-installer
eldertv-114-installer

有一点要注意:这些改进从 1.1.4 开始生效。从 1.1.1 到 1.1.3 升级到 1.1.4 的这一次,用的还是旧的下载方式,可能仍然很慢。嫌慢可以取消,按文末的地址手动下载安装,以后的更新就快了。

剩余问题和进度#

问题现状下一步
64 位安装包1.1.2 起每版都发,只确认了构建、签名和架构,还没在 64 位电视上装过找一台 64 位电视或盒子实装
手机扫码推送后电视开始播放推送页面在浏览器里测过,电视上的页面也能打开;还没用手机实际推送一次用手机推一个视频链接
斗鱼、虎牙两个 js 站打不开报 'pdfh' is not defined,是 js 运行环境缺函数补上这个函数后再测
开着安全拦截时插件出错后台线程出错不再带崩进程,这一点和开关无关;但没在开着安全拦截的情况下实测过开着安全拦截再用这个订阅测一次
“报告问题”自动带上的错误不准取的是记录里最后一个异常,两次都是更新检查超时只在闪退时附带异常

下载#

最低要求:安卓 7.0(Android 7.0)及以上。大多数电视和盒子都满足,安卓 7.0 以下的老设备装不上。

复制到浏览器打开,前两个是中转地址,国内一般能直接下。线路一是这次测下来最快的。

32 位(大多数电视装这个,约 99MB):

线路一: https://gh.acmsz.top/https://github.com/riowang88/ElderTV/releases/download/v1.1.4/ElderTV-1.1.4-armeabi-v7a.apk

线路二: https://gh-proxy.com/https://github.com/riowang88/ElderTV/releases/download/v1.1.4/ElderTV-1.1.4-armeabi-v7a.apk

64 位(装 32 位提示不兼容时用,约 114MB):

线路一: https://gh.acmsz.top/https://github.com/riowang88/ElderTV/releases/download/v1.1.4/ElderTV-1.1.4-arm64-v8a.apk

线路二: https://gh-proxy.com/https://github.com/riowang88/ElderTV/releases/download/v1.1.4/ElderTV-1.1.4-arm64-v8a.apk

GitHub 原地址: https://github.com/riowang88/ElderTV/releases/tag/v1.1.4

中转站是第三方的,不归我管,一条打不开就换另一条。

装法:

  1. 下载 APK,拷到 U 盘,插到电视上
  2. 用电视的文件管理器打开,提示未知来源就去设置里允许
  3. 装好后在“设置 → 高级设置 → 点播地址”填片源地址,或者打开聚合

已经装了 1.1.1 到 1.1.3 的,首页右上角会显示“有新版本”,点它就能在应用里更新,也可以直接覆盖安装。更早的版本直接覆盖安装。观看记录都会保留。

ElderTV 不内置任何片源,地址需要自己填。

ElderTV 按 GPL-3.0 发布,对应的源码压缩包在 GitHub 原地址的 Release 页面里。

到目前为止,ElderTV 只在这一台雷鸟电视上测试过。其他电视能不能正常用,还没有数据。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

ElderTV 1.1.3 和 1.1.4:一个插件崩掉整个进程,更新下载从每秒 20KB 到 1.3MB
https://wtblog.wang/posts/05-eldertv-1-1-4/
作者
Riowang
发布于
2026-11-06
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Riowang
折腾 NAS 和家里的电视。
公告
博客已迁移到新主题,ElderTV 的版本说明和教程都放在「ElderTV」分类。
分类
标签
站点统计
文章
38
分类
7
标签
9
总字数
67,810
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Cloudflare Workers
博客版本
Firefly v6.16.9
文章许可
CC BY-NC-SA 4.0
文章目录