之前反复看了好久电视盒子,最高看到像冥王峡谷 S922芯片的怪兽,奈何钱包羞涩,最终还是选了比较成熟的中档 S905x3的系列,有很多选择,最终买的是 MECool KM1 4G 内存的版本。
之前用着一直没什么问题,最近总是出现一个系统提示 Wifi 已连接但无法访问互联网,实际上基础网络访问是没问题的,像腾讯视频之类的,但 youtube 就无法打开,奇怪的是同一路由下不管是手机还是电脑都能正常播放。
关于系统的那个提示其实历史悠久,很久之前 android 就开始有惊叹号、红叉问题,是关于 generate_204的问题,这个机制原本用途是在连上 wifi 之后,检查是否需要弹出Web认证,由于 Android 默认的检查URL 是在 google 系列服务器上(gstatic.com/google.com),导致无法完成这个过程,这个解决办法大家已有共识,包括 v2ex,miui 等均提供了 generate_204 url,通过 adb 修改即可。
然而修改 generate_204 url 并不能解决我电视盒子的问题,看 logcat 很久也没有看到什么线索,于是上周我把盒子还原了出厂,还原之后果然好使,然而并不知道为什么。过了几天之后,夫人反馈又出现无法联网提示。这次我认真盯了很久的 logcat,并且通过忘记 WiFi 等方法重试,终于给我盯到一个线索如下图
这里头终于有一个有用的信息,证书过期时间超出范围,准确的说,是盒子时间不对。盒子的时间是2015-01-01,但证书是17年开始生效的,于是 SSL 握手过程失败。
于是拿遥控器看了下盒子的时间设置,是自动对时的,改成手动调到2020年一个时间之后,故障现象消失。
adb shell 里面看了下对时的设置,ntp 服务器竟然没有设置
顺手设置一下 ntp
settings put global ntp_server ntp1.aliyun.com
重启一下设备之后自动时间同步终于同步了一个正确的时间。
那我现在很疑惑重置之后为何第一次可以成功同步时间,猜测初始化过程有额外的应用层的对时,后续系统的 NTP 对时还要靠上面配置。