红米音箱Play 开发调试实验 updating

前盖有内扣,拆好之后直接引三根针出来就可以ttl了。

密码 : substr(md5($SN . “5775B10D-15C0-7827-97B9-88EA07FCA97A”), 0, 14),hash salt在 /bin/mi_console 里写死了,根据设备型号判断。

串口波特率115200.

手动启动 ssh。

劫持流量,发现客户端不认第三方的https证书,错误提示是 SSL handshake with client failed: CA certificate could not be matched with a known, trusted CA (unknown_ca)。查了下libxiaomi_http.so,设置了CURLOPT_CAPATH /etc/ssl/certs,然而系统本身是squashfs直接挂载的ro,所以需要曲线救国。

ldd 查看 libxiaomi_http.so,发现引用了 libmbedtls.so libssl.so libcrypto.so,libcurl 的 vtls 里看了下实现,用了 这个函数,同时对比了各个实现,决定还是手工加一下证书。

鉴于系统是readonly挂载的,所以上 overlay 。

这样就可以在 /tmp/certs 里加证书,实现自定义ca。

具体操作我是在一台ubuntu上,把证书pem 文件命名为 .crt后缀放在 /usr/local/share/ca-certificates 下然后执行 update-ca-certificates 再去看 /etc/ssl/certs 里的symlink的hash。

我开发机的charles ca 证书 hash 是 6a3a5fb6.0,所以在我的小爱音箱里,我把证书 pem 文件copy到 /tmp/certs 然后 创建symlink。

再执行 ota check 的实话,观察charles,已经能看到ssl的请求了。

meilisearch ubuntu systemd

正在寻求ES的轻量化解决方案,看到了meilisearch,于是上手实验了一把。留了个systemd 配置笔记。

原始安装文档 https://docs.meilisearch.com/guides/advanced_guides/installation.html,官方给的 apt 的安装只有二进制文件,没有配置文件没有启动脚本。

简单来

/etc/default/meilisearch

/etc/systemd/system/meilisearch.service

启动

Incoming search terms:

古老壁挂炉接入米家App

北方自采暖家庭,用的还是最早开发商装的菲斯曼的壁挂燃气炉。2014年重装修时,没有下定决心更换壁挂炉,只是换了一个曼瑞德(manred)的无线温控器。

温控器 – 控制端
温控器 – 接收器

古老的温控器问题很多,例如屏幕显示效果差,老电阻屏的点击操作实在不灵,距离过远无法无线控制(南卧室北阳台),更可怕的是编程的规则掉电就没了。所以这个温控器最后沦为了无线开关,放在客厅,起床睡觉的时候自己点一下。

温控器 – 接收器 – 市电供电

壁挂炉的温控逻辑很简单,只需要把两根控制线短接,壁挂炉就开始进行加热。

无线温控器的原理也很简单,室内的温控端基于温度规则发送控制信号,室外的接收器执行通断。所以,一个能接入米家的继电器就能将这款老旧壁挂炉接入小米的智能家居生态里。搜了下淘宝,这么简单的模块(USB供电,接入米家),能找到最便宜的49,我准备下单的时候还得等13天才发货。放弃,从头整理需求。

  • 温度控制:小米有温湿度计,可以贴在各屋墙上;
  • 网络接入:小米的蓝牙网关插座可以接入家庭Wi-Fi,也可以用米家 App 控制交流电和 USB 供电的开关;
  • 加热控制:一个简单的继电器,用通断电的方式,直接控制温控器控制线的短接状态。
  • 智能规则:米家 App
小米蓝牙插座网关 及 改造的接线方案(实线部分)

目标明确后,淘宝上了买了个5.2元人民币的 microUSB 供电的继电器,翻出了家里多余的一个带 USB 的小米蓝牙网关,一根USB线。

microUSB 供电的继电器,有延时模块

其实买错了,带了延迟功能,不重要,短接一下就好,否则要不按下按钮隔一会儿自动断开。

短接效果示意图

接线的时候,接 COM 和 NO 端。

接线效果

这样一来,只要 USB 通电,继电器就工作,COM 和 NO 就接通了。如果想要默认接通,通电关闭,换用 COM + NC 的接线方式就行了。

接下来是米家的规则。App的智能 tab,创建规则。

米家 App 界面

温控器开启的规则

温控器关闭的规则

Incoming search terms:

TL-R470GP-AC v4.0 开启SSH

不用折腾,真的不用折腾。上截图

端口隐藏了,我不确定 TP-Link 官方是否介意这个,所以只是给了个图上来。

我是把 1.1 的固件(1.1.0 Build 200831 Rel.44384n)翻了个遍,之前看到了改备份/配置文件的,再加上自己“经验”的开盒插 TTL,都没必要,固件里直接给了个功能。

系统工具 -》 诊断工具 -》 故障诊断 -》 开启诊断模式。

重启,找到合适的端口,不是 22,能看固件就看固件吧,代码里写死了。

用户名 root ,密码参考下边的代码,来自 /etc/init.d/dropbear 的最前边几行

macAddr 是设备标签上写的 MAC 地址,全大写,没有横线或者冒号。

对于 MAC 地址是 112233445566 的设备,root 密码就是 eb341820cd3a3485 。

给个链接 https://rst.im/hash/112233445566,参考 md5(half) 这行

另外,一些其他信息。

Telnet,telnet是开不了的,因为固件的 /etc/passwd 里放了一个默认密码,而 telnet 的启动脚本检测了,只有各种都是空的情况才能自动开启 telnet。假设条件成立,telnet 的密码也是空,参考 /etc/init.d/telnet 的 start()

串口,依旧没搞定。

opkg,自带配置无效,有空再去看哪个源可以用。

wireguard,等 opkg 搞了再看



You are not authorised to read all content in this post. Please login…

Incoming search terms:

TL-R470GP-AC v4.0 主板图

之前看到某论坛的历史记录,TL-R470GP-AC v1.0 跟当时的 gamer 上有人发的 MR100GP-AC 板子看上去一模一样,不愧是一家。

为了研究 TL-R470GP-AC 装 WireGuard,花260又买了一个新的,拆机。

然而,试了 J1 和 J4 的各种组合,都看不到串口数据。