Думаю, многие владельцы HTC Desire были в ситуации, когда девайс начинает сетовать на недостаток свободного места в ROM, отказываясь при этом, например, синхронизировать почту. Усугубляется это тем, что все поддерживающие перенос на SD программы уже перенесены, и вроде как остаётся 2 пути: удалить часть приложений или сменить телефон.
Считаю оба варианта неприемлемыми, ибо установлено только реально востребованное ПО (вроде Навител и 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) В полученной форме на сайте выбираем:
Здесь Serial number – это серийный номер устройства. Узнать его можно, заглянув в “Настройки” –> “О телефоне” –> “Идент. код телефона” –> “Сер. номер устройства”. Введите его, и нажмите Generate key
3) После этого сайт сгенерирует вам ключ, который пригодится далее:
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!