26 октября 2010 в 22:56

Курс молодого Desire'вода из песочницы

image
Написать подобную статью меня сподвигнул тот факт, что для человека, влившегося в стройные ряды Desire'водов, информация об платформе Android очень уж фрагментирована. С одной стороны платформа для всех Android устройств одна, с другой стороны для каждого устройства есть свои нюансы и тонкости. Кроме того информации на таких форумах как 4pda.ru и forum.xda-developers.com очень много, но как правило она размазана по всем темам. Приходится продираться сквозь сотни страниц в попытках извлечь ценные частицы информации.

Архитектура памяти на пальцах

Наш смартфон имеет четыре вида памяти:
  • ОЗУ, оперативная память (576 Мб).
  • ПЗУ, встроенная flash память (512 Мб).
  • Съемная flash память, она же SD карта (до 32 Гб). Монтируется в каталог /mnt/sdcard.
  • Flash память чипа радио-контроллера. Непосредственного доступа к ней не имеем.

Как и любой другой Unix-смартфон, HTC Desire в ПЗУ содержит ядро ОС, файловую систему и на остальные части ОС.
Flash память ПЗУ разделена на разделы, которые, в случае необходимости, могут обновляться отдельно и независимо друг от друга:
  • splash1 — логотип при загрузке телефона (изображение 480х800);
  • bootloader — отвечает за поиск и запуск ядра ОС; состоит из двух частей IPL и SPL;
  • recovery — программа, используемая для выполнению всевозможных обслуживающих функций — перепрошивка, резервное копирование и т.п.
  • system — непосредственно операционная система; монтируется read-only в каталог /system; в процессе эксплуатации не изменяется.
  • data — пользовательские данные (контакты, программы и т.п.); монтируется в каталог /data;
  • cache — используется для временного хранения данных.
При выполнении wipe (сброса до заводских установок), стирается область data, cache и ext (на карте памяти).
image

Bootloader, как было отмечено выше состоит из IPL (Initial Program Loader) и SPL (Second Program Loader, он же HBOOT). IPL реализован в железе и его изменение, по сути, не возможно. Это аналог микросхеме BIOS в терминах ПК.
SPL отвечает подготовку железа телефона к запуску, загрузку и выполнение ядра ОС. Кроме того он позволяет выполнить прошивку телефона и осуществляет связь по USB с ПК до загрузки ОС телефона (так называемый режим fastboot). Важно помнить что прошивка SPL является критичной и в случае нарушения процесса его прошивки или порчи по какой либо другой причине вы получите так называемый «brick», он же кирпич, то есть абсолютно бесполезную железку за 20 000 рублей. Прошивка SPL должна обязательно соответствовать прошивке чипа радио-контроллера (radiofirmware).
Вот мы и добрались до следующего раздела памяти — recovery. Внешне это небольшое меню, позволяющее осуществлять всевозможные обслуживающие функции. В настоящее время самыми распространенными «рекавери» для Desire являются следующие: ClockworkMod, Amon_RA и psfMod.
Для возможности перепрошивки recovery необходимо разблокировать возможность перепрошивки не подписанных (практически все сторонние прошивки не подписаны) прошивок recovery (сделать так называемый S-OFF). Необходимо скачать образ для диска (http://alpharev.nl/). Записать его на болванку CD, загрузиться с него и следовать инструкциям.
Для любых работ, связанных с перепрошивкой телефона нужен рут.

Рут, осмысленный и беспощадный

И так, что мы имеем: ПК, HTC Desire, кабель USB.
Первым шагом в сторону «облагораживания» нашего смартфона является получение рута.
Что же такое рут и для чего он нам так нужен? Простыми словами — это учетная запись администратора, которая позволит вытворять над системой все чего душа пожелает:
  • прошивать телефон;
  • получить полный доступ к файловой системе (снять ограничение read-only);
  • изменять системные файлы (темы, приложения, скрипты, и т.п.);
  • запускать приложения, требующие прав root;
  • выполнять полное и частичное резервное копирование;
  • переместить кэш (системный и пользовательский) на SD карту.
Для всех этих плюшек необходима программа рутования UnrEVOked. Заходим на сайт, выбираем наш телефон, качаем соответствующую нашей ОС версию программы. В случае Windows устанавливаем драйвер HBOOT. Если установлен HTC Sync, удаляем (кроме HTC Driver Installer). Перезагружаем компьютер.
Устанавливаем следующую галочку в телефоне «Настройки > Приложения > Разработка > Отладка USB» и «Настройки > Приложения > Неизвестные источники»
Запускаем скачанный ранее reflash_package.exe в режиме администратора (щелчок правой кнопкой > Запуск от имени администратора). Подсоединяем телефон к ПК. Ждем несколько минут, пока процесс рутования не завершится. В списке установленных программ должен появится значок суперпользователя.

Сторонние прошивки

Сторонние прошивки могут базироваться либо на официальных прошивках с HTC Sense (маркировка для примера — FRF91), либо на исходниках от Google (AOSP, Android Open Source Project) или проекта CyanogenMod.
В отличии от официальных прошивок, сторонние прошивки, как правило, уже рутованы. Кроме того они могут содержать измененный интерфейс, иметь некоторый набор предустановленных программ и всевозможные «фишек»:
  • A2SD – возможность создать на карте памяти раздел (отформатированный как ext2, ext3 или ext4), в который будут устанавливаться программы. Это позволяет уйти от проблемы с нехваткой встроенной флеш-памяти.
  • A2SD+ — тоже самое что и A2SD, плюс возможность перенести кеш (этот режим не рекомендуется, так как приводит к снижению ресурса SD карты).
  • Возможность темизации с помощью встроенных приложений.
  • Возможность изменять тактовую частоту процессора.
  • WakeUp и Unlock – возможность пробуждать и разблокировать устройство по нажатию на определенную клавишу, отличную от Power.
  • Odexing\Deodexing — оптимизация\де-оптимизация пакетов.
  • и многое другое...
Довольно полный список сторонних прошивок, а так же их характеристики и ссылки на страницы прошивок вы можете найти здесь
Если у вас есть замечания, исправления или дополнения к таблице, прошу писать мне в профиль на Google.
Для любых работ по перепрошивке и работе с телефоном по USB рекомендую пользоваться следующей программой — QtADB. Она позволит делать скриншоты экрана, смотреть статистику по занятой памяти, устанавливать\удалять программы и многое другое.
image
Скачать можно либо на сайте проекта либо уже настроенную здесь.

P.S. Любые действия по прошивке телефона вы выполняете на свой страх и риск. Никто, кроме вас не несет ответственность за это!
+65
3458
86
kavboy 4,5

Комментарии (40)

–21
justrestless, #
Вменяемый гайд, но по-моему это не на хабр
+24
malicious, #
А что на хабр? Десяток фоток, да обзор внешнего вида? Отличная статья для хабра.
+3
TheShock, #
не. информацию о том, что у котенка Джобса сегодня месячные, а в Микрософте вчера была вечеринка
+1
kavboy, #
Тематика не та или сложность изложенного материала?
+12
turbo_exe, #
никого не слушайте, все в порядке. спасибо!
0
TheShock, #
подтверждаю. отлично все.
как на счет того же, но по остальным телефонам HTC?
0
TheShock, #
например WildFire, Nexus One
0
kavboy, #
как только куплю ;-)
0
aNDREIQA, #
Вы пробовали изменять тактовую частоту процессора, если да то на сколько вам это удалось?
0
kavboy, #
Не, не пробывал, поэтому в таблице указано только наличие\отсутствие этой функции в прошивке. Аппарат и так шустро бегает и, вроде бы, неплохо держит аккумулятор…
+1
ishua, #
сняли бы «замочек» со статьи, люди без регистрации не могут почитать :)
0
kavboy, #
спасибо за науку :-)
0
anor, #
А зачем вашему другу понадобилась вся эта информация? 0_о
+1
kavboy, #
про какого друга идет речь?
+1
kefirux, #
ну например когда я готовился к покупке андроида, я всю эту информацию прочёсывал. Это всё-таки не айфон, чтобы увидеть, купить и пользоваться, не подозревая что он ещё умеет («да какая разница, он же такой няшный»). Зато когда купил — в первый день перепрошился, рутовал, и перенёс много системных данных на внешнюю карту памяти под ext4. И дальше знал чёткий план что буду делать, какие программы устанавливать, и на второй день он уже был в полной боевой готовности
0
kavboy, #
но ведь знание того, что будешь делать не заменяет знание КАК это будешь делать…
0
kefirux, #
так на вопрос «как» с полна отвечает ресурс 4pda. собственно он даже и ответил на вопрос «что»
0
kavboy, #
отвечает, ваша правда. только вот по прошивке ветка занимает уже больше 320 страниц…
+1
kefirux, #
ну как бы и не говорю что ваш пост не нужен) я вообще полностью за вашу идею — систематизацию знаний!
+1
Xaser, #
Спасибо за QtADB
0
kavboy, #
Если честно, то когда начал разбираться, работал с устройством через командную строку с помощью adb (из комплекта Android SDK). Даже дошло дело до написания скриптов для выполнения частых операций. Потом натолкнулся на Android Flasher, который частично упростил работу. А после QtADB вообще все упростилось донельзя. Хотя по сути, это все обертки к adb…
0
mreugene, #
Спасибо за статью, как раз вчера Desire приехал :)
0
rtm, #
А вы не забыли упомянуть что Desire бывает 2х видов: C sLCD и AMOLED экранами? И что процесс прошивки отличается.
0
kavboy, #
скажем так, я много чего не упомянул… а отличатся прошивка ROM не будет, будет отличаться только recovery (и то только для clockwork)
–1
skkap, #
Спасибо, полезно узнать новое о своем Desire :)
Но для себя не вижу причин рутовать / перепрошивать его пока что. Топовая версия android, отличный UI HTC Sense, скрины снимаю с компа через утилиту из SDK. Всего хватает, всем доволен.
0
GriGor1Z, #
Что мешает поставить рутованую стоковую прошивку 2.2 от НТС?

Я тоже так думал первые пару месяцев, а сейчас жалею, что не сделал рут раньше. Свобода в выборе приложений, теперь не надо отказываться от чего-то в пользу чего-то.
+1
kavboy, #
скажем так, после того как сделал рут, жить без него не захочется =)
0
ArMikael, #
Не то слово. Я две недели мучался то с нехваткой памяти для установки минимального количества софта, то с проблемой настроить iGo на правильный лад. Теперь фиг меня сгонишь с рутованной прошивки или с EXT-разела. ))

Жаль, что вы этой статьи не написали на месяц раньше, я тоже так как и вы собирал всё по крупицам, пока не решился на какие-то шаги. Ждём достойного продолжения!
0
DaemonI, #
Для возможности перепрошивки recovery необходимо разблокировать возможность перепрошивки не подписанных (практически все сторонние прошивки не подписаны) прошивок recovery (сделать так называемый S-OFF)
Не совсем так, S-OFF — это всего-лишь способ выключить все security проверки в бутлоадере, что фактически делает из него инженерную версию. По этому открывается возможность использовать fastboot для прошивки recovery.img и system.img.

recovery нельзя зашить потому, что NAND-контроллер имеет защиту от записи в /recovery и /system разделы. Если обойти эту защиту, можно запросто зашить в /recovery все что угодно, именно таким образом поступает unrEVOked.
0
kavboy, #
Ваше замечание не противоречит же вышесказанному?
Просто вы выразились другими словами и поподробней :)
0
uzhas, #
Порадовало «стройные ряды дизайрводов». Вы под бой барабанов, что-ли, маршируете?)
0
ManPavel, #
Как без рутования решить вопрос с нехваткой памяти для устанавливаемых программ? Постоянно ругается и, похоже, официальная возможность установки приложений на карту памяти ситуации не исправляет. Как кто решает?
0
ekzo, #
мало инфы. давай вторую серию.
0
kavboy, #
готовлю материал =)
0
ManPavel, #
Да, что делать после рута? Как apps на sd перенести? Когда наконец гугль earth для desire в маркете сделает доступным и где ее взять вне маркета, с установкой на sd? Какая из альтернативных прошивок наиболее удачная? Вопросов много, ждем продолжения.
0
Chikey, #
был с вами полгода… подарил телефон отцу, теперь привычка тыкать пальцем во все телефоны)) И говорить а чо экран такой малюсенький))
0
macRUSHnick, #
А справедливо ли все вышеизложенное для Desire HD/Desire S?
0
kavboy, #
только общие мысли ))
0
BombilCalabasov, #
QtADB плохо работает с девайсами на 2.3.3 и с новыми библиотеками SDK. Такое впечатление, что он не понял ситуации, когда adb вынесли из tools.
0
kavboy, #
QtADB 0.8.1 прекрасно работает с прошивкой 2.3.*

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.