前段时间使用贝启科技BQ3568HM开源鸿蒙开发板制作了一个智能家居中控屏,今天录制一下成品视频,最后做一下产品展示。
在录制视频之前,先要解决一下开发板在校园网里面的上网问题。平时在家中使用这款开发板,直接连家里的WiFi就可以了。但是今天是在办公室录制的视频,校园网上网就比较麻烦了。就是OpenHarmony开发板无法通过校园网的认证操作。未认证的话会,学校使用的深澜软件系统会屏蔽所有除了认证用的流量。好在我们学校使用的认证系统和清华大学是相同的,而有个清华的大牛已经逆向分析了深澜软件所使用的认证算法,所以我可以借用一下他的研究,详细内容可以参考:,就是开发板无法通过校园网的认证操作。未认证的话会,学校使用的深澜软件系统会屏蔽所有除了认证用的流量。好在我们学校使用的认证系统和清华大学是相同的,而有个清华的大牛已经逆向分析了深澜软件所使用的认证算法,所以我可以借用一下他的研究,详细内容可以参考:https://www.cnblogs.com/maomaotou-thu/p/17649558.html。
深澜的portal认证,总共就两步,并且写进了网页的js里边,所以要实现认证上网只需要分析其代码,然后将JavaScript代码转换为C++,当然这个工作极其麻烦。认证过程分为两步,第一步是challenge。通过调用这个接口我们得到了待认证客户端的ip地址和服务端传来的token令牌。接下来,需要使用这个令牌生成一堆签名。准备好以上数据后就可以调用srun_portal接口了,这个地址只需从challenge的url中把challenge替换成srun_portal就可以得到。
接下来介绍如何修改上面的代码,将程序移植到BQ3568HM开发板。
Thulogin的CMake版本要求太高了,修改一下CMakeFiles.txt的第一行:
cmake_minimum_required(VERSION 3.16.1)
PwdInput.h和PwdInput.cpp这两个文件是为了输入密码的,它用到了getpass这个函数,不过OpenHarmony SDK的Native工具不包括这个函数,所以把相关的地方注释掉就可以了,我不使用控制台输入密码,改用命令行提供密码。
然后使用如下命令行进行程序编译:
g:\Huawei\OpenHarmony\Sdk\11\native\build-tools\cmake\bin\cmake -G Ninja -B out -DCMAKE_TOOLCHAIN_FILE=g:\Huawei\OpenHarmony\Sdk\11\native\build\cmake\ohos.toolchain.cmake -DCMAKE_MAKE_PROGRAM=g:\Huawei\OpenHarmony\Sdk\11\native\build-tools\cmake\bin\ninja.exe -DCMAKE_BUILD_WITH_INSTALL_RPATH=true -DOHOS_ARCH=armeabi-v7a
这里的OHOS_ARCH变量是根据BQ3568HM开发板默认镜像设置的,如果采用的镜像不同,可能需要修改一下。
生成makefile之后,执行如下命令产生可执行文件:
g:\Huawei\OpenHarmony\SDK\11\native\build-tools\cmake\bin\cmake --build out
将thulogin可执行文件和libc++_shared.so拷贝到板子上,然后就可以在hdc shell中执行如下命令就可以上网了:
./thulogin --server http://10.0.0.55 --user 6120100000 --pwd 12345678 --ac-id 8
演示视频附在本贴的后面,我们演示了通过界面进行本地控制和华为云平台进行云端控制两种工作方式。
经过一段时间的试用,感觉贝启科技BQ3568HM开源鸿蒙开发板总体的设计非常好,接口丰富,非常适合作为智能家居的中控屏。开发板布局合理,做工精细,推荐给大家使用。
更多回帖