После статьи мне написали несколько инженеров из Тэлмы и Ронды - компаний, которые аутсорсили разработку софта для телефонов 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 есть блог компании на Пикабу, поэтому реклама совершенно легальная :)
Многие смотрят в окна, что им оставили в наследство. Но можно взять кувалду и прорубить свое. Туда, куда, хочется, а не куда положено. Даже если за стеной окажется космос.
Я видел людей, что живут в чужих домах. Не в съемных квартирах, нет. В чужих, блядь, реальностях. Они ходят по комнатам, что спроектировал для них какой-то мудак из телевизора, зябко кутаются в одеяла, сотканные из страхов их матерей, и смотрят в окна, прорубленные в стенах их отцами – окна, выходящие на серый, заранее утвержденный пейзаж. Они жалуются на сквозняки, на хуевую планировку, на то, что солнце никогда не заглядывает в их спальню. И они ждут. Ждут сантехника, застройщика, бога, кого угодно, кто придет и починит этот ебучий мир.
Они не понимают главного. Никто не придет.
Потому что нет никакого главного застройщика, кроме тебя самого. Нет никакого генерального плана, висящего в небесной канцелярии. Проект твоего мира начертан на внутренней стороне твоих век. Он проявляется каждый раз, когда ты их закрываешь в тишине. Это не чертеж на ватмане. Это вибрирующая пустота, готовая принять любую форму.
Фундамент закладывается не из бетона и стали, а из того, на что ты опираешься, когда вокруг все рушится. Из твоего молчаливого «нет», сказанного громкой лжи. Из твоего спокойного «да», брошенного в лицо всеобщему страху. Это тот первый камень, который ты кладешь на рассвете, в полном одиночестве, когда никто не видит и не оценит. Он тяжел, как целая жизнь. Но ты его кладешь. И земля под ногами перестает дрожать. Она становится твоей.
А потом начинаются стены. Каждый твой выбор — это кирпич. Каждая привычка, каждая мысль, которую ты думаешь снова и снова — это раствор, скрепляющий кладку. Ты можешь строить из говна и старых газет, из чужих мнений и пережеванных истин. И у тебя получится хибара, картонный замок, который сдует первым же порывом серьезного ветра. И ты будешь сидеть внутри, проклиная ветер.
А можешь обжигать свой собственный кирпич. В печи своего сердца. Из глины своего опыта, из песка своих ошибок. Это долгая, сука, работа. Муторная. Каждый кирпич получается разным, кривым, несовершенным. Но они твои. И стена, сложенная из них, будет дышать вместе с тобой. Она будет пахнуть тобой. В ней будут трещины, да. Но сквозь эти трещины не будет сквозить чужая воля. Сквозь них будет пробиваться твой собственный свет.
Стены — это то, что ты называешь своим. Границы. Не тюрьма, нет. Крепость. Пространство, где эхо повторяет твой голос, а не голоса извне. Где воздух плотен от твоих замыслов. Большинство боится возводить стены. Им кажется, что они отгораживаются от мира. Идиоты. Они просто не хотят отгородиться от шума, который мешает им услышать музыку собственного замысла.
А потом, когда ты уже почти задохнулся в этой своей ахуенно правильной крепости, в этой тишине и правоте, ты делаешь самое страшное. Ты берешь кувалду и прорубаешь окно. Не там, где положено. Не там, где у всех. А там, куда тебе, хочется смотреть. Может, оно будет выходить на глухую стену соседнего дома. Но это будет твой взгляд на эту стену. И однажды, в час заката, эта стена отразит солнце так, как не отразит его ни одно другое окно в этом городе. Ты сам выбираешь раму. Ты сам выбираешь пейзаж. Весь мир — лишь холст за твоим окном. Что на нем появится — зависит только от того, куда ты решишь его прорубить.
И вот ты стоишь посреди этой комнаты, которую сам построил. Она может быть крошечной, как келья отшельника, или огромной, как зал ожидания на позабытом вокзале. Неважно. Важно то, что каждый гвоздь в ней забит твоей рукой. Каждая половица скрипит под твоей тяжестью. Солнечный луч, ползущий по стене, — это твой личный гость, которого ты впустил, пробив для него окно.
Не нужно никуда бежать. Не нужно ничего доказывать. Просто дыши. Дыши в своем доме. Чувствуй его тихую, несокрушимую мощь. Она не в стенах. Она в тебе, архитекторе. Ты и есть этот дом. Ты и есть этот чертеж.
Главная заповедь их веры – стань никем. Растворись в серой массе. Но что, если в тебе ещё остался тот, кто отчаянно хочет быть кем-то?
Есть такое Болото. Оно не на картах. Оно – в головах. Вязкое, тёплое, пахнущее тиной и безопасностью. В этом Болоте нет штормов, нет хищников, нет нужды грести к неведомому берегу. Здесь можно просто лежать, медленно погружаясь, пока ил не заполнит рот и ноздри. И это будет называться «умиротворение».
А над Болотом, на кочках из прессованного говна и забытых амбиций, сидят они. Жрецы Великого Нихуя.
Их лица – голограммы, спроецированные на клубы болотного газа. Их голоса – синтезированный белый шум, идеально откалиброванный, чтобы вызывать сонливость и лёгкое слюноотделение. Они вещают из каждого светящегося прямоугольника, из каждого динамика.
Они – пастыри для тех, чей внутренний компас заржавел и показывает только на диван.
Их евангелие просто, как мычание. Первая и главная заповедь: НЕ ОТСВЕЧИВАЙ. Не будь слишком умным – сочтут за выскочку. Не будь слишком красивым – сочтут за блядь. Не будь слишком счастливым – сглазят. Не будь слишком несчастным – заебёшь. Будь как все. Будь серой, неприметной, взаимозаменяемой единицей биомассы. Слейся с пейзажем. Растворись.
Их главный псалом – гимн посредственности: «А кому щас легко?», «Надо потерпеть», «Все так живут». Это не слова, это ментальные кандалы, которые паства с радостным лязгом защёлкивает на собственных лодыжках. Потому что ходить самому – страшно. Нужно, чтобы кто-то вёл. Даже если ведёт по кругу, в самое сердце трясины.
Их божество – Великий Стабиздец. Идол, вырезанный из застывшего жира, бог заплесневелого хлеба и просроченных консервов. Его храмы – это офисы с девяти до шести, где души продаются в розницу за ипотеку. Его ритуалы – это пятничные возлияния, чтобы забыть, что неделя была точной копией предыдущей. Его обещание рая – это пенсия, крошечный оазис в пустыне потраченной впустую жизни, где ты сможешь спокойно догнить, не мешая другим.
Я долго плавал в этом бульоне. Я слушал их проповеди, кивал, поддакивал. Пытался «быть проще». Я обрубал острые углы своей личности, пока не начал напоминать обмылок. Я пытался верить в их бога, но от запаха его ладана – запаха пыли и безнадёги – у меня слезились глаза.
А потом, в один прекрасный момент, ты видишь это. Не глазами – печёнкой, спинным мозгом. Ты видишь, как их слова, эти гладкие, успокаивающие мантры, на самом деле являются личинками трупных мух. Они откладывают их тебе прямо в уши, и эти личинки выжирают твой мозг изнутри, оставляя гладкую, пустую полость, идеально подходящую для эха их проповедей.
Они говорят «не выёбывайся», а на самом деле имеют в виду «не живи». Потому что жизнь – это и есть выёбываться. Это строить замки из песка под ураганным ветром. Это кричать свои стихи в глухую ночь. Это любить так, будто завтра наступит апокалипсис. Это гореть, а не тлеть.
Их «стабильность» – это трупное окоченение. Их «мудрость» – это страх. Их «народ» – это паства, хор безголосых ртов, которые разучились формировать собственные мысли и теперь могут лишь повторять за поводырём, сглатывая питательную болотную жижу.
Так что знайте, жрецы. Проповедники комфортного распада. Архитекторы серого рая.
Я выхожу на берег.
С меня стекает ваша благословенная грязь, и под ней, оказывается, есть кожа. И на ней есть шрамы. И каждый шрам – это история покруче всех ваших священных писаний. Я отряхиваюсь, и с меня сыплется не пыль веков, а звёздная крошка моих собственных, охуительных, проёбанных и выигранных войн.
Можете объявлять меня еретиком. Можете сжигать мои чучела на своих площадях. Можете визжать и брызгать слюной со своих экранов, проклиная моё имя.
Зажигайте свои ритуальные костры.
Я принёс не просто дрова. Я принёс канистру грёбаного напалма. И в его свете, может, и вы разглядите наконец свои мёртвые ебальники.
У меня был понос И по полной программе, Обосрав все штаны я в подъезде стоял… Вспоминая, в тот миг о заботливой маме, Что мне делать теперь, я поверьте не знал!
А вокруг меня вонь как иуда царила, Только я и говно, и ещё липкий страх… Мне бы смыть свой позор Коль, возможно, то было, Но узнает весь двор, Что я прячу в штанах!
Лифт не к стати сломался, На душе так погано… Оставалось одно,- Только лечь помереть! Жаль, что нет у меня для спасенья нагана И к тому же говно на девятый этаж мне переть!
Промелькнули года Был я молод тогда и беспечен… Помню день тот срамной, хоть несчастье случилась давно… Для меня мир тогда был простой и послушной овечкой, Оказалось не так, Посильнее меня на земле есть простое говно!
Что-то сегодня сломалось у него внутри, вся жизнь куда то понеслась в другую сторону от него. Куда то туда, далеко от него понеслась на всех парах, а он и не сопротивлялся этому совсем почему то. Ему ничего не хотелось, просто ничего, от слова совсем, что-то говорить, что-то объяснять, страдать, мечтать, думать... Хотелось просто уйти, исчезнуть, раствориться, чтоб его больше никто не видел, не замечал, не спрашивал. Быть там, где никого нет, лишь только он и его тишина, тишина его пустых мыслей и горящей в огне души. Просто уйти в одиночество и не мешать никому больше...
Меня зовут Дмитрий. На первый взгляд я обычный парень, программист, который всегда верил только в логику и здравый смысл. Но события, что со мной произошли этим летом, заставили меня взглянуть на жизнь совсем иначе. Теперь я понимаю: магия не что-то далёкое и таинственное, а наша врождённая способность пробуждать идеи, которые способны менять мир.
Когда-то, в незапамятные времена, человеку нужно было расколоть твёрдый орех. Он поднял камень – и в этот миг свершилось настоящее чудо. Самое первое магическое действие, ведь до этого всё в мире текло привычным путём, а тут одна мысль изменила исход событий. Раньше орехи оставались цельными, а человек оставался голодным. Но стоило кому-то додуматься применить камень как орудие — и мир уже не мог остаться прежним. Животным наше поведение кажется колдовством: мы заставляем природу работать на нас, используя своё воображение, смекалку и упорство.
С тех пор таких идей появилось бесчисленное множество. Каждый раз, когда человечество решало невыполнимую задачу, мы словно приоткрывали дверь в неведомое измерение. Кто-то открыл огонь, кто-то приручил коня, кто-то придумал колесо, а потом и автомобиль. С точки зрения животных мы все маги — делаем что-то для них непостижимое и воображаем, будто владеем всей планетой. Но, как я недавно понял, наше «владение» всего лишь иллюзия. Мы не царим над природой, а лишь получаем временную возможность влиять на неё при помощи наших идей и трудолюбия.
Каждый из нас несёт в душе частицу этой магии — то самое вдохновение, что когда-то помогло предку взять камень в руку. Мы часто относимся к собственным идеям и способностям как к чему-то обыденному: мол, «ну могу и могу», «умею — и что тут особенного». Но для другого человека, не знающего наших мыслей, наши привычные действия порой выглядят как настоящие чары. Где-то в запутанной сети событий у меня прорезалось это понимание: чуть-чуть приоткрыл дверь в скрытое измерение — и увидел, насколько магия плотно переплетена со всем, что мы делаем.
Меня, например, до сих пор поражает, как мы можем сотворить целые миры из кода или музыки, покорять природные силы или лечить болезни. А ведь всему этому начало положила та самая простая мысль: «Взять камень и расколоть орех». И если ты однажды ощутишь в себе подобный «щелчок» — когда вдруг идея рождается из ничего и переворачивает всё вокруг, — поймёшь, что это и есть самое настоящее волшебство, живущее внутри нас.
Так что теперь, когда кто-то спрашивает, «откуда взялась магия?», я улыбаюсь. Она появилась, когда мы научились мыслить, когда в нас рождается дерзкий замысел, вдохновляющий на смелый шаг. И пока мы способны придумывать, пробовать, ошибаться и открывать новое, магия не исчезнет из этого мира. Ведь в каждом из нас живёт волшебник — пусть иногда мы и называем его просто «человеком с идеей».