Sign files after developing - Windows Mobile Software Development

I've seen the links to microsoft explaining the certification. I'm a n00b at this and somehow it doesn't sink in. Could someone provide a link to a more simple explanation?
I've downloaded some open source projects. I can compile them and install the cab to my PDA. All is working. If i understand correctly is a application wants to do something more extensive on your PDA it needs a certification?
But no, you can also use a test certification?

A signed application can indeed perform functions and make certain calls that are 'proteced' and cannot be done on a large part of these devices without being signed.
However, you can sign your files and CAB with your own certificate, and let the CAB install the certificate to enable all protected calls for this application. This will however only work on phones that are not fully locked down. In other words, this works on most phones, but some phones (mostly non-touchscreen, but not only) will reject the installation completely.
Chances are if you are developing/testing you are using a device on which this is easily possible. Google'ing for "wince sdkcerts" will possibly give you details on how-to.

do we have something like a general XDA-Developers certificate?

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.

WP7 Unlocking, Sideloading etc. Problems and Solutions

Now, I know no-one actually likes reading threads, and would prefer to just post a new question at the end (I'm guessing partly because the threads are so long, but that's because everyone is doing it) so I'm going to try and give solutions to as many of the issues with ChevronWP7, sideloading and anything else that's not quite working.
Note, none of this is to facilitate any kind of software pirating (we will notice if it gets discussed, and it's in the forum rules - and kinda immoral).
Firstly, Windows Vista (I think SP2) or Windows 7 is required, this won't work on XP without a few hacks/tweaks, and it's not worth me writing the whole process out, plus I don't have an XP machine to hand, so I can't try things.
The most common issues can be fixed with just installing the correct software.
You NEED to have the official WP7 Developer Tools installed, they're a free download from Microsoft, and if you're planning on doing development (which is after all part of the reason for wanting sideloading) you kind of need them.
There's a guide on how to install them (provided by Microsoft) here. You only need the basic toolset from here, but installing the October update won't cause any issues.
This should solve the following exception:
Code:
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.SmartDevice.Connectivity, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
as well as a few other issues.
When running any of the tools, if you encounter issues, try either running the tool as an administrator or turn of UAC (for both, do a search if you've no idea what I'm on about), this may solve some issues with access rights etc.
Once you've got that installed, Chevron issues are in post #2, sideloading XAPs in #3.
ChevronWP7 Issues
With Chevron, most things are explained well in the opening post of this thread. Read it.
Chevron works by tricking your phone into thinking it's communicating with Microsoft servers, when it's actually just communicating with Chevron, this means certain web based activities may interfere (Skype for example).
The best way of finding out what's going on, is to use the following guide, it should work, if that fails, then post a question.
sushovande said:
Okay so here is *everything* I did to succeed in re-unlocking my Samsung Focus
1. Have Winphone developer tools installed
2. Connect Phone via USB
3. Wait till zune starts and sync completes
4. Verify that zune is not in a guest relationship
5. open a command prompt, type netstat -a to confirm that port 443 is not being used
6. open an admin command prompt, navigate to c:\windows\system32\drivers\etc\ then type notepad hosts and delete any references to windowsphone developer services
7. go to the settings on the phone and turn airplane mode on (so that the phone is forced to use internet via zune)
8. While the phone is still on the settings page, run Chevron with admin privileges
And it worked!
Click to expand...
Click to collapse
There's no way to know whether a device is unlocked or not until you come to sideloading, which is the point where it matters anyway. Nothing (visible) will change on the device, so don't bother looking for any changes.
WP7 devices occasionally phone home (as far as I know they only do so when connected with Zune) to check whether they should be unlocked or not. If not, they quietly re-lock themselves, and non-marketplace apps will say something along the lines of "This application has been revoked". You'll need to try unlocking again with Chevron and possibly reinstall the apps. There's not much that can be done other than legitimately unlocking your devices.
There's a sideload limit of 10 applications, though there's a version of Chevron that has this limit hacked out of it, I just can't remember where it is. For most legitimate uses, this limit should be fine (and is better than the student/DreamSpark limit of 3).
XAP Installation
A first port of call if Toms XAP Installer doesn't work is to use the official one. It does work.
If you've installed the Developer Tools linked to in the first post, you'll have it already, and should be able to sideload, if your device has been unlocked. If it hasn't you'll have issues, and you should take a look at post #2 in this thread.

Slyfer - Old Firmware Downloader for Samsung Mobiles

Hello,
i have made a Firmware Downloader that had the availability to download all Samsung Mobile Fimrwares, but since march this year samsung changed the server, and is using a new system for getting the data. However this tool could help someone who maybe find the new way to download firmwares, it has already access to the old server, only the firmwares are all transfered to the neofus server.
It could help someone, maybe, because i am not allowed to do anything here, cause i am new, i will try to support the new developers.
It is developed in C# .net 4 and you will need kies installed, or the fuscryptlib registered, found in the kies folder or in the app folder.
regsvr32 %Path%/fuscrypt.dll
Should i explain that this downloader had the availability to download also android fw and so on? maybe there is someone who can made it.
It was before march the ultimate tool to get every fw from the server. I tried at my own to make a new one, the my developer mentor tried it, we failed due to lack of time.
Just downloaded the "Slyfer300" app. The UI is superb. Just a pity Samsung has changed the server to their firmwares and we cannot use this tool for now. Let's hope and pray someone comes up and lend a hand to complete this wonderful app. So that we can easily download and flash firmwares manually without the need for kies.
I included a screenshot of this superb app below for the eyes only (until it becomes a fully functional app)
The App worked a half year, samsung changed the servers since March 2011, i was before here @badanation.de and developed it in the past. The app was secret and we offered for everyone free Firmwares of their desire, the only rule was only for badanation members.
I puplished it, cause maybe someone here @xda could make it work with the new server that was a cool time when you start the app and you can download any firmware you want.
The old system was based on a PL/SQL query over PHP, i have found a bug in the system and could request the whole Database from the Firmwares, you can see in advanced mode what was possible.
Also user names and their ... was visible, but i newer wonted to damage samsung i always wanted to help other users with the firmware problems we all have.
The new System is a little bit tricky signatures and so on no more php
As i know here was some nice developers @xda that could maybe improve it. Let us see what the feature brings to us.
Hi, nice tool. Unfortunately it's not working with the new servers. I have made a tool that can download the latest firmware from samsungs new servers, but it still requires an old firmware as input. I have not found any way to browse all firmwares like you could on the old server. A lot have chenged in the way you request firmwares and it unfortunately no possible to reuse this tool on the new server.
Yes, it was not simple to find out the right PL/SQL commands for oracle, it was more a doing by trying thing. But as i saw it on keys the listening method still exists on new server, it is the same database, only with a new system. I have done some Kies 2 researches but than give up, cause of lack of time. I had a tool that can download with the new request system.
Only what you need is to pass through the right PL/SQL command, in Kies you find an CarrierTestMode and ServiceCenterMode, one of this two can listen the whole Phonebinary databases, the code is to huge, i havent done a lot since the half year slyfer worked.
Its in a case simply only need to find out the right command, also what is neccessary to find a security whole on new server, on the old server, it was prohibited to execute SQL statements except of predefined calls, but i found a way as you see, it was more an oracle bug, how you can get anyway in and become the whole database information with dictionary commands out, it was at least so easy to get everything out of there. Then i have done some facelifting and made for me an advanced mode to be prepared of changes, but at the near end it doesnt worked any more.
I think you can get in like kies withouth authentification, as before, cause there is no username or password needet if the table is accessable by everyone, its like free to air.
If you need some tips, how i have found out the way in, i can help you. i dont know how to encrypt the new way, but i know that the answer is in the FusCipherUtil.dll it hink it is named so, dont know it exactle, kies is like an open book as you also seems to know.
Forgotten one thing, if you try to send SQL command that listen whole database, then you will get in timeout, cause oracle needs time to collect all the data, i had problems to recieve simple sized calls from it, so you must limit them that you can recieve the data in time everything over an minuete dont works as i remember.
1250 rows around was for my requests the maximum, everything above, througn a server timeout.
larioteo said:
Forgotten one thing, if you try to send SQL command that listen whole database, then you will get in timeout, cause oracle needs time to collect all the data, i had problems to recieve simple sized calls from it, so you must limit them that you can recieve the data in time everything over an minuete dont works as i remember.
1250 rows around was for my requests the maximum, everything above, througn a server timeout.
Click to expand...
Click to collapse
Your program its more power full then CheckFus.
Advanced mode verry great. Verry frustrated, cant use it for now.
hello larioteo are u still working on the new Kies app ?

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

[IDEA] Possible interop unlock for HTC Phones

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)

Categories

Resources