Итак,
в руки мне попал самый настоящий
HTC Dream, но - с модифицированной прошивкой и сотней с лишним программ в придачу, добрые две трети которых трапалось (видимо, хозяин прямолинейно удалил пользовательские данные). Я всерьез задумался над тем, как вернуть всё в исходное состояние, и через некоторое время нашел внятный рецепт
здесь.
Итак, ингредиенты:
- HTC Dream собственной персоной с полностью заряженным аккумулятором;
- SD-карточка, отформатированная в FAT32;
- Немного терпения и доступ в инет.
Первым делом качаем
DREAMIMG.NBH - это совершенно официальная прошивка от HTC RC29 - та самая, в которой был обнаружен баг с получением рутовых привилегий, позволивший теперь так веселиться всевозможным хакерам и создателям собственных ROM-ов. При необходимости распаковываем ее из .zip и помещаем в корневую директорию нашей SD-карты - это можно сделать либо при помощи "большого брата" с карт-ридером, либо через сам девайс, подключенный как Mass Storage - если, конечно, предыдущие эксперименты не привели его в "бессознательное" состояние.
Устанавливаем SD-карту в G1. Если устройство включено - выполняем стандартное выключение, обычно это достигается длительным удержанием красненькой Отбой/Power, далее во всплывающем меню - "Power Off".
Включаем, удерживая Power + Camera, вываливаемся в бутлоадер (он может выглядеть по-разному - хакнутый "беленький" и "радужный" заводской):
Если не дошли до вопроса о перепрошивке - еще раз проверьте, что карта отформатирована в
FAT32, а в корне - правильный файл с правильным именем.
Запускаем загрузку имиджа нажатием на кнопку
Power или
Action (это трекболл). Произойдет распаковка имиджа и его проверка - где-то секунд 30. Дальше будет предложено ни в коем случае не обесточивать устройство:
По окончании - можно перегружаться.
Если что-то пошло не так - например, ошибка
Unknown failed, нужно попробовать выполнить предварительное стирание через
recovery. Для этого надо включить устройство кнопками
Power +
Home. Если на экране появился восклицательный знак:
, то это - заводской, родной recovery - нажимайте
Alt-L, чтобы попасть в текстовое меню. В других случаях этого делать не надо:
Но в обоих вариантах для стирания надо жать Alt-W - будут уничтожены разделы cache и data - это пользовательские данные. После этого надо опять перезагружаться Power + Camera и снова повторить шаги выше.
Что мы в итоге получили? HTC Dream с прошивкой, в которой еще не закрыта дыра безопасности для получения рута, оригинальный Android OS 1.5.
При первоначальном старте эта прошивка попросит ввести данные вашего аккаунта Google (так называемая "активизация"). Для этого, в свою очередь, потребуется услуга пакетной передачи данных с доступом в интернет, которая, скорее всего у вас не заработает.
Почему? Внутри родной прошивки по умолчанию установлена
APN для T-Mobile! Чтобы ее изменить, нажмите
Menu и добавьте в список своего оператора связи. Например, для Мегафона вводим Name: Megafon, APN: internet. Если все сделано верно, вверху слева от значка уровня сигнала сотовой сети появятся иконка со стрелочками обмена с сотовой сетью - теперь можно смело вводить данные своего аккаунта Google и восхищаться девственностью системы ;)
Те, кто проделали всё это ради установки усовершенствованной прошивки на этом обычно не останавливаются - они неизбежно должны "получить рута":
1. Запускаем приложение Android Market, ищем и устанавливаем программу
Telnet;
2. Выходим кнопкой
Home на родной десктоп, открываем клавиатуру и нажимаем 2 раза Enter, потом набираем
telnetd и еще раз Enter. Внешне это похоже на быстрый поиск контакта, но на самом деле вы только что запустили сервер telnet на телефоне.
3. Запускаем приложение telnet, соединяемся с сервером localhost по порту 23 - и, о чудо, нам выплевывается строчка мусора, завершающаяся решеткой.
Вот это оно и есть, root-доступ. Обычно, заменяют содержимое recovery-имиджа, который заранее сохраняют на SD-карту, например выполняют команду:
flash_image recovery /sdcard/cm-recovery-1.4.img
Дальше можно перезагрузиться в recovery (см.выше), чтобы произвести манипуляции по смене системной прошивки. Например, вот здесь описание как это сделать для
CyanogenMod.