Related
Hi, there is a huge interest in other communities about what you are doing in here. I can say only one word, unbelieveable.
I have a few questions,
1- has anyone tried to do the same using any other Pocket PC?
2- is there any thoughts about to create a version of mkrom for Windows (I believe that the current one is for Linux)?
TIA
Hello!
I have very interested in mkrom version for windows too....
Hark0
[www.klonycs.net]
P.S. Frank, please email-me if you have more info about this topic.
Ehm, Windows as in the 95/98/ME/2000/XP family of desktop Operating Systems does not run from ROM, it runs from disk. It does not have persistent RAM, and as such does not have a cold-boot vs. warm-boot, unless you count OS installation as a cold-boot.
You can modify properties of the installation procedure using installation scripting, and you can 'freeze' an install you like by creating an 'image backup' of the drive it's installed on.
Duh! The above shows how dense I can be. Ofcourse you mean running mkrom on Windows instead of unix, not running mkrom for Windows.
You should be able to run it on Windows already, if you install the ActiveState perl environment and mess with it little.
I'm thinking maybe we should offer an environment through a perl script and samba or ftp right here... Hmmm...
Yes we were talking about to run the mkrom on windows.
What you are saying about the Perl enviroment could be a solution but I'm not really familiar with that. Could be simplest to recompile or create a version of mkrom for Windows (to run on windows)?
I know you are busy guys but I think you have not understood the magnitude of what you have done. Right now you can find 1000s of users willing to modify the ROM of there PPCs, no matter what kind of PPC they have. So please... think with a wider perspective.
I have a few things I have tried in my page www.pc-counselor.com/e740rom.htm and as you can see there, in the case of a Toshiba e700 series is very easy to get a copy of the rom and put it back. A lot easier than in HP devices.
That was me in the previous message, I did not notice I was not logged. Sorry
XDA developer Itsme said:
a windows box with http://www.cygwin.com/ unix tools will do too.
make sure you select perl and bash in the cygwin setup tool.
Click to expand...
Click to collapse
Keep in mind that for those who are not familiar with Linux and perl, etc all these instructions sound like chinise.
:lol:
You could also use a CD-ROM version of Knoppix.
No hassle to install Unix, just boot from CD and make one of your HD partitions write-enable.
I think I managed to create a rom image with MKROM on windows, and since I've never done anythign like this before, I thought I'd try to explain the process I followed so that other unskilled user like me could do it as well.
to all you advanced user, please feel free correct this if it is wrong.
1. MKROM
Download the MKROM distribution archive from http://www.xda-developers.com/mkrom/
… read the page while you’re there!!
Unzip mkrom.zip somewhere easy to find (not on your desktop, because your desktop is not easy to find in a DOS/UNIX window, I would suggest c:\mkrom\)
2. O2 ROM
Also download the Radio Unit Upgrade from:
http://www.sourceo2.com/O2_Developers/Launched_devices/O2_xda/default.htm
Once downloaded right click on Radio_Unit_Upgrade_v31703.exe and select “winzip/open with winzip” (if you don’t have winzip, download the demo at http://www.winzip.com)
In Winzip Locate the the file nk.nbf and extract it to your c:\mkrom\ folder (be careful, by default winzip will create a folder called “English” and put nt.nbf it in that folder. You don’t want that! It should just be in the c:\mkrom folder)
3. install CYGWIN
MKROM needs to be run UNIX or Linux (don't know which) by default but you can apparently run it on windows by using one of these:
• Activestate (http://www.activestate.com/)
• Knoppix (http://www.knopper.net/knoppix/index-en.html)
• CYGWIN (http://www.cygwin.com)
I tried CYGWIN
• Download setup.exe from http://www.cygwin.com
And run it. (this is a small software that allows you to chooses which bits you want to download and install)
• I selected “install from the internet” but you can also download first then install from the local drive.
• on the next screen I left all the default as they were. I don’t know whether DOS or UNIX text file type is better here, so I just left the default: UNIX.
• On the next screen select a FTP server from the list.
• Now you’re presented with a list of packages to download. By default, you won’t get all the necessary ones (the ones for the PERL scripts).
I didn’t know which particular package was needed so I’ve just selected the whole DEVEL section. ( to do that, click on the DEFAULT next to DEVEL and it will change to INSTALL.
If someone could tell us which particular packages are actually necessary, this would cut down on the 100Mb download
The rest can stay as is.
This will download then install, nice and clean!
4. runnig MKROM
Double click the CYGWIN icon and this will open a “DOS” window (I know it’s not DOS, but it looks like it)
You will see a prompt with
Code:
[email protected] ~
$
type in :
Code:
cd c:\mkrom
or whatever you’ve saved it to (now you see why it’s better to keep it simple)
the XDA-Developers have included a README in mkrom.zip which specifies you then need to type in:
Code:
chmod +x tounicode
then you’re ready to go:
type the following:
Code:
bash mkrom.sh nk.nbf
let it run for a while, (it took a bit over a minute on my P700Mhz)
when you see the prompt again, you’ve done it!
As described in http://www.xda-developers.com/mkrom/ you now have 2 files in c:\mkrom\out\
xdaromimg-1.nb1
xdaromimg-1.nbf
I think the file xdaromimg-1.nbf is the same as the nk.nbf that’s in jeff’ release.
http://cuba.calyx.nl/~jsummers/XDA/XDA-developers-SER-v11.exe
It’s exactly the same size, but I don’t know how to check whether they are exactly the same files.
the next step is to rename your xdaromimg-1.nbf to nk.nbf and replace the one that's in XDA-developers-SER-v11.exe with your new one. (do this still using winzip) save it and run the exe.
!!!!!I haven't tried to flash my XDA!!!!! but I just I'd share my experience with you, please tell me if I've got all of this right.
Ben Darras
is this right
XDA- developers, Jeff, anyone else,
Could you confirm that this procedure is correct, before we start shooting ourselves in the foot! :shock:
Regards
Alex
Does cygwin have perl installed by default?
Jeff did something else we recommended, which is take the files needed for EzWAP from a machine with the O2 ROM installed, and copy them to one of the files directories of the new ROM.
But EzWAP is quite large, so if you never use WAP you could copy other stuff there that more suits your needs.
Otherwise, the above procedure looks correct at first sight. Mind you we use a Linux box, and we have no experience doing this under Windows.
We recommend all people that burn ROMs they built themselves have an PC SD-card writer have experience using 'XDArit', so they can always use the bootloader method to get back to where they were. Flashing the .nb1 file using 'XDArit' and an SD card is marginally safer, since using 'Programme A' could overwrite your bootloader if something went really, really wrong.
Once you have established a new ROM will get the unit back up to the point where it connects via ActiveSync, others can flash it without too much danger. But if you want to avoid all danger and be completely on the safe side then do not make your own ROMs...
Thanks for the answer, Peter Poelman
Does cygwin have perl installed by default?
Click to expand...
Click to collapse
no it doesn't, I suggested...
...By default, you won’t get all the necessary ones (the ones for the PERL scripts).
I didn’t know which particular package was needed so I’ve just selected the whole DEVEL section. ( to do that, click on the DEFAULT next to DEVEL and it will change to INSTALL.
If someone could tell us which particular packages are actually necessary, this would cut down on the 100Mb download
Click to expand...
Click to collapse
Thanks for the additional info and the warning.
I love what you guys are doing here!
Ben
Jeff did something else we recommended, which is take the files needed for EzWAP from a machine with the O2 ROM installed, and copy them to one of the files directories of the new ROM.
But EzWAP is quite large, so if you never use WAP you could copy other stuff there that more suits your needs.
Click to expand...
Click to collapse
I'm using the NK.nbf that came from Jeff's download. this is the one that has ezwap files in it? If so can i download o2 rom update from there website and use it to build a custom rom? i don't need ezwap on my ppc and rather use it for something else. is my logic correct?
thanks
alex
kalex said:
I'm using the NK.nbf that came from Jeff's download. this is the one that has ezwap files in it? If so can i download o2 rom update from there website and use it to build a custom rom? i don't need ezwap on my ppc and rather use it for something else. is my logic correct?
Click to expand...
Click to collapse
Correct. You can download mkrom like it is now, not add the EzWAP files, and you'd have more space for your own stuff in there.
If you want to check that two files are identical, try the unix 'diff' command (which should have been installed with cygwin)
Announcing: ROMkitchen
Special Edition ROMs are soooo yesterday.... We're proud to unveil our largest project yet: ROMkitchen. Now you too can modify your ROM to contain precisely what you need. Create your personal ROM, based on the ROM you like.
Wanna see: Have a look at our showroom kitchen to see what we mean. As you can see the showroom kitchen shows the PPC2002 based 3.17.03 ROM released by O2, as well as the 4.00.05 Microsoft WM2003 test ROM. Neither of these ROMs is really present though: you need to download the scripts, include your own ROM images, and run the scripts on your own unix machine. But once you do, you and your friends can create ROMs to your heart's content.
Why didn't we just include these files and make it all work? Because we're not licensed to distribute these ROMs, that's why.
So now what?
Play around to see if you like it.
download all the files visible when logging in using FTP to xda-developers.com username 'kitchen', password 'kitchen'.
Put them on your own unix machine, which should be capable of executing php scripts, and which should have a 'little' memory, disk and processing power left over. (We're afraid ROMkitchen wasn't built with resource-efficiency in mind.)
Add your own ROM files, see the readme files in the "data/00[...]/_/cfg" directories for details.
Notes:
If you set up your ROMkitchen, make sure you only use it for yourself, and with ROMs you legally own. We're not responsible for abuses.
If you use an ftp-client which can ignore files which are newer on your side, you can regularly check for updates and always have the newest kitchen.
ROMkitchen does not yet support outputting self-extracting binaries a-la Jeff's exe. We're working on that.
ROMkitchen currently supports English language ROMs only. We're working on this too.
The welcome exe is back in ROMs made with it: a little too much hassle to make our own. So you'll have to go through the silly tutorial every cold-boot.
XDAunlock is missing still. (It will be incorporated, but most people will be making 4.00.05 ROMs, and it doesn't work on that anyway...)
How does it work?
The ROMkitchen consists of a number of php scripts that present the form with all the options to choose from, and which copy files ready for our 'mkrom' utility to process. If you take a look you can see the raw structure of the data that is presented and inserted into the ROM. We'll find some time soon to explain, but you can already learn quite a bit if you look at the files and directories carefully.
xda-developers u are AWESOME
I'm going to try it as soon as i get home tonight. So all that is needed at first is a 2003 or 2002 image file?
thanks
alex
This looks awesome
Is it possible to run this program on Cygwin ? I have configuered the Cygwin download to include Bash and Perl but can't find a reference to dd. I confess that although I have a reasonable amount of programming experience I have never used Unix before so don't even know how to invoke the scripts so any help would be much appreciated.
Richard
just uploaded everything to my unix box and tried to run setup.sh from 4.00.05 directory. i also uploaded bootloader.nb0 and rom.nb1 files to the cfg directory. when i run ./setup.sh this is what i get:
[[email protected] _]# ./setup.sh
Usage: splitrom <romimage(s)> [options]
-wx xipchain where to write xipchain
-wo osrom where to write output image
-wb bitmap where to write bitmap
-wl bootloader where to write bootloader
-rl bootloader which bootloader to use for NBF
-n nbfinfotext what NBF header to use [ex: PW10A1-ENG-3.16-007]
-ri nbfinfofile or where to read NBF header info from
-wi nbfinfofile where to save NBF header info
-rx xipchain where to get xipchain from
-rb bitmap where to get bitmap from
-rm [email protected] insert new romsection.
-ob offset where to find the bootup image
-oe offset the end of the desired os image ( default: 0x81f00000 )
-t NBF | B000FF | NB? | IMG type of result image (default is NB1)
also when i tried to convert the default.fdf file to default.reg i get error saying "unknown fdf file signature" and it creates a 0 byte default.reg file.
any help is appreciated. i know i'm asking too many questions, but same happened with ur mkrom tools and once i got answers from u i was able to build roms without any problems.
thanks
alex
Hold on a tick, if you guys added one more feature it would go nova, however. Some features I would like to see is the ability to mix drinks, roll joints, cook dinner, and cure premature baldness/cancer.
It would also be nice if you could arrange for the program to be delivered to my house by the drunken, naked Chinese twins, Fok u and Fok me.
You guys are the bomb. Keep up the great work!
-
# Put them on your own unix machine, which should be capable of executing php scripts, ...
Click to expand...
Click to collapse
this implies that you should also have setup a webserver, for running the php scripts.
you will have to change the 'splitrom' commandline in setup.sh depending on what source file you have.
it is not a configure all automatically script, just a guide, to what sort of is supposed to happen for setup.
Holy Cow, you guys are amazing....
This is just a short message to say I'm fighting with it as we speak. My friend's box does have PHP, this is good. I've already found that it needs two subdirs under its root ('download' and 'workspace') to be world-writeable. Took me a while to figure that one out. Haven't got it running yet though, this ROM setup.sh thing is far less than intuitive. But I have the two ROMs which have all the other mumbo-jumbo done: 3.17.03 and 4.00.05, and I will get this to run, if it's the last thing I do.
Jeff (Just back from the U.S., up since 4 am, severe jetlag)
Jeff Summers said:
I've already found that it needs two subdirs under its root ('download' and 'workspace') to be world-writeable.
Click to expand...
Click to collapse
Whoops... I guess you're right, that should have been documented. The things you take for granted sometimes...
Thanks, and good luck...
Thanks
hey, you are doing a great job guys, keep it up.
welcome back Jeff Summers.
Othman
OK, here's the status:
I'm close, really close. It wouldn't detect my OS, the bash on the system I'm on is in /usr/local/bin instead of /bin and now it's complaining about a missing perl file. I'm working on it though...
probably you are missing http://search.cpan.org/author/GBARR/Scalar-List-Utils-1.11/
which is included with perl 5.8, but not with perl 5.6.*
if you don't have root access to you box, you can also install ( see the README for build instructions ) list-utils in your home directory, by editing the generated Makefile, and changing 'PREFIX=$(HOME)', and then adding
Code:
export PERL5LIB=$HOME/lib/perl5/site_perl/5.6.*
to your environment. ( with '*' your perl version )
It's working
It's working!!!
With a little help, I got it to work !!!
Have a look at http://cuba.calyx.nl/~jsummers/ROMkitchen
I just created my first ROM!
Hi, I tried create 4.00 based Rom on Jeff web and it works... thanks.
I discovered only small problem, that there are not installed links in Programs to extra included programs. But I can do it manually for now.
I tried to start my version of romkitchen on my notebook but I was stopped on integration PHP to IIS. I tried some last installer php-4.3.2-installer.exe for Windows but I got CGI error when I tried to access index.php. I'll work on it.
I hope that it will run too, like mkrom on Cygwin.
aleho said:
Hi, I tried create 4.00 based Rom on Jeff web and I works... thanks.
I discovered only small problem, that there are not installed links in Programs to extra included programs. But I can do it manually for now.
Click to expand...
Click to collapse
Ah, you haven't noticed that we put these in subfolders maybe. Go to Programs, and you should see subfolders. If you unchecked the option to put in these subfolders, then you have also unchecked everything 'below' that, meaning you haven't installed these programs.
I tried to start my version of romkitchen on my notebook but I was stopped on integration PHP to IIS. I tried some last installer php-4.3.2-installer.exe for Windows but I got CGI error when I tried to access index.php. I'll work on it.
I hope that I will run too, like mkrom on Cygwin.
Click to expand...
Click to collapse
Go for it...
Ah, you haven't noticed that we put these in subfolders maybe. Go to Programs, and you should see subfolders. If you unchecked the option to put in these subfolders, then you have also unchecked everything 'below' that, meaning you haven't installed these programs.
Click to expand...
Click to collapse
I had unchecked only few of programs to fit in ROM 4.00 free memory.
But folders in Programs like Phone, System tools,... were not in this case created, but they were checked.
jeff: great work...
one bug i found: when i disable the modify rom and add programs i get an error: Warning: Invalid argument supplied for foreach() in /home/jsummers/public_html/ROMkitchen/processor.php on line 480
i wanted to get the orig 4.00.05 rom without modifications
Jabba
REQUEST: zipped Kitchen
Hi !
Thanks all developers! Great work
One request though: please put a zipped version of your ROMKitchen at your ftp -> downloading hundreds of files is a mess *g*
Thanks... Jabba
This is so frustrating: I had it working perfectly, and now all of a sudden it stopped working. I'm working on it...
It's working now. Not really sure what was up, but it seems to have fixed itself.
Nice!!! These new ROMs are sooo cool. All the programs are stored in neat subfolders with icons....
I did find that D9 and PocketCHAT (The EVB apps) do not yet work on WM2003. It complains some EVB shared files are still missing.
Hi Jeff, just to say I've successfully used your ROM builder principally it has to be said to get hold of 4.00.05 so I only choose the Hot Fix item.
Checked in startup (which I've not looked in before) to see the hotfix and its there, there is also aFlashman, cFlashman Handsfree poutlook, SMSReciever, stk & Ussd. Are these part of the normal ROM? Just want to check that the thing is running as lean and clean as it can.
Many Thanks
Hi All
I hope someone can help with the following problem.
I had wanted to use Mkrom on 2003 roms but after encountering problems with rom addresses and on KP2L's advice I switched to the "Rom Kitchen" as the code has been updated to handle 2002 and 2003.
I did not want to run the whole thing as I don't know much about Web servers on Unix so I just downloaded the 2003 directory and added back the missing folders and tools. After converting the files I am able to run ./mkrom.sh and make a "raw" .nb1 image that loads O.K to my XDA
The problem starts when I try to add files.
Trying a simple example of just placing ssnap.exe in the files folder and not bothering with links/ subfolders etc ./mkrom seems to work in as much that it picks up the files>transfers them to files 1/ 2 adds the files from cfg and > to the XDA1/2 .bin together with xip and loads to the rom under XDA_Developers 1/2. When this Rom is installed the XDA freezes at the bootsplash screen (Not completely, if you press the volume button it comes up to the start screen but the screen is miles out of calibration and most of the menus are missing) To test this further I downloaded a rom from Jeffs kitchen and stripped the files for the cfg/files folder and re-ran ./mkrom.sh but I get the same problem .
I have run lots of UltraEdit "Compare" reports,of all of the cfg/dumprom output files, between mine and Jeffs, and apart from some addressing differences all the data is getting to the rom. (I can post the reports if anyone wants them)
I suspect, although I'm useualy wrong, it's data "type"/ conversion conflict and wonder if under a full Rom Kitchen the files are converted in some way before being placed in the files folder prior to ./mkrom processing ?
As a last resort, I guess, I will have to set up the Web server (I have got one just never used it) and do the whole thing but hope to avoid it with a bit of help.
PLEASE :?: :?: :?:
Thanks
Richard
O.K I guess the question was too long/boring lets try this:
Do the scripts in Rom Kitchen make any changes to the files to be added to rom prior to processing by ./mkrom.sh
Richard
Richjn said:
Do the scripts in Rom Kitchen make any changes to the files to be added to rom prior to processing by ./mkrom.sh
Click to expand...
Click to collapse
No: the script basically just sticks the files into /files and then runs mkrom.sh
Not sure why your scenario isn't working, it sounds like it should...
How can I remove from the original ROM some files like T-Mobile, AIM ... etc. ?
I cooked up a 4.00.10 T-Mobile with GPRS monitor and batterypack but i want some more addons.
Can someone tell me what steps are required to remove from the ROM some files ?
Thanks,
Decebal
ROM = Read Only Memory.
But, i've we're able to add Programs to the ROM in the ROMkitchen, i think we're also able to remove programs.
Regards
Stefan
cruisin-thru said:
ROM = Read Only Memory.
Click to expand...
Click to collapse
obviously i do not deserve that
i was talking about the ROM image and since i've already succeded in putting into the ROM two apps i want to try something else.
so if anyone know how to remove at least T-mobile and AIM files from the image i'll be happy.
thanks,
Decebal
I believe they are in an area not able to be modified.
I was just quoting from that site, it does state that it cannot be erased, modified etc, no offence meant here. :roll:
The mkrom tools will allow you to 'unpack' a rom, i.e. extract all the files that are in it.
A rom, to the best of my understanding, has a 'native' or stock part to it, and then a series of XIP chains -- programs that are added into the free spaces of the rom.
I dont know what happens if you try to remove files from a rom that are part of the standard build...
Maybe the TMobile stuff is in a 'removeable' section of the ROM... there is also the 'operator' section... I am assuming that is a location that will give the 'operator' or creator of the rom space to put specialized programs, such as TMobiles phone apps, etc.
So, it seems that your best bet is to get the mkrom tools and read about how to extract/remove files/rebuild a rom.
Hey, it may even work!
J
You can rebuild a rom image from extracted files and leave some files out but Mkrom does not use compression and therefore the rom you end up with will probably be bigger than the rom you started with.
Richard
If I am correct, an eeprom is something else than a flash-rom.
so the article at least states it incorrectly.
if it is flash, you should be able to modify it.
XDA developer Itsme said:
If I am correct, an eeprom is something else than a flash-rom.
so the article at least states it incorrectly.
if it is flash, you should be able to modify it.
Click to expand...
Click to collapse
Now, I do think that the real question is "How do we unlock the 'ROM' so that it can be modified being that it is an eeprom?"
Misterdollymaker
you need backup the ROM to *.nb1 or *.nbf file, than using tools to add/delete file to *.nb1 , write the new file back to XDA ROM. it is fun to add/delete file to your personized ROM!
cgigate said:
you need backup the ROM to *.nb1 or *.nbf file, than using tools to add/delete file to *.nb1 , write the new file back to XDA ROM. it is fun to add/delete file to your personized ROM!
Click to expand...
Click to collapse
this is quite interesting...can you elaborate further?? I wish to learn more...
cgigate said:
you need backup the ROM to *.nb1 or *.nbf file, than using tools to add/delete file to *.nb1 , write the new file back to XDA ROM. it is fun to add/delete file to your personized ROM!
Click to expand...
Click to collapse
Yes, please! I wish to learn more too! I am looking to remove the standard sounds and replace them with my own (using same names) as well as the boot image and desktop.
yea, no kiddin, i'd like to know how too!
im sure its not impossible, 'they' did it the first time arround.
why not hacking it? and since its all at no charge (no profit) are we realy breaking any patents?
I wanted to know if there is an easy :wink: way around, to put our own programs in the rom. xda-developers certainly can't put ezwap2.5, and the total commander appears to be older version, while new version is much better. There are some more freeware application I'd love to put in there
xda-developers already posted some tools to do job, such as MKROM ...
cgigate said:
you need backup the ROM to *.nb1 or *.nbf file, than using tools to add/delete file to *.nb1 , write the new file back to XDA ROM. it is fun to add/delete file to your personized ROM!
Click to expand...
Click to collapse
I'm interested too
How can i add/delete file from nb1 file?
Thanks
Fabio
I've used mkrom suite to do this (even for Smartphone2002). This are great tools.
Unfortunately it's not as easy as you might think. It's nearly impossible to build a ZERO-KNOWLEDGE ROM file explorer which can add or delete files "on the fly".
You will still have to look for valid gap's in the original rom where you can add a new XIP block.
All .exe and .dll files are "fixed up" that means they MUST run at THE fixed ROM position where they have been initially placed (execute in place). If you dump an exe or dll file you can't use it for other than disassembly to see how things work.
Removing files is a very hard task (they are splitted over the whole rom). And the resulting gap's are mostly not more than 10-16 kB. All you can do is to "hide" files (simply patch the directory entry).
So you see compression is not the real problem (see programers corner for a .bib file which can be used with romimage.exe - a Microsoft Tool to build XIP blocks, this tool supports compression)
John Smith
only the kernel actually runs in the virtual memory area mapped to rom,
all the other XIP stuff runs from a virtual memory area mapped somewhere
in the top of each processes memory space.
( look at the 'real=' values in the output of dumprom )
so for all the other modules it should be possible to move them around
in rom a bit, I think you only need to keep the pagealignment the same.
Hi,
The virtual memory address is also fixed in the module. (That's why I've to rebuild all the stuff I want to copy from other roms).
Since all relocation info is gone the module can't run from another memory position. So the only thing you can do is to move it in it's own XIP section...
John
Intro
Lately I've seen a lot of posts by people who are trying to replace WM internal or driver DLLs, either for hacking/testing or to release. Aside from the possibility they are just doing something that won't work in the first place, I've seen failure a lot of times because files aren't properly signed, or if they are, the certificate in question not being in the right certificate stores for it to have any effect. On some ROMs it will still work due to patched NK.EXE, on others it won't, its just not very reliable.
So, I present you with the correct way of doing this by means of a small tool that will do this for you: DriverWiz. It will take care of most of the stuff, and leave you room for additions. You will however still need some basic knowledge of the command line, if you don't have that, you have no business doing anything like this anyways.
Background
I use this technique myself all the time. When just hacking away, replacing system DLLs to trace calls, etc. It's also the same method used for the HTC-CA drivers and the ICS installer. This method works on most stock ROMs as well, though not on all of them (in rare cases some security policies are set that will prevent CAB installation)
Usage
It's fairly simple to use. Just extract the attached zip file somewhere, open the command promt, and change directory to where the zip was extracted. That's the installation part.
Now when you actually want to build a CAB file from a DLL, you use the DriverWiz.bat file.
DriverWiz v1.0 by Chainfire
Usage:
DriverWiz.bat "Description" "CAB-name" "DLL-name-1" ["DLL-name-2" ...]
Examples:
DriverWiz.bat "New DDI" "ddi.cab" "ddi.dll"
DriverWiz.bat "Two DDIs" "ddi.cab" "ddi.dll" "ddiaux.dll"
Click to expand...
Click to collapse
DriverWiz will take care of signing the DLLs, inserting the certificate, etc, and you will end up with a proper CAB file for this kind of thing. Just copy it to your device and run it to install.
#1. You need to put the DLL files in the same folder as DriverWiz. Do NOT include paths in your DLL names
#2. Include the quotes in the command like in the examples!
#3. The first time you install a CAB made by DriverWiz, your phone may still give you a certificate warning. This is normal, don't worry about it.
Caveats
While this method has never failed me yet, it is possible that some files cannot be replaced this way. Just a disclaimer
Modifying
DriverWiz bases the inf file it will create to build a CAB from on DriverWiz.tpl. If you need to add registry entries to your CAB file, modify DriverWiz.tpl before you run the batch file. You can make other modifications too, add files, etc. Just take care that you don't break it
You can use your own certificates as well, instead of the supplied "Dummy" certificate that comes with DriverWiz. The files you will want to modify/replace are DriverWiz.pfx (used for signing) and DriverWiz.xml (used for injecting the certificate). I'll see about finding a reference for how to do that online and posting the URL here (someday). Creating a new certificate from scratch can be a frustrating effort - make sure you got openssl handy
Changelog
19.03.2009 - 1.1 - Added some file exists checks and attribute changes
Download
Temporary PlaceHolder for more Info.
Whoo this is hot from the plate, looks very promising!
Driver testing withoud cooking! joohie
Well if you replace the wrong files you're still going to need to hard-reset to boot. I advise KITL before you do
Works flawless. You tha man.
Didn't work for me trying to cab up No2Chems Fast Charge battery divers.
ruskiyab said:
Didn't work for me trying to cab up No2Chems Fast Charge battery divers.
Click to expand...
Click to collapse
What exactly happened? Attach the files and such
It made the cab and all, but when I went to install it, the unsigned error message popped up just like when I tried it with WinCE cab manager.
That is perfectly normal behavior. The first time you install a CAB with this certificate it will not know the certificate. However, once you install it, the certificate will be injected in the right place, and the files signed with the certificate (the driver files in the CAB) will be allowed to be run.
It won't happen the second time you try it
So if I try to install it again, it'll work fine? is there aa soft reset required in between? I can replace these drivers manually by renaming the old ones and copying them over, the whole reason I want a cab in the first place is to facilitate the UC process when I flash a different rom
ruskiyab said:
So if I try to install it again, it'll work fine? is there aa soft reset required in between? I can replace these drivers manually by renaming the old ones and copying them over, the whole reason I want a cab in the first place is to facilitate the UC process when I flash a different rom
Click to expand...
Click to collapse
Actually it should just work the first time. Just click OK when the certificate error appears.
Nice nice nice work!
error message
I got error messages when creating a cab from a rilphone.dll. Does it mean anything, or are these errors okay? I guess I'm specifically wondering about the SignTool error. If its okay, then my cab should be good.
EDIT: I think I found the problem. I didn't have UAC disabled in Windows 7. I tried it again, after disabling it, and it works fine now. Thanks for the easy to use tool!
syntax for registry entries?
I was experimenting with creating a cab for the Rogers folks who need a specific rilphone for their Caller ID to work. There are some registry entries associated with this feature, so I was wondering what the correct syntax is for putting the registry entries into the .tpl file. I've tried a few different ways, and I've either a gotten a 'Registry section is empty' message, or a 'Registry has an unsupported registry root key' error. I'm sure its something really simple I'm missing, so any help you can offer is appreciated.
It just seems that since we now have this easy method to sign these dlls, so that they can be used in any ROM, that the Rogers people shouldn't have to jump through so many hoops to get it to work.
EDIT: Nevermind. I'm an idiot that didn't do a little bit of research. All is well now.
Excellent stuff, Microsoft may rant about this way of distributing signtool and cabwiz though.
Chainfire said:
You can use your own certificates as well, instead of the supplied "Dummy" certificate that comes with DriverWiz. The files you will want to modify/replace are DriverWiz.pfx (used for signing) and DriverWiz.xml (used for injecting the certificate). I'll see about finding a reference for how to do that online and posting the URL here (someday). Creating a new certificate from scratch can be a frustrating effort - make sure you got openssl handy
Click to expand...
Click to collapse
Here's an intro to cert stores for WM:
http://msdn.microsoft.com/en-us/library/aa458010.aspx
pfx generation is a 2-liner with openssl:
# Generate a CA certificate
openssl req -new -nodes -x509 -days 9999 -newkey rsa:1024 -md5 -keyout cert.key -out cert.cer -subj "/CN=DriverWiz"
# Convert to pkcs12/PFX format
openssl pkcs12 -export -in cert.cer -out cert.pfx -inkey cert.key
got error messages under vista sp2, any ideas?
I also get an error saying that the latest version of CAPICOM.dll is missing. The ones I can find for download from the internet are version 2.0.0, and the tool requires 2.1.0.1 or later.
Does anyone have the needed version of the dll?
EDIT: Found it, 2.1.0.2 version of the dll is in the attachment.
Time Saver !
Many thanks; DriverWiz /w the CAPICOM.DLL saved me about an hour of troubleshooting.
Cheers,
Thanks for the capicom.dll Even after disabling UAC in W7Rc1 it wouldn't go, so great to have it posted to.
Chainfire, which format should the Reg's be added?
I tried the default .reg formating just under:
[Registry]
[HKEY_CURRENT_USER\ControlPanel\Profiles]
@=""
"ActiveProfile"="Normal"
?
Scrap that i found the .inf format
[AddRegistry]
HKCU,"New Key","",0x00010001,1
Many thanks for this, i'll try to Point Driver replacing Sinners from now on to here.
Well INF files are a regular female dog.
If you rather use WinCE CAB Manager, the trick is easily done as well. I do not have it handy right here (I'm not at dev box), but it goes like this.
Put the DLL's and EXE's that need to go in the CAB into the same folder as DriverWiz
Execute the following command from the command prompt in the DriverWiz folder: signtool sign /f DriverWiz.pfx *.exe *.dll
Open your WCM/CAB with CM
Somewhere is an option for "Pre XML" (main screen IIRC).. click to add/edit, and load the DriverWiz.xml file
Save
signtool sign /f DriverWiz.pfx *.cab
Et voila. I should really make an update to DriverWiz to include CAPICOM and write a proper guide on how to do all this manually (including making your own certificates and such). It's easy if you know how
If you could insert another empty post for me at the top, that'd be great.