Google禁止MGMaps使用地图数据

我曾经介绍过两个在手机上使用Google地图的程序:j2memap和Mobile GMaps(MGMaps)。相对于Google自己的mobile edition,这两个程序还有支持GPS、支持多种地图(MS,Yahoo…)等增强功能。
然而好景不长,MGmaps的作者Cristian Streng接到Google的通知,要求他从程序中取消对Google地图的支持。Google的理由是MGMaps未经授权直接使用了Google地图的数据,属于衍生作品,违反了Google的授权协议。Google表示正确的使用方式是使用Google提供的API,而不是直接采用其数据。此外,MGmaps还有侵犯Google商标的嫌疑。
Cristian对于Google的决定表示遗憾,并认为Google的创新精神正在消失。在与一些用户的讨论中,Cristian表示Google的API基于javascript,只能用于web程序,手机无法使用。他将对程序功能进行调整,但程序的名字不会改变,因为GMaps并非Google的注册商标。
由MGMaps的遭遇,我想到j2memap。既然非web程序无法使用Google的API,j2memap恐怕也是直接使用其地图数据。这么说,Google的律师信是不是也在路上了?

在Moto A1200上运行telnet

接着玩手机。
先更正一下,前两个帖子提到要选择用usbnet打开tnlg文件,实际上并不用这么麻烦,直接点usbnet就可以了。
前两个帖子介绍的是从电脑telnet到手机,这里要讲的是在手机上运行telnet程序,与手机本身建立telnet连接。
首先要下载基于J2ME的muTelnet,把它按照正常安装java程序的方式装到手机上。但是,光有这个程序还不行,因为手机上的程序一旦要求网络连接,它就会申请用GPRS,这样就不能telnet到手机本身了,所以还要略施小计,骗它一下。到MotorolaFans论坛下载fake_dsmA1200.zip,解压缩后用MPKG将fake_dsmA1200.pkg安装到手机上,这个程序的作用是提供虚假的GPRS接口。
接下来,在手机的“设置-数据网络”选项中新建一个名为usblan的网络连接,需要的参数随便填一些就可以了。这一步不是必须的,但建了之后可以在muTelnet的属性中将程序与这个网络连接绑定,用起来方便一点。
最后就很简单了,点击fake_dsmA1200、点击usbnet启动telnet服务器,再运行muTelnet,输入telnet的目标:localhost,用root登录。
说实话,在手机上运行telnet就是看起来比较酷,用手写输入命令实在不方便,而且回车还要用Input/Character/Control char/Return的方式输入,真是麻烦透顶。

telnet到Moto A1200(Linux篇)

几天前成功从Windows XP上telnet到Moto A1200,现在在Linux系统上也做到了。由于有了前期的经验,实现起来似乎更加容易。步骤如下:

把那个帖子里提到的 yan0.rar 文件中的 loader_A1200.pkg 用MPKG安装到手机上。
在手机TF卡中建立文件usblan.lin,内容是:
#!/bin/bash
echo MotNet > /proc/usbd-switch
ifconfig usbl0 up 172.16.16.6 netmask 255.255.255.0 mtu 900

将手机的USB模式改成Modem与电脑连接,选择用Loader打开usblan.lin、用USBNet打开tnlg
我的Linux是Slackware 11.0,采用的是它提供的2.6.18版内核,启动时运行了udev,所以连接后系统自动加载了所需的驱动模块(usbnet、cdc_acm、zaurus)并认出了usblan设备(用lsmod查看模块信息,用dmesg查看系统发现的新硬件的信息),在电脑上运行命令:
ifconfig usb0 172.16.16.5 netmask 255.255.255.0 mtu 900

telnet 172.16.16.6

实际上在用ifconfig设置手机和电脑的IP地址时还有其他的选择,但是为了和Windows环境一致,所以用了同样的IP。
参考资料:Get a shell

telnet到moto A1200(Windows篇)

买了Moto A1200接近一年,终于通过telnet连接看到了其中Linux系统的真面目。
Moto其他的Linux手机都可以用telnet连接,所以一直也很想在A1200上实现,但是看见论坛的讨论都说要先刷机才行。这却是我不想做的,因为机内的资料要备份、恢复,倒来倒去的,怕麻烦。经过一番搜索,在motorolafans 找到了不刷机实现telnet的方法。步骤如下:

下载必要的程序:从ccmove论坛下载 yan0.rar 和 usblan_yan0.rar;从motorolafans论坛下载 usbnet_a1200.zip
解压缩 yan0.rar,将其中的MPKG_A1200.rar压缩包里的目录.system拷贝到TF卡盘里,覆盖原来的文件。注意:覆盖后,已经安装到TF里的JAVA和MPKG程序将丢失!
解压缩 usbnet_a1200.zip 得到 USBNet_A1200.pkg ,将它拷贝到手机TF卡里,然后选择用MPKG打开,听到叮咚一声说明程序已安装。再一次选择打开方式,此时选择用USBNet打开,又是叮咚一声后,程序在TF卡建立了sbin目录,其中有文件名为 tnlg 。
将usblan_yan0.rar在电脑上解开备用。将手机的USB模式改成Modem与电脑连接,将 tnlg 文件用USBNet打开,叮咚一声之后,电脑提示发现新硬件Motorola USBLAN,要求安装驱动,此时指定电脑到usblan_yan0.rar 解开后的目录搜索驱动程序。
在电脑的cmd窗口输入 telnet 172.16.16.6 ,如果成功,用root作为用户名登录,不需要密码。

telnet连接成功之后,还可以在手机中安装一个busybox(下载),这样就能够运行更多Linux的常用命令了。

手机上的Google地图

很多人知道Google自己已经发布了一个在手机上访问Google Maps的软件,但是提供的地图只有美、加和欧洲的一些地方,其它的区域访问不了。然而,已经有其他人开发出比Google更强的手机地图软件,我试过的有Mobile GMaps和J2meMap,都是手机J2ME程序,在我的Moto A1200上均可以正常使用。
Mobile GMaps的主要功能包括:支持Google、MSN、Yahoo和Ask.com的地图显示,支持手机内置的GPS或者通过蓝牙连接的GPS设备,能够访问在线的Google Earth的KML文件,还能访问Wikimapia。Mobile GMaps程序采用Creative Commons许可,但还不是开源程序,作者说也许以后会考虑开源。
J2meMap的功能与Mobile GMaps类似,但还不如Mobile GMaps那么成熟,所宣称的一些功能还没实现(例如使用Google Maps以外的其他地图)。相比之下,J2meMap似乎更加开放,公开了对程序进行扩展的API,鼓励用户创作自己的mashup,已经完成了Flickr search和Wikimapia。J2meMap在将来的野心是搞一个 J2ME Earth出来,即手机上运行的Google Earth。
两款软件都支持cmwap连接,可算是经济实惠的选择。不过用手机上的GPRS来访问卫星地图,实在是需要很强的耐性。尽管这些程序目前都可以正常使用,但是要想大行其道,恐怕还需要3G的一臂之力。