【安卓学习之第三方库】wifi模块 之 SmartLink

SmartLink是做什么的?如果使用过wifi监控摄像头的人应该都知道,比如小米出品的小蚁智能摄像机 YHS-113,之前恰好买了一个,还挺好用的,100多,也不算贵。它里面就集成了SmartLink,使得首次安装摄像头时,接通电源让摄像头处于连接状态,然后在 APP 中输入 wifi 密码,最后摄像头就连上 wifi 了。当然和蓝牙是没有关系的。
因此,SmartLink是一种智能联网功能的技术,一种让wifi模块连接无线路由器的方式。具体操作过程就是:
1、手机连接无线路由器。
2、通过按钮让设备的WIFI模块进入SmartLink配置状态。
3、打开APP 输入无线路由器密码进行配置。
4、设备连接无线路由器完成。

这里需要注意的是,路由器一定是同一台路由器,也就是说在局域网中才可以进行wifi密码配置。

其实查了很多资料,目前还模模糊糊,有错误的地方请留言告知,我再做修改,谢谢。

原理应该 是这样的,
情况A:
1.按下设备(如摄像头 或插座等智能家居设备),设备处于 监听状态
2.手机启动app,自动获取当前连接的wifi账号,用户输入wifi密码,然后手机将 账号 、密码、IP、端口号(wifi模块厂家设置好的封装在厂家提供的SDK中) 等信息,广播出去。
3.设备接收到这些信息,并开始连接无线路由器。

情况B:
1.按下设备(如摄像头 或插座等智能家居设备),设备处于 监听状态
2.手机启动app,自动获取当前连接的wifi账号,用户输入wifi密码,然后手机将 账号 、密码、IP、端口号(wifi模块厂家设置好的封装在厂家提供的SDK中) 等信息,发送给无线路由器
3.无线路由器接收到手机的信息后,广播出去。
4.设备接收到这些信息,并开始连接无线路由器。

情况C:
1.按下设备(如摄像头 或插座等智能家居设备),设备处于 监听状态
2.手机启动app,自动获取当前连接的wifi账号,用户输入wifi密码,然后手机将 账号 、密码、IP、端口号(wifi模块厂家设置好的封装在厂家提供的SDK中) 等信息,广播出去。
3.设备接收到这些信息,并返回设备信息给手机。
4.手机显示设备信息

情况D:
1.按下设备(如摄像头 或插座等智能家居设备),设备处于 监听状态
2.手机启动app,自动获取当前连接的wifi账号,用户输入wifi密码,然后手机将 账号 、密码、IP、端口号(wifi模块厂家设置好的封装在厂家提供的SDK中) 等信息,广播出去。
3.设备接收到这些信息,并返回mac地址和ip地址给手机。
4.手机发送mac地址给服务器,服务器返回设备信息给手机
5.手机显示设备信息

【安卓学习之第三方库】wifi模块 之 SmartLink_第1张图片

参考资料:

1.请问 SmartLink 技术的原理是什么? - 物联网 - 知乎

  基本思想就是利用广播包,我们知道以太网在最底层是以太网数据包,无线则更是广播包,天线发送数据包到空中,接收端接收到数据包,然后处理,供各层使用。
  在应用层,UDP协议可以发送广播包,所以,APP或者PC程序,发送一个UDP数据包,在包中放置SSID跟密码,然后插座接受到该包之后,解析包,获得SSID跟密码,就可以配置自己,链接路由器了。
  花了五个小时分析了汉枫的模块SmartLink的实现细节;
协议用了UDP广播数据包,手机向本地广播地址,端口49999,发送特定编码的数据包;
  显然,模块可以嗅探到该数据包,无线数据包中已经包含了SSID,以及加密方式,所以,模块仅仅需要从数据包中推算出密码,就可以成功连接本地AP了。
  汉枫用了一个很傻的效率较低的协议;
  将每一个密码字符编码为UDP包负载的字节数,一个回车,一个换行以及密码字节数;一个会话发送四次,再发送仅包含smartconfig的字符串的UDP包,如果模块配置成功,则回复包含mac地址的UDP包,手机从而知道了mac地址跟IP地址。
  看似复杂,但仍然很容易猜测到,所以说很傻;其实单数据包编码所有密码发送,效率最高,smartlink速度最快。。此次协议分析,也让我得到了一个很可怕的结论,如果明文发送密码,那即使别人不知道WIFI密码,也可以嗅探到明文数据包,很为手机软件的安全性担心。。

2.一般的wifi模块都有smart link功能吗_百度知道

  Smartlink无线投射处理器是一种通过WIFI将windows、IOS、安卓系统的音、视频同步传输到其他显示设备的一个处理器,每个芯片厂家的wifi模块都是有自己的smart link,但是由于每个厂家的算法不一样,这样根据算法来配置路由器比较麻烦,所以wifi模块在出厂时都有smart link功能,但是真正用到设备上,开发APP这一块已经不怎么用了,比如联鸿物联的ESP8266,MTK7681,8710以及8711wifi模块,采用的是AP STA切换模式,也就是说AP相当于路由器,STA相当于设备模式,这样可以通过切换来配置密码,这样就较简单实用。

3.汉枫嵌入式Wi-Fi模块支持快速智能联网功能

  物联网革命使得更多的新装置得以无线方式连接到家用网路与云端。汉风Wi-Fi模块以STA模式快速(5~8秒联网时间)正确(智能纠错和数据预分析)连入指定无线路由器,实现一步上网。

4.wifi模块的smartlink智能联网功能的实现原理是什么?? (amoBBS 阿莫电子论坛)

1.将ssid和password加密之后,通过组播包发送而已。wifi 模块首先要支持并进入所谓的sniffer模式。
2.是上海汉枫的东西?说也简单 做就麻烦些了
大概是当你按了smartlink按键 模块会进入到一种能监视所有数据包的模式
当你手机点击了发送 他会把SSID 和密码选项和手机的IP以及端口号所有内容按特定的格式广播出去,那边收到了就会进行配置并通过手机的IP和端口号连接手机 ,手机收到连接证明OK 并正常读取模块相关数据
3.smartlink,smartconfig好多叫法了,但是都是差不多的,手机发广播包出去,包括了SSID和密码。不过,我用AP模式来实现一个配置WEB页面来输入SSID和密码来解决接入路由器的总是。SMARTLINK之类的成功率实在不怎么样。
4.有一些手机兼容性也不好,所以ti都建议用ap模式,这样起码兼容性没有问题,进入ap模式,然后连接上,发一个udp的数据包过去,搞定
5.这个只能是局域网吧,如果要在广域网上传播数据,必须设备厂商提供一个数据中转传输服务器吧?
要不然app如何能渗透到内网中呢? 相当于他的设备主动连接到广域网上的主机进行登录确认,然后你使用app也是连接到他的广域网服务器,这样,双方通过服务器进行数据的转发通信。

转载请注明出处:

http://blog.csdn.net/ljb568838953/article/details/52754185

你可能感兴趣的:(第三方SDK)