[Windows Phone 8 General] AlvinPhilemon:
I'll try to put this as simple as possible.

PLEASE tell me if I have missed anything or need to add any more information

First, you have Developer Unlock, which put simply, when you submit an app to the store, it gets "signed" with a digital signature. Windows Phone devices will only run applications with that signature. Since if you are developing an app, it is not "signed" so with a Developer Unlock, you are able to run applications without a "signature" on any Windows Phone device but there are limits.

That's where Interop-Unlock comes in. A developer-unlocked device can sideload an app but the app is not able to access the Windows Phone system and Registry. Every app, whether sideloaded or installed from the Windows Phone Store, MUST declare what functions the apps needs to use to function properly. To access certain parts of the system and registry, it needs to declare "ID_CAP_INTEROPSERVICES" in the WMAppManifest.xml. A normal app, for example "Doodle Jump" declares these functions:

<Capability Name="ID_CAP_NETWORKING" />
<Capability Name="ID_CAP_SENSORS" />
<Capability Name="ID_CAP_MEDIALIB" />
<Capability Name="ID_CAP_GAMERSERVICES" />
<Capability Name="ID_CAP_IDENTITY_DEVICE" />

Which is basically the app telling the phone "Hey man, I need to be able to access the internet (ID_CAP_NETWORKING), access your motion sensor (ID_CAP_SENSORS), media library, Xbox Live and your device's identity.

Those declared functions are allowed by the Store and to be sideloaded. However to edit the registry, the app needs the ID_CAP_INTEROPSERVICES declaration in the WMAppManifest.xml. The Store does not allow apps with this declaration to be uploaded by 3rd-party developers. Nor does the device allow the app to deploy with that declaration.

Here's where the problem is. In order to allow the app with the INTEROPSERVICES cap to be deployed, you need to override an entry in the Registry (setting the maximum allowed apps to be deployed to over 300 overrides the INTEROPSERVICES cap.). But in order to override the entry, you need the INTEROPSERVICES cap to edit the registry (chicken-and-egg, anyone?).

This restriction was introduced in the Windows Phone 7.5 update but thankfully, 1st-party and 2nd-party developers are able to upload apps with the INTEROPSERVICES cap declared (1st-party, namely Microsoft and 2nd-party being OEMs). So what we do is find a weakness, or exploit in the app to be able to edit the Registry.

How this was done for Samsung Windows Phone 8 devices was that the Samsung Diagnosis app that was hidden, had a registry editor hidden somewhere within the app. [MENTION=3529492]GoodDayToDie[/MENTION] and -W_O_L_F- found the editor and managed to Interop-Unlock the Samsung ATIV S, which was found to work on other Samsung Windows Phone 8 devices. This does NOT work on other devices as Samsung uses a method to edit the registry that is not found on other devices.

What we are doing now in the Development & Hacking Sub-forum is trying to find exploits in those 1st-party and 2nd-party applications on Windows Phone. We hope to find a way to Interop-Unlock other devices as soon as possible, but only time will tell...