this is based on a 3.15.15 o2 rom.
range | size | used | free | contents |
---|---|---|---|---|
80000000-80040000 | 40000 | 28084 | 17f7c | the bootloader |
80040000-802c2000 | 282000 | 22a7a8 | 57858 | kernel |
802c2000-80580000 | 2be000 | 2bb330 | 2cd0 | OS |
80580000-80780000 | 200000 | 1da690 | 25970 | SHELL |
80780000-80a40000 | 2c0000 | 292aac | 2d554 | BROWSING |
80a40000-80dc0000 | 380000 | 34a33c | 35cc4 | COREAPPS |
80dc0000-80ec0000 | 100000 | fd6c8 | 2938 | SYNC |
80ec0000-81080000 | 1c0000 | 1788e0 | 47720 | 24MAPPS |
81080000-81400000 | 380000 | 2c8248 | b7db8 | 24MCONSUMER |
81400000-81440000 | 40000 | 1484 | 3eb7c | xipchain - public keys for updatexip.exe |
81440000-81900000 | 4c0000 | 3b0f24 | 10f0dc | MISC |
81900000-81940000 | 40000 | 25800 | 1a800 | bootup bitmap |
81940000-81e40000 | 500000 | 3339b2 | 1cc64e | autoconfig files |
81e40000-81f00000 | c0000 | c0000 | empty | |
81f00000-81f01000 | 1000 | 3b0 | c50 | saved contacts index |
81f01000-81f80000 | 7f000 | 4410 | 7abf0 | saved contacts |
81f80000-81f81000 | 1000 | 290 | d70 | saved registry index |
81f81000-81fc0000 | 3f000 | bf70 | 33090 | saved registry |
81fc0000-81fc1000 | 1000 | 810 | 7f0 | saved mail index |
81fc1000-82000000 | 3f000 | 3c740 | 28c0 | saved mail |
0000-0005 | 0000 0000 0000 |
0006 | flag ? |
0008+8*i | CEOID ( ce record object id ) |
000c+8*i | record length |
000e+8*i | flag? |
idc script to document contacts db layout:
// idx = entry index // base = pointer to index entry // ea = start of record // end = end of record // // returns real size of record. static MakeContactsEntry(idx, base, ea, end) { auto ofs, aLen; MakeUnknown(ea, end); ExtLinA(ea, 0, ""); ExtLinA(ea, 1, form("--- %3d %08lx %04x %04x", idx, Dword(base),Word(base+4),Word(base+6)) ); for (ofs= ea ; ofs < ea+6*4 ; ofs = ofs+4) MakeDword(ofs); SetLongPrm(INF_STRTYPE, ASCSTR_UNICODE); do { MakeStr(ofs, -1); aLen= ItemSize(ofs); if (aLen>2) ofs = ofs + aLen; } while (aLen>2); MakeDword(ofs); MakeDword(ofs+4); MakeDword(ofs+8); MakeDword(ofs+12); ofs= ofs+16; SetLongPrm(INF_STRTYPE, ASCSTR_LEN4); MakeStr(ofs,-1); aLen= ItemSize(ofs); if (aLen>1) { ofs= ofs+aLen; } else { MakeDword(ofs); ofs= ofs+4; } if (ofs&3) { MakeAlign(ofs,2,2); ofs= ofs+ItemSize(ofs); } return ofs-ea; }See dumprom for a tool to extract files from the rom. and romtools for a tool to create roms from a set of files.