- Чипсеты и архитектуры кнопочных телефонов: от RDA до Spreadtrum и Mediatek
- Прошивка кнопочного телефона: где взять и как работать
- Память и ресурсы телефона: почему всё так скромно?
- Программная архитектура: CoolMMI и PlutoMMI
- Платные игры и СМС-подписки: деньги с воздуха?
- Убираем навязчивое меню Funbox
- Регулировка громкости: от крика к шепоту
- MIPS16e и microMIPS: два мира 16-битных команд
- Инженерное меню: как в него попасть?
- Можно ли ставить кастомные прошивки?
- Инструменты для работы с прошивками
- Часто задаваемые вопросы (FAQ)
- Чек-лист для начинающих исследователей прошивок кнопочных телефонов
- Итоги
Кнопочные телефоны — это как виниловые пластинки в мире музыки: простые, надёжные и с особым шармом. Несмотря на массовую популярность смартфонов, кнопочные звонилки остаются востребованными, особенно среди тех, кто ценит базовые функции связи и непритязательность. Но что делать, если в вашей любимой кнопочной модели зашиты платные игры, назойливые СМС-подписки или слишком громкий динамик? Погружаться в мир прошивок, разумеется!
В этой статье мы разложим по полочкам всё, что связано с прошивками кнопочных телефонов на примере популярного чипа RDA8826C (также известного как SC6533g), расскажем, как получить прошивку, изменить её, и обойти надоедливые ограничения.
Чипсеты и архитектуры кнопочных телефонов: от RDA до Spreadtrum и Mediatek
Современные кнопочные телефоны в России чаще всего работают на SoC (System on Chip) от трёх производителей: RDA Microelectronics, Spreadtrum и Mediatek.
- RDA Microelectronics — компания, которая прекратила существование в 2015 году, была куплена Spreadtrum и ребрендирована в Unisoc.
- Чип RDA8826C/SC6533g представляет собой последний "могикан" от RDA, построенный на архитектуре MIPS с набором инструкций MIPS16e — особый режим с укороченными 16-битными командами для уменьшения размера прошивки.
- Большинство современных звонилок на Spreadtrum и Mediatek используют архитектуру ARM, но RDA8826C — это как ретро-автомобиль с MIPS-процессором.
| Характеристика | RDA8826C / SC6533g | Современные Spreadtrum/Mediatek |
|---|---|---|
| Архитектура | MIPS16e | ARM |
| Процессор | 312 MHz | Часто выше 1 GHz |
| Флеш-память | 32 Мбит (4 МБ) | Обычно больше |
| Оперативная память | 64 Мбит (8 МБ) | От десятков до сотен МБ |
Прошивка кнопочного телефона: где взять и как работать
Первый шаг к магии — получить прошивку. Для Inoi 101 (на базе RDA8826C) прошивки можно найти на официальном сайте производителя, но там часто не самые свежие версии, например без игры Тетрис или набора Т9. Тогда приходится снимать прошивку с телефона с помощью специальных «боксов» — аппаратно-программных комплексов, или использовать взломанные программы, например Miracle Thunder 2.82, чтобы вытащить дамп напрямую.
Официальные прошивки обычно представлены в текстовом формате .lod, описывающем блоки флеш-памяти с адресами и бинарными данными, что упрощает понимание, но требует опыта для модификации.
Память и ресурсы телефона: почему всё так скромно?
Телефон с 4 МБ флеш-памяти — это как квартира в хрущёвке, где каждый сантиметр на счету. Производители экономят на памяти, чтобы снизить стоимость: обычно доступно всего несколько десятков килобайт для контактов и СМС. Например, у старенького Samsung X100 было доступно 9 МБ — почти дворец по сравнению с Inoi 101 за $9!
| Модель | Год выпуска | Доступная память пользователю |
|---|---|---|
| Samsung X100 | 2003 | 9 МБ |
| Siemens C65 | 2004 | 6 МБ |
| Inoi 101 | Современный | Десятки килобайт |
Память делится так:
- Флеш (4 МБ) — для хранения прошивки и постоянных данных
- Оперативная (8 МБ) — для запуска кода и временных данных
- SRAM (64 КБ) — для самых быстрых операций
Программная архитектура: CoolMMI и PlutoMMI
Телефонное меню и функции управляются фреймворком CoolMMI (форк от Pixtel), похожим на PlutoMMI в телефонах Mediatek. Это монолитный, древний по архитектуре код с глобальными переменными, магическими константами и массивами, где каждый пункт меню — это цифра-идентификатор.
Программисты прошлого не знали, что такое модульность, зато вы сейчас можете смеяться над тем, как сложно читать такой код! Все меню, функции и текстовые ресурсы запрашиваются по уникальным ID — это как собирать пазл с цифрами вместо картинки.
Платные игры и СМС-подписки: деньги с воздуха?
Любите игры на кнопочном телефоне? Тогда приготовьтесь к хитростям. В Inoi 101 есть 3 платные игры (Danger Dash, Ninja Up, Tetris), каждая с ограничением в 5 запусков, потом — плати 99 рублей за полную версию. При этом покупка — это отправка платного СМС и ввод кода регистрации.
Но код привязан к конкретной минуте и сгенерирован по хитрому алгоритму, зависящему от случайного числа и идентификатора телефона (в нашем случае 28060). Повторно использовать код после сброса телефона не выйдет — защитные меры.
Пример формулы для кода:
game_response_code = (1000 * (game_random % 10)
+ game_random / 1000
+ 100 * (game_random / 10 % 10)
+ 10 * (game_random / 100 % 10)) ^ 0x1D6B;
game_response_code += 28060;
Но хакеры сделали кейген — программу, которая генерирует коды бесплатно, обходя СМС-подписки.
Убираем навязчивое меню Funbox
Funbox — это меню платных СМС-подписок с ежедневным списанием денег. Хотите навсегда убрать? Просто найдите функцию, отвечающую за обработчик этого меню (по имени файла и отладочным сообщениям) и "запретите" ей срабатывать — никакой реакции на нажатие иконки. Меню исчезнет, а вы не потеряете ни рубля.
Регулировка громкости: от крика к шепоту
Звук телефона часто бывает либо «тишина» либо «ураган». В Inoi 101 аппаратный аудиоусилитель позволяет 15 уровней, а прошивка — только 7 с большими скачками.
Решение — переписать функцию преобразования уровня громкости в регистры усиления динамика, сделав шаги более плавными:
| Старые уровни громкости | Новые уровни громкости |
|---|---|
| 0, 2, 4, 6, 8, 10, 12, 14 | 0, 1, 2, 3, 5, 6, 8, 10 |
Это улучшает комфорт, снижая максимальную громкость, но избавляет от дискомфорта при малых значениях.
MIPS16e и microMIPS: два мира 16-битных команд
Архитектура MIPS бывает разной:
- MIPS16e — расширение к MIPS32, инструкции 16 бит, можно переключаться между режимами.
- microMIPS — отдельная архитектура, с полным набором 16-битных инструкций и лучшей производительностью.
Проблема — популярные инструменты для ассемблирования (rasm2, kstool) плохо поддерживают MIPS16e, выдавая либо неправильные инструкции, либо неэффективный код. К счастью, компилятор gcc умеет собирать MIPS16e-код, правда он добавляет nop-ы для выравнивания.
Инженерное меню: как в него попасть?
Поклонники настройки кнопочных телефонов часто хотят попасть в инженерное меню, чтобы, например, увеличить громкость микрофона или изменить настройки сети.
- Для телефонов на процессорах Spreadtrum (например, SC6531) доступ к инженерному меню часто возможен комбинацией кнопок или через специальное программное обеспечение.
- Иногда можно войти, загрузив определённые прошивки или используя сервисные кабели.
- Встречаются ситуации, когда прошивки для разных моделей могут работать, если совпадают аппаратные параметры (экран, процессор), но это не гарантия успеха.
Можно ли ставить кастомные прошивки?
Вопрос, который мучает многих:
А можно ли поставить прошивку от другого телефона или кастомную?
Ответ: в теории — да, если:
- Совпадает процессор
- Совпадают аппаратные параметры (экран, кнопки, камера)
- Поддерживается та же архитектура и набор команд
На практике — это лотерея. Китайцы делают прошивки очень разные, и нередко инженерное меню заблокировано или меню не совпадает. Тем не менее, эксперименты с кастомами популярны, и некоторые сообщества выпускают собственные версии прошивок.
Инструменты для работы с прошивками
- Miracle Thunder — популярное ПО для прошивки и снятия дампов с телефонов на базе Spreadtrum и RDA.
- usb-serial драйверы — позволяют подключить телефон через USB и считать память.
- Дисассемблеры (IDA, Radare2) — для анализа кода и поиска функций.
- gcc с поддержкой MIPS16e — для сборки патчей.
Часто задаваемые вопросы (FAQ)
В: Как получить прошивку для своего кнопочного телефона?
О: Смотрите на сайте производителя, ищите специальные форумы, или используйте «боксы» и программы для считывания напрямую.
В: Можно ли обойти платные игры?
О: Да, создавая кейгены или патчи, которые снимают ограничение на количество запусков.
В: Почему в телефоне мало памяти?
О: Производители экономят на флеш и оперативной памяти, чтобы снизить цену устройства.
В: Как увеличить громкость микрофона или динамика?
О: Можно попасть в инженерное меню или перепрошить определённые регистры в прошивке.
Чек-лист для начинающих исследователей прошивок кнопочных телефонов
- [x] Найти модель телефона и чипсет
- [x] Скачать или снять прошивку
- [x] Изучить структуру памяти (флеш, RAM, BootROM)
- [x] Проанализировать код в дисассемблере
- [x] Найти функции платных игр и подписок
- [x] Создать патчи или кейгены для обхода ограничений
- [x] Тестировать на устройстве, сохранять резервные копии
- [x] Делитесь знаниями с сообществом!
Итоги
Кнопочные телефоны — это настоящие крепкие орешки с богатым внутренним миром! Их прошивки хоть и скромны, но интересны для исследования. Даже без исходного кода можно разобраться в архитектуре, снять ограничения, и сделать устройство удобнее.
Помните: кнопочный телефон — как хороший борщ: простой набор ингредиентов, но с умелой рукой шеф-повара он может удивить! Так что не бойтесь «шаманить» со своей прошивкой, ведь за пределами привычного меню вас ждёт целый мир возможностей.
Пусть ваши звонки будут громкими, а прошивки — свободными!