Всем снова привет :) Думаю многие пикабушники знают, что одно из моих хобби - реверс инжиниринг ретро телефонов, их хакинг и попытки впихнуть невпихуемое. Полгода назад в рамках серии статей я с нуля взломал неизвестный кнопочный телефон, отреверсил прошивку и написал для него бинлоадер (загрузчик нативных программ) и первую программу для него - игру змейку!
Две недели хакинга... это было действительно круто!
Однако телефоны на спредтруме это круто, но современные кнопочники на этом процессоре, к сожалению, используют компрессию LZMA и что-то пропатчить в них иногда проблематично. Плюс у них крайне мало памяти для написания каких-то сложных патчей. Поэтому я время от времени качаю прошивки для телефонов из своей школьной юности и ковыряю их в IDA Pro, чтобы не только иметь доказательную базу для своих статей, но и просто попытаться на них что-то запилить. Одним из таких стал легендарный Samsung SGH-C100.
Модель 2003 года базировалась на чипсете Skyworks, который условно можно назвать братиком Neptune LTE в Motorola C350 и E398 (используется идентичное ядро ARM7TDMI, только работающее на более низкой частоте). C100 стал настоящей легендой благодаря поддержке загрузки контента (хотя настоящей ФС в нём особо и не было), Java-приложений, а также очень крутому UFB-дисплею с разрешением 128x128 и конечно синтезатору Yamaha, который давал ту самую полифонию.
В процессе изучения телефона я наткнулся на то, что Samsung почему-то выкладывала прошивки вместе с map-файлами линкера. Для тех кто не в курсе, процесс компиляции прошивки упрощенно происходит в два этапа:
Компиляция отдельных модулей в объектные файлы - т.е файлы с расширением .o. Объектные файлы содержат в себе как код с данными, так и информацию о символах (функциях и переменных) в них, а также зависимостях от других модулей.
Линковка набора объектных файлов в единую прошивку. Здесь специальная программа - линкер, анализирует все входные объектные файлы и собирает из них готовую программу, исправляя ссылки на зависимости на конкретные адреса в исполняемом файле.
Так вот, с помощью специальной опции можно попросить линкер выдавать текстовый .map файл для дальнейшего анализа секций, таблицы символов и помощи при отладке кода. Как вы уже поняли, в этом файле хранятся текстовые имена всех функций и глобальных переменных в прошивке, а также карта памяти процессора:
Это настоящая находка для реверсера, поскольку по именам и коду большинства функций можно легко понять их предназначение, список аргументов (тут же все таки Plain-C) и просто понять принцип работы MMI (оболочки) в прошивке. Я написал парсер, который импортировал map-файл в базу IDA Pro и теперь у нас есть полностью отреверсенная прошивка для C100, которую можно патчить и моддить вдоль и поперек :)
На скриншоте код той самой игры из первого видео в статье
Так что делюсь базой и с вами. Базу свободно можно использовать как референс при реверсе других телефонов на Skyworks'ах с помощью поиска по паттернам, а также для реверса более поздних Swift'овских телефонов, но с ними надо поковыряться подольше. Знаю что меня читают инженеры, так что может кто-то тоже вдохновится и пойдет моддить свой C100? :)
Поковырял бы сам и запили статью, но я чет купил пару кабелей для C100 и все оказались нерабочими :(
После статьи мне написали несколько инженеров из Тэлмы и Ронды - компаний, которые аутсорсили разработку софта для телефонов Motorola из нулевых. Теперь доподлинно известно, что в РФ разработали немалую часть прошивки Motorola E398:
Пилили софт для LG:
Добавляли в Android поддержку CDMA помимо GSM (комdпания Teleca):
Помогали пилить Maemo и Meego (которая теперь стала Sailfish и в последствии Авророй):
И по заявлению комментатора с Хабра даже Nokia X (тот самый Android-смартфон) помогали доделать :)
В общем вижу что тема с Moto E398 вам зашла :) А значит я анонсирую новый проект: Motorola E398 Pro Max! В общем если вы читали статью, то помните, что аппаратную платформу телефона я рассказывал на примере устройства, которое мне досталось из утиля после другого ремонтника. Здесь всё было залито флюсом, угрето, а телефон при подключении ЛБП начинал потреблять аж 250мА...
Как же ему плохо и больно. Колодку SIM - украли, MicroSD - отломали, всё угрели и упаяли и даже местами маску соскоблили...
Но вы ж не думаете, что в моём блоге, где я стараюсь реставрировать любые ретро-штучки и привести их в рабочий вид, этот телефон пойдет на распай или ещё того хуже - в металлолом?! Оказалось что у меня есть подписчик, сервисник, у которого есть некоторое количество новых контроллеров питания для E398. Он пообещал подогнать мне пару штучек, дабы я отремонтировал родную плату этого прекрасного гаджета и восстановил телефон ровно в таком виде, в каком он вышел с конвейера 22 года назад - с родным корпусом и IMEI'ем :)
Но я так подумал... а может сделать E398 Pro Max? Ну, я ведь упомянул, что сюда подходит дисплей от L7, который был в разы качественнее оригинального... да и стандартный разъём не особо удобен, можно и Type-C поставить. А может и джек тогда на 3.5мм переделать? В общем, модерская душа требует аппаратных зрелищ :)
Осторожно: данная статья - одна из моих лучших работ, посвященных истории моддинга мобильных телефонов. Если вам интересно узнать о том, как команда студентов хакала загрузчик E398, как инженеры Motorola разработали настоящее чудо и каким образом команда хакеров превращала простую "звонилку" в смартфон - приглашаю вас к прочтению!
Многие ли из вас помнят о легендарном музыкальном телефоне из далёкого 2004 года - Motorola E398? На момент выхода, модель буквально не имела аналогов на рынке и за относительно скромную цену в 150$ предлагала два огромных динамика, слот для MicroSD-карты, возможность проигрывания MP3-треков и даже неплохую поддержку 3D Java-игр. Однако Moto E398 гораздо интереснее, чем кажется на первый взгляд...
❯ Предисловие
Пожалуй давно у нас не было статей в рубрике «устройства, которые мы потеряли». В прошлом году, мы успели с вами посмотреть на самые разные гаджеты: Nokia 6600, Siemens C65, HTC Wallaby и этот список далеко не конечный. Мы узнали с вами о том, на каких аппаратных и программных платформах были построены эти устройства, на что они были способны на практике и даже хакнули один из телефонов, научив его запускать нативные программы с MicroSD-флэшки:
HTC Wallaby
Однако изучая моддинг-сцену телефонов нулевых, мы незаслуженно с вами забывали о телефонах Motorola. И зря: «моторолки» были одними из самых интересных устройств с точки зрения кастомизации, а коммьюнити моддеров существует до сих пор, спустя более чем 20 лет после выхода самых популярных телефонов компании. MotoFan всё ещё жив, в нём каждый пень пишут более 500 сообщений и общается около 30 постоянных участников, а из недавних значительных достижений — порт Doom и эмулятора NES...
Но конечно такие возможности моддинга стали доступны отнюдь не сразу. Это результат тысяч часов реверс-инжиниринга и хакинга прошивок, сборки общей базы данных и паттернов по аппаратной и программной платформе телефонов Motorola, а также сотни замыканий тест-поинтов и уходов телефона в ресет из-за испорченной памяти... Но начнём, пожалуй, с предыстории.
Коллекция EXL
❯ Появление платформы P2k
Практически всю свою долгую историю телефоны Motorola строились на базе чипсетов собственной разработки. В моделях 90-х годов использовались самые разные аппаратные и программные платформы, и уже тогда предпринимались первые попытки моддинга. Конечно сам моддинг был утилитарный и в основном заключался в удалении симлока, русификации, изменения графики — но факт остаётся фактом.
Развитию моддинга способствовало использование знакомой процессорной архитектуры m68k, которую разработала также Motorola. В те годы, процессоры этого семейства были очень популярными и использовались не только в телефонах, но и в КПК Palm, компьютерах Amiga и даже в Mac'ах. Конечно ARM уже существовал в те годы, и легендарное ядро ARM7TDMI-S понемногу лицензировалось чипмейкерами, но превосходство на рынке портативных гаджетов всё ещё оставалось за m68k и Hitachi SuperH.
В 1999 году, Motorola представила новую линейку CDMA-телефонов построенных на процессорах с новой архитектурой M-Core (в какой-то степени наследник m68k, разработанный для переносимых устройств). Архитектура отличалась от m68k тем, что была RISC (что кратно снижало комплексность декодера инструкций) и имела фиксированный размер инструкции — 2 байта, что позволяло заметно экономить флэш-память. Но самое интересное было то, что для этих телефонов Motorola разработала новую программную платформу, имя которой было P2k (Platform 2000)!
В 2001 году, Motorola продолжает выпускать телефоны с m68k и M-Core «под капотом», однако к ним добавляются модели Timeport, которые использовали чипсеты разработки Texas Instruments под названием Whitecap и построенные на совершенно другой оболочке — EMMI/Legacy. По сути, это был предшественник мегапопулярного TI Calypso, который использовался с 2003 по, как минимум, 2010 год! В свою очередь, платформа P2k всё так же продолжала развиваться и использоваться в новых моделях, а к CDMA-устройствам также добавилась первая GSM-модель под названием V60.
И вот, в 2002 году, Motorola наконец-то представляет новую платформу — Neptune LCA (Low Cost Advance), построенную на базе ARM ядра. Первым телефоном с этим чипсетом стал бюджетный Motorola C330, который получил умеренный успех, но настоящим бестселлером стала последующая модель, которая получила имя C350! Телефон был невероятным прорывом для 2003 года в сегменте ультрабюджетных устройств: за 60$ (или 4.444 рубля), C350 предлагал цветной дисплей с 12-битным цветом (как у Symbian смартфонов тех лет!), поддержку GPRS с WAP-браузером, некоторый объём встроенной памяти для хранения анимации, картинок и полифонии, и даже 2.5D игру MotoGP. Такие крутые программные фичи появились благодаря новой версии MMI, которая всё также берёт корни от той самой P2k из 1999 года...
Что такое MMI?
MMI в кнопочных телефонах — это оболочка, которую видит пользователь, или если говорить простыми словами — «операционная система». В основе MMI лежит фреймворк для построения пользовательского интерфейса и разработки приложений, менеджер окон, рендерер шрифтов и изображений, декодеры аудио/видео, иногда аудио-микшер и абстракция над API конкретной операционной системы. У Motorola такая абстракция называлась suapi.
Сам MMI разрабатывается отдельно от телефона и отлаживается в специальном симуляторе на ПК. Например для Symbian — это вариация ядра EKA под Windows (не смейтесь, так и было!), для Siemens — билд оболочки под Windows (её также распространяли в SDK для J2ME), а для Motorola — полный эмулятор Neptune LTE, включая ARM-процессор. Такие вот инженеры Motorola молодцы :)
Из серьёзных конкурентов у C350 был разве что Samsung C100, но даже он стоил значительно дороже. Однако время шло, и уже в конце 2003 года, Motorola продолжила развитие ARM-платформы Neptune, представив следующее поколение — Neptune LTE (Low Tier EDGE), которое отличалось поддержкой стандарта связи EDGE. Первым устройством на LTE стала раскладушка V600 — продолжение той самой V60, в которую инженеры Motorola установили аж 5 мегабайт встроенной памяти и, только вдумайтесь, добавили поддержку воспроизведения MP3 с битрейтом в 320кбит/с!
Однако у V600 не было слота под SD-карту, так что наличие поддержки MP3 было не особо оправданно. Но уже в 2004 году, Motorola представляет телефон, который просто перевернул мобильный рынок в бюджетном сегменте. И как вы уже поняли, речь идёт о E398! Устройство, построенное на чипсете Neptune LTE, позиционировалось как специально предназначенное для прослушивания музыки и просмотра роликов. Помимо слота под MicroSD-карты и поддержки MP3, Motorola оснастила E398 двумя огромными стереодинамиками, поддержкой воспроизведения 3GP и MP4-роликов, а также довольно шустрой Java-машиной JBlend с поддержкой MIDP 2.0. Интересно было и то, что E398 стал одним из пионеров трёхмерной графики на кнопочных телефонах благодаря поддержке программного растеризатора Mascot Capsule v2 (да, как у Sony Ericsson, но чуть постарше)...
❯ Первые шаги
Немудрено что у такой недорогой и при этом нафаршированной с точки зрения функционала модели появились свои фанаты, и как в случае с телефонами Siemens, среди них были молодые студенты-гики, которые постигали искусство реверс-инжиниринга и моддинга... Но вот незадача: в отличии от тех же самых Samsung и LG, у Motorola с Siemens загрузчики были заблокированы с завода. У Siemens'ов задача разблокировки решалась генерацией специального ключа BootKEY на основе двух других значений, уникальных для каждого процессора Infineon S-Gold: ESN и Hash:
Вам знаком интерфейс этой программы? :)
У «моторов» же вообще была неприступная стена без возможности пользовательской разблокировки, и BootROM с вторичным загрузчиком имели сразу несколько степеней защиты с проверкой RSA-подписи выполняемого кода. Но был очень важный нюанс: загрузчик нельзя было разблокировать никаким способом, а инженерность (и возможность запуска неподписанного кода) каждого процессора определялась всего лишь одним фьюзом, который прожигался на заводе при производстве чипа!
Тот самый фьюз.
И вот всего один бит, один прожженный фьюз отделял целое коммьюнити от возможности модифицировать свои телефоны... Но затем один 24х-летний парень под никнеймом @Vilko с другими ребятами умудрился отреверсить загрузчик и обнаружить, что он:
Не проверял подпись, если прошивка зеркалировалась выше первых 16МБ Flash-памяти (работало только на моделях с 16МБ — как, например, C350). Можно было пропатчить заголовки в CG1 и просто указать базовый адрес XIP контроллера + 0xFFFFFF.
Не проверялся порядок проверки подписи. Там был сложный и замороченный механизм верификации загрузки, поэтому хак с подменой порядка верификации загрузчика позволял обойти проверку подписи модифицированной прошивки и запускать произвольный код.
В вспомогательном RAM-загрузчике, который загружается через USB, была уязвимость переполнения стека, благодаря которой можно было изменить адрес возврата и заставить загрузчик прыгнуть на произвольный код. С помощью этой уязвимости можно было понизить версию загрузчика на более старую, которая обходится одним из методов выше.
И уже в 2004 году, Vilko с командой Motofan успешно хакнули загрузчики первых версий на E398. А что началось после этого... сложно описать в рамках одной статьи! Патчили конфигурацию усиления динамиков (делая их ещё громче!), драйвер камеры, меняли графику и даже писали патчи, которые так или иначе изменяли поведение телефона. Прошивку активно реверсили в IDA Pro, изучали её архитектуру, находили сигнатуры функций и по паттернам выискивали их в других телефонах на той же платформе...
В 2005 году, как бы это не звучало парадоксально, Motorola выпустила первый «Apple-телефон» — ROKR E1. По сути, это был тот-же самый E398, однако в него добавили дополнительную кнопку для запуска проигрывателя, модную белую тему и плеер iTunes, знакомый нам по продукции Apple. При этом сам iTunes был реализован в виде Java-приложения — corelet'а и тем самым привлек внимание владельцев обычных E398'ых. Гений в лице @Vilko в одиночку умудрился пропатчить прошивку от E1 и запустить её на E398...
ROKR E1
Но всё равно сообществу Motofan было мало существующего функционала и они начали думать: как бы превратить E398 в полноценный смартфон и добавить возможность запуска нативных программ, написанных на C? Поскольку функции UI-фреймворка P2k ещё были недостаточно изучены, подступиться решили к Java-машине: примерно в 2005-2006 году, предположительно с R&D подразделения Motorola в России, утекли Elf-бинарники прошивки со всей информацией о символах: имена и адреса функций, глобальных переменных, информация о секциях прошивки и другие полезные данные. Там же были найдены реализации абстракции над графической подсистемой в JBlend (Aplix JBlend использовалась во многих мобильных телефонах нулевых и отличалась относительной простотой портирования благодаря абстрагированию вообще всего что можно), а также нативные реализации методов из CLDC и MIDP.
Стоп... R&D Motorola в России?
Да! Когда-то части прошивки P2k разрабатывались в офисах в Санкт Петербурге и Владивостоке. В Питере команда занималась портированием JBlend для P2k, дабы в C380 и E398 появилась поддержка Java-приложений, а вот чем занимался офис в Владивостоке мне неизвестно. Так что первая тайна E398 заключается в том, что к её созданию приложили руки в России :)
В российских R&D явно работали ребята, которые поддерживали не только бизнес-процессы транснациональной корпорации, но и идеи сплоченного коммьюнити моддеров, так что через некоторое время после закрытия отделов, в сети оказались те самые сливы Elf'ов прошивки, а чуть позже — исходный код порта JBlend для P2k. Спасибо вам ребята, которые решили поделится этим добром, именно благодаря вам спустя 22 года моддинг-сцена Motorola продолжает развиваться на полную катушку!
К слову, разработку прошивки в РФ аутсорсила не только Motorola. У нас точно был R&D-центр LG: ко мне в комментарии пару лет назад приходил инженер-хабровчанин, который рассказывал о том, как они писали программную реализацию OpenGL ES 1.0 для телефонов на чипсетах Qualcomm для западного рынка. Есть также догадки о том, что какую-то часть разработки могла аутсорсить Nokia (или её подрядчик), но железных доказательств у меня нет :(
Некий моддер из Польши под ником elektro255 додумался, что можно пропатчить одну из функций JVM так, чтобы она при вызове с определенными аргументами загружала нативную программу по заранее определенному адресу и передавала ей управление. Это был первый простейший бинлоадер, который позволял писать несложные программы по типу игр и разных демок — но это был большой задел на будущее...
В 2007 году, в моддинг-сцене Motorola случается огромный прорыв: появляется самый первый эльфлоадер, библиотека функций и EP1 (ElfPack 1). Благодаря сливу дебаг-информации, моддеры разобрались в сложной оконной системе UIS (UI-фреймворк P2k, сложность заключается в огромном количестве стейт-машин) и научились писать полноценные программы, которые работали как нативные приложения, собранные вместе с прошивкой! Помимо этого, были найдены функции для управления потоками и щедуллером RTOS, благодаря чему появилась возможность реализовать полноценную многозадачность. Теперь эльфы могли делать полезную работу в фоне: например обновлять почту, сообщения в аське (почти пуши!) или заставить по рабочему столу бегать овечку :)
Ну а дальше процесс моддинга пошёл семимильными шагами: эльфпаки были портированы на Razr V3, V360 и другие популярные модели, а затем раскопали и модели на базе процессоров M-Core. Дело в том, что в Россию попадали исключительно «бюджетные» по видению Motorola модели на платформе Neptune LTE/LCA, в то время как на западном рынке использовались флагманские M-Core'ы. Энтузиасты получили в свои руки несколько таких телефонов, умудрились точно также их отреверсить, портировать ElfPack1 и получить почти идентичный функционал на куда более мощных телефонах с процессорами, построенных на проприетарной и почти неизвестной архитектуре... Вот это я называю высшим пилотажем!
Ну что-ж, вот такая длинная предыстория моддинга телефонов Motorola у нас с вами получилась. Но вы же не думаете, что у E398 больше не осталось тайн?!
Разбираем
Следующим делом мы разберем с вами E398 и узнаем что у него находится «под капотом». Для разборки я решил взять донорский телефон, который ко мне когда-то попал из утиля, а он в свою очередь туда попал после неудачной попытки ремонта.
Разбирается телефон очень легко: достаточно лишь открутить несколько винтов по периметру корпуса и расщелкнуть клипсы, после чего устройство разделяется на две половинки. В целом, ремонтопригодность E398 была на очень достойном уровне: заменить дисплей, динамики или клавиатуру можно было без особых навыков буквально за 5-10 минут работы. Единственное исключение — джойстик, но он на этой модели никогда не был проблемным. Также радует частичная унификация запчастей: например в E398 свободно устанавливался дисплей от E1 и L7.
Почти все чипы на плате были залиты флюсом. Кто-то пытался починить устройство прогревом всего подряд :)
Первым делом в глаза бросается блок из двух огромных динамиков. Они большие даже по нынешним меркам, а уж сам факт наличия стереозвука в внешних динамиках в 2004 году был нонсенсом даже для флагманов, не говоря уже о среднебюджетной модели. К сожалению, мне нечем замерить их уровень dB, но с патчами E398 был способен заменить среднестатистическую колонку или даже бумбокс, и при всём этом звучал качественно!
Чуть ниже, под защитным экраном скрывается сердце устройства — тот самый процессор Motorola Neptune LTE под маркировкой SC29332VG. И как бы это парадоксально не звучало для телефона с поддержкой MP3, по своим инженерным решениям он был ну очень своеобразным. Состоял он из:
Основного вычислительного ядра ARM7TDMI-S, работающего на частоте 52МГц с возможностью разгона до ~64. Для 2003 года, сам факт использования ARM7TDMI родом из 1994'го в не самом бюджетном телефоне уже был некой диковинкой: более свежее ядро ARM9T с 1999 года активно вводилось в эксплуатацию и было производительнее в 2-2.5 раза с возможностью работы на частоте до ~416МГц. Однако за сам факт использования столь старого ядра Motorola корить не стоит: те же самые бюджетные чипсеты Sysol (Samsung), Analog (LG, Hyundai) использовали аналогичное ядро, просто телефоны на их базе метили в не столь функциональный сегмент.
Вспомогательного DSP-ядра S-ONYXU 56600 собственной разработки Motorola, работающего на частоте 130МГц. В его задачи входит низкоуровневая работа с GSM-стеком, декодирование и кодирование голоса, а также декодирование MP3! При этом DSP способен легко обрабатывать треки с частотой дискретизации до 320кб/с. Именно поэтому на всех телефонах с процессорами Neptune LTE была поддержка MP3, в отличии от тех же самых Siemens'ов, где несмотря на мощный DSP, поддержку воспроизведения музыки реализовывали костылями (то через сторонний декодер, то программно, даже несмотря на заявленную поддержку MP3 в DSP S-Gold и даже E-Gold).
256 килобайт встроенной RAM и аж 1.79МБ ROM! Такой большой размер BootROM'а здесь неспроста: по заявлению @EXL, в нём хранится не только загрузчик, но и своя небольшая прошивка с самостоятельным GSM-стеком. Когда-то ходили слухи о закладках со стороны Motorola, но на практике скорее всего просто хотели выпускать ультрабюджетные телефоны вообще без флэш-памяти. У DSP есть своя дополнительная память — 381КБ ROM и 191КБ ОЗУ.
Встроенный RF-фронтэнд как для RX, так и TX-части. В его задачи входит вся «магия» по превращению цифровых GSM-пакетов из DSP в аналоговый сигнал, который затем отправляется на усилитель (PA) и далее уходит в эфир. Однако в E398 всё равно используется внешний фронтэнд, разработанный самой Motorola
Контроллеры SPI, 8080, а также USB. Из-за аппаратной поддержки USB, Neptune LTE буквально был одним из самых продвинутых мобильных чипсетов тех лет и Motorola активно продвигала использование обычного USB без UART-преобразователей. Интересно то, что контроллер RAM не поддерживал динамическую оперативную память вообще. То есть по сути, контроллера памяти и не было: из процессора напрямую выходила классическая 16-битная 8080-шина с парой чипселектов исключительно на статическую память без рефреша. Тут можно провести прямую параллель с FSMC в STM32.
Встроенный референсный кварцевый резонатор, формирующий клок для набора из двух PLL (Phase Locked Loop), которые используются для тактирования и управления частотой работы различных подсистем чипсета. Например разгон мобильных процессоров — это чаще всего перезапись регистра управления PLL (если необходимо переключить на другой источник, зависит от процессора), настройка делителей, а также напряжения VCO. Вообще, мне всегда было интересно как чисто теоретически возможно встроить полноценный кварцевый резонатор прямо в кристалл, если у кого-то есть такая информация, прошу поделится в комментариях!
Такой высокий уровень интеграции для 2003 года был очень крутым. Единственное слабое место чипсета — понемногу устаревающее на момент релиза ядро ARM7TDMI, а учитывая комплексный UI-фреймворк и сложную модульную архитектуру системы в целом, 52-х мегагерцовый процессор буквально не справлялся с таким тяжелым интерфейсом, из-за чего телефоны заметно подтормаживали и плохо показывали себя в Java-играх. Это вторая тайна E398 :)
Чуть ниже процессора расположилась микросхема комбо-памяти производства Intel под маркировкой L18SCSP. На одной подложке скрывается 32МБ NOR-памяти StrataFlash и 8МБ PSRAM. NOR-память можно было напрямую подключить в адресную шину процессора и использовать XIP (eXecute In Place) для выполнения кода напрямую с чипа памяти без сложных кэшей и необходимости предварительной загрузки в RAM. PSRAM же внутри представляла из себя обычную DRAM, плюс Refresh-контроллер с обычной 8080-шиной наружу. Именно поэтому, такая память называется псевдостатической. К слову, такие чипы памяти прекрасно поддаётся апгрейду и расширению: можно просто поставить чип большего объёма и обращаться к новым верхним адресам (если линии под них, конечно, разведены).
Правее процессора расположился Bluetooth-модуль 95L14CN. Он в свою очередь требует отдельный 26МГц кварцевый резонатор для работы и несколько конденсаторов с резисторами, а к процессору он подключен по шине UART. Именно поэтому скорость работы была не слишком высокой (сейчас BT-модули чаще подключают через SDIO или USB). Правее расположился чип LP3933, который отвечает за Fun-lights (светодиоды, подмигивающие в ритм музыки) и подсветку дисплея. Так что если у вашего «мотора» не работает подсветка — смотрите в сторону этого драйвера... или переделывайте подсветку на LM-ку с Samsung C100 :)
С верхней части платы скрывается усилитель сигнала Skyworks SKY77501-14. Есть один важный момент: обычно усилители всегда подключаются напрямую к VBAT (питанию аккумулятора) без каких либо внешних DC-DC преобразователей и ключей, и иногда они могут выходить из строя, даже если телефон выключен. Так что если ваш «мотор» ни с того ни с сего перестал включаться — проверьте PA на нагрев и если нужно — замените. Чуть левее усилителя расположился RF-фронтэнд MC13777P в паре с ещё неким модулем, который в схеме помечен как фронтэнд. К сожалению о деталях реализации RF-части ничего подробнее рассказать не смогу :)
С обратной стороны платы нас поджидает ещё одна, уже третья тайна Motorola E398... и это — чип ATi Imageon 2250. Да, в телефоне за 6 тысяч рублей был установлен полноценный GPU. Однако несмотря на то, что в 2003 году, 3D-графика в телефонах и КПК только зарождалась, именно этот Imageon является 2D-ускорителем. В его задачи входит быстрая аппаратная отрисовка изображений (блиттинг), спрайтов, линий, прямоугольников и всё это с аппаратным альфа-блендингом и поддержкой различных растровых операций (умножение, суммирование, прозрачность через колоркей). Помимо этого, чип поддерживает работу с камерой, декодирование MJPEG и содержит в себе встроенную память для фреймбуфера. Дело в том, что чипсет Neptune LTE со своим ARM7TDMI ядром не был способен на быструю отрисовку графики исключительно силами процессора на телефонах с разрешением дисплея выше 128x128, поэтому инженерам пришлось прибегнуть к использованию стороннего GPU.
Этот крошечный GPU был функциональнее почти любой настольной 2D-видеокарты из 90-х
Чуть ниже ATi расположился контроллер питания, который также разработан Motorola. По плате видно что его грели в первую очередь — это часто делали некоторые олдовые ремонтники в нулевых годах (да и сейчас делают). На него даташита я не нашел, однако судя по схеме он отвечает за зарядку литиевых аккумуляторов, транзисторную защелку разрешения подачи питания, содержит в себе несколько LDO для формирования шин питания различных подсистем телефона, АЦП для микрофона, а также усилитель для динамика. И вот тут есть интересное инженерное решение: дело в том, что усилитель в КП только один и предназначен он для одного внешнего динамика. А поскольку в E398 их два, для второго используется дополнительный усилитель LM4879IBLX.
В качестве дисплея используется TFT-TN матрица неизвестного производителя (скорее всего Sharp) с разрешением 176x220, которая подключается к GPU с помощью параллельной 16-битной RGB-шины (GPU устанавливает пиксель, дергает CLK, когда одна строка изображения подготовлена — дергает HSYNC, затем когда кадр подготовлен — дергает VSYNC).
Вот такой был конструктив у Motorola E398! Причем эта же платформа использовалась без изменений и в других легендарных телефонах компании: например Razr V3 и V3i, V360, KRZR K1, SLVR L3, SLVR L6, SLVR L7...
❯ Прошиваем...
По правде сказать, я практически не встречал E398'ые без какого-либо моддинга. Может быть не у всех были монстрпаки (кастомные прошивки) с EP, но во многих были установлены различные твики и самый главный — усиление громкости динамика.
Перед прошивкой «мотора» необходимо сначала забэкапить раздел PDS (калибровки радиотракта) с помощью программы Flash & Backup, проверить версию загрузчика ( @EXL в комментариях напишет их отличия) и выбрать монстрпак на выбор. @EXL рекомендует прошивку DAR-Test как самую нафаршированную и собранную частично из хаков и частично из слитого исходного кода P2k. По сравнению с оригинальной прошивкой, кастом в себя включает:
Поддержка 2ГБ MicroSD вместо стандартного ограничения в 1ГБ
Поддержка Bluetooth в Java-приложениях
Хак плеера для включения поддержки 320кбит/с в MP3-треках.
ElfLoader с диспетчером задач и возможностью загрузки эльфов первой и второй версии. Именно этот патч превращает E398'ой в смартфон!
Три альтернативных музыкальных плеера. Почему бы и нет? :)
Возможность разгона процессора до 65МГц.
Далее необходимо прошить специальный файл — Flex. По сути, это файловая система с пользовательскими данными. Прошивка Mini Flex форматирует телефон до заводских настроек, дабы точно ничего не мешало прошить монстрпак. Теперь можно установить и саму прошивку. Скачать DAR можно с всё ещё живого мотофана по прямой ссылке. Файл с расширением fsw открываем в Flash & Backup, переводим телефон в бутлоадер, зажав * и # при включении и если у вас версия загрузчика — 07.D0, то можно спокойно прошивать телефон. Если отличается — напишите @EXL и не шейте вслепую, иначе возможно придется замыкать тест-поинт!
Если после прошивки телефон включается без проблем — поздравляю, вы только что превратили свой E398'ой почти в полноценный смартфон!
❯ Включаем...
После включения нас встречает такая ламповая, но по мнению некоторых «васянская» тема в стиле Windows 7. В те годы темы в стиле десктопных операционных систем были очень популярны: почти под каждую платформу обязательно были темы в стиле XP, Vista и 7'ки, а также Ubuntu и Debian :)
Motorola Luna Royale?
Как я уже говорил ранее, у телефонов Motorola была сложная UI-подсистема, которая называлась Synergy. Она практически вся построена на стейтмашинах и абстракциях, из-за чего слабенькому ARM7TDMI порой тяжело справляться с обработкой и отрисовкой интерфейса. Однако мощность Synergy позволяла реализовывать довольно сложные и комплексные интерфейсы, и главное меню — один из примеров. Его можно было кастомизировать до неузнаваемости: добавить эльфы, патчи, ярлыки к различным приложениям и многое другое.
Примерно в 2005-2006, к UIS прикрутили поддержку векторных сглаженных ttf-шрифтов. Это фича сонериков, нокий и моторов, другие телефоны чаще всего продолжи использовать битмаповые шрифты.
Несмотря на довольно мощный родной плеер в E398, энтузиасты взяли и написали ещё несколько дополнительных. В прошивке DAR присутствует три кастомных плеера на любой вкус: с темами, специальными опциями и другими полезностями. Кроме того, благодаря патчу появлялась возможность воспроизведения MP3-треков с битрейтом аж в 320кбит/с. А уж как играл E398 с патчами... да, пожалуй до такого качества отнюдь не каждый современный смартфон дотягивает. Из тех, что были реально в разы лучше могу вспомнить только ZTE Axon 7:
Также теперь в E398 появился полноценный файловый менеджер с доступом ко всем «дискам» телефона. Через него мы можем не только на лету редактировать коэффициент усиления динамиков и делать всяческие твики, но и запускать те самые эльфы...
Какие возможности давали эльфы? Да практически любые! Сетевые сервисы, клиенты мессенеджеров и почты, игры и даже банальные утилиты — всё это писалось абсолютно бесплатно энтузиастами, которые хотели чуточку расширить функционал своего телефона. Один из эльфов, к примеру, позволял зажать обе софт-клавиши и озвучить время голосом!
Один из самых полезных эльфов позволяет разогнать или наоборот затормозить ядро ARM7TDMI. Конечно с частотами лучше не баловаться, иначе есть риск зависания, однако любые Neptune LTE спокойно гонятся на 12МГц, то есть потенциальный прирост производительности может составлять около 23%. И он действительно чувствуется!
А сейчас телефоны Motorola становятся ещё и объектом интереса среди демосценеров. Например EXL сюда портировал эмулятор Денди, Дум и 3D-движок с GBA, а также ковыряет перспективы использования GPU Imageon. И пусть далеко не все оценили пост с его стараниями по портированию разных демок на E398, мы то знаем что он делает крутые и интересные вещи. Настоящий балдежник!
❯ Заключение
Вот так и получилось, что целых 22 года назад, компания Motorola выпустила пожалуй одну из лучших своих моделей телефонов. И несмотря на все косяки и недостатки, E398 стал действительно народным аппаратом. Настолько народным, что нашлись энтузиасты, которые отреверсили прошивку и хакнули телефон настолько, чтобы превратить его почти в полноценный смартфон...
А что вы думаете о E398? Пишите своё мнение в комментариях!
А если вам интересна тематика ремонта, моддинга и программирования для гаджетов прошлых лет — подписывайтесь на мой Telegram-канал «Клуб фанатов балдежа», куда я выкладываю бэкстейджи статей, ссылки на новые статьи и видео, а также иногда выкладываю полезные посты и щитпостю. А ролики (не всегда дублирующие статьи) можно найти на моём YouTube канале.
Если вам понравилась статья и вы хотите меня поддержать, у меня есть Boosty, а также виджет на Пикабу ниже. А ещё мне можноотправить какое-нибудь интересное железо: устройства на WinCE/WinMobile, китайские кнопочники, китайские подделки на iPhone/Samsung из начала 2010-х, ретро-ПК железо - всё это я очень люблю :) Всем огромное спасибо!
Что думаете о Moto E398?
Какой был лучший телефон из нулевых?
Что думаете о статьях в таком формате?
Статья подготовлена при материальной и корректорской поддержке @Timeweb.Cloud. У TimeWeb Cloud есть блог компании на Пикабу, поэтому реклама совершенно легальная :)
Bethesda открыла предзаказ на рабочую реплику мини-компьютера Pip-Boy из серии игр Fallout — его можно использовать как радио и настольные часы
Bethesda открыла предзаказ на рабочую реплику мини-компьютера Pip-Boy из серии игр Fallout — его можно использовать как радио и настольные часы
Его можно носить на руке или использовать в качестве настольных часов, прикрепив к идущей в комплекте подставке
У Pip-Boy LCD-дисплей, на котором можно посмотреть «почти весь» внутриигровой контент, включая статистику персонажа и карту локаций Fallout, а также запустить мини-игру Atomic Command.
На платформе Kickstarter был представлен уникальный мини-ПК под названием OmniOne 5.7. Этот компактный компьютер напоминает КПК с QWERTY-клавиатурой и встроенным тачпадом в центре.
▪️Внутри устройства находится мощное железо: 4-ядерный процессор Intel N150, до 32 ГБ оперативной памяти DDR5 и до 1 ТБ SSD с интерфейсом NVMe PCIe 3.0.
▪️Экран – 5.7" HD c яркостью до 400 нит.
▪️Батарея емкостью 16,34 Втч обеспечивает до 5 часов автономной работы при яркости экрана 50%.
▪️По бокам устройства расположены несколько портов USB, а также разъемы DisplayPort 1.2, HDMI 2.0 и Ethernet.
▪️Размеры мини-ПК – 158x135 мм, вес – 326 граммов.
▪️Минимальная цена составляет $359, а поставки запланированы на февраль 2026 года.
Очень интересно читать! В свое время, был sl45 перепрошил его вдоль и поперёк, но потом вышла nokia 3650 перешёл на неё, там далее игры от n gage, потом увиде sony ericsson p800 , ну а далее кпк/ коммуникаторы на win mobile. А оказывается сколько интересного в сименсах пропустил, читаю с огромным удовольствием, сейчас коллекционирую старые девайсы, которые были у меня или пропустил ( в журналах видел старых) но полапать хотелось!) Кстати, после sl45 очень хотел полапать U10 (siemens) но к сожалению достать не удалось, нашёл u15 - оказалось полные аналоги motorola только корпус другой слегка. Но все равно ностальгия по 00 зашкаливает. Автор пиши исчо!)
Телефоны Siemens в наших краях получили статус культовых. Если сейчас отмотать время на 2005 год и подойти к случайному школьнику или студенту, то с высоким шансом в его руках окажется какой-нибудь M65 или C65. И отнюдь неспроста: «Сименсы» славились инновациями, неплохими мультимедийными возможностями и невысокой ценой. Однако особо смышленым, но не шибко богатым ребятам всё равно хотелось большего — и толпой они накинулись изучать прошивку в дизассемблере...
В статье мы с вами узнаем историю моддинга телефонов, что у C65 было внутри, изготовим кабель, пропатчим и добавим желанную поддержку MP3-мелодий.
❯ Не сначала...
История мобильного моддинга начинается в далёком 2001 году. Компания Sony, которая пока ещё была не Sony Ericsson, выпускает свой новый телефон — CMD-J70 с достаточно обширным по меркам тех лет функционалом и характерным колесиком JogDial. Как и другие устройства из линейки CMD, модель стала достаточно популярной и нередко в выборе между финским и японским качеством, побеждал именно японец!
Телефоны от Sony базировались на свежей, недорогой и очень удачной аппаратной платформе Texas Instruments Hercules (HERCROM), которая состояла из центрального процессора на ядре ARM7TDMI, работающего на частоте ~50МГц и аналоговой RF-части. Фишка новой платформы была в возможности прошивки без использования программатора, с помощью дата-кабеля, а в скором времени в сеть был слит сервис-мануал на устройство и программа для прошивки. И вот тут то всё началось!
Сначала для J70 делали простые патчи: на графику с Джеймсом Бондом, на мелкие твики системы и конечно же русификаторы. Но затем некий энтузиаст под ником NiMar раскопал функции прошивки и написал самый крутой патч — PRGLoader, который позволял писать новые программы для телефона с нуля на ассемблере или C! Загрузчик разделял и без того небольшую флэш-память телефона на десять слотов для кастомных программ: сначала необходимо было портировать «эльфы» для каждой версии прошивки отдельно, но затем появилась универсальная библиотека функций и программы стали портируемыми.
Это был первый известный случай хакинга телефона и запуска на нём кастомных программ. NiMar раскопал даже функции таймера, так что у телефона появлялась многозадачность... и после такого моддинга, бюджетная модель превращалась почти что в смартфон!
Но конечно одним CMD J-70 дело не ограничилось. В СНГ были очень популярны телефоны Siemens и момент, когда их хакнут, был вопросом времени!
❯ Infineon E-Gold
В отличии от Sony, телефоны Siemens почти всегда базировались на «родной» аппаратной платформе от Infineon (Infineon — дочка Siemens, выделенная в 1998 году в отдельную компанию в рамках реструктуризации). Первой такой платформой была HiGold — серия чипсетов Infineon PMB2800, которая использовалась в телефонах конца 90-х годов: C10, SL10, C25 и других моделях. Поскольку ARM в те годы ещё не настолько доминировал, Siemens решила использовать проверенное процессорное ядро собственной разработки — C166s, которое до сих пор можно найти в ЭБУ автомобилей ВАЗ!
Главной преградой на пути к моддингу устройств с C166s — относительно сложная сегментная модель памяти, напоминающая оную в x86. Сам набор инструкций хоть и простой, и в некоторой степени напоминает ARM, реверс-инжиниринг программ для этой архитектуры не так уж и прост.
Плата Siemens M55
Насколько мне известно, HiGold'ы практически никто не патчил, однако следующее поколение — E-Gold, которое использовалось в телефонах начала 2000-х годов, очень быстро хакнули и начали делать самые разные полезные патчи. Самым популярным телефоном на этой платформе был культовый SL45, который не только имел поддержку MP3, но и был первым телефоном с поддержкой Java-приложений. После SL45, Siemens выпустила следующую линейку устройств — S55, M55 и C55, которая также стала популярной за счёт появления подключаемой камеры и неплохих цветных дисплеев... но для них так и не появилось нормального загрузчика кастомных программ.
В те годы студент по имени Илья ( @ILYA_ZX) поспорил с однокурсником на то, что сможет написать «Змейку» для своего A60. Месяц ковыряния в дизассемблере и изучения архитектуры C166s — и вот, Илья представил рабочую игру и бинлоадер своему приятелю. Спор был выигран, исходники опубликованы, но этот проект так и не получил развития, и по сути, «эльфятник» был в зачаточном виде лишь на SL45.
❯ S-Gold
Всё изменилось с выходом новой аппаратной платформы Infineon S-Gold в 2003 году, где инженеры решили использовать новейшее ядро ARM926EJ-S с набором инструкций ARMv5 и частотой аж в 104МГц с возможностью разгона до 208МГц. По сути, S-Gold был флагманским мобильным чипсетом не только для Сименсов, но и в мобильном мире вообще — OMAP'ы для коммуникаторов на Windows Mobile работали на тех же самых ядрах и с той же самой частотой. Первыми телефонами на этом чипсете была легендарная 65'ая линейка Siemens'ов: флагманский S65, «бронированный» M65 и культовая бюджетная «стрекоза» — C65, которые сразу стали бестселлерами на рынке СНГ. Беспорядочному патчингу и моддингу на этот раз мешал новый загрузчик BOOTCore, не позволявший записывать неподписанные прошивки без специального ключа разблокировки — BKey.
Сможет кто-то по памяти вспомнить, где в C65 тест-поинт? :)
Однако руководствуясь опытом с E-Gold'ами, энтузиасты быстро нашли тест-поинт (сажали одну из сигнальных линий флэш-памяти на массу), и смогли вычитать SKey и ESN, необходимые для расчета буткея. Чуточку позже обнаружили уязвимость в Java-машине и написали мидлет для расчета ключа вообще без необходимости что-то разбирать и замыкать. Как удалось угадать алгоритм расчета ключа — доподлинно неизвестно, но есть одна интересная теория.
По информации из дебаг-билдов симулятора, UI-часть прошивки писала некая компания-подрядчик из Польши, которая наверняка имела доступ ко всей внутренней документации для процессора. У некоторых доверенных лиц по слухам даже оказались axf-файлы (промежуточный выходной формат компилятора ARMCC), с отладочной информацией о прошивках и та самая NDA-документация, часть из которой затем слили в сеть. По словам Ильи, один из таких доверенных людей помог разобраться в аудиотракте устройства и сделать то, о чём мечтали тысячи пользователей телефонов Siemens — поддержку MP3-треков. Не исключено, что именно благодаря этому человеку в 2006 году написали первый ELFLoader и дали новую жизнь устройствам от Siemens — уже после закрытия мобильного подразделения.
Однако даже до появления ELFLoader'а, энтузиасты подвергали устройства на S-Gold серьезному моддингу. Например при модификации проверки HWID, прошивку от C72 или SL65 можно было установить на C65 — и это давало очень крутые фишки по типу поддержки 3D или возможности записи видеороликов. А M65 можно было переделать в CX70!
Дед и внучок!
Сегодняшним нашим героем станет именно C65, специально подготовленный мной для коллаборации с @ilya_ZX и блогером MaddyMURK, который не верил, что в эту модель можно добавить поддержку MP3. Мне пришлось потратить несколько дней, чтобы добиться стабильной работы телефона, но спустя 3 месяца после отправки устройства, MaddyMURK слился под предлогом мол «чёта потыкал и мне больше не интересно... Коллабы не будет, отправлю тебе гаджет обратно». Ну и ладно!
❯ Что внутри?
По славной традиции рубрики, сначала мы с вами разберем телефон и узнаем что у него под капотом. Одна из главных фишек телефонов тех лет была в высокой ремонтопригодности даже неподготовленными людьми. Устройства полностью разбирались буквально за несколько минут при наличии пластиковой карты и отвёртки, а заменить основные элементы — дисплей, клавиатуру и динамик с микрофоном, мог даже школьник!
При этом была возможность всегда освежить внешний вид устройства путём переодевания в новый корпус. Во многих городах на рынках можно было купить корпуса с самым разным дизайном и качеством по 100-150 рублей, а поскольку в те годы телефоны берегли гораздо меньше чем сейчас, корпуса были расходниками. И тем не менее, даже сильно исцарапанный гаджет можно было превратить практически в новый всего за пару сотен рублей!
Внутри телефон представлял из себя модульный бутерброд, который состоял из металлической рамки, клавиатуры, дисплея и платы. И вот здесь, инжиниринг Siemens сыграл злую шутку: даже если пользоваться телефоном максимально аккуратно, постоянные изгибы платы в местах нажатия на джойстик со временем обрывало дорожки или срывало слабые пятаки на процессоре, отправляя телефон на очередную замену материнской платы.
После снятия рамки, нас встречает защитный экран, а под ним тот самый чипсет Infineon PMB8875 S-Goldlite. Внутри довольно большого по современным меркам процессора скрывается всего одно ядро ARM926EJ-S, способное работать на пиковой частоте от 104 до 208МГц, контроллер SDRAM-памяти и NOR-флэш накопителей, контроллер периферийных шин I2C/SPI/I2S, а также Watchdog и MMC. В целом, уровень интеграции не очень высокий, у Texas Instruments был выше, но всё равно вполне на уровне. Помимо Siemens'ов, S-Gold использовался в телефонах Panasonic и в качестве модема iPhone 2G (!!!).
Правее расположилась микросхема NOR-флэш памяти производства Intel объёмом в 32МБ. Из них 10МБ отводилось пользователю, а остальной объём был под прошивку и системные диски с кэшем. Несмотря на наличие контроллера MMC, Siemens всё равно решила не распаивать SD-слот, дабы не создавать внутреннюю конкуренцию более дорогому M65 и CX65. Ещё чуть выше распаяна микросхема SDRAM-памяти производства Hynix, объёмом в 4МБ. На первый взгляд кажется немного... Но не всё так просто!
К слову, в E-Gold из-за особенностей архитектуры, наружу торчала лишь стандартная 8080-шина, из-за чего инженеры Siemens были вынуждены использовать куда более дорогую PSRAM-память, в которой контроллер DRAM был уже в самой банке!
С обратной стороны платы нас встречает RF-тракт с усилителем и фронтэндом, а также микросхема Dialog, выполняющая роль контроллера питания. В её задачи входит обработка кнопки включения, WatchDog для сброса питания с процессора в случае зависания, усилитель звука, DC-DC понижающие преобразователи для формирования необходимых питаний на остальные чипы устройства и контроллер зарядки литий-ионных аккумуляторов. К слову, нередко ремонт нерабочих Siemens'ов решался заменой Dialog'ов или перекаткой процессора. Телефоны Siemens были хлебом для мастеров тех лет!
Чуть выше расположилась микросхема производства Epson. Её задачи разнятся от телефона к телефону, но в основном она выполняет роль контроллера камеры или дисплея. В некоторых других моделях, был дополнительный чип, который аппаратно декодировал MP3.
С нижней части платы расположился разъём под названием Lumberg, который служил как для зарядки, так и для подключения аксессуаров. В 65'ой серии, у телефонов появилась аппаратная поддержка USB, поэтому чип выше выполняет роль свича между UART и USB в зависимости от режима. Кроме того, RX и TX уходят к фильтру-стекляшке, так что если ваш Siemens не видит компьютер - смотрите в сторону этого чипа!
И это по сути всё. Простейший конструктив, не без недостатков, но зато позволивший сделать цену на устройство конкурентной с другими телефонами в том же классе - Motorola C650 и Samsung уровня C100. И при всём этом, C65 был значительно мощнее их обоих благодаря использованию новейшего чипсета!
❯ Прошиваем
Для прошивки «Сименсов» сначала необходимо купить или собрать кабель. На Авито иногда попадаются дата-кабели, но далеко не все из них подходят для прошивки: из-за кривого драйвера и неправильной разводки, шнурки на чипах Prolific покупать не стоит. У меня в наличии был как раз именно такой кабель, поэтому я решил переделать его на классический PL2303.
Схема кабеля до безобразия проста: достаточно лишь подключить RX/TX/GND к соответствующим пинам на преобразователе, а между пином CTS и GND установить резистор номиналом 10кОм. На фото не видно, но я впаял обычный SMD-резистор для компактности. Если есть 3D-принтер — можно напечатать дополнительный корпус, чтобы повысить надежность такого кабеля.
Фото сделано в попыхах и до отмывки флюса, прошу прощения
Далее выключаем телефон, вставляем дата-кабель и в x65PapuaUtils пытаемся загрузится в сервис-мод. Программа попросит кратковременно нажать на красную кнопку и если всё сделано правильно — телефон загрузится в сервисный режим. Из этого режима можно даже починить «пикающий» телефон путём форматирования раздела с пользовательскими данными и кэшем.
Знакомо?
Теперь необходимо разблокировать загрузчик. Для этого устанавливаем специальный мидлет px65v1 и ждём около 15-20 минут, пока он найдет SKey и ESN. Такое длительное время работы обусловлено тем, что мидлет с помощью уязвимости в Java-машине сканирует всё адресное пространство телефона и ищет нужные значения по паттернам. Далее мидлет передаст эти данные в x65PapuaUtils, а он каким-то неведомым алгоритмом рассчитает действительный ключ и сохранит его в ini-файле. Далее необходимо экспортировать лоадер в формат, пригодный для V_Klay, чтобы в дальнейшем можно было устанавливать патчи. Такая вот нехитрая, но долгая манипуляция!
После этого, я установил прошивку от C72 и применил специальный патч на обход проверки HWID, дабы телефон не пикал при включении. Даже без «эльфлоадера» мы уже значительно расширили функционал телефона относительно стока, но совершенству нет предела! Эльфлоадер, библиотека функций и аудиохук ставятся точно также: необходимо выбрать vkp-файл в V_Klay, нажать «Flash», подключить телефон и ждать завершения.
В V_Klay встроен механизм валидации патчей: если паттерн по заданному адресу отличается от прописанного в патче, программа выдаст ошибку. В случае аудиохука это норма — можно смело прошивать патч!
Для завершения установки эльфлоадера, необходимо создать папку ZBin в внутренней памяти телефона и закинуть туда файлы конфигурации и ассоциации расширений в проводнике с желаемыми программами. После этого, в системе появится диспетчер задач и возможность запуска программ прямо из проводника. Круто!
❯ Знакомимся поближе
После включения нас сразу встречает надпись о том, что xTaskMan запущен. Теперь при зажатии центральной кнопки на джойстике, будет запускаться полноценный диспетчер задач — ведь каждая системная и кастомная программа создаёт окно, между которыми теперь можно легко переключаться без потери данных!
Поскольку мы превратили наш С65 в куда более свежий C72, телефон обзавелся новыми фишками! Например, теперь можно записывать видеоролики и даже играть в 3D-игры. Помимо этого, с C65 на C72'ой прошивке даже в 2025 году можно выйти в полноценный интернет с помощью Opera Mini 6.5...
И конечно же куда без самой желанной фишки Siemens'ов в 2004-2005 году: поддержки MP3-мелодий! Запустив из проводника программу-плеер, мы попадаем в весьма забавный ретро-интерфейс, где энтузиасты реализовали плейлисты, скины, настройки и другие фишки, которых вообще не было в стандартном примитивном плеере. Нажимаем Play — и вуаля! Телефон полноценно воспроизводит мелодию без предварительной конвертации!
О деталях реализации хака рассказал сам автор плеера и патча — @Ilya_ZX. В прошивке телефона есть функция PlayWAVInMemory, которая на входе принимает описание wav-файла и PCM-поток. Путём нехитрых манипуляций, он пропатчил эту функцию так, чтобы на входе она принимала указатель на кольцевой буфер, а когда он опустошался — патч вызывал специальный коллбэк. Затем программа, которая хочет дальше проигрывать звук, заполняла буфер следующим отрывком PCM-звука и таким образом, мы получали возможность декодировать на лету и проигрывать любой формат — хоть OGG, хоть FLAC! При этом несмотря на заблуждение о том, что Siemens'ы банально не тянули декодирование mp3 в реальном времени — телефон мог спокойно проигрывать мелодии с битрейтом до 192кб/с в фоновом режиме с полноценной многозадачностью!
Единственный момент — стандартная прошивка не умеет воспроизводить звук с частотой дискретизации выше 11050Гц, Илья для решения и этой проблемы написал специальный патч, который, правда, не работает именно на C65. Ну что ж, нам и этого хватит!
Учитывая то, что студент из СНГ смог написать такой патч и частично сам плеер, решения инженеров Siemens в последующих моделях выглядили как минимум странно. Например, в CX75 поддержка MP3 была прикручена с помощью внешнего аппаратного аудио-декодера, у которого качество звука было крайне посредственным и на практике нормальный программный декодер MP3 реализовали только в E71 и EL71!
В остальном, C65 превращался практически в полноценный смартфон. Энтузиасты написали самые разные программы: клиент ICQ, E-Mail, погоду, виджеты на рабочий стол по типу загрузки процессора, объёма свободной оперативной памяти, был даже патч на эмуляцию E-Sim за 15 лет до первого телефона с этой технологией и навигация (A-GPS) по вышкам сотовой связи!!! При этом авторы активно делились исходным кодом и эти программы работали почти на любых S-Gold «Сименсах»... Это был венец моддинга мобильных телефонов!
❯ Заключение
Вот такой была история моддинга кнопочных телефонов. Когда у молодых ребят нет денег на топовый гаджет, в ход идут навыки реверс-инжиниринга и моддинга. А ещё это просто невероятно интересно и захватывающе — и в своей статье про хакинг более свежего кнопочника я постарался показать это на практике!
Даже спустя 22 года после релиза C65 коммьюнити моддинга Siemens всё ещё живо и собирается в уютном Telegram-чатике. Ребята просили не публиковать прямую ссылку из-за Хабраэффекта, но если вы олдовый участник клуба Siemens'оводов и действительно хотите в него попасть — найти ссылку можно по запросу «patches kibab».
А если вам интересна тематика ремонта, моддинга и программирования для гаджетов прошлых лет — подписывайтесь на мой Telegram-канал «Клуб фанатов балдежа», куда я выкладываю бэкстейджи статей, ссылки на новые статьи и видео, а также иногда выкладываю полезные посты и щитпостю. А ролики (не всегда дублирующие статьи) можно найти на моём YouTube канале.
Разыскиваются гаджеты
Друзья! Для подготовки статей с разработкой самопальных игрушек под необычные устройства, объявляется розыск телефонов и консолей! В 2000-х годах, китайцы часто делали дешевые телефоны с игровым уклоном — обычно у них было подобие геймпада (джойстика) или хотя бы две кнопки с верхней части устройства, выполняющие функцию A/B, а также предустановлены эмуляторы NES/Sega. Фишка в том, что на таких телефонах можно выполнять нативный код и портировать на них новые эмуляторы, чем я и хочу заняться и написать об этом подробную статью и записать видео! Если у вас есть телефон подобного формата и вы готовы его задонатить или продать, пожалуйста напишите мне в Telegram (@monobogdan) или в комментарии. Также интересуют смартфоны-консоли на Android (на рынке РФ точно была Func Much-01), там будет контент чуточку другого формата :)
Кроме того, я ищу подделки на брендовые смартфоны 2009-2015 года выпуска. Многие из них работают на весьма интересном железе и об их моддинге я бы мог сделать интересный контент. Особо разыскиваются подделки Apple iPhone и HTC (по типу HD2 и Touch Diamond 2)на Windows Mobile и Android, а также Samsung Galaxy. Также представляют моддерский интерес первые смартфоны Xiaomi из серии Mi, Meizu (ещё на Exynos) и телефоны Motorola на Linux (например, EM30, RAZR V8, ROKR Z6, ROKR E2, ROKR E5, ZINE ZN5, о которых я хотел бы подготовить отдельные статью и видео, поскольку они работали на очень мощных для своих лет процессорах, поддавались серьезному моддингу и были способны запустить даже Quake.
Большое спасибо читателям и зрителям за подгоны, без вас контент бы не выходил!