智能终端及其网络配置方法_3

文档序号:9923920阅读:来源:国知局
ant时执行的命令:
[0210] /system/bin/wpa_supplicant-d-Dwext-iwlan〇-c/data/misc/wif i/wpa_ supplic曰nt.conf
[0211 ]我们在执行时加上了-c/data/misc/wif i/wpa_supplicant. conf,故而可 W 将要 连接的AP的设置W-定的格式写入wpa_supplicant.conf配置文件中即可。例如:
[0212] Ctrl_interface = DIR =/data/syStem/wpa_supplicant GROUP = system update_config = l
[0213] network = {
[0214] ssid = "my access point"
[0215] Proto=WPA [0^6] key_m卵 t=WPA-PSK [0217] psk = "you pass words"
[021 引}
[0219] 可见,即使是调用站点进程启动智能终端WiFi忍片模组的站点模式,也可通过W 上运用指令、运用配置文件两种不同方式,来实现由应用程序进程自行控制所述的站点进 程的开启,从而使智能终端工作于站点模式之下。
[0220] 由W上的分析可知,本发明可W借助多种方式激活智能终端的站点模式,并通过 调用点对点连接管理类的createGro啡方法来激活智能终端的热点模式,运两种模式可W 并存于Amlroid智能终端中。从而使得智能终端能够利用其站点模式接入外网,同时利用热 点模式建构一个小型网络。
[0221] 为使上述的双模状态更易于操作,体现更佳的用户体验,本发明的应用程序进程 可W通过对用户界面进行设计来对此加 W完善。
[0222] 用户界面泛指能够用于实现人机交互并且能够接收用户控制指令的显示界面,例 如,可W为Android系统的设置页面中的一个选项(或按键,由所述应用程序添加其中,下 同),也可W是从桌面呼出的通知栏或者交互页面中的一个选项,还可W是所述应用程序的 一个活动组件所构造的页面中的一个选项。
[0223] 本发明优选如下两种方式,用于接收所述的控制指令:
[0224] 其一,通过在用户界面提供单个控制按键,W用于一键式地接收所述的控制指令, 运种方式便于用户实现一键式操作。
[0225] 其二,通过在用户界面对应热点模式和站点模式而分别提供控制按键,W分别对 应不同按键而产生对应启动相应的模式的控制指令。
[0226] 根据W上的方式提供的控制按键,通常运些按键可W优选设置在系统桌面通知栏 列表处,或者W桌面悬浮窗的方式提供,既便于用户触控控制,又不影响用户视觉效果,当 然也可作为系统的默认功能而随用户开启WiFi按键时激活。较佳的,所述应用程序可W将 自身设为自启动项,使得系统启动时,可W自行加载所述的按键,从而便于用户操作。
[0227] 当用户通过所述的用户界面,触控所述的控制按键之后,便产生相应的控制指令, 该控制指令将被所述应用程序的进程接收,从而对应的控制热点模式和/或站点模式开启。
[0228] 具体而言,用户既可W通过单个控制按键来同时开启热点模式和站点模式,也可 W通过两个与两种模式相对应的按键来开启,实质上提供了多种操作变化例。对应运些变 化,W下进一步示例说明。
[0229] 设用户界面提供单个控制按键,用户通过该单个控制按键而触发其用户指令,此 处便可W先调用createGroup()创建热点。继而,本发明的应用程序进程再自行启动该站 点进程,由此便可实现两种模式的并存。反之,也可W先行启动站点进程,在其完成开启之 后,再行参照上述示例开启热点模式。也就是说,对应于单个控制按键引起的控制指令,可 WW不同的实施方式灵活安排所述热点模式和站点模式的启动顺序。
[0230] 而对应用户界面提供不同的控制按键,分别表征开启不同的模式的实例而言,贝U 可按用户点击不同控制按键的顺序而按序开启相应的模式,此举并不影响本发明的实施。
[0231] 在优选的方案中,推荐优先让站点模式先于热点模式开启,在确保本智能终端可 W连接外网的情况下,向其他智能终端提供接入功能,可W免除一些无用功,更为节能。
[0232] 由此可见,将站点模式与热点模式相继启动后,便可W实现两种模式的共存。在此 基础上,本发明的应用程序进程可W向用户界面输出一些结果信息,W告知用户该智能终 端当前已经处于热点模式和站点模式共存的双模状态。至于所述的结果信息的表达形式, 既可W是通过系统消息显示到通知栏中,也可W在桌面上弹窗显示,更优的方式可W是调 用一个预设的第=方图标,用于表征该智能终端处于热点模式和站点模式共存的双模状 态,将该第=方图标显示到用户界面的系统状态栏中,使得用户更易于获知相应的结果信 息。
[0233] 步骤S12、W系统最高权限调用网络守护进程修改网络共享配置信息使连通热点 模式与站点模式之间的网络连接。
[0234] 设及到对网络守护进程直接调用的操作,依照Amlroid的规范,需要获取系统的最 高权限,因而,在获取Amlroid系统最高权限或者Amlroid系统已经开放最高权限的前提下, 可W通过对所述网络守护进程进行调用,借此修改设及到网络共享的配置信息,即网络共 享配置信息,W便连通热点模式与站点模式之间的网络连接,让客户端可W通过服务端来 访问外网。
[02巧]所述的网络守护进程,即Netd,化twork化emon的缩写。Netd负责跟一些设及物理 端口的网络操作相关的功能实现,例如带宽控制(Bandwi化h),网络地址转换(NAT),个人局 域网(pan),PPP链接,SOf t-ap,本智能终端的热点模式所设及的共享上网(Te ther)等 等……都是按照模块(.CPP+.h)组织在netd文件目录下的。
[0236] Amlroid化td相关的基本框架的四大部分:
[0237] (1化inux Kernel用于检测网络相关的所有事件。
[023引(2)化td作为Kerne 1 (内核层)与Framework (框架层)之间通信的桥梁。
[0239] (3)框架层操作化td,向化td发送操作命令。
[0240] (4)应用层与框架层交互,用于用户进行网络的操控。
[0241] Amlroid为化td提供了 一个测试工具,即ndc,其主要功能有:
[0242] 监视化td中发生的事件。
[0243] 支持通过命令行发送命令给化td去执行。ndc的实现原理,便是连接上位于netd进 程中的"netd"监听socket,然后从化td接收信息或发送命令给化td。
[0244] 由此可见,可W通过ndc来驱动网络守护进程执行相关指令,本发明中,实现对网 络共享配置信息的修改的功能,便可利用ndc命令来实施。
[0245] 请先参照如下对Android系统实施的观测过程:
[0246] 首先,通过分析,发现createG;roup()创建热点之后,虽然可W被客户端连接,但 其用于向用户反馈DHCP配置信息的配置进程DNSmasq的参数如下:
[0247] /system/bin/dnsnmsq-keep-in-fore邑round-no-resolv-no-poll-dhcp-auth oritative-dhcp-〇ption-force=43,ANDR0ID_METERED-pid-file-dhcp-rang e = 192.168.42.2,192.168.42.254,化一dhcp-range = 192.168.43.2,192.168.43.254, 化--dhcp-range=192.168.44.2,192.168.44.254,化一化cp-range=192.168.45.2, 192.168.45.254,化一化cp-range = 192.168.46.2,192.168.46.254,化一化cp-range = 192.168.47.2,192.168.47.254,化一dhcp-range = 192.168.48.2,192.168.48.254,化一 化cp-range = 192.168.49.2,192.168.49.254,化
[0248] 从中可W看出,其中增加了强制配置序列为43的控制选项即化cp-option-force = 43,ANDR0ID_METERED,序号43的官方释义是厂商指定选项,用于表示当前连接为计费连 接,在运种情况下,客户端将不能利用服务端的外网连接,W免产生巨额费用。然而,运种设 计逻辑是W服务端将通过运营商的计费连接而提供访问外网服务的,但服务端存在WWiFi 站点模式建立的免费外网连接的情况,并未被An化Oid所兼容。
[0249] 继而,通过分析An化Oid官方文档中对于TetherControl Ier (共享控制器)的源代 码可知,在运种情况下,该处对ANDR0ID_METER抓进行了规范,然而,却未见默认网关的设 置。
[02加]而对客户端中进行分析,从core . java.an化Oid.net .DhcpInfOInternal也就是 化CP客户端那边,利用下述的代码实施检测: P曲lie boo.le:a打 hasMe妃I'edHm巧).{ if (vendorin化!二 null) { ret;ui'n vendorln化.Contai 11 s("AND民OID_METE艮ED");
[0251] } else { ret;ui'n !"'alse; }
[0252] W上的分析表明,如要令客户端通过服务端来连接外网,需要避开上述的控制选 项的影响。
[0253] 进而,通过分析本智能终端的热点模式开启前和开启后的数据包转发开关和数据 包过滤表即ip化bles,也发现影响客户端上网的因子。
[0254] 具体而言,对于数据包转发开关,可W发现,cat/proc/sy s/net/ipvVip_f orward 的结果是I而不是0,因而理论上可W通过echo"l"〉/p;roc/sys/net/ipv4/ip_fo;rward enable来改变此一开关设置,使其打开数据包转发功能。然而,运种情况下,由于受 iptables的影响,即使做出上述的改变,客户端进行外网访问仍然未能杨通。当智能终端的 热点模式下的P2p0标识所对应的接口收到数据包,虽会查找路由,并且发到其站点模式下 wlanO标识所对应的接口,但是会被ip化b 1 es的过滤规则所丢弃。
[02W]对于iptables,发现其存在两方面的影响,其一是其中包含有将接口p2p0的数据 包丢弃的规则,其二是欠缺将智能终端映射到公网的NAT规则。对于前者,可W通过W下指 令处理:iptables-D FORWA畑4,即删除forward里的第4条规则,也即natc化1_F0RWA畑规 则。运时候当p2p0收到包,会从wlanO发出。但是运个包的源ip是一个内网ip。因此,需要对 后者做处理如下:iptables-t nat-A POSTROUTING-0 WlanO-j MASQ肥RADE,即向ip化bles 过滤表增加一条nat规则,添加之后,在另一个手机上,便可Wping通外网ip了。由客户端到 外网的连接,由此便杨通了。自然的,W及结合实践分析,网关也已经得到正确配置。
[0256] 通过上述的处理,仅仅解决了 IP层的问题,对于DNS解析的功能,则仍未实现。进一 步通过分析DNSmasq的配置参数,发现其携带了一no-resolv选项,该选项正是导致影响客 户端获取正确的DNS解析的原因。由此,可W通过修改StartTethering方法或者增加一个 s^dTethe;ringWithDns()方法,去掉一n〇-resolv参数。完成运些操作,客户端经服务端 到外网,具体到基于域名的万维网的访问,便杨通无阻了。
[0257] W上,概括而言,本发明为实现客户端通过服务端访问外网而借助ndc工具驱动网 络守护进程所做出的设及到网络共享配置信息的修改,主要设及到W下方面:
[0258] 其一、开通连通热点模式与站点模式之间的网络连接的数据包转发功能:具体表 现为可通过echo指令设置其参数为1来打开。
[0259] 其二、修正用于杨通热点模式与站点模式之间的网络连接的数据包过滤表的设置 内容:具体表现为对ip化bles表格去除相应的过滤条目W及添加 NAT映射记录。
[0260] 其S、去除客户端共享上网限制解析DNS的选项:具体表现为可通过共享控制器 (Te therContro 11 er)的有关方法来去除一n〇-r eso 1 v选项。
[0261] 由此可见,通过上述的方法,便可使本发明的智能终端实现连通其热点模式与其 站点模式下之间的网络连接,为客户端提供接入外网的服务。
[0262] W上通过掲示对Amlroid的系统原理的分析过程,掲示了本发明的实现原理,并提 供了如何修改网络共享配置信息的一种实施例,除此之外,还可通过W下的方式来修改网 络共享配置信息:
[0263] 运种方式具体而言,即W系统最高权限调用ndc工具通过网络守护进程来实现修 改的方式,请参阅如下代码及其说明:
[0264] ndc ipfwd enable
[02化]ndc tether dns set 0 114.114.114.114
[0266] //如果失败,通常意味着前面有手工操作没有完全撤销。执行PS I gr邱dnsmasq先 强制关闭配置进程。如果还有残留进程,例如:
[0267] shelliCP8681_A01:/#ps|grep dnsmasq
[0268] dhcp 3557 325 10272 740 001a0338 b66f61ac S/system/bin/dnsmasq
[0269] //执行kill 3557杀掉,然后
[0270] ndc tether stop,//停止共享
[0271] ndc tether 8化的 192.168.49.2192.168.49.254//启动共享,配置网段 [0^2] ndc tether dns set 0 114.114.114.114/7设置DNS
[0273] ndc nat enable P化OwlanO 0//添加 NAT规则
[0274] 经测试,W上代码所起的效果与上方掲示的手动修改过程一致,经由此段代码作 用,数据包转发功能被打开,iptables过滤表得到正确的配置,DNS解析功能也得到正确的 维护。因此,本发明的应用程序可W在系统最高权限状态下,在启动热点模式之后,执行运 段代码,便实现了对网络共享配置信息的正确修改,客户端便可通过服务端来上网。
[0275] 多数的Amlroid系统智能终端,由于厂商的限制,并未开放其系统最高权限,或者 未成功被ROOT,对于运种情况,W上WND巧旨令直
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1