Как стать автором
Обновить

Комментарии 89

Любимый телефон в 2007 был)

У меня была его младшая версия -- С75. Но мне ооочень нравился CX75 из-за всех его фич с мп3 и картой памяти.

Если я ничего не путаю, в Сименсах была zlib встроена в прошивку и из J2ME был доступ к работе с zip-файлами буквально в несколько строк кода.

У меня CX65 был, я прошивку ставил с программным mp3 декодером, и мог с компа заливать в телефон аж 3-4 mp3 файла и воспроизводить их. Памяти было 10,6 мегабайт.

И поводу zip - все верно. Паковал шпоры на первых курсах универа (куча .txt файлов внутри зипа). И с телефона заходил в архив и открывал что нужно.

Поддержка zip в любом случае необходима любому телефону с J2ME, потому что .jar — это на самом деле zip с классами, ресурсами и манифестом.

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

На Сименсах, на удивление, было относительно много оперативной памяти. Несмотря на их маленький ценник и сироватость телефонов вцелом они многие вещи "вывозили". Особенно мне нравилась открытость их файловой системы (включая некоторые системные диски).

У других производителей же было всё наоборот, максимум закрытости, вездесущий DRM и запрет на копирование/удаление некоторых файлов. После сименсов, в плане открытости, были наверное только Sony Erricson.

И, касаемо игр на телефонах -- лично для меня мобильный гейминг умер вместе с эпохой кнопочных телефонов.

Как я его любил... До сих пор вспоминается с большей теплотой чем любой другой телефон

юзал его с 2007 по 2009) эльфы, патчи наше всё) по-сути первый мой смартфон. Забавное совпадение на днях загорелся идеей его купить, скоро приобрету бу и потом корпус заменю на новый

Ох, аж олдскулы свело.

Помню прекрасно и софт того времени и многометровые листинги в Ида (поди найди, где вообще в 16 мб бинарнике код а где картинки с нескучным обоями), первые опыты с не-х86 ассемблером и первые патчи, бесконечные поиски в оперативке нужных данных и попытки придумать и организовать интерфейс обмена данными между такой заплаткой и j2me приложением. Как-то заодно был приобретён первый опыт с java, злое*учим эклипсом и масса других побочных навыков. Скучно точно не было.

НЛО прилетело и опубликовало эту надпись здесь

В отличие от ... Сименсы были "всем понятной "потребительской электроникой и показать свои эксперименты можно было условно любому знакомому. Кого-то и этот аспект мотивировал.

НЛО прилетело и опубликовало эту надпись здесь
поди найди, где вообще в 16 мб бинарнике код а где картинки с нескучным обоями
К моменту, когда я начал этим всем увлекаться, уже были инструменты вроде smelter, которые умели показывать где что по блокам. Дизассемблировать прошивку я, правда, тогда не пробовал, зато пробовал вот вчера, гидрой. Декомпилирует во что-то осмысленное, но, блин, всё равно сложно понять как именно и почему оно всё работает. Возможно я просто не умею реверсить bare metal код.

До сих пор лежит дома Samsung x600, который при включении говорит металлизированным голосом "система включена". Было время, да.

Когда-то купил AX72, но так и не дождался, пока патчи под него подвезут. Может время настало?

Патчи портировались под каждую верстю прошивки отдельно, в каждой версии надо было найти соответствующие API и места врезки своих функций. Поэтому на неходовых телефонах было мало патчей.

Добавлено: некоторые телефоны можно было прошить прошивкой от другой модели. Например на CX65 ставилась прошивка от CX70. А на ME45 прошивка от S45i (хотя это совсем другая история)

Так вообще, насколько я понимаю, «SWI-библиотека» появилась ещё до эльфлоадера, именно чтобы можно было писать портабельные патчи. И в Smelter есть кнопка, чтобы искать функции по паттернам.

Искать по паттерну смелтером можно. Но кроме вызова функций надо еще свою функцию вызывать откуда надо. Поэтому библиотека функций не решает все проблемы портируемости.

А, да, снова туплю

Ооо, спасибо за воспоминание. Как мы со Скайлордом дебажили ME45, не включавшийся на ионизированной прошивке при плюсовой температуре... И как я искал блок EEPROM, превращавший ионизированные телефоны с симками Билайна в пейджеры. Эх, были деньки :)

вроде в сх75 8мб оперативки, а спатчем 16.

16 MB SDRAM оказалось на CX/M75 с flash от Intel i4060; был рабочий патч от того же Dimadze & company:
http://patches.kibab.com/patches/details.php5?id=10193
А ещё был патч разгона процессора со 104 до 208 МГц:
http://patches.kibab.com/patches/details.php5?id=10294
P.S. капец, кидая ссылки, не подумал про хабраэффекты, позорные боты у кибаба начали массово регистрировать кривые аккаунты(((( ему пришлось отключать регистрацию

Ничего страшного, зато я вспомнил немного PHP и пофиксил проблему :-) А регистрацию отключил, потому что вряд ли кому-то ещё в 2022 году понадобится аккаунт там.

А вот S75 отлично проигрывал видео фуллскрин, там ЕМНИП и аппаратный декодер был. Помню, с завода на нём лежало видео "Million Bycicles", игравшее плавно и красиво - а я затарился огромной (не меньше гигабайта!) картой памяти, и смотрел оттуда полнометражки. Где-то на половине иногда начинался рассинхрон звука, но я мужественно терпел. Помню и всю эту работу с эльфами, и то, что изложено в статье - очень круто :)

А CX75 отличная машинка - мой папа использовал его ещё года три назад, и только ради новомодных банковских приложений отказался от него. Весь корпус потёрт, аккумулятор менялся, но аппарат активно эксплуатировался больше десяти лет! Теперь лежит в холодном резерве, чтобы в случае необходимости снова встать "на боевое дежурство".

Видео Million Bycicles ещё осталось? Скиньте через ИК-порт.

Такие видео через ик-порт кидать долго, не факт что за урок получится успеть

Помню как с какого то сони эрриксона на свой м65 три или четыре урока передавал одну из серий тома и джери, закончилось все успешно и даже не плохо проигрывалось) весило видео примерно 4мб, потом засмотрел его до дыр)

Да, это он! Как раз собирался отправиться на поиски.

Посмотерл видео - прикольно!
Вот есть стим-панк, есть дизель-панк... А может есть такой...кнопочно-телефонный панк? Где мир пошел не по пути больших тыкательных экранов, а по пути здорового человека? Экраны чтоб смотреть, кнопки, чтоб в них тыкать...

Так до появления айфона вполне себе были кнопочные смартфоны с более настоящими ОС, с тем же симбианом например. Стоили, как правило, как несколько обычных телефонов.

Мне, правда, кажется прикольным компромиссный вариант — слайдер и с большим сенсорным экраном, и с физическими кнопками. У меня как-то в итоге ни слайдера, ни раскладушки не было, может поэтому так и кажется)

Мир "Матрицы" - с одной стороны нейроинтерфейсы и летающие корабли, с другой - мониторы с консольками, телефоны не то, что кнопочные, а местами аж дисковые, дискеты опять же.

*окей, до 4 части, там уже смартфоны(

в целом это показывает мировой опыт интеграции современных технологий поверх старых. Просто у нас чаще иначе происходило - все старое использовалось максимально по-свински до конца срока службы, потом еще столько же из-за отсутствия средств на новое, а потом все к хренам сносится на корню и ставится (за мильярды денег) сразу современное и даже местами слегка избыточное. Так и живем с такой вот культурой эксплуатации.

Так вроде уже понемногу начинается. У меня один друг недавно купил себе какую-то нокию (с симбианом, правда, насколько я помню), игры запускать. И ведь в других странах 2G-сети уже начали отключать, а в России таких планов вроде пока нет :)

Если честно, я даже от реакции общественности на эту статью несколько офигел. Ожидал, что да, ностальгия у народа есть, но чтоб вот прям настолько!

Я скажу даже больше -- у многих (и у меня тоже) глубоко в мозгу сидит мысль о том, чтобы купить себе любимый телефон из того времени. В них было что-то такое, чего просто словами не описать.

Реф (refurbished) какого-нибудь Nokia N95 с русской клавой на Алиэкспресс 3500 руб.

я себе уже несколько разных кнопочных Нокий сменил за несколько лет.

А насколько это практично в современном мире, где слишком часто подразумевается, что у тебя либо андроид, либо айфон, либо хотя бы что-то с современным браузером?

Для меня последним телефоном, после которого уже стал пользоваться смартами, была Нокиа 5300 -- обновил ей корпус (пока они есть в продаже) и сейчас она лежит как "электронный ключ". На неё приходят SMS с кодами из банков и прочих важных сервисов.

Да, в C65 можно было смотреть короткие видео через файлменеджер, но не во всех прошивках.

Лечилось прошивкой от sl65.

Телефоны идентичны по железу, но в прошивках были мелкие различия.

Потрясающая статья!
Громадное спасибо, аш олдскулы свело. Интересно, где вы нашли описание всех функций?
Сами определения — вот тут, в том же репозитории вот тут есть куча примеров эльфов, где они используются. Ну а так, как ни странно, можно гуглить их названия (они достаточно уникальны!) и забредать на какие-нибудь древние форумы, или на буквально сайты на народе. В исходниках эльфов частенько есть комментарии. На русском. В windows-1251, ъаъ. И всякий там код для инициализации CSM/GUI все явно копипастили друг у друга, я тоже скопипастил, но переписал, чтобы он был более читаемый.

И, конечно же, можно экспериментировать. Но аккуратно. Любое неверное движение — и телефон говорит «пик» и вырубается. Причину можно посмотреть в инженерном меню в разделе "(S)Exit", но она в большинстве случаев вообще не помогает понять что именно пошло не так.
Спасибо!
НЛО прилетело и опубликовало эту надпись здесь

тщмта, железа этих телефонов вполне хватало на xvid 132*176 в 15 fps. больше смысла не имело, ибо дефолтный "драйвер" дисплея (который на самом деле не драйвер, а просто процесс nucleus'а, а драйвера siemens не использовали вообще) просто не умел рефрешить чаще.

упор там был даже не в производительность проца, которой вполне хватало (но дико нехватало наличия хоть какого-нибудь FPU и бесило то, что проц даже банально делить не умеет), а в скорость доступа до флешки. той, которая (RS-)MMC. наивный fopen/fread выдавал единицы килобайт в секунду. ровно по той причине, что siemens не использовали драйвера.

при этом чисто технически sdio-контроллер там мог читать флешки быстро и делал это- но только в родном плеере. спокойно выдавал все 1411 кбит/с.

крч, не просто так в этих телефонах в векторах прерываний есть замечательная константа 0xFACE926E, а память при старте ос они проверяют не менее замечательной константой 0xDEAD926E.

  • 2 Мб оперативки

  1. а на cx75 (и возможно m75)- 16, верхние 8 из которых не использовались. но можно включить обратно.

наивный fopen/fread выдавал единицы килобайт в секунду
О. А вот это интересно. Я реально столкнулся с тем, что при чтении страницы (40 кб) из файла наивно в GUI_OnRedraw() всё ощутимо пролагивает на полсекунды. Решил это тем, что выделил два буфера: один для страницы, с которой мы рисуем кадры, и второй — чтобы асинхронно (если честно, всё ещё не до конца понимаю что делает SUBPROC(), но вроде бы запускает переданную функцию как отдельный поток) читать в него файл. Когда закончили с текущим буфером, меняем их местами и снова запускаем чтение асинхронно.
крч, не просто так в этих телефонах в векторах прерываний есть замечательная константа 0xFACE926E, а память при старте ос они проверяют не менее замечательной константой 0xDEAD926E.
Это я не находил :)

Но у меня как-то вообще всё туго с реверсингом bare metal кода, даже с современными инструментами вроде ghidra. Наверное, не стоит пытаться тренироваться в этом на ~22 мегабайтах прошивки с RTOS для устройства с каким-то умопомрачительным количеством периферии.
8. а на cx75 (и возможно m75)- 16, верхние 8 из которых не использовались. но можно включить обратно.
Поправил. Чот да, я всё-таки туплю — мне попадались адреса типа 0хa82f0714, при том, что я помню, что внешняя по отношению к процессору оперативка начинается с 0xa8000000, а это уже смещение почти 3 мб.

А зачем они ставили 16, чтобы не использовать половину? Это ж дорого?

Это я не находил :)

я просто лениво-лениво пишу эмулятор pmb8875/6, насмотрелась на оные. ну, а на dead926e еще тогда, чуть меньше 15 лет назад.

0xface926e лежит по адресу 0x14. но не уверена, что его можно прочитать просто так- туда подмаплена TCM.

Я реально столкнулся с тем, что при чтении страницы (40 кб) из файла наивно в GUI_OnRedraw() всё ощутимо пролагивает на полсекунды. 

там просто фс тоже в отдельном процессе и общение с ним mailbox'ами и очередями. с очевидными тормозами на каждом шагу.

А зачем они ставили 16, чтобы не использовать половину? Это ж дорого?

кто же их знает, это же siemens xD

возможно, хотели что-то еще добавить, но не успели. там очень-очень много недопиленных вещей. *показывает на 3d-ускоритель в s75*

даже с современными инструментами вроде ghidra.

гидрой, да 32-меговый бинарь... она ж подавится xD

вроде бы запускает переданную функцию как отдельный поток

чисто технически все эльфы работают в одном потоке. cepid 0x4209, насколько помню. а subproc запускает функцию в контексте другого (но тоже одного и фиксированного) потока с другим приоритетом (pid == приоритет). вот его уже не помню, слишком давно было.

я просто лениво-лениво пишу эмулятор pmb8875/6, насмотрелась на оные.
Ещё интереснее! Такая мысль у меня тоже была, чтобы наконец-то какими-то практическими вещами укрепить своё понимание как работают процессоры в частности и железо в целом на низком уровне. Но лучше, видимо, всё-таки начать с чего-нибудь более документированного и менее сложного. Игровой приставки там какой-нибудь. Там из обязательной к поддержке периферии обычно только видеочип и кнопки/джойстики.

И как успехи?
ну, а на dead926e еще тогда, чуть меньше 15 лет назад.
В фулфлэше с того сх75, что в видео, оно есть на смещении 0x92AC4 (в обратном порядке байт).
там просто фс тоже в отдельном процессе и общение с ним mailbox'ами и очередями.
Ага, до чего-то такого я докапывался, по крайней мере видел процессы (CepID, кстати что такое CepID?) с FFS в названии — это либо For Fuck's Sake, либо Flash File System, каждый выбирает расшифровку по вкусу. И ещё все функции для работы с файлами вызываются через какую-то таблицу с указателями (которая я не смог найти где заполняется). Подозреваю, что они разные для флэша и карты.
*показывает на 3d-ускоритель в s75*
Так он вроде работал? В соседнем комменте про это писали.
гидрой, да 32-меговый бинарь… она ж подавится xD
Как ни странно, не давилась даже на макбуке 2012 года, а на этом с м1 макс уж и подавно.

И как успехи?

https://pastebin.com/YBYspJBe

nucleus запускается, совсем лоулевел "драйвера" запускаются, шедулер работает. до старта "основной ос" не доходит (да, там "ос поверх ос"). за что-то надо дернуть, еще не нашла, за что xD

или возможно просто что-то прошивке не нравится и она втихую перестает дальше запускаться (но не выключается и не перестает перезапускать watchdog)

тот лог с фуллфлеша s65, если что.

Так он вроде работал? В соседнем комменте про это писали.

в соседнем комменте про видео, а не про 3d. ЕМНИП там стоял ati imageon из первых, у которых был opengles 1.1. и вот оно работало настолько плохо... что я не уверена, что он вообще использовался. xD

какую-то таблицу с указателями

посмотри на сеть. где-то там был пятерной указатель. xD

кажется, около dns.

Эх, ностальгия. Бессонные ночи, поиск функций в прошивке по паттернам (и методом тыка) для добавления в таблицу функций, портирование патчей от других моделей и написание эльфов. Поиск адресов падения в s-exit, первые попытки перестать экономить память и взять аж 256 байт сразу под конфиг, а не увеличивать это значение понемногу с каждой версией. Где-то до сих пор валяется архив с патчами, которые я так и не выложил, и прочим барахлом. Жаль, сам телефон после долгого лежания в столе перестал включаться.

Киллер-фичей Siemens были виртуальные SIM-карты. При чём их можно было сделать даже на M55, но было немного неудобно, что нужно было перезагружать телефон. На M65 и S75 можно уже выбрать карту из менюшки, подождать и пользоваться.

У меня были на SL45, жаль только таким образом пролюбил физическую симку, кек

Именно. Жаль современные симки уже не брутфорсятся.

А ещё люди знавшие про патч мультисим явно не разделяли мнение о "инновационности" eSIM многие годы спустя.

Буквально на днях купил Б/У Siemens 65 серии, ибо ностальгия. К сожалению узнал что Теле2 отказался от предоставления доступа в интернет GPRS. Кто-нибудь знает, можно ли собрать кабель-аналог DCA510 самому? Где взять распиновку?

Распиновка гуглится по x65 pionout. Она такая:

1 - зарядка (можно подать +5в от USB)

2 - GND

3 - TX

4 - RX

5 - CTS. Привязываем к земле (pin 2)

7 - DCD. Привязываем к земле (pin 2)

Большинство инструкций упускают что 5 и 7 ноги надо подтянуть к земле. А так - подойдет практически любой USB-UART с уровнями 3.3В. Для прошивки зарядка (pin 1) не нужна насколько я помню.

Так а зачем? DCA540 и собирать не нужно, только штекер да провод от старой мыши подпаять.

Так через него же шить нельзя. Помню, когда покупал кабель, специально брал 510-й по этой причине.

Шить — нельзя, да. Были (даже есть, если поискать) оба варианта. Помню в родном dca510 отвратное качество пластика, растрескался моментально.

Про шить в начальном комментарии не было. Вдруг человеку нужно картинки перекидывать, модемом воспользоваться, или смски бекапить)

Мой китайский 510 (с коробочкой посередине) до сих пор цел - видимо, тот редкий случай, когда китай качественнее бренда.

Кабель откопал, кажется DCA510, проблема что в диспетчере устройств когда его подключишь - он не определяется, а когда телефон подключаешь - тогда начинает определяться, но как Unknown Device, VID_0000&PID_0000, дрова не ставятся, пытался вручную вдолбить дрова FTDI (COM<->USB), они отказались запускаться. С VID_0000&PID_0000 что-то можно сделать? Или это проблема кабеля?

Похоже что кабель не DCA510 или USB-UART чип сильно не в порядке. Я бы посоветовал найти исправный USB-UART и соеденить с имеющимся разъемом.

Скорее всего проблема кабеля. Мой даже без телефона определялся как USB-Serial Converter и в системе появлялся виртуальный COM-порт.

скорее всего это защита от контрафактных чипов, FTDI этим страдали. будет работать только со старыми драйверами (2.8.14 кажется), если прописать vid/pid в него обратно (гуглится по ftdi mprog). но проще взять любой другой usb-uart конвертер, лучше всего на ch340 - они точно могут в два мегабода и их дрова не страдают защитой от подделок.

Не буду писать много букв о том, как я это долго и мучительно отлаживал,
но в итоге у меня получилось скомпилировать работающий эльф.

Самые интересные моменты как раз и упущены. Важен же сам процесс, а не готовые мейкфайлы. И таких моментов в статье больше одного.

Сомневаюсь, что кому бы то ни было было бы интересно смотреть на под сотню таких команд, мелких изменений исходника из папки examples и крашей прошивки. Но так, когда я ещё не разобрался с инициализацией структур, но уже смог собрать что-то пытающееся запуститься, я отлаживал эти проблемы с указателями с помощью таки работающих sprintf и ShowMSG (показывает алерт).

Ну сейчас вы судя по статье герой, а вот ошибки, на которые вы натыкались, чтобы на них не наткнулся кто-то другой в аналогичной ситуации, вы не указали, что делает ценность статьи минимальной. Только если вдруг кому-то не захотелось на точно таком же девайсе яблочко запустить.

Нуууу грабли, по которым я прошёл, я таки перечислил :)

Какая милота. Напомнил мне мое детство, правда я писал эльфы патчи для SE. Скучаю по тем временам.

Я на своем выставил вместо фона гифку с показаниями радиации. Достаешь так из кармана, смотришь с испуганым видом. "Уго у вас тут фон!"

Главное — не обратный отсчёт с арабским текстом в самолёте, были такие скринсейверы.

Мне больше всего нравились эмуляторы и порт дума. Тогда это было очень круто.

С телефонов есть мс60 рабочий, сх75 в разобраном виде, но вроде тоже рабочий, el71 с дохлым шлейфом, без батареи но включается (дажу фул слил), е71 работает, но плохо сеть ловит. Последним купил sxg75 за 30 грн без батареи, но это уже не совсем то.

Кабель для прошивки сделал на ch340g, был старый на pl2102, но с ним часто бсоды прилетали

Кстати елка нормально тянула видео xvid 320x240 с хорошим битрейтом и фпс

Я в те времена благодаря Сименсу увлекся нетмониторингом. Был такой патч "miniGPS" - заменял название оператора на текст из файлика с именем, соответствующим CID-LAC текущей соты. И Java-редактор этих самых файликов к нему прилагался. Эх, сколько километров было пройдено в поисках немногочисленных базовых станций орловского Мегафона. Плюс каждую обойти кругом, чтоб поймать все сектора. И название для каждого понятное придумать, и на карту нанести... А еще во многих местах рядом стояли БСки разных операторов, и нужно было по уровню сигнала и задержке (или надписи на контейнере ?) определить, какая из них "моя". Через некоторое время принадлежность отдельно стоящих вышек мог определять на взгляд. В общем, веселые были времена, не то что сейчас, когда на каждом втором столбе микросота висит)

Если что, на андроиде это всё тоже можно прямо сейчас. Во-первых в большинстве прошивок есть секретное меню, которое открывается, если набрать *#*#INFO#*#*, там можно посмотреть информацию об используемой БС, и ещё можно вручную выбрать стандарт связи (пользуюсь иногда, когда оно включает EDGE при доступном, но, видимо, не 100% идеальном LTE). Во-вторых, для получения той же самой инфы есть апи, доступное приложениям. Где-то в недрах TelephonyManager, по-моему. Можно поставить какое-нибудь готовое приложение (их много), можно написать своё.

Да, иногда меня тянет тряхнуть стариной и я расставляю вышки в CellMapper ?

А еще сейчас есть "реестр санитаров", в котором можно искать БСки вообще не выходя из дома)

благодаря Сименсу увлекся нетмониторингом

Как раз похожий случай. Штатное меню, конечно, было непригодно, но раз измерения есть в памяти -- грех не воспользоваться. Дальше уже появилась подстветка по встроенной "БД", запись логов, привязка на конкретный канал. Сейчас на случайно сохранившиеся скриншоты без слёз не взглянешь, а как для 2006 очень помогало с хобби.

Вот бы кто сделал интервью с участниками сименс сцены. Valera V, smelter, cbn с его эмулями, kibab и его база патчей, avkiev, chaos, papuas, perk11, BoBa, SiNgle... Список может продолжаться бесконечно.

Про ресурсы Сименс клаб, конфликт орг с ру, вап клаб, аллсименс, кибаб, siepatchdb конфа в жаббере.

Задавайте вопросы, отвечу :-)

Bad Apple на SL45. :)

А какие-то подробности есть? Там же и эльфов нет, и вообще процессор какой-то странной архитектуры C166 (предыдущее поколение этого PMB8***).

ЕМНИП вместо эльфов там были .bin (и веселье с релоками).

а вон то скорее всего на acevideo сделано, на j2me. оно там неплохо бегало.

Наоборот! У SL45 огромнейшее комьюнити моддеров. В целом, он считается первым смартфоном. В нём есть флешка, ик-порт, MP3-плеер, он умеет воспроизводить видео (думаю, так и запустили в ролике выше).

CX75, ностальгия. Собирал под него патч-сет для работы Jimm в фоне.

SX1 тоже был хорош. Тоже патч-сет под него собирал. Облегчали прошивку максимально, чтобы памяти свободной было больше. Даже на ослике где-то тема была про неё.

патч-сет для работы Jimm в фоне
А у меня чот Jimm никогда нормально не работал. Постоянно соединение отваливалось. Зато эльф NatICQ вот прям топчик был.

Классная статья, спасибо Гришка)

Было очень приятно вспомнить сименсы и их нюансы работы!

Я думал мне одному в 22 году захотелось Сименс помучать))

Нашел е71 на авито) товарищ подогнал 110 кабель) Правда под убунтой собрал пару эльфов старых?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории