Has anybody written one? I've seen lots of apps that include this binary, but they all use provisioning for registry writes and a homebrew WinCE DLL for registry reads. That's great, except that in Mango you can't use the homebrew DLLs anymore.
I'd like to write an app that can read and write specific values (the signed DLL doesn't appear to support browsing). The catch is, of course, no dependency on unsigned native code.
If somebody has already written an app or library that does this, and doesn't mind sharing the code (I'll open anything I write with it, of course) that would be awesome.
hm you don't need provisioning for registry editing with this HTC DLL, I think. The DLL provides functions that enable you to edit/read registry entries. The provision part is used for this provider specific configurations.
And there should be a way to use these homebrewn registry editors to use in Mango. People around here report that they installed the apps while running NoDo and then using Ansars method to upgrade to Mango. But unfortunately it didn't worked for me so far
If somebody is intrested we can make a port of our app (which generates on device provxml files) available for htc devices. Ill need somebody to help me out with some testing. It works already on samsung devices on mango, file operations and stuff.
i just need to know where the provxml needs to be installed to and i think we can find a way to make it work.
Pm me if you are intrested.
Marvin_S said:
If somebody is intrested we can make a port of our app (which generates on device provxml files) available for htc devices. Ill need somebody to help me out with some testing. It works already on samsung devices on mango, file operations and stuff.
i just need to know where the provxml needs to be installed to and i think we can find a way to make it work.
Pm me if you are intrested.
Click to expand...
Click to collapse
Let us talk about that when the Samsung version is finished. I also have a HD7.
The problem is that the HTC Connection Setup deletes the custclear.provxml file after executing...
Have a nice day.
contable said:
Let us talk about that when the Samsung version is finished. I also have a HD7.
The problem is that the HTC Connection Setup deletes the custclear.provxml file after executing...
Have a nice day.
Click to expand...
Click to collapse
yes i have heard. I think we can solve this by adding a copy command to replace itself again? If we are lucky this might work. Otherwise we have to look for file transfer tools. Thank you haha i will, talk to you tomorrow.
In theory will work but once ran connection setup in mango file transfer is available via touch explorer.
Sent from Ant's HTC Mozart using XDA Windows Phone 7 App
yes, file transfer should work, if you installed the tools before the mango update. However for newer phones that do not have NoDo firmware this won't be possible anymore :/
@rudelm: That's the point of my question. I know that the HTC DLLs supposedly allow registry access, the problem is I've never seen a working example, and my skill with COM is crap.
@Marvin_S: That's a cool idea, and I can show you how to make it work even easier on HTC (I've written apps in the past that used XML provisioning on HTC; you don't even need to use Connection Setup since we have a Mango-compatible DLL to do it). The catch is that you can't use them to *read* values.
Also, I've already tried chaining the CustClear.provxml file using Connection Setup. It doesn't work - I think the file gets deleted at the end, not the start. However, HTC has a working filesystem DLL that allows moving files anyhow, so not that important. It's the registry I'm concerned about right now.
Again, if anybody has an example of working code using a ComRegRW DLL from an HTC app, please let me know!
GoodDayToDie said:
@rudelm: That's the point of my question. I know that the HTC DLLs supposedly allow registry access, the problem is I've never seen a working example, and my skill with COM is crap.
It's the registry I'm concerned about right now.
Again, if anybody has an example of working code using a ComRegRW DLL from an HTC app, please let me know!
Click to expand...
Click to collapse
It's actually simple, if you use another library here from XDA. Its called NativeLibrary and was made bei (nico)
With his code I was able to access the registry to change an entry. Basically it looked like this:
Code:
// check for HTC Device
bool isHTC = false;
isHTC = Device.IsHTC();
if (isHTC)
{
Device.Registry.SetStringValue("HKLM", "Software\\HTC\\HTC_Weather", "AppVersion", "1337");
contentTextBlock.Text = Device.Registry.GetStringValue("HKLM", "Software\\HTC\\HTC_Weather", "AppVersion");
//NativeHTCFileSystem.Init();
//NativeHTCFileSystem.GetFileSize("/My Documents/Explore Excel.xlsx", out fileSize);
}
else
{
contentTextBlock.Text = "Found no HTC Device :D";
}
He wrote a wrapper for different devices and included most of their dll files, so you don't have to handle the COM part. This is what I'm trying to understand next... But I bet its really ugly I never got the COM part running just by looking at reversed HTC or Samsung XAPs and I am still wondering how (nico) did it, but anyways: he helped me a lot with his source
If you put this code into a button listener, you need to push the button two times to display the new registry value as my textbox did not get refreshed. But thats the smallest problem here
It's not that difficult actually if you know C++, COM, and .Net COM Bridge.
There is nothing here specific to Windows Phone, it's all pretty standard stuff.
BTW, this is not how you should use my lib, as it is supposed to handle the device check for you.
I've not updated this for a long time, so I don't think it work on LG nor Mango.
Here is an example:
Code:
var registry = NativeLibrary.Device.Registry;
var currenttheme = registry.GetStringValue("HKLM", @"ControlPanel\Themes", "CurrentTheme");
GoodDayToDie said:
@rudelm: That's the point of my question. I know that the HTC DLLs supposedly allow registry access, the problem is I've never seen a working example, and my skill with COM is crap.
@Marvin_S: That's a cool idea, and I can show you how to make it work even easier on HTC (I've written apps in the past that used XML provisioning on HTC; you don't even need to use Connection Setup since we have a Mango-compatible DLL to do it). The catch is that you can't use them to *read* values.
Also, I've already tried chaining the CustClear.provxml file using Connection Setup. It doesn't work - I think the file gets deleted at the end, not the start. However, HTC has a working filesystem DLL that allows moving files anyhow, so not that important. It's the registry I'm concerned about right now.
Again, if anybody has an example of working code using a ComRegRW DLL from an HTC app, please let me know!
Click to expand...
Click to collapse
This would be nice. Do you know if there is a similar .dll for samsung? So we will not have to go into the diagnosis menu everytime?
@Marvin_S: Yes, there's a similar app for Samsung - there's already a Samsung registry editor that works with Mango. It's nto a registry *browser* of course, but it can do read and write. I used it (at least, the writing portion) in my IE Search Switcher app too.
(nico) said:
BTW, this is not how you should use my lib, as it is supposed to handle the device check for you.
I've not updated this for a long time, so I don't think it work on LG nor Mango.
Here is an example:
Code:
var registry = NativeLibrary.Device.Registry;
var currenttheme = registry.GetStringValue("HKLM", @"ControlPanel\Themes", "CurrentTheme");
Click to expand...
Click to collapse
Ah ok, that looks better
I'm currently setting up my VM to look into this c++ and com things, but I guess its more complicated than I thought. You've got some links to help me here getting started for WP7?
@Marvin_s: there are the XAP packages of Samsungs apps here on XDA. You can just rename the files to zip and unpack. Then you will have the Samsung specific DLLs
Related
Can do this using the Registry Viewer and Network Profile Tool. I will be making a tool for samsung that will allow you to provision any xml.
Sent from my OMNIA7 using Board Express
Awesome. Care to share how?
Indeed very good news. When do you think the tool will be ready ?
Okay here it goes, its very similar to the HTC method which requires alot of tinkering.
Firstly, you need to be Dev Unlocked. Search for Chevron Unlocker if you dont already have it.
Secondly, you will need Tom XAP Installer which can be found as a sticky at the top of the thread.
Lastly you will need nico's Registry Viewer XAP Package which can be found here: http://forum.xda-developers.com/showpost.php?p=10623201&postcount=19
Now when you have all the above done, Load up Registry Viewer and goto:
HKLM\System\State\Samsung\Phone\Operator\Base
You will see some numbered subkeys. You can edit any of these but I reccommend editing [1].
Now navigate to [1] and tap FileName this is where you enter the desired xml.
Now I have a UK Omnia 7 but I flashed the Unbranded XENJK1 ROM which is for Netherlands. So whenever you run the Network Profile App you will see the Network for the sim card you are currently using plus 4 other networks to choose from which will be Netherlands Phone Operators.
Here is a little example to run your desired provxml file. Remember we tapped on FileName in the [1] subkey, now clear the current filename thats already there and type in: UK_XEU_BASE.xml
Exit Registry Viewer and startup the Network Profile App and Tap on the Top Profile. (This is why we edited [1]). You will see the loading dots in the middle of the screen to tell you the device is busy (thats the provxml installing). When its done, exit the Network Profile App and restart it. You will now notice that ALL the UK network providers are now in the Profile list.
So this definately works, we just now need a way to create our own provxml files and copy them to the Windows folder on our Omnia 7!
So this in effect is the same as what I found/hit in this thread. The problem is, we don't have a way of writing to the \windows directory. I've tried all sorts of things to read the provxml from other locations but it doesn't want to.
RustyGrom said:
So this in effect is the same as what I found/hit in this thread. The problem is, we don't have a way of writing to the \windows directory. I've tried all sorts of things to read the provxml from other locations but it doesn't want to.
Click to expand...
Click to collapse
If what he described (anyone tested it with a custom provxml file yet?) works, then maybe the network profile app doesn't need a provxml file within the Windows folder (to test too).
Patch network setup dll to apply provxml from the xap install folder.
i 've do this on my htc provxml deployer by this way you can deploy custom provxml.
RustyGrom said:
So this in effect is the same as what I found/hit in this thread. The problem is, we don't have a way of writing to the \windows directory. I've tried all sorts of things to read the provxml from other locations but it doesn't want to.
Click to expand...
Click to collapse
Yes its more or less the same, also the method everyone is using for Interop to use native DLLs in their code is only for using Subs/Functions inside of Interfaces. Now to call an Exported Function in a native DLL requires a different approach. We first have to build a DLL using C++ in Visual Studio 2008 for Windows Mobile 6 (yes you heard me right! ) and create an interface for the functions we wish to use in the native DLL we want to call. We then use C# to use the ComBridge method to load the custom made native DLL which will then provide us the access to the Subs/Functions so when these are called, our custom made DLL will then call the Exported Function in our target DLL.
Now this will also enable us to use the Exported Functions in Coredll.dll which have all the juicy functions that we used and loved in Windows Mobile, including Registry read and write and file access and IO operations.
Now, Any C++ Volunteers???
martani said:
If what he described (anyone tested it with a custom provxml file yet?) works, then maybe the network profile app doesn't need a provxml file within the Windows folder (to test too).
Click to expand...
Click to collapse
It definately works with xml in windows folder but not tried a custom one yet.
lyriquidperfection said:
Now when you have all the above done, Load up Registry Viewer and goto:
HKLM\System\State\Samsung\Phone\Operator\Base
..........................
Click to expand...
Click to collapse
We can do the same by runnig "/windows/AppPreInstaller.exe path_to_provxml_file" (using l3v5y.WP7DT.RemoteExecute).
The problem is that AppPreInstaller.exe refuses any attempts to install provxml from any place outside /windows folder.
xboxmod said:
Patch network setup dll to apply provxml from the xap install folder.
i 've do this on my htc provxml deployer by this way you can deploy custom provxml.
Click to expand...
Click to collapse
But aren't the DLLs signed? Did you just resign it with a different cert?
lyriquidperfection said:
Yes its more or less the same, also the method everyone is using for Interop to use native DLLs in their code is only for using Subs/Functions inside of Interfaces. Now to call an Exported Function in a native DLL requires a different approach. We first have to build a DLL using C++ in Visual Studio 2008 for Windows Mobile 6 (yes you heard me right! ) and create an interface for the functions we wish to use in the native DLL we want to call. We then use C# to use the ComBridge method to load the custom made native DLL which will then provide us the access to the Subs/Functions so when these are called, our custom made DLL will then call the Exported Function in our target DLL.
Now this will also enable us to use the Exported Functions in Coredll.dll which have all the juicy functions that we used and loved in Windows Mobile, including Registry read and write and file access and IO operations.
Now, Any C++ Volunteers???
Click to expand...
Click to collapse
I know some people (davux) have started this. I wrote a simple one but I suck at C++ so didn't get very far.
lyriquidperfection said:
It definately works with xml in windows folder but not tried a custom one yet.
Click to expand...
Click to collapse
That reg key doesn't include a path, just a file name. I guess you could throw in DiagnosisApp_1.provxml and see if it launches it (it just installs the Diagnosis app).
denominator77 said:
We can do the same by runnig "/windows/AppPreInstaller.exe path_to_provxml_file" (using l3v5y.WP7DT.RemoteExecute).
The problem is that AppPreInstaller.exe refuses any attempts to install provxml from any place outside /windows folder.
Click to expand...
Click to collapse
yes and this apps doesn't deploy custom provxml!
i've try on my Htc by editing provxml called by this apps.
apppreinstaller is run on 1st boot to install in rom Xap's via a provxml.
RustyGrom said:
That reg key doesn't include a path, just a file name. I guess you could throw in DiagnosisApp_1.provxml and see if it launches it (it just installs the Diagnosis app).
Click to expand...
Click to collapse
Ha! I entered DiagnosisApp_1.provxml into the FileName value and when I applied the modified profile, it did indeed install the Diagnosis App but not launch it. The provxml is for installation only as when I did this, Diagnosis appeared in my app list without keying in ##634# in the dialer!
lyriquidperfection said:
Ha! I entered DiagnosisApp_1.provxml into the FileName value and when I applied the modified profile, it did indeed install the Diagnosis App but not launch it. The provxml is for installation only as when I did this, Diagnosis appeared in my app list without keying in ##634# in the dialer!
Click to expand...
Click to collapse
Cool so as best I can tell looking at the disassembled code SetNetworkSetting(string settingName, out int bRet) from NwProfDLL.dll does that with "settingName" being the provxml file or the name assigned to the provxml file, leaning towards the latter.
Edit... maybe not... doesn't seem to work to launch DiagnosisApp_1.provxml. Might be due to my phone being carrier locked?
RustyGrom said:
Cool so as best I can tell looking at the disassembled code SetNetworkSetting(string settingName, out int bRet) from NwProfDLL.dll does that with "settingName" being the provxml file or the name assigned to the provxml file, leaning towards the latter.
Edit... maybe not... doesn't seem to work to launch DiagnosisApp_1.provxml. Might be due to my phone being carrier locked?
Click to expand...
Click to collapse
I have the same problem, too. My OMNIA 7 is still carrier locked (bad bootloader version...). I will try to unlock it tomorrow.
Doesnt matter if it is locked or unlocked. It doesnt launch it only installs it. It adds the icon to the app list if it wasnt there already.
Sent from my OMNIA7 using Board Express
lyriquidperfection said:
Doesnt matter if it is locked or unlocked. It doesnt launch it only installs it. It adds the icon to the app list if it wasnt there already.
Sent from my OMNIA7 using Board Express
Click to expand...
Click to collapse
In the NetworkProfile app, I can't choose a profile. It just says "This application can not be used if the device is in network locked state by mobile operator."
I tried bypassing it and just calling the function from my own code but it didn't work. That doesn't mean it won't work as I may be doing something wrong but the COM DLL could be checking the phone's lock status before trying to run the provxml.
RustyGrom said:
In the NetworkProfile app, I can't choose a profile. It just says "This application can not be used if the device is in network locked state by mobile operator."
I tried bypassing it and just calling the function from my own code but it didn't work. That doesn't mean it won't work as I may be doing something wrong but the COM DLL could be checking the phone's lock status before trying to run the provxml.
Click to expand...
Click to collapse
I don't think it's so much if the device is carrier-locked, but if the device is carrier-branded. I couldn't use the Network Profile tool with my original T-Mobile UK ROM, but since flashing it with the generic ROM that leaked, I can now use it, despite still being carrier-locked.
guys on your samsung device operator xml are deployed by configxml.exe in the windows folder called by AutoSim.exe imself run by coldinit.exe
the operator provxml are named like this FRANCE_SFR_BASE.xml
i'm looking if i find somethink.
i think autosim is also run by NetworkProfile.
RustyGrom said:
In the NetworkProfile app, I can't choose a profile. It just says "This application can not be used if the device is in network locked state by mobile operator."
I tried bypassing it and just calling the function from my own code but it didn't work. That doesn't mean it won't work as I may be doing something wrong but the COM DLL could be checking the phone's lock status before trying to run the provxml.
Click to expand...
Click to collapse
I can confirm that it works on my carrier locked OMNIA 7 !.
I edited the filename in the registry, then I launched the Network profile app.
If the first profile is allready choosen on your device, choose the second one and then the first one. It works only for the [1] registry filename so you have to choose the first profile of the list.
After that the diagnosis app appears on your device...
Edit: my device is T-Mobile Germany branded...
INSTALLING HOMEBREW APPS
Ok, so I figured out how to get a homebrew app installed that has "INTEROPSERVICES".
NOTE: Most apps still don't load/work, but at least they can be installed. So, maybe someone can figure out what to do from here. In fact, the only app that works properly that I've tested is Navigator Select. Granted this app is probably signed with a cert or what ever because it's from an OEM.
Instructions;
1) Extract the XAP using 7Zip/WinRAR/etc.
2) Find WMAppManifest.xml & open it in an editor (Wordpad/Notepad/VS/Word/etc.).
3) Delete the line "<Capability Name="ID_CAP_INTEROPSERVICES"/>"
4) Save the file.
5) Compress all files from XAP into a ZIP
6) Rename ZIP to XAP
7) Install
RESUMIBLE APPS
Also, I found this article.
In order to make an app resumible, we'll edit the same file as above, but this tome we're going to add "ActivationPolicy="Resume"" to the "<DefaultTask Name="_default" NavigationPage="PivotPage.xaml" />" line so it looks like "<DefaultTask Name="_default" NavigationPage="PivotPage.xaml" ActivationPolicy="Resume"/>". Save file compress everything to ZIP & rename to XAP same as above. Now install apps using what ever side loader you like. I used "Tom XAP Installer".
NOTE: DON'T use the resumible hack on Navigator Select, at least on Mango. Otherwise it'll just show a black screen if you open it from the start menu/app list when you have a map open. You can still use task switcher to open it, but just not worth it. Than again this could be a Mango problem with the resume hack.
Anyone out there with a T-Mobile USA HD7 happen to have WPDM from Schaps installed & no Mango Beta? If so, can you see if you can copy out the TMOUS Cert that should be on your device. I'm on Mango, so cant. I want to try to sign a homebrew app with that cert & see if it'll work on Mango Beta.
I rolled back but have the HTC 7 Pro, so I can send you that cert, maybe you can edit it so it works with the HD7?
Glad to see you working on this btw .
blindpet said:
I rolled back but have the HTC 7 Pro, so I can send you that cert, maybe you can edit it so it works with the HD7?
Glad to see you working on this btw .
Click to expand...
Click to collapse
Thank you, it shouldn't matter which HTC device it comes from. The main issue is I'm on T-Mobile so for my device has T-Mobile's OEM cert on it where your 7 Pro most likely doesn't. Probably has a Verizon OEM or for what ever OEM you're on. Your device might have an HTC Cert though. The main thing I'm looking for is a cert that's trusted & allowed INTEROPSERVICES access as OEM's/Manufacturers are the only ones allowed this atm. This is why Navigon Select works even though it has INTEROPSERVICES. I'm hoping I can use the SDKCert Signer tool & an OEM cert to sign the dll's/mui's in the XAP with.
I'm on an unbranded HTC 7 Pro. If you walk me through extracting whatever certs you can use I'm more than happy to do it.
blindpet said:
I'm on an unbranded HTC 7 Pro. If you walk me through extracting whatever certs you can use I'm more than happy to do it.
Click to expand...
Click to collapse
Okay, you'll need WPDM. Install that to your pc/laptop. Once you run it the first time, it'll prompt to install TouchXperience. Open TouchXperience on your 7 Pro. Now WPDM will sync with it. Now open the file manager in WPDM on your PC. The certs should be in \windows or one of it's sub directories. I don't remember exactly where I saw them. Try to find one with HTC or Test in the file name. You can than copy if & paste it into windows explorer somewhere to zip it up & upload it here.
Unsigned app limit
Any idea which homebrew can get rid of the unsigned applications limit on Mango?
I am afraid of removing all my unsigned apps for nothing
Before following the OPs suggestions I was not able to deploy Navigon Select onto my device. After editing WMAppManifest.xml I was finally able to deploy it again. Sadly it won't work. After startup it tells me that it can't complete the registry process due to not being able to connect to the network. Pitty.
dkp1977 said:
Before following the OPs suggestions I was not able to deploy Navigon Select onto my device. After editing WMAppManifest.xml I was finally able to deploy it again. Sadly it won't work. After startup it tells me that it can't complete the registry process due to not being able to connect to the network. Pitty.
Click to expand...
Click to collapse
It worked for me, which version are you using. I have the patched 1.3 install with maps & everything.
Handala said:
Any idea which homebrew can get rid of the unsigned applications limit on Mango?
I am afraid of removing all my unsigned apps for nothing
Click to expand...
Click to collapse
Advanced Config has that feature. Not sure what else does. There's a couple apps that do it.
drkfngthdragnlrd said:
It worked for me, which version are you using. I have the patched 1.3 install with maps & everything.
Click to expand...
Click to collapse
Tried it with 3.0 and 1.4. Both patched. I wasn't able to deploy either one of them.
dkp1977 said:
Tried it with 3.0 and 1.4. Both patched. I wasn't able to deploy either one of them.
Click to expand...
Click to collapse
In order to deploy you have to edit that file I listed in the OP. I've got v1.3 installed as US maps only works with v1.3 & is what the map loader software came with.
EDIT: Whoops, v1.4 is what i have installed on Mango.
drkfngthdragnlrd said:
In order to deploy you have to edit that file I listed in the OP. I've got v1.3 installed as US maps only works with v1.3 & is what the map loader software came with.
EDIT: Whoops, v1.4 is what i have installed on Mango.
Click to expand...
Click to collapse
Yeah, I followed your advice and was able to deploy it successfully. But I just can't use it anymore since it won't registert. It keeps telling me to turn airplone mode off (which isn't on anyway).
dkp1977 said:
Yeah, I followed your advice and was able to deploy it successfully. But I just can't use it anymore since it won't registert. It keeps telling me to turn airplone mode off (which isn't on anyway).
Click to expand...
Click to collapse
Hum, no clue, I used Map Loader to add my maps. It turns my pc into the server. Have you checked you internet to make sure you have a good connection by loading any website in IE. Also, try WiFi. My only guess could be a data connection problem.
drkfngthdragnlrd said:
Hum, no clue, I used Map Loader to add my maps. It turns my pc into the server. Have you checked you internet to make sure you have a good connection by loading any website in IE. Also, try WiFi. My only guess could be a data connection problem.
Click to expand...
Click to collapse
Tried 3G and WiFi. No luck. -.-
dkp1977 said:
Tried 3G and WiFi. No luck. -.-
Click to expand...
Click to collapse
That sux, the server must not recognize a Mango device or something. My only suggestion is if you have iPhone Maps for Navigon Select, use Map Loader found here on XDA to load those maps.
drkfngthdragnlrd said:
Advanced Config has that feature. Not sure what else does. There's a couple apps that do it.
Click to expand...
Click to collapse
Ok thanks a lot, I'm going to try your trick then! Hope this homebrew will launch on Mango...
drkfngthdragnlrd said:
That sux, the server must not recognize a Mango device or something. My only suggestion is if you have iPhone Maps for Navigon Select, use Map Loader found here on XDA to load those maps.
Click to expand...
Click to collapse
k, I'll try. Gotta read the whole thread first, since it seems rather complicated to set up. Thanks for your help.
dkp are you dev unlocked?
WPDM is broken, it doesn't work with the new beta tools. I uninstalled them and reinstalled WPDM but it crashes on load. Unfortunately I don't have the time to mess with this now so if anyone else can provide the certs that'd be great.
Running touchxperience on my phone I can't find an HTC or Test folder in \windows.
blindpet said:
dkp are you dev unlocked?
WPDM is broken, it doesn't work with the new beta tools. I uninstalled them and reinstalled WPDM but it crashes on load. Unfortunately I don't have the time to mess with this now so if anyone else can provide the certs that'd be great.
Running touchxperience on my phone I can't find an HTC or Test folder in \windows.
Click to expand...
Click to collapse
No problem, I have the same problem with WPDM & the beta tools. I may just have to go back to NoDo to get them myself. At least now someone made a BAT files to update so hopefully I won't have to reset my HD7 to get back into Mango again.
Hi hackers,
Version 2.1 of DeployProvXML is here, and should be more robust than the previous version:
1: The CustClear.provxml file is now copied both using the filesystem DLL (like v1) and using XML provisioning (hopefully works aroudn the HTC update blocking filesystem access.
2: The CustClear.provxml file is now self-chaining. Really, this time - so long as you run the program *once*, you can even change the included CustClear.provxml, re-deploy, and run Connection Setup; your new version will then be copied to \Windows. (Re-run CS to actually process your new version). No more need to re-run DeployProvXML after each use of Connection Setup!
3. The program now contains more diagnostics. It sets a registry value at launch (using ComRegRW.DLL), changes that registry value (using provxml) when deploying the file, and changes it again when the deployed file is processed by Connection Setup (as part of the CustClear.provxml). It also checks that the value is as expected avter deploying.
REQUEST:
Anybody who has an interop-unlocked HTC phone with the latest official HTC update (meaning you can't use TouchXplorer anymore), please run this app, then run Connection Setup, then use a registry editor to check the key HKCU\Software\DeployProvXML. It should have a value, LastOperation. Please include the data in the value (or the fact that it doesn't exist) with your reports. Thank you!
Description:
Another handy little utility for people with HTC phones, this app simply copies a CustClear.provxml file from its install directory to \Windows, then exits. The idea is to make sure that you're never without at least a basic file that can be used by Connection Setup to unlock your phone. New in v2, every time you run Connection Setup, the file will automatically restore itself to the Windows directory. This ensures you'll never accidentally get caught with a locked phone after an upgrade or something!
The included Provxml has three parts. However, you can customize it however you like by opening the XAP file and editing the embedded provxml. The parts are:
1: Applies the registry settings to unlock the phone, including Interop-Unlock.
2: Applies a test value in the registry, at HKCU\Software\DeployProvXML. This value is harmless but can be used to test if the app is working.
3: Chain-copies itself from DeployProvXML's install folder into Windows again, replacing the copy that Connection Setup consumes.
Note that this program does not actaully apply the provxml, merely copies it to where Connection Setup expects to find it. It should close immediately after starting; this is not a bug. If you see a dialog box instead, something went wrong and you should report it below!
This program is only going to work on HTC phones, since it uses the HTC DLLs for provxml, file access, and registry. It is a 7.0 app but is compatible with Mango if you have Interop Unlock already.
XAP is in DeployProvxml\bin\debug. Source included for those interested.
Do you think a deployer for OMNIA 7 is possible ?
Maybe with a .dll of WP7 Root Tools ?
So users who didn´t prepare their device for our OnDevice provxml app under NoDo could also enable this feature...
contable said:
Do you think a deployer for OMNIA 7 is possible ?
Maybe with a .dll of WP7 Root Tools ?
So users who didn´t prepare their device for our OnDevice provxml app under NoDo could also enable this feature...
Click to expand...
Click to collapse
This has been solved I can finally test the app myself now. I changed the path to copy the provxml from the iso storage of the app instead of the provxml folder.
Interop.Services
Just read this http://translate.google.com/transla...oducing-windows-phone-7-5-native-programming/
Any joy?
Looks cool, but I'll need to investigate further. It has definitley been reproted that Homebrew apps without ID_CAP_INTEROPSERVICES don't work even in Mango. It sounds like this guy is maybe using a marketplace signed DLL, though? Not sure - the translation isn't great. He's working from an app that I've never explored, and that appears to be specific to the Japanese Mango phone.
how do we use it. will it permanently unlock when we update to official Mango?
Ttblondey said:
how do we use it. will it permanently unlock when we update to official Mango?
Click to expand...
Click to collapse
Install app in NoDo.
Run in once.
Upgrade to Mango.
Run the Connection Setup app (from Marketplace).
Hit "OK" in Connection Setup.
Your phone is now dev-unlocked and will not automatically relock. Additionally, you can now install Mango homebrew.
I suggest you then run DeployProXml again, since installing an update, even something like a HTC firmware update, may re-lock the phone. So long as you've run DeployProvXml since the last time you ran Connection Setup, though, you can unlock again.
If this helps, please hit Thanks!
piaqt said:
Just read this http://translate.google.com/transla...oducing-windows-phone-7-5-native-programming/
Any joy?
Click to expand...
Click to collapse
he does pretty much the same from what I read. You just use oem dll's and have some native functions to work with. f/e htc has file operations + regoperations + provxml, samsung has regoperations + provxml (trough which you can do regops). This manufacturer dll probably contains fileops as well, which is nice since there might also be a chance that there will be a working provxml method and with the fileops you can copy the provxml files to the desired location. In theory ofcourse.
Marvin_S said:
he does pretty much the same from what I read. You just use oem dll's and have some native functions to work with. f/e htc has file operations + regoperations + provxml, samsung has regoperations + provxml (trough which you can do regops). This manufacturer dll probably contains fileops as well, which is nice since there might also be a chance that there will be a working provxml method and with the fileops you can copy the provxml files to the desired location. In theory ofcourse.
Click to expand...
Click to collapse
There are two differences that are worth noting, though.
A) This is a phone that came with Mango. There was never any chance to unlock it for Mango homebrew. It blocks apps with ID_CAP_INTEROPSERVICES - something we had to work around with registry edits.
B) Related to A, he can call native code without having ID_CAP_INTEROPSERVICES. This isn't supposed to be possible at all. Makes me wonder if he's actually calling anything in the DLL or if he's just loading the COM object but not using it and calling that success.
GoodDayToDie said:
There are two differences that are worth noting, though.
A) This is a phone that came with Mango. There was never any chance to unlock it for Mango homebrew. It blocks apps with ID_CAP_INTEROPSERVICES - something we had to work around with registry edits.
B) Related to A, he can call native code without having ID_CAP_INTEROPSERVICES. This isn't supposed to be possible at all. Makes me wonder if he's actually calling anything in the DLL or if he's just loading the COM object but not using it and calling that success.
Click to expand...
Click to collapse
Ahh yeah your right. Yeah I realy wonder what the trick behind it is and if he manages to install it.
Something else I have not tried yet, but what happens if you deploy it without the id_cap and than run it. It will not work obviously, but what happens if you redeploy with the tag in? Will it still get rejected? Because the phone rejects the app I think.
Hey, the ZIP contains a folder, which, if I package into a XAP, fails on deployment. What's the best way to get this packaged into a usable XAP?
trying to figure out how to install this app.
@thesecondsfade:
Bottom line of the first post:
"XAP is in DeployProvxml\bin\debug. Source included for those interested."
I distribute most of my apps this way, unless the source is really big and the XAP alone is a significantly smaller download for some reason.
@Ttblondey:
Is your phone dev-unlocked?
Is your phone either pre-Mango, or interop-unlocked?
Do you have a XAP deployment program and the Zune software?
GoodDayToDie said:
@thesecondsfade:
Bottom line of the first post:
"XAP is in DeployProvxml\bin\debug. Source included for those interested."
I distribute most of my apps this way, unless the source is really big and the XAP alone is a significantly smaller download for some reason.
@Ttblondey:
Is your phone dev-unlocked?
Is your phone either pre-Mango, or interop-unlocked?
Do you have a XAP deployment program and the Zune software?
Click to expand...
Click to collapse
My TouchXplorer does not work anymore after updating to the official Mango, though my phone is still unlocked. This XAP will definitely helps if new firmware/updates come along to deploy Provxml to /windows.
I've installed it but how can I verify if this is being installed/copied to /windows?
GoingInside said:
My TouchXplorer does not work anymore after updating to the official Mango, though my phone is still unlocked. This XAP will definitely helps if new firmware/updates come along to deploy Provxml to /windows.
I've installed it but how can I verify if this is being installed/copied to /windows?
Click to expand...
Click to collapse
This app uses the same DLL as TouchXplorer, which means it doesn't work either (I wrote a number of apps using that DLL, including a backup tool, and none of them can see any files anymore). I'm not sure exactly what was changed, but yeah, they broke it. My hope is that Heathcliff74's WP7 Root Tools will restore file browsing on HTC soon.
As soon as I finish restoring my phone, I'll try writing a version of the app that uses ProvXML to copy the file, instead of ComFileRW.dll (which no longer works if you get the final HTC update). Using ProvXML is limited in some ways - you can't browse the filesystem, for example - but it works great for this type of operation.
i'm on force unlock from Ansar's thread with Pedbe way final mango.Been trying to use advancedconfig 1.3,1.4 battery meter it don't work anymore.Good thing I can sideload(that's important)
GoodDayToDie said:
This app uses the same DLL as TouchXplorer, which means it doesn't work either (I wrote a number of apps using that DLL, including a backup tool, and none of them can see any files anymore). I'm not sure exactly what was changed, but yeah, they broke it. My hope is that Heathcliff74's WP7 Root Tools will restore file browsing on HTC soon.
As soon as I finish restoring my phone, I'll try writing a version of the app that uses ProvXML to copy the file, instead of ComFileRW.dll (which no longer works if you get the final HTC update). Using ProvXML is limited in some ways - you can't browse the filesystem, for example - but it works great for this type of operation.
Click to expand...
Click to collapse
Ok, guess I'll have to wait for the experts (Heathcliff74 and you etc) to solve this HTC drive update issue. Thank you!
GoingInside said:
Ok, guess I'll have to wait for the experts (Heathcliff74 and you etc) to solve this HTC drive update issue. Thank you!
Click to expand...
Click to collapse
@GoingInside, and anybody else in the same boat (latest HTC update installed, filesystem browsing broken), please try the latest version (v2, now on the initial post)! After running the app once, run Connection Setup and hit OK. After you do that, use a Registry Editor to check for the presence of the following registry key: HKCU\Software\DeployProvXML.
Please report whether that key is present. If it is, that means the app is fully functional even with the latest update!
I only have a NoDo Backup (my phone came with nodo) - can I get the interop unlock trough dev unlocking the phone and then running our app?
nvm, I am now downgrading to NoDo and Will then update to the HTC RTM (the one that Comes via zune). As soon as I am there I will tell you if i had luck with it or not (I hope I can interopunlock on NoDo as the 3 apps sideloadlimit is crap)
Update 1: I am on NoDo and I started your app. It cloesd, i went to Connection Setup and ran it. Will check if the registry value is there as soon as some XAPs are deployed (first time that I can deploy more than 3 XAPs )
Update 2: Now going trough the Beta - RTM - HTC Update Update marathon. Will Report back as soon as I am on HTC's RTM
GoodDayToDie said:
@GoingInside, and anybody else in the same boat (latest HTC update installed, filesystem browsing broken), please try the latest version (v2, now on the initial post)! After running the app once, run Connection Setup and hit OK. After you do that, use a Registry Editor to check for the presence of the following registry key: HKCU\Software\DeployProvXML.
Please report whether that key is present. If it is, that means the app is fully functional even with the latest update!
Click to expand...
Click to collapse
Unfortunately, it seems that the new XAP (v2) doesn't work as well. Copy and deploy the latest DeployProvXML.xap (dated 5/10/2011) to my HTC trophy. After running Connection Setup, I can't find the registry key: HKCU\Software\DeployProvXML. I only found MICROSOFT under HKCU/Software/.
But please continue your research into this. THANKS!
HTC new drivers Mango Rom will not allow old system apps to get root access, like TouchXplorer does not work on 4.xx above roms.So these days i found a way to make my custom rom based on htc 5.10 rom work perfect with old system apps.
Step 1
get an old htc offical rom, like 1.xx, get a htc offical 4.0x rom.dump them.copy HTCFileUtility.dll and HTCRegUtility.dll from 1.xx rom dump, and HTCProvisionDrv.dll from 4.0x rom dump.(they are both in OEM\HTC_AppDrivers)
Step 2
use the three files(modules) copied above to replace your custom rom, if u are using 4.0x rom as your base skip step 3.
Step 3
replace the ApprovedlistDB.db(in OEM\CSConn_DB) by my uploaded one.
Step 4
use OSBuilder to relloc your modules, or relloc them by yourself(just like me, cause OSBuilder is hard for me to understand how to use it)
Step 5
package your custom rom, and flash it, then you will get a new rom that TouchXplorer and RegistryEditor(this works much faster than before) can work like charm
Step 6
thx DFT bring us HSPL & Julien Schapman bring us magic system tools!
remarkable,thx 4 sharing
Would be awesome if there was a way to restore the old versions in-place without re-flashing the whole phone. CAB maybe? I don't think you can overwrite ROM modules any other way. I've avoided installing the latest HTC updates because I've written a couple apps that rely on the File and Reg DLLs, but that also means I don't have things like the Connected Media app working.
GoodDayToDie said:
Would be awesome if there was a way to restore the old versions in-place without re-flashing the whole phone. CAB maybe? I don't think you can overwrite ROM modules any other way. I've avoided installing the latest HTC updates because I've written a couple apps that rely on the File and Reg DLLs, but that also means I don't have things like the Connected Media app working.
Click to expand...
Click to collapse
if you can put files in \windows folder, and change reg key under HKLM\Drivers\BuiltIn\, you can make it works without flash a rom.
cause we could get drivers from htc orginal update cabs then rename them to put into \windows folder and change reg key to make these drivers load, no need to replace.
Well, if you care about this at all, you're already interop-unlocked.
If you're interop-unlocked, then you can set registry values and move files (using provxml).
So... yes, this sounds pretty exciting. Having the official HTC updates but still being able to use TouchXplorer would be awesome.
So, would it just be a matter of copying the old files under new names to the Windows folder and changing the "Dll" value of "HKLM\Drivers\BuiltIn\HTCFileUtility" and such? Or would something need to be done with the DB as well? I'm not sure if that can be changed on a running device.
Tell me what needs to be done and I'll create a tool to do it.
GoodDayToDie said:
Well, if you care about this at all, you're already interop-unlocked.
If you're interop-unlocked, then you can set registry values and move files (using provxml).
So... yes, this sounds pretty exciting. Having the official HTC updates but still being able to use TouchXplorer would be awesome.
So, would it just be a matter of copying the old files under new names to the Windows folder and changing the "Dll" value of "HKLM\Drivers\BuiltIn\HTCFileUtility" and such? Or would something need to be done with the DB as well? I'm not sure if that can be changed on a running device.
Tell me what needs to be done and I'll create a tool to do it.
Click to expand...
Click to collapse
you are on the way, m8.
get drivers from htc update cab, then u'll get files not modules
Code:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\HTCFileUtility]
"Dll"="HTCFileUtility_new.dll"
if you make new HTCFileUtility.dll work, you will have enough power to replace files.
then make your new reg drivers work.
Code:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\HTCRegUtility]
"Dll"="HTCRegUtility_new.dll"
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\HTCProvisionDrv]
"Dll"="HTCProvisionDrv_new.dll"
thanks for sharing, waiting for this method for along time.
Thanks ted. I'll update my backup (so I can roll back to working version if I need to) and go hunt down those files.
I don't think I'll need to overwrite HTCProvisionDrv, the current version seems to work just fine. In fact, if it doesn't, there won't be any way to do the overwrite. It's just the registry and filesystem drivers that were broken.
Now I'm wondering what the other HTC drivers do. There's a specific one for Connection Setup and for HTC YouTube, plus drivers for "HTCBgService" (a way to run tasks in the background, I assume) and "HTCVersionUtility" (probably not useful, but maybe?). It would be interesting to examine the APIs of those.
For that matter, it would be interesting to examine the API of things like the provision driver. It appears to have full permissions, but the DMXMLCOM.DLL library used to interface with it has a fairly limited API (no way to get the result of a provxml query, for example). Talking directly to the driver may work better.
Anyhow, off to find the correct CAB!
Sounds pretty awesome! New drivers in Mango with support for old apps - cool! Really hoping for a tool to do this, i've never cooked my own ROM, I solely rely on the experts for this
Hi Ted (or anybody), do you knwo where I can get the pre-Mango HTC cabs? All the cabs I've been able to find are for the Mango HTC updates, and have the wrong versions of the files.
EDIT: Found some that might work. They aren't labeled but the datestamp is from January.
Pretty sure xboxmod has a thread with all the official cabs linked somewhere on xda.
Sent from my HD7 T9292 using XDA Windows Phone 7 App
Thanks. I'll see if the files I found work. They're old enough, and are supposedly from an official update, but it's hard to be sure. Their file sizes are different from the ones in the latest update, but not by much.
The real trick, of course, is seeing whether I can install my own drivers at all or not. I know I can place files and change registry values, we just have to see if the phone will use them.
ted973 said:
HTC new drivers Mango Rom will not allow old system apps to get root access, like TouchXplorer does not work on 4.xx above roms.So these days i found a way to make my custom rom based on htc 5.10 rom work perfect with old system apps.
...
Click to expand...
Click to collapse
Any chance you would release your custom ROM? Can you make one for Trophy, only one using 5.10 version are Ansar's, your's sounds nicer!
Well, I didn't find Xboxmod's cabs, so I'm using the ones linked in Heathcliff74's thread. Unfortunately all the reliable ones are pretty recent, so I don't think they'll work. Last resort I'll try pulling them off my phone's filesystem, but that gets weird with modules.
I've successfully broken TouchXplorer and Connection Setup, and then fixed them again. I think this constitutes progress. Next step: try some older drivers, and see if I can install them without breaking anything. If so, then I'll try updating my phone with the official HTC update, and see if it's still working. If so, I'll clean up the XAP a little and publish.
EDIT: Additional discovery: Connection Setup relies on HTCFileUtility.dll. Installing the broken FileUtility driver causes Connection Setup to complain that there's no database installed on the phone, and then quit. Now I *really* wonder what HTCConnectionSetUp.dll is used for. Also, I'm not gonna touch the Provision driver unless I have to; this testing takes long enough when every step requires a reboot. If I mess up the provision driver I'll probably need to restore the phone backup.
EDIT2: The new HTCConnectionSetUp.dll driver is several times the size of the old one, but it doesn't seem to change how Connection Setup works when I use it. In particular, it still processes CustClear.provxml.
EDIT3: Still not working, even with very old drivers (January). I have a few possible ideas as to why, but it looks like I may need to run this with drivers from my "working" phone instead of from a CAB.
OK, I haven't been able to get this working with any of the DLLs I've been able to pull from CABs, and the DLL modules on the filesystem can't be moved, renamed, or read (ERROR_ACCESS_DENIED when I try to read one using ComFileRW.dll).
I either need the right CAB, the special sauce to make it work with the wrong CAB, or a way to extract those modules as files. I suspect it's at least partially a "special sauce" situation - the errors I get when I try using different drivers are not the same as the errors I get with the official update that breaks third-party apps trying to use those drivers.
I would *REALLY* appreciate some assistance with this. It has the potential to provide an easier interop-unlock (if the official update doesn't reset the driver DLL paths) and even if that doesn't work, it would be a big step forward for HTC homebrew. However, I know nothing about ROM assembly - not even how to extract a file from a shipped ROM. I'm trying to learn, but if somebody wants to point me in the right direction that would be a big help.
EDIT: I managed to extract the ROM module (took some doing; HTCRIE will crash at the drop of a hat if you aren't careful). I can't rebuild the file though - recmod doesn't seem to like it.
if you can use Provxml i have some way to replace module in \Windows dir
1.
<wap-provisioningdoc>
<characteristic type="Registry">
<characteristic type="HKLM\System\Explorer\Shell Folders">
<parm name="My Ringtones" value="\Windows" datatype="string" />
</characteristic>
</characteristic>
</wap-provisioningdoc>
Click to expand...
Click to collapse
copy this to notepad and save as File.Provxml file
2.Install DiagProvXMLv0.91
3.Use Chevron Ringtone Installer to copy .Provxml to your phone
4.Run DiagProvXML and go to " File Operations" tab , select Copy (to isoStore)
in Source Path use
\My Documents\My Ringtones\
Click to expand...
Click to collapse
and Source File use
File.Provxml
Click to expand...
Click to collapse
,,
Press (+) to save ,,
and now go to provxml tab and Press Publish (disk icon) ,,
go to iso store tab and Hold press at File and select Excute ,,
restart your phone and now you can use Chevron Ringtone installer to Add File you need to \Windows\ (sure as module , and defaultcert.dat for cab sender)
Best Regard
PPJD
@peeks20: Thanks (sort of) but your method is both overly complicated and doesn't solve the actual problem. If you're already interop-unlocked (and you have to be, to use DiagProvXML), then it's trivial to write a small app that just uses DMXMLCOM.dll to process whatever provxml commands you want. That includes copying files to the Windows directory.
The problem is that I'm not sure what file to copy, and I'm not sure it'll work even if I have the right file (I've tried multiple official files from various update CABs, and none of them have worked). There's probably either a version-matching function that's getting in the way, or a database somewhere that needs to register the new drivers (beyind just changing the path in the Dll value in the registry). Heck, maybe it's both. The point is, it doesn't work.
Now, if there's something about deploying the files using the Chevron ringtone installer instead of using pvroxml that will make all the difference, that would be cool. I really doubt it, though. The files copy just fine, and can be accessed and opened. They jut don't actually work. I get the same errors as if I point the Dll path in the registry to completely bogus paths ("Dll"="ThisFileDoesNotExist.dll").
GoodDayToDie said:
@peeks20: Thanks (sort of) but your method is both overly complicated and doesn't solve the actual problem. If you're already interop-unlocked (and you have to be, to use DiagProvXML), then it's trivial to write a small app that just uses DMXMLCOM.dll to process whatever provxml commands you want. That includes copying files to the Windows directory.
The problem is that I'm not sure what file to copy, and I'm not sure it'll work even if I have the right file (I've tried multiple official files from various update CABs, and none of them have worked). There's probably either a version-matching function that's getting in the way, or a database somewhere that needs to register the new drivers (beyind just changing the path in the Dll value in the registry). Heck, maybe it's both. The point is, it doesn't work.
Now, if there's something about deploying the files using the Chevron ringtone installer instead of using pvroxml that will make all the difference, that would be cool. I really doubt it, though. The files copy just fine, and can be accessed and opened. They jut don't actually work. I get the same errors as if I point the Dll path in the registry to completely bogus paths ("Dll"="ThisFileDoesNotExist.dll").
Click to expand...
Click to collapse
i uploaded HTC Appdrivers from Mozart 1.32 & 4.06 update cabs, maybe you can continue your test
Thanks, I'll give them a try. However, I've got to ask - what is Approvedlist.db, and if you have to modify it for a custom ROM, would I also need to modify it for this app? I can't shake the feeling that there's more to installing a driver than just changing a registry value.
GoodDayToDie said:
Thanks, I'll give them a try. However, I've got to ask - what is Approvedlist.db, and if you have to modify it for a custom ROM, would I also need to modify it for this app? I can't shake the feeling that there's more to installing a driver than just changing a registry value.
Click to expand...
Click to collapse
hard for me to explain this in english, this file decides which Registry keys allow apps to change.its format changed in 5.xx rom, so RegistryEditor v1.2.0.0 didn't work on these roms, we need to use old version HTCRegUtility & HTCProvisionDrv and old format ApprovedlistDB.db to make htc apps and 3rd Registry tools works perfect, that's why you need to replace ApprovedlistDB.db.
I have found a theoric solution so far for interop-unlocking an HTC Phone. Disassembling HTC Connection Setup (since it the HTC.Shell.Registry.dll) and modifying it using IL Spy for example and include the line of code to modify the register (the dll stated before is capable of doing this).
Windows Marketplace App is capable of installing apps with Interop Services (you can install HTC Connection in fact) so we could sniff (i.e. via Wireless) the app traffic to detect when it dowloads the xap. Then by using the router settings (or a proxy or something like that) we could divert the traffic to a modified xap so the Market will download the modified xap instead (or we could even totally use another app ).
This will work only if the market hasn't those characteristics:
* It uses HTTPS to download the xaps (by the analysis I have done so far it seems not)
* It checks in any way the downloaded xap.
Do you think it could be a good idea?
I am not an expert in those things but by discussing with a colleague he stated that could be possible (difficult however in his opinion).
Microsoft?
Do you think Microsoft guys wouldn't have thought about this before and have taken preventive measures?
Never doubt HTC's ability to compromise an OS. lol I'm not all that familiar with xaps yet but I would think they have some sort of checksum or key that it can check the app with to make sure it's not corrupt.
xHausx said:
Never doubt HTC's ability to compromise an OS. lol I'm not all that familiar with xaps yet but I would think they have some sort of checksum or key that it can check the app with to make sure it's not corrupt.
Click to expand...
Click to collapse
Indeed... plus this. A similar methodology could be used to prevent what the OP suggests. I'm certainly not trying to rain on the OP's parade... in fact I hope that siomething similar can be achieved.
ATM it looks like that the only problem is that the market xaps are digitally signed. By the way the MultipleXAPInstaller program lets you sign the package when sideloading it.
i found the latest Registry Editor can run on my hd7, so maybe the interop-unlock will happen soon.
so,is it possible to interop unlock mango HTCs ?
it will run, but it wont write the values
It runs. We have also found the DLL capable of accessing the registry (they are in HTC Hub and HTC setup) but they require interop-unlock .
the only way to interop unlock is the DFT free ROM ?
Currently DFT rom is the only way for HTC WP7 device
Well XAP files are no way tampering the interop and HTC have custom build into the OS the Interop utilities as shell dll's. e.g HTCRegistryUtility.dll which we can find in any HTC ROM.
All other COMRw or COMReg dll files what we find in HTC xap files are all wrappers to trigger the typeinfo from InprocSrvr ID's predefined for HTC Interops.
Thats the reason all phones (HTC,Samsung,LG) cannot use same Unlock methods.
Best way is to somehow poke a custom certificate to spctrustroot and sign the xap files you download with that again and install.
Or somebody has to hackdown the pacmaninstaller.dll file inside the ROM and create a updatecab for that.
http://forum.xda-developers.com/showthread.php?t=1354706&page=6
this thread provides a new way to unlock
but it doesn't wok on my hd7(if it's related to my SPL version --5.0)