[GUIDE]How To make your HTC Mango Rom suits Old System Apps. - Windows Phone 7 Development and Hacking

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.

Related

Licenced Software CAB conversion

Does anyone know if you can take a piece of software that you have purchased in CAB format, with a Licence Key and change it into a package?
Since the software isn't OEM is it still the same method to create a package?
Any Takers?
This cant be to much of a hard question!!! can anyone answer? please
Tried it with Phone Alarm. sort of worked at the second attempt. But not quite. If I spent more time on it I reckon I could have got it to work but just don't have the time.
crazyC said:
Tried it with Phone Alarm. sort of worked at the second attempt. But not quite. If I spent more time on it I reckon I could have got it to work but just don't have the time.
Click to expand...
Click to collapse
but you can actually do it? what do you do about the activation codes etc?
The code is probably just stored in the registry or a config file after you enter it, in which case just make an RGU in the package putting the right data into the right place.
Some software might encrypt the code.. but even then usually putting the right encrypted string in the right place will work.. You may have to have the owner information set exactly the same each time (as this may be hashed into the generated key) but this isnt a problem as you can set the owner information in the RGU as well.
If you get a program where you cannot track the installation to see what happens when entering serials etc.. try SKTracker.. you can use it to watch the ppc for changes to files, databases and registry and dump those changes for analysis... so you install it.. make a reference dump.. then install/register the app.. then dump again.. then compare to see what has changed.
Some apps it wont work with of course.. but i'd imagine for most it will be possible yes. The worst that happens is you have the app installed in trial mode.. and a text file burned to the ROM with the serials you have bought in it to re-register it when needed after a hard reset.
Yeah - SK tracker is fantastic. Generally it just involves exporting a reg key from your PPC and then putting it into the cab/package along with your owner name (in some cases).
All my licensed software has been set to install via cabs including the keys. Not found any that cannot be done this way.
Problems arise with more complicated installs that involve interfacing with the system. Just using the normal conversion process with the PA cab did not work, needed to run SK tracker and fix a load more reg entries that were changed by the instll prcess. Improved it but still had issues with no sounds etc. I must have missed something, and have temporarily given up. The cab only takes a minute to install anyway.

Zune HD ROM Dump

Here we go!
3 Relevant partitions on the Zune HD:
ZBoot
NK
EXT
(there's actually a 4th partition, but it's a recovery partition for NK to facilitate fail-safe updating)
Enjoy
(a note: some files appear to be damaged, its my first time dumping a CE 7/Zune HD ROM )
(another note: thanks to nd4spd for getting the rom update to me, i don't have a zune hd )
wow I'll take a look.
Anything usable?
These executables are designed for CE 7 and more than likely will not work at all on CE 5 (although things coded for .NET might)
Really, you tell me, though, I haven't actually tried
Awesome! Subscribed...
Wait...so you're telling me it might be possible to create custom roms on the zune hd?!?! i need them to come out with a 128 gb model asap then...
WOW....they were trying to dump a zune rom for years.... so this means the protection on the zune HD is not nearly as strong as the regular zune...this is good news indeed...Mine is on backorder still =x
Another quick Q, did you dump that yourself or find it somewhere?
been trying to find this for a few weeks
looking forward to see what can be done!
are the keyboard files in a format that we can use on windows mobile phones?
votum said:
Another quick Q, did you dump that yourself or find it somewhere?
Click to expand...
Click to collapse
Actually, all I did was reset my Zune HD in recovery mode and plugged it in. When the Zune Software detected it, it downloaded the ROM from MS. When I was defragging my computer a few days earlier, I happened to find the folder where it saved all of the Firmware Updates. So I just looked in that folder and found the FirmwareUpdate.cab that had the .bin files in it.
after messing around with it, looks like nothing can really be recmoded to make dll files. it may need another way to rec mod than in the vk.
So does this mean that the Zune HD will be unlocked shortly?!
Blackwheel said:
So does this mean that the Zune HD will be unlocked shortly?!
Click to expand...
Click to collapse
and does this mean that we will have Zune GUI on winmo devices ?
benko286 said:
and does this mean that we will have Zune GUI on winmo devices ?
Click to expand...
Click to collapse
That could take some time, but once we are able to read the files, i will try to work on a keyboard
setix said:
That could take some time, but once we are able to read the files, i will try to work on a keyboard
Click to expand...
Click to collapse
How about unlocking the Zune HD? Or is that a completely different animal?
Somebody please sticky this thread immediately. This can only lead to great things!
Blackwheel said:
How about unlocking the Zune HD? Or is that a completely different animal?
Somebody please sticky this thread immediately. This can only lead to great things!
Click to expand...
Click to collapse
Err.. forgive my ignorance.. but is Zune HD locked?
In what way?
I think what he means by unlocking is to unlock for ROM modification and development.
ND4SPD said:
When I was defragging my computer a few days earlier, I happened to find the folder where it saved all of the Firmware Updates. So I just looked in that folder and found the FirmwareUpdate.cab that had the .bin files in it.
Click to expand...
Click to collapse
The ROM is saved in a .cab file to %HOMEPATH%\AppData\Local\Microsoft\Zune\Firmware Updates
7-Zip or another unzipping software can extract it out into the 4 .bin files, ext.bin, nk.bin, recovery.bin, and zboot.bin.
I have not yet succeeded to breaking it down into DLLs, it seems like there are multiple DLLs compiled into one .bin file.
Interestingly enough, some of the plaintext I saw in the recovery file was associated with camera/photography code (do a ctrl-f for "autofocus" or "lens" in the recovery.bin file in wordpad). However, I'm guessing it is the remnants of WinCE code, not for the Zune HD (or a successor?). It still begs the question of why it would be included in the recovery code though...
Hope that someone can use this for something...
hairchrm said:
The ROM is saved in a .cab file to %HOMEPATH%\AppData\Local\Microsoft\Zune\Firmware Updates
7-Zip or another unzipping software can extract it out into the 4 .bin files, ext.bin, nk.bin, recovery.bin, and zboot.bin.
I have not yet succeeded to breaking it down into DLLs, it seems like there are multiple DLLs compiled into one .bin file.
Interestingly enough, some of the plaintext I saw in the recovery file was associated with camera/photography code (do a ctrl-f for "autofocus" or "lens" in the recovery.bin file in wordpad). However, I'm guessing it is the remnants of WinCE code, not for the Zune HD (or a successor?). It still begs the question of why it would be included in the recovery code though...
Hope that someone can use this for something...
Click to expand...
Click to collapse
To break it down, you need to use cvrtbin.exe to convert it to the .nb0 format. Once you have that, as Da_G pointed out to me, you can use Xipport.exe's dump xip function to dump whichever converted file. Unfortunately, xipport has an error on the last file, so I'm going to try to fix that this evening.
You can also view the files in Da_G's first post
ND4SPD said:
To break it down, you need to use cvrtbin.exe to convert it to the .nb0 format. Once you have that, as Da_G pointed out to me, you can use Xipport.exe's dump xip function to dump whichever converted file. Unfortunately, xipport has an error on the last file, so I'm going to try to fix that this evening.
You can also view the files in Da_G's first post
Click to expand...
Click to collapse
Ahh... haha, I thought he linked to the raw .bin files and I figured that it would be easier to grab them from your own computer than download them. Whoooops!
I am curious, has anyone disected the Zune HD Hardware? I wonder what extra hardware got left behind that is not currently activated (and possilby not licensed). The core chipset can handle all of the common peripherals that you might find in a WM7 class phone chasis.
At the very least you should be able to see the sort of antenna and amps in there.
the Imageupdate system clearly works, so one approach to updating it (unlocking and or removing security) is to use the imageupdate system (on device or from your desktop, or possibly OTA). Although you would need to know a good bit about the NK and zloader for wm7. WM7 is a more streamlined, efficifient design, but - unfortunatey - there is a lot more in the kernel which makes updating individual bits more difficult without a full link.
It is a little bit more like the X360 design in this sense.
I believe that imageupdate is only known the to the end users as the engine for Windows Phone Update or -previously - FOTA (firmware over the air)
As Da_g mentioned, this is the first commercial device (to my knowledge) to use WCE7/WM7 (in general, WM is just a big OAK on WCE)
What certs are in the full CAB?

[Q] How to deal with Self Registering Dlls while Cooking

While Cooking for LEO, many CABs has a self registering Dlls which runs fine from the cab file but when you try to convert the cab to OEM package, this dll looses it self registering functionality because there wasn't any code grabbed to the OEM package that tells the Kitchen to mark it for self registering.
Is there any solution for such a case?
To Make it clear:
I'm trying to cook "MOBiDIV_PrayerTimes_Diamond2_B15_TSD_Jun1.Cab " but the problem with the included "fileosp.dll" which requires self registration that is been automatic done while installing the .CAB
So, is there any kind of solution to do it while COOKING the ROM?
Use kheb to grab all the registry keys that are installed during the cab install/reset process. Then put them in your package. Or just search for the keys. We're talking the HKCR\clsid keys, aren't we? They're usually easy enough to find, if you dump and search your registry.
Farmer Ted said:
Use kheb to grab all the registry keys that are installed during the cab install/reset process. Then put them in your package. Or just search for the keys. We're talking the HKCR\clsid keys, aren't we? They're usually easy enough to find, if you dump and search your registry.
Click to expand...
Click to collapse
Thanks for your idea.
I did already and got all clsid and inject them in the package but still the same.
It seems emulator is behaving differently than actual device, what you think?
InCities.cdb
After ROM Booting, i re-install the Original Application, it works.
This is normal because the original application is doing something with InCities.cdb file.
I knew that my registry entries is correct because:
1- I checked everything in registry before and after my modification.
2- I checked everything before and after Original Program Change.
changes are identical
BUT
BUT
WHEN I PLAYED WITH (CHANGED) THE REGISTRY ENTRIES:
FROM
[HKEY_LOCAL_MACHINE\Software\Apps\Shared]
"\\Windows\\InCities.cdb"=dword:00000001
TO
[HKEY_LOCAL_MACHINE\Software\Apps\Shared]
"\\Windows\\InCities111111111.cdb"=dword:00000001
then copied another file as the same name
then tried to change it back to original, THE APPLICATION FAILED.......................................
So, Here is the trick but i don't know how to fix.

HTC regedit app using COMRegRW.dll that works in Mango

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

[XAP][Source] DeployProvXMLv2.1 - Fixes self-chaining, adds diagnostics

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!

Categories

Resources