Mango Restart Phone App based on DLLImport - Windows Phone 7 Development and Hacking

I've created a simple app to restart the phone. It's based on DLLImport by fiinix.
Cleaned it up a little and added source.
Video by WPXBOX
View attachment 772512

Cool stuff !
Do you think you could create a shortcut to the internet sharing settings page ?

Cool,
now take also out the Interop-Lock and we are all happy.
Sent from my 7 Mozart using XDA Windows Phone 7 App

Thx
nice App.......it`s possible to add PowerOff ?
grüsse markus

Nice. I like the option to pin to the start screen.

go2mp said:
Thx
nice App.......it`s possible to add PowerOff ?
grüsse markus
Click to expand...
Click to collapse
Well, you could also press the power button for that

contable said:
Cool stuff !
Do you think you could create a shortcut to the internet sharing settings page ?
Click to expand...
Click to collapse
As far as I know there is no way to do that right now.

Ddriver said:
Cool,
now take also out the Interop-Lock and we are all happy.
Sent from my 7 Mozart using XDA Windows Phone 7 App
Click to expand...
Click to collapse
Sorry I don't think it's possible this time.

singularity0821 said:
As far as I know there is no way to do that right now.
Click to expand...
Click to collapse
In general you just have to call a .exe file in the windows folder. This way worked the first shortcuts I had for the OMNIA 7. Maybe in case of the internet sharing page it´s the softap.exe, but not important...
Another question:
Do you know the guid I have to call when your restart app is pinned ?
I mean if I want to execute the restart function directly not the app...
I would like to add the pinned tile to my created Homebrew folder, not the app with the settings page.

contable said:
In general you just have to call a .exe file in the windows folder. This way worked the first shortcuts I had for the OMNIA 7. Maybe in case of the internet sharing page it´s the softap.exe, but not important...
Another question:
Do you know the guid I have to call when your restart app is pinned ?
I mean if I want to execute the restart function directly not the app...
I would like to add the pinned tile to my created Homebrew folder, not the app with the settings page.
Click to expand...
Click to collapse
I don't know if that's possible. The guid should be the same as it is the same app.

OK, I'm not sure why this needs ID_CAP_INTEROPSERVICES - you should be fine without it. Did you try it that way? Unless your code is opening a driver handle, you don't need that capability. Native code works just fine with only the Interop manifest.
To call the live tile function directly, it's the same GUID but you need to know the parameter that passed along with the live tile. Calling the app with that parameter will start it and trigger the OnNavigatedTo event with the correct parameter.

GoodDayToDie said:
To call the live tile function directly, it's the same GUID but you need to know the parameter that passed along with the live tile. Calling the app with that parameter will start it and trigger the OnNavigatedTo event with the correct parameter.
Click to expand...
Click to collapse
So please give me a hint how to figure out the guid...
I´m sure that it is stored somewhere on device.

It is stored on the device, both in the file system and in the app manager. Neither of those are terribly useful though, so the simpler way is to open the XAP directly, and look in the WMAppManifest.XML file.
ProductID="{ede8d6f6-4b64-43b0-8be6-1c98def5ca85}"
As for the parameter you have to pass to make it think it's coming from the live tile, you'll either need to decompile the DLL or ask the author (or get the source code, which it would be awesome if more people just included up front).
By the way, ID_CAP_INTEROPSERVICES is already commented out of the manifest. You do not need interop-unlock for this app!

GoodDayToDie said:
It is stored on the device, both in the file system and in the app manager. Neither of those are terribly useful though, so the simpler way is to open the XAP directly, and look in the WMAppManifest.XML file.
ProductID="{ede8d6f6-4b64-43b0-8be6-1c98def5ca85}"
As for the parameter you have to pass to make it think it's coming from the live tile, you'll either need to decompile the DLL or ask the author (or get the source code, which it would be awesome if more people just included up front).
By the way, ID_CAP_INTEROPSERVICES is already commented out of the manifest. You do not need interop-unlock for this app!
Click to expand...
Click to collapse
I know how to get the productID, the problem is the mentioned parameter.
I want to add it to my with Jaxbot´s tool created homebrew folder...
The author don´t know either, I allready asked him.
Anyway thanks for trying to help me.
Edit: I totally agree that more people should post the sourcecode, too.

The author certainly does know - it's that thing which distinguishes "was I launched fromt the live tile or not?" that you check for in the OnNavigatedTo event handler. It's a string URI which is applied to the live tile when it is created, and is part of the live tile's identity (the URI must always be unique).

Nice application! Could you please share the source with us? I am still looking for examples that uses DLLimport

GoodDayToDie said:
The author certainly does know - it's that thing which distinguishes "was I launched fromt the live tile or not?" that you check for in the OnNavigatedTo event handler. It's a string URI which is applied to the live tile when it is created, and is part of the live tile's identity (the URI must always be unique).
Click to expand...
Click to collapse
So I don´t know either why I don´t get this information...

contable said:
So I don´t know either why I don´t get this information...
Click to expand...
Click to collapse
I was busy in the afternoon...
Guys, give me a moment.. I'll upload the source.

So done.. Sorry for not giving clear answers before...
And I also tried to figure out how to add it to folders. The parameter passed to the main page is tile. In the previous version I did it in a stupid way and I better spare you the details
Oh and if you figure out how to add it to the folder please let me know.

Great (+)

Related

Undocumented Capabilities in WMAppManifest.xml WP7

Looking around the IMGFS, I found some undocumented capabilities that can be used in building an app (in addition to the standard ones mentioned in the WMAppManifest.xml file).
These are the extra ones I found, in case anyone is interested (from BasePolicy.xml):
ID_CAP_RINGTONE_ADD:Allows ringtone-marketplace applications to read/write into the Ringtones directory
ID_CAP_MEDIALIB:Access to the media library - read, play-back, etc.
ID_CAP_INTEROPSERVICES:Temporary Interop Service Capability.. To be removed by feature team
ID_CAP_SIMrovides access to SIM manager API
ID_CAP_SMSrovides access to SMS API
ID_CAP_WAProvides access to WAP API
ID_CAP_IDENTITY_USER:Allow an application to use a phone.info.dll to retrieve user properties
ID_CAP_TESTPUBLIC1:Small public test capability
ID_CAP_LOADUNSIGNEDMANAGEDDLL:Capability to load unsigned managed dll into chamber's process space
ID_CAP_LOADUNSIGNEDNATIVEDLL:Capability to load unsigned native dll into chamber's process space
ID_CAP_DEBUG:Allow an application to run in debugging enviorment.
---Edit---
I've tested each of these individually, and some work, and others don't.
ID_CAP_INTEROPSERVICES works
ID_CAP_RINGTONE_ADD works
ID_CAP_MEDIALIB works
ID_CAP_IDENTITY_USER works
ID_CAP_TESTPUBLIC1 works
ID_CAP_SIM ID doesn't work
CAP_SMS doesn't work
ID_CAP_WAP doesn't work
ID_CAP_LOADUNSIGNEDNATIVEDLL doesn't work
ID_CAP_LOADUNSIGNEDMANAGEDDLL doesn't work.
Note that even for the ones that work, Microsoft may still reject them in the app store.
I tested these by entering them in the WMAppManifest.xml in the XAP, and loading them on a windows phone device. This guy suggests that if it loads on the device, you have the permission: http://www.drdobbs.com/windows/227701092 and I think he's right. If you don't have permission, it doesn't actually load, and in every case, if it loaded it ran.
ID_CAP_RINGTONE_ADD - So i guess with next update we will get Custom ringtones that can b installed from an app
off topic can some one create utility that will do something about tuch sensetive buttons, when using camera if u tuch any of then by accident it exit camera, so u have to hold phone very carefully.
also, app to lock screen rotation would be nice.... any of thous features undocumented anywhere
P.S sorry for unrelated message
I think the ID_CAP_RINGTONE_ADD feature will only be enabled for the carriers (who knows what Microsoft really has in mind, though). The Windows Phone has done a good job (or lousy job, compared to what I desire) managing permissions so they can choose what capability to give whom.
Disabling other buttons shouldn't be hard if you can get to the native API. So once the phone is jailbroken......
Actually, Microsofts own Q&A on Windows Phone 7 states to look in the Marketplace for additional ringtones. Here is an excerpt and a link:
To find a ringtone in Marketplace
1
On Start, tap the arrow to go to the App list, then tap Marketplace .
2
Press the Search button.
3
Do one of the following:
•
To browse a variety of ringtones, type ringtones, then tap Enter .
•
To look for a more particular type of ringtone, type something more specific, like Halloween ringtones.
Tip
To hear what a ringtone or alert sounds like, tap Play .
Note
Marketplace may not be available in your country or region.
Click to expand...
Click to collapse
http://www.microsoft.com/windowsphone/en-us/howto/wp7/start/ringtones-and-sounds.aspx
All well and good having that, but why should we purchase a ring tone?
TheDisneyMagic said:
All well and good having that, but why should we purchase a ring tone?
Click to expand...
Click to collapse
Well, I don't see myself buying any, but this means an app could be made to create/add ringtones.
Long press on a song in Zune won't let you set it as the ringtone?
Iridox said:
Long press on a song in Zune won't let you set it as the ringtone?
Click to expand...
Click to collapse
Nope, I asumed this would be how it worked but no option in the list to do so.
Ah, that's a PITA >_>
naplesbill said:
Well, I don't see myself buying any, but this means an app could be made to create/add ringtones.
Click to expand...
Click to collapse
A whole app just to add a ringtone!?
naplesbill said:
Actually, Microsofts own Q&A on Windows Phone 7 states to look in the Marketplace for additional ringtones. Here is an excerpt and a link:
http://www.microsoft.com/windowsphone/en-us/howto/wp7/start/ringtones-and-sounds.aspx
Click to expand...
Click to collapse
To me that excerpt looks like you can download ringtones from the store, not that you can create an app to download ringtones. It would appear that Microsoft has an internal application that can add ringtones (which makes sense). These permissions are enforced by the OS, not the app store (maybe the app store does too). So if they want to be able to install ringtones, they need to give their own app permission to do so.
athompson said:
Looking around the IMGFS, I found some undocumented capabilities that can be used in building an app (in addition to the standard ones mentioned in the WMAppManifest.xml file).
These are the extra ones I found, in case anyone is interested (from BasePolicy.xml):
ID_CAP_RINGTONE_ADD:Allows ringtone-marketplace applications to read/write into the Ringtones directory
ID_CAP_MEDIALIB:Access to the media library - read, play-back, etc.
ID_CAP_INTEROPSERVICES:Temporary Interop Service Capability.. To be removed by feature team
ID_CAP_SIMrovides access to SIM manager API
ID_CAP_SMSrovides access to SMS API
ID_CAP_WAProvides access to WAP API
ID_CAP_IDENTITY_USER:Allow an application to use a phone.info.dll to retrieve user properties
ID_CAP_TESTPUBLIC1:Small public test capability
ID_CAP_LOADUNSIGNEDMANAGEDDLL:Capability to load unsigned managed dll into chamber's process space
ID_CAP_LOADUNSIGNEDNATIVEDLL:Capability to load unsigned native dll into chamber's process space
ID_CAP_DEBUG:Allow an application to run in debugging enviorment.
Visual Studio won't let you add all of them directly, but uncompress your .xap in the build directory, and add it manually.
If anyone is thinking of doing this, the phone rejected my attempts to do so. I tried to give myself ID_CAP_LOADUNSIGNEDNATIVEDLL, but it wouldn't even load on the phone. Oh well.
Click to expand...
Click to collapse
But if someone use these things in an application , I think microsoft doesn`t approve it in the market place!
amir_rafie said:
But if someone use these things in an application , I think microsoft doesn`t approve it in the market place!
Click to expand...
Click to collapse
Ya, not only that, they probably automatically check to make sure you don't try to use them. The phone automatically checks, too.
The main reason I put them here is because I couldn't find them documented anywhere on the web, and I thought it would be good to save someone the time if they started down the same path I did.
hopefully once there is a jailbreak that turns of security/cert checking we can add these capabilities to our apps. Im particularly interested in the p/invoke capability.
indiekiduk said:
Im particularly interested in the p/invoke capability.
Click to expand...
Click to collapse
YES! It would make the world beautiful and skies turn blue.
So I set up VS 2010 and tried debugging an app that had a simple DLLImport in it and ID_CAP_INTEROPSERVICES in the manifest, however it still crashed with a MethodAccessException. It was def a valid dll and method name because I took it from one of the DLLImports in the system.location .net dll decompiled with Reflector.
indiekiduk said:
So I set up VS 2010 and tried debugging an app that had a simple DLLImport in it and ID_CAP_INTEROPSERVICES in the manifest, however it still crashed with a MethodAccessException. It was def a valid dll and method name because I took it from one of the DLLImports in the system.location .net dll decompiled with Reflector.
Click to expand...
Click to collapse
Interesting. If your app installed, it means you were able to get the ID_CAP_INTEROPSERVICES permission, because if the phone rejects your permission, it rejects it at install time. Maybe the DLL path was wrong, like you need to do ..\DLLNAME.dll or something.
indiekiduk said:
So I set up VS 2010 and tried debugging an app that had a simple DLLImport in it and ID_CAP_INTEROPSERVICES in the manifest, however it still crashed with a MethodAccessException. It was def a valid dll and method name because I took it from one of the DLLImports in the system.location .net dll decompiled with Reflector.
Click to expand...
Click to collapse
Try a relative URI path. ./DLLName.dll
On the subject of Native Applications on Windows Phone 7:
A few days ago, an Application called "Network Profile" appeared in the Samsung Zone of my Omnia 7's Marketplace.
This app is the first external app that uses native code - The Marketplace says that it "Requires access to your interop services", and on opening the XAP on my PC, I found it to contain three native COM DLLs, alongside two .NET DLLs and a further native DLL with MUIs that appear to only serve to hold resources.
I'm not sure whether this can be linked to here, so I'm going to describe the interesting parts.
It has not one, but three XMLs - the typical WMAppManifest.xml (pastebin.com/uEJWdTuA), a WMAppPRHeader.xml (pastebin.com/AVcv7JUX) which seems to have something to do with PlayReady DRM, and most interestingly WMInteropManifest.xml (pastebin.com/NCVKP6kM).
There is also the AppManifest.xaml (pastebin.com/rRrB090h).
The NetworkProfile.dll has a number of COM Imports like so:
Code:
[ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("F1113B13-AAB8-45E9-91A5-CBE568C29612")]
internal interface INwProfInterface
The Constructor for the class containing all the COM Interfaces:
Code:
ComBridge.RegisterComDll("NwProfDLL.dll", new Guid("4A2580BA-11A3-49AB-AC98-C30B5E72D381"));
this.NwInterface = (INwProfInterface) new CNwProfClass();
ComBridge.RegisterComDll("SecVersion.dll", new Guid("DFE52822-B526-4913-807A-D2AABC7BF911"));
this.SecVerInterface = (ISecVersionInterface) new SecVersionClass();
ComBridge.RegisterComDll("COMRilClient.dll", new Guid("A18F6B1A-924E-4787-AA82-19F98B49CF5D"));
this.SecRILControlInterface = (ISecRilControl) new COSecRilControl();
Happy to answer any questions, and if allowed, either guide people to getting it themselves, or providing a download link to the XAP.
Sweet, good find! I downloaded that app. How did you get it off your phone? If you have a download link to the XAP no one will complain, either.

[XAP + Source] Advanced Explorer [Version 1.4]

Hello XDA Community,
@DEVELOPERS: I need some developers with other devices to make things (at least parts of advanced explorer) work on other devices (i have a htd hd7). !Programming & Testing!
Please PM me
To bring all together what xda achieved for WP7, i wrote a helper app for the following tasks,
- File management
- Registry management
- Copy files from desktop to phone
- Copy files from phone to desktop
- Set max unsigned apps
- Provision any given XML
If you post in this thread how any of those features could be implemented on other devices, i will maybe implement them. You can always send me a modified version and i will maybe update this post with the new version!
Usage/(Release-)Notes on the website!
If you encounter any errors, or wanna give some feedback => just leave a post here or use the idea page or write me an email (go to contact on the homepage)!
I included the source code, so that anybody can modify it at will but do not use anything here for commercial purposes (contact me first).
Homepage for this project:
http://sites.google.com/site/yaafdevelopers/projects/advanced-explorer-for-wp7
You can give feedback / bugreports:
http://advancedexplorerwp7.codeplex.com/
(Go to Discussion or Issue Tracker)
You will find the latest version and the Release-Notes there. I will continue to watch this thread!
Because some people asked how to support/donate me:
I appreciate every donation! Thank you!
reddragon
He that is great stff... i am glad you added the source i was thinking about how this could work having had a little peek at the code in the samples that Ms provided.
wings over a thanks too
Question...If you send a file, where does the device dump it into the computer? I was getting an error sending the file to my computer at first, but then I configured correctly and it sends fine, but I don't know where it is...
Edit: Nevermind, I got it. Upload/Download Root folders. Good work on this app man. Pretty nifty. Uploaded a .doc from my laptop to the phone, copy/pasted it into My Docs and it appeared and opened on MS Office Word perfectly.
nice ! but ...
Nice app !
But can't send from \windows directory ?..
Re: can't send from \windows
Hey,
like i said in my first post i brought together what was achieved...
Im using the HTC app COM dll files for file system access. Actually you can send files from \windows but not all. (in usage or no access)...
If somebody knows a better way, or something for other devices => just implement and send it, or post here!
The problem: Now it works on my device, so I can do what i wanted to do (coping .pdf and other stuff on the wp7) I have not the time to search & wait for other devices.
I tried to code it very generic and emulated the System.IO namespace, so everybody can add his results or replace it with better results.
Just contact me and I will check the code and update the first post.
reddragon93
eternalemb said:
Question...If you send a file, where does the device dump it into the computer? I was getting an error sending the file to my computer at first, but then I configured correctly and it sends fine, but I don't know where it is...
Edit: Nevermind, I got it. Upload/Download Root folders. Good work on this app man. Pretty nifty. Uploaded a .doc from my laptop to the phone, copy/pasted it into My Docs and it appeared and opened on MS Office Word perfectly.
Click to expand...
Click to collapse
actually you can double tab any file and it should open from any folder.
To get PDF working I copy the file to the PDF reader (most likely the app will crash if Adobe reader is not installed), but you will not see anything as PDF reader just pops up with the file
Just like always contact me if there are file types missing!
cool app, ty
how long did it take?
hi reddragon93, thank you for your work, i've an lg optimus 7, is there an eta for explorer for other device?
i need it!!!
thank you so much!
gianlucarugby said:
hi reddragon93, thank you for your work, i've an lg optimus 7, is there an eta for explorer for other device?
i need it!!!
thank you so much!
Click to expand...
Click to collapse
I really can understand you because I needed this for myself (that's why I coded it in the first place)
But the answer is NO, because we have to wait until somebody finds a way to get access on other devices and shares the info (i will observe this thread for new infos).
And by the way you should not ask for ETA in developer forum (forum rules), but it's OK for me. Hope you will be the only one after my answer
I answered this question in my first post:
"If you post in this thread how any of those features could be implemented on other devices, i will maybe implement them"
Hope I answered your question.
reddragon
thanks, you were very kind,
apologize me for the ETA, i did not know, i'm just a student not a developer!
good work!
EDIT: I can't figure out how to mark a post as useful yet, so let me just say THANK YOU!!!
Awesome app. However, there are a few things that would be nice in terms of file types:
Any chance of getting support for loading .mobi files (Kindle ebooks)? I'd love to be able to sideload books that aren't in the Amazon store.
Currently, .log files won't open. Copy/renaming them to .txt should work, or a simple text reader/editor could be built-in.
Possible bug: the "Max unsigned apps" field in Settings is showing "Not set - (can't read from registry)" Setting it from within the app seems to work, though (and be remembered).
Feature request: ability to search the registry
Small change request: pressing Back on an Exception could do the same as OK (rather than exiting).
Overally, much thanks for an awesome tool!
Thanks for feedback
GoodDayToDie said:
EDIT: I can't figure out how to mark a post as useful yet, so let me just say THANK YOU!!!
Awesome app. However, there are a few things that would be nice in terms of file types:
Any chance of getting support for loading .mobi files (Kindle ebooks)? I'd love to be able to sideload books that aren't in the Amazon store.
Currently, .log files won't open. Copy/renaming them to .txt should work, or a simple text reader/editor could be built-in.
Possible bug: the "Max unsigned apps" field in Settings is showing "Not set - (can't read from registry)" Setting it from within the app seems to work, though (and be remembered).
Feature request: ability to search the registry
Small change request: pressing Back on an Exception could do the same as OK (rather than exiting).
Overally, much thanks for an awesome tool!
Click to expand...
Click to collapse
Thanks for your feedback!
(1) I really needed the app for myself (real pdf support) so... The Thanks Button is only visible with 5+ Posts
(2) i will pm you maybe if i find some spare time. This is most likely pretty simple to implement. Can you edit your (or create a new) post and describe what happens if you double tab a kindle book with the current version?
(3) yeah i saw this before but didn't thought it is important enough to implement. I don't have the time for the own Editor (you have to handle really big files for example) but i can do the renaming thing behind the scenes (remember renaming = copy+delete until a better solution is found).
(4) on first app start i have really no solution in determining how the value is set (no access on this key). So my solution was to set this text ("Not set - (can't read from registry)" until you set a value => then i save this value local to the app, and set it every time the app starts (It gets reset every time i connect the device to the PC anyway)
(5) "search the registry": I thought on this one... But this will not be of much use as we have not really much read access
NOTE: The Problem with the registry is that we have FULL WRITE access trough the provxml method but not very much READ access (HTC COM .dll)
(6) really? I'm satisfied with the current behavior. Without searching I don't know if this is a small change maybe it is, maybe not. At least it looks like one but that doesn't mean anything
reddragon
Thanks for the response, reddragon. I'm at work right now, so the .mobi thing will have to wait. It's a very common request among WP7 users around here, though.
I've found that selecting the Edit context item will open any file in Word, which is typically sufficient for viewing and even editing purposes! True plain text files open fine regardless of extension, and even binary files will usually have enough ASCII in them to determine useful info. You can also send any file (via email) from Word, if you want to email an attachment rather than just transfer to a PC.
Unfortunately, I've found that XML files just... don't work. Double-clicking them opens IE, which complains that it can't handle that file type. Selecting Edit on them looks like it's opening some Office app, but the app then closes and drops back into Advanced Explorer (no error). This is the currently problematic filetype, as a *lot* of data is stored in XML.
The "Registry Editor" app already provides registry search (and despite the security restrictions on read it *mostly* works) but without system copy-paste it's tricky moving data between apps. I enjoy being able to pan between the FS and registry... hell, I want a Windows (desktop) app that does this, now.
It looks like there's FS search (an option on the command bar, and a text box that appears) but I can't get it to do anything. Pressing Enter has no effect, tapping either Refresh or Search again just reloads the page. Am I using this right? It would be great to be able to either scroll long folders (\Windows) or find a filename behind a bunch of GUIDs.
Some files show as "0 b" size, even though they almost certainly aren't. Is that just because some program has an exclusive lock on them and their size can't be read in that state?
Any chance of the ability to create folders in the GUI (I think I see how to do it with provxml files, but that's not exactly convenient)?
Thanks for the explanations on the registry. I was wondering how you could write to locations that you can't read from... Also, I didn't know the sideload limit resets itself. That's something I'll have to watch out for, as I'm near the nominal sideload limit already. Hmm... maybe I should look into writing an app that lets the phone install a .XAP directly, to minimize the amount of PC connecting that's needed.
Sorry, I know that's a lot of comments and questions. If it helps, I showed this to a couple of other HD7 owners today, and the immediate response of both of them was "I've got to get that!" This is a great app, super-convenient and good for making the occasional Samsung Focus owner jealous ;-D
Actually, I'm a developer myself (mostly C/C++, but I know C#). I'll crack a look at the source when I get a chance (probably this weekend) but would you be interested in a patch if there's something I can improve? One thing I might add is an optional "Did you mean that?" prompt on the Back button, as it's a little too easy to hit and knock you clear out of the app (optional of course, as I understand some people don't have such problems).
Thanks again!
does anyone know the latest ETA on compatibility for samsung devices?
Some Answers
GoodDayToDie said:
Thanks for the response, reddragon. I'm at work right now, so the .mobi thing will have to wait. It's a very common request among WP7 users around here, though.
Click to expand...
Click to collapse
Like I said: I will pm you most likely, today or this weekend.
GoodDayToDie said:
I've found that selecting the Edit context item will open any file in Word, which is typically sufficient for viewing and even editing purposes! True plain text files open fine regardless of extension, and even binary files will usually have enough ASCII in them to determine useful info. You can also send any file (via email) from Word, if you want to email an attachment rather than just transfer to a PC.
Unfortunately, I've found that XML files just... don't work. Double-clicking them opens IE, which complains that it can't handle that file type. Selecting Edit on them looks like it's opening some Office app, but the app then closes and drops back into Advanced Explorer (no error). This is the currently problematic filetype, as a *lot* of data is stored in XML.
Click to expand...
Click to collapse
Yeah the best way to handle the edit mode would be an editor inside the app, but that's quite some work i guess... So if somebody is willing to write such a control just contact me!
But the current workaround is quite simple: Upload your file, edit it with the powerful editors you know and send it back to the phone...
In fact what i did was send the complete windows/applications folder and all files that where successfully send can be edited (on the others you have no access anyway).
GoodDayToDie said:
The "Registry Editor" app already provides registry search (and despite the security restrictions on read it *mostly* works) but without system copy-paste it's tricky moving data between apps. I enjoy being able to pan between the FS and registry... hell, I want a Windows (desktop) app that does this, now.
Click to expand...
Click to collapse
Well I think it's not that difficult to implement a search for registry. It's funny to say that all the time but I thought on this one too and if you look on the source code you will see that i positioned the search/filter text box out of the explorer pivot to use it for registry search or other purposes. If you find it really that useful with the current read restrictions... yeah I should just implement it...
GoodDayToDie said:
It looks like there's FS search (an option on the command bar, and a text box that appears) but I can't get it to do anything. Pressing Enter has no effect, tapping either Refresh or Search again just reloads the page. Am I using this right? It would be great to be able to either scroll long folders (\Windows) or find a filename behind a bunch of GUIDs.
Click to expand...
Click to collapse
In fact this is a filter function so that large folders can be loaded much faster. Just enter "a*" and make the keyboard disappear (tab anywhere else) and you see only the files/folders starting with "a". I don't know why "enter" on keyboard doesn't do anything, I will look into this. I should update the usage in my first post, thanks.
GoodDayToDie said:
Some files show as "0 b" size, even though they almost certainly aren't. Is that just because some program has an exclusive lock on them and their size can't be read in that state?
Click to expand...
Click to collapse
yep.
From the htc COM call i get 0 bytes....
GoodDayToDie said:
Any chance of the ability to create folders in the GUI (I think I see how to do it with provxml files, but that's not exactly convenient)?
Click to expand...
Click to collapse
Hehe, i thought on this one too as it is already implemented (just create a folder in UploadRoot drop a file and start downloading it to the phone => the folder gets created). I will look into this.
Can you (or anybody) provide me with an example on how to rename a folder via provxml. And in Yaaf.WP7.NativeAccess.IO.File i have in the "Move" method some code commentated. Can somebody please un-comment, debug and tell me why the hell this provision-xml is invalid / not working, thanks.
(ProvisionXml is completely new to me as this is my first smartphone)
GoodDayToDie said:
Thanks for the explanations on the registry. I was wondering how you could write to locations that you can't read from... Also, I didn't know the sideload limit resets itself. That's something I'll have to watch out for, as I'm near the nominal sideload limit already. Hmm... maybe I should look into writing an app that lets the phone install a .XAP directly, to minimize the amount of PC connecting that's needed.
Click to expand...
Click to collapse
I didn't look into that but i think it is not enough to simply create the guid folder and drop content there... Anyway you can use the "NativeAccess" Projekt to get all the access i used in the Explorer. But you have to create links from your main projekt to the COM-dlls so they get included into the xap file.
GoodDayToDie said:
Sorry, I know that's a lot of comments and questions. If it helps, I showed this to a couple of other HD7 owners today, and the immediate response of both of them was "I've got to get that!" This is a great app, super-convenient and good for making the occasional Samsung Focus owner jealous ;-D
Click to expand...
Click to collapse
That's what keeping me up i guess
GoodDayToDie said:
Actually, I'm a developer myself (mostly C/C++, but I know C#). I'll crack a look at the source when I get a chance (probably this weekend) but would you be interested in a patch if there's something I can improve? One thing I might add is an optional "Did you mean that?" prompt on the Back button, as it's a little too easy to hit and knock you clear out of the app (optional of course, as I understand some people don't have such problems).
Click to expand...
Click to collapse
I'm always interested in any patch especially support for other devices (I have a htc so I can't debug stuff for other devices :/ )
Yeah there could be an option for that. It's pretty easy to implement so... But i don't have this problem so i didn't realised that one.
GoodDayToDie said:
Thanks again!
Click to expand...
Click to collapse
Thank you for your feedback
Muzzy777 said:
does anyone know the latest ETA on compatibility for samsung devices?
Click to expand...
Click to collapse
Well I answered this on the first page of the thread already, thanks.
EDIT: I updated the program and my first post and implemented some of your feature requests
reddragon
Configuration Service Provider Reference for Windows Mobile Devices
Have you used the forum-search? You'll find a post which describes you how to get these books to your phone (it's by me). I can't give you the link because I send this from my HD7.
really great app. Also like the pc<->phone feature
I use it now very often, so I think it needs:
-2 Filebrowser Tabs
-or an option to "bookmark" certain folders
diboze said:
really great app. Also like the pc<->phone feature
I use it now very often, so I think it needs:
-2 Filebrowser Tabs
-or an option to "bookmark" certain folders
Click to expand...
Click to collapse
I talked to other people, at first this feature looks awesome, but after some time you would see that you don't use 2 tabs!
The bookmarking thing is a good idea...
Elerador said:
Have you used the forum-search? You'll find a post which describes you how to get these books to your phone (it's by me). I can't give you the link because I send this from my HD7.
Click to expand...
Click to collapse
I'm looking into amazon kindle... what i can do for sure is copy the file into the kindle folder and start amazon kindle...
But i forgot how to start a program via app-guid. I remember that i saw an COM.dll which can do that.
__ow said:
Configuration Service Provider Reference for Windows Mobile Devices
Click to expand...
Click to collapse
i know that link but i don't see how you can move folders (if it is possible)
reddragon
Love the update! Thanks for cluing me in on the workings of the filter; I wasn't trying wildcards and it therefore looked like it was always empty.
That said, a bug report (reproed on the older version too):
Registry manual mode can crash with a System.ArgumentException "Invalid fullpath".
Start Advanced Explorer
Pan to Registry
Tap "edit manual"
Observe exception
App crashes on hitting OK

[XAP] Screen capture program (Based on "The DllImport Project")

WP7 Screen capture program
[OBSOLETE, INSTEAD USE Screen Capturer v3]
Program structure
At application start Jaxbot's dehydrate hack, its enabled automatic by setting some registry values (that enables sort of multitasking). So that you can just run this app, go to home, enter the wanted app of you choice that you want to capture.
Brief info about how this app has functionality to take captures.: Uses The DllImport Project to talk to the system that enables C# code to call C++ for me.
The app is actually only an infinitive loop that listen for [Focus]-key.
As you can see below, a Sleep is enabled of 500ms to spare your battery so that is does not spam the system cpu with a while loop that runs forever, draining your battery fast.
Code:
public static void StartHook()
{
Phone.Screen.init();
bw = new BackgroundWorker();
bw.DoWork += bw_DoWork;
bw.RunWorkerAsync();
}
static void bw_DoWork(object sender, DoWorkEventArgs e)
{
int key = (int)Phone.KeyboardHook.PhysicalKeys.Focus;
while (true)
{
if (DllImportCaller.lib.GetAsyncKeyState7(key) != 0)
{
Phone.Screen.Capture cap = Phone.Screen.CaptureScreenToPictures();
var str = string.Format("PictureName: {0}\nTimeElapsed: {1}ms\nPictureByteSize: {2}",
cap.PictureName, cap.TimeElapsed.TotalMilliseconds, cap.PictureByteSize);
int res;
DllImportCaller.lib.MessageBox7(str, "Screen Capture", (uint)MB.MB_OK, out res);
}
System.Threading.Thread.Sleep(500);
}
}
In App instructions (Web)
[Checkbox] Jaxbot' Dehydrate hack (On / Off)
- This is for yourself, so you can toggle the "multitask" after capturing the app.
- Automatic activate on app launch (this)
"How to":
- Enter this app
- Navigate to the app you want to capture (no more than 2 apps in between (this app will be killed by "Watchdog"))
- Hold "focus" (not click, >focus), for at least 500ms
- Wait for messagebox to verify capture
- (SUCCESS) > Located under "Pictures > All > Saved Pictures"
Extras comments by me
(100% Verified to work (on mine lol))
Test pictures made at the moment: 460!
Fixed-list
- (1.0.1) Collision with real "Dll Import" when the guids are the same
- (1.0.2) GUI + Standalone + No collision with overwrite whats so ever (Same GUID)
- (1.0.3) "In-app dehydration toggler" + "better experience", EPIC release
- (1.0.4) Fail-safe, for sure no more multiple capture bug (2-4). (Test: I Can hold focus for 1 min and only one is captured).
- (1.0.4.0.0.0.1) For some random reason without debugger it took 1-6 captures, but WITH the debugger i could hold it for a minute and only one would be captured. Fixed now with a "Sleep()" to prevent 1+.
- (1.0.5) Now, problem with 2 msg box are 100000% GONE NOW! Ill pay you money else if 2 come up lol, jk
> Problem was located in "CSharp___DllImport.MainPage(); .ctor" that ALSO hooked to key-press.
- (1.0.5, HD2 edition) Now supports HD2, works now because its binded to "Search" instead of "Focus" -button; Aka "Search version".
Thanks for my time
Thanks!
Feature request: disable / enable dehydration from within the app. Maybe an option to automatically reenable dehydration after the screenshot. I don't want to leave dehydration on, because of performance and batterylife.
Well done!
Heathcliff74
Heathcliff74 said:
Thanks!
Feature request: disable / enable dehydration from within the app. Maybe an option to automatically reenable dehydration after the screenshot. I don't want to leave dehydration on, because of performance and batterylife.
Well done!
Heathcliff74
Click to expand...
Click to collapse
Is there a good cross device that can toggle dehydrate? Because of how i see it its device specific (root access). Is there a basic lib out there that i know exist somewhere, ill implent it.
Thanks for criticism
Fantastic ! Thanks for this app. Confirmed working on my HD7.
Attached some screenies.
contable said:
Fantastic ! Thanks for this app. Confirmed working on my HD7.
Attached some screenies.
Click to expand...
Click to collapse
Thanks for reporting (cross compiled anyways (device non-specific)).
> One "thanks" for you
fiinix said:
Is there a good cross device that can toggle dehydrate? Because of how i see it its device specific (root access). Is there a basic lib out there that i know exist somewhere, ill implent it.
Thanks for criticism
Click to expand...
Click to collapse
I'm not sure, but I believe the registry value that needs to be set can be changed with the normal registry api (no root access required). I could be wrong though. If it doesn't work, then the COM dll's from Samsung and HTC will work for sure. But you need to add the COM dll's for all the different brands and they have different interfaces. It isn't too hard though.
By the way, the criticism was meant as "constructive criticism" I appreciate your work.
Ciao,
Heathcliff74
Heathcliff74 said:
I'm not sure, but I believe the registry value that needs to be set can be changed with the normal registry api (no root access required). I could be wrong though. If it doesn't work, then the COM dll's from Samsung and HTC will work for sure. But you need to add the COM dll's for all the different brands and they have different interfaces. It isn't too hard though.
By the way, the criticism was meant as "constructive criticism" I appreciate your work.
Ciao,
Heathcliff74
Click to expand...
Click to collapse
Yep thats what i tried to say, "constructive criticism", forgot how to call if fully out
Also working fine on my OMNIA 7. I can enable/disable dehydration with advanced config tool on both devices.
@Heathcliff:
After testing the HD7 for some weeks now I decided to go back to the OMNIA 7 when you have finished your work. The HD7 isn´t nearly as good as the OMNIA 7 but atm the best choice if you wanna do some customizations...
wow, thanks for the app! Here are some of my own screenshots
Thanks for your work, but I have now the same problem like this tread.
Ddriver said:
Thanks for your work, but I have now the same problem like this tread.
Click to expand...
Click to collapse
Oh, right, cant have the same "AppId" on two apps. Then the apps will fail sometimes.
Ill leave a small update to fix some problems.
edit: Fixed (update at first page) (1.0.1)
fiinix said:
Oh, right, cant have the same "AppId" on two apps. Then the apps will fail sometimes.
Ill leave a small update to fix some problems.
edit: Fixed (update at first page) (1.0.1)
Click to expand...
Click to collapse
Thanks for the update. But...
Now stay the "PhoneRestartApp" again on my Mozart, but the "BatteryStatusApp" flay a way. ;(
fiinix said:
Oh, right, cant have the same "AppId" on two apps. Then the apps will fail sometimes.
Ill leave a small update to fix some problems.
edit: Fixed (update at first page) (1.0.1)
Click to expand...
Click to collapse
... nothing is fixed it overwrite my batteryMeter
Ddriver said:
Thanks for the update. But...
Now stay the "PhoneRestartApp" again on my Mozart, but the "BatteryStatusApp" flay a way. ;(
Click to expand...
Click to collapse
if you're having problems with the batteryStatusApp, try this one instead:
Newer battery app
CopyCounsler said:
if you're having problems with the batteryStatusApp, try this one instead:
Newer battery app
Click to expand...
Click to collapse
I have exactly this one on my Mozart and hi flay a way after the installation from the "ScreenCaptureApp". 8)
Ddriver said:
I have exactly this one on my Mozart and hi flay a way after the installation from the "ScreenCaptureApp". 8)
Click to expand...
Click to collapse
All this is fixed now.
Great work fiinix
Function all like a charm, thanks a lot for this app.
any word on disable / enable dehydration from within the app?
munkeyphyst said:
any word on disable / enable dehydration from within the app?
Click to expand...
Click to collapse
Have found an open source solution on that. That works on all platforms.
It is buggy but works! That's the important thing, thank you so much! Keep up the great work!
Sent from my HD7 using XDA Windows Phone 7 App

idea how to hack zune to make install wp7 apps

Hi all,
I was wondering if it's possible to inject into zune app and make it install another app instead of the one you choose using zune.
Using fillder, I briefly tried to look what requests are made by zune but I could not see anything which looks like downloading the app.
Just sideload its a whole lot easier and I don't think something like that exists otherwise it would be on Android and iPhone.
Sent from my GT-I5800 using XDA App
andreiuc said:
I was wondering if it's possible to inject into zune app and make it install another app instead of the one you choose using zune.
Click to expand...
Click to collapse
Hmm, I can say - interesting idea! But I am afraid it's a very difficult to implement. You need to emulate whole MS store server...
I think all requests go via secure connection and checked by trusted certificates on device.
same with dev unlock.
Cotulla said:
I think all requests go via secure connection and checked by trusted certificates on device.
same with dev unlock.
Click to expand...
Click to collapse
Not at all, some requests are non-secure. I'm able (with WireShark) to catch xap requests, store/app info etc. Actually, we have a lot of marketplace replacements (even I have my own implementation ).
sensboston said:
Not at all, some requests are non-secure. I'm able (with WireShark) to catch xap requests, store/app info etc. Actually, we have a lot of marketplace replacements (even I have my own implementation ).
Click to expand...
Click to collapse
I tried with Fiddler to catch xap requests but I was not able to see any.
My idea is to to write an app which injects code in Zune to hijack calls to download a XAP from zune and download from my location instead(or get it from local disk).
it's good to hear this. but marketplace XAP files are signed and it also makes a problem. unsigned will not work. (it's not deploy, it's installation!)
Cotulla said:
it's good to hear this. but marketplace XAP files are signed and it also makes a problem. unsigned will not work. (it's not deploy, it's installation!)
Click to expand...
Click to collapse
Right. They are signed with developer key.
Not sure if WP7 OS checks this and how would it know if it's the real app?
I mean, I can sign my own XAP which I make Zune to get it and deliver it to WP7.
andreiuc said:
Right. They are signed with developer key.
Not sure if WP7 OS checks this and how would it know if it's the real app?
I mean, I can sign my own XAP which I make Zune to get it and deliver it to WP7.
Click to expand...
Click to collapse
Looking to the requests responses when you select to install an app, I was able to see this response XML:
Code:
<a:entry>
<a:updated>2011-09-08T18:03:25.3198784Z</a:updated>
<a:title type="text">3D Paperball 1.3.0.0</a:title>
<a:id>urn:uuid:1ea47c77-79c1-4c5a-b441-549b4e93dcea</a:id>
<version>1.3.0.0</version>
<url>http://apps.marketplace.windowsphone.com/E0C15284-972B-41D3-B245-8C16AAF73A66/CurrentBinary.xap</url>
<packageSize>9235456</packageSize>
<installSize>19616768</installSize>
<clientTypes>
<clientType>WinMobile 7.0</clientType>
<clientType>WinMobile 7.1</clientType>
</clientTypes>
<supportedLanguages>
<supportedLanguage>English</supportedLanguage>
</supportedLanguages>
<deviceCapabilities><capability><id>ID_CAP_NETWORKING</id><string>data services</string><disclosure>Disclose</disclosure></capability><capability><id>ID_CAP_SENSORS</id><string>movement and directional sensor</string><disclosure>Disclose</disclosure></capability><capability><id>ID_CAP_IDENTITY_USER</id><string>owner identity</string><disclosure>Disclose</disclosure></capability><capability><id>ID_CAP_IDENTITY_DEVICE</id><string>phone identity</string><disclosure>Disclose</disclosure></capability></deviceCapabilities>
<averageLastInstanceUserRating>0</averageLastInstanceUserRating>
<lastInstanceUserRatingCount>0</lastInstanceUserRatingCount>
</a:entry>
<a:author>
<a:name>Microsoft Corporation</a:name>
</a:author>
As you can see, the XAP URL is right there.
However, with Fiddler, I am not able to see any requests to this URL.
Maybe someone can share some info using more advanced tools like WireShark.
LOL, my hunch is it's actually the WP7 OS which is doing the download of the file
yeah. but it seems signed with own MS certificate ?
so developers push app to MS and they verify and sign it? (I don't know much about market space publishing)
andreiuc said:
LOL, my hunch is it's actually the WP7 OS which is doing the download of the file
Click to expand...
Click to collapse
I believe you are right as it's been discovered already that it's pacmaninstaller.exe (I think that's the spelling) on device that prevents the sideloading of homebrew apps with INTEROPSERVICES.
andreiuc said:
However, with Fiddler, I am not able to see any requests to this URL.
Maybe someone can share some info using more advanced tools like WireShark.
Click to expand...
Click to collapse
Did you "reverse tether" your phone to PC? I believe, handset is responsible to download and install xap...
BTW, all these talks is about "warez" I don't see any other reasons to do that kind of hack (or may be, for research purposes only).
To get a "prove of concept", we need:
- download MS signed xap;
- using some kind of filtering proxy, replace request to http://apps.marketplace.windowsphone.com/{GUID}/CurrentBinary.xap to the local server;
If phone will be able to download and install that xap (what is impossible by using MS or third-party deployers), we'll get a solution or at least prove of solution
Cotulla said:
yeah. but it seems signed with own MS certificate ?
so developers push app to MS and they verify and sign it? (I don't know much about market space publishing)
Click to expand...
Click to collapse
Yep, "Ed Zachary" (c) Dave Barry, "Big Trouble"

Creating simple contacts' application

Hello all!
I am looking into development of something which is similar to people's list in people hub. What I want is a huge list of people on one page with (of course) LonglistSelector. When I tap a member of the list, I want the user to be navigated to the details page of that item. User needs to be able to manipulate and modify the data on the details page. The list is going to be real huge. I have a few question about the approach.
1. What is the best way to store data? I am thinking of creating local database with a few columns with person's name in one column, age in another etc.
If this is the approach to go for, can anyone provide me detailed description about the databases? I have deeply gone through the MSDN, WindowsPhoneGeek and many other documentations. I feel dumb about the whole database scenario.
2. Is XML list as database a good approach for large amounts of data or it will be pain?
i would say SQL CE is your best bet to store huge amounts of data. XML is slow at large volumes of data when compared to JSON. I would prefer JSON over XML.
darthveda said:
i would say SQL CE is your best bet to store huge amounts of data. XML is slow at large volumes of data when compared to JSON. I would prefer JSON over XML.
Click to expand...
Click to collapse
So basically, I need to go with the local database using LINQ. Now, how do I do that? As I mentioned, I have read intensively. However, I just don't seem to get hang of it.
akshay2000 said:
So basically, I need to go with the local database using LINQ. Now, how do I do that? As I mentioned, I have read intensively. However, I just don't seem to get hang of it.
Click to expand...
Click to collapse
I created my local database with LINQ based off this sample:
http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh286405(v=vs.92).aspx
First define the columns which you would want to create and then modify the sample code to suit your needs.
For contacts, there is an excellent sample available:
http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh286416(v=vs.92)
if you are stuck with some particular piece of code then let me know, i would be glad to help you out
darthveda said:
I created my local database with LINQ based off this sample:
http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh286405(v=vs.92).aspx
First define the columns which you would want to create and then modify the sample code to suit your needs.
For contacts, there is an excellent sample available:
http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh286416(v=vs.92)
if you are stuck with some particular piece of code then let me know, i would be glad to help you out
Click to expand...
Click to collapse
I had gone through those links earlier! Back then, they made very little sense to me. I have researched a bit by now. I will update here if I get stuck somewhere.
hi
i had read the thread now and maybe this example of MS can help you... it's not based on local database, but uses ASP.NET Web API!
so maybe this is a way for you..
darthveda said:
if you are stuck with some particular piece of code then let me know, i would be glad to help you out
Click to expand...
Click to collapse
I'm attaching my code file to the post. When I try to run the app and click the button (it tries to add an item to the observablecollection) I get NullReferenceException error. Apparently, the collection's instant hasn't been created. But I tried to instantiate it using 'new' keyword - no luck. Am I doing anything wrong?
akshay2000 said:
I'm attaching my code file to the post. When I try to run the app and click the button (it tries to add an item to the observablecollection) I get NullReferenceException error. Apparently, the collection's instant hasn't been created. But I tried to instantiate it using 'new' keyword - no luck. Am I doing anything wrong?
Click to expand...
Click to collapse
solution folder will be better, you are using telerik controls, i can't recreate your solution.
It's done!
darthveda said:
solution folder will be better, you are using telerik controls, i can't recreate your solution.
Click to expand...
Click to collapse
Thanks for the response! After a lot of debugging and (almost literally) adding Debug.writeline after each line of code, I managed to solve it. It had nothing to do with the Database or the ObservableCollection. It was totally different - GroupDescriptor issue! More details here: http://stackoverflow.com/questions/...ion-while-adding-item-to-observablecollection
I'll post here if I get stuck with something again.
Again, thanks a lot!
Any reason you are using telerik controls? for starters and very simple programs, you can use controls from silverlight toolkit or coding4fun toolkit. i am using longlist selector which does the job just like the jumplist from telerik controls does.
darthveda said:
Any reason you are using telerik controls? for starters and very simple programs, you can use controls from silverlight toolkit or coding4fun toolkit. i am using longlist selector which does the job just like the jumplist from telerik controls does.
Click to expand...
Click to collapse
No specific reasons except that the Jumplist provides StickyHeader functionality. And animation framework seems nice addition too!

Categories

Resources