12

iOS 開発と同様に、Windows Phone 8 開発でプライベート API を使用することはできますか?

もちろん、これは公開される予定のアプリ (AppStore/Marketplace) に関するものではありません。しかし、開発者が内部システム関数を呼び出したい非公開プロジェクトのユースケースはたくさんあります。

Windows Phone 8 SDK がインストールされていると、にある Windows Phone 8 エミュレーター イメージをマウントできますC:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Emulation\Images。Windows Phone OS のメイン パーティションでは、Windows\System32 に移動し、Dependency Walker や IDA Pro などのツールを使用してシステム DLL ファイルを調べることができます。

非常に興味深いように思えますが、公開されておらず、文書化されていない関数がたくさんあります。問題は、アプリから、または他の方法でそれらを呼び出すことは可能ですか?

興味深い関数のほんの数例 (他にもたくさんあります):

  • ShellChrome.dll: InvokeStartMenu、InvokeScreenCapture、InvokeVolumeUp、LockDevice、...
  • InputInjection.dll: ApiInjectInitialize、ApiInjectTouchEvent、...
  • ...

LoadLibrary (具体的には LoadLibraryExA) をネイティブの Windows Phone アプリ プロジェクトで何らかの形で動作させ、これらの関数を読み込んで呼び出すことを試みました (ライブラリの読み込みは機能しました)。簡単に言えば、関数を呼び出そうとすると、アクセス違反エラーまたは同様のエラーが発生しました (サンドボックス化された実行環境が原因である可能性があります)。もう 1 つの問題は、関数のシグネチャ (引数) しか推測できないことです。私が使っているツールではそれらを見つけることができません。

4

3 に答える 3

0

プライベート API ? Windows phone で dll ファイルを使用できます。Windows Phone でプライベート SDK を使用しました。Android のように Windows で OS をカスタマイズすることはできないと思います。

于 2013-05-24T12:43:22.123 に答える
0

できません。アプリケーション サンドボックスが API の使用を強制します。つまり、持っていない権限を必要とする API を呼び出そうとするたびに UnauthorizedAccessException が発生します。これは、開発目的で携帯電話のロックを解除するために使用する開発者アカウントと密接に関係しています。

編集:これは、c++ ネイティブ側にも当てはまります。

于 2014-07-30T11:50:29.127 に答える
0

NDA を結んでいるパートナーのみに、いくつかのプライベート API のみを提供していると思います。

http://social.msdn.microsoft.com/forums/wpapps/en-US/4af0e87a-ab4b-4652-891a-f198a32758cf/windows-phone-8-access-to-private-apis

于 2013-11-22T08:16:53.833 に答える