Эту статью я хотел бы посвятить такой теме как редактирование прошивок популярных моделей телефонов от южнокорейской фирмы Samsung и созданию таким образом своей собственной, уникальной прошивки.
Что нужно?
Итак, нам понадобится:
- Понятное дело, компьютер и телефон.
- Интерфейсный кабель или какой-нибудь девайс для флэширования Самсунгов.
- ПО для считывания и заливки прошивки на телефон.
- Прога для редактирования прошивки.
- Софт для создания и редактирования графических файлов и мелодий для телефона.
Остановимся поподробнее на каждом пункте.
Во-первых, телефон. В данной статье будет описываться работа с телефоном модели X600. Но практически аналогичными описываемым мною действиями можно создать прошивку и для других моделей Самсунгов. Используемая мной программа позволяет редактировать ресурсы прошивок для таких моделей как C100, C110, X100, E630, E700, E800, X460 и еще многих других моделей. Кстати, использовать для этих целей я решил прогу
Resource Manager от украинского программера Вадима Бородавко aka Javer. Эта программа, обладая широкими возможностями, весьма проста в использовании, процесс редактирования прошивки в ней до безобразия легок и не должен ни у кого вызвать каких-либо трудностей. Это самая удобная прога для редактирования прошивок
из всех, что я когда-либо встречал.
Во-вторых, для соединения компьютера с телефоном нам понадобится дата-кабель, которым может стать Samsung PCB133LBE, пригодный для эксплуатации с более чем 15 различными моделями телефонов Самсунг (их список примерно соответствует тем моделям, прошивки которых умеет редактировать Resource Manager), или его аналог. Цена аналогов этого кабеля в интернет-магазинах обычно составляет 400-600 рублей. Хотя для сервисных операций с мобильными телефонами обычно используются кабели с COM-разъемом, для этого дела зачастую пригодны и USB-шнуры.
Кстати, следующее, что тебе понадобится, если ты уже раздобыл себе дата-кабель, это программа-флэшер, с помощью которой можно будет считать прошивку с твоего телефона, а так же загрузить в него новую. Для этих целей неплохо зарекомендовали себя программы SGH Flasher/Dumper и E700 Flasher (ищи их и им подобные проги
тут), так что ты можешь выбирать какой из них воспользоваться.
Про программу - редактор прошивок я уже написал, но ты можешь опробовать и иные подобные продукты. Кстати, существует и более поздняя, пятая версия ResMan'a, но она уже платная. Есть также ее "урезанная" бесплатная версия ResManSE.
И, наконец, программы для работы с графикой и музыкой. Ну, для создания и редактирования изображений можно использовать любой графический редактор типа Фотошопа или даже что-нибудь попроще, в зависимости от твоих предпочтений. А вот для создания звуковых файлов, желательно иметь SoundForge или нечто подобное. Так же нам понадобится конвертор для перегонки файлов формата wav в mmf. Задействуем под это дело Ямаховскую прогу WSC-MA2-SMAF.
В принципе, прошивать самому свой телефон вовсе не обязательно, за небольшую сумму тебе окажут такую услугу в какой-нибудь местной мастерской телефонов. Но это, в нашем случае, не самый лучший вариант, так как прошивка после нашей редакции может оказаться слегка глючной и местами недоработанной (почти наверняка так оно и будет - первый bin, как говорится, - всегда комом :)) и нам придется совершить несколько операций по перепрошивке. Ну все, пора переходить к делу.
Приступаем
Первым делом нам понадобится прошивка, которую мы станем редактировать. Мы можем считать ее с телефона при помощи флэшера, или найти в Сети. Прошивка нам подойдет не любая, а только из числа тех, что поддерживает Resource Manager. Посмотреть названия поддерживаемых им прошивок можно в меню "Помощь"->"О программе". Там мы сможем увидеть, что для модели X600 поддерживается шесть версий прошивки: X600EDC2, X600XEDD1, X600XEDI2, X600EDL2, X60XEDA1 и X60XEWL1. Если тебе попадется другая версия, то ResMan не сможет нормально с ней работать.
Кстати, прошивка данных телефонов состоит из трех файлов: первый, с расширением bin - это, собственно, сама прошивка (будем называть ее MCU); второй файл, с расширением cfg, содержит информацию о файловой системе телефона; третий, имеющий расширение tfs, представляет собой содержимое файловой системы телефона (далее cfg и tfs файлы будем рассматривать в паре и называть их TFS). В прошивках модели C100 нет TFS, вместо него там есть MCU2.
Я скачал стандартные MCU версии X600XEDI2 и X60XEWL1 с http://www.samsungpro.ru , так как на моей подопытной мобилке стояла уже патченная. TFS же слил с телефона, используя флэшер. Ты можешь слить и MCU, и TFS со своей мобилы с помощью SGH Flasher/Dumper'а by Alex/AT. Сделать это проще простого: нужно соединить выключенный телефон кабелем с компьютером, затем запустить SGH Flasher/Dumper. Выбираем нужный COM-порт, скорость ставим 115200, выбираем тип телефона, затем нужно нажать один раз на кнопку включения телефона. И, наконец, в разделе "TFS (NAND) Operations" нажать "Dump TFS into TFS/CFG...". Процесс пошел. Как видишь, все очень просто. Практически аналогичными действиями считывается MCU, только теперь в разделе "NOR Dumping" нажимаем "Dump Firmware to BIN...".
Ну вот, теперь мы имеем MCU и TFS для их редактирования. Пора запускать Resource Manager. Для начала открой в ResMan'е файл tfs. В принципе, ничего особо интересного здесь для нас нет, разве что анимация бэкграундов различных менюшек в каталоге "images" и каталог "user/sounds", содержащий стандартные мелодии вызова. Все это мы можем заменить, но мы проделаем это уже после того как отредактируем саму прошивку, т.е. MCU, и вообще, редактирование TFS - дело нехитрое, поэтому останавливаться на этом в подробностях я не стану. Давай, наконец, начнем работу с MCU.
Откроем в ResMan'е bin-файл (несмотря на то, что X60XEWL1 - более поздняя версия прошивки, чем X600XEDI2, я решил использовать последнюю, так как для нее доступно более чем в два раза больше патчей). В левой части окна программы мы можем видеть разделенные на группы доступные для редактирования ресурсы прошивки телефона. Основные пункты здесь это: "Иконки абонентов", "Картинки", "Звуки", "Шрифты", "Языковые ресурсы", "Языковые ресурсы браузера", "Названия операторов", "Функции джойстика и Настройка меню", "Цветовые схемы", "Патчи" и "Устаревшие патчи" (для других моделей и других версий прошивок содержание данного меню может выглядеть несколько иначе). Кроме того, под этим деревом ресурсов можно видеть, сколько свободного места есть в нашем распоряжении. Для X600XEDI2 - около 2,3 метров (есть где развернуться
:)). Мой предыдущий опыт подсказывает мне, что движение по дереву редактируемых ресурсов лучше осуществлять снизу-вверх, т.е. начинать с установки патчей и заканчивать заменой иконок абонентов. Так и поступим.
Патчим
Прежде чем заниматься перерисовкой внешнего вида интерфейса телефона, давай добавим в прошивку некоторые действительно полезные изменения, а так же слегка изменим этот самый интерфейс. Сделаем мы это путем наложения на нее специальных патчей. Процесс патчинга прошивки обычно представляет собой изменение от нескольких байт до нескольких мегабайт кода прошивки, а в результате - наша трубка становится значительно более удобной в эксплуатации :).
За что мне особо понравилась прога Resource Manager, так это за реализацию в ней процесса установки патчей на прошивку. Автор данной программы собрал различные полезные патчи, созданные нашими умельцами и добавил в своей проге возможность установки данных патчей на прошивку простым нажатием кнопки. Все патчи удобно разложены по подгруппам, кроме того, отдельно выделены устаревшие патчи. Можно почитать описание работы выбираемого патча, где описывается их действие, а так же возможные "нестыковки" с другими устанавливаемыми патчами. Более того, патчи эти представлены в виде xml-документов (не смотри на smp-расширение файлов в папке patches), поэтому ты легко можешь, создав свой собственный патч, реализовать возможность его установки с помощью ResMan'а. Посмотрим, что интересного тут есть для моего подопытного X600.
Группу "Устаревшие патчи" можно пропустить, выбираем сразу "Патчи". Здесь мы видим несколько подгрупп, содержащих различные патчи для нашей прошивки.
Первая подгруппа патчей называется "Java" и, соответственно включает патчи, различным образом связанные с поддержкой данной технологии в мобильнике. Здесь я решил установить следующие патчи: поддержка сокетов (теперь будет можно пользоваться MailMan и ICQ ;)); убрал "нижнюю полосу" и уменьшил задержку ввода и патч "шрифт8_русский".
В подгруппе "Другое" можно увеличить время записи диктофона и сделать возможным его быстрый вызов по нажатию джойстика в режиме ожидания, также можно убрать поддержку языка Romana, а заодно и надоедливое окно с надписью "Батарея разряжена".
Ниже идет самая большая подгруппа патчей - "Интерфейс". Здесь собрались очень интересные патчи, предназначенные для изменения интерфейса нашего телефона. Нужно учитывать, что не все они совместимы друг с другом. Наиболее интересны здесь следующие патчи: Graffity Pack - комплексный патч, кардинально видоизменяющий интерфейс рабочего стола телефона; Ronyx, предназначенный для изменения верхней информационной полосы; и еще большое количество не менее занимательных патчей, с описанием которых ты сможешь ознакомиться сам.
В подгруппе "Мелодии" наиболее полезные патчи, на мой взгляд, это: увеличение возможного размера MMF-файлов мелодий до 512 кб; возможность более двух минут прослушивать мелодию (ранее приходилось жать на клавиши, чтоб звук не прекратился); и, наконец, снятие DRM-защиты, которая не позволяла скачивать загруженные через WAP мелодии на компьютер и прикреплять их к
MMS.
В следующей подгруппе, "Многофункциональные", я обнаружил всего один патч - Memory Info, который выполняет сразу несколько функций, к примеру, убирает ограничение на размер папки Java и вообще, с его установкой правильно отображаются размеры папок в памяти телефона.
Подгруппа "Органайзер". Здесь можно русифицировать формат календаря и поменять символ разделителя дат с косой черты на более приятный глазу символ - точку.
Далее идет "Связь". Здесь можно реализовать поддержку проги XTerminal (умеет делать снимки экрана телефона, а также позволяет управлять телефоном с помощью виртуальной клавиатуры), можно открыть доступ ко всем папкам телефона.
Затем следует подгруппа "Сообщения", где можно: снять ограничение на размер создаваемого MMS-сообщения; снять 32-хкилобайтное ограничение на размер извлекаемых их MMS файлов; тут же содержится ряд патчей, позволяющих сделать более удобным процесс набора текстовых сообщений.
И, наконец, последняя подгруппа - "Телефонная книга". В этой подгруппе содержатся патчи, дающие возможность: устанавливать по два номера на одного абонента в телефонной книге; увеличить длину вводимого имени абонента; и, что мне понравилось больше всего, здесь можно сделать возможным установку индивидуальных мелодий на каждого абонента или группу абонентов (мне всегда было непонятно, почему это не было предусмотрено в прошивках Самсунгов изначально).
Ну вот, теперь можно заняться редактированием ресурсов прошивки.
Текст
Как я уже написал, продвигаться по сгруппированным в ResMan'е ресурсам мы будем снизу-вверх. Но группу "Цветовые схемы" мы пока пропустим. Сначала лучше настроить функции джойстика. Выбрав данную группу, мы можем закрепить за клавишами джойстика и софтклавишами определенные действия или даже несколько действий, выбираемых с помощью меню.
Следующие четыре группы связаны с текстовыми ресурсами прошивки. Группа "Названия операторов" никакого интереса не представляет - если захочешь, то можешь сменить эти самые названия. Рассмотрим группы "Языковые ресурсы" и "Языковые ресурсы браузера". Тут мы можем заменить стандартно выводимые надписи и сообщения своими. Все сгруппировано по языкам, есть возможность замены целых блоков строк, что весьма удобно. Здесь можно поприкалываться, заменив целиком какой-нибудь язык своими надписями, чтобы телефон научился выражаться понятными всем фразами ;).
В группе "Шрифты" можно заменить как отдельные символы используемых в телефоне шрифтов, так и шрифты целиком на собственноручно нарисованные или на стандартные шрифты Windows (последнее реализовано не очень качественно, сделать нормальный шрифт таким образом у меня не получилось
🙁 ).
Звуки
Перейдем к редактированию звуковых ресурсов прошивки. Мы имеем возможность заменить абсолютно все мелодии и звуки, встроенные в нашу прошивку. Что ж, приступим. Я надеюсь, что ты к этому моменту уже определился с выбором графического стиля твоей будущей прошивки, неплохо, если звуки будут ему соответствовать. Первым делом стоит заменить все эти ужасные стандартные мелодии.
Как ты знаешь основным звуковым форматом для модельного ряда телефонов Самсунг стал SMAF (расширение файлов мелодий - mmf). Инфу о том, как создавать качественные мелодии в данном формате легко обнаружить в инете, например на
все том же сайте sgh.ru. Я вообще не стал заморачиваться с этим и загрузил уже готовые мелодии. Но над различными звуками стоит поработать самому. Можно позаменять различные служебные звуки, а также заменить стандартные пианино и барабан при нажатии клавиш на что-нибудь более интересное (например, на электрогитару или же сексуальный женский голосок
;)).
Создавать такие небольшие mmf-ки удобно с помощью проги WSC-MA2-SMAF. Но прежде нам необходимо создать wav-файлы звуков, для чего неплохо использовать SoundForge, умеющую делать со звуком все мыслимые и немыслимые вещи. Опять же не стану описывать тонкости работы с данной тулзой, скажу лишь, что с ее помощью можно создать и отредактировать файл любого более-менее распространенного звукового формата, наложить нужные эффекты, сделать точную обрезку, отрегулировать с помощью эквалайзера частотные характеристики звука и много еще чего (можно создать звуковые файлы из микрофонной записи и т.д.).
После того, как работа над звуком будет закончена, его нужно сохранить как wav со следующими характеристиками: Sample rate (Hz) - 8000, Bit-depth - 16, Channels - Mono. Получившийся файл кидаем на окно программы WSC-MA2-SMAF и кликаем на "ok". Прослушать полученный mmf можно, например, в проге MidRadio Player. Если все нормально - импортируем созданный файл в код прошивки.
Графика
Пришло время менять графику прошивки. Это, пожалуй, самая сложная часть нашей работы. Чтобы все
получилось классно, нужно обладать хотя бы минимальными умениями пользоваться графическими редакторами, обладать небольшими художественными способностями и уймой времени (рисовать придется
немало ;). Конечно, можно оставить все как есть или ограничиться небольшими изменениями. Удобнее всего работать следующим образом: экспортировать оригинальные ресурсы из группы "Картинки", чтобы можно было уже в графическом редакторе рядом с окном оригинального самсунговского рисунка создавать в новом окне свое творение - так сказать, сразу сравнивая их.
И не забудь про установленные тобой графические патчи! Например, если ты установил патч Ronyx, то тебе уже не нужно перерисовывать ресурсы в подгруппе "Информационное меню", но ты можешь заменить картинки, созданные автором Ronyx'а (можно также частично отменить действие этого патча). Когда будешь загружать созданные тобой рисунки в прошивку, не забывай устанавливать прозрачность, где это необходимо. Не забывай так же о том, что размеры рисунков должны быть такими же, как в оригинале.
После замены рисунков можно вернуться к цветовым схемам телефона. Для их изменения нужно, чтобы был установлен графический патч "Реструктуризация цветовых схем оформления". Ничего сложного тут нет, просто следуй при выборе цветов намеченному тобой общему графическому стилю (если он у тебя есть
:)).
Надеюсь, у тебя еще осталось свободное место в твоей прошивке, ведь теперь нужно заменить иконки абонентов и групп. Заметь, здесь уже не обязательно, чтоб размер загружаемой иконки совпадал с оригиналом, кроме того, можно задать позицию вывода картинки на экране мобильника. И обязательно оставь помеченным чекбокс, чтоб автоматически делались уменьшенные копии иконок для телефонной книги - это очень удобно.
Все! Наш MCU готов. Сохраняем получившийся бинарник. Теперь осталось заменить графику, размещенную в TFS (там находятся рисунки анимации различных меню). Делается это аналогично тому, что мы уже делали в группе "Картинки" bin-файла прошивки.
Закачиваем
Для прошивки телефона устанавливаем в SGH Flasher/Dumper те же настройки, что и при чтении прошивки. Не забудь: телефон при всех описываемых операциях должен быть выключенным! Жмем на кнопку "Flash firmware (BIN) File" и выбираем созданный нами бинарник. Далее ждем окончания процесса прошивки (не знаю точно как долго на такой скорости, наверно, минут 20-30). Перед тем как закачивать TFS, нужно очистить его содержимое в телефоне. Для этого есть кнопка "TFS (NAND) Format" - нажимаем ее и дожидаемся окончания данной процедуры. Затем прошиваем область TFS, нажав на "Flash full TFS" и опять же ждем. Теперь жмем на "Disconnect phone". На этом процесс прошивки заканчивается. Теперь можно посмотреть, что же получилось в результате наших трудов =).
Если, получившаяся прошивка глючит или еще чего, то придется ее дорабатывать. Если, вдруг, телефон по каким-то причинам после перепрошивки сдох (ну перестал работать вообще), то не спеши его хоронить и желать такой же участи автору статьи - я сам убивал кучу телефонов, но насмерть - ни разу, все легко восстанавливались новой перепрошивкой (но все же хочу предупредить, что вся ответственность за твои действия над твоим телефоном лежит только на тебе, я лишь делюсь в этой статье собственным опытом
;)). Самое главное: перед началом всех вышеописанных действий сделай дамп рабочей прошивки!!
P.S. В инете можно отыскать большое количество измененных прошивок для различных моделей Самсунгов, например на
http://www.sgh.ru - перед тем как создавать свою прошивку, полезно будет посмотреть на них.