[PC] DevHealthAnalyzer v2.0 and rpack - Windows Mobile

I've decided to post these tools here.
rpack - not a ResourcePacker, but the tool that can be used to remove useless sections from resource-only libraries making more memory available for applications.
Usage:
Make a backup of your kitchen
Drag&Drop your *.mui files to rpack.exe. Their size will be reduced.
Make sure you didn't kill USEFUL libraries.
Original thread
DevHealthAnalyzer - memory analysis utility. Can be used to determine the most memory-eating libraries. Then you can reversmod them (yes, reversmodded libraries reserve less ram than recmodded ones) or make r/w sections shared.
Screenshot:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
From my experience - it looks like the most popular ROMs have the worst memory management
Original thread
v2.0 (15.05.11):
changed output file format (although, old files still can be opened)
more info
better UI
Download DevHealthAnalyzer v2.0

Great work ultrashot. The DevHealthAnalyzer looks nice. Is the DevHealth that is run on device the on from this thread?

mwalt2 said:
Great work ultrashot. The DevHealthAnalyzer looks nice. Is the DevHealth that is run on device the on from this thread?
Click to expand...
Click to collapse
Yes, it is totally the same. Thanks for pointing - I forgot to attach it to the first post.

Also, what is the significance of the blue, green, and white cells in the output? Does the exe column just show what the dll is tied to? I know next to nothing about this stuff , but it does look like there are some files loaded in slot0 that I should reversemod.

mwalt2 said:
Also, what is the significance of the blue, green, and white cells in the output? Does the exe column just show what the dll is tied to? I know next to nothing about this stuff , but it does look like there are some files loaded in slot0 that I should reversemod.
Click to expand...
Click to collapse
Blue means NULL - unused or reserved areas.
Green means that this memory block is from DumpMap.txt
White cell - from DevHealth log.
EXE column shows exes that use this library at the moment.
Main purpose of this app is that it lets you find which recmodded libraries waste 64 KBs of you slot 0 while they really need less RAM.

Thank you for sharing Ultrashot.
If I understand right I need to run Devhealth on the device but when I do I get a Netcf error.
I'm running Netcf version 3.5.9085.00

Laurentius26 said:
Thank you for sharing Ultrashot.
If I understand right I need to run Devhealth on the device but when I do I get a Netcf error.
I'm running Netcf version 3.5.9085.00
Click to expand...
Click to collapse
You should run devhealth.exe, not devhealthanalyzer.exe

Oh yeeh I didn't realise there where two exe, that's it, thanks again.
ultrashot said:
You should run devhealth.exe, not devhealthanalyzer.exe
Click to expand...
Click to collapse

Laurentius26 said:
Oh yeeh I didn't realise there where two exe, that's it, thanks again.
Click to expand...
Click to collapse
DevHealth is to dump memory map from the device and DevHealthAnalyzer is to Analyze the dumped data on pc.
Copy the text data from mem_X.txt into DevHealthAnalyzer.
@ultrashot; Thanks for the tool. Its very essential.
BTW; is it possible to analyze other slots also? i.e slot1, slot2, slot3 and etc ?
I know Dumpmem has this feature but its slight buggy or like, when used in newer OS cores since it was developed very long time ago for WM2002. Not sure how well it works on newer OS cores.
I guess DevHealth also provides data about other slots but it would be great to see in GUI tools like DevHealthAnalyzer.
Just a query. I'm not that expert in memory maps either.
Thanks...
Best Regards

CRACING said:
DevHealth is to dump memory map from the device and DevHealthAnalyzer is to Analyze the dumped data on pc.
Copy the text data from mem_X.txt into DevHealthAnalyzer.
@ultrashot; Thanks for the tool. Its very essential.
BTW; is it possible to analyze other slots also? i.e slot1, slot2, slot3 and etc ?
I know Dumpmem has this feature but its slight buggy or like, when used in newer OS cores since it was developed very long time ago for WM2002. Not sure how well it works on newer OS cores.
I guess DevHealth also provides data about other slots but it would be great to see in GUI tools like DevHealthAnalyzer.
Just a query. I'm not that expert in memory maps either.
Thanks...
Best Regards
Click to expand...
Click to collapse
In fact, DHA makes maps of all slots because there is no info about slot 0. Then it merges them.
If you create a map you can take a look at info about other processes, but I don't save it in a *.slotmap file as all other slots aren't so interesting.

ultrashot said:
In fact, DHA makes maps of all slots because there is no info about slot 0. Then it merges them.
If you create a map you can take a look at info about other processes, but I don't save it in a *.slotmap file as all other slots aren't so interesting.
Click to expand...
Click to collapse
Yeah you are right.
Edit: BTW; I have too much null spaces and by seeing the posts in asusmobile.ru, AndrewSh said they are memory holes.
Should we correct it and remove those memory holes?
If so please let me know how? sorry for my noob queries!
Just an hour back, I have reversmode'ed few dlls on HTC packages and saved space in Slot0. About 1.3 MB. MAX Amount 24736 KB.
Thanks...
Best Regards

CRACING, while ultrashot is offline for now - I will try to answer
These NULLS normally happen if the library was a file (not module) while cooking and it's loaded without fixed address to slot 0. Try to reversmode all dlls that have NULL space reserved and cook again. Than - make test and you will see that almost all NULLs are gone...
I wanna warn - do not try to reversmode rsaenh.dll - leave it as is. Otherwise you will get unbootable rom.
Normally I have 27484 kb free for Leo at the moment
BTW, if you browse through asusmobile.ru topics - you are welcome to post there your requests and comments in English - we appreciate that

Yeah, I learned about rsaenh.dll the hard way! Took a while to trace it back to that one, that taught me to take baby steps.

I think if you put rsaenh.dll on the do not split list (or do not relocate list, with the proper addresses already set), it may be ok. Or, comment out the 'loadmodulelow' value in your boot.rgu, and it may work as a module. I'll let you try it, though, lol. (Maybe on a rainy day I'll see if I can get it to work for the hell of it.)

AndrewSh said:
CRACING, while ultrashot is offline for now - I will try to answer
These NULLS normally happen if the library was a file (not module) while cooking and it's loaded without fixed address to slot 0. Try to reversmode all dlls that have NULL space reserved and cook again. Than - make test and you will see that almost all NULLs are gone...
I wanna warn - do not try to reversmode rsaenh.dll - leave it as is. Otherwise you will get unbootable rom.
Normally I have 27484 kb free for Leo at the moment
BTW, if you browse through asusmobile.ru topics - you are welcome to post there your requests and comments in English - we appreciate that
Click to expand...
Click to collapse
Hello,
Thanks for your reply.
I though its NULL reserved space for files but NULL space is also below modules. i.e mdpl, htcdevservice, htcgeosrvc and many modules.
Thats why I have confused.
Is it because the modules aren't reloc correctly or those are reserved for the modules which aren't loaded? I'm using OSKitchen to build ROMs.
However, I have attached my last memory map dump. From 1828000 to 18BF000 are files. i.e conncurrencemgr.dll, ntfconfig.dll, notificationmanager.dll, voammbenc.dll, lap_pw.dll, pimdlg.dll and rsaenh.dll
Please have a look...
Thanks...
Best Regards

CRACING, hi!
You can force some of your dlls not to be loaded to slot 0 to release space. That can be performed by sharing r/w sections of modules and files.
I think ultrashot will explain here in the topic how to make that. I don't want to do that because it's his research and his brilliant idea. Besides - he's a real professional and he will do it much better than me.
Anyway - almost all HTC services can be processed to share r/w sections. And thus they will never be dropped to slot 0 on boot.
As I can see from your map - 80 % of your files and modules with NULL can be shared.
We will wait for topicstarter's post concerning the matter. If he does not - I will try to describe how to do that.....
But this process it quite dangerous - you should backup your kitchen before sharing r/w.

AndrewSh said:
CRACING, hi!
You can force some of your dlls not to be loaded to slot 0 to release space. That can be performed by sharing r/w sections of modules and files.
I think ultrashot will explain here in the topic how to make that. I don't want to do that because it's his research and his brilliant idea. Besides - he's a real professional and he will do it much better than me.
Anyway - almost all HTC services can be processed to share r/w sections. And thus they will never be dropped to slot 0 on boot.
As I can see from your map - 80 % of your files and modules with NULL can be shared.
We will wait for topicstarter's post concerning the matter. If he does not - I will try to describe how to do that.....
But this process it quite dangerous - you should backup your kitchen before sharing r/w.
Click to expand...
Click to collapse
That would be awesome. Looking forward...
Thanks a lot...
Best Regards

Meanwhile – the translation of original ultrashot’s explanation at asusmobile:
How to share r/w section:
1. For the file: using LordPE program set flag Shareable on r/w section (C0000040->D0000040)
2. For the module: edit imageinfo.bin – change 402000C0 for 402000D0
All files and modules should be backuped!!! Every modified file/module should be tested separately.
Additional explanation from Barin
For module and file – it’s necessary to change RW section flags (set up additional flag IMAGE_SCN_MEM_SHARED = 0х10000000)
Example: RW section has flags C0002040
It’s necessary to add flag 0х10000000
0xC0002040 OR 0x10000000 = 0xD0002040
How to modify imageinfo.bin from 402000C0 to 402000D0: Calculate the offset to the appropriate flag o32_rom and then edit with any HEX-editor
Module o32_rom structures start at 0х70 address in imageinfo.bin consistently
The structure of o32_rom:
DWORD o32_vsize
DWORD o32_rva
DWORD o32_psize
DWORD o32_dataptr
DWORD o32_realaddr
DWORD o32_flags
That means - the address of the flags of any section will be equal to 0x70 + (0x18 * <section number>) + 0x14
Sections are numbered from zero.

AndrewSh said:
2. For the module: edit imageinfo.bin – change 402000C0 for 402000D0
All files and modules should be backuped!!! Every modified file/module should be tested separately.
Click to expand...
Click to collapse
How to do this?
I checked in IDA and HexEdit. No such things.
AndrewSh said:
Click to expand...
Click to collapse
And could tell me which is this tool?
May be I saw but couldn't remember.
Sorry for noob queries.
Thanks a lot...
Best Regards

CRACING said:
How to do this? I checked in IDA and HexEdit. No such things.
Click to expand...
Click to collapse
I use WinHex - and normally you should look for 402000C0 Hex Value - modify if exists See attached image.
CRACING said:
And could tell me which is this tool?
Click to expand...
Click to collapse
OsBuilder (BTW - the full version allows to share r/w sections of modules and files "on the fly" without modifying original ones and without hex calculators and other sophisticated ****)

Related

RegToXml - Convert registry files to provisioning xml files

Do we need another tool for converting registry files to provisioning XML files? Maybe not, but I wasn't happy with existing solutions, so here's my offering. It runs on Windows (not on Windows Mobile), and will convert any registry data file given to it into a file of the same name, but with a .xml extension.
This is eventually going to be a small part of a larger project I'm working on, but I thought I'd release it now to get any early feedback.
Features:
Command line interface (or just drag and drop the registry file onto the .exe)
Converts Unicode and ANSI file formats: .reg (v4 and v5), .rgu, .cereg
Supports continuing line breaks (lines split with \)
Supports all data types (including REG_BINARY containing non-unicode data)
Supports key and value deletion instructions
Robust to non-fatal failure: informative warnings and errors will be displayed (if run from the command line).
Accessible as an API (to .net apps) - add a reference to the .exe file, then call the static method RegToXml.RegToXml.Convert
The intention is for this to provide bullet-proof conversion of any valid registry files, so I'd really appreciate any bug reports (preferably with a copy of the registry file that failed!). Comments and suggestions welcome too.
Alex
Edit: This tool is now available as part of SDConfigGen, and will no longer be separately updated in this thread.
AlexVallat said:
Do we need another tool for converting registry files to provisioning XML files? Maybe not, but I wasn't happy with existing solutions, so here's my offering.
This is eventually going to be a small part of a larger project I'm working on, but I thought I'd release it now to get any early feedback.
Features:
Command line interface (or just drag and drop the registry file onto the .exe)
Converts Unicode and ANSI file formats: .reg (v4 and v5), .rgu, .cereg
Supports continuing line breaks (lines split with \)
Supports all data types (including REG_BINARY containing non-unicode data)
Robust to non-fatal failure: informative warnings and errors will be displayed (if run from the command line).
Accessible as an API (to .net apps) - add a reference to the .exe file, then call the static method RegToXml.RegToXml.Convert
The intention is for this to provide bullet-proof conversion of any valid registry files, so I'd really appreciate any bug reports (preferably with a copy of the registry file that failed!). Comments and suggestions welcome too.
Alex
.NET Framework (required)
Click to expand...
Click to collapse
Hi alex
I have error with Net CF
what version is required ? I have V2
brunoisa10 said:
Hi alex
I have error with Net CF
what version is required ? I have V2
Click to expand...
Click to collapse
It should be OK with 2.0. Just a thought, you mention .Net CF - are you trying to run this on Windows Mobile? I should have been more specific, this is a Windows (PC) tool for generating xml provisioning files which are then used by SDAutorun.
Alex
I use http://ceregeditor.mdsoft.pl/
Radimus said:
I use http://ceregeditor.mdsoft.pl/
Click to expand...
Click to collapse
So do I, it's a great application! I'm not sure I understand your point, though?
AlexVallat said:
So do I, it's a great application! I'm not sure I understand your point, though?
Click to expand...
Click to collapse
it will export the reg, it will convert to a cab... what else does it need to do?
Radimus said:
it will export the reg, it will convert to a cab... what else does it need to do?
Click to expand...
Click to collapse
It doesn't export to cab, if I read correctly, it exports to *.XML
Exitao said:
It doesn't export to cab, if I read correctly, it exports to *.XML
Click to expand...
Click to collapse
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
CERegEditor can export registry data. Once you have registry data, you may choose to it to a cab using the CERegEditor Convert menu as illustrated above by Radimus. If what you want is a cab file, RegToXml probably isn't what you are looking for.
If you want to convert it to an xml provisioning file, though, I don't believe CERegEditor has that functionality. You can use my RegToXml tool to do that.
Alex
I'm not trying to be difficult, but if we are to assume the cab works as advertised, then the xml is already inside the cab...
winrar or winzip or whatever to extract the cab....
All that aside, it is obviously not the only solution to this process and any efforts by a local dev is nothing but outstanding.
I have just started looking into XML provisioning, I had only done CAB installs previously. If this app will grow into a utility that can manage fileoperations like creating folders, moving/creating shortcuts, and such this will be a very worthy endeavor.
OK, I guess you could use CERegEditor generate a cab file, extract _setup.xml from it, rename it, and edit it to remove the extraneous dummy file copying stuff. I'd suggest that using this tool instead would be easier than that. Of course if what you want to end up with is actually a cab, rather than an xml file, then there's less point to it!
The reason I (personally) want to generate xml files from registry files is for use with SDAutoRun, where they are included in the SDConfig.txt with the XML: statement.
Alex
even a "wizard" type of app, that would create XML provisioning files for email accounts would be a life saver and a standard app for all UC flashers.
New account -> select provider (pop3,ldap,gmail,exchange,etc) -> acctname -> pw -> options -> another acct -> create XML? -> create cab? -> donate 1$
I like the idea. I'm currently working on an SDConfig.txt auto-generator, but once I've finished that, a wizard-based provisioning file editor could be a cool project.
@AlexVallat,
your RegToXml converter does not handle reg-lines which contain "multi-sz", hence it is useless for me.
jwoegerbauer said:
@AlexVallat,
your RegToXml converter does not handle reg-lines which contain "multi-sz", hence it is useless for me.
Click to expand...
Click to collapse
It's been three years... I don't actually even have a windows mobile device any more.
That said, RegToXml should support values of type REG_MULTI_SZ. Check that you are using the latest version (0.6) - if not, it's part of SDConfigGen now. You can just extract RegToXml.exe from the zip file if that's all you want, though.
AlexVallat said:
It's been three years... I don't actually even have a windows mobile device any more.
That said, RegToXml should support values of type REG_MULTI_SZ. Check that you are using the latest version (0.6) - if not, it's part of SDConfigGen now. You can just extract RegToXml.exe from the zip file if that's all you want, though.
Click to expand...
Click to collapse
RegToXML is a Win32 app, hence no mobile device needed. To be on the safe side again downloaded SDConfigGen.0.6.zip and ran RegToXML.exe (06.08.2008, 12 KB) contained in it. Same result, i.e. multi-sz lines not converted. BTW, if you are still interested in your project, the rgu-file I want to get converted is attached.
jwoegerbauer said:
the rgu-file I want to get converted is attached
Click to expand...
Click to collapse
As it turns out, .rgu files are not identical to .reg files. I've had a look around, but haven't been able to find a specification for the .rgu file format, but the "multi_sz:" thing is definitely not compatible with the .reg file format.
It would be nice to be able to support .rgu files too, and if I can get a spec for them I might even update the project to do so, but I can't just assume that they are identical except for multi-strings and then claim support for them.
If you can get your registry data in a .reg file instead of a .rgu, RegToXml will be able to process it.
Alex
AlexVallat said:
As it turns out, .rgu files are not identical to .reg files. I've had a look around, but haven't been able to find a specification for the .rgu file format, but the "multi_sz:" thing is definitely not compatible with the .reg file format.
It would be nice to be able to support .rgu files too, and if I can get a spec for them I might even update the project to do so, but I can't just assume that they are identical except for multi-strings and then claim support for them.
If you can get your registry data in a .reg file instead of a .rgu, RegToXml will be able to process it.
Alex
Click to expand...
Click to collapse
Created with CeRegEditor a .REG-file which contains hex(7) <=> multi_sz lines - I've attached it. Same result as previously reported: Lines containing a hex(7) <=> multi-sz value weren't converted. I give up, thank you for your time.
BTW: the delimiter,terminator for multi-sz values in provxml-files is 
Code:
<parm name="TestValueMultiString" value="string1string2string3" datatype="multiplestring" />
Appendix:
People knowing of MortScript might use this script I created to batch-process the RegToXML converter:
Code:
#RegToXML.mscr
ErrorLevel("warn")
Local()
SetMessageFont(12, "Tahoma")
Path = SystemPath("ScriptPath")
MST = MortScriptType()
If(MST ne "PC")
BigMessage("^NL^This script is intended^NL^to be run at your desktop PC.^NL^Hence you must use^NL^MortScript's PC Version !!!", , FileBase(Path))
Exit
EndIf
BigMessage("Put .REG file(s) in the^NL^\REG_Original directory.", FileBase(Path))
If(FileExists(Path\"REG_Converted\*.reg"))
Delete(Path\"REG_Converted\*.reg")
EndIf
ForEach reg In Files(Path\"REG_Original\*.reg")
SetFileAttribute(reg, "system", FALSE)
SetFileAttribute(reg, "readonly", FALSE)
EndForEach
Xcopy(Path\"REG_Original\*.reg", Path\"REG_Converted", TRUE, TRUE)
idx = 0
ForEach reg In Files(Path\"REG_Converted\*.reg")
idx += 1
RunWait("RegToXml.exe", reg)
Delete(reg)
EndForEach
idx2 = 0
ForEach xml In Files(Path\"REG_Converted\*.xml")
idx2 += 1
EndForEach
BigMessage("" & idx & " file(s) processed^NL^" & idx2 & " file(s) converted", FileBase(Path))
jwoegerbauer said:
Created with CeRegEditor a .REG-file which contains hex(7) <=> multi_sz lines - I've attached it. Same result as previously reported: Lines containing a hex(7) <=> multi-sz value weren't converted. I give up, thank you for your time.
Click to expand...
Click to collapse
I took a look at the .reg file. Firstly, it isn't valid as the value names "\Storage Card\MioAutoRun\Programs\Microsoft .NET CF 3.5\Microsoft .NET CF 3.5.GAC" haven't got the \ characters escaped. I fixed that with a search and replace, but it also looks like the multi-string values contain unicode data, which is also not valid for the reg format. I don't know why CeRegEditor is producing invalid reg files like this.
As you are giving up, though, I won't pursue this any further.
Alex
Cleaning up reg/rgu
Thank you for your tool! I'm still using it in my Kitchen
I want to point out a nice other tool to clean up reg/rgu (delete duplicated stuff, sort it etc.) you and others might be interested in too;
[UTIL] REG/RGU Cleaner
Have fun cooking!
Senax

Disabling TF3D Clock as Shortcut & A Few More Ideas

Greygabe.. Sorry for hijacking this thread but here's a chance to continue with learning about mode9 editing and stuff Your question is in post 2 which actually made me get into the classes
Finally got the mode9 edited to remove the selection on clock and the date line below it Thanks to headsup from above and mode9 quick tutorials from xboxmod
Attached are my LUA scripts for removing the clicks "just for reference" not to be used directly to device
[Q] Disabling TF3D Clock as Shortcut
So you know how when you press the clock in TF3D it brings you to the clock settings thing (the Time/Alarms settings)?
Does anyone know how to stop that?
It is a giant hit box for the touch screen and when it is in my pocket - it is the most common thing accidentally hit...
Plus it's not a settings menu I often need...
You have to edit the 1c684cd8_manila file, aka home tab mode9 file. It has a selection box defined which can be modified to remove the selection area for clock. I would post file, but not everyone has the same file, depending on with or without flipclocks for starters, but there could also be other differences too. The file can be edited using m9editor.
Has anyone ever figured this out? I constantly touch my clock screen inadvertently, sending it to alarms and setting.
greygabe said:
So you know how when you press the clock in TF3D it brings you to the clock settings thing (the Time/Alarms settings)?
Does anyone know how to stop that?
It is a giant hit box for the touch screen and when it is in my pocket - it is the most common thing accidentally hit...
Plus it's not a settings menu I often need...
Click to expand...
Click to collapse
You could change script on offset 798.lua in 1c684cd8_manila.
There are two of 'NavigateToClock()', one is for thouching, other is for clicking. You could get rid of what you want.
showaco said:
You have to edit the 1c684cd8_manila file, aka home tab mode9 file. It has a selection box defined which can be modified to remove the selection area for clock. I would post file, but not everyone has the same file, depending on with or without flipclocks for starters, but there could also be other differences too. The file can be edited using m9editor.
Click to expand...
Click to collapse
Hi showaco. I edited the file you mentioned in m9editor. Copied to windows and using it without any problems actually. But when i click on the date line below clock, it opens the clock applet. also when i click the clock after flipping it, it still opens the clock applet. how to get rid of that?
i edited the name size value to 0,0 last line in the screen below. am i doing something wrong?
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Hi guys. I wanted to remove this code from the attached script of 1c684cd8_manila file
Code:
OnAlarmPressed = function(l_3_0, l_3_1)
_application.Navigation:Navigate(URL("Manila://WorldClock/alarmview.page"))
l_3_1.value = true
end
Even if I simply decompile the script in m9editor (3.3.0.1) and try to re-compile without editing anything, it gives me the below error
Am still learning this whole LUA script thingy so I cant know what is to be done. Please help somebody. Also I want to edit the date line & alarm line to place above the clock. Any ideas what is to be edited in the 1c684cd8_manila file?
EDIT: Found the problem. There was an extra "end" mentioned below. Compared the script with an earlier manila file. Removed that "end" and got the script to work
Code:
else
AlarmClockOn._visible = false
AlarmClockOff._visible = true
AlarmTime.String = "[[IDS_ALARMOFF]]"
if alarmSelected == true then
AlarmTime.Color = GetAlarmSelectedColor()
AlarmTime.Opacity:Interpolate(100, 0, 0, Interpolate_Linear)
else
AlarmTime.Color = GetAlarmOffColor()
AlarmTime.Opacity:Interpolate(50, 0, 0, Interpolate_Linear)
end
[B][COLOR=red] end
[/COLOR][/B]end
Hi guys. I am attaching my 1c684cd8_manila file for some help needed This file is not to be used directly since it is customised to my home layout
I need to move the text "Airtel" (carrier name) to the extreme left, keeping the operator logo (Ameet) as is. I have edited the mode9 file in such a way that I only need to replace a .png image called op.png (150x50) in windows dir to change the operator logo Works good for me
Can you guys tell me what is to be edited for moving the carrier name to the left. I tried changing the pos x of carrier name in the mode9 file but it just wont budge
Didnt do much good in the earlier section. Got no responses there. Hoping someone might be able to help out in here
Hi Ameet
to move operator text position
you need to edit attached lua.
in new manila 90% of item are placed in lua
lots of mode9 value are ignored.
if you need more info ask me.
bye
xboxmod said:
Hi Ameet
to move operator text position
you need to edit attached lua.
in new manila 90% of item are placed in lua
lots of mode9 value are ignored.
if you need more info ask me.
bye
Click to expand...
Click to collapse
Hi brother. The file you posted is actually for landscape? (home_landscape.luac)
The script from my file is different (attached my file for comparing )
Code:
TitleBar._visible = true
if OperatorLogo._visible == true then
CarrierNetwork.Position.value = Vector3(208, -15, 0)
CarrierNetwork.HorizontalAlignment = Alignment_Right
end
this is from portrait screen. I dont want to move the operator logo, it is perfect where it is right now. I just want to move the carrier name "Airtel" in screen above post to the left. Which code to be edited for that?
Hey xboxmod, I replaced the home.mode9 file from your package brother and edited my 25d04412_manila.lua script as the below to move the clock tab below and the date / alarm tab above it Changed only the lua script to avoid editing the main mode9 file directly
Code:
clock_tabs.CameraPosition.value = Vector3(0, [COLOR=blue]30[/COLOR], 320)
clock_tabs.LookAtPosition.value = Vector3(0, [COLOR=blue]30[/COLOR], 0)
TabsLeft.CameraPosition.value = Vector3(0, [COLOR=blue]30[/COLOR], 320)
TabsLeft.LookAtPosition.value = Vector3(0, [COLOR=#0000ff]30[/COLOR], 0)
TabsRight.CameraPosition.value = Vector3(0, [COLOR=#0000ff]30[/COLOR], 320)
TabsRight.LookAtPosition.value = Vector3(0, [COLOR=#0000ff]30[/COLOR], 0)
alarmCamera.Position.value = Vector3(0, [COLOR=red]220[/COLOR], 0)
I also played around with the values to get the below scene Its not perfect yet but I'm sure someone witll surely find a new theme pack for it
Code:
clock_tabs.CameraPosition.value = Vector3([COLOR=red]50[/COLOR], 30, 320)
clock_tabs.LookAtPosition.value = Vector3(0, 30, 0)
TabsLeft.CameraPosition.value = Vector3([COLOR=red]50[/COLOR], 30, 320)
TabsLeft.LookAtPosition.value = Vector3(0, 30, 0)
TabsRight.CameraPosition.value = Vector3([COLOR=red]50[/COLOR], 30, 320)
TabsRight.LookAtPosition.value = Vector3(0, 30, 0)
I changed all this only in the portrait right now (if l_2_0._application.Orientation == ScreenOrientation_Portrait then)
Ameet, care to look into Music tab... playlist problem?
When ever i add new playlist, once i do a soft reset, the playlist will be deleted.
thank in advance. =)
StyL3-Ivan said:
Ameet, care to look into Music tab... playlist problem?
When ever i add new playlist, once i do a soft reset, the playlist will be deleted.
thank in advance. =)
Click to expand...
Click to collapse
StyL3-Ivan, I've not hijacked this thread for providing support in editing lua scripts and stuff but for sharing information and learning things
We'll surely work on the solutions and new stuff all together, but right now its learning time
This is just a thought process right now to work on moving the QTC image files to storage card (Internal Storage in case of Diamond) This is not a confirmation yet, still in testing. Will keep updating this post as and when more info is found on this
Path Value for the 012.qtc to be used from in home.mode9 file is seen as “.\Assets\Images\Home\VGA\012.qtc” which is actually “\Windows\HTC\Assets\Images\Home\VGA\012.qtc"
Hence hash name of this 012.qtc file is “1C813F6C_manila”
If we change this path to “\Internal Storage\012.qtc” then the hash name of this same file becomes “5D1AA6D8_manila”
Change the path in mode9 file to “\Internal Storage\012.qtc”
And copy the “5D1AA6D8_manila” file (renamed 012.qtc) to root of Internal Storage
EDIT: 22-Apr-09
This didnt work as suspected. Changed all instances of the qtc path to above, found about 9-10 instances Creating a folder called Internal Storage in windows and putting the new hash file didnt work either Attaching my home.mode9 and the 012.qtc file (with above hash name) for someone to check. The time below is actually 22:53
EDIT: 23-Apr-09
It might have worked well actually. "Internal Storage" folder in windows was not created correctly. Will try later again on saturday night. I think we need a way to hex the manila.exe in recognising root path of the device. The mode9 files refer to path ".\Assets\Images.." etc etc which means it calls for the HTC folder as "\Windows\."
Can all the lines in all LUA scripts starting from "trace" be safely deleted?
Since these are debug codes, thought it will speed up the Manila a bit
for e.g.
Code:
trace("HandleLetterSelected=" .. string.char(l_16_0 + 65))
trace("HandleLetterSelected indexJump=" ..
or I can only remove such lines?
Code:
trace("+++++++[Programs_ScreenRotation] : ResetListViewContent")
Ameet said:
Can all the lines in all LUA scripts starting from "trace" be safely deleted?
Since these are debug codes, thought it will speed up the Manila a bit
for e.g.
Code:
trace("HandleLetterSelected=" .. string.char(l_16_0 + 65))
trace("HandleLetterSelected indexJump=" ..
or I can only remove such lines?
Code:
trace("+++++++[Programs_ScreenRotation] : ResetListViewContent")
Click to expand...
Click to collapse
Yes they can, they are for testing purposes only, 12
12aon said:
Yes they can, they are for testing purposes only, 12
Click to expand...
Click to collapse
But all the lines starting with trace can be removed? Would that really help speed up the manila?
xboxmod is kinda busy these days, but hoping he tries and helps me in understanding the hex editing part on manila.exe to make it search for qtc files from root
Ameet said:
EDIT: 23-Apr-09
It might have worked well actually. "Internal Storage" folder in windows was not created correctly. Will try later again on saturday night. I think we need a way to hex the manila.exe in recognising root path of the device. The mode9 files refer to path ".\Assets\Images.." etc etc which means it calls for the HTC folder as "\Windows\."
Click to expand...
Click to collapse
This may sound totally stupid but it's worth a try. Since ".\" refers to "\Windows\", "..\" should refer to "\". Windows CE has no concept of relative paths and ".\" must be included as a pointer to "\Windows\" by HTC. Somehow I doubt they created a "..\" pointer but it isworth a shot.
Sorry but I myself haven't tried this yet as I'm slightly new (as in total noob ) to MODE9 editing and HTC's implementation of Lua.
Ameet said:
But all the lines starting with trace can be removed? Would that really help speed up the manila?
xboxmod is kinda busy these days, but hoping he tries and helps me in understanding the hex editing part on manila.exe to make it search for qtc files from root
Click to expand...
Click to collapse
Should be but Zstupy said it would not matter much though, though I will be removing all trace in my next edits, 12

[Q] Can I rename StartMenu -> Settings

Hello,
To be as short as possible:
I'm trying to cook a Polish ROM out of the dump of a well known WWE ROM around here (of course under a permission of the noble Chef). I managed to find/edit/translate all the neccesary *.mui, *_manila and *.htm files and the outcome appears OK but I have one issue I can't really work out by an easy way. I mean the "Settings" shortcut in StartMenu. I want it to be called "Ustawienia" as it's called in Polish.
I know that the names/paths of several system folders are stored in the package called Base_Lang_0415 which consists of several mui files. I know that the Settings name/path is stored in "shellres.dll.mui".
Now the problem: I got a Base_Lang_0415 from one of Polish chefs but the package changes physical paths to almost all the system folders like
Start Menu -> Menu Start
Programs -> Programy
Settings -> Ustawienia
Favorites -> Ulubione
My Documents -> Moje dokumenty
and many other (i don't even know which ones).
Since I can only work on the ROM dump without any kitchen (and honestly I don't need a kitchen since I only exchange some mui and manila files and add some reg entries - at least up to now), I try to avoid influence on the folders structure. On the other hand I think it doesn't make sense to rename all these folders because an average user will not even notice the change. I want the change only the appearance of the Start Menu and I don't really care about what would be the names of physical folders.
So I started trying to edit only the shellres.dll.mui (with Unsign -> ResHacker -> Sign procedure). First I changed only the string Settings into Ustawienia living the physical path string intact.
But after exchanging the mui file in \Windows\ the Start Menu showed only one icon - Today.
So I changed the name entry and the path entry and changed the physical path of the \Windows\Start Menu\Settings into \Windows\Start Menu\Ustawienia.
But the effect with the new mui was the same and additionally my "Ustawienia" folder has been moved to the Programs folder.
I tested some other combinations of the strings inside mui and physical paths but without any positive effect.
Does some of you know what do I have to do to change only the Settings folder but not to change all the rest?
I understand that you want to do these out of kitchen? I think you should dump an original rom of your own lang and take a look at the initflashfiles.dat. This archive describes the names of windows folders, including Settings
or using a good Mortscript.......
Well, working on dump is not very convinient but as soon as I perform only file/registry operations it's not so bad.
I have the original initflashfiles.dat from stockROM, so I know more less which paths I should change in to new ones. The problem is that everytime my Chef releases new version of his ROM I would have to compare his new initflashfiles with the old initflashfiles for changes and apply the changes manually to the initflashfiles from the stockROM.
But for me it would be the best If I could edit shellres.dll.0415.mui only once changing the name and/or path ONLY for Settings folder, and eventually rename only the Settings folder. Thats a solution I am looking for.
I used MortScript to rename shortcuts inside StartMenu -> Programs. But the problem is that I can run mort i.e. by a config.txt file, but in this moment all the system folders which have the -permdir- attribute in initflashfiles are not moveable or renameable. Also the files inside all the system folders are not deleteable and this means I would have to COPY all the files into new catalogues making the ROM bigger and bigger.
That's why I think I must influence the initflashfiles if I am to use Base_Lang_0415. And this is OK if I would have to modify 1 or 2 paths, but I don't want to modify 25 paths or so...
So my only chance is that somebody would post yet another way to make the Settings appear as Ustawienia (with or without modyfying physical directories).
I don't know how to explain it better because of my English...
Well, i have to agree that Initflashfiles thing is the best way and ,dont worrie, i doubt that your Chef will change Initflashfile for every Rom,even, i never change it from the beginning.
Isn't the initflashfiles a place where are all the files that are indended to be copied/linked to other locations than \Windows\?
That means every new program file or even start menu shortcut will appear in initflashfiles, doesn't it?
Nope.
You can also create Folders in it..little example:
Code:
Directory("\Windows\Start Menu"):-PermDir("Settings")
Skrobel said:
Isn't the initflashfiles a place where are all the files that are indended to be copied/linked to other locations than \Windows\?
Click to expand...
Click to collapse
Nope.
When we import a new program file we have an app.dat file that has inside the instructions to copy files/shortcut over Windows, Initflashfiles its no more touched for that purpose.
Another little example:
Code:
Directory("\Windows\Start Menu\Programs\Tools"):-File("Total Commander.lnk","\Windows\Total Commander.lnk")
This come from App.dat , as you can see it works like Initflashfile.
That means every new program file or even start menu shortcut will appear in initflashfiles, doesn't it?
Click to expand...
Click to collapse
But in case you have to do Hard Reset, all will be lost. And twice...
I think the best option is cook it in first time. Best regards
Well that's what I meant that initflashfiles consists of the paths (directories and files) of all the things we want to put in different folders than \Windows\.
And yes - I want to cook all the Polish files to make it a normal ROM (also after HR).
But in order to clarify:
You Guys say that the only way to rename the Settings in StartMenu is to cook the whole Base_Lang_0415 and to change all the paths in initflashfiles?
Hello all
Sorry for refreshing such an old thread but over a year later I bumped into the exactly same problem.
The only difference is that I use PRB kitchen this time (Jackos's kitchen to be exact).
And all I want to do is to rename the freakin' "Settings" into "Ustawienia" in Start Menu. I thought I found all the references to the Start Menu. I altered the Shellres.dll.0415.mui (responsible for most of system paths), I altered initflashfiles.dat to prepare a permDir in \Windows\Start Menu\Ustawienia, I changed all the keys in registry that I could find...
But still after a flash I have an empty Start Menu with only "Today" link. When I look into the directory structure with Total Commander, everything seems to be OK (all the structure in \Windows\Start Menu\programs is fine) except that my "Ustawienia" folder has been moved from \Start Menu\ to \Start Menu\Programs\
I don't know how, I don't know what else am I missing.
Please help me to get my full translation of the Start Menu...
You're missing "Settings" folder
Actually, full fixing of this stuff isn't that easy, these paths should be hardcodded somewhere (i think so)
Actually it is as easy as it can be.
Made a quick test with Polish language without changing anything and all works as it should.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Well, I've seen Polish ROMs so it actually has to be possible.
@Spiaatie - can you tell me HOW you actually did it?
I see that all the Start Menu links are in Polish on your screenshot. I presume you exchanged at least Base_Lang_0415 package and at least initflashfiles.dat?
Skrobel said:
@Spiaatie - can you tell me HOW you actually did it?
I see that all the Start Menu links are in Polish on your screenshot. I presume you exchanged at least Base_Lang_0415 package and at least initflashfiles.dat?
Click to expand...
Click to collapse
I took 23153 as the Base and all Polish language packages from 28205.
And initflashfiles.dat from [here]
Well... This is a proof that it can be done. However I don't wan't to build up a new ROM. I downloaded Jackos' kitchen just to be able to prepare his ROM in Polish.
Jackos used 21690 for his ROMs as a Base. But actually it is a mixture of packages from many different builds choosen carefully and tested for maximum compatibility and stability.
I want to stay as close to the original as possible except for the language. Honestly I had to prepare many of the .mui files myself because none of the "ready" 0415 build packages worked with Jackos ROM. And now as I have a set of fully working .muis I want to include them into the kitchen (actually I already did it), change any further files I have to change (I copied all the 0409 packages, checked each of them file by file including app.reg, app.dat, provxml etc. altering them basing on files I found in polish packages over the internet). And I bumped into the Start Menu problem.
I will check everything once again but I thought some of you might know where else the paths are stored in the system besides .mui, initflasfiles and the [HKLM\Security\Shell\StartInfo\Start].
There must be a way to change the paths properly...
I finally found a proper copy of shellres.dll.0415.mui. I had to adjust the initflashfiles.dat a bit, and of course paths in all my app.dat. But I have no idea why this shellres.....mui works with this ROM and the other ones doesn't work. The resource structure looks completely the same. All the resource IDs are filled.
Only RCML_DLGDATA section looks differently. I mean the resource IDs are the same, but they have different data. I don't know what and how should I change because everything in there is binary data.
However ultrashot must had been right. The paths have to be hardcoded somewhere else, because in this .mui file the name "Today" is translated differently into "Główny", which directly means "Main". I tried to change this translation, but there are many occurences of this word in this file, and whatever I change in any of it (of course I started with changing all of them) I immediately havethe problem that my Start Menu consists only of the Today link (correctly translated ).
So I left it like it is.
I'm sure however that everythings that concerns Start Menu naming and structure is stored in this single file, because I changed only this file out of the whole Base_Lang_0415 package.
You need to use an mxip_lang.vol that already contains the translation for the call to the settings. Best is to pick one from any shipped ROM of the same version that has your language included.
On smartphone it is settings.lnk, on your device possible settings.cpl (not sure).
Look at the provxml files how other localizations are done and create one in a similar way for your item.
Edit: look at the "Beginners Guide to Windows Mobile (prepare for cooking)" in my signature - you find all the basics for localization there.
Hello Tobbbie,
Thanks for the advice. I read your tutorial many months ago. Actually I kept an eye on your discussion within the OSbuilder thread...
This time I'm almost sure that mxip_lang.vol has not much to do as I have one copy of shellres....mui with which I get "Settings" in my start menu, and I have 2 different versions of the same file which gives me "Ustawienia" (the one I want). So it has to be independent on the other files. The problem starts when I try to adjust the paths myself. It seems like the String resources are somehow connected with binary data stored in this file.
If about the mxip_lang and generally .vol files: do you know how they can be edited by any chance?
Skrobel said:
If about the mxip_lang and generally .vol files: do you know how they can be edited by any chance?
Click to expand...
Click to collapse
Those are databases, that's my clue for you today.
Surprisingly I know!
But that's not a big clue for me. I never had much to do with databases, and in this particular case uncle Google refused to help me...

Calling all kitchen makers

This is an idea for airextreme, ondraster... etc and all the current kitchen makers. I'm in the process of trying to setup a 1 Gb RAMDrive for platformrebuilder to use to dump the gazillion files used in ROM cooking, to try to cut down on the hard drive fragmenting and gain quite a bit of speed too in the process. Looks like I might have to use symbolic links, since I doubt PRB supports \TEMP to a different drive. If the other tools (like imgstofs, libnb.. etc) could also use this method, I think we'd have some pretty fast kitchens!
So... any thoughts on this ?
Well I just tried it with the "Romex Software" RAMdrive (free software) and it friggin flies! I've already got an SSD and that's where my kitchen resides, but now that it sits on a ramdrive, it's at least 10-20 times quicker.
Sounds interesting. How long did it take to go from pressing the build button to generating the nbh? OSBuilder by Barin (not platform rebuilder based, but still copies files once) makes a ROM in about 2 minutes from start to finish (623 modules and 7103 files).
mwalt2 said:
Sounds interesting. How long did it take to go from pressing the build button to generating the nbh? OSBuilder by Barin (not platform rebuilder based, but still copies files once) makes a ROM in about 2 minutes from start to finish (623 modules and 7103 files).
Click to expand...
Click to collapse
I made a FULL Cookie 6.5.X Leo ROM in about 40 seconds. This is on a Core2Duo Dell laptop running at 2.7Ghz...
Just made a Titanium ROM in about 28 seconds... There's definitely some improvement here. For a guy like me that makes a metric ton of ROMs, this can certainly be helpful, but it doesn't mean all kitchens can't benefit from this
I know of possibility of using RAMdisk, I used to have full kitchen set up on my ramdisk and have cooked ROM (XPR) with TF3D in about 30 secs from clicking on "build_rom.bat" file.
I think airxtreme is (partially) working on (partial) removation of whole prb, so he might include support for ramdisk and file caching. Let him speak! lol
OndraSter said:
I know of possibility of using RAMdisk, I used to have full kitchen set up on my ramdisk and have cooked ROM (XPR) with TF3D in about 30 secs from clicking on "build_rom.bat" file.
I think airxtreme is (partially) working on (partial) removation of whole prb, so he might include support for ramdisk and file caching. Let him speak! lol
Click to expand...
Click to collapse
I realize now that this might not be for the everyday chef that makes one or two ROMs. However, if you brilliant programmers can find an easy, seamless way to swap everything to RAM, I think the kitchens will get much quicker. I know mine has and every seconds counts for me, when you make hundreds of ROMs. Hehe Now if I could get rid of the biggest bottleneck, compressing the nbh with 7zip, I'd be in heaven. But for that.. I need more processing power unfortunately.
NRGZ28 said:
I realize now that this might not be for the everyday chef that makes one or two ROMs. However, if you brilliant programmers can find an easy, seamless way to swap everything to RAM, I think the kitchens will get much quicker. I know mine has and every seconds counts for me, when you make hundreds of ROMs. Hehe Now if I could get rid of the biggest bottleneck, compressing the nbh with 7zip, I'd be in heaven. But for that.. I need more processing power unfortunately.
Click to expand...
Click to collapse
Even as an amateur cook-in-training, having faster cooking time means being able to test small changes quickly. Instead of making multiple changes, testing and then finding out which change didn't work out.
For the time being I'm definitely going to try using a ram drive. Well, that's as soon as I finish sorting out my packages which seems to need a couple of days
NRGZ28 said:
This is an idea for airextreme, ondraster... etc and all the current kitchen makers. I'm in the process of trying to setup a 1 Gb RAMDrive for platformrebuilder to use to dump the gazillion files used in ROM cooking, to try to cut down on the hard drive fragmenting and gain quite a bit of speed too in the process. Looks like I might have to use symbolic links, since I doubt PRB supports \TEMP to a different drive. If the other tools (like imgstofs, libnb.. etc) could also use this method, I think we'd have some pretty fast kitchens!
So... any thoughts on this ?
Click to expand...
Click to collapse
It's already in there:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
airxtreme said:
It's already in there:
Click to expand...
Click to collapse
Okay... well then it seems you thought of it. How about PRB's temp\dump folder... does that go to your RAMDRIVE mode as well ?
NRGZ28 said:
Okay... well then it seems you thought of it. How about PRB's temp\dump folder... does that go to your RAMDRIVE mode as well ?
Click to expand...
Click to collapse
Everything is done in the temp folder even the platformrebuilder stuff
mwalt2 said:
Sounds interesting. How long did it take to go from pressing the build button to generating the nbh? OSBuilder by Barin (not platform rebuilder based, but still copies files once) makes a ROM in about 2 minutes from start to finish (623 modules and 7103 files).
Click to expand...
Click to collapse
Well, i redirected Temp folder to RamDisk and i like results very much
Code:
-------------------- TIMING ------------------------
Porting/Rebuilding XIP 00:00:01
Correcting template 00:00:00
Preprocessing 00:00:01
Registry 00:00:09
Metadata 00:00:00
Copying files 00:00:08
Postprocessing 00:00:00
Relocating/Writing modules 00:00:03
Merging/Writing dsm 00:00:02
Building IMGFS partition file 00:00:15
Building ROM file 00:00:12
Net time 00:00:56
Total time 00:01:02
----------------------------------------------------
PACKAGES 418
MODULES 621
FILES 8328
----------------------------------------------------
And also i'll try to reduce registry processing time....
-=Barin=- said:
Well, i redirected Temp folder to RamDisk and i like results very much
Code:
-------------------- TIMING ------------------------
Porting/Rebuilding XIP 00:00:01
Correcting template 00:00:00
Preprocessing 00:00:01
Registry 00:00:09
Metadata 00:00:00
Copying files 00:00:08
Postprocessing 00:00:00
Relocating/Writing modules 00:00:03
Merging/Writing dsm 00:00:02
Building IMGFS partition file 00:00:15
Building ROM file 00:00:12
Net time 00:00:56
Total time 00:01:02
----------------------------------------------------
PACKAGES 418
MODULES 621
FILES 8328
----------------------------------------------------
And also i'll try to reduce registry processing time....
Click to expand...
Click to collapse
Yep. A noticeable improvement for me as well. I use the VSuite Ramdisk application myself. I tried a few and that one seems to be the fastest. I recommend a 1500 MB disk. I had 1000 before and ran into issues with "out of disk space" errors. Of course, the current ROM building tools dont actually TELL YOU they're running out of space, they just crash or give you weird errors. LOL
NRGZ28 said:
Yep. A noticeable improvement for me as well. I use the VSuite Ramdisk application myself. I tried a few and that one seems to be the fastest. I recommend a 1500 MB disk. I had 1000 before and ran into issues with "out of disk space" errors. Of course, the current ROM building tools dont actually TELL YOU they're running out of space, they just crash or give you weird errors. LOL
Click to expand...
Click to collapse
I use SuperSpeed RamDisk Plus on Win7 x64. For me it's enough 1024Mb because only Temp kitchen folder is redirected to ram disk - i tried to rebuild HD2 stock rom with all packages selected
-=Barin=- said:
I use SuperSpeed RamDisk Plus on Win7 x64. For me it's enough 1024Mb because only Temp kitchen folder is redirected to ram disk - i tried to rebuild stock rom with all packages selected
Click to expand...
Click to collapse
Yeah for me, I ran into problems building larger ROMs such as a ROM for the HD2. With 1000, I had to delete the new imgfs.bin right after it gets merged into the .payload, otherwise when nbmerge runs to create the .nb, it crashes. But now with 1,500 it's better. Now I just have to watch out for PRB not to crash, due to low RAM.
-=Barin=- said:
I use SuperSpeed RamDisk Plus on Win7 x64. For me it's enough 1024Mb because only Temp kitchen folder is redirected to ram disk - i tried to rebuild HD2 stock rom with all packages selected
Click to expand...
Click to collapse
NRGZ28 said:
Yeah for me, I ran into problems building larger ROMs such as a ROM for the HD2. With 1000, I had to delete the new imgfs.bin right after it gets merged into the .payload, otherwise when nbmerge runs to create the .nb, it crashes. But now with 1,500 it's better. Now I just have to watch out for PRB not to crash, due to low RAM.
Click to expand...
Click to collapse
I tried using Vsuite Ramdisk Professional with OSKitchen v1.32 beta 4 but the IMGFSFromDump tools crashed. If I don't select to use ramdisk, I can build without any problem. What settings do you use in Vsuite? I'm using 1536MB without selecting any of the other checkboxes. Tried using Scsi Disk and Direct IO Disk and both had errors.
airxtreme said:
It's already in there:
Click to expand...
Click to collapse
zard said:
I tried using Vsuite Ramdisk Professional with OSKitchen v1.32 beta 4 but the IMGFSFromDump tools crashed. If I don't select to use ramdisk, I can build without any problem. What settings do you use in Vsuite? I'm using 1536MB without selecting any of the other checkboxes. Tried using Scsi Disk and Direct IO Disk and both had errors.
Click to expand...
Click to collapse
I tried again with RamDisk Plus with OSKitchen v1.32 beta 4 and got the same error. See the error message and settings I used for OSKitchen. Note that with beta 4, it highlights problematic packages and I had corrected them before building a rom. Without using ramdisk feature, I could build my rom. I've also tried disabling everything in EXT but the same error happens.
zard said:
I tried again with RamDisk Plus with OSKitchen v1.32 beta 4 and got the same error. See the error message and settings I used for OSKitchen. Note that with beta 4, it highlights problematic packages and I had corrected them before building a rom. Without using ramdisk feature, I could build my rom. I've also tried disabling everything in EXT but the same error happens.
Click to expand...
Click to collapse
Maybe the problem is that you chose Q: instead of Q:\?
airxtreme said:
Maybe the problem is that you chose Q: instead of Q:\?
Click to expand...
Click to collapse
I'm using your "Browse" button to select drive Q, and it is showing as "Q:" after selecting. Taking your suggestion, I changed it to "Q:\" and clicked on "OK" button. When I clicked on Settings again to see if the new change had been saved, unfortunately, it was not. It showed as "Q:" again.
-=Barin=- said:
I use SuperSpeed RamDisk Plus on Win7 x64. For me it's enough 1024Mb because only Temp kitchen folder is redirected to ram disk - i tried to rebuild HD2 stock rom with all packages selected
Click to expand...
Click to collapse
If you want to save some space I can give you a imgfsfromdump version that deletes files/modules after adding them. I was also thinking about adding an input file list cache (to avoid having to copy the file in the dump folder and using the source file directly) and a compression cache since most files never change and the compression is done only on data and not on the stream as whole.
zard said:
I'm using your "Browse" button to select drive Q, and it is showing as "Q:" after selecting. Taking your suggestion, I changed it to "Q:\" and clicked on "OK" button. When I clicked on Settings again to see if the new change had been saved, unfortunately, it was not. It showed as "Q:" again.
Click to expand...
Click to collapse
No idea but it should work, the kitchen can work without issues on different drive letters. I'll see if it 's a drive path issue: a \ should be added in the path while from your error messages it looks like it wasn't.

[Q] How to replace \Windows\ .dlls

I want to replace phcanhtc.dll and phcanrc.dll with these dll (http://forum.xda-developers.com/showthread.php?p=5910397#post5910397) for wm6.5.3 with all fixes but I do not know how to do it.
I've searched on forum without relevant results.
Please help
me too, i really dont know
Why not simply, when device is booting i.e. processing HKLM\init, override old dll-version with new dll-version?
Code:
Launch9999="CopyDLLs.exe"
Depend9999=hex:14,00,1E,00
Could You elaborate a bit on that information? I mean, what is "CopyDLLs.exe" and how does it work? Where to find more information about it (Google doesn't return much...)? What is the "Depend" key and what does that HEX mean?
TIA
Thought the concept behind the solution proposal I outlined above is reconstructable to everyone:
1) you simply add two lines to [HKEY_LOCAL_MACHINE\init] with which an executable ( of your choice, I use freeware TULL.exe for those reasons - you can name it how you want to do it, ex. CopyDLLs.exe ) is started. BTW: 'DependXXXX' is the load order index for 'LaunchXXXX' and 'hex' indicates that it's a binary value.
2) using TULL.exe you create a related .INI-file that is read by TULL.exe (or renamed to CopyDLLs.exe, what I think is more meaningful) with contents like this:
Code:
;overide xyz dll
C "\Save\xyz.dll" "\Windows\xyz.dll"
;done
FYI: TULL.exe you can downlad here
Thank You for that valuable information! I have been using and customizing WM four years now and I have so far understood that it's impossible to replace DLL-s which are in ROM and cannot be overwritten with Resco or similar file manager. Although I don't need it anymore (I would have a year ago), it's still good to know. One question tho, if I may... By asking "what does hex mean" I didn't really mean that, I know there are DWORDs, binary values etc, sorry about that I actually meant what does that value do. But You already answered that. I still wonder, how is that load order index constructed, I mean, how do I know what to put there?
TIA.
OverWrite vs. Override
1) You have to distinguish between terms 'overwrite' (i.e. physical replacement) and 'override' (i.e. logical replacement). The method I suggested is to 'override' a DLL before its first use. If a DLL is already loaded, the method of course will NOT work (only the internal DLL counter is incremented by 1)!
2) With regards to how determine DependXXXX value (excerpt from http://msdn.microsoft.com/en-us/library/aa446914.aspx):
The other option for launching an application at boot time is to use the HKLM\Init keys, this requires that the application call back into the operating system by calling SignalStarted( ); to let the operating system know that the application is running. The reason for this is that the HKLM\Init keys have two parts, LaunchXX and DependXX. The LaunchXX key (where XX is a numeric value) simply points at the executable to launch. For example, take the following snippet from my operating system image registry file (once the operating system is built, the complete registry can be examined in text form in the build release folder as reginit.ini)
[HKEY_LOCAL_MACHINE\init]
"Launch10"="shell.exe"
"Launch20"="device.exe"
"Depend20"=hex:0a,00
"Launch30"="gwes.exe"
"Depend30"=hex:14,00
The snippet from the registry above launches three processes, Shell, Device, and GWES. Notice that device.exe (Launch20) has a dependency on Hex:0a (10 decimal). This equates to Launch10, or shell.exe, so the Shell process needs to signal the operating system that it's up and running so that any dependencies (in this case device.exe) can then be started. The same is also true of gwes.exe (launch30), device.exe depends on hex:14 (20 decimal), so GWES can't run until device.exe calls SignalStarted.
OK, thank You again for the thorough explanation. I just want to confirm one thing - as far as I understand from that description, it would also be possible to launch an *.exe which will copy and overwrite the original DLL before it's loaded in boot order? I ask because a bunch of the DLL files cannot be overwritten after the device has booted. Like I said, some of the files in ROM can be overwritten and some cannot be. I have so far suspected that the ones that cannot be overwritten cannot be overwritten because a) they are already loaded; b) they are locked by some process. I cannot imagine any other mechanism that distinguishes between one DLL and another. Would it work or am I missing something here?
You didn't read it carefully
Again: YOU HAVE TO DISTINGUISH BETWEEN OVERWRITE AND OVERRIDE. We all know that a file located in ROM never can be 'overwritten', but 'overridden', this due to the fact how WinCE searches for a DLL called by an application: 1 -> in directory where the application is located, 2 -> in folder \Windows, 3 -> in folder declared in CE's SystemPath and 4) finally in ROM.
Ending this excursion into the world of WinCE: If you make the desired DLL-copy-operations directly after device.exe (CE 5) / device.dll (CE 6) has done its job (means file system is mounted and ready to be used) you can 'override' each ROM-located DLL if it isn't already lasting (loaded) in RAM, means you simply copy new version of DLL to folder \Windows. BTW: The DLLs you see in \Windows might be located in ROM, or not ( i.e. located in RAM - folder \Windows itself is RAM), this depends on how OEM implemented this.
Only a practical example I've in use:
Code:
;
;increase storage memory (KB)
W \NandFlash\CE-Utilities\SetSystemMemoryDivisionKB.exe, 3072
; delay execution by the passed value in milliseconds
D 1000
;load backlight settings
W \NandFlash\CE-Utilities\regimp.exe, /f:\NandFlash\MyRegistry\backlight.ini /s
W \NandFlash\CE-Utilities\RegFlushKeys.exe
;prepare using .NET CF 3.5 instead .NET CF 2.0 (ROM located)
C "\NandFlash\NetCFCfg\device.config" "\Windows\device.config"
[COLOR="Red"]C "\NandFlash\MyCESystemPath\mscoree.dll" "\Windows\mscoree.dll"[/COLOR]
; delay execution by the passed value in milliseconds
D 1000
Original ROM-located mscoree.dll (part of pre-installed .NET CF 2.0) gets overriden with mscoree.dll that comes with .NET CF 3.5, thus now .NET CF 3.5 is running instead of .NET CF 2.0
Thanks again for Your answer, which is again thorough and informative. Basically You answered "Yes" to my question I say this because - as I am not as knowledgeable about WinCE system as You are - it seems I just call the process that You describe as "overriding" simply "overwriting". This is because I wasn't aware how WinCE searches for a file or how the \Windows\ folder contents is handled / processed. And also because when I copy a DLL file to \Windows\ folder, Resco simply asks "Do You want to overwrite...?" etc I am not a WinCE developer, I'm simply an enthusiast and I might call things more simply, sorry for that. But I think I got valuable information from You one way or another and the most important thing is, I got the point. However You call it.
@jwoegerbauer: Thanks friend for the nice examples and explanations .
Cheers!!!
I want to copy a new NLS file to a WinCE device, before system was loaded.
I've tried to do what you suggested here, jwoegerbauer, with my Mio C520.
I've wrote registry keys to activate the sciprt I wrote, before the system loaded - with no success.
I've tried both MortScript and TULL as script-language - both with no success.
The registry keys that I've tried to import are:
Code:
[HKEY_LOCAL_MACHINE\init]
"Launch25"="\My Flash Disk\Temp\CopyNLS.exe"
I've tried also to import
Code:
"Depend25"=hex:14,00
which cause the system to freeze in the main menu (before MP is loaded), and
Code:
"Depend30"=hex:14,00,28,00
which cause the system to freeze in the boot load.
I'll be happy to know what else can I try to activate the code.
If the wince.nls is located in the XIP already you cannot override it. It is loaded before the FAT partition is there and the filter driver could redirect calls to the FAT copy of a dll.
You need to re-cook with the wince.nls moved to the SYS, seems however that some specialties need to be taken care of when doing so (search here at XDA for this).
So, I understand that my only option is to implant a soft-reset during the installaion of MioPocket.
Do you know how to do soft-reset with those chinese devices?
Reset does not help you if the wince.nls is located in the XIP. You will not be able to replace it with any means - the OS will load it before you have any chance to interfere.
Your only option is to replace the OS (with a cooked one) where the wince.nls is different from the start - or where it is not located in the XIP partition.
Why do you want to replace the wince.nls? Probably your problem can be solved another way?
Well, actually, in the Mio C520 - reset does help me. It's re-written the wince.nls file with the one I copied, and used it very well.
My problem now is my Chinese device, based on WinCE 6.0 embedded.
I've installed MioPocket on it, and translate some of the words to Hebrew. The problem is that the hebrew is 'backwards', meaning if for ex. instead of "Hello" - It'll show "olleH".
Here is screenshot of both devices, to the left is the Mio C520, which is OK, and to the right is the Chinese device, which is written 'backwords'
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
So I thoght - maybe, if I'll made the Chinese device to do soft-reset, just like the Mio - maybe the problem will be solved.
But maybe you are right, and there's completely another solution to this problem. I sure hope there is...
Well, I can neither read Chinese nor Hebrew - so nothing to guide you here.
Not sure what you wanted to achieve with the new wince.nls
What I understood is that this files basically gives you all the entries in the Locale panel of the settings file - so where you can select the format of the time/date or currency. First you select the Locale (not UI language which is a different setting) and then you can pick for each of the items defined by this locale set the relevant options that are stored in the wince.nls file. It also holds all menu items of that local setting in all languages - which makes it quite big depending on the number of languages supported.
So if you could "replace" the wince.nls, then for sure it is not in the XIP and all my previous comments are useless for you.
If you are after swapping the direction of writing on your device this is a totally different thing. I am sure it is not part of the .nls but a system setting for the UI part of the device. You may need to search for "Arabic Support" or alike in the Windows CE forums around the world. I have not seen much discussed here at XDA for this specialty.
Good luck!
After a search inside the GPS file system (I forgot to mention that in the original menu of the GPS the Hebrew was just fine - meaning from right to left - what led me to think there's something in the OS responsible for that) - I found a file named SetLanguage.exe which may be repsosible to display the hebrew in the right direction.
Anyone in here can hex the file and understand what's it's usage?
I attached also file named Arab.dll, maybe is also related..
Any help will be much appriciate!
Absolute OFF-TOPIC
@Cheetah64d
SetLanguage.exe (by Lenovo Beijing Ltd.) you attached depends on libraries
Arab.dll, MultiLanDll.dll, ApicalDrvApi.dll, AppLoginDll.dll, MFC80U.dll and COREDLL.dll.
Click to expand...
Click to collapse
This executable is only useable on very specific devices.
As stated by MS, Windows CE by default uses the fonts as listet next to implement hebrew
Arial (subset 1_08) arial_1_08
Arial Bold (subset 1_08) arialbd_1_08
Courier New (subset 1_08) cour_1_08
Tahoma (subset 1_08) tahoma_1_08
Tahoma Bold (subset 1_08) tahomabd_1_08
Click to expand...
Click to collapse

Categories

Resources