HTC HD2: феномен

Предыстория

Ностальгия по героям ушедших дней, столь ярко выразившаяся в сравнении топовой конфигурации четырехлетней давности с современным середнячком, имеет право слегка прихватывать и других авторов. Но прогресс в мобильных устройствах идет много более высокими темпами. В самом деле, многие ли помнят первый iPhone? Кто сможет — найдите, включите, попробуйте поработать с ним вместо привычного современного коммуникатора на iOS4 или Android. Да что там — даже с Windows Mobile 6.5 с оболочкой HTC Sense. Ну как? Удобно? Слышу громкое скандирование армии фанатов. И тихие стоны пользователей про привязку к iTunes, отсутствие многозадачности и copy-and-paste, проблемы с телефонами в России. А ведь прошло даже меньше четырех лет! Взять тот же iPhone с 16 ГБ встроенной памяти, представленный 5 февраля 2008 года. Менее трех лет назад!
iPhone и iPhone 3G: найдите 10 отличий

Двинемся дальше. Армия поклонников Android растёт даже более устрашающими темпами! Первая реально поступившая пользователям версия Android (1.5 Cupcake) вышла менее двух лет назад, 30 апреля 2009 года. А к концу 2010 года продажи iPhone пошли вниз (по данным The Nielsen Company) на волне популярности новых «роботов».

Но на секунду отвлечемся от яростных баталий, кипящих и бурлящих на любом мало-мальски подходящем форуме. И вернемся к первоначальному утверждению: прогресс в мобильной сфере идет куда быстрее, чем среди ставших бытовой техникой десктопных машин. Надеюсь, никто не возьмется утверждать, что за пару лет от микропроцессорных лидеров Intel/AMD могут остаться лишь рожки да ножки. И что на их костях будут пировать, например, ARM или Google. Но никого не удивляет, когда Windows Mobile, Symbian или Palm OS в одночасье теряют свою долю.

Что все это значит? В первую очередь, высокую мобильность пользователей: перейти с Windows Mobile, Windows Phone, iOS или Android на любую другую ОС труда не составляет. Причины тому очевидны: функции, предоставляемые перечисленными платформами, по сути своей отличаются лишь оформительскими мелочами. Что бы там ни утверждали форумные вояки, революций в плане предоставляемых возможностей не произвела ни одна ОС. Отсюда и битвы тупоконечников с остроконечниками.

Но почему же так произошло? Что помешало столь же быстрой смене обстановки на рынке десктопов? Ответ прост: сопутствующее ПО. Количество и сложность функций, выполняемых программами для «большого брата», несоизмеримо выше их мобильных компаньонов. В самом деле, сложные офисные пакеты на телефонах не нужны. 3D-рендеринг или обработка видео? Сложные игры? Нет, все это ни к чему в мобильном устройстве. Основная задача коммуникатора — доставить контент к его потребителю: проигрывать музыку и видеоролики, показывать текст с несложной разметкой. А с этим может справиться любая ОС. Даже архаичная Windows CE в лёгком рестайлинге — WM6.5 + HTC Sense.
HTC Sense: и в Windows Mobile можно работать без пера

С мобильностью пользователей разобрались. Теперь стоит подумать, почему производители так ухватились за эту верёвочку. Тут ларчик открывается тем же ключом: их к этому подталкивают пользователи. Посудите сами: как часто вы покупаете новый десктоп? Ноутбук? Телефон? Статистика неумолима: чем меньше и мобильнее устройство, тем чаще его заменяют. Притом целиком. Ради интереса, подсчитайте, сколько денег за последние 3-5 лет вы отдали продавцам десктопных компонентов. Потом сравните с поставщиками ноутбуков. И, наконец, вычислите сумму, попавшую к торговцам коммуникаторами. К сожалению, официальной статистики по такому сравнению не сыскать. Да и собрать ее непросто: десктопы в значительной степени прерогатива корпоративных заказчиков — с соответствующей переплатой. С ноутбуками ситуация больше благоволит конечным пользователям. А коммуникаторы и вовсе редко закупаются для того, чтобы раздать их сотрудникам.
HTC EVO 4G: один из доноров прошивок для HD2

Подведем промежуточный итог: быстрое обновление модельного ряда — естественная реакция рынка на спрос со стороны пользователей и их высокую мобильность. Производители это прекрасно понимают и стараются сохранить такое положение в целях увеличения прибыли. Чем чаще выходят новые устройства, тем больше можно заработать. Поводом к анонсу «новинки» зачастую является выход новой ОС или обновления старой. Платформа остается прежней. За примерами не надо далеко ходить: уважаемая компания HTC выпускает россыпь аппаратов на Qualcomm Snapdragon QSD8250. Одинаковая «начинка», схожий дизайн, а основные различия — в ОС.Предпосылка

Хороший расчет на любопытство: именно оно толкает немалую часть покупателей на трату очередной суммы от 500 до 1000 долларов. «Революционные преимущества», заложенные в новую версию ОС, зачастую ограничиваются возможностью установки новой версии Angry Birds. Остальное же нередко является тем самым анекдотичным «тюнингом в зоопарке».

Продвинутые «технари» знакомятся с новыми мобильными ОС с помощью эмулятора. Некоторое представление о продвижении программистов получить можно, но на реальном устройстве все выглядит совсем иначе. Именно потому для настоящего понимания таки требуется «пощупать» ОС вживую. Нередки ситуации, когда для удовлетворения этого любопытства покупаются совсем уж недешевые игрушки.

В некоторых случаях пользователь и вовсе встречается с проблемами. Чаще всего упоминается необходимость запуска какого-либо старого и редкого приложения для Windows Mobile, аналогов которому для Android/Blackberry/iOS/WP7 попросту нет. Вырастает все это в проблему известного осла: для работы требуется старая ОС, а душа требует похвастаться перед ребятами продемонстрировать знание новинок мобильного мира.

Нельзя сказать, что с подобным разбродом мы встречаемся впервые. Еще в 2003 году вышел дешевый аппарат Motorola MPx200, уникальный в своем роде: устройство работало под управлением Pocket PC 2002 (официально ОС называлась Windows Mobile Smartphone 2002) и апгрейд на Windows Mobile 2003 не был предусмотрен. Ничего удивительного, что вокруг этого аппарата собралось сообщество из пытливых умов, сумевших водрузить обновленную ОС. В немалой степени этому помогла Microsoft, с 2001 года методично публиковавшая части исходных кодов ОС Windows CE. К ноябрю 2006 года весь код Windows CE 6.0 (а это почти 4 млн. строк кода) стал доступен под лицензией shared source.

Расцвет популярности Windows в последующие годы привел к образованию больших сообществ независимых разработчиков. Новые версии ОС неплохо работали и на «устаревших», с точки зрения производителя, аппаратах. Что, разумеется, не доставляло особой радости последним. Доходило даже до судебных угроз, но гоняться за одиночками-энтузиастами — только имиджу вредить. Производители регулярно улучшали защиту устройств от несанкционированной перепрошивки. Сообщества находили новые способы их обхода, к радости пользователей-энтузиастов.
Эмулятор Android, оригинальная версия 1.5

И так было с большинством распространенных аппаратов — вспомним все тот же jailbreak для iPhone. Не стоит углубляться в детективные теории о тайной поддержке со стороны Apple — лишь упомянем факт. С Android в силу открытости исходного кода все еще проще. Тем более что Google очень активно поддерживает разработчиков, делая ставку на массовость и network effect: чем больше будет пользователей, тем больше доходы компании.

Позволю себе лирическое отступление. Вспомню компьютерный рынок эпохи Apple Macintosh, тех самых, original. Рынок им, мягко говоря, благоволил. Потом появился PC. Не особо надёжный или красивый. Но очень дешевый, и, что важно, открытый! В одиночку бороться против всего мира Apple в ту пору не смогла и сдала позиции. История поучительная. Ее повторения господин Джобс дожидаться не стал: диверсификация деятельности в виде выпуска iPod, iPad, TV и прочих моноблочных компьютеров крайне важна в долгосрочной деятельности. Правильно поступила и компания Google, взглянув на историю Mac vs IBM PC. Которая, надо сказать, очень иронична: как в свое время молодая компания Microsoft стала лицензировать разработанную не ею ОС, так и Google купил скромный стартап Android, Inc.Предчувствие

В ноябре 2009 года корпорация HTC представила миру новый коммуникатор с кодовым названием Leo. Официальное наименование — HD2. Для сравнения: месяцем раньше одним из самых ярких анонсов стал HTC Tatoo (Click 100) — первый сравнительно бюджетный коммуникатор на Android 1.6. Кто сейчас пользуется Tatoo? Кто вообще помнит про этот аппарат? Немногие. Хотя благодаря низкой цене тираж был весьма велик.
HTC Dream: один из первых аппаратов на Android. Снимок с официального сайта HTC

Совсем другое дело — HD2. Вот уже полтора года аппарат не сходит со сцены. Как и ожидалось, HD2 стал лебединой песней Windows Mobile: ничего более впечатляющего на этой платформе нет и не будет. А техническая оснащенность устройства до сих пор позволяет причислить его к флагманам: 1 ГГц процессор, 576 МБ памяти (даже HTC публично призналась в этом в последней официальной прошивке), вагон датчиков и модулей беспроводной связи. И, конечно, громадный ёмкостной экран.

Неудивительно, что аппарат обзавелся массой поклонников. Если бы HTC вместо расширения количества выпускаемых моделей сосредоточилась бы на продвижении какой-то одной, HD2 стал бы превосходным выбором. Я бы не удивился, если при правильной расстановке акцентов и адаптации современных ОС (Android, Windows Phone 7) продажи такого унифицированного аппарата поспорили бы за лидерство по количеству продаж с много более дешевыми устройствами. Но HTC избрала другую стратегию. Коммуникатор получил несколько модификаций с небольшими вариациями на тему дизайна, диагонали дисплея и прочих атрибутов: HD7 с Windows Phone 7, Desire для Android (и его собрата HTC Passion, известного более как Google Nexus One), EVO 4G.

После выхода аппарата некоторое время ушло на обход новых изобретений HTC в плане защиты устройства от неофициальных прошивок. Не стоит сейчас углубляться в дебри специфики контейнеров обновлений HTC (nbh-файлов). Тем более спустя полтора года после выпуска: кому было интересно, те уже в курсе. Важен факт: с помощью разнообразных инструментов (часто объединенных в так называемые «кухни», kitchens) процесс сборки самодельных прошивок перестал являться прерогативой OEM. Любой желающий может на базе фирменного обновления HTC создать собственный вариант. Можно удалить неиспользуемое ПО (например, Навител), включить иные настройки по умолчанию, обновить версию Office или Sense, заменить картинку, демонстрируемую при перезагрузке (boot screen), разблокировать доступ к спрятанной памяти (в версии HD2 для T-Mobile, обычно упоминающейся как TMOUS, память была доступна изначально).

Оценить пользу от таких изменений было не так-то просто. С одной стороны, конечно, здорово иметь больше свободной памяти. С другой — а чем ее забивать? Да, прекрасно, что HD2 поддерживает 802.11n draft, но что с того толку, если скорость приема данных при этом не выше, чем с обычным 802.11g? Новая версия Sense? Супер, но изменения-то минимальны. В итоге значительная часть пользователей откатывалась на заводские прошивки. Которые пусть и редко, но выходят — и в них как раз включаются обновления Sense, самой ОС Windows Mobile и комплектных программ. Предвкушение

К февралю 2010 года Android наконец-то преодолел значительную часть детских проблем. Собственно, с версии 2.1 Eclair и началось победное шествие: встроенная поддержка Microsoft Exchange сняла один из самых серьезных барьеров на пути к применению Android в корпоративной среде. Волна интереса всколыхнула общественность. Сначала звучали лишь робкие вопросы — «а может, попробовать запустить Android на HD2?» С выходом HTC Desire (напомню — на той же платформе, что и HD2) голоса окрепли. И начались конкретные исследования: первоначальная поддержка Qualcomm Snapdragon для HaRET (Hardware Reverse Engineering Tool, программа, нынче используемая как bootloader для старта Linux из Windows Mobile) появилась еще в 2009 году, но большинство ошибок были исправлены только к октябрю 2010-го. Примерно тогда же появились и первые сносно работающие на HD2 образы Android. Нетрудно догадаться, что исходным материалом для них послужил образ HTC Desire.

По условиям лицензии Linux (GPL, General Public License), исходные коды Android есть в открытом доступе. Более того, Google всячески поддерживает и поощряет портирование на всевозможные устройства. Для разработчиков доступны специальные porting guides, документация по переносу кода на новые аппараты.

Аналогичным путем вынуждена работать и HTC: исходные коды прошивок для Android-телефонов доступны публично на http://developer.htc.com/. В итоге, новые версии ОС адаптируются к HD2 без особых усилий. А мы, как пользователи, можем наслаждаться плодами прогресса. Представление

Читатели, знакомые с общим устройством Android, могут пропустить текст вплоть до выбора способа загрузки (с SD-карты или непосредственно со встроенной флеш-памяти NAND). Для всех остальных — краткий ликбез. Android, несмотря на отдельный бренд и свою систему версионирования, не является обособленной операционной системой. В основе лежит ядро Linux, модифицированное сотрудниками Google. Первое время компания даже пыталась встроить эти изменения в основную ветвь (mainline kernel), но по ряду причин, прояснение которых выходит за рамки статьи, сделать это не вышло. В итоге в Google решили работать только с собственной ветвью (branch) исходного кода. Поэтому не стоит ожидать, что при выходе новых версий ядра Linux изменения автоматически появятся и в Android.

В состав дистрибутива Android входит набор системных библиотек (см. иллюстрацию), и важнейший компонент — легковесная виртуальная машина Java (Dalvik). В соответствии с философией Android, все программное обеспечение, устанавливаемое пользователем, отделено этой машиной от непосредственного доступа к ядру и системным библиотекам.
Архитектура Android

Такое разделение обязанностей, а также хорошая документированность исходного кода ядра Linux в значительной мере упрощают перенос Android на новую аппаратную платформу. В общем случае для портирования достаточно лишь подобрать (или написать) драйверы ядра Linux для периферийных устройств: дисплея, флеш-памяти, камеры и др. Несмотря на всю широту и многообразие коммуникаторов, компоненты, установленные «под капотом» этих устройств, не так уж и разительно отличаются друг от друга. А если учесть наличие исходного кода драйверов — задача портирования и вовсе зачастую превращается в простую пересборку, доступную даже сравнительно неопытным программистам.

Получается взаимовыгодное сотрудничество с Google: корпорация получает широкое проникновение ОС, пользователи — удобные и современные приложения.

Эра Android для HTC HD2

Как уже упоминалось выше, в 2009 году Android был малозаметным явлением. Флагманский коммуникатор, коим, без сомнения, являлся HD2, нельзя было оснастить недоработанной ОС с кошмарной зависимостью от сервисов Google. Шутка ли — до выхода версии 2.1 аппараты даже не могли синхронизироваться с Exchange! Либо производитель должен был вкладываться в собственные разработки (как это сделала Motorola), либо… выпускать аппарат на проверенной Windows Mobile 6.5. Компания HTC выбрала второй вариант. И не прогадала: оболочка Sense качественным образом изменила работу с немолодой уже ОС.

Не буду гадать, почему HTC не стала выпускать версию HD2 c Android на борту в начале 2010 года. Не стану удивляться, зачем был сделан Desire на той же платформе и с теми же габаритами, но меньшей диагональю экрана. Возможно, корпорацию попросту беспокоила возможность лёгкой адаптации Android для Desire к HD2. Потребовалось несколько недель, чтобы опубликованные исходные коды были собраны с учетом особенностей HD2 (экран, камера, модуль Wi-Fi и некоторые другие).

Для HD2 наступила эра Android.

Подготовка к использованию Android

Основными компонентами платформы Snapdragon QSD8250, на которой построен HD2, являются два процессора: общего назначения (с набором инструкций ARM) и специализированный DSP для работы с радиоинтерфейсами. Зачастую прошивка содержит только обновление ОС — код, выполняющийся на основном процессоре. Изменение кода второго чипа может осуществляться отдельно (это обновление называют «radio»). Версионирование также идет по раздельности. Пример: актуальная на данный момент официальная версия прошивки — 3.14, версия ПО радиомодуля — 2.15.
Qualcomm QSD8250 — сердце платформы

Зачем это знать? Определенные версии radio могут не предоставлять интерфейсы или команды, на которые рассчитывает обновление ОС. Откуда берутся разные radio? Из официальных обновлений HTC для моделей на различных рынках. Кроме того, существует две модификации HD2: европейская, с 512 МБ NAND-памяти, и американская, для оператора T-Mobile (TMOUS, с 1 ГБ встроенной флеш-памяти). ПО радиомодуля для них несовместимо! Если вы прошьете европейское radio в телефон для T-Mobile, или, напротив, американский вариант в евро-телефон, без (платного) похода в сервис, где ПО восстановят через JTAG, вам не обойтись.
Версия последней официальной прошивки (radio 2.15 — число 50 обозначает принадлежность к Европе, аппараты TMOUS содержат в этом поле 51)

Большинство сборок Android, запускающихся на HD2, требует radio версии не ниже 2.08. Но лучше прошить последнюю официальную (для России это 2.15). При этом если вы планируете полностью удалить Windows Mobile, перед обновлением установите HSPL3 (читайте ниже про NAND boot).

SD boot

Самый простой и безопасный способ знакомства с Android на HD2. Алгоритм прост: берется готовая сборка Android, распаковывается в папку Android на microSD-карточку. Для чистоты эксперимента имеет смысл перезагрузить аппарат, а затем последовательно запустить clrcad.exe и загрузчик haret.exe. Существуют также готовые программы для Windows Mobile, ставящие себя в «Автозагрузку», которые возьмут на себя труд последовательно запустить пару указанных приложений.
Так выглядит iGo, которым удобно пользоваться

Для загрузки с SD нет необходимости устанавливать HSPL или любое другое ПО, наличие которого может привести к потере гарантии. Вы просто получаете dual boot — но в оригинальном исполнении: загрузка всегда идет в Windows Mobile, и лишь затем, если хочется, можно перейти в Android. Почти как с DOS и Windows 3.11 — с тем лишь исключением, что «выход» из Android всегда ведет к перезагрузке.
А это — пример того, как не следует «улучшать» интерфейс. Впрочем, больше всего досталось меню, которое из простого и понятного превратилось в настоящий квест

Опишу вкратце, что и зачем нужно. Утилита clrcad сбрасывает настройки процессора, позволяя Android’у при загрузке заново инициализировать звуковую подсистему. Без этой процедуры ОС запустится, но будет молчалива.

Программа HaRET, задуманная автором для реверс-инжиниринга, используется исключительно для первоначальной загрузки ядра Linux (т. е. как bootloader). Контроль над процессом осуществляется с помощью файла startup.txt, который должен находиться в том же каталоге, что и выполняемый файл программы. Значительная часть настроек определяется аппаратными возможностями устройства (ramaddr, ramsize). Для пользователя интерес имеет лишь параметр cmdline, где можно задать наименование каталога, где лежит конкретная сборка: удобно для тех, кому интересны разные версии Android (2.1, 2.2, 2.3!), например для тестирования своей программы.  
HTC Sense в версии для Android

Ядро Linux (файл zImage) уже включает драйверы. Первоначальная read-only файловая система (initrd) в сжатом виде размещается в файле initrd.gz (если файл переименован, setup.txt утилиты HaRET должен содержать измененное название). После инициализации основных подсистем выполняется init, монтирующий корневой раздел («/») из файла образа на SD-карте (традиционно файл именуется rootfs.img). Некоторые сборки ядер могут поддерживать squashfs (read-only файловая система для Linux с поддержкой компрессии), в этом случае корневой раздел берется, как правило, из rootfs.sqsh. Два других образа — system.ext2 и data.img — содержат образ собственно Android (r/o) и все пользовательские данные (единственный r/w раздел) соответственно.
Варианты загрузки Android

Последний файл представляет собой большую ценность. Если удалить или переименовать его, эффект будет равен удалению всех данных пользователя (как при hard reset). Файл допускается переносить между разными сборками Android, однако работоспособность не гарантируется. В зависимости от ваших потребностей, объем этого раздела можно варьировать от 256 МБ до ограничения, накладываемого ёмкостью microSD-карты. Файл образа можно модифицировать с помощью настольного компьютера с Linux (или виртуальной машины — благо, это все бесплатно), тип раздела — ext2. Если вам требуется создать новый файл, его размер можно задать через startup.txt.

Единственный серьезный недостаток подхода с загрузкой Linux с SD-карты — невозможность безопасно эту карту извлечь (ОС зависнет или будет работать некорректно). Как неприятное последствие — некорректная работа функции «подключение телефона в режиме USB mass storage»: аппарат не увидит файлы, записанные с десктопа.  
Чем не Desire HD?

Существует также другой недостаток, менее заметный пользователю. microSD-карты работают медленнее и потребляют больше энергии, чем встроенная флеш-память NAND. Особенно если применяются старые карты Class 2. Это заметно снижает скорость работы ОС и время автономной работы. Впрочем, большинство данных будет кэшировано в оперативной памяти сразу после загрузки ОС, и в дальнейшем с карты читаться не будет. Если вас все же беспокоит эта проблема, стоит попробовать одну из так называемых RAM-сборок. Их ключевое отличие — загрузка большинства системных библиотек в оперативную память.  
Сборки, работающие в памяти, пригодны для измерения попугаями

Если вам и этого мало — можно пойти еще более радикальным путем, модифицировав скрипт init так, чтобы загрузить весь образ system.ext2 в память, и смонтировав его оттуда. Готовых сборок с таким алгоритмом мне не попадалось.

NAND boot

Сравнительно недавно широкой общественности стал доступен второй вариант установки Android на HD2. Потенциальные преимущества работы с NAND очевидны: быстрая загрузка, возможность извлечения и корректная работа SD-карты как USB mass storage device, а также сниженный расход энергии.

Недостатки также видны невооруженным глазом. В первую очередь, теряется возможность работы с Windows Mobile. Что бы ни говорили сторонники Android, но некоторые приложения для WM до сих пор не имеют аналогов. Да и те, которые имеют, зачастую гораздо лучше работают с WM — скажем, iGo версии 8.3 имеет куда более комфортный интерфейс, чем iGo Amigo для Android. Второй аргумент — потеря гарантии, если ваша прошивка «убьёт» аппарат. Даже если дело будет и не в ней, при обнаружении подобного ПО в сервис-центре в любом случае будут рады взять с вас денег. Даже прекрасно понимая, что аппаратная неисправность никак не могла быть вызвана чужеродной прошивкой.

Строго говоря, весомых преимуществ у NAND boot нет. Но это мода, тренд. А значит, в дальшейшем следует ожидать активного развития именно таких сборок. Энтузиасты — это не гиганты софтостроения, им скучно поддерживать те ветки, которые еще совсем недавно были «на коне». И, как это ни печально, большинство энтузиастов чуть ли не основной своей целью ставят избавление от Windows Mobile. Для разумного пользователя формулировка «избавиться от функциональности» звучит диковато — даже если эта функциональность редко нужна. Но фанатики увлекающиеся люди своей целью не ставят удовлетворение пользователей. Они занимаются этим из любопытства.   
Имбирные пряники заказывали?

Но вернемся к установке сборки во внутреннюю память. Предварительные шаги разительным образом отличаются. В первую очередь — необходимостью вернуться к старой версии прошивки Windows Mobile. В противном случае вы не сможете установить модифицированный вариант SPL (secondary program loader; в некотором смысле — аналог BIOS для устройств на Windows Mobile). Для России придется установить прошивку 1.66, поскольку в последней 3.14 изменена версия SPL (3.03).

Далее следует модифицировать SPL, установив так называемый HSPL3. Это можно сделать либо с помощью ActiveSync-соединения, либо, надёжнее, через первоначальный SPL — выключите телефон, затем зажмите и держите клавишу уменьшения громкости, после чего включите аппарат.
Правильная версия HSPL

Следующим шагом рекомендуется обновить radio — желательно, до последней доступной версии (2.15). Затем придется установить еще один слой ПО, на этот раз уже являющийся плодом труда энтузиастов: MAGLDR. Эта программа реализует загрузку образов Linux в NAND-память, в некотором роде являясь дополнением SPL. Если бы HTC открыла исходные коды SPL для HD2, то, вероятно, можно было бы обойтись без этого шага, модифицируя напрямую SPL.
Установка MAGLDR

И, наконец, следует записать образ. Для начала удостоверьтесь, что аппарат подключен к компьютеру. Лучше использовать прямое USB-соединение, без лишних хабов. Затем — перезагрузите аппарат; после первой прошивки MAGLDR это должно произойти автоматически. После включения держите кнопку «завершение вызова», в появившемся на устройстве меню с помощью клавиш управления громкостью следует выбрать «USB Flasher» и нажать на кнопку вызова. Затем на десктопе из папки со сборкой следует запустить с правами Администратора программу DAF.exe. Через пару минут процесс завершится автоматический перезагрузкой.
Меню MAGLDR 1.11

При работе многих сборок с NAND вероятность возникновения ошибок зачастую выше, чем при последовательной загрузке WM → Android. Дело в том, что Windows при загрузке корректно инициализирует все необходимые подсистемы. Поскольку Android загружается без сброса коммуникатора, устройства продолжают работать. Но при прямом старте Android не вся периферия инициализируется должным образом. Со временем, вероятно, большинство ошибок будет исправлено, но на данный момент стабильность сборок для NAND оставляет желать лучшего.

Еще один недостаток в сравнении с SD boot — отсутствие простой возможности резервного копирования всех пользовательских данных (образа data.img). Конечно, простейшей модификацией init-скрипта аппарата можно вернуть этот подход. Но при таком раскладе совершенно непонятно, зачем было городить NAND-огород.

О выборе сборки

Вопрос в значительной степени религиозный. Кому-то понравится минималистичный порт — практически, дамп с EVO 4G, Desire, Desire HD. Другие предпочтут сборку с предустановленным софтом на все случаи жизни. Энтузиаст, разумеется, приготовит собственное блюдо. Существует несколько линеек, по которым измеряется «крутизна» той или иной сборки: производительность (обычно измеренная попугаями программы Quadrant), время автономной работы (чаще всего упоминаются типовые значения тока, сообщаемые апплетом CurrentWidget) и наличие софта HTC (заодно с доступом к htcsense.com). К сожалению, конкуренция между «поварами» не всегда честная: кто-то примеряет setcpu для «разгона» процессора, кто-то выключает модули связи перед замером потребления энергии. Поэтому вам придется самостоятельно выбрать приемлемый вариант, либо собрать свой. Для ориентира: неразогнанный HD2 выдает не меньше 1500 в Quadrant (чего более чем достаточно для комфортной работы). Потребление в режиме ожидания не превышает 10 мА, в идеале — 3—5 мА. Комбинируя между собой различные варианты ядра (zImage) и образа Android (system.ext2), а также удаляя бесполезный софт из чужих сборок (обычно лежит в виде apk-файлов в папке AndroidApps рядом с образами разделов), можно получить тот вариант, который вас полностью устроит. И на этом остановиться до выхода очередной версии Android. Почему-то у меня есть стойкое ощущение, что на HD2 будет портирован и Android 3.0. Остается лишь пожалеть владельцев аппаратов Sony Ericsson, до которых доходят только официальные апдейты. И те — с огромным опозданием.

Предвосхищая недовольные плевки со стороны любителей всего фирменного и официального: не стоит столь пренебрежительно относиться к работам энтузиастов. Некоторые сборки не уступают заводским ни в стабильности работы, ни в потребляемой энергии. Дело в открытости платформы и наличии исходных кодов: если для Windows Mobile иначе как «хакерством» подобные прошивки и назвать было нельзя, то в случае с Android это нормальный и естественный ход событий, документированный и понятный грамотному программисту.Продолжение

На этом история не заканчивается. Так, энтузиасты уже запустили Windows Phone 7. В своё время HTC заявила о невозможности апдейта HD2 для использования с WP7 — якобы, из-за несоответствия назначения аппаратных клавиш требованиям Microsoft (нет выделенной кнопки «поиск»). Программисты Microsoft серьезно постарались защитить ОС от нелицензионного копирования: каждое проданное с WP7 устройство имеет собственный ключ (private key), используемый для идентификации и доступа к сервисам Live/Zune/Marketplace. Обойти проверку пока не представляется возможным, поскольку она производится на серверах Microsoft. К которым, увы, доступ ограничен. Остается надеяться лишь на старое утверждение: что один человек построил, другой завсегда сломать сможет.
Windows Phone 7: количество энтузиастов новой ОС не поражает воображение

Почитатели дистрибутива Ubuntu с такими проблемами не столкнутся. Этот вариант Linux прекрасно работает — правда, непонятно, что с ним делать. Вариант исключительно для энтузиастов. Равно как и Windows 95/98: запускается через qemu, работает, но что с ней делать — неизвестно.

Значительно больший интерес может представлять порт MeeGo. Но перспективы развития этого варианта Linux пока туманны: несмотря на наличие громких имен в списке организаций, поддерживающих разработку, конкретных результатов пока не особо видно. Отсюда и незначительность усилий в направлении портирования MeeGo на HD2.Прочность

Под конец, чтобы отвлечься от программной части, расскажу немного о физических качествах аппарата. Телефон активно использовался более года, причем в качестве основного. За это время он совершил три серьезных падения: из руки выскальзывал в московский снег, из окна автомобиля на асфальт (не спрашивайте как, мне до сих пор стыдно перед аппаратом) и из кармана рубашки на паркетный пол. На функциональности это никак не сказалось, хотя внешний вид слегка пострадал: раскрошился уголок стекла в месте удара об асфальт, да и в целом царапин немало. Примерно через год от начала использования начало́ облезать покрытие металлической крышки. При этом держится на своем месте она все так же хорошо — первоначальные подозрения в потенциальном разбалтывании соединения, признаю́, были необоснованными.

Вместе с автором телефон пару раз промокал до состояния «хоть выжимай». Много раз служил развлекательным устройством на морском пляже (предупрежу: песок из динамика достать проще, чем из USB-разъема!) Один раз переохлаждался на леднике в горах Кавказа и несколько раз выключался из-за перегрева, забытый на солнце в машине.

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

И даже аккумулятор пока не выказывает признаков старения. С учётом того, что аппарат в среднем заряжался раз в сутки или чаще, тоже неплохой показатель.
Результат падения с высоты окна SUV

Единственное, что разболталось — блок клавиш. Вся полоска имеет легкий люфт с ходом в полмиллиметра в обе стороны. Новые аппараты с сенсорными клавишами от этой проблемы страдать не будут. Но насколько же удобны настоящие кнопки, с тактильной обратной связью и возможностью легко нащупать их даже в полной темноте! Остается лишь ждать, пока производители услышат мольбы и вернутся к нормальным аппаратным клавишам. Должна же спираль истории совершить полный оборот.
«Карманный» износ

Аппарат прошел проверку временем, детских болезней не обнаружено (не считать же таковыми придирки отдельных покупателей к слегка неровно вклеенному стеклу). Из раздражающих проблем вспоминается только катастрофический расход батареи после недавнего перехода на зимнее время. По этому поводу HTC даже выпустила заплатку, которую следует скачать с сайта и установить отдельно после обновления ROM.Феномен

HD2 — феномен в мире коммуникаторов. Модель, задержавшаяся на рынке куда дольше положенного. Стоит поблагодарить HTC за столь удачное устройство. Хоть и не исключено, что маркетологи компании лишились премий за разрешение на выпуск «чрезмерно долгоиграющего» аппарата. Но вклад HD2 в рост имиджа HTC как передового производителя — неоценим. Коммуникатор за свои деньги вышел чрезвычайно удачным! Даже через полтора года после старта продаж HD2 на равных может потягаться с новейшими топовыми моделями. В самом деле, 1000 долларов за Desire HD с единственно возможным вариантом Android, или 600 за HD2 с ОС по вашему выбору? Выбирайте. А я пока верну Desire HD. Без сожаления: без Windows Mobile мне все еще не обойтись. Разве что Nav-n-Go сподобится выпустить iGo с нормальным, удобным интерфейсом версии 8.3, как в до-Amigo-вскую эпоху.




28 января 2011 Г.

HTC HD2:

HTC HD2:

, , . . , iPhone? — , , iOS4 Android. — Windows Mobile 6.5 HTC Sense. ? ? . iTunes, copy-and-paste, . ! iPhone 16 , 5 2008 . !


iPhone iPhone 3G: 10

. Android ! Android (1.5 Cupcake) , 30 2009 . 2010 iPhone ( The Nielsen Company) «».

, - . : , . , , Intel/AMD . , , ARM Google. , Windows Mobile, Symbian Palm OS .

? , : Windows Mobile, Windows Phone, iOS Android . : , , . , . .

? ? : . , « », . , . 3D- ? ? , . — : , . . Windows CE — WM6.5 + HTC Sense.


HTC Sense: Windows Mobile

. , . : . : ? ? ? : , . . , , 3-5 . . , , , . , . : — . . , .


HTC EVO 4G: HD2

: — . . , . «» . . : HTC Qualcomm Snapdragon QSD8250. «», , — .

: 500 1000 . « », , Angry Birds. « ».

«» . , . «» . , .

. - Windows Mobile, Android/Blackberry/iOS/WP7 . : , .

, . 2003 Motorola MPx200, : Pocket PC 2002 ( Windows Mobile Smartphone 2002) Windows Mobile 2003 . , , . Microsoft, 2001 Windows CE. 2006 Windows CE 6.0 ( 4 . ) shared source.

Windows . «», , . , , . , - — . . , -.


Android, 1.5

— jailbreak iPhone. Apple — . Android . Google , network effect: , .

. Apple Macintosh, , original. , , . PC. . , , , ! Apple . . : iPod, iPad, TV . Google, Mac vs IBM PC. , , : Microsoft , Google Android, Inc.

2009 HTC Leo. — HD2. : HTC Tatoo (Click 100) — Android 1.6. Tatoo? ? . .


HTC Dream: Android. HTC

— HD2. . , HD2 Windows Mobile: . : 1 , 576 ( HTC ), . , , .

, . HTC - , HD2 . , (Android, Windows Phone 7) . HTC . , : HD7 Windows Phone 7, Desire Android ( HTC Passion, Google Nexus One), EVO 4G.

HTC . HTC (nbh-). : , . : ( «», kitchens) OEM. HTC . (, ), , Office Sense, , (boot screen), ( HD2 T-Mobile, TMOUS, ).

- . , , . — ? , , HD2 802.11n draft, , , 802.11g? Sense? , - . . , — Sense, Windows Mobile .

2010 Android - . , 2.1 Eclair : Microsoft Exchange Android . . — « , Android HD2?» HTC Desire ( — , HD2) . : Qualcomm Snapdragon HaRET (Hardware Reverse Engineering Tool, , bootloader Linux Windows Mobile) 2009 , 2010-. HD2 Android. , HTC Desire.

Linux (GPL, General Public License), Android . , Google . porting guides, .

HTC: Android- http://developer.htc.com/. , HD2 . , , .

, Android, ( SD- - NAND). — . Android, , . Linux, Google. (mainline kernel), , , . Google (branch) . , Linux Android.

Android (. ), — Java (Dalvik). Android, , , .


Android

, Linux Android . ( ) Linux : , -, . , , « » , . — , .

Google: , — .

Android HTC HD2

, 2009 Android . , , , HD2, Google. — 2.1 Exchange! ( Motorola), … Windows Mobile 6.5. HTC . : Sense .

, HTC HD2 c Android 2010 . , Desire , . , Android Desire HD2. , HD2 (, , Wi-Fi ).

HD2 Android.

Android

Snapdragon QSD8250, HD2, : ( ARM) DSP . — , . ( «radio»). . : — 3.14, — 2.15.


Qualcomm QSD8250 —

? radio , . radio? HTC . , HD2: , 512 NAND-, , T-Mobile (TMOUS, 1 -). ! radio T-Mobile, , , -, () , JTAG, .


(radio 2.15 — 50 , TMOUS 51)

Android, HD2, radio 2.08. ( 2.15). Windows Mobile, HSPL3 ( NAND boot).

SD boot

Android HD2. : Android, Android microSD-. , clrcad.exe haret.exe. Windows Mobile, «», .


iGo,

SD HSPL , . dual boot — : Windows Mobile, , , Android. DOS Windows 3.11 — , «» Android .


— , «» . , ,

, . clrcad , Android’ . , .

HaRET, -, Linux (. . bootloader). startup.txt, , . (ramaddr, ramsize). cmdline, , : , Android (2.1, 2.2, 2.3!), .

  
HTC Sense Android

Linux ( zImage) . read-only (initrd) initrd.gz ( , setup.txt HaRET ). init, («/») SD- ( rootfs.img). squashfs (read-only Linux ), , , rootfs.sqsh. — system.ext2 data.img — Android (r/o) ( r/w ) .


Android

. , ( hard reset). Android, . , 256 , microSD-. Linux ( — , ), — ext2. , startup.txt.

Linux SD- — ( ). — « USB mass storage»: , .

  
Desire HD?

, . microSD- , - NAND. Class 2. . , , . , RAM-. — .

  
, ,

— , init , system.ext2 , . .

NAND boot

Android HD2. NAND : , SD- USB mass storage device, .

. , Windows Mobile. Android, WM . , , WM — , iGo 8.3 , iGo Amigo Android. — , «» . , - . , .

, NAND boot . , . , . — , , « ». , , Windows Mobile. « » — . . .

  
?

. . — Windows Mobile. SPL (secondary program loader; — BIOS Windows Mobile). 1.66, 3.14 SPL (3.03).

SPL, HSPL3. ActiveSync-, , , SPL — , , .


HSPL

radio — , (2.15). , : MAGLDR. Linux NAND-, SPL. HTC SPL HD2, , , , SPL.


MAGLDR

, , . , . USB-, . — ; MAGLDR . « », «USB Flasher» . DAF.exe. .


MAGLDR 1.11

NAND , WM → Android. , Windows . Android , . Android . , , , NAND .

SD boot — ( data.img). , init- . , NAND-.

. - — , EVO 4G, Desire, Desire HD. . , , . , «» : ( Quadrant), ( , CurrentWidget) HTC ( htcsense.com). , «» : - setcpu «» , - . , . : HD2 1500 Quadrant ( ). 10 , — 3—5 . (zImage) Android (system.ext2), ( apk- AndroidApps ), , . Android. - , HD2 Android 3.0. Sony Ericsson, . — .

: . , . : Windows Mobile «» , Android , .

. , Windows Phone 7. HTC HD2 WP7 — , - Microsoft ( «»). Microsoft : WP7 (private key), Live/Zune/Marketplace. , Microsoft. , , . : , .


Windows Phone 7:

Ubuntu . Linux — , , . . Windows 95/98: qemu, , — .

MeeGo. Linux : , , . MeeGo HD2.

, , . , . : , ( , ) . , : , . ́ . — , ́, .

« ». (: , USB-!) - , .

. , .

. , , .


SUV

, — . . . , ! , . .


«»

, ( ). . HTC , ROM.

HD2 — . , . HTC . , « » . HD2 HTC — . ! HD2 . , 1000 Desire HD Android, 600 HD2 ? . Desire HD. : Windows Mobile . Nav-n-Go iGo , 8.3, -Amigo- .