[Windows Phone 7 Development and Hacking] Heathcliff74:
NEW: I created new unlocks for (almost) all Samsung WP7 devices, including 2nd generation devices like Focus S and Omnia W! More info here. Guides will be updated as soon as possible!

In Mango there is a new type of lock: INTEROP-LOCK

Normal WP7 apps are Silverlight or XNA apps. They run managed code. Some apps also use native code (C++), but Microsoft restricts the use of native code to certain selected partners, because native code is more sensitive to errors and need higher care. But there are no real boundaries for running native code on WP7 devices, as I explained here. If your device is AppHub- or ChevronWP7-unlocked, you can run the apps with native code. For example the Version and Language tool from this thread uses native code, but it can run on normal unlocked devices. But there are also apps that need access to drivers on your phone. These apps need the Interop Services capability. This capability is only allowed to software from Microsoft and from OEM's. But many homebrew apps need this capability too, to get higher privileges for tweaking your device. The new Interop Lock means that this capability is locked down. So, even when you have a legit AppHub-unlock or ChevronWP7 Labs unlock, you still can't side-load apps that need higher privileges to run. For example WP7 Root Tools needs this capability to run. But when your device is INTEROP-LOCKED it will show error 0x81030120 when you try to deploy it to your device.

Contable and Marvin_S did research on it and found that the registry setting MaxUnsignedApp is responsible for the INTEROP-LOCK. I did more research and I identified the code that is responsible for this check. In fact, if you have the MaxUnsignedApp value set to 300 or higher, your interop will be unlocked. The value of MaxUnsignedApp is determined by the type of developer-unlock you have. A normal AppHub account will have it set to 10 and a student account will have it set to 3. So a value of 300 or higher is not a realistic value for a normal developer account. It is probably only set to this value for Microsoft employees and OEM developers.

Until now, the only way to do an INTEROP-UNLOCK for MANGO meant that you have to downgrade to NoDo first, then prepare your device by loading provxml files to your device, upgrade to MANGO and then use OEM tools to execute the provxml files and do the necessary unlocks. But that is a lot of work and for some devices not even possible, because there are simply no ROM's available.

So I wanted to allow people with MANGO shipped on their device and using a legit developer unlock, to use WP7 Root Tools and other MANGO-compatible homebrew apps.

I have developed a method to do this. I have a Samsung Omnia 7 and it works on my device. It should also work on Samsung Focus. ATLien68 brought to my attention that it is also possible for LG devices to do an Interop Unlock on Mango. So I created a guide for LG too.

This only works on devices that already have a developer-unlock!

DISCLAIMER

I will not take any responsibility for any damages caused directly or indirectly from using the software-package or the instructions. Read the instructions thoroughly and proceed carefully!

BACKUP

You may want to make a backup of your device in case something goes wrong. This is what I do to make a backup:

1. Download hx4700 Killer's WP7 Backup version 1.6 from this thread. Note that I use version 1.6, not 1.8.

2. Download this archive. It is from xboxmod's WP7 Update Cab Sender thread.

3. Use Zune 4.8 final (4.8.2345.0).

4. Setup-UpdateWP 4.8 beta 3 from the archive.

5. Extract the "Tools" folder from the archive.

6. Setup the Backup tool to reference Zune.exe and the UpdateWP.exe in the extracted Tools-folder.

7. Create your backup. The backup app will allow you to archive any previous backup. Your phone will restart and go in Download-mode. When the backup is finished, the app will tell you to disconnect. Even though your phone says you still can't disconnect, you can safely disconnect the phone and it will restart.

SAMSUNG

WARNING!! The new Samsung Omnia 7 KK2 update will prevent the use of Interop Unlock and WindowBreak! This Samsung Firmware update is accompanied with the 7.10.8107.79 if you update with Zune. Other Samsung devices are probably affected too, but I don't know if the update code for those device is KK2 too. If you are already unlocked, this update will not relock your device. If you want to keep the possibility of Interop Unlock open, then use the method described in this thread to update to 7.10.8107.79 without updating to Samsung KK2!

1. Download the software package Interop Unlock by Heathcliff74 v2.xap.

2. Connect your phone to your desktop computer, running Zune.

3. Check for updates and let all pending updates install.

4. Uninstall the Samsung Diagnosis app.

5. Dial ##634# to install the latest Samsung Diagnosis app.

6. Use any Windows Phone App Deployment tool to install Interop Unlock by Heathcliff74 v2.xap.

7. Run the Samsung Diagnosis app. You should see version 1027, 1122 or 0103 at the top. The version is the compile-date without year. So version 0103 is actually newer than 1122. Versions from before 2010/10/27 do not seem to work. If you have such an old version of the Diagnosis App you need to run the latest Samsung Update (Mango Drivers) from Zune or update manually as described here. After the update you need to perform step 4 and 5 again.

8. In the Diagnosis app dial: *#9908#

9. Select "Heathcliff74 Interop Unlock"

10. Tap "Save", tap "Close" and exit the Diagnosis app. You are now unlocked, but your 3G settings are screwed (side-effect).

11. To repair your 3G settings use one of these six options:

---- 11.1. NEW: This option only works on 1st generation Samsungs. Download "Samsung Repair 3G by Heathcliff74.xap" and run it on your phone. It should work immediately.

---- 11.2. Use the Diagnosis app (thanks to Vintage144 for the tip).

-------- 11.2.1. Open up the Diagnosis app.

-------- 11.2.2. Dial this to enable autoconfigure sim setting: *#94765# (or dial 40*047#3, it's the same - more diagnosis codes here)

-------- 11.2.3. It will ask you to restart the device. Confirm that.

---- 11.3. If your device is not locked to a specific operator, you can use the Samsung Network Profile app (for 1st generation) or Wireless Manager (for 2nd generation)

-------- 11.3.1. Uninstall the Samsung Network Profile / Wireless Manager app.

-------- 11.3.2. Download and install the latest version of the Samsung Network Profile / Wireless Manager app from the Marketplace.

-------- 11.3.3. Open the Samsung Network Profile / Wireless Manager app.

-------- 11.3.4. Select a different Network Operator.

-------- 11.3.5. Now Select your own Network Operator again.

-------- 11.3.6. Exit the Network Profile / Wireless Manager app.

---- 11.4. Use lyriquidperfection's Samsung Tools (probably only works on 1st generation Samsungs).

-------- 11.4.1 Download the Samsung Tools here.

-------- 11.4.2. Deploy the tools to your phone (which is now possible due to Interop-Unlock)

-------- 11.4.3. Start "Samsung Tools"

-------- 11.4.4. Select "Run ADC"

-------- 11.4.5. Tap "Reboot"

---- 11.4. Use WP7 Root Tools for manual repair (I will add an option to repair 3G in the next version, currently only works on 1st generation Samsungs).

-------- 11.5.1. Download WP7 Root Tools here.

-------- 11.5.2. Deploy WP7 Root Tools to your phone (which is now possible due to Interop-Unlock).

-------- 11.5.3. Open WP7 Root Tools.

-------- 11.5.4. In the registry editor navigate to Local Machine\System\AutoDataconfig.

-------- 11.5.5. Set value ConfigurationStatus to 0 and set value RunADC to 1.

-------- 11.5.6. Restart your phone.

---- 11.6. Use TouchXperience Advanced Config Tool 1.4 (thanks to Ludovic B. for the tip, probably only works on 1st generation Samsungs).

-------- 11.6.1. Download Advanced Config Tool here.

-------- 11.6.2. Deploy Advanced Config Tool to your phone (which is now possible due to Interop-Unlock).

-------- 11.6.3. Open Advanced Config Tool.

-------- 11.6.4. Go to "Tweaks" and scroll down.

-------- 11.6.5. Check "Run Auto Data Config".

-------- 11.6.6. Scroll down and tap "Reboot phone".

Resolve Samsung connection problems

Thanks for this info to lulede!!

A lot of Samsung owners have complained here about connection problems. They blamed Interop Unlock, but apparently this has more to do with enabling "Internet Connection Sharing" than with "Interop Unlock". You should be able to recover the connection, apply this:

1. Start Diagnosis App> *#32489#

2. Tap "Back" 2 times to go back to Phone Control

3. Choose: [7] Network Control

4. Choose: [1] GFC

5. Choose: [3] Setting Cancellation

Wait for it to say success, then reboot.

LG

1. Install the MFG app by dialing: ##634#

2. Open the MFG app. The password is: appmfg#*#

3. Go to Engineer Menu -> Other Settings -> Edit Registry

4. Set your ROOT PATH to "HKEY_LOCAL_MACHINE"

5. Set your input path to "\Comm\Security\LVMod"

6. Set your input key to "DeveloperUnlockState" and set to DWORD.

7. Leave input data box empty and tap "SET".

8. The output should be 0.

9. Now enter "1" in the inputbox and tap "SET".

10. The output should be 1.

11. Set your input path to "\Software\Microsoft\DeviceReg"

12. Set your input key to "PortalUrlProd" and set to DWORD.

13. Clear the input data box and hit "SET".

14. Output result should be "0".

15. Set your input key to "PortalUrlInt" and set to DWORD.

13. Clear the input data box and hit "SET".

14. Output result should be "0".

15. Set your input path to "\Software\Microsoft\DeviceReg\Install"

16. Set your input key to "MaxUnsignedApp" and set to DWORD.

17. Clear the input data box and hit "SET".

18. The output should be 0.

19. Now enter "2147483647" in the inputbox and tap "SET".

20. Output result should be "2147483647".

HTC

I didn't do this hack for HTC's all by myself. This hack is a joint collaboration of XDA members. A valuable part of this hack was done by Kounadisk and GoodDayToDie. Thanks to them!

Also thanks to CeesHeim for arranging a hand-on HTC device for me to test with.

This hack need the HTC Connection Setup app. HTC Arrive can't run the HTC Connection Setup app. Therefore this hack will not work on HTC Arrive. Verizon Wireless Trophy users should follow slightly different steps. Scroll down for instructions that are specifically meant for Verizon Wireless Trophy.

Developer unlock can be either AppHub or Chevron Labs.

Important note: From what I understand, HTC has released *two* OEM updates after Mango. The first one was released together with Mango and included the first Mango drivers from HTC. I will call those the HTC Mango Drivers v1. The second one is being rolled out now and is by other people referred to as the "tethering update". This update also contains updated drivers. I will call those the HTC Mango Drivers v2. If you have a 1st generation HTC device, you may or may not have installed the HTC Mango Drivers v1 or v2. If you are on Mango with Interop Lock, you may need this hack to perform Interop Unlock. The HTC Mango drivers have extra protection which will reject the configuration settings for Interop Unlock. The current hack for HTC defeats the extra protection in HTC Mango Drivers v1. But in HTC Mango Drivers v2 there is an even more advanced protection, which is a breaking change that causes the Interop Unlock to fail. The second generation HTC devices (HTC Radar / HTC Titan) come with the HTC Mango Drivers v2 preloaded. So currently only First generation HTC Mango devices can only be Interop Unlocked if there are no HTC Mango updates or only HTC Mango Drivers v1. So the first generation HTC devices that also have the HTC Mango Drivers v2 and the second generation HTC devices can currently not be Interop Unlocked. I am looking for an exploit in the HTC Mango Drivers v2. If you have a first generation HTC device and you have the HTC Mango Drivers v2 and you still have a backup from before that last update, you can restore that backup and apply Interop Unlock. You can update to the latest drivers again and preserve the Interop Unlock.

There are also users with 1st generation HTC devices only HTC Mango Drivers v1, who report that this is not working. This can be fixed. These people should read the notes at the end of this guide!

1. Make sure you have a backup of your device (scroll up for instructions)

2. Make sure you hava a backup of your backup (No kidding! Zune may overwrite the backup you made. Here's the backup: %LocalAppData%\Microsoft\Windows Phone Update)

3. Download this attachment to your PC: HTC Interop Unlock.xap

4. Connect your device to a PC running Zune and install the xap-file using any xap-deploy-tool. You don't need to start the app. If it starts automatically, you can close it right away.

5. Download and install HTC Connection Setup on your HTC device (if you don't have it already)

6. Start HTC Connection Setup.

7. Tap the three dots in the down-right corner of your screen and tap "manual select".

8. Tap on the country. This will open a list of countries you can select.

9. In the country-list scroll to "Interop Unlock" and select it.

10. Tap on the round ok-button at the bottom of your screen and wait until connection setup is finished.

11. Tap "Done" to exit the app.

12. Now open "Connection Setup" again. This is to prevent Connection Setup opening when you restart your device.

13. It will show you your current operator.

14. Tap on the round ok-button at the bottom of your screen and wait until connection setup is finished again.

15. Tap "Done" to exit the app.

Note for people who don't have this working: I changed the order of the steps in the guide a little bit. If you have attempted to deploy other hacks using HTC Connection Setup (GoodDayToDie version for Interop Unlock or something else) it could be that the files that were deployed are blocking this new hack. You should try to uninstall HTC Connection Setup, restart your phone and then follow the the steps in the guide again (with changed order). Hope that works for you.

Steps for Verizon Wireless Trophy users (thanks to LiFePo4 for modified instructions):

1. Make sure you have a backup of your device (scroll up for instructions)

2. Make sure you have a backup of your backup (No kidding! Zune may overwrite the backup you made. Here's the backup: %LocalAppData%\Microsoft\Windows Phone Update)

3. Download this attachment to your PC: HTC Interop Unlock.xap

4. Connect your device to a PC running Zune and install the xap-file using any xap-deploy-tool. You don't need to start the app. If it starts automatically, you can close it right away.

5. Download and install HTC Connection Setup on your HTC device (if you don't have it already)

6. Go to Settings / Cellular and set Mode to GSM. Exit back to main screen and wait for data connection to go away (there will be a little box with the crossed circle in the upper left where connection status is shown).

7. Start HTC Connection Setup.

8. Tap the three dots in the down-right corner of your screen and tap "manual select".

9. Tap on the country. This will open a list of countries you can select.

10. In the country-list scroll to "Interop Unlock" and select it.

11. Tap on the round ok-button at the bottom of your screen and wait until connection setup is finished.

12. Make sure you perform step 12 and 13 directly after each other! Tap "Done" to exit the app. This will take you back to the applist.

13. Quickly Uninstall HTC Connection Setup and never allow it to run again.

14. Power off and back on phone.

15. Go back to Settings / Cellular and set Mode to CDMA. Exit to main screen and verify 3G is there.

16. Go back to Settings / Cellular and set Mode to Global. Exit.

17. Uninstall the HTC Interop Unlock.xap

This method does not loose 3G (HTC connection setup really does no good with the CDMA network so it used only once for Interop Unlock; if it ever runs a second time it screws up the CDMA data connection).

Note to people who have trouble with their HTC Connection Setup restarting automatically on every reboot of the device, or having problems with their data connection:

Normally the Connection Setup should be restored automatically with this hack. But if something goes wrong, it is possible that your HTC Connection Setup is left in a unservicable state. I that case follow these steps:

1. Download and deploy the attachment: Repair HTC CS.xap

2. Run Connection Setup.

3. Apply settings of your operator.

4. Uninstall Repair HTC CS.

That should do it.

Note to everybody: Please report success and failure, including all device specs and abnormalities (errors etc)! I want to improve the guide as much as possible!

Have fun with homebrew now! :D

Heathcliff74