月度归档:2009年09月

一卡多号

买了个一卡十六号,先拿自己的卡开刀,装了光盘自带的软件跑了一个晚上也没破解,大惑之下放狗搜索,发现SimonScan1.06挺好用的,下载一个试用,不到两个小时破解完毕。

又找了个废卡破解,花了6个小时最终告破。很好很强大的东西啊!

基于linux系统的无线路由器固件组成

我们看到的很多固件,都是运行的linux系统,比如基于broadcom芯片的无线路由器。其固件分为三个部分:cfe、kernel、nvram。. t% J- V; \) }- B( q& U# G

 

cfe为基本的硬件io部分,负责各硬件的沟通和协调运行,类似于主板的bios,在沟通各硬件协调工作的同时,调用nvram的设置信息,启用kernel内核。cfe启动的时候,启用kernel之前会检测一下kernel的校验和,如果发现不对,就会停止启动,同时开始处于等待状态(等待一个完整的kernel内核)。
0 S

kernel为整个固件的内核,也就是真正运行的linux程序,就像台式机的windows,但它不仅是一个系统而且包含了里面所有应用程序,说白了就是我们电脑使用的平台,包含了系统和各种功能程序。4 H# l+ h8 t. M7 I

nvram是我们设置的配置信息,比如我们设置无线路由器的pppoe参数、无线加密密码等等,就是保存在nvram里面,它就是一个设置参数的总览,调用nvram就可以看到全部的设置信息。所谓清空设置恢复到出厂值,就是清除nvram,然后cfe会在重启的时候自动建立出厂值的nvram参数。

 

搞清楚了三个部分的功能,一些问题就好解决了。0 Q2 u+ m$ {5 D5 D4 W1 A, f

1 ]# e  U5 P+ Z

1,是jtag。无论是jtag还是ejtag,它仅仅是一个工具程序,目的是用来重写flashrom。由于jtag的接口限制了传输速率,通常我们只写flashrom的cfe部分,让它来引导无线路由器工作,然后利用cfe启动检测kernel无效就等待的过程,采用tftp上传整个固件文件到flashrom,达到重写固件的目的。

2,对比kernel,改写固件。比如同样硬件配置的机器,其cfe就可以通用,性能的差异就在于kernel部分了,我们就可以通过移植较好性能的kernel部分来达到改变整个固件的目的。比如电信配送的很多无线一体机,配饰很多都完全一样,但界面和功能都不通,就可以采用这种方法来增强性能。

3,对于cfe完好的机器,也可以通过ttl线来写入固件,因为有一些机器是不支持tftp的。

真TMD累

一个项目还没搞定,老大又塞一个项目给我,真是要命。

之前山寨机的终端客户在深圳,终端客户不喜欢两个两频,因为这样需要开两套模具,山寨客户嘛,当然不乐意花这个钱,指定必须做四频。但是性能就得打折扣了。

其实四频相当难做,前壳纯金属,电池盖也是金属,speaker巨大,占三分之一的机身,真不知道如此山寨的手机卖给谁用。

四频调试问题不大,带宽都OK,可惜850三个信道都有相差频差,几乎无法联机,想尽办法做环境处理,总算基本消除频差和相差。

另一个项目,900/1800/TD-SCDMA三频,TD频段2010-2025MHZ,要求TD效率也在40%以上,还真有点难度。

调了一下,900/1800基本搞定,TD不好搞,估计这周又有的加班了。