Подтвердить что ты не робот

Windows Phone 8 - частные API?

Можно ли использовать частные API в разработке Windows Phone 8, аналогичные разработке iOS?

Конечно, это НЕ о том, что приложения будут опубликованы (AppStore/Marketplace). Но есть много вариантов использования для непубличных проектов, где разработчик хочет вызвать внутренние системные функции.

С установленным Windows Phone 8 SDK можно смонтировать образ эмулятора Windows Phone 8 Emulator, расположенный в папке "C:\Program Files (x86)\Microsoft SDK\Windows Phone\v8.0\Emulation\Images". В главном разделе Windows Phone OS можно перейти к Windows\System32 и проверить системные DLL файлы с помощью инструмента Dependency Walker или IDA Pro.

Есть много функций, которые звучат очень интересно, но которые не доступны для публики и, следовательно, не документируются. Вопрос в том, можно ли их как-то вызвать из приложения или другими способами?

Несколько примеров интересных функций (их намного больше):

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

Я попытался заставить LoadLibrary (в частности, LoadLibraryExA) работать как-то в собственном проекте Windows Phone App, а также загружать и вызывать эти функции (загрузка библиотеки работала). Короче говоря, я закончил с ошибками нарушения прав доступа или аналогичными при попытке вызвать функции (возможно, из изолированной среды исполнения). Другая проблема заключается в том, что я могу только угадать сигнатуры (аргументы) функций. Я не могу найти их с помощью инструментов, которые я использую.

4b9b3361

Ответ 1

Частный api? Мы можем использовать DLL файлы в телефоне Windows. Я использовал частный sdk в телефоне Windows. Я не думаю, что окна позволят нам настроить ОС так же, как Android, так что Invoke volume up..etc не будет работать через private api.

Ответ 3

Вы не можете, песочница приложений будет обеспечивать использование API. Это означает, что вы получите UnauthorizedAccessException каждый раз, когда пытаетесь сделать вызов api, требующий прав, которых у вас нет. Это тесно связано с учетной записью разработчика, которую вы используете для разблокировки телефона для целей разработки.

EDIT: Это также верно для родной стороны С++.