Need to put a CAB in rom - Windows Mobile

I copied a CAB file in files2 (from mkrom) and I put a line in initobj.txt, the line in initobj.txt is:
Directory("Program Files"):-File("m.cab","\Windows\m.cab")
When I did double click on m.cab a pop-up window said me:
"Cannot find 'm' (or one of its components). Make sure the path and filename are correct and all the required libraries are avaliable"
But if I copy the m.CAB with Active Sync It works,
Any idea.

It needs a cab installer!
The problem is that I erased the CabInstall.exe, but I didn`t change the entry in registry for the one that goes with the wceload.exe which is the cab installer that comes with windows CE by default.

Related

config commands

hi to all
I managed to open the extended rom on my iMate using exteded rom tools
I even added files (*.CAB) in it and added them into the config file to install them automatically each time I make a hard reset.
My problem now is this:
I have a file that I copied into extended rom and I want it to be copied to (let us say) "\windows\" directory. Is there such a copy command in config file that i can add it to the command lines in config file? And if so what is the correct syntax
Thanks
there is.
Search in the forum.
It is smt like
CPY1: on one line indicating source
CPY2: on next line indicating target
Why dont you make a CAB file in which you can do whatever you want?
Nice thing of a CAB file is that the action will be registered (as an installed program!)
do you mean like :
cpy1: \extended_rom\kk.exe
cpy2: \windows\
to move the file kk.exe from the extended rom directory to the windows directory
and how can i read about making cab files and with which program
I have been using Win CE cab manager to make cabs, it's a great program, but the trial will only run 10 times.
http://www.ocpsoftware.com/products.php?nm=cecabmgr
andit is too expensive for me to buy... ($146)
So I have been using it sparingly to save my free goes.
to move the file kk.exe from the extended rom directory to the windows directory will look like this
cpy1: \extended_rom\kk.exe
cpy2: \windows\kk.exe
did not work
hi
i have tried the command cpy1, cpy2 to copy files within extended rom, but the files were not copied, do you have any idea why?
i am sure that i typed the path and the filename correct
thanks

Automate Multiple CAB installation

Okay after a few hours of searching and fiddling I got this to work out...but it still needs improvement.
I followed some details from:
http://www.gpcarreon.com/?p=291
So basically you get this and install it:
http://nsis.sourceforge.net/Download
Then create a folder at root level (i.e. C:\MyInstall)
In that folder place the following files:
All the .cab files (which you obtain like locked extended ROM files)
All .ini files (which you create)
T-Mobile Customization.nsi (which you download from below)
In the Above mentioned nsi script I have allocated 20 spaces, however you can add/remove lines as needed. Don't forget to increment the following fields:
“FILE 1"
SecFile1
SectionIn 1
File 1.ini
File 1.CAB
StrCpy $0 “$INSTDIR\1.ini”
I didn't change it in my file, however if you want to change File 1 to another name make sure you're consistent so all reference to 1 would change to your file name. Capice?
Now for your cab files depending on how many lines/cabs you have your basic format for your cab file will look like this:
[CEAppManager]
Version = 1.0
Component = 1
[1]
Description = MT-MMS-WI19-051213-1 [MMS]
Uninstall = MT-MMS-WI19-051213-1 [MMS]
CabFiles = 1.cab
Where Component is the name from the "File 1" and the [1] matches the component name. Description and Uninstall as far as I can tell can be whatever you like. And CabFiles must be the cab files name, in this case 1.cab (which reflects in the nsi file)
The file name for the ini must also be the same as you specified. File1.ini
After you have done all this save your script, cabs, and inis in the folder at the root level. And then right click on the script and choose compile! If you successfully compiled the script you should see an option to "Test Installer" and you will also a new executable file generated.
Now for the problem part where I seek your assistance As I mentioned before I'm a rookie when it comes to this stuff so I haven't the slightest clue where I would begin. But if you do use this method it's quite annoying to have to pause every two seconds to wait for the device to prompt you where to install it and for you to acknowledge successful installation. So what I'm thinking is how do I make it "silent" meaning it automatically installs to the "Device" and does not say "successful installation press ok to continue..." I was thinking this would be done in the ini file for each of the cabs, however I do not know. Anyone else know what can be done in this matter.
Thanks in advance...hopefully this will help someone....

Deny or restrain installation of applications WM5

I want to deny or restrain installation of applications on the fly as an service/process or by making changes in the registry on WM5 devices. Any ideas? The app preferely in C++/C#
CAB files are installed by wceload.exe in the windows directory.
You can overwrite this file with a blank exe, or remove the CAB extension reference to it in registry under HKEY_CLASSES_ROOT.
Deny or restrain inst. of apps
Thanks, yes I've thought about this - but this isn't a very dynamic solution. When a person run a CAB I want to check if app is okay to install from a "List" - then show a popup with a message saying something like "Sorry, you are not allowed to install this application. Please contact your company IT Admin for more info".
Is the .CAB association in HKEY_CLASSES_ROOT linked to wceload - so I could run an app to validate CAB, and if ok execute wceload..?
levenum said:
CAB files are installed by wceload.exe in the windows directory.
You can overwrite this file with a blank exe, or remove the CAB extension reference to it in registry under HKEY_CLASSES_ROOT.
Click to expand...
Click to collapse
Write up a registry entry in HKEY_CLASSES_ROOT to associate .CAB files with your custom file. Then, when the user taps on a CAB file, your program reads it, compares it against its list and, if it's approved, calls WceLoad with the appropriate parameters.
The key would probably look something like this:
HKCR\cabfile\shell\open\command
(default) = "<path to your app>" "%1"
(%1 will be replaced with the path to the CAB file).
Then, if the CAB was approved, call WceLoad with the following parameters:
\windows\wceload.exe "<path to cab file>" /nodelete
Note that some apps, may call wceload.exe directly. I am not sure if Activesync does it, but I know a couple of custom installers that do.
If you really want to secure the device against unothorized software do the following:
Rename wceload.exe to something else like wceload1.exe.
Create you own wceload.exe, but make sure you capture and preserve all command line parameters in case you need to transfer them to the original file for proper installation.
This way you can be sure no one will install anything without your permission.
Olso, keep in mind wceload is used to switch themes as well. (It handles *.tsk files).
Very much..
Thank You all!!

Auto install of CAB files

Hi all,
I have a cab file (call it cab1) containing three files to install on a WM5.0 device. These three files are another cab file (call it cab2) and two config files. I drop cab1 onto the device and it executes. This puts cab2 and the two config files into the correct folders that I want. This is all fine
What I need to happen then is for cab2 to auto execute without anymore interaction. How can I add this instruction to cab1?
Dropping cab2 into the startup folder and waiting for the device to soft reset is not an option for me
The whole install needs to happen on the device by sending a single cab file to the device i.e. I cannot use any msi etc to install over ActiveSync
I've created the cabs in VS2005
Thanks for any help
This one is tricky. You need to create a setup.dll for cab1 then have it launch an exe and exit. The exe will wait about a second for th cab installer to complete then launch the installation of cab2.
i believe this is the only way to accomplish what you want with one cab without combining the content of cab1 and cab2 in to a single cab.
Thanks levenum
Combining the cabs is what I would like to do but cab2 is signed so I can't unpack it without breaking it. That's why I went down the road of putting it into another cab with the other files I need to install
Is there a way to add a post-install command to launch cab2 in the setup.dll of cab1(or anywhere else)?
What levenum means is that you can't launch the installation of the second cab from the first one. The reason for this is that only one instance of wceload.exe can be running.
You need to build a setup.dll in the first cab file. The first cab must also have an exe that will install the second cab file. You launch the exe from the setup.dll. The exe must wait until wceload.exe has shut down after installing the first cab before it can install the second one by running createprocess on wceload.exe with the right arguments.
If you don't know how to make the setup.dll, take a look in the Windows Mobile 5.0 SDK. It includes an example on how to do this.
Did you get it?
Øystein

ReLoad v0.1 Beta

ReLoad
This is a MortScript script written to simplify reinstalling cab files, and restoring files back to the device from a zip file on the trinity.
More information about MortScript at http://www.sto-helit.de
-v.01 Initial Release
Known Issues
-Cab files that initiate the installation of another cab file ie.Wisbar Advanced
-How to setup:
1)Extract Reload.rar to your storage card.
2)Place cab files in the CabsAuto folder if you want to the cab to be automatically installed to the device (installation to automatically install to the storage card is currently not available).
3)Place cab files in the CabsManual folder if you want to be able to choose where to install the cab.
4)Place file in the Backup.zip file that you want to be restored.
ie. If you wanted example.jpg to be placed in the \Windows folder, place example.jpg in the Windows folder of the zip file.
*Please note that the cab files placed in the CabsAuto folder need to conform to only asking the user for the installation destination, then showing installation successful/unsuccessful. Otherwise you might encounter some
problems. You should place cabs that don't conform in the CabsManual folder, or adjust these cab files with programs such as WinCE CAB Manager.
-How to use:
1)In the Reload folder, execute Run1st. Click ok the the window that pops up. This just installs MortScript
2)Execute Run2nd. This will initiate the script that will first install the CabsAuto, then CabsManual, and finally restore the files in the zip file.
Use at your own risk.
Download
http://rapidshare.com/files/29964511/Reload.rar.html
Thx, that's a good idea.
is there a way to have it restore registry entries from a .reg file?
Is there a way to install certain cab files on RAMDisk/Storage card without individually clicking the install option??
@racerx_
Currently there isn't a way to restore the reg file directly. But you can create a cab from the reg file and then have that cab automatically installed.
MortScript wasn't able to read in the reg files i saved with resco explorer, so I gave up on doing it this way. For right now the easiest way is to create a cab file with WinCE Cab Manager.
@c_shekhar
The best way to install the program to the Storage Card, backup the reg (and any possible files installed on rom), then create a cab from this.
This post has alot of good information on this.
http://forum.xda-developers.com/showthread.php?t=277727
yeah, i've been trying like a madman to get win ce cab manager to make a cab of my .reg file.. but when i click on 'import' and try to grab the .reg file it tells me it's only for registered versions of the program.. is there another way i'm not seeing? cause right now the only other options i see for registry entries is to manually create them one by one which doesn't sound very exciting hah
thanks for the help..
@racerx
What OS and version of WinCE Cab Manager are you running. I heard of some problems with the newest version of WinCE Cab Manager with Vista. I am running version 2.1.0.35.
If that isn't it, you might have run the program past its initial trial use.
hmm.. Win Ce CabManager is 2.1.0.50 running on xp.. still got 17 uses left.. sigh..
Maybe i missed something. Just in case, what button or command are you using to get your .reg file into WinCE? I was using the 'file' 'import' command.
@racerx
That's the same way I do it. I would find an older version and try it again.
Reload V0.2
I made a couple of changes to the script for a rom we are going to be releasing soon...it checks if Backup.zip exists and only does the unzip if it does...I also added a SDBackup.zip for files to unzip to Storage card (specifically exe's and dll's I've already upx'd to shrink them but reinstalling the cabs replaced them again so this puts them back)....
#ReLoad
#v.02 Initial Release
#Use at your own risk.
#v.02 Extract files from SDBackup.zip to Storage Card
If(Question("Do you want to ReLoad?", "Reload 0.2", "YesNo")="No")
EXIT
EndIf
Run("Storage Card\ReLoad\Bin\Message_Running.mscr")
RegWriteDWord("HKLM", "Comm", "AutoRunFlag", "0")
RegWriteString("HKLM", "Comm", "AutoRunCFG", "\Storage Card\ReLoad\CabsAuto\Config.txt")
#Create Config File
Delete("\Storage Card\ReLoad\CabsAuto\Config.txt")
WriteFile("\Storage Card\ReLoad\CabsAuto\Config.txt", "SHOW:\Storage Card\ReLoad\Bin\ReLoad.bmp^NL^")
ForEach x in files { "\Storage Card\ReLoad\CabsAuto\*.cab" }
WriteFile("\Storage Card\ReLoad\CabsAuto\Config.txt", "CAB: ", 1)
WriteFile("\Storage Card\ReLoad\CabsAuto\Config.txt", x, 1)
WriteFile("\Storage Card\ReLoad\CabsAuto\Config.txt", "^NL^", 1)
EndForEach
#CabsAuto Install
RunWait("\Storage Card\ReLoad\Bin\AutoRun.exe")
#CabsManual Install
ForEach x in files { "\Storage Card\ReLoad\CabsManual\*.cab" }
RunWait(x)
EndForEach
If (FileExists("\Storage Card\ReLoad\Backup.zip") )
#Restore files from zip to main storage
UnzipAll("\Storage Card\ReLoad\Backup.zip", "")
EndIf
If (FileExists("\Storage Card\ReLoad\SDBackup.zip") )
#Restore files from zip2 to storage card
UnzipAll("\Storage Card\ReLoad\SDBackup.zip", "\Storage Card\")
EndIf
KillScript("\Storage Card\ReLoad\Bin\Message_Running.mscr")
If(Question("Finished ReLoading.^NL^Do you want to reset?", "Reload 0.2", "YesNo")="No")
Exit
EndIf
Reset
Very good soft, it works nice !!
The only difficulty for the french users is to replace in the script "Storage Card" by "Carte de stockage"
Thx men for this !!!
Nice soft,
I could use FAMAN WM6 on my trinity now !
French translation and modification is (seem to be) ok.
Just wait the OK from the boss and I'll give you !
Edit : Why don't you use the LOCK:Enabled in the header and LOCKDisabled on the end of the config file ? Thxs in advance.
I use SettingsSavior on my Trinity mainly for its similar auto-install functionality
Hello,
Thank you for this very useful tool
My .cab are removed after using Reload. How can I keep my .cab on my SD after a new installation ?
Thank you for your help.
Guillaume
__________________
SPV M700
FAMAN 4.03.FR
1.50.08.11
2.79.7020.19H
can this software reinstall cabs, copy skin files in programs installation directory (eg pocketcm skin) and reconfigure mail and exchange accounts ?
OOPS delete this post.

Categories

Resources