MC9190 RegMerge not working with Error Message

We have a customer that is trying to make 1 simple Registry setting change.  I instructed him how to do it.  From my experience it always works, but not this time.  The REG file is correct.  When he placed it in the \application directory then cold booted an error was presented.  Checking with regedit revealed that the REG setting did not occur.   I was able to reproduce the same error on a separate device using the same OS image files.

  Error  Msg Details:

  DwnldApp Error

  Error during update:

  Cause: Package file not found,

  Function: PostDownload, Line: 2799,

  Hr: 0x1, GetLastError: 6

When NO reg file is in the \application directory, no error is presented.  If any legitimate REG file is in the \application directory, we get the same error.  This tells me that RegMerge is executing and seeing the file then failing to merge the setting due to the error.  But if NO REG file is present, RegMerge must be checking but finding no REG file, then ending without error.  So it is the execution of the Merging function that is failing.  Missing dll or something?

I have never seen this before.  However, if one was to tap the REG file on the device, it merges fine without error.  It is only when it supposed to happen during a cold boot do we get the error.

Has anyone seen this or have any ideas?

Thank you.

Anonymous (not verified)
Here is the file of the error

Here is the file of the error (screen shot) that failed to stay attached on my original post.
Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Richard Linsley-Hood
The most common reason for

The most common reason for this is to do with 8 and 16 bit characters as the storage method in the reg file.

RegMerge wil only work with 8 bit characters. This can sometimes be difficult to see as both 16 and 8 biit will open on both the desktop and the terminal and look 'normal' otherwise.

Simplest answer is to open the reg file in Notepad on a PC and then ensure it is saved using the 8 bit format UTF-8 and transfered back to the terminal.

The reg file should then work correctly.
Vote: 
Vote up!
Vote down!

Points: 1

You voted ‘up’


Anonymous (not verified)
I used UltraEdit32 and

I used UltraEdit32 and specifically saved it as a UTF-8 file like you suggested.  Still get the same error.  This error occurs even if you export the Fusion Options and Profiles to the \application directly.  Meaning, those files should be in the correct format since they were generated by Fusion on the device itself.

Thank you for the suggestion, it was worth a try, but it must be something else causing the problem.

Something else to note:  I decided to use SymScript to force a 'cold boot'.  I did not get the error, but the REG file settings were never merged, as if it were a 'warm boot' rather than a cold one.  So that tells me that RegMerge did not even fire during a SymScript cold boot.  Something is amuck with this OS load I suspect.



Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Alan Livingston
Richard wrote:     Simplest

Richard wrote:
    Simplest answer is to open the reg file in Notepad on a PC and then ensure
    it is saved using the 8 bit format UTF-8 and transfered back to the terminal.


UTF-8 is a multi-byte encoding.  You should select ANSI In the Save File dialog.

This isn't a RegMerge error dialog, it's Update Loader.  You should probably make a support request and be prepared to give the contents of the .reg file.
Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Anonymous (not verified)
As Richard said, these sound

As Richard said, these sound like OSupdate errors.  Is it possible that you have OSupdate files in the root of your SD card or in \temp that are having some effect here?
Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Marcus Kurath
I have found that reg files

I have found that reg files sometimes dont work if the registry does not exist....In those cases I use CeRegEditor to create the registry hives...
Vote: 
Vote up!
Vote down!

Points: 1

You voted ‘up’


Anonymous (not verified)
Some suggest it is the OS

Some suggest it is the OS Update error.  But I ask, if it is, then why is there no error when no '.REG' file is present in the \application directory?  This error is only seen when it needs to process a '.REG' file and it fails to do so.  Could the RegMerge.dll be corrupted? or perhaps device.exe?



I tried to take a copy of the dll from a different MC device, but I can not able to copy it into the MC9190.  I don't know how to update the RegMerge.dll or device.exe.  I guess it is time to bump it up to tech support?



Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Mark Mann
Does the issue happen when

Does the issue happen when you do it manually?



If so maybe the Registry file has the wrong attribute or has the wrong encoding style (Unicode vs ANSI - should be ANSI).



Hope this helps.



Mark

Vote: 
Vote up!
Vote down!

Points: 1

You voted ‘up’


Anonymous (not verified)
As it turns out, based on the

As it turns out, based on the link below:

http://devcentral.motorola.com/view/1717/view.aspx


Cold Boot does not force .REG files to be merged on WM5 and up.

We were forcing a 'cold boot' by going into the UPDATE mode and cancelling to force a cold boot.  That does not work properly and it was giving us the Dwnld Error.  This is how the problem was getting confused with 2 issues.

As it turns out, just as Allen Herrod's post indicates, we needed to set the flag to 0, then reboot.

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\REGMERGE]

"SkipMerge"=dword:0

Only after this flag was set, then the REG file got read in and merged.

However, this kind of defeats the purpose.  We did not want to do a 'clean boot', We wanted to merge a reg file without any user interaction.  In order to force a regmerge on boot without a 'clean boot', we will need to interact and set the SkipMerge flag to 0.  Then what is the point?  We might as well tap our REG file we have been trying to merge all along.

The only way I can see us getting this REG file merged without clean booting is by using symscript on Windows startup.  We can push the file to the device remotely, then warm boot.  No user interaction required.

Thank you everyone for your assistance.  I apologize for confusing the issue.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Arsen Bandurian
This is one of the changes in

This is one of the changes in MPA WM behavour that I don't fully understand (and don't really like) but you have to live with it :)
RegMerge and CopyFiles work only on CleanBoot (i.e. OSUpdate mode) by default. For any other boot you should set the SkipCopy/SkipMerge REG value, which will cause those drivers to work on ANY boot, but only once (there bit will be reset after run).

Your options are:
* Live with it and inclde SkipMerge in every reg file
* Use StartUpCtl
* Use XML provisioning
* Use MSP or other MDM

All of these options are more of less documented and have their pros and cons. We review them all in greater detail in the AEL2301 (Design & Deploy MCD Solution) instructor-led training, available from learning.motorolasolutions.com.
Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Allan Herrod
I wanted to add an additional

I wanted to add an additional option to the list that Arsen provided.  There is a utility called Merge.exe that can be used to merge a .REG file into the registry.  This is exactly what happens when you double click on a .REG file in the file explorer.  When MSP wants to modify the registry in the device both immediately and persistently, it does it by deploying a .REG file to the root of \application and then launching Merge.exe to immediately merge that .REG file into the registry.  This ensures that the registry changes are in effect and will automatically be re-merged on future cold boots (windows ce) and clean boots (windows mobile).
Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Log in to post comments