Отладка для windows phone

Отладка для windows phone

Благодаря программе Windows Phone Internals стала возможна разблокировка загрузчика на смартфонах Nokia/Microsoft Lumia с Windows Phone 8 и новее.

2.9.7393.18819 и ниже на устройствах с загрузчиком Spec A требуют дополнительный FFU от 50 серии. 2.9.7418.37134 и выше — пока неизвестно.

процессоры Snapdragon S4, 400 MSM8230AB

Модели Lumia с данным загрузчиком:

  • 810 (на 8.0 не разблокируется — обновите до 8.1 этими файлами и отпишитесь о результате)
  • большинство 20 серии: 520, 521, 525, 526, 620, 625, 720, 820, 822, 920, 925, 928, 1020/909, 1320

Процесс разблокировки:

  1. Качаем WPInternals последней финальной версии (с оф. сайта, а не тестовую из телеги), на момент написания это 2.8;
  2. Качаем WDRT (DL) / Nokia Care Suite (DL) (он установит драйвера вашего телефона);
  3. Если ваш телефон на версии ОС ниже, чем 8.10.14219.341, крайне рекомендуется обновить через OTC Updater с фиксом.
    Это сделает телефон как совместимым с бо́льшим числом приложений, так и готовым к обновлению до Windows 10 Mobile. Также на некоторых моделях может слететь разблокировка при обновлении ОС (например на 1020), либо при наличии рута обновление может не установиться (например на 520) ;
  4. В папке WPInternals создаём папку Loaders, туда кидаем файлы из архива:
    • Для большинства устройств: Hex_loader.zip ( 1,18 МБ )

      Для 925 : lumiafirmware, Lumia_925_hex.zip ( 175,68 КБ )

    • Для 822 : Lumia_822_hex.zip ( 4,97 КБ )

  5. В папке WPInternals создаём папку SBL3, туда кидаем файлы из архива:
    • SBL3_NoBuggy62x.zip ( 1,07 МБ )

  6. Берём файл прошивки (FFU) в одном из следующих мест:
    • вкладка Download в WPInternals;
    • lumiafirmware (ищем по Product code);
    • если ранее прошивали с помощью WDRT — C:\ProgramData\Microsoft\Packages\Products;
    • Сборник официальных прошивок.

  7. Запускаем WPInternals, заходим в Unlock bootloader, указываем по очереди нужные файлы:
    1. FFU;
    2. Loader (папку, нужный файл программа выберет сама);
    3. SBL3 (для 52x/62x/720/1320 от 520, для 928 от 920/925).

  8. Жмём кнопку continue, ждём и радуемся. Даём ОС полностью загрузиться хотя бы раз.
  9. Если нужна установка приложений на WP8.x, получаем рут или интероп (см. Неофициальные разблокировки).

Оригинальная инструкция от v1p3rrrrr, на основе которой написана эта

процессоры Snapdragon 2xx, 4xx (кроме MSM8230AB ), 8xx

Модели Lumia с данным загрузчиком:

  • 1520, 929/Icon
  • вся 30 серия: 430, 435, 530, 532, 535 ( см. Баги, п. 5 ) , 630, 635, 636, 638, 730, 735, 830, 930
  • вся 40 серия: 540, 640, 640 XL
  • вся 50 серия: 550, 650 ( см. Баги, п. 8 ) , 950, 950 XL

Процесс разблокировки:

    1. Драйвера для прошивки
      Возможно, скачаются Виндой автоматически, но лучше поставить WDRT (DL) / Nokia Care Suite (DL) для уверенности.

  1. Прошивка вашего телефона в формате FFU
    Источники:
    • вкладка Download в самом WPInternals
    • lumiafirmware
      Product code смотрим в WPInternals, вкладка Info.
      Для 50 серии берём прошивку с поддерживаемой версией ОС: 10.0.10586.107/318/494.
    • Если ранее прошивали аппарат через WDRT, можно взять сохранившуюся прошивку по пути: C:\ProgramData\Microsoft\Packages\Products.
      Минус — если у вас 50 серия, может быть неподдерживаемая версия ОС (тогда качаем поддерживаемую с lumiafirmware).
    • Сборник официальных прошивок

  2. EDE-файл
    Источники:
    • вкладка Download в самом WPInternals (должно найти emergency-files, если не нашло — см. ниже)
    • lumiafirmware
    • protobetatest / Emergency-protobetatest.com.7z ( 42,46 МБ )

      • Редактор реестра CustomPFD 0003 от Dinopena
      • Файл-менеджер Pocket File Manager v4.4 ROOT от spavlin
      • Файл-менеджер Файлы (Microsoft) от spavlin
      • Сделать бэкап: вкладка Backup;
      • Развернуть (восстановить) бэкап: вкладка Flash — Flash Custom ROM;
      • На телефоне, где разворачивается бэкап, должна стоять прошивка того же региона , на котором был сделан бэкап — иначе ОС может не запуститься. Если регион прошивки другой, скачайте с lumiafirmware прошивку нужного региона (файл .ffu) и прошейте её (Flash — Flash original FFU) перед восстановлением бэкапа;
      • Кастомные прошивки (бэкапы модифицированной и/или неофициально обновлённой прошивки) ищите на XDA в разделах WP8.x, W10M. Не забывайте про регион, часто в теме прошивки есть информация по региону автора.
      • Windows 10 (полноценная);
      • Windows RT;
      • Android для 52x, 620, 720 (не работает: SIM, камера, акселерометр, GPS, встроенный микрофон) .
      • Nokia Care Suite (DL) + инструкция (только для 810/x20);
      • WDRT + патч EXE, позволяющий шить без сети (DL)
        • Если WDRT не ставится: архив установленной программы (DL) + драйвера от Care Suite;
        • Если прошивка не скачана, поместить все её файлы в папку C:\ProgramData\Microsoft\Packages\Products\RM-*, где * — ваш RM;

      • thor2 (лежит в папке с WDRT) +
        • прошивка в режиме vpl или uefiflash (папку в том месте можно не создавать, можно сразу вводить команду thor2; а если и создавать, то лучше со своим RM для совместимости с WDRT) ;
        • восстановление устройств на Spec A из emergency-режима (QHSUSB_DLOAD/QHSUSB_BULK) ;
        • примеры команд emergency-режима для Spec A и Spec B ;
        • различные способы из темы Инструкция по перепрошивке убитых Microsoft Lumia девайсов.

      Сообщение отредактировал 4erver — 15.03.21, 13:58

      Погружаемся в Windows 10 Mobile. Как писать и отлаживать программы для новой ОС

      Содержание статьи

      Есть мнение, что в реальной жизни смартфоны с ОС от Microsoft встречаются так же часто, как люди с отчеством «Артёмович». Странная (мягко говоря) политика «Корпорации зла» в отношении седьмого и восьмого семейств мобильной операционной системы отвратила множество пользователей от экспериментов с «окошками» для смартфонов, и сейчас корпорация всерьез взялась за исправление своего имиджа в этой пользовательской нише. Как подпольный фанат Microsoft я надеюсь, что у них все получится — «десятка» шагает по планете, ее главный козырь — одно ядро для всех платформ, и поэтому у нее есть все шансы перетянуть на себя хорошую часть мобильного рынка. А как программист я с удовольствием сделаю для тебя вводную статью по разработке под эту мобильную ось, чтобы ты всегда был готов к росту ее популярности :).

      Обзор архитектуры

      Благодаря общему ядру и системе выполнения приложений UWP однажды написанное приложение будет работать на всех девайсах под управлением Windows 10. В этот диапазон входят:

      • настольные компьютеры;
      • серверные системы — ОС Windows Server 2016;
      • ноутбуки — MS Surface Book;
      • планшеты — MS Surface Pro;
      • смартфоны — Lumia;
      • игровые приставки — Xbox One;
      • очки дополненной реальности — MS HoloLens;
      • настенные планшеты — MS Surface Hub;
      • умные часы — MS Band 2.

      Список внушительный. Кроме того, UWP не ограничивается только исполнением прикладных программ, также она на ядерном уровне поддерживает работу драйверов. Это позволяет создавать драйверы, которые функционируют на различных устройствах, при условии, что конкретный компонент, для которого предназначен данный драйвер, один и тот же.

      UWP поддерживает драйверы как уровня ядра, так и пользовательского уровня. Подсистема включает интерфейсы драйверов устройств (Device Driver Interface — DDI), из числа которых драйвер для UWP может использовать.

      Но это все не избавляет разработчика от подгонки интерфейса под определенные платформы и разрешения экрана. В каких-то особенных случаях, возможно, это и не понадобится.

      Инструменты разработчика

      Для написания, отладки, развертывания и тестирования приложений под Windows 10 Mobile тебе понадобится Visual Studio 2015 (кто бы сомневался). Этим летом вышел третий апдейт. Категорически рекомендую! Основной его багфикс — это уменьшенное потребление памяти по сравнению со вторым апдейтом.

      Также тебе понадобится Windows 10 Anniversary Update SDK: он включает все необходимые инструменты для разработки приложений под весь парк устройств, работающих на Windows 10. Если же используется VS 2015 с третьим обновлением, тогда в нее уже входит новейший SDK.

      Одно из главных новшеств — это чернила Windows (Windows Ink). С помощью этого API можно двумя строчками кода добавить поддержку пера. Для этого существуют два объекта управления: InkCanvas и InkToolbar.

      Новый Cortana API упрощает реализацию управления голосом. Компонент Cortana Actions в новом API позволяет создавать новые фразы/выражения.

      Биометрическая аутентификация Windows Hello теперь стала доступна веб-разработчикам в браузере Edge.

      Средство для моделирования пользовательских интерфейсов Blend for Visual Studio 2015 предоставляет расширенные возможности построения интерфейса по сравнению с VS. С его помощью на языке XAML можно создавать макеты всех поддерживаемых приложений: прикладных, веб, универсальных, мобильных и так далее. Также он содержит конструкторы для дополнительных задач, среди них создание анимации и управление поведением элементов.

      Способы создания приложений для Windows 10 Mobile

      Основной способ создания приложений для смартфонов с Windows 10 Mobile — это разработка универсальных (UWP) приложений (свиток Visual C# → Windows → Universal мастеры создания проекта).

      Однако он не единственный. Как ты знаешь, в Visual Studio 2015 встроен Xamarin, с его помощью тоже можно создавать приложения для Windows 10 Mobile, одновременно для Android и iOS, меняя интерфейс и оставляя программную логику на C# (Visual C# → Cross-Platform).

      Кроме языка Visual C#, равнозначно может быть выбран Visual Basic или Visual C++. VS 2015 позволяет создавать универсальные приложения с помощью JavaScript (JavaScript → Windows → Универсальные приложения). Их также можно развернуть на устройстве с Windows 10 Mobile.

      Инструменты для работы с унаследованными проектами

      За долгую историю операционной системы Windows для нее было создано колоссальное количество самых разных приложений. С выходом Windows 8 и WinRT (а позже Windows 10 и UWP) старые классические приложения остались в прошлом, поскольку только в настольных Win 8 и Win 10 поддерживаются классические Win32-, COM-, .NET-приложения. От этого в Microsoft стало грустно. Но ребята смекнули, что могут разработать конвертер, который будет преобразовывать старые приложения для новой продвинутой UWP-подсистемы. Из этого родился Desktop App Converter.

      Скачать его можно отсюда. Текущее состояние продукта — предварительная версия. Уже сейчас он позволяет преобразовывать классические приложения, написанные для Win32 и .NET 4.6.1, в приложения для платформы UWP.

      Преобразованное приложение сохраняет функциональность предка плюс обретает возможности UWP-приложений: удобную установку, обновление, удаление. Также оно получает другие средства современных Windows-программ: push-уведомления, живые плитки, способность выполняться в качестве фоновой задачи, широкий диапазон контрактов. Одна из самых привлекательных возможностей — это продажа унаследованных приложений в Windows Store.

      Desktop App Converter представляет собой приложение с интерфейсом командной строки. На входе оно получает: путь к дистрибутиву приложения, которое планируется преобразовать, путь к файлу-результату и путь к файлу — образу системы. Последний будет использован для чистой установки конвертируемой программы.

      На выходе Desktop App Converter выдает каталог со всем установленным при инсталляции стаффом и два файла: манифест и файл регистрации приложения. После этого с помощью другой тулзы командной строки из образованного контента создается установочный файл UWP-приложения AppX. Затем это приложение можно установить в операционку и пользоваться им, как любым другим универсальным приложением, в том числе на Windows 10 Mobile.

      После этого парни из Microsoft подумали: для iOS есть множество крутых мобильных приложений, было бы неплохо дать разработчикам возможность запилить их под нашу мобильную ось. Так появился проект с открытым исходным кодом Windows Bridge for iOS.

      Преобразование Xcode-проекта выполняется в два шага. Сначала надо добавить подсветку синтаксиса языка Objective-C в Visual Studio: установить расширение objc-syntax-highlighting.vsix из папки winobjc\bin. Затем с помощью утилиты командной строки vsimporter.exe надо преобразовать проект на Xcode в проект на VS. После этого полученный sln-файл можно открыть в студии, где синтаксис Objective-C будет подсвечен. Можешь построить и запустить приложение, оно будет выполняться так же, как все другие Windows-программы.

      VS с подсветкой синтаксиса Objective-C

      Xakep #213. FUCK UAC

      Разрази меня гром, как это удивительно — видеть в Visual Studio корректно подсвеченный код Objective-C!

      Для компиляции кода Obj-C используется свободный компилятор Clang. Поскольку на выходе получается стандартное UWP-приложение, его можно запустить на мобильном устройстве в среде Windows 10 Mobile. В одной программе может быть код на C++ и на Obj-C.

      Вывод OpenGL на эмуляторе смартфона Windows 10 Mobile

      Если у тебя есть проект для прошлой версии Windows Phone, то есть 8.1 (или 8.0), то, когда ты его откроешь в VS 2015, студия автоматически обновит проект, чтобы он соответствовал требованиям универсального приложения Windows (UWP). Будет преобразована не только разметка пользовательского интерфейса на XAML, но и вместе с ней программная логика на JS/C++/C#/VB. Если в коде были вызовы подсистемы WinRT, тогда они будут преобразованы в вызовы UWP.

      Есть еще распространенный тип приложений — игры. iOS и Android визуализируют посредством низкоуровневого интерфейса OpenGL. С другой стороны, на Windows 10 Mobile для вывода изображения в играх используется DirectX 11. Получается несовместимость. Но есть решение — открытый проект ANGLE. ANGLE (Almost Native Graphics Layer Engine) — движок почти нативного графического слоя — позволяет пользователям Windows бесшовно запускать OpenGL ES приложения на аппаратуре, работающей с DirectX 11. Это достигается путем преобразования вызовов с OpenGL ES API на DirectX 11 API. ANGLE полностью поддерживает следующие три типа приложений:

      • универсальные приложения для Windows 10 (Universal Windows apps);
      • приложения для Windows 8.1 и Windows Phone 8.1;
      • классические приложения для рабочего стола Windows (Windows desktop applications).

      Более подробно вопрос рассматривается в моей книге «Волшебство момента вращения» (опять ты книгу свою пиаришь! Ну лаадно, заслужил. — Прим. ред.).

      Подключение смартфона

      По умолчанию устройство подключается в режиме «Только зарядка», поэтому в параметрах надо переключить на режим передачи данных. Также этот вопрос появится в момент подключения девайса к ПК. В отличие от седьмой версии мобильной системы сейчас для передачи данных не нужна посредническая программа Zune, смартфон появляется в системе как дополнительное устройство, и навигация вместе с передачей данных доступна с помощью проводника. Кроме того, в параметрах смартфона в меню «Обновление и безопасность» в подменю «Для разработчика» надо установить «Режим разработчика», который позволяет запускать на смартфоне любые приложения, а не только из Windows Store.

      Режим разработчика

      В Windows 10 есть утилита «Диспетчер телефонов». С ее помощью можно посмотреть состояние устройства: степень зарядки аккумулятора, сколько места занимают определенные коллекции данных (фото, видео), импортировать фото/видео и так далее.

      Диспетчер телефонов

      Если сейчас из студии попытаться запустить приложение, то тебя ждет неминуемая трабла. Дело в том, что требуется сервис IpOverUsbSrc. От имени администратора открой консоль и введи туда команду net start IpOverUsbSvc .

      Консоль с выполненной командой

      Сервис запустится, и ты получишь возможность развертывать приложения на своем смартфоне прямо из студии по USB.

      Реальный пример

      Теперь, когда у нас есть реальный девайс, можно поиграть с разными датчиками, с которыми было или невозможно, или затруднительно работать на симуляторе. Однако замечу, что для WP и/или WM создан крутой симулятор, надо только оперативы побольше, чтобы он шустро бегал. Между тем с реальным устройством и реальными данными иметь дело удобнее и лучше.

      По сравнению с другими гаджетами смартфоны от Microsoft для меня интересны благодаря двум компонентам: это большой набор датчиков вместе с соответствующими API и либа Imaging SDK, с помощью которой можно быстро делать впечатляющие эффекты к изображениям и видео. При обработке изображений используются возможности GPU, поэтому процессинг видеопотока происходит на лету. Как первый, так и второй компонент унаследованы от Nokia.

      Датчики

      API для работы с датчиками раньше носил имя SensorCore, но с выходом Windows 10 был помечен как устаревший и теперь, после обновления, входит в пространство имен Windows.Devices.Sensors платформы UWP. Датчики используются для отслеживания физической активности и перемещений пользователя смартфона.

      Всего в Windows 10 Mobile поддерживается 12 сенсоров:

      • акселерометр;
      • датчик действий;
      • высотомер;
      • барометр;
      • компас;
      • гигрометр;
      • инклинометр;
      • датчик света;
      • датчик положения в пространстве;
      • шагомер;
      • бесконтактный датчик;
      • датчик простого положения в пространстве.

      Между прочим, не каждая модель смартфонов обладает всеми этими сенсорами, например у меня в телефоне отсутствует компас.

      Описание работы с каждым датчиком можно выделить в отдельный разговор, поэтому сегодня мы рассмотрим только один сенсор — датчик действия. Во включенном состоянии он способен определить действия, которые выполняет пользователь. В частности, этот датчик используется в фитнес-приложениях, он позволяет контролировать, чем занимается юзер: стоит, идет или едет на автобусе вместо того, чтобы пробежать это расстояние. Yurembo на себе протестировал гаджет: действия определяются без сбоев.

      Сенсор активности так же, как и другие датчики, работает в фоновом потоке и сохраняет данные за прошедшие десять дней активности или бездействия :). Его можно отключить в выпадающем сверху экрана меню (вызывается проведением пальца сверху вниз), деактивировав значок «Местонахождение».

      Выключение датчика действия

      Чтобы проверить работу датчика, создай новое UWP-приложение, в качестве заготовки выбери Blank App. Она одна имеется в числе визуальных приложений, другие можешь скачать, прямо не выходя из мастера создания проекта: «В сети → Шаблоны → Visual C#».

      Придай форме альбомный вид и помести на нее шесть компонентов TextBox и кнопку (см. рис. ниже).

      Имена первых трех текстовых меток не имеют значения, а те, куда будут выводиться данные, назовем (сверху вниз): valueActivity, valueConf, valueTimeStamp. Создай обработчик нажатия кнопки и перейди в C#-код. Добавим два пространства имен:

      В первом содержатся классы для перечисления устройств. В нашем случае оно нужно, чтобы обнаруживать датчик и сообщать программе о его состоянии. Как я говорил, не во всех моделях присутствуют все сенсоры.

      Во втором пространстве имен находятся классы всех поддерживаемых датчиков.

      Далее нам надо создать объект GUID устройства. В класс MainPage добавь такую строчку:

      Параметр конструктора класса Guid является строкой с заданным значением Guid и представляет собой идентификатор класса устройства, то есть каждый класс устройства имеет строго заданный Guid, по которому система определяет тип девайса.

      В обработчике события нажатия кнопки первым делом нам надо получить информацию о датчике активности, выяснить, присутствует ли он в данном смартфоне:

      Так мы инициализируем объект класса DeviceAccessInformation на основе идентификатора класса устройства, как мы обсуждали выше, и сохраняем в переменную deviceAccessInfo.

      Далее проверяем статус доступа к устройству:

      При наилучшем раскладе статус имеет значение Allowed (на что мы, собственно, надеемся, поскольку иначе дальнейшее выполнение бессмысленно), то есть доступ разрешен. Статус устройства может иметь еще три значения:

      • Unspecified — доступ не определен;
      • DeniedByUser — запрещено пользователем;
      • DeniedBySystem — запрещено системой.

      В случае успеха мы создаем объект класса ActivitySensor, который представляет датчик активности. Делаем это через асинхронный вызов метода GetDefaultAsync класса:

      Проверяем значение переменной activitySensor на равенство null и в случае отрицательного результата получаем текущие показания счетчика, сохраняя их в переменную класса ActivitySensorReading, которую впоследствии можно распарсить:

      Проверяем эту переменную, чтобы она не была равна null, извлекаем из нее значения и помещаем их в соответствующие текстовые поля:

      Датчик способен определить семь активностей плюс одно неопределенное:

      • Idle — девайс находится в состоянии бездействия, лежит на столе;
      • Stationary — в неподвижном состоянии;
      • Fidgeting — девайс фиксирует слабое движение;
      • Walking — во время пешей ходьбы, то есть одна нога всегда соприкасается с поверхностью;
      • Running — состояние бега, то есть состояние полета, когда обе ноги во время шага находятся в воздухе;
      • InVehicle — поездка на наземном транспорте (автомобиле, автобусе, трамвае. );
      • Biking — езда на велосипеде.

      Существует две степени доверенности (Confidence): Low — низкая и High — высокая.

      Timestamp — временная отметка, когда были получены данные. Значение надо привести к строковому виду. В данном случае метод ToString принимает параметр ?u? , то есть преобразует объект DateTimeOffset в формат yyyy-MM-dd HH:mm:ssZ .

      Для получения истории используется метод GetSystemHistoryAsync класса ActivitySensor. В качестве параметра метод получает временную метку, момент, за который надо получить историю, или два параметра: метку плюс продолжительность, тогда возвращаются данные за указанный период.

      Объект класса ActivitySensor имеет событие ReadingChanged, которое возникает всякий раз, когда датчик посылает данные об изменении действий, выполняемых юзером.

      Чтобы следить за состоянием датчика в фоновом потоке, надо зарегистрировать фоновую задачу. Когда слежение станет не нужно, надо отменить регистрацию.

      Запуск

      Если сейчас запустить приложение, то внезапно окажется, что оно не работает. Отладка показывает, что во время первой проверки состояние доступа к девайсу не определено (Unspecified). Чтобы сообщить Windows 10 Mobile, что твое приложение хочет получить доступ к датчику активности, тебе надо написать об этом в манифесте. Открой файл Package.appxmanifest в XML-редакторе, пролистай содержимое до области, ограниченной тегами , и добавь туда строчку

      После этого можешь развертывать приложение, все будет работать, как надо.

      Скриншот работающего на смарте приложения

      Итоги

      Сегодня мы много говорили о технологиях Microsoft как в аппаратном, так и в софтверном плане. Обсудили используемые для разработки софта инструменты. Затем мы рассмотрели способы создания приложений под Windows 10 Mobile. В частности, мы обратили пристальное внимание на импортирование унаследованных проектов, другими словами — возможность создания приложений для Windows 10 на основе программ из других операционных систем. Портирование классических Windows-приложений под платформу UWP вроде как вещь сама собой разумеющаяся. Но вот создание UWP-программ на основе iOS-приложений с Obj-C-кодом — это впечатляет. А главное, что эти инструменты свободные и открытые!

      Программирование смартфонов от Microsoft вдвойне интереснее, поскольку они обладают большим набором разнообразных датчиков окружающей среды и состояния самого гаджета. Поэтому, подводя итог всему вышесказанному, мы разработали приложение, которое использует один из сенсоров — датчик активности.

      Многие сенсоры унаследованы еще от смартфонов с операционной системой Windows Phone 7.5, и работу с ними мы рассматривали еще в те давние времена, поднимай подшивку «Хакера». Другие датчики весьма новые, и нам будет интересно разобраться с их использованием и получением от них профита. Но это планы на будущее.

      А сегодня мне остается пожелать тебе веселой не пасмурной осени и удачи во всех делах!

      Microsoft loves Open Source

      Сайт github.com каждый год подводит итог: какая компания самая активная в плане открытых исходников, другими словами — кто сделал больше всех вкладов в открытые проекты. По итогам прошедшего года такой компанией стала Microsoft. Достаточно взглянуть на страницу корпорации на сайте GitHub.

      Юрий Язев

      Широко известен под псевдонимом yurembo. Программист, разработчик видеоигр, независимый исследователь. Старый автор журнала «Хакер».

      Читайте также:  Windows 10 про чистая
Оцените статью