因为要装中文字体和Tomtom,就想把pagepool稍微调大一点(从前用WM6.1的时候是调成了32MB)。结果发现这个ROM的pagepool设置不对。随package跟的pagepool changer也不能正确设置pagepool,它误报20MB的pagepool,实际上是24MB。正如我所料这个坊间广泛流传的pagepool changer可能从WM6.1以来就没有work过。
现在简单总结一下正确的设置方法,记录下来做个备忘录。基本方法参见 http://forum.ppcgeeks.com/showthread.php?t=43110 这个帖子是WM6.1的,到了WM 6.5要稍微变一下。经过实验,结果如下:
1. 解开压缩包的RUU_signed.nbh文件,用hex editor搜索如下字段。其实搜索a0开始10个byte应该就可以了。
18 16 a0 03 06 16 a0 13 00 10 83 e5 8b bb ff eb
前两位是pagepool的大小,18 16是24MB。 以下摘抄自ppcgeeks tsab的帖子:
03 15 - Sprint Diamond WM 6.1 stock rom (1.09) default; 12MB dynamic (When viewed under Settings -> System -> Memory, you should have around 203.84MB of Total Program memory available.)
02 15 - 8MB dynamic
01 15 - 4MB dynamic
18 16 - 24MB static (should give you around 191.84MB Total Program memory)
10 16 - 16MB static (should give you around 199.84MB Total Program memory)
[PAGEPOOL EXPLANATIONS AND CALCULATIONS]
"XX 15" pagepools are dynamic based (first byte value multiplied by 4 to determine pagepool size)
"XX 16" pagepools are static based (first byte value multiplied by 1 to determine pagepool size)
03 15 = 0x03 * 0x400000=0xC00000=decimal 12582912 bytes = 12 MB dynamic pagepool
02 15 = 0x02 * 0x400000=0x800000=decimal 8388608 bytes = 8 MB dynamic pagepool
18 15 = 0x18 * 0x400000=0x6000000=decimal 100663296 bytes = 96 MB dynamic pagepool
18 16 = 0x18 * 0x100000=0x1800000=decimal 25165824 bytes = 24 MB static pagepool
10 16 = 0x10 * 0x100000=0x1000000=decimal 16777216 bytes = 16 MB static pagepool
20 16 = 0X20 * 0x100000=0x2000000=decimal 33554432 bytes = 32 MB static pagepool
02 15 - 8MB dynamic
01 15 - 4MB dynamic
18 16 - 24MB static (should give you around 191.84MB Total Program memory)
10 16 - 16MB static (should give you around 199.84MB Total Program memory)
[PAGEPOOL EXPLANATIONS AND CALCULATIONS]
"XX 15" pagepools are dynamic based (first byte value multiplied by 4 to determine pagepool size)
"XX 16" pagepools are static based (first byte value multiplied by 1 to determine pagepool size)
03 15 = 0x03 * 0x400000=0xC00000=decimal 12582912 bytes = 12 MB dynamic pagepool
02 15 = 0x02 * 0x400000=0x800000=decimal 8388608 bytes = 8 MB dynamic pagepool
18 15 = 0x18 * 0x400000=0x6000000=decimal 100663296 bytes = 96 MB dynamic pagepool
18 16 = 0x18 * 0x100000=0x1800000=decimal 25165824 bytes = 24 MB static pagepool
10 16 = 0x10 * 0x100000=0x1000000=decimal 16777216 bytes = 16 MB static pagepool
20 16 = 0X20 * 0x100000=0x2000000=decimal 33554432 bytes = 32 MB static pagepool
2. 用hex editor把上述字段改成
20 16 a0 03 06 16 a0 13 00 10 83 e5 8b bb ff eb
3. 存盘重新刷ROM。开机剩余内存从104.75MB降低到97MB,少了大约8MB,正好是原来24MB pagepool到新32MB pagepool的差值。修改完毕,收工。
顺便说一句,Juicy, OMJ这些刷机cook ROM鼎鼎有名的人始终都整不明白pagepool怎么设,ROM cooker和他们cook的ROM质量实在让人担心。多数人估计就是浪费时间抓一堆dll凑来凑去。。。
No comments:
Post a Comment