酷派大神F1,通过USB连线,借助ubuntu电脑实现手机上网的方法(不需要root)(不完美,有点bug)。

笔记本/便携移动设备,手机平板等软硬件
回复
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

酷派大神F1,通过USB连线,借助ubuntu电脑实现手机上网的方法(不需要root)(不完美,有点bug)。

#1

帖子 ljj_jjl2008 »

最近换了酷派大神F1手机。发现手机本身可以通过USB连线,借助电脑实现手机上网(手机本身的功能,无需ROOT)。不过仅支持windows系列操作系统。
好奇心驱使,研究了一下,也实现了在UBUNTU下的这个功能。现分享如下:

一,通过在windows7下这个功能的表现,分析上网的原理:
首先在windows7下,测试了一下这个功能,发现原理不复杂。

1、只要windows下手机驱动安装正确,手机转到这种模式下以后,windows里面就会增加一个虚拟的网卡,ip192.168.137.1,掩码255.255.255.0。
2、这时,手机屏幕上有提示,要求将原有的网卡“共享”。共享完成后,就可以实现手机借助电脑来上网了。

二、在ubuntu下的尝试:

1、手机用usb链接ubuntu电脑,手机转到这种模式,用ifconfig查看,发现出现了一个新网卡,名字叫usb0,ip和子网掩码未设置。
2、ubuntu里面,网络共享肯定未打开。

基于以上两点,写了一个shell脚本:

代码: 全选

#!/bin/bash

#打开IP转发,1表示转发;0表示不转发
echo "1" > /proc/sys/net/ipv4/ip_forward 
#上面这个命令也可以通过修改/etc/sysctl.conf实现,在文件中加上下面一行:net.ipv4.ip_forward = 1

#其余命令是:
iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT

#打开NAT 
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 

#设置usb网卡的 ip 和 子网掩码。
#由于未知原因,IP经常“丢失”,暂时用“死循环”不停“纠正”。
declare -i i=1
while ((i<=10))
do
  ifconfig usb0 192.168.137.1 netmask 255.255.255.0
  sleep 10
done 
经测试,顺利实现手机联网。(其实有个BUG,就是不稳定,usb0的IP经常莫名丢失,shell里面暂时用“死循环”不停“纠正”来解决)
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 酷派大神F1,通过USB连线,借助ubuntu电脑实现手机上网的方法(不需要root)。

#2

帖子 YeLee »

终于看到建军了。 :em11
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

Re: 酷派大神F1,通过USB连线,借助ubuntu电脑实现手机上网的方法(不需要root)。

#3

帖子 ljj_jjl2008 »

过来汇报使用效果,并来求助了:
发现有个严重问题:不定时掉线,掉线后ubuntu里面的ifconfig命令发现usb0的ip又成了未设置的状态了,用ifconfig重新设置IP还能连上,但是过一会又会掉线。

暂时写了个死循环,不停设置ip。

代码: 全选

#!/bin/bash

#打开IP转发,1表示转发;0表示不转发
echo "1" > /proc/sys/net/ipv4/ip_forward 
#上面这个命令也可以通过修改/etc/sysctl.conf实现,在文件中加上下面一行:net.ipv4.ip_forward = 1

#其余命令是:
iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT

#打开NAT 
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 

#设置usb网卡的 ip 和 子网掩码。
#由于未知原因,IP经常“丢失”,暂时用“死循环”不停“纠正”。
declare -i i=1
while ((i<=10))
do
  ifconfig usb0 192.168.137.1 netmask 255.255.255.0
  sleep 10
done
求助:谁知道原因?帮助解决一下。谢谢!
回复