从Sprint 5月19号发布官方2.1升级,到今天获取root,一共用了整整半个月的时间,期间我和其他朋友尝试过各种方法来试图获取都失败,怪不得Sprint发布2.1时老是跳票,其实绝大多数时间都是去给kernel打补丁去了。期间跟regaw讨论过好几次,都进展不佳,要找kernel版本为2.6.29的提权漏洞并且最好是5月份以后泄露的,这真是一件困难的事情。
Regaw最后使用的办法是通过修改matt写的一个EVO 4G提权漏洞进而使帮助CDMA Hero也获取了提权。感谢大家的努力!
另外在root的过程中我没有刷boot.img。昨晚我帮regaw重新打包了一遍boot.img,这个新boot.img与官方ruu版本中的boot.img唯一差别就是其kernel中的build.prop文件ro.security的值从1改为0。刷与不刷的区别就是,新的boot.img可以使得开机时即进入root,而保留原来的boot.img则需要开机后手动之行su命令才可以切换到root。
历史会永远记住伟大的这一天(你们懂的)。需要获取root的请check这个连接:[GUIDE] How to Root Sprint 2.1 Release for CDMA Hero。
实验室有一个SIP相关的项目,客户端选用linphone。因为涉及到音频视频还有图形界面,所以依赖的包很杂,特别是GTK的编译安装。
1.环境:Fedora 7,内核版本2.6.21
2.需要编译的linphone版本3.2.1
3.GTK 2.18.3与Linphone 3.2.1的依赖关系如下:
Read the rest of this entry »
前两天捣鼓了一个USB ADSL在VMWare虚拟机中Linux系统中的安装配置和拨号方法。目前青岛网通这里,如果是在Windows环境下,拨号后能够自动获取6to4自动穿隧方式的2002开头的IPv6地址,Linux下的获取需要手动配置一下,并不是很复杂。
如果是Windows系统,那么通过ipconfig可以得到类似如下的信息。
C:\Documents and Settings\Administrator>ipconfig
Windows IP Configuration
PPP adapter AccessRunner DSL:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 123.235.169.32
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . : 123.235.169.32
Tunnel adapter 6to4 Tunneling Pseudo-Interface:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 2002:7beb:a920::7beb:a920
Default Gateway . . . . . . . . . : 2002:c058:6301::c058:6301
其中IPv6地址中的7beb:a920正好对应动态IPv4的地址123.235.169.32,而IPv6网关地址中的c058:6301对应的是不变的192.88.99.1,这个192.88.99.1是一个特定的6to4中用于任意点传送的中继路由地址。需要做的就是记好这几个地址的规律。
然后换到Linux中,配置好ADSL,拨号后连入IPv4网,ifconfig查询到新获得的动态IPv4地址,然后按照上面的规律自行将其转换到6to4方式下2002开头的IPv6地址。例如现在得到的是124.135.17.179,对应的6to4地址为2002:7c87:11b3::7c87:11b3。下面将手动添加6to4隧道和中继路由。
[root@leon ~]# ip tunnel add 6to4 mode sit remote any local 124.135.17.179
[root@leon ~]# ip link set dev 6to4 up
[root@leon ~]# ip addr add 2002:7c87:11b3::7c87:11b3/16 dev 6to4
[root@leon ~]# ip -6 route add ::/0 via ::192.88.99.1 dev 6to4 metric 1026
添加完后通过ifconfig可以看到新多出的网卡6to4,同时ping6一下ipv6.google.com已经可以正常的显示结果。
[root@leon ~]# ifconfig
6to4 Link encap:IPv6-in-IPv4
inet6 addr: 2002:7c87:11b3::7c87:11b3/16 Scope:Global
inet6 addr: ::124.135.17.179/128 Scope:Compat
UP RUNNING NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:560 (560.0 b) TX bytes:560 (560.0 b)
nas0 Link encap:Ethernet HWaddr 00:08:5C:14:C0:FB
inet6 addr: fe80::208:5cff:fe14:c0fb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:275 errors:0 dropped:0 overruns:0 frame:0
TX packets:281 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:23972 (23.4 KiB) TX bytes:19561 (19.1 KiB)
ppp0 Link encap:Point-to-Point Protocol
inet addr:124.135.17.179 P-t-P:124.135.17.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:236 errors:0 dropped:0 overruns:0 frame:0
TX packets:236 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:20202 (19.7 KiB) TX bytes:9883 (9.6 KiB)
[root@leon ~]# ping6 -c 4 ipv6.google.com
PING ipv6.google.com(tx-in-x68.google.com) 56 data bytes
64 bytes from tx-in-x68.google.com: icmp_seq=1 ttl=58 time=384 ms
64 bytes from tx-in-x68.google.com: icmp_seq=2 ttl=58 time=385 ms
64 bytes from tx-in-x68.google.com: icmp_seq=3 ttl=58 time=387 ms
64 bytes from tx-in-x68.google.com: icmp_seq=4 ttl=58 time=390 ms
--- ipv6.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3396ms
rtt min/avg/max/mdev = 384.629/386.821/390.147/2.146 ms
总结配置过程,首先观察windows下6to4方式IPv4地址与IPv6地址的对应关系及其中继路由地址,然后在Linux中添加隧道,设置6to4网卡,添加IPv6地址和中继路由,最后测试成功。
延伸阅读:http://en.wikipedia.org/wiki/6to4,http://en.wikipedia.org/wiki/IPv6
鉴于北京和山东网通已经提供原生ipv6服务(via newboysyb@newsmth)提供了6to4方式的ipv6服务,不过家里的路由器和vmware目前根本就不支持ipv6穿透。为了将ipv6充分利用起来,打算在VMWare中的Linux环境下进行USB ADSL的拨号,这样就跨越了路由器的限制。很繁琐,研究了一个上午才搞定。
1.可行性分析
网络环境:青岛网通ADSL
硬件设备:大亚科技ADSL USB Modem,型号DB101-A(Conexant芯片)
操作系统:VMWare Workstation 6.5.0虚拟机下的Fedora 10(内核版本2.6.27.5)
整个过程之所以繁琐,最重要的原因是这个ADSL是USB接口的,要像学校里武汉电信ADSL使用的都是RJ-45接口从而system-independent也就舒服了。所以,首先设备必须被kernel所支持,幸运的是一般比较新的kernel都是没有问题的。然后需要检测一下自己的USB ADSL Modem是否被Conexant AccessRunner芯片的Linux驱动所支持。简单方法如下图,在Windows的设备管理器中查询该设备的16进制Vendor ID和Product ID,然后看是否在这个网页http://accessrunner.sourceforge.net/modems.shtml所示的列表中。如若不然,奉劝早点收手,后面一些都是白费功夫。
2.让USB ADSL穿透VMWare
这一步的目的是屏蔽掉VMWare这层马甲的影响,让Linux客户机能够“直接”存取这个USB ADSL设备。方法是在虚拟机客户端的设置页中,将USB Controller的Connections三个选项都打勾,然后重新启动Linux客户机,在VMWare窗口的右下角应该就出现了新的USB设备,指向它时会出现“Conexant ADSL USB Modem”字样的提示,然后点击它选择Connect (Disconnect from Host),这样主机便会失去设备连接,转而让Linux客户机获取。
Read the rest of this entry »
自从从九州未来科技搬家到CPH后,一直对主机的访问速度和质量非常满意,特别是还提供了对SSH登录的支持,更加让我感到非常自豪。
可是在实际使用过程中,有时候却让人十分恼火。最开始拿到ssh账号时是考虑想把自己写的Gmail新邮件短信提醒的程序放到主机上来跑,可是上面curl和wget都没有,然后因为没有root权限,也安装不了。于是第一试告罢。后来我把程序放到unix-center提供的主机上去了。
第二试是给自己的一个目录做软链接,ssh上去直接搞定。
然后前天下午中国gov公布了四个全球优秀网络公司名单,其中之一Twitter.com光荣上榜。然后我在http://www.lostleon.com/twitter搭建了dabr,用来临时访问和更新twitter。可是硬是登录不上。然后突然想明白了,我的主机也并不在国外啊,怎么可能登录上呢。于是又ssh上去,想改hosts文件,可是我又错了。因为CPH并给普通用户修改hosts的权限,连查看都不能。第三试又告终。
与国外的那几大VPS相比,CPH提供的SSH支持真是太弱了,权限给的太少。不过,话又说回来,这种权限的不放开,在国内确实也是很有必要的。不然必然会造成管理上的混乱。前些日子备案风暴刮遍CPH,如Paveo所言,疾风知劲草,备案见人心。一个能保持稳定的主机服务,特别是非技术因素上稳定的主机,真的对大家都有益的。
以下是广告时间,敬请广大未成年读者忽略:六分靠打拼,四分天注定。
新版本特点:主要解决了明文存储Gmail账号信息和飞信账号信息而导致的不安全问题。可以真正的worry free。
其实很好办,无非是通过shc来将shell脚本加密,生成二进制文件,就无法明文观察到密码了。有人会问,shc的加密真的那么可靠吗?一般来说是安全的,除非使用gdb等调试工具来获取源代码,这种安全级别对我们来说已经足够了。
如同前一版本一样,fGmail的获取地址在这个Google Code的工程里面。欢迎试用。
Gmail难道开通了新邮件免费短信通知?失望的是,仍然没有。不过,我做了一个“曲线救国”的方案,运用Gmail Feed + wget + sed + libfetion + cron + 我写的小程序fGmail,然后有一台在网的linux主机,即可实现这个功能!
OK,实现思路如下:Gmail提供了通过Feed访问新邮件的功能,我们通过wget来抓取它并保存成xml文件,然后写个shell脚本运用sed将新邮件数、邮件标题和发送者解析出来,传递给另一个小程序,这个程序利用DDD开发的libfetion库,实现向自己的手机发送短信的功能。将那个shell脚本放在cron中,设定每隔一段时间执行一次即可。是不是很简单?
我把所有程序都放在了这个Google Code的工程中,直接下载地址在这。除了libfetion等已经声明版权的内容外,fGmail遵从GPLv3协议。
使用时,只需解压后按照README安装即可。
费了这么多周折,终于实现了Gmail的新邮件短信通知。不过其局限性也是很显而易见的,如只是Gmail,没有其他邮件,只能是中国移动飞信的已注册用户,要有一个linux系统来跑等等。不过这些限制对我自己来说,刚好已经满足了。
基于libfetion开发的项目很多,网上最常见的例子比如免费天气预报之类。如果有好的构思,完全可以做出非常实用的东西来。也希望我的这个fGmail小例子能实现抛砖引玉的作用。最后希望能早日实现上手G2的梦想,爽歪歪的直接用手机收发邮件。
Q & A :
Q:Why fGmail?
A:I choose `f’ and `Gmail’ to name it simply for fetion Gmail or fetch Gmail.
Q:Hey, but how about its safety, I mean the Gmail and fetion account information?
A:Your Gmail account information is directly stored in the file `account’, and I am sorry for that. Maybe I will fix it in the next version.
家里网速实在卡,redhat是不可能马上就下下来了,于是就用了手头仅有的cygwin来安装,也不错其实。反正实际上都是在ns内部写代码,暂时不需要真实的linux环境。
cygwin有各种版本吧,几十M到十几G的都有,我下的是50M多的很小的一个版本,事实证明已经足够了,不够的几个包完全可以临时附加安装。
根据nsnam网站给的提示,安装ns2之前,需要实现在cygwin中打好gcc、gcc-g++、gawk、tar、gzip、make、patch、perl、w32api这几个包,另外X11也是必须的,可以是Xfree86 (需要XFree86-base、XFree86-bin、XFree86-prog、XFree86-lib,和XFree86-etc几个包) 或者X.org (需要xorg-x11-bin、xorg-x11-bin-dlls、xorg-x11-devel、xorg-x11-libs-data,和xorg-x11-etc几个包)。
除此外,还需要X-startup-scripts这个包,否则的话就无法运行起startxwin.sh。
另外特别注意的是,安装ns2之前要打一个补丁,在ns-allinone-2.29tk8.4.11generictkBind.c文件的588~589行之间插入下面三行:
#ifdef GenericEvent
/* GenericEvent */ 0,
#endif 否则的话nam将无法运行起来。
ns的编译过程将非常漫长,期间可以去吃个饭或者睡个小觉。装完后运行个example3.tcl看下,出现如下结果,应该就说明没有问题了。
OK,最基础的环境已经搭好了,可以开始工作了。