[Windows Phone 7 Development and Hacking] hx4700 Killer:
I have written a .Net app for backing up windows phone 7 via the Zune updater tool. This backup can be used by Zune to restore the device when you use the "Update" option under settings.

This is a COMPLETE backup and COMPLETE restore

IF USING ZUNE 4.7AND/OR the V1.9 Tool

. Your phone will be EXACTLY the same after a restore as it was when you did the backup. Any updates, file changes, registry entries, or texts will not persist that were not on the phone at the time of the backup. Sorry for the bold but I have answered this question about a dozen times in PM's or on here.

Use this at YOUR discretion. There are scenarios in which you can't use the backup you made to restore. For instance on my Samsung Focus I had the stock ROM on it and couldn’t' restore my 7720 Mango backup. I had to upgrade the phone to at least 7712 Mango BEFORE the backup would restore. But I could go from 7720 to stock. When it failed I was getting a "Version Mismatch" error. Make sure you can at least get back to the REV level you backed up from before expecting this to work or you may be sorry. Finally,

NEVER trust a backup that does not say it completed properly INCLUDING a SUCCESS message!!

. I also HIGHLY recommend having a stock ROM on hand to flash back to the device if necessary.

HD2 owners: See Post 2 in this thread

**New features:

Manage backups/archives. Set Paths to zune and updatewp as well as the PKS file.

Archive capability of the older backups AND restore of active backup or archives.

Will Install Support Tools and PKS file if needed.

Version 1.8 will seem quite different if you are on Vista/7 with UAC and not running as a full admin. The reason is that you can't change registry entries in HKLM or move files in program files without those rights. If you werent running as a full admin before you may have trouble if you start now. Just answer the UAC prompts when a backup starts and ends to change the files/reg entries to 4.7 and back to 4.8 values/files. I tried to consider lots of conditions like what if it fails during the backup or crashes so if you launch the app after a crash it will detect that that the changed reg entries are in place and undo them to get you back to where you were prior to the last run. The UAC prompts are there to protect you so don't get mad at me when you see 2 each time you use this to backup. If you need ZuneWMDU.DLL from 4.7 check these posts attachments:

Click here for x86 (32 BIT) os's

or Click here for x64 (64 bit) os's

You can put it with the back tool or anywhere and the program will ask you where it is and you can tell it. You can even rename it to something else. For instance I have it in my Zune folder named Zunewmdu.dll.47. Just don't replace the original 4.8 Zunewmdu.dll file.

Firstly I have to credit this to reading and putting together pieces from several threads on XDA. I read so many to be honest I am no longer sure who all to credit. There was no specific single source I just saw several things and through trial and error put together the pieces that made this possible.

This APP is a wrapper around a tool microsoft produced to perform updates to your phone via command line. Specifically the executeable "updatewp.exe" that comes from the Windows Phone Support Tools. The missing piece that eluded me for a bit was the update package itself which I found here on XDA and will link to later.

Prerequisites that need to be Installed/downloaded:

Looks like at least Phone OS version 7008 is required for the backup to work.

Zune Software Installed (I'm sure most of us have this): http://www.zune.net/en-us/products/software/download/default.htm

Windows Phone Support Tools Installed - MS Links are dead ATM.

If you are missing these prerequisites the app will tell you and even open a web page on request to the DL links.

If an error occurs you should find the text in your clipboard for easy pasting here on the forums.

To explain the process:

updatewp.exe is meant to update your phone with PKS files theoretically obtained from the device manufacturer. It will also do other things including a command line restore of a backup.

This program launches updatewp.exe with two command line arguments. One is the PKS file name and path and the second is the enablebackup switch.

What happens is the phone performs the backup first, once it completes the process the code terminates updatewp.exe before it goes further. In theory if you are using an update not compatible for your phone it would actually just say that and quit. However terminating the updater keeps it from ever getting that far.

I have used this to make a complete backup AND restore it via the ZUNE Update options under settings for my phone so I know it works.

How to use the app:

Attached to this post is a zip file with two folders. x86 and x64. Please launch the appropriate EXE for your platform.

If you do not have zune or windows phone support tools it will tell you immediately and offer to open the download URL on your computer.

If you pass those tests you will need to input a path to the PKS file in the long textbox. There is a button just above it that will open a URL to the download for the one I used here on XDA. There is also a Browse button below the textbox for you to use to browse to and set the file path via GUI.

Once the path is set click on backup and watch it go. If you already have a backup made previously this will overwrite it or offer to archive it (v1.2 & up).

Good luck and post feedback, thoughts or issues please.

Changelog:

v1.9 - I pulled 1.8 and have added 1.9. This version corrects some more bugs in 1.8, one of which doesnt show the completed success message when performing a backup. The first time you launch it you will see a prompt stating this is the first time you have launched this version and you need to choose if you want to use the 4.7WMDU file switching method or just have the program try to use what you have installed. If you choose not to use the file switching method it will still check to make sure the zune and updatewp versions match but will only warn you they don't match, you can still try to proceed with the backup/restore. I have tested this in both modes doing backups and restores (this is why it took so long to get out).

v1.8 - I changed the way the program does things so that it will use the ZuneWMDU.DLL file from Zune 4.7 to perform FULL backups. You CAN'T use the tool without that file and I am not going to include it because I am not going to redistribute Microsofts property. If you are using Vista/7 with UAC you will be seeing some extra prompts because elevation is required to change reg entries and move files around to allow you to use this with the newest Zune 4.8 and still get a complete backup. To get the older ZuneWMDU.DLL file just get it from the install path of zune and then uprade to 4.8. The program will ask you for the path to the old DLL for future use/reference. Don't get pissed at me with all the UAC prompts either, they are required if you arent a full admin on the machine. I re-released 1.8 on 9/16 to fix a few minor bugs that kept it from working correctly under certain cirumstances.

v1.7 -PULLED because the backups Zune 4.8 Makes are utterly USELESS. 1.8 is in the works that will make use of the old updatewp and some old zune 4.7 files to perform COMPLETE backup and restores as it originally did.

v1.6 - Added the ability to set all of the paths (requested by folks using languages other than english). Added some management capabilities for the backups. To archive the active one immediately or move an archived backup to the active folder.

v1.5 - This only adds proper path support for windows XP. If you are using the 1.4 version and don't have XP then there is no need to upgrade.

v1.4 - Works with Mango Beta if you have updated Zune assuming you have also updated the 4.8 support tools. It will check the versions and inform you of any issues found. Also corrected the blank error message issue some users were seeing. 4.8 support tools, check the second D/L (non) link: http://xdaforums.com/showthread.php?t=1148123

v1.3 - Changed the path used for backup location to the LOCALAPPDATA environment variable rather than USERPROFILE to be more compatible with XP. If you don't have the windows phone backup tools installed the software will offer to DL and install them silently for you. The PKS file is now packed in with the software. If you don't have a PKS file set it will offer to unpack it and use it by default. I didnt add ZUNE install to this because well, if you don't have that your not really using your phone are you?

v1.2 - Added archive capabilities. If you choose to backup your device and a backup is in place you are asked if you want to archive it. If you choose to keep it then a folder in your documents called "Windows Phone 7 Zune Backup Archive" is where it goes. Each backup will go in to a folder labeled by the date/time it was created. The format will be Month-Day-Year Hour-Minute-Second so you know exactly from WHEN the backup was from.

Added a Restore Button that will use the latest restore if that is all you have, or ask if you want to browse and choose from the archived backups to restore. Whichever you choose will become the "Active" backup to zune and then the restore will take place afterwards. The former active backup is automatically placed in the archive. When the restore is completed the SAME backup you chose is still the active one so using ZUNE to do the restore will yield the same result.

***IF you have multiple devices the archive portion will work fine, however I have yet to find a way to identify which ID is which device so when you choose to restore from an archive YOU will have to pick the correct one or it won't work.

v1.1 - Updated where the code looks for the windows phone tools to accomidate installs of zune to alternate locations.

In Development:

Determine the device ID of the connected phone so I can keep multi device backup archives straight when presenting which backups from an archive to restore. I don't have two devices so this will be a feature in beta until it is proven by your feedback.