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.
Hi!
I try to integrate an external library into my vs2005 project while using the Windows Mobile 6 SDK. Of course, I added the additional directories and dependencies to the project settings, but I get some LNK2019 errors anyway.
So I created a dump of the *.lib files using "dumpbin.exe" and discovered that all function names start with a leading underscore. I found some precompiled parts of the library where there are no leading underscores in the function names and I can call them without any problems. But if I build those parts of the library on my own, there again are the LNK2019 errors and the "_functionname()" convention in the *.lib files.
Is there either a way to avoid those underscores when compiling the library or to call those function out of a windows mobile application?
Thanks in advance!
This looks a bit odd.
C++ decorates exported functions unless you add a def file to the project, but there is always way more garbage in the names.
What I don't understand is, why do you have a problem using a function that starts with an underscore?
Such names are perfectly acceptable in C / C++, in fact some C native functions like _wfopen start with an underscore.
What language are you programming in?
Also it might help find the solution, if you tell us what library you are using. Is it something available for download or your own creation?
Thanks for your quick reply.
I am working on a porting of the intel openCV computer vision library and I try to include it into a VS2005 C++ projekt created with the wizard for windows mobile 6.0 sdk for testing.
It seems that the problem appears when I switch the system to "/SUBSYSTEM:WINDOWSCE". Otherwise the library works perfectly.
(originally posted here)
I would like to propose the open-source development of a new program for Windows Mobile theme changing.
Themes are very popular. People love to personalize their mobile devices. Many ROM cookers will create their own themes that are implemented across a variety of included applications. Unfortunately, themes for third party applications cannot be defined or changed from within Windows Mobile’s native “Today” Control Panel Appearance tab. There are completely different methods of changing the Today screen theme, Media Player theme, and Phone dialer theme. Then if you’ve got some HTC applications in your ROM, there are yet other methods of changing the HTC Home Plug-in theme, TouchFLO Cube theme, Comm Manager theme, SIP keyboard themes, etc. The possibilities are endless.
I would like to propose a standard unified way of changing the look on all of these applications as well as future applications.
The program could be similar to the HTC Home Customizer where users would select named themes to be applied to specific programs, and the software would copy the proper images/files to the proper locations. The difference would be that there would need to be a way for users and 3rd party developers to interface with the program in order to let it know where its new theme files are supposed to go. Maybe there’s a master XML file that lists application specific XML files which include image/file location information.
Anyway, I think this type of program would be extremely useful both for power users and beginners who want to easily customize the look of their device and apply different themes to their applications from a central location. However, I’m not much of a programmer at all, so I am seeking help from the community.
I’ve started a project on Popfly called “WM6ProThemeChanger”. If you search for that name using the Popfly explorer, you’ll find it. Also, you can add me as a friend using “Adamz1977”. I'm not sure if that's the right way to do this, so if anyone else has any thoughts, feel free to post 'em.
I guess we should start be creating a central list of locations and filenames for various theme-changing image files for the variety of applications we all use. Any thoughts??
**reserved**
**reserved**
**reserved 3**
That's a great idea!
I have installed Poorlyduck's vista theme for the cube and if you look at his thread, not only did he worked hard at making the theme but he had to help out a really big bunch of people who had a hard time installing it.
Hope this works out!
Are you looking for this to somehow have one file type that contains all of the necessary files, or some sort of "it reads what it can from a folder and copies them where they need to go" style? I guess I can't picture what your goal is...
xd1936 said:
Are you looking for this to somehow have one file type that contains all of the necessary files, or some sort of "it reads what it can from a folder and copies them where they need to go" style? I guess I can't picture what your goal is...
Click to expand...
Click to collapse
The "it reads what it can from a folder and copies them where they need to go" style would probably be easiest, right? That's what the HTC Home Customizer does I think. Plus, a lot of applications might need text files, GIF, PNG images, and maybe even a DLL to be placed somewhere in order for the theme/skin design to work. The Media Player skins need a SKN text file. I think the phone dialer needs a DLL sometimes in order to change its skin.
I just think it's too difficult for us users to figure out how to change the theme/skins of all these great programs. If you know any one who might be able to help with this, please send them to this thread.
Hi, just wondering if anyone has one big cab that would install a nice amount of free and handy software? Be good if one exists that has the best of the useful like converters, music player/media player, games and system utilities?
Obviously I could spend the time searching for and installing each individually but wondering if someone has compiled an application pack containing a load of good software like those found pre-installed in cooked roms.
Thanks!
Define what do you mean by goodies?
Hi thanks for replying. Basically I have flashed a rom that didn't come with that much with regards to extra apps and so although I could install extra stuff individually, wondered if someone had complied an application app pack with useful apps like a converting tool, decent media player (like core player), gps tools, photo editing tools, ring tone making mp3 trimmer, games etc.
Essentially, all the essentials!
http://forum.xda-developers.com/showthread.php?t=550973 it's not a pack but you can find a lot of good stuff here.
thanks for that!
This thread is for announcements and discussion around the WP8NativeAccess project (https://wp8nativeaccess.codeplex.com/). The purpose of this project is to provide general-purpose libraries, usable from C++ or .NET, which enable access to the underlying functions of the OS. In some cases, this will mean simple wrappers around native APIs; in other cases, these will be more advanced operations which simplify using the low-level APIs.
Some of the functions that the Native Access project exposes are already available via the official APIs. Other functions, however, are not. While I have no objection to these libraries being used in Store apps (license permitting), it is unlikely that Microsoft will permit the ones which use unofficial APIs.
Note that this library does not provide any method for elevation of privileges. Consequently, the use of these APIs will be constrained by the sandbox in which all third-party WP8 apps run, as defined by the capabilities in the app manifest. In practical terms, this means that most of the system will be either inaccessible or read-only. Even so, it has already proven useful to myself. When combined with interop-unlock and Capability-unlock hacks (making it possible for apps to obtain higher privileges), these APIs become much more useful. In fact, the EnableAllCapabilities utility uses the Registry library. Similarly, if you have the ability to use restricted Capabilities in an app you are developing, you may find these libraries useful.
The libraries are as follows:
FileSystem version 0.4.0: Implements functionality to read, write, and get information about files and directories, plus supports creating symbolic links and enumerating file system volumes. This version contains a breaking change from 0.3.x: the NativeFileSystem functions are now static and the constructor is removed. This library may be built with or without the macro USE_NON_PUBLIC_APIS; by default it now includes this macro and require kernelbase.lib to build. If this macro is not defined, it builds using the public APIs without requiring any special libraries.
Registry version 0.2.9: Implements functionality to read and write registry values, and to create and delete registry keys and values. Many, though not yet all, registry value types are fully supported. This library consists entirely of non-public (for WP8) APIs and requires the KERNELBASE.LIB and ADVAPI32LEGACY.LIB export libraries for Windows Phone 8 in order to build (the DLLs are in C:\Windows\System32 on the phone; you can use Dll2Lib.exe to extract the .LIB files).
Processes version 0.1.0: Implements basic functionality to get information about your process, and to create or kill a child process. Very early version.
They are licensed under the Microsoft Permissive License.
The FileSystem and Registry libraries are currently being used by my WP8 File Access Webserver project (http://forum.xda-developers.com/showthread.php?t=2355034).
My EnableAllSideloading app uses the Registry library (http://forum.xda-developers.com/showthread.php?t=2435697).
@hjc4869 has a basic FileExplorer app which uses the FileSystem library (http://forum.xda-developers.com/showthread.php?t=2497788).
You may need to use 7-Zip or another extraction program better than the built-in Windows Zip extractor to open the archive.
Reserved for OP...
Updated. This will be the main place on XDA for releases of the NativeAccess libraries going forward. Additionally, please report problems or make feature requests here.
I think there should be some way to list all the volumes...
Perhaps windows runtime has provided an async win32 file API wrapper which has the same ability as win32 ones ,so I think undocumented file API and registry ,process and etc are more important.
The latest version of the NativeFileSystem library can give you the mount points (as strings) for all volumes (C:\, D:\, etc.)... I implemented that a few days ago; it should be in this update. Sorry for not highlighting that more clearly (typo in the OP fixed now).
Can't open "NativeAccessLibraries_040_029_010.zip"
Edit Ok with 7-zip
How odd, you're right. I didn't do anything terribly fancy while building that ZIP, so I really don't know what's up with that.
I have added the NativeFileSystem library to my PDF to Office app...
Thanks again for all your work !
@GoodDayToDie: Congratulations, good work! Unfortunately I can't import the registry library, it says it's not a valid DLL. I have Visual Studio 2013 Pro. Does it work for WP8? Please help me solving the problem. Thanks!
Sent from my Windows Phone using Tapatalk
myst02 said:
@GoodDayToDie: Congratulations, good work! Unfortunately I can't import the registry library, it says it's not a valid DLL. I have Visual Studio 2013 Pro. Does it work for WP8? Please help me solving the problem. Thanks!
Sent from my Windows Phone using Tapatalk
Click to expand...
Click to collapse
You need to reference .winmd file, not the .dll file.
Thanks! Can we also modify hex registry values with it?
Sent from my Windows Phone using Tapatalk
If you have the required permissions, yes. There's read/write functions for REG_BINARY, and also a simple wrapper around RegSetValue that will work for any type.
However, the library doesn't actually give you any privileges your app didn't already have. Without special Capabilities (which usually require hacks to enable), you won't have write access anywhere in the registry at all...
GoodDayToDie said:
If you have the required permissions, yes. There's read/write functions for REG_BINARY, and also a simple wrapper around RegSetValue that will work for any type.
However, the library doesn't actually give you any privileges your app didn't already have. Without special Capabilities (which usually require hacks to enable), you won't have write access anywhere in the registry at all...
Click to expand...
Click to collapse
OK, thanks, but another question: I referenced .winmd file, but it gives me error, the component was not found. Any idea how to fix it?
Do you have the DLL and the WINMD in the same location? Are you creating a WP8.0 app (I don't know if apps targeting 8.1 specifically will work)? Are you building for ARM?
Yeah, I have. Library now working, but it doesn't recognize the commands, I mean if I write NativeRegistry.ReadDWORD command not found :/ Can you help me?
Sent from my RM-915_lta_lta_330 using Tapatalk
You're going to need to be way more specific.
How far did you get, i.e. can you compile the app? Install the app? Launch the app? Does it crash immediately or does it actually load? Etc.
What, *exactly*, breaks? Does it break when you try to reference the NativeRegistry library, or only when you try to actually use ReadDWORD function, or some time later? If you are able to call readDWORD, what is the return value? If it fails, what is the error code?
Are you getting an exception, or does it just not work? If it's an exception, give me as much detail about it as you can (the type, the message, the code where it happened, etc. if possible).
myst02 said:
Yeah, I have. Library now working, but it doesn't recognize the commands, I mean if I write NativeRegistry.ReadDWORD command not found :/ Can you help me?
Sent from my RM-915_lta_lta_330 using Tapatalk
Click to expand...
Click to collapse
Try to rebuild the solution.
GoodDayToDie said:
You're going to need to be way more specific.
How far did you get, i.e. can you compile the app? Install the app? Launch the app? Does it crash immediately or does it actually load? Etc.
What, *exactly*, breaks? Does it break when you try to reference the NativeRegistry library, or only when you try to actually use ReadDWORD function, or some time later? If you are able to call readDWORD, what is the return value? If it fails, what is the error code?
Are you getting an exception, or does it just not work? If it's an exception, give me as much detail about it as you can (the type, the message, the code where it happened, etc. if possible).
Click to expand...
Click to collapse
Hi, I can't even build it, it doesn't recognize the command and makes a red line under it. I can reference the library, but not use any commands like ReadDWORD, WriteDWORD and so on. Screenshot is attached, this is happening if I load your EnableAllSideloading App, for example. With self-created projects I have the same problem. My system is Win 8.1 Pro x64 and I'm using Visual Studio 2013 Professional. Can you help me? Thanks!
You have added
Registry.winmd in reference library
and
Using Registry;
in your source code
Source code for EnableAllSideloading already has the requisite using directives...
When you look in the project's References, is the Registry library referenced correctly? By default it'll try to use a relative path that I use on my PC, but probably not the same path you use. You may need to manually adjust the reference, or delete it and re-create it.
Alternatively, what auto-fix options does Visual Studio give you when you click on those red lines?