Linux发展比Windows晚了几年,但它的开源理念,使得其发展迅猛发展,衍生出很多版本。如今Linux已经不再只有命令行操作,X-window做的已经很好了,3D效果也非常的出色,接触的人也越来越多了。
最近几天,我也有想把真机改成Linux系统的冲动,在安装之前,我要把一些常用的,在Linux系统上实现,毕竟功能上如果不能满足日常生活需要,那就没有什么意义了。相信现在很多人都已经在使用android的智能手机了,为了方便备份和管理手机,在windows下出现了许多android手机的管理软件,如豌豆荚、91、360、金山、、、等等,而且还可以通过数据线共享网络。虽然android是基于linux的内核,但在linux下管理android手机的方法并不多。毕竟windows下的驱动驱动,不能安装到Linux系统中去,经过对管理软件的工作原理分析,成功的在Linux下实现相同的功能。
虽然我最近学习的是Red Hat,但我没有选择在这个平台上进行操作,总不能以后再工作的时候,用服务器连接自己的手机玩吧!所以我选择了非常流行的Ubuntu这个版本,软件都是比较新的,界面做的非常的漂亮,而且更行周期很快。
下面就介绍一下具体操作步骤:
一、QtADB 管理Android手机
1、所需的软件
Qtadb 32位:http://down.51cto.com/data/807793
Qtadb 64位:http://down.51cto.com/data/807794
appt和adb文件:http://down.51cto.com/data/807813
2、解压上边的几个软件到用户主目录中的QtADB_0.8.1_linux32文件夹(也可以自定目录),并修改权限为777:
打开终端输入$sudo chmod 777adb QtADB aapt
3、我的手机是HTC G12,连接手机,运行lsusb命令,找到手机所在的那一行:
如我的手机是最后一行,记住ID后面的数字,即0bb4。
4在终端中执行下列命令:
$sudo gedit/etc/udev/rules.d/51-Android.rules
创建文件,添加如下内容(不同厂商的标识不一样,请按照自己的手机更改,):
#Incredible
SUBSYSTEM=="usb", SYSFS{"HighTech Computer Corp."}==" 0bb4", MODE="0666", OWNER="
或写入内容为:
#Incredible
SUBSYSTEM=="usb",ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0ffc",MODE="0666", OWNER="
我是用的是Ubuntu 12.04 LTS版本,没有添加这个文件也可以正常识别手机,然后要给这个文件增加权限(只加上读的权限也可以):
$sudo chmod a+rx /etc/udev/rules.d/51-android.rules
重启udev,执行以下命令:
sudo /etc/init.d/udevrestart #如过版本不对不能运行这个命令的话,重启电脑进入Linux系统也行,Ubuntu 12.04无需执行此命令。
5、在终端中cd切换到解压的3个文件的目录QtADB_0.8.1_linux32文件夹下,下依次执行以下命令
$sudo ./adb kill-server
$sudo ./adb start-server #必须以管理员身份执行,不然无法读取设备记住,一定要加sudo来执行这些命令,才能显示出当前连接到电脑的android设备 ^_^
如果未使用sudo来执行这写命令就会出现以下信息提示:
有了上边的“HT13PTJ15264 device”信息,QtADB就可以正常连接手机了。
6、执行QtADB就可以了:
$./QtADB
没有连接网络的话,机器会报错的,但不影响程序的连接管理功能使用。
如果需要管理短信的功能,则需要在手机上安装此软件:QtADB.apk。attp这个软件基本用不上,当需要自己将文件打包成APK文件时,才会用的上。
7、每次使用的时候都要切换目录,比较烦麻烦,可以设置环境,在~/.bashrc最后添加上PATH=$PATH:/home/gong/QtADB_0.8.1_linux32,这个文件只对当前用户有效。
如需要sudo执行的文件,则需要执行visudo,在里边的路径里添加所需要的路径。或者自己编写一个脚本,在里边写好要执行路径及命令,使用的时候执行一下,就可以使用了。在文件夹里,双击鼠标QtADB也可以运行。
至此,手机跟电脑的网络连接已经打通,理论上他们之间已经可以互相传数据。当然使用手机终端ssh和ftp也可以实现设备间的数据传输,也很方便。
二、Android手机通过USB数据线共享,访问Internet网络
既然Android手机通过USB数据线,可以共享电脑的网络,那么,在Linux下,也应该可以实现,那就实验一下吧!
1、连手机时选internet共享或internet传输。这个的不足之处是,internet共享要求手机能上网; internet传输手机会搜索电脑端的软件,linux下没有这软件,所以在几分钟后连接就会被关掉,因而这些办法没有实用价值,那就需要我们自己解决这个问题。
1、手机需要安装虚拟终端和busybox,虚拟终端可以让我们在手机中键入命令,但功能有限,busybox提供了更多的系统所不支持的命令,弥补了虚拟终端的缺陷。
在手机的虚拟终端中键入命令:
#echo 6 >/sys/devices/platform/msm_hsusb/usb_function_switch
这样激活的usb0网卡简单可靠,这个命令要有root权限才起作用,电脑端的网卡就激活了。
这时候,电脑中就多了一个网络连接,Wiredconnection2如图:
3、使用netcfg命令查看手机中的usb0网卡有没有激活,
运行netcfg,看看有没有以下信息:
usb0 up 192.168.99.184 255.255.255.255.0 0x00001043
如果没有执行
#netcfg usb0 up
看到usb0 up,说明就手机端的usb0网卡已经激活打开了。
4、电脑端如果没有获取到IP地址就用命令dhclient获取一下,或自己设置一下,与手机设置成同一网段
5、在手机中键入busybox ifconfig就可以看到IP地址,我的为192.168.99.184
然后进行测试,用电脑ping 手机的ip,同时用手机ping电脑的ip,都通了就没有问题了。
在电脑中开启NAT功能
$sudo echo 1>/proc/sys/net/ipv4/ip_forward
然后就可以享用高速的以太网了,进行网上冲浪了。
三、手机共享电脑的网络成功了,那就在研究一下电脑的共享手机的网络吧!这才是我要研究的重点,因为这是我最需要的功能。我上课的教室里没有连接外网,只能进行局域网访问。教室中能搜所到无线网,但学习用的主机却没有无线网卡,所以无法享用的、这份免费的大餐。没有外网,是多么让人郁闷的一件事啊,那就自己创造一个上网的条件吧!买一个无线网卡有点不值得,用的时候不多,毕竟移动设备基本都自带wif模块。我的HTC G12可以上无线网,哈哈,那就把它变成电脑的无线网卡吧!
1、方法和上边的差不多,手机默认支持Windows与mac os,不能使用以上设置,那就自己手动激活吧,在手机端输入:
#echo 6 >/sys/devices/platform/msm_hsusb/usb_function_switch
2、然后激活手机端的USB网卡,输入以下命令:
#netcfg usb0 up
3、在手机中开启NAT功能
$sudo echo 1>/proc/sys/net/ipv4/ip_forward
4、电脑端设置
如果没有获取到IP地址,执行sudo dhclient usb0,给usb0网卡申请IP,我这里得到的是192.168.42.74,手动设置一下也可以。测试一下,手机与电脑能不能连通,有时候要手动添加一下路由表才可以上网。然后电脑就可以享用这免费的WIFI了,折腾了小半天,原来是这么回事。
有内网和WIFI外网的话,就非常好用,机子里面的网卡上内网,安卓手机当无线网卡上外网,互相不影响,又完全分开。