USB reverse tether

刚接到需求要实现USB reverse tether时, 还不清楚reverse tether 是个什么东东,经过几天的study,  原来USB reverse tether就是反向应用USB tether. 即Android 设备通过USB连接利用PC的共享连接, 实现上网的功能.

目前网上有很多攻略通过一些破解软件让android 手机实现这一功能, 这些方法都是可行的,但普通用户参考网上的攻略想使能这一功能时, 因为不了解内部机制, 只是照搬,实现过程中往往遇到一些问题, 导致最终费了很多功夫却上不了网. 如果android 设备厂商能把这一功能做在系统中应该会受用户欢迎.

总结一下实现这一功能要注意的问题:

 

首先是PC 端:

1. 需要安装Android USB Ethernet/RNDIS driver.

当用户插入USB 线连接PC 和android device 后, 打开android device 上的setting 程序, 点击Wireless&networks->Tethering&portable hotsport->USB tethering打开USB tethering, PC 端会自动跳出新设备安装向导. 按向导一步步添加你 的RNDIS driver(inf 文件里要有匹配你设备的usb VID/PID), 不要安装PC 默认驱动

2. PC 要支持Internet 连接共享

很多公司的网络, 会把Internet 连接共享用组策略屏蔽掉, 即"我的连接"->"属性"对话框中你看不到"高级"这一选项, 而"允许其他网络用户通过此计算机的internet连接来连接"这项设置主要是在"高级"属性页里配置的. 如果不支持, 就意味着你用公司电脑没办法使用这一功能.

即使PC 支持Internet 连接共享, 但你所有的设置配置完后,依旧不能上网, 但你的PC 和你的android device 可以互相ping 通,极大可能是你的PC 连接共享有问题, 换一台电脑或重装PC端操作系统基本可以解决问题.

 

其次看一下device 端

1. Setting 里要有USB tethering设置项

很多android 产品把这项移除掉了, 控制这一选项的flag 在packages/apps/Settings/res/values/bools.xml 文件中

<bool name="has_tether_settings">true</bool>

2. device端用ping 命令去检查网络连接时, 要用ping -c 4 XXX.XXX.XXX.XXX  这种格式, 不能只用ping XXX.XXX.XXX.XXX ,否则ping 命令的调试信息会一直输出, 没办法停掉

3. PC 端网络连接配置好后,要在device 端设置默认网关. 

#busybox  route add default gw 192.168.42.xxx  (xxx 是PC 端共享连接设置IP)

这一步是整个过程的关键, 因为要有root 权限,对于玩家可以在网上下载root 工具, 对于系统开发者则要考虑什么时候调用这一命令, 而且目前实现是用静态IP 和路由,没有实现动态分配, 不适合在局域网中多人使用. 要考虑如何实现动态分配.

 

--2012.08.30

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值