WAP手机网站 手机下载 手机软件 手机游戏 手机网游 手机主题 手机图片 手机铃声 手机世界微博
手机游戏攻略

指针调用内容时需加入增量的原因

scorpiorick YOUNET 2004-9-22

    手机内部的存储空间是连续的,几乎所有的信息,包括铃声,图片,甚至内置铃声和动画待机图的名称,都是用指针来实现调用的。我们备份文件的时候,按地址以此导出bin1,ogm1,bin2,ogm2,这四个文件的地址是连续的,导出文件时需指定地址,分别是:
    BIN1:000000--6FFFFF
    OGM1:700000--7FFFFF
    BIN2:800000--C6FFFF
    OGM2:C70000--最后
    我们发现,前一个文件的末地址,经过十六进制+1之后,就是下一个文件的首地址,由此不难得出,四个文件合起来就是手机内部整个连续的存储空间。
    这就很容易解释调用bin1,ogm1,bin2,ogm2中内容的指针相对被调用内容的地址(此处“地址”指用winhex之类的十六进制编辑器打开四个文件之一时所看到的地址)分别需要加入0,700000,800000,C70000的增量了。因为我们在用十六进制编辑器调用这四个文件的时候,四个文件的起始地址都是000000。所有文件内的地址,都是对于文件头的相对地址。对照备份四个文件时输入的四个首地址,很容易看出,用十六进制编辑器调用时的000000分别对应了bin1的000000,ogm1的700000,bin2的800000,ogm2的C70000。因此这四个文件内的地址在手机内的真实地址就应该是用十六进制编辑器打开时看到的地址,加上这个文件在手机内的首地址。简单说来,我们在PC上,用十六进制编辑器看到的是分别相对四个文件首地址的相对地址,而在手机内部真正实现调用的时候,需要使用到的是相对手机内部存储空间起始地址的相对地址,两个“相对地址”相对的000000并不一致。
    做过DIY版本的人都知道确定调用bin1,ogm1,bin2,ogm2这四个刷机文件中内容的指针时,该指针分别要加入0,700000,800000,C70000的增量,原因就在这里了。
举例来说,我们用十六进制编辑器看到一个图片或者铃声,又或者字串的地址是xxxxxx,那么如果它在bin1中,它在手机中的地址就是xxxxxx;如果它在ogm1中,那么它在手机中的地址就是xxxxxx+700000;如果它在bin2中,它在手机中的地址就是xxxxxx+800000;如果它在ogm2中,它在手机中的地址就是xxxxxx+C70000。指针所指向的,是内容在手机中的地址,这就是增量的由来了。
    如果把四个文件首尾相接,连接成一个文件,那么这个文件里面所有内容的地址就和它们在手机里面所占的地址完全一致,这时指针所指的地址,就是文件内的相对地址了,也不再存在增量的问题。当然,这么做比我们现在使用的加入增量来实现调用的方法更不方便,这样只是为了用一个文件来模拟手机内的信息存放,因为我认为,刷机文件分成四个部分来dump只是为了配合刷机软件downloader 3.2分四个文件刷入的模式,而刷入机器内部之后,四个文件其实就重新连接成了一个大文件。
                                                  20:36 2004-8-20


 

手机资讯


手机资讯
低端手机哪个好 1000元左右智能手机推荐
720P视频连播14小时 摩托罗拉XT910 MAXX评测
4.3英寸已成主流 超人气大屏手机推荐
经典游戏重现江湖 一周Android游戏推荐
电信定制售价1999元 HTC新渴望VC上市
三星五一全国促销 热门手机选购推荐
不抢风头不算好手机?HTC Titan II解析
1.4GHz四核+2050mAh 三星GALAXY SIII现身
拍出新花样 800万智能手机+拍照软件推荐
双核智能+投影 三星Galaxy Beam预售4350



手机资讯
更换铃声名称后指针的修改方法
如何鉴别、选购S508座充(续二、图)
何谓经典
本人首次刷机记录
三星S508的测温功能
经典翻盖 三星S508特价不到1500元
爱机故障不要急~小S死里逃生记
也谈小S的死机重启
一毛钱的DIY
小S的晚年常见问题
手机论坛


  诺基亚手机 苹果手机 HTC手机 三星手机 摩托罗拉手机 索爱手机