1.一种虚拟WIFI上网装置,其特征在于,所述装置包括:虚拟WIFI内核模块,为基于Linux cfg80211内核接口的网络设备驱动模块,包括cfg80211接口,用于:接收Android系统上层协议发送的数据包,将数据包发送到网卡;接收网卡发送的数据包,发送到Android系统上层协议;将获取到的以太网网卡信息及设置的虚拟AP信息返回给WIFI配置模块;
虚拟网卡,是Android系统创建的类型为虚拟WIFI的虚拟网卡;
WIFI配置模块,用于:使用nl80211接口通过netlink将WIFI指令发送到Linux内核中注册过cfg80211接口的虚拟WIFI内核模块;接收虚拟WIFI内核模块发送的WIFI消息,转发给Android应用。
2.一种虚拟WIFI上网方法,其特征在于,所述方法应用在Linux兼容Android的环境中,所述方法包括:
Linux加载虚拟WIFI内核模块;
虚拟WIFI内核模块设置用于WIFI配置的cfg80211接口操作函数,以及用于创建网卡的rtnetlink接口操作函数;所述虚拟wifi内核模块用于接收Android系统上层协议发送的数据包,将数据包发送到网卡;接收网卡发送的数据包,发送到Android系统上层协议;
Android系统创建类型为虚拟WIFI的虚拟网卡;以以太网网卡信息为参数,调用rtnetlink接口操作函数,rtnetlink接口操作函数获取以太网的网络信息;设置虚拟网卡接口的操作函数,设置用于虚拟网卡接口接收以太网网卡数据的回调函数;
Android应用发起连接WIFI请求;
Android系统启动WIFI配置模块,WIFI配置模块接收到连接WIFI请求消息,将WIFI请求消息通过nl80211接口以netlink方式发送到Linux内核中注册过cfg80211接口的虚拟WIFI内核模块;
虚拟WIFI内核模块接收到WIFI请求消息后,将获取到的以太网网卡信息及设置的虚拟WIFI的AP信息返回给WIFI配置模块;
WIFI配置模块将以太网网卡信息及虚拟AP信息返回到Android应用;
Android应用对虚拟AP信息进行解析,得到虚拟WIFI的SSID。
3.如权利要求2所述的虚拟WIFI上网方法,其特征在于,所述方法中Android系统创建类型为虚拟WIFI的虚拟网卡,具体为:Adnroid系统启动时,使用iplink add指令创建网络类型为虚拟WIFI virt_wifi的虚拟网卡;
使用ip link add指令创建网络类型为virt_wifi的网络设备时,根据传入的网络类型调用虚拟WIFI内核模块的函数,设置接收网络数据包的回调函数。
4.如权利要求2所述的虚拟WIFI上网方法,其特征在于,所述方法中虚拟WIFI内核模块接收到WIFI请求消息后,将获取到的以太网网卡信息及设置的虚拟WIFI的AP信息返回给WIFI配置模块,具体为:
虚拟WIFI内核模块接收到WIFI请求消息后,调用已经注册的cfg80211接口中的网络连接函数,网络连接函数调用网络信息复制函数,复制有线网络的ip地址;
虚拟WIFI内核模块设置虚拟WIFI的AP信息,将虚拟WIFI的AP信息发送至WIFI配置模块的无线驱动接口nl80211。
5.一种虚拟WIFI上网装置,其特征在于,所述装置包括:存储器,用于存储程序;
处理器,用于执行所述存储器中存储的程序,当所述存储器中存储的程序被执行时,所述处理器用于执行如权利要求2至4中任一项所述方法的步骤。
6.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求2至4中任一项所述方法的步骤。
7.一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求2至4中任一项所述方法的步骤。