Extracting ROM files for third-party development? - Windows Mobile Development and Hacking General

Now that bal666's awesome utility gives us the ability to decrypt/encrypt the NBF file, we can view and/or extract the ROM files that are normally not available to us otherwise.
One big hoopla that Windows Mobile 5.0 was supposed to have was the native ability to access the camera through their APIs, so that third-party developers could create applications without having to deal with each and every different type of camera technology in different Pocket PC and Smartphone devices.
Of course, it's apparent that HTC has still used their own software and drivers and has not given access to anyone outside of HTC. Not like Microsoft had their own Camera application (I don't know if there ever was one, but there isn't a Microsoft one on the Universal).
Developers such as ComVu with their neat PocketCaster software, are having such a difficult time making a single Windows Mobile 5.0-ready application, and have resorted to making different versions for different devices.
So... where am I going with this? Simple. Let's dump out the contents of the NK.NBF file and see if we can make our own applications with the APIs and drivers that HTC has embedded in the ROM.
I, for one, am looking forward to a internet-based videoconferencing application, much like Microsoft Portrait. Skype also announced video calls on PCs with the new version 2.0. Perhaps someone could send them some code to get video capability on the Universal?
That front-facing camera is beckoning to be used...
On a sidenote, PPL: Pocket Programming Language, allows you to easily create applications (self-contained EXE files, as a matter of fact), and also allows direct access to DLLs and APIs...
Put these two concepts together, and you can see the potential.
Create an application to...
... toggle the camera flashlight.
... do internet videoconferencing.
... do face recognition security.
Create your own camera app, phone app, game using images from the camera, etc. etc.
Another thing, though I'm not sure, but perhaps it's possible to rebuild your own ROM... remove Voice Speed Dial? Embed Voice Command, Resco Explorer, remove stupid applications or unused portions? etc. etc.
What does anyone else think about this?

BtT,
This sounds great, even having only a magician which will likely not being supported in projects like this. I still want to create my own rom with at least all the patches installed in rom. Camera & Album are taking at least 1Mb from my precious storage & apps like resco explorer are indeed must haves.
So I'm looking rorward to progress & tips in this thread & when I succeed with simple magician rom cooking I'll let you know. Don't expect any new camera apps from me, no time & no development for anymore .
Regards, M

http://research.microsoft.com/workshops/FS2005/presentations/FacultySummit_2005_Lieberman.ppt
I just realized that Windows Mobile 5 SDK contains a "common camera API" which is likely the method that third-party developers will take (or have taken) to access the camera. I have emailed Skype to see if their new 2.0 desktop version that has Video Calling can be somehow implemented on the Pocket PC, now that it is technically feasible.
I'm surprised the guys behind Microsoft Portrait haven't jumped on this yet.

Related

Where can I get SDKs for XDA II?

I saw a lot of programs developed for XDA II, and they are for XDA II only. So it must be a SDK documents somewhere, otherwise no-one can write codes specific for XDA II, Am i correct?
If so, could anyone tell me where can I get the XDA II's SDK?
Thanks in advance
SDK is the PocketPC2003 SDK available free from Microsoft.
It really needs embedded Visual C++ 4, also available free from Microsoft.
http://www.microsoft.com/windowsmobile/default.mspx
They'll also send you all the tools on DVD for a small handling fee, as they are huge downloads.
andyclap said:
SDK is the PocketPC2003 SDK available free from Microsoft.
It really needs embedded Visual C++ 4, also available free from Microsoft.
http://www.microsoft.com/windowsmobile/default.mspx
They'll also send you all the tools on DVD for a small handling fee, as they are huge downloads.
Click to expand...
Click to collapse
Sorry, I didn't make myself clear.
I have the generic SDK from MS, what I need is the SDK for XDA II, it should come from XDA II's manufacture.
Thanks
well there are not xda2 stk
but there are a collection of stk's
one of them is ms's
another is the one which the cam program uses
another is the stk of the ati 2d chip
i think ati will give you their sdk if you reg at their site or something
dont think the cam's sdk is something they would let people get their hands on
a xda2 sdk would be like having a dell Latitude sdk
it dont work like that
Rudegar said:
well there are not xda2 stk
but there are a collection of stk's
one of them is ms's
another is the one which the cam program uses
another is the stk of the ati 2d chip
i think ati will give you their sdk if you reg at their site or something
dont think the cam's sdk is something they would let people get their hands on
a xda2 sdk would be like having a dell Latitude sdk
it dont work like that
Click to expand...
Click to collapse
Thanks, where is the website for ATI? could you post a link please?
BTW, what I need to do is to develop GSM related applications specific for XDA II, say, timed SMS sending. It is best if I can plug my apps into their build-in apps like SMS (it does not have timed SMS sending options)
Aha you're after the device SDK for the XDAII. You want to know what drivers are supplied and how to use them to control the specific hardware at the lowest level, e.g. ATI graphics, Radio hardware, Camera, Bluetooth, Buttons, comms, etc.
... unfortuantely HTC are an absolutely closed shop. Getting any information out of them is like getting blood out of a stone. A particularly hard and bloodless stone.
This site is really the closest thing we have, although as mentioned above you might have some luck with the specific hardware manufacturers such as ATI (although they are also notoriously unforthcoming). There's also sourceO2, who have similar level of knowledge about supporting low level development on the XDAII as a particularly stupid earthworm.
Usual rant follows... If only the device manufacturers would properly open up their products to developers, they'd see a wealth of applications developed that'd make their hardware a real "must have". They probably think it'd eat into their profits on the next device they produce, which is all they're interested in really.
Incidentally, you can both send SMSs, and use the notification subsystem to schedule an app to run at a particular time via the PPC2003 API. So it'd be fairly simple to knock up a client-side SMS timed sending application wihtout hacking RIL.
Hi, andyclap
Thanks a lot for your informative reply.
I am not actually developing very low level applications. What I planned to do is to develop some value added little programs that could be a plug-in or such a kind.
To make myself clear, I can use an example to explain what I might want to do:
The build-in SMS program does not have the feature the let you send a timed (scheduled) SMS. I am wishing to do is:
insert a menu item into its original context menu (tap-and-hold on SMS message body), you can choose to send at specific time
Anyone have an idea?
build in sms programs are not something which would make it a special xda program
all pocketpcs would be able to use that
that is unless you want to block your application somehow from being used on other pocketpc's then the xda then i suppose you need to access some reg indentifier or something
you want me to give your the link to ati ?
well if you are too lazy to type it then i suppose I must
http://www.ati.com/products/handheld.html
Hmm this may be quite hard to do, as I the messaging system is quite unextensible. It's fine if you want to create a new format from scratch, but extending an existing form handler is, I think, impossible.
Some low level dirty tricks (subclassing windows etc) might work, but would be pretty tricky to do, and very hacky.
I just wish somebody would give the PocketPC team a Symbian SDK, Symbian really got it right when it comes to messaging.
Yes, i can write a new SMS program, but it will need me to deal with Contacts object. I mean, I have to write code for fetching data stored in the build-in contacts database. If I can just plug my function into its contextmenu, I will only need to implement a simple function program (setting date/time, save phone number and message text, create a notification, etc).
Using SetWindowLong can hook into the *****, but this program model is some kind of fragile, very easy to crush the system or the apps itslef, not really stable if not tested thoroughly

Something for the brave app. makers :-)

Would it be possible to use one of the cameras to scan buisnesscards ?
And save the info. to the contacts ?
Just a thought...
Superb Idea.
Would need an accurate scanning software and image to text conversion - but I think it's a very good idea.
Dont believe this is possible. Business cards dont have any set layout. How would you be able to tell the persons name apart from their company name, etc?
I did a google, and it has already been done:
Motorola Ming phone.
The two megapixel camera found on MING allowed engineers to incorporate a business card scanner and optical-character recognition software.
The two megapixel camera found on MING allowed engineers to incorporate a business card scanner and optical-character recognition software.
MING incorporates the industry's leading Chinese handwriting recognition software, now upgraded to recognize Pinyin input.
yeah, it can't easily be done automatically - but you can certainly grab the text with some OCR and then manually tell it where to stuff the data. Obviously some distinction can be made... e.g.
[plain strings]
name
company name
job title
['word' with an @ and a . in it in that order]
e-mail
[starting with 'http' or 'www']
website
[bunch of numbers]
phone
fax
btw... for someting not entirely similar but sorta neat, and involving the camera as well, see ShotCodes; http://www.shotcode.com/
Basically they're 'bar codes' that point to some file that you would automatically download after the camera takes a picture of one of those shotcode bits
The SE P990 has a built in business card scanner "out of the box", so it's certainly possible. Not sure exactly how they've implemented it though. I guess I'll have to wait 'til I have one to find out...
read this...
its alread in the Hermes..
http://translate.google.com/transla...http://www.ppcreviews.net/content/view/737/7/
Not really a universal solution but I read somewhere that the next version of OneNote for Microsoft Office 2007 is supposed to have this kind of functionality included with it.
Although there is a mobile version of this being prepared too but I don't know how much of these features it will have.
You might want to check this out:
http://www.scanr.com/bc.aspx
I would love a piece of software like this on my universal. I believe abbyy have an SDK for OCR for just about any ppc platform. Wouldn't have a clue on developing my own one. It can be found here http://www.abbyy.com/sdk/?param=56223
Google have a free OCR engine if anyone's writing an app.
V
Im not sure how good OCR software are now. At times when I was checking it out, they were terrible, consider that I tried the 'world leader' in OCR software (I think it is called Omnipage). And, (the one I've tested) OCR don't just do visual recognition, but it also check the grammer, so it is language dependant. So, it will start giving you rubbish if you have technical terms and equations on it. I'm not sure how good a OCR software can be using the terrible camera (eg my Wizard) on the phone.
However, having said that, those little bar code thinky are pretty impressive. I think I've tested the Japan version of the barcode like scanning thing, QRCode, which is widely popular now in Japan (as I've read). However, the sad thing is that, this 'thing' is not universal. I think US they have their very own code and.. Europe has their very own code. So, business card wise, probably you want to consider putting such codes onto your business card.
rattler said:
read this...
its alread in the Hermes..
http://translate.google.com/transla...http://www.ppcreviews.net/content/view/737/7/
Click to expand...
Click to collapse
Is this application integratetd in ROM, or installed via ExtROM? If it is in ExtROM I guess we could rip it out an install it on any WM5 device with camera.
Regards
PK

Call for developers for X-Button application for Pocket PC

Many users, including Kevin Rose from Digg.com, have dumped Windows Mobile phones for the sake of other platforms, because they had impression that these phones are slow, much too slow. This impression results from the fact that in Windows Mobile Pocket PC edition applications continue running in the background after user pressed (i.e. tapped with stylus) "X" button of the given program. This is counter-intuitive and makes people think that applications were closed. Big number of applications running in background, of which users are unaware, results in slow operation.
"HTC X-Button" application is included in latest Pocket PC phones manufactured by HTC and recently it even surfaced on the Internet in form of "HTC X-Button.CAB" file, that can be installed:
... and can run in any Pocket PC device (no just HTC-manufactured):
Unfortunately due to legal reasons we cannot publish "HTC X-Button.CAB" application, but we hereby ask developers to develop similar (or the same) program! HTC has proven that not only it is possible but also, that such program works in non-HTC manufactured Pocket PC phones (we tested it). It is not for us to judge how difficult it is to develop such application, but certainly for sure it is possible as HTC shows.
By the way: it is worth noticing that HTC really cares about customer satisfaction because it includes this HTC X-Button application with their latest Pocket PC phones. Such (at first glance) small things really make a difference...
from msmobiles.com
who can get it ?
digifan said:
Many users, including Kevin Rose from Digg.com, have dumped Windows Mobile phones for the sake of other platforms, because they had impression that these phones are slow, much too slow. This impression results from the fact that in Windows Mobile Pocket PC edition applications continue running in the background after user pressed (i.e. tapped with stylus) "X" button of the given program. This is counter-intuitive and makes people think that applications were closed. Big number of applications running in background, of which users are unaware, results in slow operation.
"HTC X-Button" application is included in latest Pocket PC phones manufactured by HTC and recently it even surfaced on the Internet in form of "HTC X-Button.CAB" file, that can be installed:
... and can run in any Pocket PC device (no just HTC-manufactured):
Unfortunately due to legal reasons we cannot publish "HTC X-Button.CAB" application, but we hereby ask developers to develop similar (or the same) program! HTC has proven that not only it is possible but also, that such program works in non-HTC manufactured Pocket PC phones (we tested it). It is not for us to judge how difficult it is to develop such application, but certainly for sure it is possible as HTC shows.
By the way: it is worth noticing that HTC really cares about customer satisfaction because it includes this HTC X-Button application with their latest Pocket PC phones. Such (at first glance) small things really make a difference...
from msmobiles.com
who can get it ?
Click to expand...
Click to collapse
i have it runnig in my wizard .i have extrated from another device rom.nice
but is integrated in the rom.as soon i got time i will make a cab.
i also got htc backup but is not runnig yet.
Which device did you get it from? Herald?
doedoe said:
Which device did you get it from? Herald?
Click to expand...
Click to collapse
funny enough it was from a prophet rom.
Which ROM? I would also like to extract this application.
This HTC app is nothing new. There are plenty other legal free and commercial task managers out there.
Here is an excellent example: MagicButton.
It lets you close apps by clicking the X as well as switch between apps like Alt + TAB on PC.
There is also WizBar and SPB TodayPlus etc.
There is no need to extract anything from ROM or to re-invent the wheel (unless you wont to hone your programming skills).
Also I am quite curios as to how MS will respond to this move. According to a blog of one of their developers (don't remember the link now) they care about this "smart-minimize" crap so much, at first they didn't let manufacturers add any app in to ROM that had as much as an EXIT option in the menu. According to them "user should not manage memory".
levenum said:
This HTC app is nothing new. There are plenty other legal free and commercial task managers out there.
Here is an excellent example: MagicButton.
It lets you close apps by clicking the X as well as switch between apps like Alt + TAB on PC.
There is also WizBar and SPB TodayPlus etc.
There is no need to extract anything from ROM or to re-invent the wheel (unless you wont to hone your programming skills).
Also I am quite curios as to how MS will respond to this move. According to a blog of one of their developers (don't remember the link now) they care about this "smart-minimize" crap so much, at first they didn't let manufacturers add any app in to ROM that had as much as an EXIT option in the menu. According to them "user should not manage memory".
Click to expand...
Click to collapse
is about choice and prefences.as how they will react? how do they do react to the stuff we been doing to roms for years in this site?
im suprised tey havent shut down this site yet! or maybe they are learning from it!!!!!!
Well there is a big difference between this site and a company like HTC.
After all this is an unofficial gathering of enthusiasts and MS probably doesn't want to come down to hard on potential consumers even when they tweak ROMs here and there.
HTC on the other hand is one of the largest mobile OEMs in the world that works closely with MS (according to an article I recently read) so it comes across as sort of betrayal, don't you think?
It is 110% right move for us users though.
I find closing applications to be slower than smart minimising them. A Microsoft blog I read when WM5 was launched specifically stated that devices work faster when minimising, providing you have suffecient program memory (not lacking on the Prophet). This is because understandebly Windows takes much longer to open an application than maximising it.
Once in while I just end all programs and give the phone a restart (power off and power on rather than soft reset).
Yes that is the theory, but note the providing you have sufficient program memory bit.
Media player alone when active can eat 5-7 MB (which is why I never use it).
Unfortunately program memory is still short since maximum devices have is "64 MB" which if you are very careful can leave you with 30MB free on the Prophet after reset.
Yes, maximizing apps is faster than loading, but MS forgot a critical point:
There is no easy way to switch between minimized apps built in to WM which only makes things worth. Once you minimize something not only does it keep taking memory, but you also need to go all the way through Settings->System->Memory->Running apps to reactivate or get rid of it.
Sorry to drag this thread towards an argument, but there is no question in my mind that this is one of those cases where MS made a huge mistake and instead of fixing it now trying to sell it as a "feature".
When WM OS runs out of memory, it automatically closes the unused (minimized) apps. It just sees no need to close them if there are unused RAM available anyway, so apps are "cached" in case they will be used again.
You can easely switch between "current set" of apps - just reduce the number of "fixed" icons in the start menu. I leave only Help there and entire Windows Start menu becomes a large MRU list, like on smartphones - and I easely use it to switch between active apps.
The problem of "running slow" lies with badly designed apps. Actually, application should never consume significant CPU resources when lieing in background, but some bad developers forget about this fact.
All built-in applications behave nice. I have a process CPU utilization viewer, and can easely see that these apps when minimized dont even use 1% of processor time.

Running PPC specific code on Smartphone device

Most of us are already aware that PPC and smartphone edition are similar enough to be mostly compatible in their apps across the platforms.
That is, with enough coaxing and the help of input simulators like SPHelper, I've managed to run almost any Pocket PC app on a smartphone device.
Well, until now.
I've officialy run into my first brick wall of sorts, and I'm hoping someone here can shed some light onto the situation.
Since the MS implementation of A2DP has quality issues, I'm trying to run MSI Blueplayer app ( found at http://cweb.msi.com.tw/program/support/download/dld/spt_dld_detail.php?UID=619&kind=8) on a smartphone.
Analyzing the cab, I extracted 4 .dll's that go in the \windows dir (msibtstk.dll, msibtapi.dll, CHS.dll and TW.dll), and two .exe program files that go in program files\msi\blueplayer (STLoader.exe, and MPOBCE.exe).
Now, normally its as simple as running the .exe, at least it always has been in the past.
However, every time I hit MPOBCE.exe, all I get is:
"Alert
Can't find MPOBCE or one of its components. Make sure the path and filename are correct and that all the required libraries are available."
Just to control this experiment, I copied the exact same files over to a PPC device and ran it to find that it DOES work.
Now, I've never encountered PPC specific code before- in fact, I didn't even know such a thing was possible. Has anyone see/heard of this sort of thing before?
Can someone help me take this apart and find out what makes it work on a PPC only? Perhaps a PPC-specific path (if there is such a thing)?
At this point, as much as I'd like to get this working, I'm just as much intellectually curious as to what would cause a program to only operate on a PPC installation.
Hello Dishe.
Your problem is simple: Certain DLLs that come built in Pocket PC version of windows mobile do not exist in the Smartphone version. An example is MFC DLLs.
What you need to do is get hold of 'dependency walker' which is a neat little app that MS incorporated in to VS 6 (though I understand it was written by an independent developer and should be available separately).
It will show you exactly which DLL files each exe is linked to. You then have to get a good copy (from a ROM dump) of the needed DLL and put it in windows directory.
Hope this helps.
That's a great idea. Thanks! I never heard of the dependency walker before, but it sounds like a perfect tool for this. I'll have to check it out on my office computer (I don't have VS 6 at home).
I wont be back in my office until wed., so if anyone had a bit of spare time, I'll attach the files here for someone to examine.
If anyone wants to look into it and tell me what dll's are required, I can get ahold of them from a healthy Pocket PC image.
Thanks!
This zip file has the two .exe's contained in the installation. I think only mpobce.exe is complaining about missing components, though.
Oops, apparently I should have checked first...
Dependency Walker is a free app. I downloaded it and tried it out.
It lists a bunch of .dll's, most of which I had on smartphone.
However, the two missing ones are:
mfcce300.dll
olece300.dll
Now, I'm not exactly sure what these do, so I need to look into it some more. Does anyone have any clue what these are for? If I copy them from a Pocket PC, will they operate on a smartphone?
Hi Dishe.
I guess I should have been more clear: Dependency Walker was written as freeware by an independent developer, but M$ liked it so much they decided to grab it for VS.
Any way, mfcce300.dll is MFC version for PPC (if you are not familiar with MFC, it's a collection of "ready code" that simplifies writing apps in c++)
It comes built in for PPCs but not for smartphones for some reason. If you have a good dump check that DLL with dep. walker as well, I am pretty sure it is linked to a few others.
olece300.dll - is a COM support dll. I won't even go there because I really hate COM (that's Component Object Model, not com port) and I am really not sure my self what the DLL does.
If you do get a good version of those two you should be able to get the app running.
levenum said:
Hi Dishe.
I guess I should have been more clear: Dependency Walker was written as freeware by an independent developer, but M$ liked it so much they decided to grab it for VS.
Any way, mfcce300.dll is MFC version for PPC (if you are not familiar with MFC, it's a collection of "ready code" that simplifies writing apps in c++)
It comes built in for PPCs but not for smartphones for some reason. If you have a good dump check that DLL with dep. walker as well, I am pretty sure it is linked to a few others.
olece300.dll - is a COM support dll. I won't even go there because I really hate COM (that's Component Object Model, not com port) and I am really not sure my self what the DLL does.
If you do get a good version of those two you should be able to get the app running.
Click to expand...
Click to collapse
Thanks for the help, I'm realizing there's a lot more to this I should have known before embarking on such a task. I've never had such a problem doing this before, I guess MFC isn't so popular!
Anyway, I need a good ROM dump, I haven't been able to aquire one. In the mean time I tried some files I found searching google... didn't expect it to work, but tried it anyway. Still complained of missing files- you're right, I'll bet MFC is calling more dll's as well that I need.
Perhaps there's hope...
You were right... I just needed more .dlls!
I found a whole series of .dlls required by mfcce300.dll that my smartphone was missing, so I put them all in the program directory and it opened!
Problem is, its not so stable... the files were pulled from a ce.net-4.1 set of files since I don't have access to a wm5 rom image.
One more thong I should have thought about earlier:
Some COM dlls, maybe even olece300.dll have a function called DllRegisterServer that writes them to registry as COM provider (under HKCR\CLSID).
Check to see if I am right using Dep. Walker and if so try to get regsvr32.exe or something similar for the PPC. (On a PC you use regsvr32 somedll.dll to register a COM server)
This may help with stability issue.

Simple OS? OS GUIs 4 ur PPC

hey,
have any of u tried this application for pocket pc? check it out on this link http://simpleos.iroot.ca/index.php
apparently, it makes ur pocket pc GUI exactly similar to a MAC or Windows XP (an emulator of some sort). It comes with additonal plug-ins that you can download which emulates applications such as outlook, word, media player, etc
It's a freeware and it looks pretty interesting. My PPC has been in the shop for repair so I have not been able to try this (and probably wont be able to for at least a week) but if anyone out there can give it a shot, let me know ur feedback on this app (is it stable?does it mess up ur PPC?). from the screenshots and videos, a WM2003 version was used so I dont know if it's compatible with WM5 or WM6. I cant wait to try it out when my PPC gets back from the shop.
Initial testing shows that is it quite slow. But that maybe due to the wizards slow processor on WM6. Does not install as it should. I believe that to be an WM6 issue. Other then that overall looks good but not recommended for a wizard. Also get designed for VGA resolution. I think that is due to the fact that it doesn't install and does not configure the software.
My initial view is positive. but need to do some more testing. A cab install file would be useful.
Cheers,
thanks for checking it out! According to the support forums in the site, u can change the VGA setting. Quoted "if you unzip the files from zip, unside a "bin" folder there is a file "kernel.xml" open in notepad and change the 64 to 32 and save". Dont know if this will fix it though.
Also this application is open source i think, so if any of our great programmers here at xda-developers can have a crack at it, i'm sure someone can improve this promising application and make it fully operational for all of us here (like what A_C did with the ILock). The programmer did say that he is open to the idea of someone continuing the development of this program as he does not have a lot of free time to work on this (check the forums section in the site)

Categories

Resources