Creating custom ROM image - MDA, XDA, 1010 Software Upgrading

Hey,
Thanks for creating xda-developers edition rom image. I just installed it on my t-mobile xda and it rocks. I would like to create my own rom image and have couple of questions.
I downloaded and installed mkrom tools and was able to compile new rom. I looked through the readme file, cfg files and file1 and file2 directory and was trying to see how u put ezwap2 in there. I found references to it in the default.reg file as well as the init* file. However I was unable to find ezwap2.exe in files1 and files2 directory of the mkrom. am i missing something?
Also I'm trying to install a registered copy of pocketbackup into the ROM image and was wondering if anybody has done it so i can see the example of how to do it?
What tools do u use to open the .cab files to see what's inside on the windows side not pocketpc side?
How do u check what changed on the pocketpc?
Is it possible to use the emulator for testing or does it have to be tested on regular device? i'm not talking about the ROM image itself but all the work before creating the image (like inserting files, registry entries, etc.)
Thanks for info,
alex

you can extract the ezwap files from an original o2 rom, by running
Code:
perl opimg2dir.pl NK.nbf newop.cfg newop
( newop must be an existing directory )
then copy the ezwap files manually to either files1, or files2
you can open .cab files using winrar. the filenames will appear corrupted, but usually one of the files will contain the original filenames if you look at it with a hexeditor.
to view changed, we use 'ssnap.exe', to take snapshots of file and registry state. and compare the snapshots using diff, or windiff, or vim.
if you are creating an image for an ARM based device, it wont run on the emulator.

thank you for replying. so ezwap2.exe was a part of the O2 rom that's why it doesn't appear in the files2 directory of mkrom package. is it possible to use mkrom with At&t or T-mobile roms?
also i noticed when i activate my phone part and dial a number it appears as a string xxxxxxxxxx, when i was running my T-mobile rom it would dial as (xxx) xxx-xxxx . is it possible to change phone application in ur rom to behave same way as my t-mobile did?
one more thing, can i install applications into program files from files1 or files2 directories or do they only go into windows directory?
alex

Anonymous said:
also i noticed when i activate my phone part and dial a number it appears as a string xxxxxxxxxx, when i was running my T-mobile rom it would dial as (xxx) xxx-xxxx . is it possible to change phone application in ur rom to behave same way as my t-mobile did
Click to expand...
Click to collapse
If you set the country code to '1', you should see the number in US format again. It's in the registry:
Code:
[HKEY_CURRENT_USER\ControlPanel\Phone]
"CountryCode"=dword:00000000

thanks for a quick reply.
I just changed the value in the registry to '1' and rebooted my xda. when i dial the numbers they still appear as xxxxxxxxxx instead of (xxx) xxx-xxxx. did i miss something?
thanks
alex

hi,
i ran the command that u posted earlier to extract the rom image
perl opimg2dir.pl NK.nbf newop.cfg newop
and i got this in return.
the newop directory i created was empty.
[[email protected] xda]# perl opimg2dir.pl NK.nbf newop.cfg newop
found at 01bc0000
hdr: 00000000 00000000 00000000
Image that i'm using is the one that was posted in the forums. xda-developers special rom created by Jeff Summers
any help is apreciated
thanks
alex

this is what should happen:
Code:
D:\Program Files\PROGRAMME A\english>mkdir y
D:\Program Files\PROGRAMME A\english>perl c:opimg2dir.pl nk.nbf x y
found at 01940020
hdr: 34798243 00001001 00000000
00000000 4 0 \windows\customid.dat
00000004 185 0 \windows\customtab.dat
000000bd 5355 20404 \windows\platformxxx.reg
000015a8 5502 20408 \windows\platformxxx.reg
00002b26 16884 20412 \windows\platformxxx.reg
00006d1a 21592 23410 \windows\platformxxx.reg
0000c172 129182 23410 \Windows\Startup\O2 smart Menu Light.PPC_2577.CAB
0002ba10 21562 2620739 \windows\platformxxx.reg
00030e4a 21584 27202 \windows\platformxxx.reg
0003629a 21624 2620749 \windows\platformxxx.reg
0003b712 1028 23458 \windows\platformxxx.reg
D:\Program Files\PROGRAMME A\english>dir x
Volume in drive D is mp3 archive
Volume Serial Number is 1C47-DE32
Directory of D:\Program Files\PROGRAMME A\english
2003-06-16 07:36 583 x
1 File(s) 583 bytes
0 Dir(s) 4,202,954,752 bytes free
D:\Program Files\PROGRAMME A\english>dir y
Volume in drive D is mp3 archive
Volume Serial Number is 1C47-DE32
Directory of D:\Program Files\PROGRAMME A\english\y
2003-06-16 07:36 <DIR> .
2003-06-16 07:36 <DIR> ..
2003-06-16 07:36 5,355 20404-platformxxx.reg
2003-06-16 07:36 5,502 20408-platformxxx.reg
2003-06-16 07:36 16,884 20412-platformxxx.reg
2003-06-16 07:36 129,182 23410-O2 smart Menu Light.PPC_2577.CAB
2003-06-16 07:36 21,592 23410-platformxxx.reg
2003-06-16 07:36 1,028 23458-platformxxx.reg
2003-06-16 07:36 21,562 2620739-platformxxx.reg
2003-06-16 07:36 21,624 2620749-platformxxx.reg
2003-06-16 07:36 21,584 27202-platformxxx.reg
2003-06-16 07:36 4 customid.dat
2003-06-16 07:36 185 customtab.dat
11 File(s) 244,502 bytes
2 Dir(s) 4,202,819,584 bytes free
D:\Program Files\PROGRAMME A\english>

Still not working for me. i keep getting the same error message i was before. are u running this under windows? activeperl?
opimg2dir.pl nk.nbf x y
what's the x for?
thanks
alex

i just tried extracting the NK.nbf file on a different PC and had the same problem as before.
found at 01bc0000
hdr: 00000000 00000000 00000000
I'm using the NK.nbf file from Jeff's download of the already compiled image. is this ok or should i use original rom image?
also i noticed on ur code is the reference to x or (newop.cfg) should that file contain anything in it?
thanks
alex

help requested.
XDA developer Itsme,
i'm little confused as to the proper way of adding applications to the ROM.
do u have an example or steps needed to insert a program. I tried following the readme file but got little confused. i tried to update the ezwap application to version 2.5 and basically i couldn't find ezwap.exe in files1 and files2. is the mkrom.zip file contain everything needed for the rom? does the rom itself has the ezwap in it? let me see if i got this right:
1) add files to files1 or files2 directory. any registry entries created by the application should go into default.reg?
is it possible to copy the files to program files directory or do they only go into \windows?
thanks for the help
alex

Related

mkrom: make your own ROM for your device

Using 'mkrom', you can create your own ROM, including your own files, using a new boot splash image, changing cold-boot registry settings to match your own taste.
Click here
Thanks for your work
Peter Poelman said:
Using 'mkrom', you can create your own ROM, including your own files
Click to expand...
Click to collapse
Can this be used to add files to a WM2003 ROM ?? Or is it very version specific. Are there tools to split out the contents of a WM2003 ROM yet ?
working on it.
dumprom can extract files from 4.x roms with the '-4' commandline option.
i tried running dumprom with -4 option and nothing is extracted for some reason.
is this the right command? dumprom nk.nbf -4 files >nkinfo.txt ?
thanks
alex
XDA developer Itsme said:
working on it.
dumprom can extract files from 4.x roms with the '-4' commandline option.
Click to expand...
Click to collapse
OK, any doc's in progress - is the ROM image well documented somewhere on the web ? Just downloaded the SDK from MS ...
A Little help please? I think I'm close to getting mkrom to work for me.
Here's the output for my mkrom command (the result is the same if I use my Nb1 or Nbf)
$ ./mkrom.sh test.nb1
write xip block starting at 81800000, with 13 files
write xip block starting at 819c0000, with 198 files
./mkrom.sh: line 69: file: command not found
316+0 records in
316+0 records out
013c0000 added mainrom
0+1 records in
1+0 records out
013d0000 added xipchain
60+0 records in
60+0 records out
017c0000 added MISC
14+1 records in
15+0 records out
018b0000 added xda1
153600+0 records in
2+1 records out
018e5800 added bitmap
1+1 records in
2+0 records out
01980000 added operator rom
16+1 records in
17+0 records out
01dc0000 added xda2
0+0 records in
0+0 records out
01ec0000 added end
rommap: 80000000-80040000, 80040000-81f00000
80000000 - 80040000 -- bootloaer 0 files 1 modules
80040000 - 8015df08 -- kernel 5 files 5 modules
80180000 - 80376ef0 -- kernel 10 files 14 modules
80380000 - 8064306c -- kernel 20 files 36 modules
80670000 - 80be66a8 -- kernel 107 files 88 modules
80c00000 - 8102ce98 -- kernel 11 files 36 modules
81050000 - 813ef114 -- kernel 95 files 44 modules
81400000 - 814019a4 -- xip chain 10 xip entries
815f0000 - 8171bc7c -- kernel 56 files 19 modules
81800000 - 818e0c14 10 XDA_DEVELOPERS1 13 files 0 modules
81900000 - 81925800 -- bitmap : 424d4858 .. f9fff9ff
81940000 - 8198b6e5 -- operator rom 20 files
819c0000 - 81de4928 11 XDA_DEVELOPERS2 198 files 0 modules
e59d3134 - e5933004 -- kernel -509550577 files -44373180
0 modules
[email protected] /cygdrive/c/perl/bin
$
It loks like there;s one error at line 69? What is that?
The process actually produces an nb1 and nbf file. When I upload the nb1 to my sd card with xdatools then into the xda it all looks good until the cold reboot. Then it comes up with a black screen(not the default xda boot.img) with the 4.00.21 and right radio stack version in the bottom right corner. It never gets past that. I upload my backup 4.00.16 and all is back to normal.
I think I'm on the brink of getting the mkrom to work. Does anybody have any suggestions? Thanks - Jim
Well, I got it to work for a 3,17 ROM now I'm looking fopr advice on the 4.x ROms. Here's the link to my post. Thanks - Jim
http://forum.xda-developers.com/viewtopic.php?t=4450&highlight=mkrom+sh
it is advisable to use a more recent version of mkrom, which can be found at http://www.xs4all.nl/~itsme/projects/xda/romtools.html
Thanks for the pointer. I'm using the scripts from there now and having a few problems. The splitrom.pl is finding an overlap in it's checkforoverlap subroutine and exiting at that point.
I kow that could be any of a thousand things but is there any one or two things it's more likely to be? Thanks - Jim
you should be able to see from the output what memory ranges overlap.
most likely it is the operator rom, or the bootsplash image.
you have to put the correct parameters in the params file.
kalex said:
is this the right command? dumprom nk.nbf -4 files >nkinfo.txt ?
Click to expand...
Click to collapse
Not with the versions I am using. Use this:
dumprom nk.nbf -4 -d files >nkinfo.txt
LD
I just can not get the default.fdf right.
I used dumprom on 4.00.xx rom. tried 05 11 16 21.
1. download the latest dumprom
2. used -4 option
3. tried both on windows and linux
but the extracted default.fdf is only about 17k large which is not right.
any hint here?
well, itsme pointed out the default.fdf should be about 17k large.. However, still get into trouble.
downloaded the romtool, use 4.00.11 rom image. followed the instruction. I could cook up a good rom without putting any files in the "files" directory. xda works fine
however, when I put in about 3M files in "files" directory. all the rest not modified, XDA won't boot up with the cooked rom. froze at the screen shows the image and the rom version and radio stack version number.
I got from the kitchen that I can put 3906k files inside this rom. is that right?
pine said:
I got from the kitchen that I can put 3906k files inside this rom. is that right?
Click to expand...
Click to collapse
This depends on the settings for mkrom.
What settings do you use?
Stefan
what kind of setting? I assume the params file
I used
wincever=4
start1=81740000
size1=00040000
start2=81b00000
size2=003c0000
startbmp=81ec0000
startop=81b00000
otherwise, I don't remember there is any place for setting. I used 4.00.11 rom, which i suppose does not include the t-mobile stuff
Hi all (sorry for my english)... First post
I dont want to seem stupid but I want to know thomething...
I've got a SPV 1G and want to know if there is also a ROMCoocker (mkrom) for Smartphone (WinCE 2k2/2k3) devices ?
Thx for your participation
Sidarus
Ping? :mrgreen:
create or rename into my own extended rom version name.. hel
can any1 help me how to create own version name for my own cooked rom? tnx! id like to customize my version into my own numbers.. tnx!
hi i have tryed to get the rom to work but just need to first 3 steps to get me on the right path :? thanks guys

use mkrom to cook 4.00.xx rom, a tutorial and bug report

Spent a lot of time on it, trying to figure out what went wrong with mkrom when cooking 4.00.xx roms. finally figured it, well, almostly. here is a short step by step tutorial for people who do not want to set up the complicated kitchen but wish to use mkrom as in the good old 3.17 time.
I assume you already know the rom flush process already, if given a NBF file. also you need a linux box with perl.
I know quite a few people struggled and have not had a clue. and I believe there is some bugs in the mkrom package that gives the trouble.
1. download the newest mkrom from http://xda-developers.com/~itsme/download/mkrom_136.zip. this is the only piece of software you would need.
2. unpack it to, say mkrom, directory. then make directories cfg
3. get hold of a copy of rom file and its corresponding paramter files. the parameter files can be obtained from the demo kitch download ftp://kitchen:[email protected]/data look inside the "00_base ROM" and the parameter files should be under cfg directory of each rom directory. bascially the parameter files tells mkrom, where to start to put added files and how large space there is. there are two blocks of space that can be used. so the file has format
wincever=4
start1=81740000
size1=00040000
start2=81b00000
size2=003c0000
startbmp=81ec0000
startop=81b00000
the first three lines are same for all 4.00.xx roms, start2 varies for different roms, startbmp is also the same for all roms. startop should be the same as start2. size2 will be startbmp-start2, remember they are all in hex. you can calculate how large space there is once you get hold of the start2 parameter.
anyway, put the parameter files under the mkrom/cfg directory, with name "params"
4. copy a rom file (.nbf), say rom.nbf, into mkrom directory and run "./setup rom.nbf". this will creates several files under cfg.
5. mkdir a directory mkrom/romfile, enter it and make another directory file , then type "../dumprom ../cfg/rom.nb1 -4 -d file"
here comes the first bug. the setup.sh tells you that dumprom can only be used in windows box. but in fact, there is a compiled dumprom for linux in the directory (you might need to set it to be executable though). however, this linux version does not put extracted files into the "file" directory as it is supposed to, instead it just write file as "file\xxx" where xxx is the actual file name extracted from rom. it is a bug but as long as we know it, not a big deal. the is someone posted a correct version of dumprom in this forum though.
6. you should be able to find three files (or with the "file\" prefix added) with name default.fdf initobj.dat initdb.ini. these are the three files that needs to be process as indicated by setup.sh. follow the instruction to create the default.reg initobj.txt initdb.ini and copy them to cfg directory.
7. make a directory mkdir/files. you are ready to create a clean rom now by running "./mkrom output.nbf", the created output.nbf should be fine.
So far so good, followed the instruction of mkrom. next would need to add our files. then comes the problem. if you add files into the mkrom/files directory, and run "./mkrom output.nbf" again, it is almost definitely that the created rom is bad. I am not 100% sure why, but here is what I believe:
the mkrom script scan files in the "files" directory and put files in there into the "files1", "files2" directory, each of them is supposed to fill the two space in rom starting from "start1" and "start2" in parameter file. the size of files under "file1" should be less than "size1", similar "files2" and 'size2". when mkrom does this, it is highly possible that the three critial files "default.fdf, initobj.dat, initdb.ini" are placed into "files2" directory instead of "files1" directory and renders the rom bad.
here is what I did
edit the mkrom.sh, delete the line that splits files in "files" into "files1, files2" directory. change the three lines that convert the three critial files so that these three files are created in "files1" directory instead of "files" directory. then put your files into "files1" and "files2". just be careful, keep the size less than specified by "size1" and "size2".
then you can run "./mkrom.sh output.nbf" as before, and the resulted rom will be good.
hope this helps. however still a couple of problems
1. the fdf2reg.pl won't recoganize the default.fdf extracted from 4.00.21 rom or 4.01.00 rom
2. if i change the content of initobj.txt, the created rom won't boot. I might have done something wrong in initobj.txt though. but I used to be able to do this for 3.17 rom
3. I did not try to modify registry, as my only purpose is to put my files into ROM to save space. all registry can be done later by installing the software and choose not to overwrite existing files in ROM. must simpler.
the unix version of dumprom does not decompress files, that is why your default.fdf etc seem corrupted.
this is because I only have the decompression code in the form of a binary library, which I have not figured out how to link to under linux.
the only use of dumprom under unix is to find the offsets in rom where filepointers to default.fdf etc should be patched.
I should maybe disable the '-f' option in dumprom for the unix version, to make things less confusing.
but it looks to me that the dumprom under linux worked for pre- 4.00.16 rom. only not for after 4.00.21 roms. so are they different?
maybe the default.fdf was not compressed in the 3.x roms?
I am quite sure it does not work for compressed files under linux - I just did not implement the compression routines.
dumprom worked with 4.00.05 4.00.11 4.00.16 roms. I cooked 4.00.11 and 4.00.16 roms, and the rom was fine. I never used windows box during the process. only when i tried 4.00.21 and 4.01.00, there was error. anyway, i don't care, since I need as much rom as possible and 4.00.11 seems to be the best choice for me.
thanks for writting mkrom, a terrific tool. I don't like the way xda-developers.com promoting kitchen but not mkrom. mkrom is much simpler to setup and run, as long as you know about linux. the kitchen is much more complicated to get it to work and most people don't actually need such flexibility I believe.
ok i installed cygiwin and was with u till step 5, then i am lost.. when i run step 6 dumprom (in DOS) gives me an ewrror here atr the first few lines from dumprom( wiht latest ATT official release)
img 00000000 : hdr=8c0a1000 base=8c078000 commandlineoffset=8c077fe0
img 00040000 : hdr=800cdde0 base=80000000 commandlineoffset=7fffffe0
img 00180000 : hdr=8024db88 base=80000000 commandlineoffset=7fffffe0
img 00380000 : hdr=8039b334 base=80000000 commandlineoffset=7fffffe0
img 00670000 : hdr=80be2c40 base=80000000 commandlineoffset=7fffffe0
img 00c00000 : hdr=80e99400 base=80000000 commandlineoffset=7fffffe0
img 01050000 : hdr=813efc74 base=80000000 commandlineoffset=7fffffe0
img 01400000 : hdr=815d2ba4 base=80000000 commandlineoffset=7fffffe0
img 015f0000 : hdr=815f0650 base=80000000 commandlineoffset=7fffffe0
img 017c0000 : hdr=81bba0a4 base=80000000 commandlineoffset=7fffffe0
ERROR: could not find pointer for ofs 8c0a1000
invalid romhdr ofs 8c0a1000
ERROR: could not find pointer for ofs 00000000
7fffffe0 - 80000000 L00000020 unknown 30315750 452d3142 412d474e 2d30332e 2d353030 62373239 2d2d2d2d 2d2d2d2d
80000000 - 80000004 L00000004 romsection id=ea0003fe
80000004 - 80000040 L0000003c NUL
80000040 - 80000048 L00000008 'ECEC' -> 8c0a1000
errorsgalore...
so help me here how do i make sure the files extracted are all good also the size (as per ) windows explorer is 33+ not sure how all has been installed in the 32mb rom
did you get default.fdf initobj.dat initdb.ini out of dumprom. dumprom also reported tons of errors but as long as you get the three files out, it is ok.
Dumprom tries to figure out for each byte in the rom what it does. If it doesn't know it says 'unknown' this is not an error, just that dumprom could not determine the use of this byte. The 'could not find 00000000' message means that it encountered a NULL pointer somewhere in rom where it did not expect it, the other one is a pointer to RAM, which dumprom does not know exists. You can safely ignore these errors.
Dumprom was initially written to assist in figuring out what I did not know about the rom, so it tries to figure out stuff that is unknown. Later I added the code to extract files to it. Maybe I should split dumprom in one research tool, to do a detail examination of the rom, and one tool to only extract files.
Most files in rom are compressed, that is why they are more than 33M when uncompressed.
ok i understande the messages...
now here is what i did
ran ssnap and got a picture of the OS and did a compare and have a list of entries i want to add to registru and a folder with bunch of subfolders that need to be added on install
not sure how step 6 goes.. to convert the files to .reg and .txt and how/where do i add my files and registry entries....
any tips...
update...
i did fdf2reg and made a .reg file added my entries in there and then ran reg2fdf to recreatre the fdf...
i hope this is right now i need to fig out how to specify where the files i want added are to be copied i mean some go into windows some in new filders that need to be created...
plz tell me how to go forward.
you don't need to re-create the fdf file again, mkrom does it for you, you only need to take care of the default.reg file under cfg
I am not sure whether you can put files under directories other than \windows only. I did not try that. I suppose all files under /files1 and /files2 go to \windows directory just they happen to locate in different memory location in ROM

config commands

hi to all
I managed to open the extended rom on my iMate using exteded rom tools
I even added files (*.CAB) in it and added them into the config file to install them automatically each time I make a hard reset.
My problem now is this:
I have a file that I copied into extended rom and I want it to be copied to (let us say) "\windows\" directory. Is there such a copy command in config file that i can add it to the command lines in config file? And if so what is the correct syntax
Thanks
there is.
Search in the forum.
It is smt like
CPY1: on one line indicating source
CPY2: on next line indicating target
Why dont you make a CAB file in which you can do whatever you want?
Nice thing of a CAB file is that the action will be registered (as an installed program!)
do you mean like :
cpy1: \extended_rom\kk.exe
cpy2: \windows\
to move the file kk.exe from the extended rom directory to the windows directory
and how can i read about making cab files and with which program
I have been using Win CE cab manager to make cabs, it's a great program, but the trial will only run 10 times.
http://www.ocpsoftware.com/products.php?nm=cecabmgr
andit is too expensive for me to buy... ($146)
So I have been using it sparingly to save my free goes.
to move the file kk.exe from the extended rom directory to the windows directory will look like this
cpy1: \extended_rom\kk.exe
cpy2: \windows\kk.exe
did not work
hi
i have tried the command cpy1, cpy2 to copy files within extended rom, but the files were not copied, do you have any idea why?
i am sure that i typed the path and the filename correct
thanks

dump universal WM 2005 rom

Hi!
I used tool and instruction at Mr Buzz's website http://buzzdev.net/index.php?option=com_content&task=view&id=65&Itemid=1 to change Nk.nbf(WM 2005 rom for Uni) to Fat 16 Nk.nba.
This tool did well, but when I used dumprom.exe:
>dumprom.exe nk.nba -5 -d .
- to extract this nba file, It extracted only about 39 files such as:
device.exe
default.hv
imgfs.dll
mspart.dll
OEMExtDLL.dll
......
Great that these files were not corrupted, but I want all the files in rom , and it extracted only 39 files, pure!!!!
Can any one help ?

howto dump mxip_*.vol?

I need this files from the root of my running device (not windows folder)
mxip_lang.vol
mxip_notify.vol
mxip_system.vol
But I cant copy them!
Is there any way or tool to get them?
Try to dump the rom with This tool
but i don't know if the PE headers will be correct ...
hi TofClock,
this tool dumps only files in the Windows folder, but I need the files from the root.
This files are the databases of the system, the files in the windows folder are the templates for the first boot.
Also the content of the .dsm and .provxml files is writen to this databases (after first boot).
My idea is to use the finished database in a ROM and delete the .dsm files
i've just finished a dup with the tool , and in the "Files" , i've mxip_lang.vol , mxip_notify.vol and , mxip_system.vol
EDIT : **** , it should not work :/
Test that :
I've succefully copied , with built-in explorer :
- mxip_initdb.vol
- mxip_lang.vol
- mxip_system.vol
but i can't copy or rename mxip_notify.vol
does anyone how to edit those files (mostly mxip_lang.vol from /Storage folder) and how to replace them?
my phone always says that it is in use and i can not do anything with it
this is the last file I have to change to get my phone fully translated
With Sktools you can export metabases mxip_lang.vol into .xml files . Also SKtools has import function. But I don't understand how it is work. I tried to insert some new rows in metabase but sktools say: 0 records imported. May be anybody know how to import new record in metabase with sktools? Please, help me!
I successfully translate mxip_lang.vol !!! I used Sktools for dump this file. After that I translated all english records in to russian ( text file in unicode format). Then I have put DevPrepSP.exe utility ( with its configuration .xml file) and my .txt file in \Storage\MUI\ folder on my Qtek8310. I have started the DevPrepSP.exe and have added records in to mxip_lang.vol. It has worked!!!
My txt file has such format of records:
\MetabaseLabels
0#19#1;1049#31#Размер сист. шрифта:;
0#19#2;1049#31#Время нажатия:;
0#19#3;1049#31#Макет начального экрана:;
..................................................... ;

Categories

Resources