Hi,
I've been cooking my own Roms for a few months and I'm happy with the results.
One big difference I've noted compared with shipped and other master cooks' roms is the first boot time. My last Rom (21683 + Sense) takes over 10min to boot the first time. After the fist boot, the booting time is normal.
Would you have some tips of how to improve it?
Can it be related to the order that the packages are cooked?
or just related to the size of the Rom (about 195 Mb for a Blackstone using LZX compression and CFC manila)?
what compresion do you normally use? LZX, XPR or none?
Anyway to 'slim' my packages more? (I'll try manual PNG compression on my next cook as OSkitchen PNG compression does not work for me)
Thanks in advance.
[Edit]: Thanks for your good advices. now my Blackstone Rom boots in less than 2 min. What I did was:
- Get ride off some provxml and change them for normal reg files.
- Reduce the size of the rom under 180 Mb.
- Manually reduce png and in some case replace by jpgs.
- S2U2 delay start 120 secs.
If someone have additional ideas, pls advise! I'll try!
Well, 195 mb for any LZX rom is a bit too much but this depends of what are you cooking into your rom.
Main things that slow down the boot up are:
provxml files, basically .reg files are much fastets.
Check your Config.txt file , as many files are you trying to install after first boot as ,many time it gets to boot up , these are cabs,mortscripts,provxml.
Dont use png compression if you dont want your theme ruined.
In my Leo i use both LZX and XPR and i have 134 and 158 mb roms.
Leave al the unecessary such default pictures in Album folder,some ringtones and wallpapers, these files are a lot bigs .
ypsmav said:
Hi,
I've been cooking my own Roms for a few months and I'm happy with the results.
One big difference I've noted compared with shipped and other master cooks' roms is the first boot time. My last Rom (21683 + Sense) takes over 10min to boot the first time. After the fist boot, the booting time is normal.
Would you have some tips of how to improve it?
Can it be related to the order that the packages are cooked?
or just related to the size of the Rom (about 195 Mb for a Blackstone using LZX compression and CFC manila)?
what compresion do you normally use? LZX, XPR or none?
Anyway to 'slim' my packages more? (I'll try manual PNG compression on my next cook as OSkitchen PNG compression does not work for me)
Thanks in advance.
Click to expand...
Click to collapse
Yup, provxml's slow things down a ton.
What not to do:
So, you have a reg setting that you put in an .rgu, but it never 'sticks', and you can't figure out why. Someone tells you to put it in a provxml named zzz-BandAid.provxml. Awesome, now the reg setting sticks.
Not so awesome. Now you have two provxml's that run during first boot, one that sets the reg setting to a default value, and a second that corrects the reg setting. XML's are slow (try running one during customization, and you can see just how slow they are).
What to do: Look through all of your provxmls; it's easy to do, just pull them out of the build dump. Find the ones that install reg keys-there are many, and some are huge (mostly the OEM provxml's). Just export the reg keys with a reg editor from your device and put them in an .rgu that gets compiled at the end of your build. Make whatever tweaks you want in that .rgu as well. Make sure you don't eff up the provxml's that install certificates and databases (there are a few that look like reg keys, but it's crap for the databases, so be careful of them). If you use Autorun during customization, there may be an oemprovxml with autorun reg keys in it. Leave that sucker alone; in my experience, it needs to run or else autorun didn't work (I don't use autorun anymore, so I've since deleted it). Put blank or editted (reduced) copies of the provxml's in a package that runs at the end of your build, so that the stock copies are over-written.
You should also look at the apps that run during startup. This slows down first boot a little bit. For instance, you really don't need to have MSVC to run at first boot. So, remove the line in initflashfiles.dat that sends the msvc shortcut into the startup folder. Figure out a way to get it into startup during second boot, like running a cab during customization (slow, though), or better, using a mortscript (fast). There's a lot of other crap that doesn't need to run, like tmail and poutlook (those never need to run at startup, imo). But you need to figure out how to get them to run after first boot, if that's what you want.
Finally, reduce the amount of crap that gets copied into \Program Files. Most apps run fine out of \windows, and using initflashfiles.dat to copy a ton of files is slow and it wastes memory. Just figure out how to make leaner packages. And don't use cab-2-oem converters. They always create packages that copy files out of rom into other directories, which is almost always unnecessary. It's much better to make packages manually (use kheb to find all the files and reg keys, if you can't do it on your own).
My first boot takes ~85 seconds to get to the alignment screen. Removing all the crap from provxml's saved around a minute on the first boot time. 10 minutes is crazy long, you should be able to drop it to 2 min, easy.
WOW
Farmer Ted said:
Yup, provxml's slow things down a ton.
What not to do:
So, you have a reg setting that you put in an .rgu, but it never 'sticks', and you can't figure out why. Someone tells you to put it in a provxml named zzz-BandAid.provxml. Awesome, now the reg setting sticks.
Not so awesome. Now you have two provxml's that run during first boot, one that sets the reg setting to a default value, and a second that corrects the reg setting. XML's are slow (try running one during customization, and you can see just how slow they are).
What to do: Look through all of your provxmls; it's easy to do, just pull them out of the build dump. Find the ones that install reg keys-there are many, and some are huge (mostly the OEM provxml's). Just export the reg keys with a reg editor from your device and put them in an .rgu that gets compiled at the end of your build. Make whatever tweaks you want in that .rgu as well. Make sure you don't eff up the provxml's that install certificates and databases (there are a few that look like reg keys, but it's crap for the databases, so be careful of them). If you use Autorun during customization, there may be an oemprovxml with autorun reg keys in it. Leave that sucker alone; in my experience, it needs to run or else autorun didn't work (I don't use autorun anymore, so I've since deleted it). Put blank or editted (reduced) copies of the provxml's in a package that runs at the end of your build, so that the stock copies are over-written.
You should also look at the apps that run during startup. This slows down first boot a little bit. For instance, you really don't need to have MSVC to run at first boot. So, remove the line in initflashfiles.dat that sends the msvc shortcut into the startup folder. Figure out a way to get it into startup during second boot, like running a cab during customization (slow, though), or better, using a mortscript (fast). There's a lot of other crap that doesn't need to run, like tmail and poutlook (those never need to run at startup, imo). But you need to figure out how to get them to run after first boot, if that's what you want.
Finally, reduce the amount of crap that gets copied into \Program Files. Most apps run fine out of \windows, and using initflashfiles.dat to copy a ton of files is slow and it wastes memory. Just figure out how to make leaner packages. And don't use cab-2-oem converters. They always create packages that copy files out of rom into other directories, which is almost always unnecessary. It's much better to make packages manually (use kheb to find all the files and reg keys, if you can't do it on your own).
My first boot takes ~85 seconds to get to the alignment screen. Removing all the crap from provxml's saved around a minute on the first boot time. 10 minutes is crazy long, you should be able to drop it to 2 min, easy.
Click to expand...
Click to collapse
Thanx for this tut Farmer Ted.
Seems like I also have a lot to do to speed up my first boot
Thanx
Grumps said:
Thanx for this tut Farmer Ted.
Seems like I also have a lot to do to speed up my first boot
Thanx
Click to expand...
Click to collapse
Also check the OEMLang directory for the initflashfiles.dat. Normally, this is 200kb... Mine is 40Kb, and first bootup on my HD2 is 20-30 seconds...
Later bootups are so fast that the HTC Quietly Brilliant animation stops at Brilli and boots the OS...
gotta love farmer teds his reps
i learn from almost every post he makes
think i need some things to be done in my rom to get a even faster boot time
edit: one question though
i just updated ervius kitchen to the latest and it has the future to make provxml files from reg files
if provxml makes the bootup slow wouldnt it be better to make it the other way arround?
all the provxml to reg(just asking as it could be handy for ervius to make it the other eay arround in the kitchen)
miniterror said:
all the provxml to reg
Click to expand...
Click to collapse
Hi,
I don't know if this helps, but there is a tool that you could use for converting some provxml to reg here. It was made for xml --> reg conversion but it is also useful for provxml files that contain "pure" registry settings.
Regards!
Sometimes I have taken the provxml and convert the registry portion to rgu file and delete it from the provxml. Now the provxml only has the file operation and certificate stuff in it.
The thing you have to be careful about is rgu happens early in the boot and provxml happens latter. I learned the hard way by not figuring out why my rgu tweak did not happen. It was another provxml that overwrote the reg settings. Once I found it and deleted those lines everything worked the way I wanted.
RoryB said:
Sometimes I have taken the provxml and convert the registry portion to rgu file and delete it from the provxml. Now the provxml only has the file operation and certificate stuff in it.
The thing you have to be careful about is rgu happens early in the boot and provxml happens latter. I learned the hard way by not figuring out why my rgu tweak did not happen. It was another provxml that overwrote the reg settings. Once I found it and deleted those lines everything worked the way I wanted.
Click to expand...
Click to collapse
For this, OSBuilder is the best. You can see the whole registry before you compile, and you can look up what file causes the changes. It really makes cooking a whole lot easier...
Great thread, thanks for the tips.
What I'm gowing to try is search all provxmls in my kitchen and convert them to one big reg.
Make a new EXT package and name it 'zzzSample' so I'm sure it overwrites all other regs.
If an error exist in the reg created by provxmltoreg the new integrity check in Oskitchen will point me to it so I can easy locate and fix.
After that I delete all provxmls.
But first a backup.
Cheers,
Leo
Edit; btw I think you need to take in consideration that some provxml's contain path which are language depended.
So here's my next tip, create a package which contain these regs in separate files.
zzzSample/
0409/app.reg
0413/app.reg
etc...
Farmer Ted said:
Yup, provxml's slow things down a ton.
Click to expand...
Click to collapse
Great info, just wondering should it be possible to build a rom and make a backup of the registry, once you have that backup, edit the backup and place it at the end of the kitchen and delete all the provxml-files.
I've recently tried to make a little application for converting provxml files to reg files.
Thanks to AlexVallat's XmlToReg this was possible and I'd like to share it with you guys. Still all the credits go to Alex!
It is supposed to handle all provxml files, meaning even those which have other entries along with registry entries.
The most important feature that I tried to implement is recursive conversion of provxml files in order to automatically do in a few seconds what Laurentius described here:
Laurentius26 said:
What I'm going to try is search all provxmls in my kitchen and convert them to one big reg.
Click to expand...
Click to collapse
Example :
To parse all provxml files inside OEM folder(and all included sub-folders) type in cmd prompt:
Code:
xml-2-reg_gui.exe r:OEM
When it's done, you'll get all the converted reg files in a subfolder where the application is placed.
If the provxml files had other entries along with registry entries, they will be left where they were but "reduced"(the registry entries will be removed).
If the provxml files didn't have any registry entries, they will be left where they were untouched.
If the provxml files had only registry entries they will be deleted after convertion.
Backing up of provxml files is done automatically.
So try it and see for yourself if it makes things easier or not...
Regards!
EDIT :
I've made a revised version of the tool which isn't based on AlexVallat's XmlToReg but does the same job plus the reverse here.
Related
I was hoping someone could help me out. I've been trying for a while to make a working OEM out of a few sense 2.5 cabs. At the moment I have 2 to choose from, one posted on modaco(thread http://www.modaco.com/content/i8000...07676/noobody-and-rapid-sense-2-5-rom-nxxje2/ and file link http://www.4shared.com/file/uV-HPoiM/nOObody__Rapid_Sense_252011_Rh.html) and http://www.freeza-inc.com/freezaROM/OEMCAB/fi. Sense - 2.5.2011.3030 for WM6.1 beta.cab(makes it easier, these cabs include full package, I've tried grabbing oem's from ppcKitchen with limited success). I was hoping someone could post a tutorial about converting cabs like such ^^ to an oem package for use with buildOS. Thanks in advance for any help.
This should help
http://forum.xda-developers.com/showthread.php?t=467842
When I use that tool the oem will build but not work. I've tried a few other tools but they also don't create working oems. cab2oem, oemizer etc.
I don't use sense, so haven't installed the cab, but here's how I make more complicated packages: Run sk tracker, and take a system snapshot. Install the cab, and run sk tracker again and take a second snapshot and compare the first two snapshots. Copy all new files to your oem (or EXT). Export all new reg keys to an app.reg or .rgu. My guess is that all the files go into \windows, so you won't need to deal with initflashes.txt files or app.dat files. You may need to get sense running (if it isn't running after the cab install). If you have to start it up (may require a soft reset), then run it and take a 3d snapshot. Compare shots 2 to 3-there could be a few new registry keys. Most are going to be in obvious places, like HKCU(or LM)\software\HTC\Manila, but you may have some certificates installed in odd places as well as random crap you'd never find without sk tracker in HKCR. You probably need all of these keys. The problem with just using an oem creator is that there may be reg keys installed by a setup.dll, or reg keys installed when the program first launches, and you'll miss these.
Remove any setup.dll from the package-it won't be needed. And since you're using buildos, I guess you'll need to create a .dsm (have fun with that-nicest thing about EVK is you don't need them). I guess there may be a startup shortcut, so you'll need the initflashfiles to get it in \windows\startup, unless you use an HKLM\init key to start sense up.
look at the main stickie or kitchen tools repository thread search for cab converter it works... but if your cab has a setup.dll will be hard you need to see whats inside of the setupdll and try to add that things to the OEM mannually like resources or regs
Hi all!
I searched a lot on that topic an coocked loads of roms (for XPERIA/Kovsky/Venus) for testing purpose...But I cannot find a solution for that.
All my recently cooked ROMS (several Builds) are missing root certificates, I only have each two from HTC and Sony Ericsson in Setings. What went Wrong? where to find them? I thought to have found them in the following provxml's which actually is not the case I found out... (see below)
<old> Here is my problem. Build 23541 is seemingly (at least for me) missing root certificates. I managed to figure out they are included in a provxml called mxip_wpc_3.provxml. So I copied that one from a official LEO ROM (Build 21***) and did not change anything. After flash I can find it located in \Windows\ but the certificates are not appearing in Settings.
Now I now that provxmls need to be in UTF-8 format and set to read only, hidden and system. That ist tha case with this specific file. So what's wrong? </old>
I hope that someone can help me with that topic cause I have no other idea now.
Thanks A lot guys!
Hilaireg put together a really good tutorial om provxml's. Look it up, it may help. And make sure NET CF is cooked in (just a guess).
I guess you don't have that provxml added to any of dsm files . Just use this tool and add it to any of dsm files.
http://forum.xda-developers.com/showthread.php?t=523139
You can also use xml parser to check if file is good, for example Serna Editor.
tomcug said:
I guess you don't have that provxml added to any of dsm files . Just use this tool and add it to any of dsm files.
http://forum.xda-developers.com/showthread.php?t=523139
You can also use xml parser to check if file is good, for example Serna Editor.
Click to expand...
Click to collapse
Do you happen to know if that is needed too with platformrebuilder?
I've never worked with it but my guess is that you won't have to manually add provxml to dsm files.
Farmer Ted said:
Hilaireg put together a really good tutorial om provxml's. Look it up, it may help. And make sure NET CF is cooked in (just a guess).
Click to expand...
Click to collapse
Must be talking about this thread: http://forum.xda-developers.com/showthread.php?t=519548 Found it, thanks, very interesting indeed...this one will go into my bookmarks
Anyway, as i just copied the files from a working ROM I don not think something is wrong with them...
tomcug said:
I guess you don't have that provxml added to any of dsm files . Just use this tool and add it to any of dsm files.
http://forum.xda-developers.com/showthread.php?t=523139
You can also use xml parser to check if file is good, for example Serna Editor.
Click to expand...
Click to collapse
Thnkas as well, Layout is probably good, as the are woring in that LEO ROM.
I will look a bit deeper in your link, this sounds like the right way.
Are there other sugestions?
tomcug said:
I guess you don't have that provxml added to any of dsm files . Just use this tool and add it to any of dsm files.
http://forum.xda-developers.com/showthread.php?t=523139
You can also use xml parser to check if file is good, for example Serna Editor.
Click to expand...
Click to collapse
Tryed that now...But it did not help! Considering the xml is good (as it is working in a leo ROM) what else opportunities are there?
EDIT: Tried to import the provxml's (mxip_wpc_2.provxml and mxip_wpc_3.provxml) using AdvancedConfig but with no luck. Wondering...
Rename the file ZZZmxip_wpc_3.provxml and try again. EVK processes .provxml files in alphabetical order. If a directory referenced in the above .provxml is not created by a previously processed .provxml, then the modifications will not be applied.
I guess you are referring to this thread: http://forum.xda-developers.com/showthread.php?t=707717
From what I understand (probably very little) your provxml got executet too early as one shortcut was not yet present in the startmenu, so it stopped, right? With my files they do not depend on other files / reg values as these are just certificates...anyway, lets see
I will do so now, but I also tried to build a clean (no EXT) ROM from 23563 Rollup thread by Da_G and had the same problem! This is starting to get starnge...Will report in about 30 mins.
EDIT: Renaming did not help. Starting to get frustrated...
EDIT2: Even converting that provxml to a cab did not work. Am I looking in the wrong place?
Yes that thread, some ppl said that you need to edit the OEMs dsm where you add the provxml and add the provxml into it, dunno if it works... another one is... when a provxml fails in a corrupted line the next lines dont be executed but the before lines were set... so maybe the dirty way can works for you... if not works... your provxml is wrong in that thread many ppl said something about using a tool to see if the provxml is ok try them too
the dirty way to make it is... ad the provxml lines in your provxml to any other provxm... remember to keep the same attributes in that provxml.
+ Que PPC said:
Yes that thread, some ppl said that you need to edit the OEMs dsm where you add the provxml and add the provxml into it, dunno if it works... another one is... when a provxml fails in a corrupted line the next lines dont be executed but the before lines were set... so maybe the dirty way can works for you... if not works... your provxml is wrong in that thread many ppl said something about using a tool to see if the provxml is ok try them too
the dirty way to make it is... ad the provxml lines in your provxml to any other provxm... remember to keep the same attributes in that provxml.
Click to expand...
Click to collapse
trying the dirty way now.
I checked the provxml using a provxml2cab converter which usualy gives an error on bad files. And I am using Notepad++ which makes chacking quite easy. Than again, it comes from a official ROM and was not modified...
EDIT: Nope, not included!
what does that provxml has inside? some icons arrangement? or shortcuts?
Root certificates. both are attached below.
Are you using oskitchen alpha? There have been some problems with provxml not running (hence the alpha) but alpha5 should be fine.
Not sure? Its the NewUI Version and one of the last ones with the old folder structure (I think 1.27 or so)
derliebewolf said:
Not sure? Its the NewUI Version and one of the last ones with the old folder structure (I think 1.27 or so)
Click to expand...
Click to collapse
It was a problem specific only to the 1.31 alphas. Make sure the provxml files have the three attributes set (hidden, read-only and system), that could be the cause of the issue.
I am pretty sure the attributes are stet as you say.
If dirty way doesn't work, then I'm pretty sure it's something wrong with provxml file.
derliebewolf said:
I am pretty sure the attributes are stet as you say.
Click to expand...
Click to collapse
The only real way to find out is to set oskitchen to stop before imgfs generation or setting LZX and going quickly in the platformrebuilder temp\dump folder while it's generating IMGFS and using the ATTRIB command on the files in the dump folder to see what attributes those end up with. If all those three attributes aren't set the files won't run.
I'm pretty sure I've had provxml file with no attributes and it worked perfectly, but maybe I'm wrong .
hey there,
i created an oem package which contains an dll file, one that exists also in the sys-folder as folder (contains imageinfo.bin and s000), when cooking with my kitchen buildos gives an error, something about that the expected file already exists as folder...
what can i do?
It's not a good idea to over-write a module; in fact, it's a bad idea, because it crashes most kitchens (buildos will crash every time).
1. Why are you trying to over-write a module with a file?
2. If you really want to do it, you need to remove the module from the sys directory. I'm not sure it's a good idea myself; you should at least convert the file to a module. If you don't know the difference between a file and a module, then you should search and find the answer. It's easy enough to do.
It would help a great deal when you start a topic if you give more information. What build are you using? What device? Most importantly, what module are you trying to replace?
Thanks Ted,
sorry for the small amount if informations. I'm using EXEcutor von pako777, it's kitchen tool for the omnia 2... almost, it dissambles the dump-file, then i can delete/add files and then it assembles it again... some kitchens i saw over here a really great, but the executor get the work done...
i found the informations, thanks for the hint i will now try reversmode.exe
right now i want to convert a taskbar.cab to an oem package and so i need to replace shellres.192.dll and some other files
I think that kheb 1.1 (search, it's easy to find) is the best way to make a package for your cab. Just run a snapshot, install the cab, then run another snapshot (+difference). Select the 'make an oem' function. It doesn't make a working oem, but it will dump the reg keys that you need, and collect all the files (I assume they'll all go to windows). It sounds like you're building the rom straight from a dump, and not with full packages? Then you'll need to just swap the new files in for any old ones (as well as add new ones), and figure out how to add the registry keys, if there are any. I guess you can use ceregeditor or something similar to import the keys into the default.hv. Convert files to modules, if that's how the dll's appear in the dump.
You have to be a little careful with an app like kheb (or sk tracker): it may dump out some extraneous files or reg keys, as changes occur all the time to a device's registry and file system. Make sure you separate the wheat from the chaff. It's best not to soft reset after the cab install, if you're prompted to do so. That creates a butt-load of random new reg values that are irrelevant. If any certificates are installed by the cab, you can probably ignore them.
Thanks again, but i used the package creator from ervius to convert the cab, converted the rgu to an provxml and the dll-files with reversmode and everything worked fine
but i will take a look onto kheb, sound promising when converting a cab with setup.dll
I tried to keep the title as descriptive and short as possible, I hope it makes sense
I picked up the kitchen of nhathoa (a retired Topaz cook) hoping to get it customized to make it exactly the way I want but I'm running into some issues.
Long story short, I'm using Ervius Visual Kitchen (1.8.2) and I noticed that the EXT packages I added end up leaving two copies of the files, a copy under \windows\ and another one in the places I specified using app.dat using:
Code:
Directory("\Program Files\bla\"):-File("bla.exe","\Windows\bla.exe")
Is there some way to get rid of the copy under \Windows\ ??
I know that I could simply leave everything there and discard the app.dat files but I would really prefer having everything organized properly (I have a bit of an OCD when it comes to organizing everything neatly ).
I'm pretty sure that this is a rather simple and noobish issue but I couldn't find anything relevant by searching and I took a look at some ext packages by various cooks and noticed the same behaviour.
MusikMonk said:
I tried to keep the title as descriptive and short as possible, I hope it makes sense
I picked up the kitchen of nhathoa (a retired Topaz cook) hoping to get it customized to make it exactly the way I want but I'm running into some issues.
Long story short, I'm using Ervius Visual Kitchen (1.8.2) and I noticed that the EXT packages I added end up leaving two copies of the files, a copy under \windows\ and another one in the places I specified using app.dat using:
Code:
Directory("\Program Files\bla\"):-File("bla.exe","\Windows\bla.exe")
Is there some way to get rid of the copy under \Windows\ ??
I know that I could simply leave everything there and discard the app.dat files but I would really prefer having everything organized properly (I have a bit of an OCD when it comes to organizing everything neatly ).
I'm pretty sure that this is a rather simple and noobish issue but I couldn't find anything relevant by searching and I took a look at some ext packages by various cooks and noticed the same behaviour.
Click to expand...
Click to collapse
No, it's call Read-Only-Memory (ROM) and is the reason you can hard-reset your phone. Every file you cook into the ROM is in \windows. Two ways I know of to reduce the amount of files would be to zip them and have a mortscript unzip them to the proper location during customization or cook in a cab containing all of the files and have it run during customization.
That makes a lot of sense, I really feel ashamed that I didn't figure it out earlier
EXT packages seemed easier than bothering to read about customization but I guess it's time to start reading about this kind of stuff.
Thread marked as solved.
Thanks for the quick reply!
Yup, files in rom are in rom forever, or until you flash again, lol. The trick is to just run bla.exe from \windows. I would say that 90% of the time, bla.exe runs just fine out of the windows directory (especially if it's the only file in the package). When people create cabs, they naturally install the app in \program files, but in general apps don't need to be in a specific folder. If there are other files present, usually an .exe will search within its own folder for those files. So, if you just cook everything straight into windows, you'll be good to go. It's easy enough to test: just move all the files from program files to windows after installing a cab, fix the shortcut in the start menu, and then try to run the app. It's always a good idea to do a soft reset and try again (found this out the hard way many times). The one thing you have to watch out for is settings files, like .dat files. These files frequently have to be archived (not read-only). Particularly with apps that use net 3.5, if there's a setting file that is read-only, the app won't boot and you'll get an error message. The fix is to name the file settings-1.txt (or whatever) and have an app.dat rename it to settings.txt (and keep it in \windows).
Also, remember to fix the shortcut path in the start menu, and examine the registry entries to see if there are any paths for files present-you may need to change them to point to \windows (this could also be true in settings files).
mwalt2 said:
No, it's call Read-Only-Memory (ROM) and is the reason you can hard-reset your phone. Every file you cook into the ROM is in \windows. Two ways I know of to reduce the amount of files would be to zip them and have a mortscript unzip them to the proper location during customization or cook in a cab containing all of the files and have it run during customization.
Click to expand...
Click to collapse
This actually made me think a little bit. When you think about read only, I always thing can't delete or overwrite. Obviously I can run a cab and replace a file that is located in the \Windows directory, that leads me to believe there is a way to delete a file or maybe even replaced with an empty file of the same name.
You can over-write a rom file, but the rom file is still there. The file system just flags it somehow or another and tells the device to ignore it and instead use the new file.
TMartin03 said:
This actually made me think a little bit. When you think about read only, I always thing can't delete or overwrite. Obviously I can run a cab and replace a file that is located in the \Windows directory, that leads me to believe there is a way to delete a file or maybe even replaced with an empty file of the same name.
Click to expand...
Click to collapse
The new file you copy over goes into the "user" partition of the file system and windows knows to use that file instead. Once you delete this newly copied file from \windows, the old one from the ROM will take its place back in the filesystem.
Farmer Ted said:
Yup, files in rom are in rom forever, or until you flash again, lol. The trick is to just run bla.exe from \windows. I would say that 90% of the time, bla.exe runs just fine out of the windows directory (especially if it's the only file in the package). When people create cabs, they naturally install the app in \program files, but in general apps don't need to be in a specific folder. If there are other files present, usually an .exe will search within its own folder for those files. So, if you just cook everything straight into windows, you'll be good to go. It's easy enough to test: just move all the files from program files to windows after installing a cab, fix the shortcut in the start menu, and then try to run the app. It's always a good idea to do a soft reset and try again (found this out the hard way many times). The one thing you have to watch out for is settings files, like .dat files. These files frequently have to be archived (not read-only). Particularly with apps that use net 3.5, if there's a setting file that is read-only, the app won't boot and you'll get an error message. The fix is to name the file settings-1.txt (or whatever) and have an app.dat rename it to settings.txt (and keep it in \windows).
Also, remember to fix the shortcut path in the start menu, and examine the registry entries to see if there are any paths for files present-you may need to change them to point to \windows (this could also be true in settings files).
Click to expand...
Click to collapse
First of all, a small question about the underlined part, just to make sure that I got it right: it won't be exactly a rename just a copy with a different name, correct?
Some of the apps I use need a specific directory structure for the resources and files they use, so just dumping them in one big folder won't work.
Another possible issue that I think I'll run into is having two files sharing a generic name (let's say settings.xml) while each belongs to a different app. I didn't personally encounter such a situation just yet but my packages are still a work in progress and I did see a post or two about this while searching.
I was still hoping there would be a simple way to arrange the files in folders while keeping them under \windows\ but I can't find such a method either. Doesn't seem like I have other options than to decided on a firstboot customization method: Runcc, autorun, xda_uc or something that I haven't read about yet...
"Runcc" is currently used in the base kitchen so that gives it an edge right now.
Edit:
Remembered that I had another question, and it's probably not worth a new thread.
I was looking at how to manually create .lnk files and I noticed something that I didn't understand and couldn't find info about.
For example:
Code:
21#"\Windows\MSDict.htm"
What exactly does the "21" refer to?? I tried changing it randomly to other values a couple of times and it didn't effect anything.
NRGZ28 said:
The new file you copy over goes into the "user" partition of the file system and windows knows to use that file instead. Once you delete this newly copied file from \windows, the old one from the ROM will take its place back in the filesystem.
Click to expand...
Click to collapse
Ok now that makes a lot of sense. I guess I'm just use to Android and being able to see that separate partition. Thanks for the explanation.
That sort of leaves me to another question. Can't someone develop a way to overwrite directly to the "system" partition? It would almost be like a root/superuser for WinMo.
Sent from my HTC Evo 4G!
MusikMonk said:
First of all, a small question about the underlined part, just to make sure that I got it right: it won't be exactly a rename just a copy with a different name, correct?
Click to expand...
Click to collapse
Yup, that's correct. Another approach is to take all similar files that go into windows and stick them in a zip file that unzips to the windows directory. I do that in a few cases (power radio comes to mind; it has an ini file). What I do in most cases though is use a backup/restore mortscript. The backup copies all settings files (and similar things) on my device to my sd card. During customization, the restore copies them back. It's convenient for apps where I change the settings a lot and I don't want to have to constantly fuss with the packages.
Some of the apps I use need a specific directory structure for the resources and files they use, so just dumping them in one big folder won't work.
Click to expand...
Click to collapse
What you do in that case is move the sub-folders into windows. In this case, I'll use a zip file to unzip those folders into windows. Using app.dat files to copy large numbers of files blows. It increases the rom file count as well as the storage used. A zip file is a single file, and usually it saves space.
Another possible issue that I think I'll run into is having two files sharing a generic name (let's say settings.xml) while each belongs to a different app. I didn't personally encounter such a situation just yet but my packages are still a work in progress and I did see a post or two about this while searching.
Click to expand...
Click to collapse
In that case, you're screwed unless there's a registry key that lets you change the name. I've run into a few complications; tcpmp and OMarket both use a common.dll. My solution was to buy Core Player, lol.
I was still hoping there would be a simple way to arrange the files in folders while keeping them under \windows\ but I can't find such a method either. Doesn't seem like I have other options than to decided on a firstboot customization method: Runcc, autorun, xda_uc or something that I haven't read about yet...
"Runcc" is currently used in the base kitchen so that gives it an edge right now.
Click to expand...
Click to collapse
Using cabs or zip files is the way to go if you want to copy large folders in one shot (with a mortscript; you can also un-rar rar files, but I don't know how. Yet, lol). Zips are easier to make and edit than cabs, but you need to have mortscript cooked in and know how to write the simple script (aka cut-and-paste).
Edit:
Remembered that I had another question, and it's probably not worth a new thread.
I was looking at how to manually create .lnk files and I noticed something that I didn't understand and couldn't find info about.
For example:
Code:
21#"\Windows\MSDict.htm"
What exactly does the "21" refer to?? I tried changing it randomly to other values a couple of times and it didn't effect anything.
Click to expand...
Click to collapse
The 21 is the number of bytes after the #. It doesn't matter. I usually just change the first number to 1. It works fine. Counting bytes blows.
That was extremely helpful. Too bad these boards don't use a rep system
Farmer Ted said:
Yup, that's correct. Another approach is to take all similar files that go into windows and stick them in a zip file that unzips to the windows directory.
Click to expand...
Click to collapse
Well, if I'm going to follow this method, and it seems like I am, I don't see why I would still have to limit myself to the \windows folder. I can just put everything the way I originally wanted to do. I only looked at arranging files under \windows when I found out that there's no way to get rid of the duplicates.
Farmer Ted said:
Using cabs or zip files is the way to go if you want to copy large folders in one shot (with a mortscript; you can also un-rar rar files, but I don't know how. Yet, lol). Zips are easier to make and edit than cabs, but you need to have mortscript cooked in and know how to write the simple script (aka cut-and-paste).
Click to expand...
Click to collapse
I haven't tried writing mortscripts yet but I've seen enough to figure out the basic and notice how easy it is. I'm gonna check how usable is the WM version of 7zip, as long as it accepts arguments combining it with mortscript will be easy and perfect for me.
7z archives can get smaller in size than half of the zip archives for the same files. And cabs are too annoying to work with and keep updated later on.
Only issue remaining now is checking whether I should put the archived files under \windows or use the sdcard for customization. I'm leaning toward the first but I'll have to wait and see how much memory I would be sacrificing that way.
Farmer Ted said:
The 21 is the number of bytes after the #. It doesn't matter. I usually just change the first number to 1. It works fine. Counting bytes blows.
Click to expand...
Click to collapse
Ah! I thought about counting bytes/characters and noticed that it works sometimes. But I thought it was a coincidence after I experimented in changing the value and noticed that it wasn't always the right count in the .lnk files that I found.
[rant]
Nice, I was messing around with some packages to free up ram and storage and I seem to have ended up with a rather b0rked up xTask. And then there's still convincing Resco Explorer that the registry add-in IS in fact there.
Figuring out the causes should keep me happily busy for a while (and probably heavily pissed for another while afterwards).
[/rant]
Edit:
Just for the record, I ended up using xda_uc it's a lot easier than doing things manually. Although it would help if there was some kind of documentation available, took me a while to understand what .xda, xdai, xdas & .xdaz files are supposed to be.
hi by the way is it possible to convert ext packages of QVGA phones to one another?
Device flashes - Device boots - Device runs the Welcome.exe, but then no Customisation.
Iv recently added some EXT packages into my rom. i made them myself from .cab's with cab2ext. ive tested the .cab's before adding to my rom, they do work. but some programs that did work before adding the new EXT's now dont because of no customisation eg, Task Manager - the one on the today screen and also Windows Live. (iv only noticed these two at the moment but there will be more, to be honest i cant be arsed looking for programs that work or dont work when its quite obvious its because of no Customisation, if i fix that, they will work again.. simples )
Anyway...
I opened the new EXT packages ive added and checked all the files.. eg, .dat .reg and all "FILES" files, i even checked the .lnk's and all seems ok. i then checked them again.. yet everything still looks ok, but something is seriously f*cked!
Also another problem, a wierd one..
When i Soft-Reset/Restart the device, it boots up with the Welcome.exe again? (the Welcome.exe is meant to only run the once and then dissable )
Help? iv almost got my rom the way i want it - ive been working on this rom for 2months and i dont want to start building the rom from scratch...
..again! pmsl
Does anyone have any idea what is wrong, if this has happened to you, how did you fix it?
Thanks!
Rn
Check your runcc.lua, then the conf*.txt files you include in your rom, then all the commands you execute inside them.
One of these commands go wrong in your first boot and so you are stuck on customization.
If you use xda_uc or another user customization method, check those scripts as well.
It may happen, for example, if you try to install a cab and for some reason it fails.
If in your recent packages you overwrite one of your conf*.txt file, this could be the cause.
Ciao
...
cheers dude, thanks for your time and help, i think i understand what you meen..
[1)config*.txt <-- all config files are ok.]
[2)runcc <-- googled and i dont use]
[3)xda_uc <-- googled and i dont use]
raving_nanza said:
iv almost got my rom the way i want it - ive been working on this rom for 2months and i dont want to start building the rom from scratch.....again! pmsl
Click to expand...
Click to collapse
its ok claros, f*ck it dude, its the second time this problem has happened to me, it happened on my first rom too.. (2months ago.lol)
i litteraly started again from scratch (a nice clean slate) ill just start my rom again like i did then which will solve my problem.lol ive got all my programs and setting backed up (*in a messy folder of messy folders )
my new kitchen will basicly be up and running again by the end of the day, its my birthday on wednesday so i may as well set it as the rom date.lol
Raving_1337_Rom_V3 (Alpha)
Cheers anyway dude, muchly appreciated!
Rn
[changed title to solved, @claros]
raving_nanza said:
its ok claros, f*ck it dude, its the second time this problem has happened to me, it happened on my first rom too.. (2months ago.lol)
Click to expand...
Click to collapse
This happened to me at least 20 times, or more
Let's check together what happen at first boot, if I'm wrong anybody else will correct me.
1) files are moved from \windows to other directory according to your app.dat / initflashfiles.dat.
2) .provxml files are parsed to change config values or filesystem
3) welcome is executed, but this command don't stop startup so:
3a) autorun.exe or runcc is executed too to customize rom: these package runs according to the commands inside various config*.txt files in oem packages or sometimes in ext packages
4) user configuration, usually included as a call inside one of conf*.txt files is executed. If you don't use xda_uc, user customization should follow the same syntax as autorun/runcc
5) Last conf*.txt file should include at least a
LOCK: Disabled and a reset
At this point you should have completed the welcome wizard. If not, and your calibration data is not in registry, your are prompted again with welcome wizard at second boot.
Common errors during boot sequence are:
- wince.nls is missing
- app.dat / initflashfiles.dat error, such as creating subfolders inside non existent folders or statements not in unicode format
- registry / provxml errors during setup of welcome.exe itself, for example you disable the whole welcome wizard but don't write calibration data into registry
- chain error inside conf*.txt files, such as config.txt calls config_operator.txt which call config.txt, generating a loop
- a cab or command inside a config*.txt files cannot be installed, for example for lack of space or a missing certificate
What I usually do in these cases is:
- check platformrebuild log file for errors
- save my last tmp/dump folder to check what is really inside the rom and what is really overwritten by what
- If you can connect by activesync to device before reboot, explore the device itself, it's processes and registry
- recompile the rom putting semaphores inside app.reg files, .provxml files, config*.txt file. I usually add an ext package to be included as the last one (ZZZ_Claros_Fix) where I put a special app.reg, a .provxml and a modified copy of config.txt, config_operator.txt, config_end.txt etc etc.. If you don't have a diamond, you can boot without sdcard to avoid any sd_config.txt error
Starting a new kitchen from scratch for me is at least 20 days of work, I'd spend a day more finding a solution
Ciao
claros said:
This happened to me at least 20 times, or more
Click to expand...
Click to collapse
A Mortscript called Autorun.exe
V2 working again, Cheers!
*i started setting up a new kitchen then thought f*ck that!
Rn
Are you saying that you were cooking in mortscript, and the autorun.exe file from the mortscript package over-wrote the one from your OEM package? I think that happened to me once a while ago. I just left out the one from mortscript; I've never needed it before, anyway.
...
yeah a mortscript called Autorun.exe over-wrote my OEM Autorun.exe
i deleted it the mortscript, everythings sound now