我今天决心解决这个问题.
为此,我首先用中间人arp攻击,攻击我自己的路由器,这样我可以截取到kobo连接wifi瞬间的网络请求.
经过抓包,这个确认网络请求的地址是www.kobo.com/buildinfo.xml
然后我用ssh连入了kobo, 用grep -r buildinfo.xml .发现了这个请求的地址是写在`/usr/local/Kobo/libnickel.so文件中的.
也就是说有两种发法
- 肯定存在一个配置项可以关了这个wifi检查
- 要么让机器能访问这个新的验证地址,要么替换libnickel.so中的这个地址为你准备好的地址.但是4.8版本之前的检查地址,据我所知好像是
http://www.msftncsi.com/ncsi.txt
这个只是返回Microsoft NCSI,而新的返回
<BuildInfo>
<project>OneStore</project>
<environment>silver</environment>
<configuration>Release</configuration>
<build_number>4302</build_number>
<build_id>1050</build_id>
<repository>webteam</repository>
<branch>integration_20180821_SafeSarma</branch>
<revision>aa2d5a5effa6c87bb1d50a13b903be6c22400045</revision>
<build_name>01_Step1_Compile_OneStore</build_name>
<build_date>2018-08-21 19:19:26</build_date>
<built_by>${BUILD_USER}</built_by>
<description>Placeholder</description>
<app_version>1.0.0.0</app_version>
</BuildInfo>
所以我用kobo buildinfo.xml作为关键词,万能的谷歌当然发现了万能的mobileread中的一个帖子,他告诉我这个隐藏的关闭检查的配置项是IgnoreCaptivePortal=true
谢天谢地,也就是说我只要在.kobo/kobo/下的kobo配置文件中加入这个配置项应该就可以了
[FeatureSettings]
IgnoreCaptivePortal=true
然后并然暖,更改配置项重启后一点作用也没有.
再一天继续
没办法先替换hosts试试
使用github上面的 googlehosts/hosts
它里面有一个脚本,叫lhosts可以直接方便的更新hosts,不过这个脚本默认用的是curl,我们只要把它换成wget就好
问题是kobo的wget命令用的是busybox的
很不幸,它不支持https,怎么办呢,从新装个支持https的wget
- 从http://repository.maemo.org/extras/pool/diablo/free/w/wget/wget_1.10.2-2osso2_armel.deb下载这个armel版的deb包的wget
- 使用如下两条命令将包解开到koboroot文件夹
ar -vx wget_1.10.2-2osso2_armel.deb
tar -zxvf data.tar.gz -C KoboRoot
- 打包成升级包的样子
tar cvzf KoboRoot.tgz -C KoboRoot .
- 然后把生成的KoboRoot.tgz拖到kobo的.kobo文件加下,断开电脑它会自动安装wget
注意:这个wget因为缺少libssl.so所以使用是必须加--no-check-certificate
选项