HTC Desire: устранение проблемы нехватки места в ROM

Думаю, многие владельцы HTC Desire были в ситуации, когда девайс начинает сетовать на недостаток свободного места в ROM, отказываясь при этом, например, синхронизировать почту. Усугубляется это тем, что все поддерживающие перенос на SD программы уже перенесены, и вроде как остаётся 2 пути: удалить часть приложений или сменить телефон.

HTC Desire

Считаю оба варианта неприемлемыми, ибо установлено только реально востребованное ПО (вроде Навител и 2ГИС). К тому же Desire нисколько не устарел, и свои функции выполняет прекрасно.

В результате поиска в Интернет был найден способ сделать так, что “и волки сыты, и овцы целы” – не лишаться уже установленных программ, и получить около 50Мб свободного места.

Пост не претендует на техническую новизну, и многие примененные утилиты уже упоминались в т.ч. на Хабре. Я решил собрать воедино кусочные сведения и изложить в форме инструкции — что нужно делать, и что при этом получается. Все указанные шаги я успешно выполнил на своём Desire.

Традиционное предупреждение:

1) Всё ниже изложенное — в ознакомительных целях. Если захотите повторить — то только на свой страх и риск, крайне внимательно и без спешки!

2) Автор за потерянные данные испорченные девайсы ответственности не несёт!

3) В результате этих действий устройство лишается гарантии!

Итак, исходные данные – HTC Desire РСТ c офиц. Android 2.2 (версия прошивки 2.29.405.5), НЕ рутованный, не «брендированный». Т.е. то, что имется на руках у многих пользователей.

Если у вас залоченный аппарат, либо куплен за границей, погуглите по ключевому слову «goldcard», ибо есть ряд особенностей, на которых я не буду останавливаться.

Суть манипуляций сводится к следующему:

1. получаем root-права

2. делаем S-OFF загрузчика

3. делаем дополнительный раздел на флешке, для установки софта туда

4. устанавливаем утилиту Link2SD из маркета и переносим программы из ROM в созданный ранее раздел

В ходе всех этих действий при соблюдении осторожности и аккуратности данные в тлф и на карте памяти будут в целости и сохранности. Но лучше сделать-таки бэкап ;-)

Приступим!

1. Получение root-прав

Способ получения root довольно давно известен, и хорошо описан, не стану повторять его тут.

2. Делаем S-OFF

Что такое вообще S-OFF? В устройствах HTC имеется защита, называемая secuflag. Благодаря ей разделы /system и /recovery монтируются в режиме read-only. Поэтому даже при наличии рутных прав, мы не можем изменять их содержимое.

Группе лиц, именующих себя Alpharev, удалось отключить эту защиту, т.е. сделать S-OFF. Упомянутые разделы /system и /recovery будут смонтированы на чтениезапись, это будет использовано далее, в п. 4.

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

Перед началом процедуры получения S-OFF:

1. полностью зарядить аппарат

2. проверить, что HBOOT у вашего Desire версии 0.93.0001 (эта версия устанавливается при прошивке официальной 2.2)

3. получить root-права (см. п. 1)

Сама процедура следующая:

1) заходим на сайт AlphaRev и качаем подходящую версию утилиты (для Windows или Linux)

2) В полученной форме на сайте выбираем:

Alpharev

Здесь Serial number – это серийный номер устройства. Узнать его можно, заглянув в “Настройки” –> “О телефоне” –> “Идент. код телефона” –> “Сер. номер устройства”. Введите его, и нажмите Generate key

3) После этого сайт сгенерирует вам ключ, который пригодится далее:

Alpharev

4) Запустите revolutionary.exe (в Windows — от имени Администратора)

5) Подключите тлф по USB, и дождитесь, пока утилита его определит

6) Введите ключ, полученный на шаге 3

7) Ждите. Девайс будет перезагружен. Читайте сообщения утилиты, она уведомит вас о ходе процесса, и о результатах работы.

3. Создание дополнительного раздела на SD-флешке

По умолчанию вся SD-флешка используется для хранения данных пользователя и установки программ штатными средствами ОС 2.2 и выше. Мы же создадим дополнительный первичный ext2-раздел, куда и будем переносить исполняемые файлы установленных приложений, при этом оставляя в ROM лишь ссылку на них (т.о. Android будет считать, что программы находятся в памяти телефона, в то время как реально они будут лежать на SD). Делать это будет утилита Link2SD, и сейчас мы подготовим раздел для обеспечения её работы.

Задача простая: с помощью любого доступного вам редактора разделов создайте второй (следующий сразу за FAT32-разделом для хранения данных) первичный ext2-раздел достаточного размера. Я использовал Magic Partition Manager и создал ext2-раздел размером 1024 Мб

Т.е. процесс такой:

1. вытащить флешку из телефона и подключить к компу

2. скопировать всё содержимое флешки на комп

3. удалить все разделы и создать 2 первичных — FAT32 и ext2

4. вернуть обратно данные на FAT32-раздел

5. поставить флешку в телефон

Лучше, чтобы флешка была быстрая (рекомендуется минимум класс 4). Я купил на eBay 8Gb флешку Transcend class 10 за ~$20, она меня полностью устраивает.

4. Утилита Link2SD

Устанавливаете из Маркета программу Link2SD, при первом запуске выбираете созданный ранее раздел, утилита настроит автоматическое монтирование его при загрузке устройства (для чего собст-но и нужно иметь доступ на запись в /system). Перезагружаете аппарат, и вновь запускаете Link2SD. Вам будет выведен список приложений, и предложено сделать линки для тех программ, что установлены в памяти телефона. Программы, установленные в /system, утилита не переносит, и я настроил фильтр таким образом, чтобы отображались только «неприлинкованные» пользовательские приложения:

При выборе какого-либо из них появляется форма:

По нажатию на кнопку «Create link» файлы программы будут перенесены на SD, и созданы ссылки на них. В данном случае можно сэкономить 861Кб, перенеся 3G Watchdog на ext2-раздел.

Не спешите переносить всё подряд — рекомендую сделать это только для крупных приложений, которыми нечасто пользуетесь. Более подробные сведения о работе утилиты можно получить в ней самой при выборе Mеню -> About

Да, и конечно, Link2SD требует root-прав для своей работы!

FAQ

1. А можно вернуть всё «как было»? Т.е. снова получить девайс в исходном виде — без рута и с S-ON

Да, можно, правда лично я не пробовал. Это делается посредством прошивки стоковой 2.2, при этом HBOOT будет заменён на прежний, и root-прав больше не будет. Как результат — получим обычный телефон, и вряд ли в СЦ смогут в случае чего распознать, что проводились описанные модификации ;) Поэтому в п. 3 предупреждений я слегка «приврал».

2. Не верю я UnRevoked и AphaRev! Где можно взять исходники утилит и собрать их самому?

Нигде. Исходные коды утилит и описание уязвимостей, которые они используют, в свободном доступе не существуют.

3. Сколько времени происходит весь процесс?

Не более получаса. Хотя торопиться не следует, и помните про бэкап :)

4. Сколько это всё стоит?

Нисколько. Всё упомянутое ПО распространяется бесплатно, однако авторы приветствуют донейты ;)

5. Не будет ли тормозить всё при работе с SD?

Субъективно — разницы не заметил, ни быстрее, ни медленнее не стало. Возможно, сказывается class 10 флешки, потому и рекомендую обзавестить максимально быстрой.

6. Что будет, если подключить телефон к компу в режиме «Дисковода»?

Всё как раньше — станет доступно содержимое FAT32-раздела. При этом ext2-раздел не отмонтируется, соответственно все программы и виджеты продолжат работать.

Профит?

После выполнения всех этих действий вместо прежних 15..18 Мб и периодических сообщений о нехватке памяти я получил ок. 51 Мб свободного места, что достаточно для установки любого требуемого мне приложения. При этом не нужно менять прошивку, перенастраивать девайс и всё ПО.

Побочно — получил рутный доступ к девайсу, со всеми вытекающими плюсами и минусами, и удобные средства вроде nandroid backup.

Надеюсь, для некоторых этот пост будет поводом иначе взглянуть на свой Desire!

Читайте нас где удобно

Ещё на эту тему было