Post Reply

[XAP][SOURCE][ROOT] XapHandler (RELEASE for Root Tools or full-unlock!)

OP GoodDayToDie

20th March 2012, 07:35 AM   |  #1  
OP Recognized Developer
Flag Seattle
Thanks Meter: 2,711
 
5,739 posts
Join Date:Joined: Jan 2011
More
Hi folks,

FIRST RELEASE:
Wow, lots of bugs that needed fixing. There are still some things I'd like to improve, but they can wait. This is officially the first release of XapHandler, for stock ROMs with WP7 Root Tools, and optionally for custom ROMs as well.

INSTRUCTIONS:
1) Install XapHandler.
2) Run WP7 Root Tools.
3) Pivot to Policies, and set XapHandler as trusted (stock ROMs only).
4) Run XapHandler.
5) When prompted to set the file association, hit OK.
6) Exit XapHandler.
7) Open a XAP file from email, IE, or an app.
8) Check the data about the app given in XapHandler.
9) If the app is already installed and you want to do a clean install, exit XapHanderl and delete the app from your phone normally, then open the XAP file again.
10) Hit the Clean Install or Update button.
11) Wait for the Success message box.
12) Close XapHandler.

SOURCE CODE:
I don't have permission to release the actual XAP installation source code, which is from @ultrashot. Therefore, the source release just contains a pre-compiled static library (it's the same code as is used in the native XAP installer on custom ROMs, and the Bazaar app). You're able to build the full app, though.

The app has two parts: the native ARM DLL that has the COM library and does the actual installation, and the C#/Silverlight WP7 app that provides the UI and calls the COM library. You should unpack both parts to the same folder. Then, build the native part first (requires Visual Studio 2008 with the Windows Mobile 6.5 compiler). This will copy the native DLL into the managed app. Make sure the managed app includes the COM DLL, and then build it to produce a XAP file.

PROBLEMS:
If you have any issues, please report the following info:
A) Your phone model.
B) Your ROM (including version and firmware)
C) The problems or exception messageboxes you encountered.

RESTORING THE REGISTRY:
For stock ROMs, if you want to put the registry back the way it was so XAP files open in the built-in XAP handler of your custom ROM:
1) Open a registry editor
2) Go to HKEY_CLASSES_ROOT (HKCR)\.xap
3) Change the default value back to what it used to be
3.1) The original value on most custom ROMs should be "xapfile" which is the same value the app uses; don't panic if it's unchanged!
3.2) The old default value *should* be backed up in a registry value simply called "0"
4) If there's a value called 0, delete it
5) Go to HKCR\<originalClassName>
5.1) For most people, that's HKCR\xapfile
6) Change the default value back to what it used to be
6.1) The original value on most custom ROMs should be empty
6.2) This step is not important; the value is cosmetic and intended for the user
6.3) The old default value *should* be backed up in a registry value simply called "0"
7) If there's a value called 0, delete it
8) If you have a registry key called BrowseInPlace (eg. HKCR\xapfile\BrowseInPlace) you can delete it
8.1) I don't *think* it'll hurt anything if left, though
9) Set the registry value EditFlags to DWORD 65536 (0x00010000)
9.1) This value is set by release versions of XapHandler
9.2) If the value is missing, create it with the data listed above
10) Go into the registry keys "shell", "open", and "command"
10.1) For example, HKCR\xapfile\shell\open\command
11) Change the default value back to what it used to be
11.1) The default value on most custom ROMs should be "XAPDeployer.exe "%1"" (remove first and last quotes)
11.3) The old default value *should* be backed up in a registry value simply called "0"
12) If there's a value called 0, delete it
13) If you had to change anything in step 3, go to HKCR
13.1) Don't do this step if you didn't have to change anything in step 3!
14) Delete HKCR\xapfile and all its contents
14.1) This step isn't needed, just cleanup
14.2) Don't do this step unless you had a different original progID than "xapfile"!

Have fun!

Please feel free to include this app in WP7 homebrew collections or custom ROMs, so long as the Author attribution is not removed.

Total downloads of the test versions: 330.
Attached Files
File Type: xap XapHandler.xap - [Click for QR Code] (71.0 KB, 33547 views)
File Type: zip XapHandler.zip - [Click for QR Code] (1.26 MB, 17615 views)
Last edited by GoodDayToDie; 31st March 2012 at 04:20 PM. Reason: Release version
The Following 28 Users Say Thank You to GoodDayToDie For This Useful Post: [ View ]
20th March 2012, 07:43 AM   |  #2  
pdaimatejam's Avatar
Recognized Developer
Flag Sinop/Boyabat
Thanks Meter: 1,754
 
657 posts
Join Date:Joined: Mar 2009
Donate to Me
More
Thumbs up
Thank you my friend
big business
20th March 2012, 07:58 AM   |  #3  
OP Recognized Developer
Flag Seattle
Thanks Meter: 2,711
 
5,739 posts
Join Date:Joined: Jan 2011
More
Big Thanks to useful reports, of course!

I'm also looking at releasing an app that allows people to edit their file associations on the phone - things like add new filetypes that will open in Word (works for any plain-text file), or do complex things like "open" a Mobi file by putting it in the Kindle app's isostore, then launching the Kindle app. That will build on some of the work done in this app. It's also related to some stuff for the next version of Root Webserver. I really want to figure out what's going on here, though...
20th March 2012, 08:21 AM   |  #4  
voluptuary's Avatar
Senior Member
Flag Mukwonago
Thanks Meter: 745
 
941 posts
Join Date:Joined: Dec 2010
Donate to Me
More
a.) Samsung Focus v1.3
b.) My ROM (see sig) firmware 2124.11.9.4
c.) xapfile
d.) no change, errors: system.io.filenotfoundexception the system can not find the specified at xaphandler.xapdeployerinterop.setfileassociation() and so on and on then crashes to home screen
e.) reboot changes nothing, no other steps apply.
The Following User Says Thank You to voluptuary For This Useful Post: [ View ]
20th March 2012, 08:36 AM   |  #5  
pdaimatejam's Avatar
Recognized Developer
Flag Sinop/Boyabat
Thanks Meter: 1,754
 
657 posts
Join Date:Joined: Mar 2009
Donate to Me
More
Question
I installed with my hd2 program
program did not work

19.Marc HD2 Pdaimatejam Rom Wp7.5 Tango 7.10.8773.98 v7.8 >FULLY UNLOCKED>CABS Update
20th March 2012, 08:38 AM   |  #6  
Recognized Developer
St.Petersburg
Thanks Meter: 2,043
 
1,478 posts
Join Date:Joined: May 2009
Mozart
5.13-based custom rom (fully unlocked of course)
FileNotFound exception when trying to associate, IndexOutOfRangeException when trying to launch xap (after manual association)
Attached Thumbnails
Click image for larger version

Name:	xaphandler-error.jpg
Views:	855
Size:	36.8 KB
ID:	955815  
The Following User Says Thank You to ultrashot For This Useful Post: [ View ]
20th March 2012, 08:41 AM   |  #7  
pdaimatejam's Avatar
Recognized Developer
Flag Sinop/Boyabat
Thanks Meter: 1,754
 
657 posts
Join Date:Joined: Mar 2009
Donate to Me
More
Quote:
Originally Posted by ultrashot

Mozart
5.13-based custom rom (fully unlocked of course)
FileNotFound exception when trying to associate, IndexOutOfRangeException when trying to launch xap (after manual association)

yes
I get the same error
20th March 2012, 10:45 AM   |  #8  
OP Recognized Developer
Flag Seattle
Thanks Meter: 2,711
 
5,739 posts
Join Date:Joined: Jan 2011
More
Thanks, guys. I know where the error is for you - I took a shortcut testing for the existence of certain registry entries and didn't check for FileNotFound, which I should have. Expect a new version in a day or so!
20th March 2012, 03:48 PM   |  #9  
ted973's Avatar
Senior Member
Flag Beijing
Thanks Meter: 62
 
150 posts
Join Date:Joined: Feb 2008
More
do you mean use xapdeploy.exe to install a xap?
20th March 2012, 09:54 PM   |  #10  
OP Recognized Developer
Flag Seattle
Thanks Meter: 2,711
 
5,739 posts
Join Date:Joined: Jan 2011
More
XapDeploy.exe can't be used on stock ROMs until we break the policy system to allow homebrew executables. This app runs under TskHost.exe, like any other executable. Using WP7 Root Tools v0.9, it should be possible to run this app on stock ROMs.

Additionally, it's an alternative to XapDeploy.exe for users of custom ROMs. It displays more info about the XAP before installing it - not enough in any way to prevent Trojan malware, but enough to stop you from accidentally installing v1.15 when you wanted 1.16.

The Following 2 Users Say Thank You to GoodDayToDie For This Useful Post: [ View ]
Post Reply Subscribe to Thread

Tags
installer, test, xap
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes