Jump to content

Create CAB files to change registry


Guest MitchellO

Recommended Posts

Guest jrosaly
Hi Jorge,

I see nothing wrong with your code. Check this screenshot

post-12251-1164412520_thumb.jpg

It installs on my test device using Jerre.Smart.Install utility

http://www.modaco.com/JerreInstallSmartpho...PC-t105684.html

Also, if you just copy the CAB to phone then execute on the phone, it will install. I think the problem is with the way ActiveSync 'CEAPPMGR.exe' behaves with CABs compiled using the makecab-xml technique.

I'm actually copying the cab to the sd card and running it from there, bypassing activesync. Here is the cab and the xml it generates, see if that helps some more. But everytime I run it it says installation unsuccesful. Hope u can help me figure it out, is it that I need to run it from main memory??

Jorge

PS thanks for your help you've been very attentive.

test.cab

_setup.xml

Link to comment
Share on other sites

Guest gpcarreon (MVP)

Halloo Jorge,

Some observations:

1. Your XML is about 2.09kb compared to a working 1.04kb XML.

2. Your XML generates an output CAB that is 548bytes while the working one attached is only 446bytes (zip archive contains the XML and working CAB)

Working.zip

Aha! So who's the culprit? :D

If you open your XML in hex editor, you would clearly see lots of spaces (00s, NUL) in between each letter. Simple visual comparison would yeild no difference (XML in Notepad). I suggest you do a binary comparison instead.

My XML

post-12251-1164426091_thumb.jpg

Your XML

post-12251-1164426148_thumb.jpg

PS

You are most welcome. I am happy helping this way. :)

Link to comment
Share on other sites

Guest jrosaly
Halloo Jorge,

Some observations:

1. Your XML is about 2.09kb compared to a working 1.04kb XML.

2. Your XML generates an output CAB that is 548bytes while the working one attached is only 446bytes (zip archive contains the XML and working CAB

Aha! So who's the culprit? :D

If you open your XML in hex editor, you would clearly see lots of spaces (00s, NUL) in between each letter. Simple visual comparison would yeild no difference (XML in Notepad). I suggest you do a binary comparison instead.

PS

You are most welcome. I am happy helping this way. :)

Hey,

haven't even been able to test yet, but what should i be looking for, saw that you said there are spaces in my xml, should i avoid these and how, it's been years since i did programming, and i can read your code, but need help in the syntax, should i use a specific text editor, avoid spaces, etc, let me know. i thought it was fine but obviously not let me know what u recommend, this is all about making my ppc fully recoverable if need be.

Jorge

Edited by jrosaly
Link to comment
Share on other sites

Guest gpcarreon (MVP)

I just use Win XP's Notepad for the XML, same syntax as yours. I was suppose to ask you how come you have those spaces on your XML? From the simple tests I performed, I think those spaces make a big difference. Kindly try the XML on the ZIP attachment.

EDIT1:

If it would help, attached is the 'MAKECAB' utility I used

MAKECAB.EXE

EDIT2:

I get 2.09kb output XML if I save the file in Unicode. Exactly the same as your XML

post-12251-1164432911_thumb.jpg

My suggestion, use ANSI encoding (1.04kb)

post-12251-1164432967_thumb.jpg

Link to comment
Share on other sites

Guest jrosaly
I just use Win XP's Notepad for the XML, same syntax as yours. I was suppose to ask you how come you have those spaces on your XML? From the simple tests I performed, I think those spaces make a big difference. Kindly try the XML on the ZIP attachment.

EDIT1:

If it would help, attached is the 'MAKECAB' utility I used

EDIT2:

I get 2.09kb output XML if I save the file in Unicode. Exactly the same as your XML

My suggestion, use ANSI encoding (1.04kb)

Well that seems to have been the issue, I used the ansi encoding and it worked, go figure.By the way eventhough it worked, what spaces are you refering to? the ones before the />, I just saw them in your original xml code n thought they were needed. If they're not, let me know. Thanks for all your help.

Jorge

Edited by jrosaly
Link to comment
Share on other sites

Guest gpcarreon (MVP)

Hi Jorge,

The ones before /> are needed. I was referring to the 00's as seen under HEX editor when you still used non-ANSI encoding for your XML (figure 2 of post # 52).

I am glad it worked now. :)

Link to comment
Share on other sites

  • 4 weeks later...
Guest craptree

hi jrosaly

it seems to me likeall your binary entries are wrong

for example

would actualy be data type integer

and the value would be 4096000

so you would get

the reason for this is that the value 003e8000 is actuly a hexedecimal number, you then need to convert this to a standard decimal number

a good converter is the one listed at this site

http://www.tonymarston.net/php-mysql/converter.php

quick note about the converter, the converter does not like lower case letters

hope this helps

riz

Link to comment
Share on other sites

  • 3 months later...
Guest rmarquez

Hi there:

After lurking for a very long time I decided to come out of the dark, register and account and post. I wanted to take the time and thank everyone who has contributed in one way or another to this thread. This is certainly an education in all the inner workings of the wm platform.

With that said I used the little xml to cab trick to make my own cab for my Q. HOwever I'n having problems. Would someone here consider checking this code? I can't just seem to find whats cuasing it not to install on my device (which is app unlocked)

Thanks for such a wonderful resource and to all contributors for taking the time to keep this community going.

Cheers

Roy
















































[/codebox]

Link to comment
Share on other sites

Guest gpcarreon (MVP)

Hi Roy,

Kindly check line 27 of your XML

<characteristic type="HKCU\ControlPanel\SoundCategories\InCall2

<parm name="InitVol" value="0" datatype="integer" />

</characteristic>
Try changing...
<characteristic type="HKCU\ControlPanel\SoundCategories\InCall2
...to
<characteristic type="HKCU\ControlPanel\SoundCategories\InCall2">

The screenshot shows the possible culprit (in red box)

post-12251-1174282290_thumb.jpg

Link to comment
Share on other sites

Guest rmarquez

Thanks so much for your prompt reply. My brain must have been fried from looking at all those characteristics...

I fixed that typo and another one I found but still couldn't get it to run. I had to go line by line and I found the culprit:



[/codebox]

Somehow, my Q does not like this line of code. However, I can go into the registrywith an editor and change the value manually. I was just looking for a way to do this automatically. Perhaps its something about the Sprint firmware on Q's... weird?

Thanks again for all your help.

Hi Roy,

Kindly check line 27 of your XML

[code]<characteristic type="HKCU\ControlPanel\SoundCategories\InCall2 <parm name="InitVol" value="0" datatype="integer" /> </characteristic>[/code]
Try changing...
[code]<characteristic type="HKCU\ControlPanel\SoundCategories\InCall2[/code]
...to
[code]<characteristic type="HKCU\ControlPanel\SoundCategories\InCall2">[/code]

The screenshot shows the possible culprit (in red box)

Link to comment
Share on other sites

Guest gpcarreon (MVP)

Hi its me again ;)

Try using the DEC equivalent of asterisk.

From

<characteristic type="\HKCU\ControlPanel\Sounds\SystemStart">

<parm name="Sound" value="\Windows\*none*" datatype="string"/>

</characteristic>

To

post-12251-1174320618_thumb.jpg

For other special characters, kindly refer to this page

http://www.bbsinc.com/iso8859.html

Link to comment
Share on other sites

Guest rmarquez

Thanks so much! That worked quite nicely... any resource you would recommend as far as reading up on Windows Mobile? The MSDN link on the begining of the thread (post #4) is dead. It gives a 404 error... or perhapd a book I can read and do some catching up since I havent touched code in a good while...

Hi its me again ;)

Try using the DEC equivalent of asterisk.

From

<characteristic type="\HKCU\ControlPanel\Sounds\SystemStart">

<parm name="Sound" value="\Windows\*none*" datatype="string"/>

</characteristic>

To

post-12251-1174320618_thumb.jpg

For other special characters, kindly refer to this page

http://www.bbsinc.com/iso8859.html

Link to comment
Share on other sites

  • 6 months later...
Guest gpcarreon (MVP)
Sorry to Hijak the thread but this question relates to the ini file...

Is there a command to Delete files in the ini so the cab file will delete a particular file

Hi. Welcome to MoDaCo forum. ;)

You can specify a pre/post XML when compiling your CAB via CabWizSP. PreXML will be carried out before the main INF instructions as opposed to PostXML codes which are carried out after the INF instructions. Kindly check this sample CabWizSP syntax:

cabwizsp Sample.inf /postxml PostXML.xml /cpu ARMv4
What happens when you run the code? CabWizSP will compile instructions in 'Sample.inf' to output 'Sample.ARMv4.CAB'. It will add 'PostXML.xml' to the output CAB. The target device CPU would be 'ARMv4' (SP2003) The post XML file may contain your 'delete file' instructions. An example would be:
<characteristic type="FileOperation">

	<characteristic type="\Storage\windows\AppMgr\Install\Target File.ext" translation="install">

		<characteristic type="Delete">

			<parm name="ForceDelete" />

		</characteristic>

	</characteristic>

</characteristic>

Above code will force delete 'Target File.ext' at \Storage\windows\AppMgr\Install. Note that the files you wish to compile should be in the same folder as the INF, the (Post) XML and the CAB making files (makecab.exe, cabwiz.ddf, CabwizSP.exe)

I hope that helps.

Link to comment
Share on other sites

  • 2 months later...

gpcarreon -

Hopefully you can help me out like you have in the past.

I created a cab file to change the default string value in a key, how ever the proper value has quotes in the value so when I make the cab and run it on the device it is unsuccessful. If I remove the quotes from the value, the cab runs successfully on the device...

Unsuccessful CAB

Link to comment
Share on other sites

DISREGARD... I just noticed you updated your post...

Thanks for the prompt response. Your suggestion does not help. I believe the reason for this is because in the below, there are quotes within the quoted value... If I remove the quotes around %1 and create the cab, it successfully installs on my device... Unfortunately without those quotes, the desired result does not work...

Edited by jenya
Link to comment
Share on other sites

Hi gpcarreon -

I'm hoping I can get more of your help :(

Is there a way I can have the CAB file execute something. Here is the scenario:

I want to bundle a video in to the CAB and when the cab extracts the video, I want it to automatically launch the video.

Is this possible via INF or _setup.xml?

Thanks,

Jenya

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.