Related
When we were back on NoDo there were quite a few homebrew apps that used native code to apply tweaks to WP7 devices. Most of those apps seized to work after the device is upgraded to Mango. There a several reasons for this behavior. I've done research on this, because I wanted to make WP7 Root Tools compatible with Mango. In this topic I'd like to explain how developers can fix their apps to work on Mango again. It has taken me quite some time to compile this guide, but I hope to give the Homebrew development on WP7.5 Mango a boost.
This guide is NOT about creating homebrew executables (exe-files) for WP7. This guide aims to utilize native code DLL's (C++ / ARM) from within your Silverlight app.
Note that with native code you get access to a lot of extra API's. But that does not mean you automatically get access to resources you normally won't have access to. For example, you can use the CopyFile() API. But if you try to copy a file to the \Windows folder, you will get errorcode 0x4ec (1260), which means "Blocked by policy". So you are still bound to the rules of the sandbox of your app. If you want Full Root Access for your app, you have to wait for a new version of WP7 Root Tools, which will allow you to give your app root-access. I'm also working on an SDK for that, which wraps all common task into a neat managed library. But don't hold your breath for that, because it's all taking a bit longer than I expected.
To understand everything in this guide you need basic knowledge of C++, COM-interop and Silverlight for Windows Phone. If you are new to all this, you might want to do some reading on these topics first. Currently there is no way to debug the native code. The only thing you can do is create test-functions which return formatted debug-info. This makes things pretty difficult. Read the guide carefully, because a little mistake can make your app crash easily!
Important note: If you have any long-running tasks, they may work fine while you are debugging. But you need to make sure that you start a new thread to run this code. Because, when you run without debugger the WatchDog will monitor your application and if the User Interface thread is blocked for more than 10 seconds the WatchDog will exit your app ungracefully!
It has been suggested that native homebrew DLL's need to be signed with approved code-signing keys. This is in fact not true! You can use native DLL's on Mango devices, which are not signed at all!
Basically there are two reasons why homebrew apps are not working anymore:
- Interop Lock
- DLL's were built against libraries, which are not supported anymore on Mango
Interop Lock is discussed in this thread. Interop Lock is a new protection mechanism in WP7.5 Mango. Basically it means you can't use apps with ID_CAP_INTEROPSERVICES, unless a device is Interop Unlocked. Without ID_CAP_INTEROPSERVICES an app can't call any drivers. And most homebrew apps call these drivers directly or indirectly. So if an app uses the Interop Capability, it can only run on devices that are Interop Unlocked. If you're going to build an app that uses this capability on Mango, you'll have to give your users instructions on how to apply Interop Unlock on their device.
Most of the native code libraries that were used on NoDo, were based on a hand full of projects. These projects were created and then extended for their own needs by other developers. The result was that most of these projects had the same project-types and library-references. In Mango, a lot of DLL's that were not used anymore by Microsoft, have been removed from the OS. Mostly in the ShellCore. The DLL's were meant for MFC-type functionality, which was never even supported on WP7. Actually, these DLL's are not even used by the homebrew apps either, but there are references to these DLL's in the homebrew libraries, which will cause the library to fail loading into memory. You can see this behavior when you try to run an app with non-Mango-compatible native code on an Interop Unlocked device from within the Visual Studio 2010 development environment. When the COM-class is instantiated it will throw an COMException: "COM object with CLSID '{...}' cannot be created due to the following error: The request is not supported." This is errorcode 0x80070032. This exception is actually caused due to the fact that the previous call to RegisterComDll() failed. If you get the returnvalue of that function you should have 0. In this case the return-value is probably 0x8007007E, which is "Module Not Found". This actually means that you directly or indirectly refer to a DLL, which cannot be found on the device. To fix this we need to create a clean project and add our new or existing native code to that project.
Here are the steps to setup your development environment and create a new, clean project for your native code. Please keep in mind that this guide is still work-in-progress. I may add more detailed instructions and examples later on, when people ask for it.
Update 2011/10/15: Some improvements in the guide, based on comments of rudelm and GoodDayToDie.
Install Visual Studio 2008 with latest service pack and hotfixes. Make sure you install C++. You need Visual Studio 2008, because the necessary SDK does not support Visual Studio 2010.
Install Windows Mobile 6 Professional SDK Refresh.
Install Visual Studio 2010 with latest service pack and hotfixes. You need this to create your Windows Phone Silverlight app.
Install Windows Phone SDK 7.1.
Download the attached Microsoft.Phone.InteropServices.zip. After you downloaded the zip-file, open the file-properties and make sure the file is "unblocked" (Windows will block downloaded files). Some unzippers, including the built-in unzipper from Windows will mark the unzipped files as "blocked", which would give problems later on if you don't unblock first.
If your developmachine is 32-bit you go to "C:\Program Files\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone71" or if you have a 64-bit machine you go to "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone71". Extract the DLL from the zip-file in this folder.
Open the Visual Studio Commandprompt and change directory to the folder where you just extracted the DLL. Then enter this command:
Code:
SN -Vr Microsoft.Phone.InteropServices.dll
In the same folder there is a subfolder called "RedistList". Open that folder and open the file "FrameworkList.xml". Add this line to that file:
Code:
<File AssemblyName="Microsoft.Phone.InteropServices" Version="7.0.0.0" Culture="neutral" ProcessorArchitecture="MSIL" InGac="false" />
Thanks to Tom Hounsell for this tip!
Install the latest version of Zune.
Open Visual Studio 2008 and create a new project.
Choose Visual C++ / Smart Device / ATL Smart Device Project and fill in a name and location for your native library. Do NOT choose MFC, or your library won't work on WP7! The name will be the name for the DLL. Later on you will create a COM-class. Choose a different name for your library and for your COM-class!
In the new wizard click "Next".
Remove the "Pocket PC 2003" from the Selected SDK list and add "Windows Mobile 6 Pro SDK" to the selected SDK's. Click "Next".
In "Application Settings" keep everything default and click "Finish".
Set your configuration to "Release", because you won't be able to debug anyway.
Go to Project Properties / Configuration Properties / C/C++ / Preprocessor / Preprocessor Definitions and add this: _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA
Right-click the project and click "Add" / "Class" and choose "Simple ATL object".
In the new dialog enter the "Short name" for your COM-class. All other names are filled in automatically. Keep those names default to avoid naming-conflicts. Also make sure the name of your COM-class is different from the name of the library. All other options can are default, so you can click "Finish" now.
The basic layout for your native project is now ready. Note that you have these files: for your library you have a header-file (.h), a code-file (.cpp) and a COM-definition-file (.idl) and for your COM-class you have a header-file (.h) and a code-file (.cpp). I will refer to these files in the following steps, so make sure you can identify these files.
The COM-class you have now is based on IDispatch. IDispatch is the COM-interface that supports reflection-like functionality. The COMBridge in WP7 does not support this interface. Instead we should use IUnknown, which is the base-interface for all COM-objects and supports reference-counting.
In the header file of your COM-class you can see the public inheritance of IDispatchImpl. This is no problem and you can leave it as it is. But you can also see this COM-mapping:
Code:
COM_INTERFACE_ENTRY(IDispatch)
You need to remove that line.
In the IDL file of your library you need to change the inheritance of the COM-class from IDispatch to IUnknown.
Your native code layout is now ready to add your methods. A method in COM-class should always have HRESULT as return-type. This value should be 0 or positive in case of success (normally use constant S_OK for success). If you have an errorcode which should throw a COMException do a logical OR with 0x80070000 and return that value. If you want to return a variable, you'll to declare that as parameter of your method and decorate it as returnvalue in the IDL-file. The parameter-types are bound by the definition of COM. You can read about the supported COM-datatypes here and here. Study those parameter-types closely, because any mismatch in your managed and unmanaged declarations will make your app crash definitely. You need to add all your methods in 3 different places: in the COM-class code, in the COM-class interface and in the IDL-file. Later on you need to add an exactly matching interface to your managed code. All the declarations have their own specific format and decoration. I will give an example of two different functions for these 3 files. Note that in these examples, the COM-class was named "Native", so the class implementation is called "CNative" and the interface is called "INative". You have to change that if your class has a different name.
In the COM-class implementation (.cpp-file) add this code:
Code:
STDMETHODIMP CNative::TestMethod1()
{
BOOL result = ::CopyFile(L"\\Windows\\0000_System.Windows.xaml", L"\\Windows\\Test.xaml", TRUE); // This will fail due to insufficient privileges. This is expected behavior to show how errors can be handled.
if (result)
return S_OK;
else
return 0x80070000 | ::GetLastError();
}
STDMETHODIMP CNative::TestMethod2(BSTR InputString, BSTR* OutputString)
{
size_t size = 1000; // in chars
TCHAR* msg = new TCHAR[size];
wcscpy_s(msg, size, L"\0");
LPWSTR value = new WCHAR[20];
_itow((int)wcslen(InputString), value, 10);
wcscat_s(msg, size, L"Length of string is: ");
wcscat_s(msg, size, value);
*OutputString = SysAllocString(msg);
delete[] msg;
delete[] value;
return S_OK;
}
In the interface of the COM-class (.h-file) add this code immediately after END_COM_MAP():
Code:
STDMETHOD(TestMethod1)();
STDMETHOD(TestMethod2)(BSTR InputString, BSTR* OutputString);
Locate your interface in the IDL-file of the library. This may look a bit weird, because there are a lot of attributes that decorate the empty interface. Add these declarations to your interface (note the decoration of the parameters, read more here):
Code:
HRESULT TestMethod1();
HRESULT TestMethod2(BSTR InputString, BSTR* OutputString);
Now we need to locate two GUID's and copy them in a text-file, because we need these GUID's later on. These GUID's are in the IDL-file. We will call the first GUID "interface-GUID". It is the "uuid" in the tag RIGHT ABOVE the interface-declaration. We will call the second GUID "coclass-GUID". It is the "uuid" in the tag RIGHT ABOVE the coclass-declaration. There also a "uuid" in the tag above the library-declaration, but we don't need that one.
Open Visual Studio 2010 and create a new project: Visual C# / Silverlight for Windows Phone and choose a project-type, name and location.
Now go back to your native project in Visual Studio 2008. The compiled result DLL of this project will be used in your Windows Phone app. To make sure you always use the latest version of the native DLL in your Windows Phone app, you can add a Post Build Event to this project. This example assumes you will have a folder with a subfolder for the native solution and a subfolder for the Windows Phone solution. Go to Project Properties / Configuration Properties / Build Events / Post-build Events and add this (change the paths according to the soluton-foilder you will create for your Windows Phone app):
Code:
copy "$(TargetPath)" "$(SolutionDir)..\MyApp
If you checked the option "Create folder for solution" when you created the Windows Phone project, you may want to add another subfolder "\MyApp" to the path.
Now build your native project! The compiled DLL should now also be copied to the folder of your Windows Phone app.
Create a new file called "WPInteropManifest.xml" in the folder of your managed Windows Phone app. Copy this content in the file:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<Interop>
</Interop>
Switch back to Visual Studio 2010. In the solution explorer click on "Show all files". Your native DLL and the "WPInteropManifest.xml" should be shown now.
Select the "WPInteropManifest.xml" file and in the file-properties set "Build action" to "Content" and set "Copy" to "Always". You will always need this file in your project, regardless you will be calling drivers or not. If you don't have this file in your project, you won't be able to use your native DLL.
Select your native DLL and in the file-properties set "Build action" to "Content" and set "Copy" to "Always".
In the solution explorer, right-click on the project and choose "Add Reference". Then select "Microsoft.Phone.InteropServices".
Open the "WMAppManifest.xml" file and add this line below the other capabilities:
Code:
<Capability Name="ID_CAP_INTEROPSERVICES" />
Later on, you can try if your app will work without this capability. If you only use native code without calling drivers (directly or indirectly), you don't need the capability and your app will also work on devices that are not Interop Unlocked then. This specific example does not call any drivers, so in this example the ID_CAP_INTEROPSERVICES can be omitted and then it would run on non-Interop-Unlocked devices.
Now add a code-file to your project and copy this code into the file. You need the the coclass-GUID and interface-GUID you copied into a text-file earlier and you also need to replace the name of the class and interface to the names you used. Also note that the declaration must be an exact match (order and parameters) with the declaration in the IDL-file, although the IDL-file is differently formatted.
Code:
using System.Runtime.InteropServices;
[ComImport, ClassInterface(ClassInterfaceType.None), Guid("YOUR-COCLASS-GUID-GOES-HERE")]
public class CNative
{
}
[ComImport, Guid("YOUR-INTERFACE-GUID-GOES-HERE"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface INative
{
void TestMethod1();
[return : MarshalAs(UnmanagedType.BStr)]
string TestMethod2([MarshalAs(UnmanagedType.BStr)] string InputString);
}
Note that the interface is declared as IUnknown.
Now you need to call the native code. You can add this code to the constructor of your Page or to the eventhandler of a button, or anywhere you like. Be sure to replace the DLL-name, interface-name and class-name and use your coclass-GUID. The exception is a well-known error-code and the exception will be casted to a UnauthorizedAccessException, instead of a COMException.
Code:
uint retval = Microsoft.Phone.InteropServices.ComBridge.RegisterComDll("WP7Native.dll", new Guid("YOUR-COCLASS-GUID-GOES-HERE"));
INative MyNativeCodeInstance = (INative)new CNative();
string result1 = "OK";
try
{
MyNativeCodeInstance.TestMethod1(); // UnauthorizedAccessException is thrown due to insufficient privileges. This is expected behavior to show how errors can be handled.
}
catch (Exception ex)
{
result1 = ex.Message;
}
string result2 = MyNativeCodeInstance.TestMethod2("Hello, Mango!");
MessageBox.Show(result1 + Environment.NewLine + result2);
You can now run your project! Be sure that you deploy it to your device. The emulator won't work, because you project uses native ARM code. The emulator runs on x86, so your native DLL won't load in the emulator.
When you go more advanced, you may need the Marshal-class. For example to copy a native memory-block to a managed byte-array. Be aware that there are actually two "Marshal" classes. There is "Microsoft.Phone.InteropServices.Marshal" and "System.Runtime.InteropServices.Marshal". They both look the same. But be sure you are using "Microsoft.Phone.InteropServices.Marshal", because it will allow you to do a lot more! Most methods in "System.Runtime.InteropServices.Marshal" will throw a MethodAccessException, because they are tagged [SecurityCritical], while the same methods in the other Marshal class will work.
I hope this will help you port your homebrew apps to Mango or create some fresh new homebrew! If you created an app with native code, drop me a line here. Show me your Screen Recorders, Accent Changers and more!
Ciao,
Heathcliff74
looking fwd to the native apps , a universal screenshot apps would be awesome..
Update :
scratch that, just ready that the app will be bound to the rules of the sandbox of your app.I guess that means no universal screenshot app yet
Its time to get native! Thanks Heathcliff.. I think I have a very good idea on something I could use native code for.. Ill pm you =)
Sent from my SGH-i917 using XDA Windows Phone 7 App
Suddenly, awesomesauce! Wow, big thanks Heathcliff74! Eve since you said you'd figured out homebrew native DLLs on Mango, I was really excited to see what people could do. I never guessed the real reason homebrew DLLs didn't work on Mango, although in retrospect this makes sense. You're awesome for investigating this for us.
Thoughts that immediately come to mind:
Update the existing screen capture apps.
Update the existing WebServer app.
(As part of the above) update the sockets DLL so we have server sockets again.
Explore how much filesystem access we have. Can files be copied from one app's isostore to another app's isostore?
Explore accessing drivers. The HTC update breaks filesystem access for HTC homebrew, but maybe there's another driver entry point we can use.
Investigate direct access to the SMS store (message backup?)
... and so much more. Oh, this is going to be fun!
the0ne said:
looking fwd to the native apps , a universal screenshot apps would be awesome..
Update :
scratch that, just ready that the app will be bound to the rules of the sandbox of your app.I guess that means no universal screenshot app yet
Click to expand...
Click to collapse
Hi!
Screenshots apps are definitely possible! The API for this can be called from within the sandbox and using OEM drivers it is possible to switch off dehydration. I already discussed this with fiinix and gave him this info. And I believe he almost has a Mango version ready.
Thanks for writing the article
Ciao,
Heathcliff74
great to hear about the progress
thanks Heathcliff74 for sharing!
Wooohooo nice HowTo! I will definitively try it and will report later. However, that will require that I go back to NoDo and back to Mango first. I'm not looking forward to that procedure... anyways awesome work Heathcliff, thank you!
@GoodDayToDie: you mentioned that the HTC libraries are fixed regarding file access. Julien Schapman from TouchXplorer mentioned something like that a while ago on twitter. Do you have any additional information on that topic? Is it just the DLL files from the HTC apps or is it something with the Mango HTC Update? I'll hope this is reversible, if I go back to NoDo and want to try Heathcliffs instructions :/
@rudelm, I only have experimental knowledge; I haven't dug into the actual update. However, the way that things like ComFileRW.dll work is by calling into some high-permission module in the HTC firmware (probably a driver using an IOCTL, though it could possibly be an RPC call to a privileged process) which then executes the requested action with high permissions. That's why the HTC DLLs don't do anything on other phones; they can't talk to the component that actually does the work.
My guess is that the HTC update simply turned off whatever it was that the COM DLLs are calling into. It could be more complex than that - for example, they could be trying to validate the caller, and prevent it from being used by homebrew - but whatever they did, neither DLL works anymore once you have the HTC update *even though the DLLs themselves did not change.*
Is it reversible? Well, "fixing" whatever component they were calling into is one option. Using Heathcliff74's Root Tools to gain full permissions on a "normal" homebrew app is another. There might be more, but it would need more study.
Thanks. Will try it. Hopefully i can get "GetPhoneNumber" from Windows Mobile 6 SDK to run or maybe trying http://blogs.msdn.com/windowsmobile/archive/2004/11/28/271110.aspx
GoodDayToDie said:
@rudelm, I only have experimental knowledge; I haven't dug into the actual update. However, the way that things like ComFileRW.dll work is by calling into some high-permission module in the HTC firmware (probably a driver using an IOCTL, though it could possibly be an RPC call to a privileged process) which then executes the requested action with high permissions. That's why the HTC DLLs don't do anything on other phones; they can't talk to the component that actually does the work.
My guess is that the HTC update simply turned off whatever it was that the COM DLLs are calling into. It could be more complex than that - for example, they could be trying to validate the caller, and prevent it from being used by homebrew - but whatever they did, neither DLL works anymore once you have the HTC update *even though the DLLs themselves did not change.*
Is it reversible? Well, "fixing" whatever component they were calling into is one option. Using Heathcliff74's Root Tools to gain full permissions on a "normal" homebrew app is another. There might be more, but it would need more study.
Click to expand...
Click to collapse
uhoh... sounds pretty bad for HTC users. If it was a firmware update, we will have a bigger problem. I will try to revert back to Nodo and will try Heathcliffs instructions for Native Code first. InteropUnlock is still something I need to try for Mango
rudelm said:
uhoh... sounds pretty bad for HTC users. If it was a firmware update, we will have a bigger problem. I will try to revert back to Nodo and will try Heathcliffs instructions for Native Code first. InteropUnlock is still something I need to try for Mango
Click to expand...
Click to collapse
No worries. I did some testing with contable and we just got confirmation that my exploits for HTC will still work on HTC Interop Unlocked Mango devices (needs a little adjustment, but No Problem!) Still working on a version of WP7 Root Tools for Samsung/HTC/LG RTM/NoDo/Mango!!
Ciao,
Heathcliff74
A screenshot app is allready there:
TouchXperience for Mango from Schaps.
Atm there is only missing the WPDM Mango update for being able to save the screenshot...
Heathcliff, could you please try to fix that HTC bug first? I am running into this problem with the HTC update and now my old code does not work anymore But at least my phone is finally interop unlocked because I could deploy the app on Mango but I get this error:
COM object with CLSID '{C6BD09B4-96AA-4524-89C4-665A15DD7C9B}' cannot be created due to the following error: The request is not supported. .
Which is one of the errors you mentioned on the first page. So far, so good
rudelm said:
Heathcliff, could you please try to fix that HTC bug first? I am running into this problem with the HTC update and now my old code does not work anymore But at least my phone is finally interop unlocked because I could deploy the app on Mango but I get this error:
COM object with CLSID '{C6BD09B4-96AA-4524-89C4-665A15DD7C9B}' cannot be created due to the following error: The request is not supported. .
Which is one of the errors you mentioned on the first page. So far, so good
Click to expand...
Click to collapse
I don't get what you mean. What HTC bug? What HTC update?
Ok, I will explain it:
There was a HTC Update when I upgraded from Mango B2 Refresh to the Mango RTM from Microsoft. It was followed by a smaller HTC Update. It was called HTC Update for Windows Phone. You can read it here in my blog.
Yesterday, I decided to revert back to NoDo, so that I could Interop Unlock my HD7 before I upgrade to Mango RTM. I did this with these tools and instructions from petbede.
However, ansar found out, that MS changed the update procedure and included the HTC update directly in the 7720.68 update.
Now you mentioned yesterday, that you and contable found a solution to use the HTC DLLs although there was this HTC update on our phones. That was when I already feared that the HTC update will break everything I tried so far.
So I called it the HTC bug, because it breaks my stuff
rudelm said:
Ok, I will explain it:
There was a HTC Update when I upgraded from Mango B2 Refresh to the Mango RTM from Microsoft. It was followed by a smaller HTC Update. It was called HTC Update for Windows Phone. You can read it here in my blog.
Yesterday, I decided to revert back to NoDo, so that I could Interop Unlock my HD7 before I upgrade to Mango RTM. I did this with these tools and instructions from petbede.
However, ansar found out, that MS changed the update procedure and included the HTC update directly in the 7720.68 update.
Now you mentioned yesterday, that you and contable found a solution to use the HTC DLLs although there was this HTC update on our phones. That was when I already feared that the HTC update will break everything I tried so far.
So I called it the HTC bug, because it breaks my stuff
Click to expand...
Click to collapse
I see. Well, I didn't find a solution. I just checked if MY exploit still works. And it does! I don't even know what you use exactly (I assume you use some HTC DLL's, but I don't know which and I don't know which functions). I don't use the HTC DLL's myself. Mainly because I don't want to get copyright issues when releasing WP7 Root Tools. Just look at the current release of WP7 Root Tools. No OEM code in there. So I don't think I can fix that for you.
Ciao,
Heathcliff74
Hm ok, I understand. I was using a HTC dll for changing a registry value (overriding DHCP DNS Server). However, it is interesting to know why the HTC DLLs all of sudden stopped working after this update. The DLLs inside the HTC tools seem to be the same size and should not be changed by the update.
But this shouldn't then influence the DLL made with your instructions in this thread i guess?
@rudelm:
The HTC devices have HSPL support, so why you don´t flash the latest xboxmod rom ? This saves a lot of time and all available types of unlocking can be sent via cab sender.
For writing registry keys or doing file operations you can use DiagProvXML til Heathcliff has finished the next version of WP7 Root Tools.
Is there any other reason why you are updating your phone the official way ?
@rudelm: The HTC DLLs don't actually have elevated permissions by themselves. To do things that an app n ormally lacks permissions for (like accessing the whole filesystem or writing to the registry), it needs to call into a high-permission component (probably a driver or a high-permission process). All HTC had to do to make the registry and filesystem COM DLLs stop working is to change that component so it didn't do what the COM DLLs told it to do.
@contable: I've heard enough reports of things that *should* work on HTC phones not working on the custom ROMs that I'm hesitant to install one. Then there's the risk of bootloader issues. Then there's the lose-all-your-data-because-your-phone-gets-reformatted issue - until I have my backup app working fully, I prefer to avoid the last one in particular.
Edit: If you are looking for working attachments, please look at this posting.
@contable:
I need an unmodified version of WP7 for my master thesis. The other thing is that I don't want to play around with HSPL without having the original SPL or firmware. It's like GoodDayToDie said: I'm still hesitating of the said reasons.
@GoodDayToDie:
The HTC applications still work and they were not updated afaik. So they are using the same DLL files. If there would be some driver running in TCB or ECB and they changed something, then their applications should stop working too. However, they can still be executed without problems. I am not sure what DLLs are used by advancedexplorer, but I think it were also the HTC dlls. My own application which used the HTC dlls stopped also.
@Heathcliff:
I've tried your instructions and found some errors in it:
step 23: *OutpuString = SysAllocString(msg); instead of *OutputString = SysAllocString(msg);
step 25: ; missing after OutputString)
step 28: add \MyApp to path, because VS2010 Solutions always have a subfolder with the same name of the solution
step 36: [return : MarshalAs(UnmanagedType.BSTR)] should be [return : MarshalAs(UnmanagedType.BStr)]
step 37: result 2 needs a type => string result 2 = ...
on first run:
Error 1 Could not load the assembly file:///C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone71\Microsoft.Phone.InteropServices.dll. This assembly may have been downloaded from the Web. If an assembly has been downloaded from the Web, it is flagged by Windows as being a Web file, even if it resides on the local computer. This may prevent it from being used in your project. You can change this designation by changing the file properties. Only unblock assemblies that you trust. See http://go.microsoft.com/fwlink/?LinkId=179545 for more information. NativeTestApp
Click to expand...
Click to collapse
This is because you forgot to register the DLL first. Look here: http://thounsell.co.uk/2010/11/avoi...g-the-interopservices-library-to-the-wp7-sdk/ and then down in the comments:
You must open the visual studio 2010 command prompt as administrator and call:
SN -Vr Microsoft.Phone.InteropServices.dll
then close and reopen Visual Studio, now it should work
Click to expand...
Click to collapse
In addition that, you will have to unblock the file in Windows Explorer, Properties of the file. Otherwise you will get this error in Xaml view:
Could not load file or assembly 'Microsoft.Phone.InteropServices, Version=7.0.0.0, Culture=neutral, PublicKeyToken=24eec0d8c86cda1e' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)
Click to expand...
Click to collapse
This unblock will only work, if you use the Windows Explorer in administrator mode. The DLL file should be copied to a path were every user can access the file. Unblock it there and move it than back to the WindowsPhone71 folder. I've extracted it directly to the WindowsPhone71 folder and I couldn't change its properties there.
I've created a VS2008 and VS2010 sample project on your instructions and tried to add some comments to the sources. I've attached them to this post. Here are a few extra information to my project:
Interface-GUID: D28D8CB9-F8BC-4379-9D0A-FA77C87EF814
coclass-GUID: 7300CD4A-03F4-4569-B2D8-F1515385D46D
COM Class: NativeTestClass
INativeTestClass and CNativeTestClass
Always results in retval 0 and this exception:
System.MethodAccessException was unhandled
Message=Attempt to access the method failed: System.IO.FileInfo..ctor(System.String)
StackTrace:
at Microsoft.Phone.InteropServices.ComBridge.RegisterComDll(String dllFileName, Guid clsid)
at NativeTestApp.MainPage.actionButton_Click(Object sender, RoutedEventArgs e)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)
Click to expand...
Click to collapse
I've rechecked every step but I am still stuck. The phone itself should be interop unlocked, otherwise I couldn't have deployed the app with the capability activated. Could you please look into it? I know this error from my earlier attempts to access the HTC dll directly, but then I used the NativeLibrary here from XDA which took care of all the GUID things etc.
UPDATE: Still working on a newer version of the webserver, but I've been distrcted by a number of other projects lately (including getting a new job). The most important news is that the Root Webserver works great with WP7 Root Tools; you don't need a full-unlocked ROM or HtcRoot compatibility anymore! Just mark the app as Trusted in the WP7 Root Tools policy pivot, and you're good to go.
Sorry for the long delay, I've been working on many different things. One of them is re-write of a substantial part of this app, to make it more modular and extensible and also to add more features. That re-write is far from done, any may end up being broken into a few smaller pieces once any of the new or re-written features reach release-quality without the whole app being unusably broken.
This project started out as a child of the HtcRoot project. It no longer requires HtcRoot; full-unlock or WP7 Root Tools work fine. It's also a child of the Functional Webserver / WebServer (Mango) projects, and builds on their open-source foundations. Its goal is to allow unfettered access to your phone through the convenience of a web browser.
Fifth release (v2.3.1)
Platform release, minor feature release, minor library update, bugfixes
Should now be compatible with fully unlocked custom ROMs, even if they can't use the HtcRoot project.
This release does not include NativeIO_Mango source, as it was not changed. If you need the source for this library, extract it from the 2.2.0 download.
Homebrew library (v1.6.3)
Better detection and reporting of exceptions due to not being root.
Should be safe to use the HtcRoot functionality on fully-unlocked ROMs.
Please see the changelog in the app for details and history
Note that this app requires a slight update to NativeIO_Mango from @fiinix's version. There were some bugs in the library that were making things difficult, so I fixed them. I also changed the return values of a couple functions (though the signatures are unchanged) to give the ability to return error codes from COM. Source code for both the managed Homebrew and COM NativeIO_Mango libraries is included, along with compiled binaries. Source code for the HtcUtility library can be downloaded from the HtcRoot proect.
Features:
View folder and ROM Module last-modified dates. (NEW 2.3.1)
File attribute info now presented better. (NEW 2.3.1)
Upload files anywhere. (2.2.0)
Create and delete directories anywhere. (2.2.0)
Delete writable files.
Add or Remove readonly attribute from files. (2.2.0)
See file size and attributes for any file.
Browse the entire filesystem.
Download any file (still not ROM modules, though).
Static HTML files in a "Content" folder for easier editing.
Easy link to browse (and add your own files) to Content folder (2.2.0)
All features of previous WebServer versions (IsoStore uploading, authentication, etc.)
Changelog
Bugfixes:
Fixed a case where setting file attributes or uploading a file would fail due to lacking permissions.
Fixed the potential for infinite loops on fully-unlocked ROMs compatibel with the HtcRoot project.
More effort to eliminate RootException / Error 1260.
Upcoming:
Access the registry as well as the filesystem.
Better access to installed application info and folders.
View, edit, move, and rename files.
Rename and move directories.
Server-side commands (process provxml, for example)?
Filesystem/Registry/Application search?
Known Bugs:
App may take several seconds to close; don't re-launch it immediately or weird things may happen.
Touching the screen while the app is in "root" mode appears to cause a crash, and posible resource leak.
Error 1260 (Least Privileged Chamber) may still occasionally appear on first access attempt or two... really wish I knew why.
Requirements:
Developer-unlocked phone (if you remove ID_CAP_INTEROPSERVICES it will work without root access, cutting off most of the filesystem).
For root access, you need *EITHER*
* A fully-unlocked ROM
* An interop-unlocked HTC phone with working HtcUtility driver
If your phone is compatible with the HtcRoot project, you're OK.
Thanks To:
Davux (original author of the "Functional Webserver" app)
Fiinix (Ported the NativeIO library and Webserver app to Mango)
MarysFetus (designed icons and graphics for the webserver app - site http://klaus-widraw.de)
Everybody who helped make the HtcRoot project possible.
Have fun!
Reserved for OP
Also reserved.
pretty neat
I'm not by my HTC HD2 but anybody know if will this work on it under the B.t.t.F ROM?
Awesome work GDTD!
EDIT: Doesn't work on a HTC HD2 on B.t.t.F v2.1 @ 8107 (no SP1) I get the following error when trying to connect from my PC:
Code:
Exception while getting the listing for /!
Homebrew.InteropException: Error listing subdirectories of ! GetLastError: 1260 at Homebrew.IO.DirectoryInfo.GetDirectories(String filter) at Homebrew.IO.DirectoryInfo.GetDirectories() at WebServer.MainPage.handler.BuildDirectoryListing(String dirPath) at WebServer.MainPage.handler.Process(RequestContext context) at HttpServer.Server.ProcessModules(RequestContext context) at HttpServer.Server.HandleRequest(RequestEventArgs e) at HttpServer.Server.OnRequest(Object sender, RequestEventArgs e) at HttpServer.HttpListener.OnRequest(Object sender, RequestEventArgs e) at HttpServer.HttpContext.OnRequest(Object sender, FactoryRequestEventArgs e) at HttpServer.Messages.MessageFactoryContext.OnMessageComplete(Object sender, EventArgs e) at HttpServer.Messages.Parser.HttpParser.OnComplete() at HttpServer.Messages.Parser.HttpParser.GetHeaderName() at HttpServer.Messages.Parser.HttpParser.Parse(Byte[] buffer, Int32 offset, Int32 count) at HttpServer.Messages.MessageFactoryContext.Parse(Byte[] buffer, Int32 offset, Int32 length) at HttpServer.HttpContext.ParseBuffer(Int32 bytesLeft) at HttpServer.HttpContext.OnReceive(Int32 bytesLeft) at HttpServer.HttpContext.b__a() at System.Threading.ThreadHelper.ThreadStartHelper(ThreadHelper t) at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStartHelper()
It is interop unlocked so I don't get the error.
NOOOO I AM CRYING !!! THIS IS WHAT I WANTED AND I CAN'T EVEN TRY IT !!
Kill me now ;_; sigh sob sigh
EDIT : good work and good luck
@voluptuary: If you can run the HtcUtilityTest app successfully (from the HtcRoot page) then yes, this will work.
On that thread, I have the following listed as compatible:
HD2 (BttF [XBmod-Yuki] v2 SP1)
That your ROM?
@Voluptuary:
To quote from the Known Bugs section:
First attempt to access the filesystem will often fail or take too long; hit refresh a couple times and it should work.
I don't know why it does this. I built in some delays and some automatic retries, and that improved things dramatically - it will *almost* always work on the first freresh attempt (or second click on the Filesystem link) now - but didn't eliminate the problem. I'm not sure what it is; on the test app the switch to SYSTEM token is effectively instant. Maybe it has to do with the number of threads or something?
Anyhow, give it another shot and it should work. I contemplated just putting in a 5-second auto-refresh on the error page...
GoodDayToDie said:
@Voluptuary:
To quote from the Known Bugs section:
First attempt to access the filesystem will often fail or take too long; hit refresh a couple times and it should work.
I don't know why it does this. I built in some delays and some automatic retries, and that improved things dramatically - it will *almost* always work on the first freresh attempt (or second click on the Filesystem link) now - but didn't eliminate the problem. I'm not sure what it is; on the test app the switch to SYSTEM token is effectively instant. Maybe it has to do with the number of threads or something?
Anyhow, give it another shot and it should work. I contemplated just putting in a 5-second auto-refresh on the error page...
Click to expand...
Click to collapse
Sorry, I should have read your post better. I hate when people do that to me in my threads, I should know better.
Anyways I got it working, kinda. It still gave the error at the top of the page but then it listed the directories anyways, then navigating to Windows always fails, just times out or stays loading forever. This is over Wifi, I guess it could be a latency problem but everything else on my network runs fine.
I install but it does nothing.It shows serial on usb, softwareloopback interface1,bcmsddhd1
I'm looking into ways to resolve the read error issue. Once it decides to work, I can leave the app running for hours (on USB power, idle detection disabled of course) and browse with no trouble, but when I first open the app it's ornery for a few minutes. Very weird (and annoying). I'm guessing it's due to a threading issue, which would technically be a bug in the HtcRoot library, but I'll need to explore more.
By the way, the Windows folder takes a moment to load (it's huge). It should work pretty reliably though (you can open it for reading without having root at all, actually) and it opens a lot faster on my version than it did on the earlier ones (StringBuilder + half as many FileSystem calls + eliminated one of the slowest calls).
@Ttblondey: Dude, it's a W E B S E R V E R app. It runs a web server on your phone. You browse it through a web browser. I literally don't know what else to tell you, except to go read the threads on the other web server apps.
New version uploaded!
This contains some bigfixes - in particular, the Error 1260 bug (failure to elevate to root before trying to access the filesystem) has been mitigated to the point where it shouldn't be a problem.
It also uses a new version of the Homebrew library, 1.6.0, which incorporates access to the HtcRoot project under the Homebrew.HtcRoot namespace. Previously, the HtcRoot project was tacked onto the webserver directly, which meant the Homebrew library was unaware of its existence.
Requirements and major features have not changes in this update. Source code is included.
Great work you are doing here man! Too bad i don't own a HTC
@Briefcase: Thanks! I wish I could support more phones. Heathcliff74 may be able to enable something for Samsung (gen1 at least) but he hasn't released a library for doing so yet.
FEATURE RELEASE 2.1.0 is out.
Major changes: File attributes information, file deletion.
You should talk with ROM chefs here to include read/write enabled HtcUtility in their roms because all recent ROMs unfortunately doesn't support your findings.
@Pr0xiMUS: That's a good point. This tool is potentially more powerful that TouchXplorer or Registry Editor from TouchXperience, but those are the primarily-targeted apps in custom ROMs.
I wonder if adding registry support will be as straighforward (and simultaneously frustrating, due to bugs) as filesystem support...
New version (2.2.0).
Some bugfixes, more file operations (uploading any file anywhere, adding and removing directories). Add your own files to the Content folder so you can serve them directly, if you want.
If anybody knows of a ready-made and Mango compatible registry COM library (that's open source, thanks a ton @schaps), this would save me some time. If not, I can either ports one from NoDo or write my own well enough.
I am not able to browse the File System getting the following error.
Exception while getting the listing for /!
System.Runtime.InteropServices.COMException (0x8007001F): A device attached to the system is not functioning.
Using DFT V3 rom on Htc 7 Pro (Gold)
@Kr3i0s: Your ROM is not compatible with the HtcRoot project, due to it having a crippled HtcUtility driver. If the ROM is updatable, it might be possible to downgrade the HtcUtility driver using a custom CAB. Otherwise, you'll need to wait for (or switch to) a ROM that has a working HtcUtility driver.
EDIT: Actually, a fully-unlocked ROM can probably use this app even without HtcRoot compatibility. I'll modify the app so that it detects Error 31 and tries to fall back on whatever permissions it already has.
This thread is a sort of recap of what we're able to do on Windows 10 Mobile.
I will regularly update this thread with new content as soon as possible.
Device Unlock
vcREG: lumia reg editor + interop unlock. Now Supports X50 device interop unlock
Description: vcREG is a powerful Lumia registry editor developed by vcFan for Lumia Windows Phones that has SYSTEM level access to the registry. the tool also has the ability to unlock all app capabilities for third party apps(interop unlock), and give SYSTEM level access to most of the filesystem through MTP.
[1/1/2016]Permanently interop Unlock your WP (even after hard reset)
Description: This thread by Riyad_ explains how to manually unlock your Windows Phone permanently, even after an hard reset. You can also use vcREG 1.2 to obtain the same result automatically.
[JAILBREAK][GUIDE]Interop Unlock for Windows 10 Mobile + All Capabilities
Description: Root Tool v2.0 is a tool developed by djamol that allows you to Interop/Capability unlock your Lumia/Samsung device. It works fine on build 10586 but does not work with the latest update of extras+info. If you have already updated extras+info just hard reset your device, disable automatic store updates and unlock your device (or just use vcREG 1.5).
Windows Phone Internals - Unlock bootloader, enable Root Access, create Custom ROM
Description: This tool by Heathcliff74 allows you to unlock the bootloader of selected Lumia Windows Phone models. After unlocking the bootloader, you can enable Root Access on the phone or create and flash Custom ROM's. Root Access allows you to load your own homebrew software onto the phone with high privileges. Apps can escape from their sandboxes. The tool can also create backup-images of the phone and access the file-system in Mass Storage mode.
Guides
[TUTORIAL] Deploy XAPs easily with WPV Xap Deployer
Description: This guide by MrCego explains how to sideload XAP files on your device using WPV XAP Deployer and Windows Phone SDK Lite. NOTE: If your device is not yet unlocked, you need to enable "Developer mode" in Settings > Update & Security > For Developers.
Tutorial | Lumia devices flashing
Description: This guide by Kaptaiin explains how to flash your Lumia device with a stock ROM. This guide is recommended to people who want to flash a specific ROM (e.g. to debrand or downgrade). If you simply want to flash the latest stock ROM consider using Windows Device Recovery Tool.
Steps to Download Windows 10 Mobile version of Apps manually ( Appx files )
Description: This guide by katsuga explains how to download appx files from the store on your computer.
[GUIDE] Unlock lumia x2x and enable Mass Storage mode
Description: This guide by ADeltaX explains how to enable mass storage mode (not MTP) on Lumia x2x devices (the ones supported by WPInternals).
windows mobile 10 Redstonebuild 14627& higher for old lumias in insider fast Ring
Description: This guide by raghulive explains how to install Windows 10 Mobile 14627 (Redstone) Insider Preview on discontinued Lumia devices in the Insider Fast Ring.
[GUIDE] Full FileSystem Access over SFTP on Windows 10 Mobile
Description: Full FS Access via MTP doesn't truly give full file system access as there are files and folders that are still inaccessible. Thanks to this guide by snickler you'll be able to browse the whole filesystem through an SFTP connection. Works fine on build 10586, just ignore wconnect errors.
[TWEAK] De-watermark Bing Lockscreen
Description: This guide by winphoneuser explains how to remove the Bing watermark from the "Pic of the day" when you set Bing as lockscreen wallpaper.
[TUTORIAL] Changing the font system (Buxton Sketch, Comic Sans and more)
Description: This guide by denisf1981 explains how to manually change the system font. You can also do this with DHT Font Change (see Utilities).
[HOWTO] [CAUTION] Maximize the potential of the (Lumia) Win10M camera
Description: This guide by AsvinDG explains what registry keys you should edit to maximize the potential of your camera (Lumia only).
[TUTORIAL] How to change the icons of quick status of the lock screen.
Description: This guide by denisf1981 explains how to replace lockscreen icons for any application. Interop-Unlock and Full FS Access are required.
[W10M BUILDS] Update links collection (cab-files) for various devices
Description: This thread by HD2Owner explains how to manually update to a specific Windows Insider build. To update, you need cab files specific for your device. Only few devices cabs are listed.
[TWEAK] Install homebrew apps as settings apps
Description: This thread by winphouser explains how to list a sideloaded application as a setting app.
URIs for URI Launching items
Description: This thread by SammaelAkuma explains how to create shortcuts to settings, app features and more using an URI (Uniform Resource Identifier). You will need to know the URI address of the feature you need. No root or unlock needed.
Utilities
[Firmware] Download all Lumia firmware And emergency files
Description: This website by Cholens lists the latest firmwares for all the Lumia devices available on Microsoft servers.
[XAP][18/09/2015][0.6] CustomPFD: registry editor + tweaks
Description: A great utility developed by Pasquiindustry that allows you to browse and edit part of the system registry. There are also lots of settings that you can customize directly without the need of browsing the system registry.
[App] App Data Manage Tool - Create backups from current state of apps and games
Description: This tool made by mahdi75 allows you to backup data of any app installed on your phone and restore it later, even on another phone. It can also erase the storage of your apps which is like reinstalling them but faster.
[App][Source] DHT Upgrade Advisor (Get redstone on old lumias)
Description: Using this app developed by Dormant Hackers Team, you can upgrade any unsupported Lumia device to Windows 10 Mobile Anniversary Update.
[APP] Interop Tools - A versatile registry editor, registry browser, unlock and more!
Description: This app by gus33000 allows you to edit the registry through the registry editor, browse the registry hives through the registry browser, find sepecific registry values/keys through the search page, apply tweaks to your device, Interop and Cap unlock your device, access device information, remotely edit the registry through the built-in desktop app, manage applications, manage certificates, perform standard registry operations such as deleting, renaming, and copying details, built-In Command Prompt inside the app, manage SSH accounts and more.
[116 TWEAKS] 2015-09-30 Tweaks for Windows 10 mobile - Quick Action button etc.......
Description: This tool is developed by kwanice and is based on WPTweaker by sensboston. It allows you to customize lots of settings to tweak your phone like the ability to use static IP, add 5th action button, etc.
[XAP]▒▒▒▒▒ Storage Explorer ▒▒▒▒▒
Description: A file manager developed by spavlin that allows you to browse, copy, edit and delete files from the root of the File System. Not all the folders are accessible. Some folders are accessible by writing the full path. If you have unlocked your phone with WPInternals check out post #37 for a full FS access version of Pocket File Manager and post #40 for a full FS access version of Files by Microsoft.
[XAP][Source] DHT Font Change for Windows Phone
Description: This app developed by DHT group allows you to replace the default system font with a custom one. It officially works on Lumia devices, Samsung devices are partially supported.
[XAP] AdBlocker For Windows Phone 8.x+
Description: This app developed by sandix allows you to replace HOSTS file to block annoying ads. You can customize the URL of the HOSTS file with multiple entries, view the entries of your current HOSTS file and restore your HOSTS file with an empty one.
[APP][2.0] Device Diagnostics HUB: Task Manager and more!
Description: This app by Pasquiindustry allows you to get lots of useful information about your device (CPU/RAM/GPU usage, download/upload speed, active system processes etc.) using Devices Portal.
Discontinued
[Fix added] [HOW TO] [UPDATED] Install Android apps on Windows 10 Mobile
Description: This thread by XDRdaniel explains how to deploy apk files on Windows 10 Mobile. Unfortunately Windows Bridge for Android (aka Project Astoria) is not available anymore since build 10549.
[GUIDE] Deploying Astoria Packages Manually To W10M
Description: This thread by HD2Owner explains how to deploy cab files to enable Windows Bridge for Android on unsupported devices. Unfortunately, as above, Windows Bridge for Android (aka Project Astoria) is not available anymore since build 10549.
[How to]Root Project Astoria
Description: This thread by ADeltaX explains how to obtain root access on Project Astoria. At the current stage, apps can't request root access because of the limitations of Astoria. The project is currently inactive because Astoria is not part of Windows 10 Mobile since build 10549.
[TOOL][OPEN SOURCE][GOOGLE][ALPHA] AM GApps Tool: GApps to W10M
Description: This thread by Marocco2 explains how to install GApps on Windows 10 Mobile. Currently, the tool has some issues (GMS not working), so it isn't fully functional. The project is currently inactive because Astoria is not part of Windows 10 Mobile since build 10549.
HOWTO: Install Windows 10 for Phones on Non-supported devices (and other hacks)
Description: This thread by RustyGrom explains how to install Windows 10 Mobile on unsupported devices using FiddlerCore. This method is reported to not work anymore after an update of Windows Insider app.
[W10M] Get Skype picture sharing from redstone (14267) working on 10586.107
Description: This guide by HD2Owner explains how to get Skype picture sharing on build 10586.107. Not useful anymore since the update has been officially released also for TH2 devices.
reserved
Good Jobs
Would you please add this thread - http://forum.xda-developers.com/windows-10/windows-10-mobile/how-to-root-project-astoria-t3187396??
Thanks
NZT-48 said:
Would you please add this thread - http://forum.xda-developers.com/windows-10/windows-10-mobile/how-to-root-project-astoria-t3187396??
Thanks
Click to expand...
Click to collapse
Done! Thank you .
Would you please add this thread :- http://forum.xda-developers.com/win...windows-mobile-10-redstone-rs1-build-t3319375
raghulive said:
Would you please add this thread :- http://forum.xda-developers.com/win...windows-mobile-10-redstone-rs1-build-t3319375
Click to expand...
Click to collapse
http://forum.xda-developers.com/showpost.php?p=65415872&postcount=24
it is better to add than your copy.
wait fast insider new 14267, now update is work bad and bug.
лагает так, что телефон хочется выкинут в мусорку.
reksden said:
http://forum.xda-developers.com/showpost.php?p=65415872&postcount=24
it is better to add than your copy.
wait fast insider new 14267, now update is work bad and bug.
лагает так, что телефон хочется выкинут в мусорку.
Click to expand...
Click to collapse
are you crazy,what the need of copy, its not one thought /innovation to get this hack ,while 950 xl got .29 update (dec 2015),MICROSOFTMDG updates on discussions,when this build released for only 950/xl,
is it a big thing to change registry values to get update,its just a commonsense ,not one copy other
raghulive said:
Would you please add this thread :- http://forum.xda-developers.com/win...windows-mobile-10-redstone-rs1-build-t3319375
Click to expand...
Click to collapse
Done!
Thanks for your guide! :highfive:
please add this also http://forum.xda-developers.com/windows-10-mobile/installing-windows-10-mobile-tech-t3431454/
interop
Hello guys.
I have Lumia 640 LTE RM_1072 AT&T
I download interop Tools(preview) and I trying interop unlock but I have problem ndtk.
Please help
Sorry if I post in another topic
dont use Preview version, use regular ARM version
you need Interop Tools from here https://forum.xda-developers.com/showpost.php?p=71000190&postcount=607
enable Developer settings on phone
install certificate, install ARM deppendencies, install Interop Tools ARM version
start Interop Tools, select Interop Unlock
select Restore NDTKSvc.
wait 15 seconds. turn off phone
turn on phone
start Interop Tools, select Interop Unlock
enable Interop/Cap Unlock and New Unlock Cap Engine unlock
hi newbie in here...
i've just updated my old lumia1020 to the latest w10m version 10.0.15254.369
i was hoping that in this version that the static ip option was enabled by default...
i was wrong...
need static ip option badly since my home and office wifi need to manually configure the ip/dns setting before i can use the network...
is there any way to configure static ip without interop unlock
or is it safe to use wp internal to unlock root with my current w10m build on nokia lumia 1020?? i update them using iutool method
hi
can anyone help me? i want to underclock my old lumia 950, after a year i think i picked it up from my drawer , and start to update it , and downloading some apps, it gets too damn hot, it was nearly burning ? did factory reset but nothing changes, installed its rom with pc , again nothing changed, so i want to underclock its processor , so it will be cool in every situation , i think ?
naryhd said:
hi
can anyone help me? i want to underclock my old lumia 950, after a year i think i picked it up from my drawer , and start to update it , and downloading some apps, it gets too damn hot, it was nearly burning [emoji23] did factory reset but nothing changes, installed its rom with pc , again nothing changed, so i want to underclock its processor , so it will be cool in every situation , i think [emoji16]
Click to expand...
Click to collapse
Could be the old battery overheating.
pidjones said:
Could be the old battery overheating.
Click to expand...
Click to collapse
nope its not battery , i changed it and the heat is beginning from cpu chipset (its near the power button)
Do you have a simple tutorial with deleting and replacing tones in alarms? because I am just only using two different alarms.
I know this is really too late to ask nowadays... Thank you!
Interop Tools is a brand new registry editor that works on Windows 10 Mobile, It allows you to View, Browse and Edit of registry entries. Great news is that this tool doesn’t need your device to be interop-unlocked for this. The tool has been developed by Gustave M, who is a well-known Windows enthusiast and developer.
How to Download & Install Interop Tools on Windows 10 Mobile:
1. Download the Interop tools Appx file from attachment, unzip
2. Now all you need to do is to turn on the developer option by going to Settings—>Update & Security–>For Developer–>Select Developer Mode and select “yes” when prompted. This enables side-loading of apps.
You should be now able to install “Interop Tools” by tapping on the Appx that you have downloaded in first step.
3. You should be ready to have some fun, though be careful before editing registry unless you know what you are doing.
4. Once installed, the app appears under installed apps
The tool is not Lumia-specific but seems access to restricted keys is only for Lumias.
Source
http://www.windowscentral.com/interop-tools-windows-10-mobile
edit: if you have problem with newer version, simple uninstall app from storage, restart phone and install again.
Interop Tools Beta 1.7.157.0 (fbl_release(gustavem).160621-0900) changelog:
+ New helper runtime component, all core registry editing functionality have been migrated to registryhelper.winmd, as such, there might be new bugs, especially in the registry browser. Please report them if you find any.
+ WinPRTUtil is now also used in the browser and in registry value deleting operations.
~ Fixed an ux issue with light theme enabled.
~ Fixed an issue where HKD would be incorrectly named in certain areas.
~ Fixed an issue where the tool would incorrectly report the state of offline charging when loading the page.
Click to expand...
Click to collapse
Official download location: http://bit.ly/InteropTools
NOTICE: ARM for mobile, x86/x64 for PC
Now if we could only use a similar method to get an Adblocker on the 950/950XL...
jhoff80 said:
Now if we could only use a similar method to get an Adblocker on the 950/950XL...
Click to expand...
Click to collapse
you cant. this is only for WP8.1 devices with W10M... not for native W10M devices (550, 650, 950, 950XL)... you can install on Lumia 950/950XL and change some registry values but you cant access to MTP to use adblock (change hosts file)
Can this be uninstalled from the phone?
EDIT: nvm. I got it. Disable developer mode, try to open app, get error, uninstall
The file works perfectly in nokia lumia 520 windows 10 mobile build 10586.242
but I have a question
which is the benefit of this application?
I have a nokia lumia 520 with windows 10 mobile build 10586,242
but still not unlocked for use XAP files and appx
so this application can give me those benefits?
I would like to know more about how to install files with this application appx
thank you ... is great news for our lumias
dxdy said:
you cant. this is only for WP8.1 devices with W10M... not for native W10M devices (550, 650, 950, 950XL)... you can install on Lumia 950/950XL and change some registry values but you cant access to MTP to use adblock (change hosts file)
Click to expand...
Click to collapse
Yeah, I know, that's what I meant- This is great progress from the old way of getting access to these things, but what would really be nice is something similar that allowed adblock.
---------- Post added at 04:10 PM ---------- Previous post was at 04:08 PM ----------
DLS123 said:
Can this be uninstalled from the phone?
EDIT: nvm. I got it. Disable developer mode, try to open app, get error, uninstall
Click to expand...
Click to collapse
You can also uninstall from the Storage page in System.
thank you . Awesome Tool
Hi
I tried changing the video resolution (VideoResolution) registry value from 3 to 4. This opens 4k recording resolutions in camera app on my LUMIA 730 dual sim and also the SLOW MOTION option in video recording. But when recording is pressed it shows the device can't save the video. Im new to this, so if anyone can help to find me any turnarounds or is this due to hardware limitations. Thanks
Looks like file explorer. A search button can.t be aded?
Just saying
OP,
You copied all the content from Nokiapoweruser article and gave source link to WindowsCentral. Try to be fair!!
seems to be a nice little tool
but anyone knows what i have to use for sftp accesss as username and passwort when using winscp to connect?
Read this
http://forum.xda-developers.com/windows-10/windows-10-mobile/guide-filesystem-access-sftp-windows-10-t3185766
yes did that, but made a two mistakes figured it out with the dev of the tool, btw he released a new version a few hours ago
https://mega.nz/#!eZNRFRJB!ZszQcU1lAAQhbj14y4E70wIQhbDqWNIvZ0CmCcKHUWY
few bugfixes for th2 branch
finally again full fs access to the public apps folder (had problems with that before with interop unlock)
KNM_THe1 said:
OP,
You copied all the content from Nokiapoweruser article and gave source link to WindowsCentral. Try to be fair!!
Click to expand...
Click to collapse
i not open NPU for months, WC is only WP blog which one i read.... but this one first i see it on one pirate site, but link there lead to WC not NPU
And for those wondering what sort of hacks/tweaks they can do using this prog/tool, there's a thread for that:
http://forum.xda-developers.com/showthread.php?t=2434959&page=41
Has anyone found a key to enable call recording on older phones?
Aj6627 said:
Has anyone found a key to enable call recording on older phones?
Click to expand...
Click to collapse
this not possible via registry.... is already discussed on forum...
The author of Interop Tools is gus33000 aka Gustave M.
Official source links:
https://twitter.com/gus33000/statuses/731780368853041152
https://mega.nz/#F!iZMhSSzI!sGQy4V12ubfvT8Abm2Uo1g
----------
Interop Tools beta 1.2
Changelog:
+ The registry browser value editing dialog now displays the value type and name.
+ The registry browser now correctly handles write errors and will display them to you.
+ The registry editor now saves the history and has a new clear all button to clear all of them.
+ You can now tap a history item in the registry editor and it will fill all fields for you.
~ Improved the Registry browser ui again.
~ The app is now a regular app and not a settings app as there was many requests for this.
~ New icon for the app.
~ Small ui changes on the welcome page.
~ Bug fixes.
Known issues:
* It appears there is an editing issue for the pagingfiles on redstone, where the value is not set, this might be due to the key being reverted automatically. This is under inspection.
? It appears there is an editing issue for the pagingfiles on threshold, where some ";" appears instead of spaces, I can't reproduce it on my side, so if you could confirm or not confirm that to me on twitter that would be great.
Side notes:
* I know I need to add a way to alert from the app of new updates, this is under consideration.
* A small tweak page is in the works, if you have tweak ideas please tweet me them with the page where you found them or yourself if you found it, so I can properly credit peoples.
You may ad poweroff charging. Sure will be a huge succes.
Hi. I am unable to install it. It just closes when tapping from device and confirming install. When in AppDeploy app, I got this error "Error - There is an error in XML document (18, 15)." I'm using Nokia 925 Windows 10 10586.318. Please help what am I missing here?
The process is simple. Put the tool in С:\.
Run as admin. Select one of the cab files-in the folder there should be only one.
Similarly with (http://forum.xda-developers.com/win...lds-update-links-collection-cab-t3234805),but
Result and cabs here : http://4pda.ru/forum/index.php?showtopic=770305&view=findpost&p=54847252
bikercat said:
The process is simple. Put the tool in С:\.
Run as admin. Select one of the cab files-in the folder there should be only one.
Almost the same (http://forum.xda-developers.com/win...lds-update-links-collection-cab-t3234805),but do not need to enter commands.
Tool :http://4pda.ru/forum/dl/post/9040582/App.zip
Cab for HTC One M8
http://4pda.ru/forum/dl/post/904001..._52a3d7175d13787ebcc722099a8b53a216c51804.zip
Cabs for others :
http://4pda.ru/forum/dl/post/9050650/CONT.zip
Result : http://4pda.ru/forum/index.php?showtopic=770305&view=findpost&p=54847252
Click to expand...
Click to collapse
Oh really, that's great
We all had that cab since long time.
bikercat said:
The process is simple. Put the tool in С:\.
Run as admin. Select one of the cab files-in the folder there should be only one.
Almost the same (http://forum.xda-developers.com/win...lds-update-links-collection-cab-t3234805),but do not need to enter commands.
Tool :http://4pda.ru/forum/dl/post/9040582/App.zip
Cab for HTC One M8
http://4pda.ru/forum/dl/post/904001..._52a3d7175d13787ebcc722099a8b53a216c51804.zip
Cabs for others :
http://4pda.ru/forum/dl/post/9050650/CONT.zip
Result : http://4pda.ru/forum/index.php?showtopic=770305&view=findpost&p=54847252
Click to expand...
Click to collapse
Tutorial?
I cant register to that forum. Who can post the microsoft.ms_docking.mainos.cbs_52a3d7175d13787ebcc722099a8b53a216c51804.zip ( 31,51 МБ )
here?
Nevermind, i didit.
augustinionut said:
I cant register to that forum. Who can post the microsoft.ms_docking.mainos.cbs_52a3d7175d13787ebcc722099a8b53a216c51804.zip ( 31,51 МБ )
here?
Nevermind, i didit.
Click to expand...
Click to collapse
upload it to chinese cloud server this time please
bikercat said:
The process is simple. Put the tool in С:\.
Run as admin. Select one of the cab files-in the folder there should be only one.
Almost the same (http://forum.xda-developers.com/win...lds-update-links-collection-cab-t3234805),but do not need to enter commands.
Tool :http://4pda.ru/forum/dl/post/9040582/App.zip
Cab for HTC One M8
http://4pda.ru/forum/dl/post/904001..._52a3d7175d13787ebcc722099a8b53a216c51804.zip
Cabs for others :
http://4pda.ru/forum/dl/post/9050650/CONT.zip
Result : http://4pda.ru/forum/index.php?showtopic=770305&view=findpost&p=54847252
If somebody marry an unsupported phone with the original dock - will let you know !!!
Click to expand...
Click to collapse
will that make it work on any phone (lumia 920) or it'll just make the continuum app run?
Couldn't install it on 640XL. Tried all three cabs, result is the same:
ERROR: 0x8024a110
Command failed. (HRESULT = 0x8024a110)
Can't download cabs
Lumia. Deploy one cab after other. Erase .face extension...
This site can’t be reached
The webpage at http://forum.xda-developers.com/newattachment.php?do=manageattach&p=69536527 might be temporarily down or it may have moved permanently to a new web address.
ERR_CONNECTION_ABORTED
Really xda?
karaki93 said:
will that make it work on any phone (lumia 920) or it'll just make the continuum app run?
Click to expand...
Click to collapse
try Pendrive straight away too
---------- Post added at 03:52 PM ---------- Previous post was at 03:43 PM ----------
never mind you selfish *****
http://download.windowsupdate.com/c..._00d24dcb2decb8d15ecd6dd61493208136e86586.cab
http://download.windowsupdate.com/d..._debf5ea714636f4d4fb323e0fe30c14592f26589.cab
Installing the cabs will surely not be enough for it to work, and I have to say lately all those peoples giving me middle fingers doesn't really encourage me into sharing the other missing part, but as I had really *enough* of all those peoples I'm sharing it anyway, this isn't for those peoples, but only to stop all those fools from asking me the same question again and again and then insulting me everyday.
To get Continuum to work properly after installing the packages you need to do the following:
HKLM\SOFTWARE\Microsoft\Shell\Docking
create a new dword value called EnabledForTest
set it to 1,
reboot and enjoy it running on unsupported cpu types.
lets see how to manage this http://forum.xda-developers.com/win...7-miracast-t3496988/post69539385#post69539385
EDIT: managed.
By the way, to properly install the cabs you need to make sure it matches your current build, if not get back to the correct build or use the correct cab. Otherwise it may not work or break WU with deltas.
gus33000 said:
Installing the cabs will surely not be enough for it to work, and I have to say lately all those peoples giving me middle fingers doesn't really encourage me into sharing the other missing part, but as I had really *enough* of all those peoples I'm sharing it anyway, this isn't for those peoples, but only to stop all those fools from asking me the same question again and again and then insulting me everyday.
To get Continuum to work properly after installing the packages you need to do the following:
HKLM\SOFTWARE\Microsoft\Shell\Docking
create a new dword value called EnabledForTest
set it to 1,
reboot and enjoy it running on unsupported cpu types.
Click to expand...
Click to collapse
Gus, I'm not able to add this EnabledForTest value at this key path, it just won't write. I'm using Interpol Tools 1.8 and already restored NDTKSvc. What I am doing wrong?
Use custompfd.
gus33000 said:
By the way, to properly install the cabs you need to make sure it matches your current build, if not get back to the correct build or use the correct cab. Otherwise it may not work or break WU with deltas.
Click to expand...
Click to collapse
You're absolutely right; this should written on any OP with the tweak that require old .cab deploying.
BTW, as far as I know, MS is not using "binary patching" method; all .cab contains full version of binaries and other files (provisioning etc.). I believe (I don't have enough knowledge) installer API on the phone is checking files(s) checksum.
Do you know the trick (maybe, some registry change) how to bypass that check?
SolariXxX said:
Gus, I'm not able to add this EnabledForTest value at this key path, it just won't write. I'm using Interpol Tools 1.8 and already restored NDTKSvc. What I am doing wrong?
Click to expand...
Click to collapse
Add it using the registry editor, not the browser... It fails because the browser isn't allowed to list. So use the editor. Also, try the newest versions, that version you're using is old.
djtonka said:
try Pendrive straight away too
---------- Post added at 03:52 PM ---------- Previous post was at 03:43 PM ----------
never mind you selfish *****
http://download.windowsupdate.com/c..._00d24dcb2decb8d15ecd6dd61493208136e86586.cab
http://download.windowsupdate.com/d..._debf5ea714636f4d4fb323e0fe30c14592f26589.cab
Click to expand...
Click to collapse
which one is for lumia??or should i have to install both cabs??pretty confusing because @bikercat only gave*one cab which is almost 35mb
1 - Main cab : microsoft.ms_docking.mainos.cbs_debf5ea714636f4d4fb323e0fe30c14592f26589.cab
2 - Update cab : microsoft.ms_docking.mainos.cbsu_00d24dcb2decb8d15ecd6dd61493208136e86586.cab
And those actual cabs for last build on fast ring?