Related
XDA - Merge CABs
[Sorry for my english]
Works OK on BlueAngel.
I have 18 CABs in \Extended_ROM. They occupies 11.468.528 bytes. They can be merged into single CAB. It's size is 9.284.964 bytes.
Requirements:
- perl on windows [it will not work on unix nor linux sorry]
- cabwiz from Micro$oft
- some basic knowledge if command line, perl and cabwiz
- thinking
- "WinCE CAB Manager" will be very usefull.
- CABs to merge
---------
How to?
---------
Create clean directory.
---------
Create subdirectory ( I'm using .\[SCRIPT] ) and put there files:
CAB_merge.pl
CeSetup.dll
CheckFile.exe
Setup.DLL
Setup.DLL, CeSetup.dll and CheckFile.exe you can extract from any CAB from the \Extended_ROM
---------
Extract your CABs. One CAB == one directory. Be careful with "WinCE CAB Manager" - you will probably get directory named "Customization Tools". Rename them.
The result should look this:
+--[SCRIPT]
+--Album_BlueAngelAKU26_Generic_WWE_RC20
| +--[INSTALLDIR]
| +--[START MENU]
| | \--[PROGRAMS]
| \--[WINDOWS]
+--Album_EnableStreaming
| +--Windows
| \--[INSTALLDIR]
+--BandSel_BAWWE_140921.sa
| +--Windows
| \--[INSTALLDIR]
etc.
Don't worry if you got subdirs like "Windows" and "[WINDOWS]". Doesn't matter.
Look at attached file example_Tree.txt. May be it can help.
---------
Look for directories named "Temp". Read corresponding ..\Windows\_MoveFileList.txt and move files to their original locations. For example: move Temp\_HTCCamera.dll into ..\Windows\_HTCCamera.dll. (!) Don't remove underlines from name.
---------
Try to find duplicates. Decide, which one is too old (look at the time stamps or file-version - rigt_click/properties/version). Don't delete the old one - simply rename and put '~' on the beginning of the name. For example ~Album.exe. Such files will be ignored. If you can't find duplicates - don't worry. CAB_merge.pl will show you.
---------
Find files, which are not needed. For example "WESTTEK Native Office
Viewers.ppt" or "WESTTEK-Product Info.pdf" from ClearVUE. Rename them - put ~'s on the beginning of the name.
---------
Look at *.LNK. They will be imported as shortcuts, not files. If you wish
to have LNK files - edit them. For example Abum.lnk containing string:
20#"\Windows\Album.exe"
put 999 instead of the number:
999#"\Windows\Album.exe"
You will have to modify LNK files, if target file does not exist within the CAB.
---------
Look for files CM_Entries.xml. If you dont have any CM_Entries.xml, skip this step. Probably the best version of CM_Entries.xml can be found in your XDA in the \windows directory. Rename all CM_Entries.xml to ~CM_Entries.xml - they will be ignored. Create directory .\My_CM_Entries\Windows and copy here
CM_Entries.xml from your device. Maybe wiki can help.
---------
Some rules:
Files:
[INSTALLDIR]\CeSetup.DLL
Setup.DLL
[WINDOWS]\CheckFile.exe
[WINDOWS]\Customize.lst
[WINDOWS]\_MoveFileList.txt
will be ignored.
Files:
~*.*
*.BAK
will be ignored.
Files
_*.*
will got destination \Temp and will be listed in [WINDOWS]\_MoveFileList.txt. CeSetup.DLL will move them into appropriate directories, even if they are in use or locked. You will have to reboot your XDA.
File
\Windows\Platformxxx.reg or
[WINDOWS]\Platformxxx.reg
will be imported
File
*.inf
Registry and shortcuts will be imported. Other sections - copyFiles, Version, CeDevice will be ignored
Files
*.lnk
will be imported if possible.
---------
Execute: perl [SCRIPT]\CAB_merge.pl.
If nothing fails - you will get BA.INF in the current directory. In some cases, you will get Customize.lst, Platformxxx.reg _MoveFileList.txt too.
Execute: Cabwiz BA.inf /err CabWizErr.txt /cpu arm
If nothing fails - you will get BA.arm.cab
Read file CabWizErr.txt - check all warnings.
Look at BA.arm.cab. Check everything.
If everything looks ok, copy BA.arm.cab into your device.
Reset the device.
Try to install BA.arm.cab
If you get any message, that fil cann't be copied - skip them, go back to your source files and rename file - add underline's at the beginning. Remake everything:
perl .\[SCRIPT]\CAB_merge.pl
Cabwiz BA.inf /err CabWizErr.txt /cpu arm
copy
restart
install
and so on.
If everything looks ok: modify CAB_merge.pl modify line
$main::cpFileFlag = 0x00000001;
to have
$main::cpFileFlag = 0x00000002;
and remake CAB:
perl .\[SCRIPT]\CAB_merge.pl
Cabwiz BA.inf /err CabWizErr.txt /cpu arm
Your CAB is ready. Replace source CABs from \Extended_ROM with reult of your effort. Remember to modify \Extended_ROM\config.txt.
Need customization? Look at the begining of CAB_merge.pl
Good luck.
Hi
This app was created a few months ago and lived in the UC thread created by Sleuth255. I said if there was enough interest I would move the post to the it's own thread. I got to 0v03, so I started a new thread.
xcopyce v0-04
This is an application idea l3v5y came up with and somehow convinced me into writing .
Purpose
To copy folders as part of the UC process.
Requirements
* .Net CF 2.0
* UC (Of course).
Usage
*Download the Zip file and extract xcopyce.exe onto your the root of your storage card.
*Add the following lines to your UC File
Code:
CPY1:\Storage Card\xcopyce.exe
CPY2:\Temp\xcopyce.exe
EXEC:\Temp\xcopyce.exe
Replace folder paths where necessary, remeber that EXEC: does not support spaces (hence why I'm copying to \Temp).
Config
Create a file on the root of your storage card called xcopyce.txt - this is the config file.
*The format of the file is "source" "destination" attribs.
*Comments begin with a # symbol.
*By default destination files are created without attributes.
*File attributes are as follows (case insensitive):
Code:
r - read-only
a - archive
s - system
h - hidden
Example:
Code:
[COLOR="DarkGreen"]#Copy Temp from Storage Card to your Device[/COLOR]
"\Storage Card\Temp" \Temp
[COLOR="DarkGreen"]#Copy Folder making all files Read only in the Destination[/COLOR]
\Temp "\Temp2" r
[COLOR="DarkGreen"]#Copy Folder making all files Hidden and System in the Destination[/COLOR]
\Temp2 \Temp3 sh
[COLOR="DarkGreen"]#Copy Folder making all files System, hidden, read-only and archive in the Destination[/COLOR]
\Temp3 \Temp4 shra
Double Quotes can surround either the source or destination, but must surround paths with spaces in. This is the same as when using the xcopy command line. If in doubt surround both sides with quotes.
Logging
A log file is created on the root of your storage card called xcopyce.log. This file is over written every time you run.
Change Log
0v01
- Initial Development.
0v02
- No longer requires the storage card to be called "\Storage Card".
0v03
- Support for destination file attribute setting.
- Now over writes read-only files in the destination.
- Changes to log file structure.
- Handles blank lines in the config file.
0v04
- Bug fix: Line parser algorithm should handle work in all cases. (#10)
Credits
l3v5y for the idea.
Sleuth255 for his UC work in the first place.
nikagl for inspiring more updates.
Download
Here
MD5 Hash
Code:
9E08A46EC3E049FF71BFF476FE818BD4
Thanks
Dave
Thanks Dave! And now let's add some tags for the search engines which I had initially used to find this wonderful program, but did not (I only accidentaly stumbled accross it because you had the link in your sig!):
This tool is the perfect addition to Sashimi and/or UC / User Customization as it can be executed using a Command Line on any Windows Mobile (WM5 or WM6) device to copy files and overwrite read only files!
Regards,
Nika.
Me likey file attributes!
Now I'm going to have to flash a ROM to try it out!
One question though... Can this copy files as well as folders?
BTW, I added this to the UC post.
l3v5y said:
Me likey file attributes!
Now I'm going to have to flash a ROM to try it out!
One question though... Can this copy files as well as folders?
BTW, I added this to the UC post.
Click to expand...
Click to collapse
Thanks mate. At the moment just folders. I'll look at files for 0v04.
Ta
Dave
Hi Dave,
I guess for compatibility with UC you've created the current tool, where it uses a file to perform the copy tasks. Would it be possible to create a 100% command line method, like xcopy in Windows?
For instance here's the usage of xcopyce I'd love to see (straight from xcopy /? ):
XCOPYCE source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W] [/C] [/i] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/u] [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/EXCLUDE:file1[+file2][+file3]...]
source: Specifies the file(s) to copy.
destination: Specifies the location and/or name of new files.
/A = Copies only files with the archive attribute set, doesn't change the attribute.
/M = Copies only files with the archive attribute set, turns off the archive attribute.
/D:m-d-y = Copies files changed on or after the specified date. If no date is given, copies only those files whose source time is newer than the destination time.
/EXCLUDE:file1[+file2][+file3]... = Specifies a list of files containing strings. Each string should be in a separate line in the files. When any of the strings match any part of the absolute path of the file to be copied, that file will be excluded from being copied. For example, specifying a string like \obj\ or .obj will exclude all files underneath the directory obj or all files with the .obj extension respectively.
/P = Prompts you before creating each destination file.
/S = Copies directories and subdirectories except empty ones.
/E = Copies directories and subdirectories, including empty ones. Same as /S /E. May be used to modify /T.
/V = Verifies each new file.
/W = Prompts you to press a key before copying.
/C = Continues copying even if errors occur.
/I = If destination does not exist and copying more than one file, assumes that destination must be a directory.
/Q = Does not display file names while copying.
/F = Displays full source and destination file names while copying.
/L = Displays files that would be copied.
/G = Allows the copying of encrypted files to destination that does not support encryption.
/H = Copies hidden and system files also.
/R = Overwrites read-only files.
/T = Creates directory structure, but does not copy files. Does not include empty directories or subdirectories. /T /E includes empty directories and subdirectories.
/U = Copies only files that already exist in destination.
/K = Copies attributes. Normal Xcopy will reset read-only attributes.
/N = Copies using the generated short names.
/O = Copies file ownership and ACL information.
/X = Copies file audit settings (implies /O).
/Y = Suppresses prompting to confirm you want to overwrite an existing destination file.
/Z = Copies networked files in restartable mode.
Regards,
Nika.
nikagl said:
Hi Dave,
I guess for compatibility with UC you've created the current tool, where it uses a file to perform the copy tasks. Would it be possible to create a 100% command line method, like xcopy in Windows?
For instance here's the usage of xcopyce I'd love to see (straight from xcopy /? ):
...snip...
Regards,
Nika.
Click to expand...
Click to collapse
If I ever get enough free time I might do...
Ta
Dave
It's working well!
But, I must disagree with
This is an application idea l3v5y came up with and somehow conned me into writing .
Click to expand...
Click to collapse
I did not "con" you into doing it. You chose to do it.
l3v5y said:
It's working well!
But, I must disagree with
I did not "con" you into doing it. You chose to do it.
Click to expand...
Click to collapse
Lighten up
DaveShaw said:
Just for the record I was not conned, hoodwinked, tricked or in any way forced against my will by l3v5y to create this program.
Click to expand...
Click to collapse
Hows that suit you ?
Only kidding, I'll expand the word conned into convinced.
Ta
Dave
Thanks a lot. It's a great tool. I'll try to use it with my batterystatus theme.
Error in parser ?
Hi,
first of all, thanks for this apps !
I've found an error : I'm using this line :
"\Carte de Stockage\@Backup\Apps\Application Data" "\Application Data"
and it doesn't work as it must do. I looked at the log file, and found that it try :
source: \Carte de Stockage\@Backup\Apps\Application Data ---- ok
dest: \Application
attribs: Data
so even with double quotes, the parser find a space, and so choose last chars (in my case the end of path) as attribs.
I made a few tests, always bad :
"\Carte de Stockage\@Backup\Apps\Application Data" "\Application Data" r ---> attribs are Data "r
without quotes
...
Can you fix it please?
Thanks
TheBeO said:
Hi,
first of all, thanks for this apps !
I've found an error : I'm using this line :
"\Carte de Stockage\@Backup\Apps\Application Data" "\Application Data"
and it doesn't work as it must do. I looked at the log file, and found that it try :
source: \Carte de Stockage\@Backup\Apps\Application Data ---- ok
dest: \Application
attribs: Data
so even with double quotes, the parser find a space, and so choose last chars (in my case the end of path) as attribs.
I made a few tests, always bad :
"\Carte de Stockage\@Backup\Apps\Application Data" "\Application Data" r ---> attribs are Data "r
without quotes
...
Can you fix it please?
Thanks
Click to expand...
Click to collapse
Doh!
I'll make a fix by then end of play tomorrow, providing I can re-create this first time.
Dave
Woah I really envy you all programmers I dun understand at all what you all are talking about but it seems nice for people who understand it
0v04 is up:
Change Log
0v04
- Bug fix: Line parser algorithm should handle work in all cases. (#10)
Yessss
DaveShaw said:
0v04 is up:
Change Log
0v04
- Bug fix: Line parser algorithm should handle work in all cases. (#10)
Click to expand...
Click to collapse
Yes thank you DaveShaw, it works fine now ;-)
And thanks for your speed!
Wow... I like it. I just tried it with my Diamond and it works great on entire folders. My question is:
I have a folder of ringtones on my storage card. I want to copy those to the \windows\rings folder, but it didn't seem to do it. It didn't overwrite any files in a folder that already existed.
I also want to copy the PIM.VOL from my backup to the root of the device. It also didn't work. Any suggestions?
EDIT: it's my turn to go DOH!
I think I found my error. I read the log and found I had mistyped the path. I also read back through the posts and found it can't do just a single file, only a directory. That's why the PIM.VOL file didn't get copied.
JohnBecker said:
Wow... I like it. I just tried it with my Diamond and it works great on entire folders. My question is:
I have a folder of ringtones on my storage card. I want to copy those to the \windows\rings folder, but it didn't seem to do it. It didn't overwrite any files in a folder that already existed.
I also want to copy the PIM.VOL from my backup to the root of the device. It also didn't work. Any suggestions?
EDIT: it's my turn to go DOH!
I think I found my error. I read the log and found I had mistyped the path. I also read back through the posts and found it can't do just a single file, only a directory. That's why the PIM.VOL file didn't get copied.
Click to expand...
Click to collapse
Yeah for single file's just use UC.
And for the \Rings, if it's cooked into the ROM you might not be able to overwrite the file. Nothng I can do about that
Ta
Dave
sorry guys but i dont really get this lil app much. theres not much to it and no info about how to use it? no real examples and explanations to what it does or how.
So could somebody break it down?
m00moo said:
sorry guys but i dont really get this lil app much. theres not much to it and no info about how to use it? no real examples and explanations to what it does or how.
So could somebody break it down?
Click to expand...
Click to collapse
I wrote it because when you are using Slueth's UC you can only copy files using the CPY1 and CPY2 commands.
This application allows you to copy folders as part of the UC process.
To use...
You create a config file on your card, with the source and destination folders (and any attributes you want) - See post #1.
Then you just execute the xcopyce exe in your UC SDConfig.txt file. (You must copy it to a location on your phone becase the UC EXEC: command cannot cope with spaces ) - The line to add to SDConfig.txt is in Post #1.
Ta
Dave
sorry i think i understand now.
just that upon first inspection of the atributes they seemed to be clumped up and i believed that was the whole code.
thanks for the cool handy app!
m00moo said:
sorry i think i understand now.
just that upon first inspection of the atributes they seemed to be clumped up and i believed that was the whole code.
thanks for the cool handy app!
Click to expand...
Click to collapse
I've updated the sample code to colour the comments green, to help with the reading a little
Dave
Hello!
Now I found a way to Edit DLL, EXE, MUI and all other files for WM5 and WM6!
I ever had problems with the Signature in the Files bur now i have the Solution!
In This package i attached, there is a UnSigner, Signer, Editor and the Certificate for the Phone!
Step1:
First you must Unsign the file you want to edit!
Just go into the Unsign dir and drop the file over UnSigner.exe.
A DOS-Window will popup for a short time, the file is now unsigned!Step2:
Now you can edit the file! I placed the reshacker into the package...
Step3:
If you edited the file successfully, you must sign it again!
Go into the Sign dir and open siggner.exe. Then choose the file you edited and take the "SDKSamplePrivDeveloper" Certificate.
Press "Start sign process" and close it
Viola, now your file is Modified and signed!!!
thx 4 tools in one place.
Method is rather..known, but good.
Hi,
thanks for your good work.
wfg
starbase64
thx nice works i need that
great software suite thanks
i tried this but still cant copy into the \windows\ directory, i can copy from from \windows\ dir tho
thx 4 share.....
gh0st- said:
i tried this but still cant copy into the \windows\ directory, i can copy from from \windows\ dir tho
Click to expand...
Click to collapse
I have not figured this out myself eather, i read "everywhere" to use activesync, but how do i copy a file trough activesync?
schreda said:
Hello!
Now I found a way to Edit DLL, EXE, MUI and all other files for WM5 and WM6!
I ever had problems with the Signature in the Files bur now i have the Solution!
In This package i attached, there is a UnSigner, Signer, Editor and the Certificate for the Phone!
Step1:
First you must Unsign the file you want to edit!
Just go into the Unsign dir and drop the file over UnSigner.exe.
A DOS-Window will popup for a short time, the file is now unsigned!Step2:
Now you can edit the file! I placed the reshacker into the package...
Step3:
If you edited the file successfully, you must sign it again!
Go into the Sign dir and open siggner.exe. Then choose the file you edited and take the "SDKSamplePrivDeveloper" Certificate.
Press "Start sign process" and close it
Viola, now your file is Modified and signed!!!
Click to expand...
Click to collapse
THANKS! Your pakage was very helpful to me and the two certificate cab's did it for me. Now i can translate my M2D into Swedish.
ToddeSwe
i want to modify a dll file
hi, I want to modify a dll file called invdb32.dll in this file an option is block i want to open it, any body help me?
[email protected]
good job! thanx dude
Is there a way we can view the images instead of a bunch of numbers and stuff? BTW great job man! Thank you!
Thanks for sharing
Is this can work with Windows vista
modify the manilla2d exe with this to support animated weather other than rain???
Can i use this to change the Samsung Omnia Menu to different programs being shown? Instead of TouhPlayer Kinoma?
I was able to unsign, modify and then sign a DLL file. But when I opened it in PE Explorer to check it, it gives me errors that the file is now too long. Take it you can't make additions, only changes?
EDIT: Here's the exact error I'm receiving, not sure if it's fixable or not;
03.01.2009 21:03:04 : EOF Extra Data From: 0008C400h (574464)
03.01.2009 21:03:04 : Length of EOF Extra Data: 00001948h (6472) bytes.
03.01.2009 21:03:04 : EOF Position: 0008DD48h (580936)
03.01.2009 21:03:04 : Error! (Step: Examining Exports)
03.01.2009 21:03:04 : Errors detected! Opening file in SAFE MODE...
03.01.2009 21:03:04 : Done.
the original file showed the following;
03.01.2009 21:02:25 : EOF Position: 0008C400h (574464)
03.01.2009 21:02:25 : Done.
converting dll to VGA
hi, i need expert help from any of you to kindly convert this enclosed dll file to VGA 191dpi for my Raphael. this file is part of PHM ppc Plus to enable clibboard in SIP. thanks in advance for your help
MEditor: Simplicity
Hi guys,
I've decided to make it quite a bit easier. Just open up the attached .zip
file, extract the MEditor to Program Files, and double-click Install Context
Menus.reg (confirm if a warning pops up).
Now, to edit a dll, mui, or exe file, just right-click on it and press Edit with
ResHacker. Once you're done editing, just save the file, close ResHacker,
and it'll take care of re-signing the file for you
How it works
I didn't mean to make this post a big deal, but I'd just like to explain how this
thing works. I've added the necessary registry files for adding or removing
(if you choose) the Context Menus for "Edit with ResHacker". It calls
C:\Program Files\MEditor\open.bat, which opens a batch window (do not
close it until you're done editing, it will close itself) that removes the
readonly, archive, system, and hidden attributes off the file, then unsigns it,
then opens ResHacker.exe to edit it. When you close ResHacker.exe, it
automatically signs the file and adds the readonly and system attributes
(hidden and archive aren't necessary). Not very complicated if you think
about it, but it's what I use
smotrs said:
I was able to unsign, modify and then sign a DLL file. But when I opened it in PE Explorer to check it, it gives me errors that the file is now too long. Take it you can't make additions, only changes?
Click to expand...
Click to collapse
Same problem. Internal adresses are being messed up. Tried expanding array in IDA and adding complimentary bits in HEX Editor. No luck. This has to be possible right? Shifting the entire code a few bits as to add a few characters here and there? Please someone, this is driving me nuts.
Help On exrtacting the *.dll file from windows folder
Hello has any one been able to remove the file from the windows folder tried resco and total commander but in vain ..
Awaitin help...
When I'm cooking multiple applications in to my ROM, I have an issue where different applications have the same file name and over-write each other.
For instance,
when cooking in G-Alarm and Opera Mobile they both have image files called something like "nextbutton.png."
So it seems that one of them over writes the image file of the other, which results in one using the image file of the other.
Is there an easy way to fix this?
found the answer!
http://forum.xda-developers.com/showthread.php?t=530710
I don't know if anyone finds this interesting.. But if you are cooking in a lot of EXT packages, chances are you're going to over write several files with common names.. (they all get put in the \Windows\ directory..).
Heres a simple little solution:
(make a batch file and paste this in it)
::for /f "tokens=*" %%a in ('dir /b /a-d') do rename "%%a" "ab0_%%a"
for %%a in (*) do rename "%%a" "ab0_%%a"
Click to expand...
Click to collapse
Paste this in the files directory of your EXT package. It will add a prefix to your files.
Then simply edit the app.dat file in your EXT package with any text editor that has "search and replace" and search for "\Windows\" and replace with "\Windows\ab0_" where ab0 - is the prefix you added to your files.
You'll need to manually edit any lines where \Windows\ was in the destination path, and not the source path. Generally these are a couple lines at the end of your app.dat file.
Hope this helps someone else!
I don't know if anyone finds this interesting.. But if you are cooking in a lot of EXT packages, chances are you're going to over write several files with common names.. (they all get put in the \Windows directory..).
Heres a simple little solution:
(make a batch file and paste this in it)
::for /f "tokens=*" %%a in ('dir /b /a-d') do rename "%%a" "ab0_%%a"
for %%a in (*) do rename "%%a" "ab0_%%a"
Click to expand...
Click to collapse
where 'ab0_' will be replaced (in both spots) as the prefix you want added to your files. Obviously this needs to be unique in every EXT package you change.
Paste this in the 'Files' directory of your EXT package. It will add a prefix to your files.
Then edit the app.dat file in your EXT package with any text editor that has "search and replace" and S&R for "\Windows\" and replace with "\Windows\ab0_" where ab0 - is the prefix you added to your files.
You'll need to manually edit any lines where \Windows\ was in the destination path, and not the source path. Generally these are a couple lines at the end of your app.dat file.
An example of path where \Windows is in the destination:
Directory("\Windows\Startup"):-File("
Click to expand...
Click to collapse
An example of path where \Windows is in the source path:
Directory("\Program Files\Ageye\G-Alarm"):-File("GAlarm.exe","\Windows\GAlarm.exe")
Click to expand...
Click to collapse
Hope this helps someone else!
just a heads up, working on a slight tweak atm to handle file names with one character.
would this work for the program file folder as well
I have four games that i am trying to cook and they all have a file called data.bar, each gets cooked into a different folder because it has info in it for that game, however during the cooking process they each get over written by the next one
Directory("\Program Files\Gameloft\Avalanche Snowboarding"):-File("data.bar","\Windows\data.bar")
What do I need to add to this line for it to work if it will?