Hallo liebe Forengemeinde,

Zunächst: Das ist ein Hack. D.h. ich übernehme keine Garantie dass es klappt, und ich übernehme auch keine Haftung für eventuell entstandene Schäden.
Außerdem hab ich diese Methode weder erfunden, noch den ganzen Code selbst geschrieben. Quellen stehen unten.


Die Anleitung ist für Programmierer mit Genunlocken WP8 oder WP8.1 (WP10 ungetestet) Handys.

Wie vielleicht einige von euch wissen, bin ich vor allem auf dem Samsung ATIV S unterwegs. Das war auch das erste WP8-Handy das geunlockt wurde, und das aus gutem Grund.
Samsung hat in seiner Diagnosis-App eine Bibliothek verwendet, die es erlaubt sog. Remote-Procedure-Call (RPC) Aufrufe an einen Systemprozess von Samsug zu machen, der mit erhöhten Rechten läuft.
Warum hierbei keine Authentifizierung oder Absicherung vorhanden ist, wissen nur die Entwickler von Samsung.
Jedenfalls gelang es einigen Hackern von XDA und auch mir besagte Bibliothek aus dem Handy zu extrahieren und in eigenen Projekten zu verwenden.
Die App braucht jedoch ID_CAP_INTEROPSERVICES Rechte.

Um an die Dateien zu kommen sucht man entweder auf XDA oder extrahiert sie aus dem Handy:
Die Datei C:\Windows\system32\WPDiag.xap (Full-FS-Access-HAck erforderlich) wird auf den PC kopiert und als Archiv entpackt.
Dort finden sich dann die Dateien RPCComponent.dll und RPCComponent.winmd.
Diese werden in einen sinnvollen Ordner kopiert.

In Visual Studio wird dem Projekt dann ein Verweis auf die Winmd-Datei hinzugefügt.
Anschließend muss das Manifest bearbeitet werden:

XML Code (WMAppManifest.xml)
Code:
<Capabilities>
    <Capability Name="ID_CAP_INTEROPSERVICES"/>
</Capabilities>
und

Code:
<ActivatableClasses>
    <InProcessServer>
        <Path>RPCComponent.dll</Path>
        <ActivatableClass ActivatableClassId="RPCComponent.CRPCComponent" ThreadingModel="both" />
    </InProcessServer>
</ActivatableClasses>
Anschließend kann die Bibliothek in C# genutzt werden:

C# Code
Code:
using RPCComponent;
CRPCComponent.Initialize();
CRPCComponent.Registry_SetString(... // Was auch immer
Ich hoffe diese kleine Anleitung hat dem ein oder anderen geholfen!

Quellen:
http://forum.xda-developers.com/showthread.php?t=2435673
https://msdn.microsoft.com/en-us/lib.../br211413.aspx