Making a cab - a small tutorial - HTC Vox

Because people asked and didn't find the threat on MoDaCo, a small tutorial here. The example is from my Slide Panther theme, there is another one in make.zip. You have to write an *.inf for each cab you want to create. I t contains all files from a specific location and where they will be copied to. You can also specify reg keys.
[Version]
Signature = "$Windows NT$" <-- no changes needed
CESignature = "$Windows CE$" <-- no changes needed
Provider = "frauhottelmann" <-- change to your name
[CEStrings]
Appname="slide panther" <-- the name that will be displayed in the programs menu in settings
[CEDevice] <-- you don't have to change this for the vox
ProcessorType=0
VersionMin=5.2
VersionMax=6.0
[SourceDisksNames]
1=,"Source1",,"Home" <-- specify the name of your source and then the folder with your files (should be in the same location of the *.ini)
[SourceDisksFiles] <-- All files you want to copy have to be here. The 1 stands for Source1 mentioned above, if you have more than one sources (folders) you have to add it above and add an = 2 ... to the end of the corresponding files!
"Slide Panther.home.xml"= 1
"panther.jpg" = 1
"pantherlc.jpg" = 1
[CopyFiles1] <-- Here you have to list the files for one destination folder on the phone. More than one destiantion means more [CopyFiles2] etc.
"Slide Panther.home.xml"
"panther.jpg"
"pantherlc.jpg"
[DestinationDirs] <-- Specify the destinations for the above
CopyFiles1=0,"\Application Data\Home"
[RegData] <-- add reg data, the following is for string values, I don't know how to add dwords, but I never needed it!
HKCU,ControlPanel\Home,Scheme,,\Application Data\Home\Slide Panther.home.xml
[DefaultInstall] <-- Finally specify what you want to be installed, here every destination dir and reg data should be included
CopyFiles=CopyFiles1
AddReg=RegData
Click to expand...
Click to collapse
Once your done with your *.inf, just drag'n'drop it onto the cabwiz.exe and it'll make a cab with the same name as the *.inf! Now you can install it!
Or the alternative, use this program!

BIIIIIIIIIIIIG thx to the german guy ;D
but don't we have to change the versionmax to 6.1 or we will get this stupid "this prog may not display correctly" message??

No, this is the version of WinCE not Windows Mobile, which is still at 5.2...!

Can this be used to install changes to the registry that will be lost after a hard reset?
Roland

Yes everything you install with a cab is lost after hard reset

Nice work...as always...
/**still waiting for german emulator image......same here for italian's one. **/

could you please be a bit more precise about those regkeys? what are all these commas? what are the folder, keys, values?

HKCU,ControlPanel\Home,Scheme,,\Application Data\Home\Slide Panther.home.xml
Click to expand...
Click to collapse
HKCU = HKEY_CURRENT_USER
then after the comma the "folder" path, after the next comma the key name
then after the next comma comes the reg key type, so none is for a string, for others you have to search, because I don't know them. And finally after the last comma comes the value of the reg key!

funny thing, now that i was looking for th value-types i found the tutorial on modaco.
http://www.modaco.com/content/Smart...iscussion/235885/Tutorial-Creating-Cab-Files/

and here are the flags for diferrent types of registry entries:
[add_registry_section]
registry_root_string , subkey,[value_name], flags, value[,value]
[registry_root_string, subkey,[value_name], flags, value[,value]]
registry_root_strings
String that specifies the registry root location. The following table shows the values that are supported by Windows CE.
Root string Description
HKCR The same as HKEY_CLASSES_ROOT
HKCU The same as HKEY_CURRENT_USER
HKLM The same as HKEY_LOCAL_MACHINE
value_name
Registry value name. If empty, the "(default)" registry value name is used.
flags
Numeric value that specifies information about the registry key. The following table shows the values that are supported by Window CE.
Flag Value Description
FLG_ADDREG_NOCLOBBER 0x00000002 If the registry key exists, do not overwrite it. This flag can be used in combination with any of the other flags in this table.
FLG_ADDREG_TYPE_SZ 0x00000000 The REG_SZ registry data type.
FLG_ADDREG_TYPE_MULTI_SZ 0x00010000 The REG_MULTI_SZ registry data type. The value field that follows can be a list of strings separated by commas.
FLG_ADDREG_TYPE_BINARY 0x00000001 The REG_BINARY registry data type. The value field that follows must be a list of numeric values separated by commas, one byte per field, and must not use the 0x hexadecimal prefix.
FLG_ADDREG_TYPE_DWORD 0x00010001 The REG_DWORD data type. Only the non-compatible format in the Win32 Setup .inf documentation is supported.
The following code example shows a typical [AddReg] section.
AddReg = RegSettings.All
[RegSettings.All]
HKLM,%reg_path%,,0x00000000,alpha ; <default> = "alpha"
got it from here http://www.sundialsoft.freeserve.co.uk/cabinfo.htm

could it be that we need to make a .inF (as it says in the instructions) file and not a .inI file?

Is it possible to delete registry entries??

Yes it's inf sorry. And I am not aware of a way to delete reg key with cabs!

Hi frauhottelmann,
It is realy great starting point for CAB maker. I will use this instructions for making my Sliding Panel Default Green cab for 6.1 ver 1.1 ROM.

I have found something really great for cab makers: http://www.gpcarreon.com/?p=524
Haven't tried it though!
EDIT: Under Vista it does, unfortunately, not work!

It DOES work, in compatibility mode!

Related

MortScript Help: Parsing a text file and storing values in the registry

I have a text file seperated by several lines. Its sort of like an XML file, just custom made.
It looks something like this:
<Time1>
-Schedule: 8:00 PM
-What: Doctor
<Time2>
etc...
Can someone show me an example of how I would parse this file? What I wanted to do is the following:
I have five time locations Time1, time2, etc... They each have the category -Shedule and -What. I want to sort through all the Times. In each time I want to extract the info that appears AFTER -schedule and AFTER -what (EG: 8:00PM, Doctor) and insert it into the registry. The registry would be formed like:
HKLM Schedulertime\ With sub directories of Time1, time2, etc... In each time there would be a string (I guess) of Shedule and of What. And the script would insert the values into each time in the registry.
Can someone write a script showing me how its done? Thanks in advance.

Hardware breakpoint w/IDA 5.2

I'm disassembling an application and would like to see how it fills a certain text field (in a list view). It displays the result as "X units", where X is a number and units indicates the units of the value. I disassembled the program in IDA and found the "units" string. To make sure the application uses this specific string (and not %d units, for example), i ran unsigner on the application and modified the string via a hex editor. Indeed, the string has changed in the appropriate place.
Using "jump to xref to x" on the "units" string, i found 5 places that use it - each by LDR'ing it to R1. I set breakpoints on all instances but, surprisingly, none were hit. I then tried to set a h/w breakpoint on the string by setting a breakpoint on:
.rdata:00022ED4 aUnits_0 unicode 0, < units>,0
and selecting "hardware breakpoint" but IDA does not allow this (OK button is greyed out and cannot select read/write/execute). I tried this with 5.2 and 5.3 demo on an HTC tytn ii.
Questions:
1) Can anyone think of a way the string is used but will not be seen as a reference to the string?
2) Why can't i set a h/w breakpoint?
3) Any other ideas?
Thanks

Help with UC and xml.

Hello I'm trying to use xmlprovisioning to customize some features of S2U2.
An example of one key I'm having problem with is the following:
<parm name="ShowOwnerInfo" datatype="binary" value="01"/>
I just cannot get the value of 01 to stick. When I go back into S2U2 registry setting it is still showing as value not being set (according to CeRegistryEditor).
I don't have any problems changing other datatypes, such as: integer and string.
Am I don't something wrong?
Thank you in advance for all you guy's help.
Okay, I think I found out the reason:
"Binary values are a PITA since they're encoded Base 64 (see my entry for Owner Information above). If you want to set owner information as I did in the example, then you need to convert Unicode to Base64."
from: http://forum.xda-developers.com/showthread.php?t=366337&highlight=user+customization+binary
Can someone walk me through how to do this?
Is this any good?
Unicode to Base64 Convertor
Thank you for the suggestion.
I have already tried the tool, but what it gives me does not generate the effect that I'm looking for
Maybe I need to manipulate the value some how and then put it into the encoder??
Hi,
just an idea:
Binary data are hex ... so i attached a little txt ... just rename it and import to your registry.
It show how Binary-Values work (as far as i understood them )
In HKLM you'll find a Key (Folderlike) called "fwt"
Therein are three values
1. Capital
2. SmallLetter
3. Test
1. => FWT as binary data => 46,57,54
2. => fwt as binary data => 66,77,74
3. => all signs (letters, numbers, symbols) from 00 to FF
Space is 20
CapitalLetter start with 41
SmallLetters start with 61
Just use CeRegistryEditor and you can see them clearly .
I hope this helps!

[REQ] utility to change the default program assignment

Hi,
i am looking for a utility to change the default program assignment.
So to change the default program for jpg or mp3.
This program is somewhere here, but I can not find it.
with friendly greet
starbase64
Moved as not software release..
Total Commander can change the default app for file extensions.
AdvancedConfig also allows you to change file associations.
Hi,
Thanks for your help, but that's not what I want.
I am looking for a special program that must be here somewhere.
with friendly greet
starbase64
All this info is held in the registry, but it is a two step job.
[HKEY_CLASSES_ROOT\.mp3] has a (Default) data value of 'MP3File'
[HKEY_CLASSES_ROOT\MP3File\Shell\Open\Command] has a value of 'wmplayer.exe "%1"'
The file type has to be converted to a file type string to get to the correct subkey value in order to find the application that will be used to try and open it.
Another example :-
[HKEY_CLASSES_ROOT\.doc] 'docfile'
[HKEY_CLASSES_ROOT\docfile\Shell\Open\Command] 'pword.exe %1'
These values can be changed with any registry editor.

[Q] Registry Key for app list

Anyone know where the app list (when you swipe to the rights registry key(s?) are stored?
I want to disable the alphabet things above the apps when the list of apps is big..if that makes sense.
It's called a jump list. This has been asked for before (please use search)!
I don't know what key controls it offhand, but I'm pretty sure it's been found.
Thanks a lot, and sorry man but (as you could see) I didn't know the correct name for it which lead me to pretty much nothing.
---EDIT---
As this thead now comes up first when searching appropriately and because the other bit of info is somewhere in a ROM discussion I will add the information I found there. Props go to the original post author
Its this key:
Root Key: HKEY_CURRENT_USER
Key Name: Software\Microsoft\Start
Value Name: GroupingThreshold
Value Data: 0 (The Note: 0 or any other numeral (amount of the programs) with which will appear list of the jump of the programs)
Value Type: Dword
so 0 = always on.

Categories

Resources