Как прошить кнопочный телефон через компьютер

Введение

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

Inoi 102 и Strike F10

Inoi 102 и Strike F10

Купил я телефон Inoi 101: дешевый, но функционально достойный даже на фоне более дорогих моделей. Всё бы хорошо, если бы не нежелательная функциональность, присущая большинству недорогих звонилок:

  • Пробные игры с покупкой полной версии через СМС, причём состояние покупки сбрасывается при полном сбросе устройства;

  • Встроенное меню СМС-подписок «Funbox»: гороскопы, анекдоты, новости, прочая платная ерунда.

Платные игр и меню Funbox

Платные игр и меню Funbox

Попробуем устранить недостатки путём анализа и модификации прошивки.

Чипсет

Современные кнопочные девайсы строятся на платформах трёх производителей: RDA Microelectronics, Spreadtrum, Mediatek. Первой компании уже не существует: её купил Spreadtrum в середине 2015. Обе компании ребрендировали под именем Unisoc в 2018 году.

Рассматриваемый телефон работает на последнем чипе «классического» RDA семейства Gallite, и был сделан уже после покупки компании, из-за чего у чипа два названия: RDA8826C (RDA’шное) и SC6533g (Spreadtrum’овское). В интернете нет не только datasheet’ов, но и почти никакой публичной информации об этой модели.
Архивная страница сайта rdamicro.com 2017 года скупо повествует нам о ключевых возможностях SoC’а:

General Description
RDA8826C is a high performance, highly integrated system-on-chip solution for low cost, low power, GSM/GPRS mobile phone.
Integrating all essential electronic components, including baseband, quad band RF transceiver, power management, FM receiver, Bluetooth onto a single system on chip, RDA8826C offers best in class bill of material, space requirement and cost/feature ratio for complete phone handsets.

Key Features
1. MIPS 312MHz processor
2. GSM/GPRS modem
3. 32Mb Flash and 64Mb PSRAM integrated
4. 320×480(HVGA) resolution

Нынешние телефоны построены в основном на процессорах Spreadtrum и Mediatek архитектуры ARM. Inoi 101 — не только «последний из могикан» на чипе ныне несуществующей компании, но и работает на ныне непопулярной архитектуре, с не самым известным набором команд MIPS16e, в котором инструкции кодируются в 2 байта вместо четырех, для уменьшения размера прошивки, что жизненно необходимо устройству со всего 4 МБ (32 Мбит) флеша.

Печальный факт: производители современных звонилок агрессивно экономят на флеш-памяти. Доступный пользователю объем выражается, как правило, десятками килобайт.
Вы не сможете пользоваться диктофоном или камерой без MicroSD-карты. Количество контактов и СМС-сообщений в памяти телефона ограничено, как и длина поля «имя», и общее количество полей записной книги.
Для сравнения, в Samsung X100 2003 года выпуска пользователю было доступно 9 мегабайт памяти, в Siemens C65 2004-го — 6 МБ.
Такова плата за дешевизну: X100 — $230 на старте продаж, Inoi 101 — $9.

SoC RDA8826 содержит в себе центральный процессор RDA8809e2, Baseband-процессор CT8851C, Bluetooth и FM-модули rdabt_8809 и rdafm_8809. Достоверная информация о всех компонентах в интернете не представлена.

Получение прошивки

Чтобы модифицировать прошивку, нужно сначала завладеть ей. Самый простой вариант — поискать на веб-сайте производителя. Inoi выкладывает прошивки ко всем своим моделям, но они не всегда самые последние — оказалось, что в версии с сайта отсутствует набор Т9 и игра «Тетрис».
Что-ж, телефон уже прошит, придётся покупать второй и скачивать актуальную прошивку с него. Сделать это можно, в случае RDA, только сторонними программами, т.н. «боксами» — аппаратно-программными комплексами для прошивки и восстановления от сторонних разработчиков. Обычно необходимо купить сам «бокс» (устройство с набором кабелей) и подписку на ПО, но к счастью подходящее ПО уже есть взломанной версии, отвязанное и от бокса, и от подписки — Miracle Thunder 2.82 от Gsm_X_Team. Относитесь к этому ПО как к трояну — устанавливайте на отдельный компьютер, без интернета (в виртуалке не работает).

Miracle Thunder

Miracle Thunder

Официальные прошивки поставляются в текстовом формате .lod. Этот формат описывает процесс прошивки поблочно, в соответствии с размерами блоков флеш-памяти, в виде адреса загрузки и бинарных данных, закодированных по 4 байта little endian. Формат нестандартный, но простой, без особенностей. Единственное, что нужно учесть при написании конвертера — файл описывает не все блоки флеша, некоторые из блоков не программируются (есть «дыры»).

#$mode=flsh_spi32m
#$sectormap=(16 x 4k, 57 x 64k, 96 x 4k)
#$base=0x08000000
#$spacesize=0x08000000
#$XCV_MODEL=xcv_8809e2 
#$PA_MODEL=pasw_hs8292u 
#$FLSH_MODEL=flsh_spi32m 
#$FLASH_SIZE=0x00400000 
#$RAM_SIZE=0x00800000 
#$RAM_PHY_SIZE=0x00800000 
#$CALIB_BASE=0x003FA000 
#$FACT_SETTINGS_BASE=0x003FE000 
#$CODE_BASE=0x00000000 
#$USER_DATA_BASE=0x00380000 
#$USER_DATA_SIZE=0x0007A000 
#$PM_MODEL=pmu_8809 
#$FM_MODEL=rdafm_8809e 
@08000000
d9ef0045
00000000
00000000
00000000
27bdffd0
afb10028
00808821
3c0481e0
…

Открываем дамп флеша или преобразованный файл прошивки в вашем любимом дисассемблере, начинаем анализировать, быстро разочаровываемся: строк мало, сегментация памяти непонятная, IDA норовит неправильно определить MIPS32/MIPS16-код, тут и там странные указатели 0x82xxxxxx на оперативную память, в которые никто не пишет…

Скребём по сусекам

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

Поиск приводит к двум репозиториям: https://github.com/jprothwell/sc-fix и https://github.com/cherryding1/RDA8955_W17.44_IDH
По первой ссылке можно скачать старые, но достаточно актуальные исходные коды загрузчика, HAL, пользовательского интерфейса и всей обвязки для старого семейства чипов RDA, а по второй ссылке доступен memory layout [1], [2] для нашего процессора.

Из заголовочных файлов узнаём самое основное:

  • Флеш располагается по адресу 0x88000000 (4 МиБ)

  • Оперативная память — в 0x82000000 (8 МиБ)

  • SRAM — 0x81C00000 (64 КиБ)

  • BootROM — 0x81E00000

UI на моём устройстве построен на форке фреймворка MMI (man-machine interface) от компании Pixtel — CoolMMI. Подобный фреймворк используется и в ОС для кнопочных телефонов Mediatek MAUI, под названием PlutoMMI.

Фреймворк создавался в лучшие годы кнопочных телефонов, с соответствующим качеством кода — всё завязано на глобальные переменные, глобальные состояния, магические константы, массивы строк, массивы функций-обработчиков кнопок. Монолитная архитектура без какой-либо модульности (даже минимальной) не позволяет писать красивый код — разные функциональные возможности активируются #define’ами в унифицированных *.c-файлах для всех случаев, затрудняющими чтение кода.

Обращение к текстовым строкам, ресурсам, задачам, меню, элементам NVRAM происходит с помощью уникального цифрового идентификатора, что затрудняет исследование: вы видите только цифры, далеко не сразу поддающиеся установке соответствия в осмысленную строку, пункт меню или ресурс.

/* Get current screen to gui buffer  for history purposes*/
guiBuffer = GetCurrGuiBuffer( SCR_CALL_TIME_SETUP_MAIN );
/* Retrieve no of child of menu item to be displayed */
nNumofItem = GetNumOfChild( MENU_CALL_TIME_SETUP );
/* Get attribute of menu to be displayed */
//nDispAttribute = GetDispAttributeOfItem( MENU_CALL_TIME_SETUP );
/* Retrieve string ids in sequence of given menu item to be displayed */
GetSequenceStringIds( MENU_CALL_TIME_SETUP, nStrItemList );
/* Set current parent id*/
SetParentHandler( MENU_CALL_TIME_SETUP );
/* Register highlight handler to be called in menu screen */
RegisterHighlightHandler( ExecuteCurrHiliteHandler );
/* Construct hint for menu items */
ConstructHintsList(MENU_CALL_TIME_SETUP, displayBuffer);

/* Display Category1 Screen */
ShowCategory52Screen( STR_MENU_CALL_TIME_SETUP, IMG_MENU_CALL_TIMES,
                        STR_GLOBAL_OK, IMG_GLOBAL_OK, STR_GLOBAL_BACK,
                        IMG_GLOBAL_BACK, nNumofItem, nStrItemList,
                        (U16 *)gIndexIconsImageList,
                        displayBuffer, 0, 0, guiBuffer );

/* Register function with right softkey */
SetKeyHandler( GoBackHistory,KEY_LEFT_ARROW, KEY_EVENT_DOWN);
SetRightSoftkeyFunction( GoBackHistory, KEY_EVENT_UP );
return;

Начальную информацию об основных функциях PlutoMMI от Mediatek можно почерпнуть из файла mmi framework and architecture.pdf. Архитектура CoolMMI и PlutoMMI совпадает в достаточной мере, чтобы пользоваться (аналогично скудной) документацией конкурирующего производителя.

Поиск сжатых ресурсов

Итак, память размечена правильно, а кардинальных изменений не видно — множество функций продолжают вызывать код из оперативной памяти, но найти, кто пишет в эти адреса, с наскока не получается. Да и ресурсов подозрительно мало.

После непродолжительного анализа обнаруживаются три особенности:

Переиспользование функций из BootROM
Для максимальной экономии пространства на флеш-памяти производитель реализовал наиболее востребованные функции библиотеки C непосредственно в ROM-памяти чипа: строковые функции (strlen, strcmp, strcpy, strcat, strtok), функции сравнения и копирования памяти (memcmp, memcpy, memmem, memchr), форматирования и вывода (sprintf, vsprintf), поиска и сортировки (bsearch, qsort) вызываются из памяти ROM, и не содержатся в коде прошивки, экономя драгоценные килобайты.

Сжатие кода и ресурсов алгоритмом LZMA
Код наиболее объемных «модулей» (WAP-браузера, мультимедиа-плеера, приложения FM-радио, инженерного меню) хранится в сжатом виде, а распаковывается один раз, при запуске телефона. Ничего дополнительного после распаковки не происходит: код скомпонован так, будто эти модули всегда в оперативной памяти по фиксированным адресам.
Аналогично распаковываются текстовые строки, но только для одного, текущего языка.

Копирование несжатого кода в оперативную память
Самый архитектурно важный код ОС копируется в оперативную память и выполняется из неё. Вероятно, это сделано для максимальной скорости исполнения базовых функций ОС.

Сжатые ресурсы легко находятся через binwalk. Можно было бы каждый из них вручную распаковать и загрузить в текущую базу IDA по корректным адресам, но я нашел способ проще, надёжней и быстрее.

Снятие оперативной памяти

Оказалось, протокол прошивки не только простой, но и разрешает чтение произвольных адресов без какой-либо подготовки, прямо во время работы телефона. В интернете была найдена готовая программа для чтения прошивки через UART, которая после модификации была использована для чтения всех 8 МиБ оперативной памяти через USB. 2 минуты — и никакой ручной работы!
Чтобы получить коммандный порт через USB, можно воспользоваться модулем usb-serial в Linux. Достаточно всего лишь «научить» модуль работать с RDA:

$ echo 1e04 0900 | sudo tee /sys/bus/usb-serial/drivers/generic/new_id

Разжатая функция в оперативной памяти

Разжатая функция в оперативной памяти

Отныне нам доступны все распакованные функции и ресурсы в оперативной памяти, что позволяет нам беспрепятственно их проанализировать.

«Покупаем» игры

В рассматриваемом телефоне присутствуют 3 платных игры производства Gameloft: Danger Dash, Ninja Up, Tetris. Первая — раннер, без какой-либо физики прыжка, вторая — примитивный фроггер с одним экраном, играть можно разве что в тетрис, но он начинает тормозить при заполнении экрана фигурами.
Каждая игра запускается всего 5 раз, далее их предлагается оплатить. Игры стоят 99 рублей каждая — половину стоимости телефона — обдираловка!

С точки зрения пользователя, покупка совершается так: нажимаем на кнопку «купить», телефон отправляет платное СМС, пользователю приходит ответный код, который нужно ввести в окно регистрации. Но если купить игру, запомнить ответный код, сбросить телефон и попробовать заново ввести этот же код, то он, с большой вероятностью, не подойдет.
Как так?

Алгоритм следующий:

  1. Генератор псевдослучайных чисел инициализируется значением текущей минуты;

  2. Генерируется псевдослучайное число от 1000 до 9999;

  3. Случайное число отправляется в СМС и сохраняется в NVRAM;

  4. Ответный код проверяется с учётом сохраненного случайного числа.

Связка запрос-ответ уникальна для каждой модели, и зависит от той минуты, в которую была нажата кнопка «купить»:

game_response_code = (1000 * (game_random % 10)
                    + game_random / 1000
                    + 100 * (game_random / 10 % 10)
                    + 10 * (game_random / 100 % 10)) ^ 0x1D6B;
game_code_temp = game_response_code;
game_response_code = atoi("28060") + game_code_temp;
return game_response_code == input_code;

Где 28060 — идентификатор телефона Inoi 101.
Этот нехитрый алгоритм легко реализовать в виде кейгена, что я и сделал: http://gameloft-keygen.valdikss.org.ru/
К слову, на телефонах с Mediatek алгоритм кода регистрации точно такой же, но алгоритм генерации псевдослучайных чисел отличается.

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

Замена переменных в функции инициализации

Замена переменных в функции инициализации

Найти функции можно по отладочным строкам, содержащим характерное имя файла:

Функция вывода номера строки файла src/gameloft_billing.c

Функция вывода номера строки файла src/gameloft_billing.c

Отключаем Funbox

Меню платных СМС-подписок — ожидаемая, но неуместная функция послепродажного заработка денег производителем. Одно неловкое нажатие — и минимум 5 рублей со счёта в сутки вам обеспечено. Подобные вещи позволяют держать цены на кнопочные телефоны на очень низком уровне, но в моём устройстве им не место.

Как и в случае с играми, в функциях Funbox присутствует отладочный вывод номеров строк с именем файла «src/gmb_smart_sms_win.c». С этих строк можно «дошагать» до функции-обработчика выделения элемента главного меню (в CoolMMI они называются hilite, очевидно имеется в виду highlight), в котором и находится иконка.
Методом проб и ошибок удалось обнаружить обработчик входа в интерфейс подписок, который был благополучно за’nop’лен — нажатие на иконку Funbox центральной кнопкой или левой софт-клавишей более ни к чему не приводят.

Функция расположена в несжатой области и легко поддаётся изменению.

Исправляем громкость

Компонент аудиоусилителя телефона имеет 15 ступеней усиления, но для мультимедии прошивка телефона предусматривает всего 7 уровней громкости, с большими шагами между ними. Это неудобно: на «единице» телефон еле слышно, а на «двойке» он сразу ОРЁТ.

Попробуем исправить эту проблему. В заголовочных файлах быстро находится регистр CONFIG_REGS по базовому адресу 0x01A24000, структура которого описывается следующим образом:

#define REG_CONFIG_REGS_BASE  0x01A24000
#define hwp_configRegs        ((HWP_CFG_REGS_T*) KSEG1(REG_CONFIG_REGS_BASE))

typedef volatile struct
{
  REG32    CHIP_ID;          //0x00000000
  /// This register contain the synthesis date and version
  REG32    Build_Version;    //0x00000004
  /// Setting bit n to '1' selects GPIO Usage for PAD connected to GPIOn. Setting
  /// bit n to '0' selects Alt.
  REG32    GPIO_Mode;        //0x00000008
  REG32    Alt_mux_select;   //0x0000000C
  REG32    IO_Drive1_Select; //0x00000010
  REG32    IO_Drive2_Select; //0x00000014
  REG32    audio_pd_set;     //0x00000018
  REG32    audio_pd_clr;     //0x0000001C
  REG32    audio_sel_cfg;    //0x00000020
  REG32    audio_mic_cfg;    //0x00000024
  REG32    audio_spk_cfg;    //0x00000028
  REG32    audio_rcv_gain;   //0x0000002C
  REG32    audio_head_gain;  //0x00000030
} HWP_CFG_REGS_T;

//audio_spk_cfg
#define CFG_REGS_AU_SPK_GAIN(n)     (((n)&15)<<0)
#define CFG_REGS_AU_SPK_MUTE_N      (1<<4)

Использование регистра происходит через сегмент KSEG1, в обход MMU и кешей. Полный адрес audio_spk_cfg, обращения к которому нужно искать в дисассемблере — 0xA1A24028.

После непродолжительного поиска обнаруживается функция, преобразующая уровень усиления (по всей видимости, в децибелах) в значение SPK_GAIN:

int __fastcall volume_maps(int a1) // 0x88038184
{
  int result; // $v0

  result = 0;
  if ( a1 >= 5 )
  {
    result = 2;
    if ( a1 >= 14 )
    {
      result = 4;
      if ( a1 >= 18 )
      {
        result = 6;
        if ( a1 >= 20 )
        {
          result = 8;
          if ( a1 >= 22 )
          {
            result = 10;
            if ( a1 != 22 )
            {
              result = 12;
              if ( a1 != 23 )
                return 14;
            }
          }
        }
      }
    }
  }
  return result;
}

Изменив уровни с [0, 2, 4, 6, 8, 10, 12, 14] на [0, 1, 2, 3, 5, 6, 8, 10], мы получили более плавную регулировку ценой уменьшения максимальной громкости, которая всё равно только приводила к перегрузу маломощного динамика телефона.

Если при воспроизведении MP3-файлов положительный эффект очевиден, то громкость FM-радио всё ещё регулируется с недостаточной гранулярностью. Вероятно, это аппаратная проблема подключения FM-чипа.

Неожиданные трудности

Для MIPS существует два стандарта 16-битных инструкций: MIPS16e и microMIPS. Первый является дополнением (extension) к архитектуре MIPS32: код может использовать одновременно оба набора инструкций, процессор может переключаться между режимом выполнения MIPS32 и MIPS16e в любое время, прыжком на нечётный адрес инструкции. Не все инструкции и возможности MIPS можно выразить командами MIPS16e — иногда переключение в режим MIPS32 просто необходимо.
microMIPS же — полноценная архитектура с полным набором 16-битных команд. Вот что говорит официальная брошюра:

The benchmarks prove that the microMIPS architecture delivers similar memory savings as the MIPS16e ASE, but with much better performance. The question is how? The list of reasons includes new optimized 16- and 32-bit instructions, an optimized recoding of MIPS32 instructions, and optimized op code format and register utilization.

The earlier stated fact that microMIPS is a complete architecture – not an extension − is also key. Both MIPS16e, and for that matter the similarly-targeted ARM Thumb technologies, are extensions. Both microMIPS and these extensions rely on the concept of new 16-bit versions of regularly used instructions to minimize code size. And all deliver reductions in code size. But only microMIPS delivers 32-bit performance.

The microMIPS mode can handle all operations such as exception handling, and offers a superset of the MIPS32 ISA. With MIPS16e, the programmer had to swap modes to use ASEs such as MIPS DSP. The microMIPS mode can seamlessly access the ASEs. The need to run legacy binary code is really the only reason that would prompt a programmer to use the MIPS32 mode.

Проблема в том, что привычные утилиты инлайн-ассемблирования кода для патча программы, такие как rasm2 из состава Radare2 и kstool из KeyStone, не поддерживают режим MIPS16e. Они либо ассемблируют 32-битные команды, несмотря на то, что выбран 16-битный режим, либо выводят опкоды, явно не соответствующие MIPS16e.

К счастью, ассемблер gcc поддерживает режим MIPS16e, а работать с ним почти так же удобно, как с rasm2/kstool. Есть, разве что, одна особенность: он выравнивает блок nop’ами.

$ echo 'jr $ra' | mips64-linux-gnu-as -o /dev/null -al -mips16 -32
GAS LISTING                     page 1


   1 0000 E8206500      jr $ra
   1      65006500 
   1      65006500 
   1      65006500

Вывод

Надеюсь, эта небольшая заметка поможет исследователям прошивок кнопочных телефонов на платформе RDA и подогреет желание к погружению в звонилки на платформах других производителей. Доступные в любом магазине, эти дешевые но полнофункциональные двухсимочные телефоны с доступом в интернет так и просятся в руки хакеров, чтобы их адаптировали не только под базовые потребности связи.
Как оказалось, нет ничего сложного в минимальном изменении функциональности подобных устройств. Автор не столкнулся с неразрешимыми проблемами, проделанный путь в целом совпадает с анализом прошивкок любого другого устройства, а доступные исходники, хоть и устаревшие, позволяют разобраться в архитектуре и, при желании, интегрировать новые функции, не обладая кодом самой прошивки.

Готовую модифицированную прошивку для Inoi 101 можно скачать на GSMForum.ru: https://gsmforum.ru/threads/inoi-101-modificirovannaja-proshivka.337775/

Главная » Железо » Как прошить кнопочный телефон через компьютер. Резервирование установленной версии Android

Как перепрошить телефон с помощью кнопок

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

  • если версия операционной системы устарела и необходимо установить новый вариант;
  • если в работе программы возникли какие-либо сбои;
  • если необходимо сменить язык системы на русский;
  • если необходимо взломать защиту программе при блокировке гаджета.

Поиск и установка ПО для прошивки

Самый доступный рядовому пользователю и простой в использовании способ прошить телефон – это использовать специальную программу CWM-recovery . ЕЕ можно найти и скачать на любом сайте, где выложены ПО для мобильных устройств. Перед установкой этого менеджера нужно найти и загрузить в Google маркете приложение под названием Mobileuncle MTK Tools . Оно понадобиться, чтобы установить нужный нам менеджер для решения проблем мобильных устройств.

Эта программа занимает совсем немного места на носителе мобильного устройства и является бесплатной. Затем следует скачать файл CWM-recovery на любом тематическом сайте, например 4PDA.ru . Здесь можно найти достаточно много полезного . Можно просто вбить название программы в поисковик сайта или попытаться найти вручную. Серфинг по разделам сайта довольно простой, поэтому проблем с поиском не возникнет. Затем скаченный файл нужно распаковать и перенести его в память телефона. Запустив приложение Mobileuncle MTK Tools , нужно предоставить программе права мультипользователя.

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

На 4PDA.ru можно найти и файл с прошивкой. Нужно пройти в раздел форум, выбрать категорию Android-устройства и найти свой гаджет. Затем из списка прошивок достаточно скачать нужную. Данный сайт хорош тем, что здесь представлены не только официальные обновления для андроида, но и неофициальные прошивки. Однако, нужно быть крайне внимательным, чтобы не скачать некорректное ПО. Затем нужно перенести скаченный файл в память телефона на SD карту. Лучше всего подойдет корень карты, то есть не нужно его переносить в какую-либо папку, чтобы не усложнить впоследствии поиск новой операционной системы.

Подготовка к установке новой операционной системы

Перед началом прошивки нужно полностью зарядить мобильное устройство и выключить его. Затем, чтобы включить девайс, нужно одновременно нажать кнопку включения или блокировки экрана и кнопку увеличения громкости. Таким образом на андроид устройствах обычно запускается CWM-based Recovery , системная утилита для мониторинга и решения проблем с устройством. Посредством этой утилиты можно не только перепрошить телефон, но и очистить некоторые разделы памяти, сделать резервную копию устройства, настроить девайс или вернуть к первоначальным настройкам.

Прежде чем устанавливать новую версию операционной системы, нужно очистить определенные разделы памяти устройства. Для этого при помощи качельки громкости и кнопки блокировки выбираем команду «Wipe data/factory reset» и подтверждаем свой выбор в следующем меню.

Посредством этой команды выполняет сброс всех настроек пользователя и откат мобильного устройства до первоначального состояния. Обычно процесс форматирования не занимает больше нескольких минут.

Затем в этой же утилите нужно выбрать команду и также подтвердить свой выбор. После этого утилита очистит кэш устройства, в памяти устройства эти данные находятся в папке /cache .

Следующим шагом нужно перейти в раздел «Advanced» и выбрать команду «Wipe dalvik cache» и подтвердить свой выбор. Этот процесс также очищает кэш, но уже в папке /dalvik

Затем в главном меню нужно перейти в раздел «Mount and starage» и выбрать команду «format /system» и подтвердить свой выбор. Посредством этой команды текущая система устройства форматируется, то есть, таким несложным образом удаляются все файлы и данные предыдущей операционной системы.

После того, как все этапы подготовки были правильно выполнены, можно переходить к установке новой. В этой же утилите нужно выбрать команду «Install from sdcard» , а затем «Choose zip from internal sdcard» .

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

Затем начнется установка новой операционной системы мобильного устройства. Обычно этот процесс занимает от одной до 10 минут в зависимости от мощности девайса.

Первый запуск и настройка

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

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

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

Правила прошивки

Перед прошивкой стоит уяснить несколько правил, которые нужно обязательно соблюдать, дабы не превратить телефон в «мертвый кирпич».

  1. Аппарат должен быть заряжен на 100%. Процесс прошивки может затянуться, и, если батарея мобильника сядет в неподходящее время, то можно буквально выкидывать его в урну.
  2. Это касается и ноутбука, который будет участвовать в процессе прошивки. Если есть выбор между ПК и ноутом, то лучше не рисковать и выбрать ноутбук, так как в случае отключения света у ноута есть аккумулятор.
  3. Перед прошивкой обязательно сделайте бекап своих данных: контакты, смс, мультимедиа-файлы. После перепрошивки телефона все это сотрется, и вы не сможете восстановить файлы никакими программами.

SamFirm — программа для быстрого поиска прошивок

Для работы программы на вашем компьютере должны быть установлены:

Как найти и скачать прошивку на Cамсунг?

Что такое CSC регион и как его найти?

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

Последние прошивки

26.10.2020Samsung SM-A015FA015FXXU3ATI2Q(Android 10) New Zealand (TNZ)
26.10.2020Samsung SM-A015FA015FXXU3ATI2Q(Android 10) New Zealand (NZC)
26.10.2020Samsung SM-A015FA015FXXU3ATI2Q(Android 10) New Zealand (VNZ)
26.10.2020Samsung SM-A015MA015MUBU3ATH1Q(Android 10) Uruguay (ANC)
26.10.2020Samsung SM-A015MA015MUBU3ATH1Q(Android 10) Colombia (COB)
26.10.2020Samsung SM-A015VA015VVRS2ATI1Q(Android 10) USA (VZW)
26.10.2020Samsung SM-A102UA102USQS8BTI1Q(Android 10) USA (AIO)
26.10.2020Samsung SM-A105FNA105FNXXU4BTI2Q(Android 10) Slovakia (ORX)
26.10.2020Samsung SM-A105FNA105FNXXU4BTI2Q(Android 10) United Kingdom (VOD)

Flashtool

В случае если специальной утилиты нет и нужна прошивка телефона через компьютер, программа Flashtool с легкостью с этим справится при наличии файла ОС и драйверов, которые нужно будет найти самому.

прошивка телефона самсунг

Алгоритм работы следующий. Выключаем телефон, вынимаем и вставляем аккумулятор. Включаем программу Flashtool. Нажимаем на значок молнии, оставляем точечку на пункте Flashmode. Далее выбираем из списка скачанную прошивку в левом окошке и нажимаем «Ок». После должна появиться инструкция для подключения смартфона к ПК через USB-кабель. Делаем это, и программа для прошивки телефона начинает работать.

Как подготовиться к перепрошивке Андроид смартфона?

  • Разбираясь, как самому прошить китайский смартфон нужно тщательно подготовиться к этому процессу. Первым делом нужно убедиться в том, что на телефоне есть минимум 50% заряда, а лучше зарядить его полностью. Это нужно для того, чтобы исключить вероятность отключения. В ходе процедуры можно подключить девайс к заряднику. Если смартфон отключиться в ходе процедуры, то Вы потеряете все данные и он может превратиться в бесполезный кирпич, поэтому не пренебрегайте этим правилом;
  • Узнайте какая версия операционной системы актуальна для вашего телефона и какая стоит сейчас. Узнать это можно перейдя в меню настроек и выбрать там раздел “О телефоне”. Посмотрите версию Андроид, версию ядра, а также номер сборки.

Как подготовиться к перепрошивке Андроид смартфона

Пришла пора разбираться, как прошить смартфон Андроид через компьютер. На основании сведений, которые Вы получили указанным выше методом, находим свежую прошивку, созданную специально для модели Вашего устройства. Также лучше предварительно сделать бэкап системы, чтобы в случае чего иметь возможность восстановиться до прежней версии прошивки. Как это сделать мы уже рассказывали в этой статье.

Для начала

В рамках данной статьи будут рассмотрены способы прошивки девайсов под управлением операционной системы Android. Рассмотрим способы от самых простых, до самых сложных (работа в программных средах). Однако в самом начале ознакомимся с первичными действиями, которые нужно сделать до начала процедуры.

Резервная копия данных

Бэкап – это необходимое действие перед началом любого существенного вмешательство в Андроид. В обязательном порядке зарезервируйте:

  1. Полный слепок системы (собственно бэкап). В него входит настройки установленных приложений, основных параметров системы, контакты, переписки, личные файлы пользователя, настройки будильников, заметки и многое другое.
  2. Личный архив медиа и фото. Скиньте на SD-карту все фотографии и видеофайлы из галереи. Настоятельно рекомендуем сохранить ключи доступа и другие важные документы.

Личную информацию можно сохранить на стороннем сервисе. Например, в облаке. Сбросьте данные на Яндекс. Диск, Google Drive или в DropBox. Только заранее докупите места на сервисе, так как бесплатный тариф, обычно, ограничен дисковым пространством в 5 Гб.

Для создания резервной копии воспользуйтесь любым из указанных приложений:

  1. Titanium Backup. Неплохое приложение с высокими пользовательскими оценками. Но потребуется выдать рут-права.
  1. 7-Data Android Recovery. Помогает создать бэкап, а также находит и восстанавливает удаленные файлы. Лучше качать с официального источника.
  2. Резервное копирование – Backup. Удобное и бесплатное приложение. Помогает восстановить данные или сделать бэкап. Программа находит и сохраняет закрытые пароли к Wi-Fi.

Внимание! Устанавливайте программы только из проверенных источников. Не пользуйтесь непроверенными сайтами с левыми APK-файлами.

Есть и второй способ. Он предполагает создание резервной копии из системного меню Recovery. Для этого метода не требуется установка дополнительного ПО. Нужна только чистая SD-карта.

  1. Запустите системное меню Recovery. Как туда попасть – читайте ниже в статье.
  2. При помощи аппаратных клавиш найдите строчку: «backup and restore». Войдите в данный пункт меню.
  3. Теперь выбрать строчку «Reserver». Подтвердите действия.

Скомпилированный бэкап сохранится на SD-карточке.

Качественный провод

Обязательно купите хороший USB-кабель. Лучше всего взять оригинальный аксессуар, которые прикладывает завод изготовитель. Конечно, можно обновить систему и по Wi-Fi. Но это рискованный способ, так как помехи радиосигнала могут повлиять на путь установки. Смартфон просто окирпичится. Обновление по воздуху допустимо, если вы закачиваете прошивку или обновление, которое поступило от самого производителя. Но не когда на телефон ставят кастомную или более старую ОС в ручном режиме!

Требования к проводу:

  1. Подойдет только оригинальный провод или качественный аналог.
  2. Не используйте дешевые китайские USB-кабели от «noname» брендов.
  3. Не пробуйте прошить телефон через неисправный кабель: перебитый, покусанный, надломленный, проплавленный и проч.
  4. Откажитесь от старых аксессуаров. В них могут быть перетерты некоторые жилы.

Лучше всего купить новый фирменный кабель.

Полностью заряженный аккумулятор

Стоит сразу определиться, в каком состоянии пребывает АКБ Если он быстро высаживается, контроллер питания барахлит – ни в коем случае не переходите к прошивке!

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

Современные литий-ионные АКБ рекомендуется держать в интервале заряда от 20% до 80%. Эта рекомендация сохраняет их работоспособность и продлевает срок жизни. Но для процедуры стоит сделать исключение, и зарядить батарейку на 100%.

Если вы прошиваете смартфон с ноутбука, стоит позаботиться о бесперебойном питании. Подключите технику в сеть, чтобы батарейка в компьютере не сыграла злую шутку с процессом прошивки. Эта же рекомендация действует и для ПК. Чтобы застраховать себя на 100%, возьмите блок бесперебойного питания.

Возможные проблемы

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

  1. Окирпичивание. Смартфон просто перестает отвечать на какие-либо нажатия и прочие манипуляции, одним словом не реагирует ни на что. Экран не включается, индикаторы не горят. Звуков и вибрации нет. Мертвый смартфон можно воскресить. Но для этого потребуется достаточно много времени, чтобы разобраться и сделать самостоятельно в домашних условиях. Как вариант – отнести трубку в сервисный центр, для восстановления телефона после неудачной прошивки.
  2. Циклическая перезагрузка или зависает на заставке. Менее опасное явление, которое подлежит ремонту. После установки новой версии ПО, мобильник начинает постоянно перезагружаться в момент появления логотипа. Так продолжается цикл за циклом, пока не сядет АКБ. Ситуация поправимая, но шить придется через компьютер. В сложных случаях может потребоваться сервисная программа или flashtool.
  3. Отваливается часть функций. Например, не видит сим карту, не работает Wi-Fi, Bluetooth или NFC после перепрошивки. Такая ситуация часто встречается при накатывании кастомной версии операционной системы. Исправляется перепрошивкой на официальную рабочую глобальную версию ОС (откатить).
  4. Снятие с гарантии. Если пользователь решил прошить гаджет вручную, аппарат автоматически слетит с гарантии. Впрочем, об этом пишет сам производитель. Но далеко не все читают мануал.
  5. Отключение части сервисов. Эта ситуация знакома владельцами таких гаджетов как: Xiaomi или Huawei. Когда пользователь переходит с китайской прошивки на международную (глобальную). В таком случае могут отвалиться фирменные фишки и аккаунты в экосистемах MIUI или EMUI; заблокируется доступ к загрузчику и прочие моменты.

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

Что значит «Прошивка» и «Перепрошивка» телефона

Прошивка — это установка программного обеспечения на микрочип мобильного устройства (телефона, планшета).

Перепрошивка – это замена старой программной оболочки на другую. Обычно выполняется, если предустановленная прошивка приводит к каким-либо неисправностям в работе устройства.

Что делать, если телефон не запускается после прошивки

Если процесс запуска смартфона так и не продвинулся дальше логотипа, есть смысл заново его перезагрузить. Не помогло и это? Тогда перепрошивайтесь вновь. В ином случае нам нужно откатиться на стандартную прошивку и восстановить Бэкап. Как восстанавливать резервную копию Вы уже знаете, но как откатиться на ранее установленную версию прошивки? Ответ один – никак, её придётся устанавливать через компьютер.

  1. Устанавливаем драйвера;
  2. Скачиваем официальную прошивку с сайта 4pda.ru (однофайловую);
  3. Скачиваем программу ODIN для установки официальных и кастомных прошивок на основе оригинальных;
  4. Подключаем телефон в ODIN-mode: для этого при включении зажмите три кнопки «Vol — + Home + Power» и дождитесь загрузки соответствующего экрана;
  5. Так как прошивка состоит из одного файла, мы будем прошивать PDA-часть. Кликаете по кнопке PDA, указываете место нахождения прошивки;

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

Зачем прошивать мобильный телефон?

Сейчас время компьютерных технологий и плоских смартфонов с сенсорным экраном. Однако, вопреки технологическому буму, не стоит сбрасывать со счетов старые кнопочные мобильные телефоны. Те самые «кирпичи», слайдеры и «раскладушки», которые были у каждого буквально несколько лет назад. Никто и не думал о смене ПО на этих легендарных аппаратах. Спрашивается, зачем их вообще прошивать?

прошивка телефона через компьютер

Прошивка телефона («Самсунг», «Нокиа» и др.) может производиться по следующим причинам:

  • программное обеспечение устройства вышло из строя или стало работать хуже;
  • для получения более нового ПО.

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

Прошивка телефона через компьютер

Перед тем как поставить новое программное обеспечение, нужно помнить несколько моментов.

  1. Для начала нужно создать резервную копию всех данных (контакты, смс, настройки и т.д.) телефона на компьютер. Сделать это можно с помощью специализированных программ (MyPhoneExplorer и другие).
  2. После этого необходимо обязательно зарядить мобильный: не ниже 80 % батареи, хотя лучше на все 100 %.
  3. Лучше всего, чтобы прошивка телефона через компьютер происходила с помощью ноутбука. Причина в том, что в нем есть аккумулятор, в результате чего из-за случайного выключения электричества будет возможность закончить начатый процесс. Иначе последствия могут быть катастрофическими.

Для прошивки понадобятся следующие вещи:

  • само собой, телефон, заряженный на 100 %;
  • дата-кабель (в большинстве случаев используется USB, однако для некоторых мобильных устройств нужен именно специальный дата-кабель);
  • файл прошивки; его необходимо скачать из Интернета, однако перед этим нужно тщательно ознакомиться с информацией, почитать комментарии и отзывы, а перед этим нужно узнать версию старой прошивки: вводим на клавиатуре код *#06# (для Nokia будет другой код — *#0000#);
  • драйвера на мобильное устройство;
  • программа для прошивки телефона («прошивальщик»).

Программы

Утилит для прошивки довольно много и подразделяются они на две категории:

  • общие, которые подходят для всех моделей;
  • те, которые предназначены для одного производителя (например, программа «Феникс» для прошивки телефонов Nokia).

Общие утилиты могут прошить практически любую модель. Однако если существует программа, которая создана специально для определенной марки мобильных устройств, лучше использовать её, так как в ней уже содержатся все необходимые драйвера и, возможно, сама ОС. Вот небольшой перечень «прошивальщиков» для конкретных марок, которые помогут «вылечить» гаджет:

  • для Nokia – Phoenix Service и официальный сервис Nokia Software Updater;
  • Sony Ericsson – PC Companion (обновленная SEUS), неофициальная DaVinchi;
  • LG – «прошивальщики» Speedo, GsMulti;
  • Motorola – Flash&Backup, P2K;
  • Samsung – OptiFlash;
  • BenQ – Winswup, Update Tool.

Рассмотрим алгоритм работы на примере утилиты Phoenix.

Прошиваем Nokia

Перед тем как сделать прошивку телефона, нужно скачать и установить утилиту Phoenix («Феникс»), которая предназначена специально для этой марки. Кроме первичных приготовлений, которые описаны выше, нужно сделать ещё кое-что, а именно удалить все программы, которые каким-то образом могут быть связаны с мобильным устройством (Nokia Software Update, Nokia PC Suite и так далее) и почистить после них кэш и регистр. Иначе прошивка телефона «Нокиа» может пройти с ошибками. Также на всякий пожарный стоит отключить антивирус.

программа феникс для прошивки телефонов

Теперь нужно установить драйвера Nokia Connectivity Cable Driver и Nokia Flashing Cable Driver. Подключаем мобильное устройство к ПК. Убедиться, что все драйвера на месте, можно в «Диспетчере устройств». Открываем свойства компьютера. После выбираем «Диспетчер устройств» и раскрываем пункт Wireless Communication Devices. Количество устройств должно быть от четырех до шести.

Подключаемся к компьютеру (выбрать режим PC Suite) и запускаем Phoenix. В пункте Connection нажимаем Setting. В открывшемся окне выбираем Add. Кликаем на выпадающий список Driver, выбираем USB и сканируем (Scan). Выделяем появившееся устройство. Нажимаем Select. Теперь из выпадающего списка в пункте Connection выбираем нужное устройство. Далее переходим во вкладку File\ Scan Product. После сканирования должно появиться внизу нужное мобильное устройство. Если это случилось, идем дальше.

Переходим в раздел Flashing, где нужно нажать Firmware Update. Теперь следует выбрать код. Если нет и малейшего понятия, какой нужен, тогда берем любой. При этом нужно помнить один момент: если желателен русский язык в телефоне, то ищем в названии файла прошивки слова Russian, Cyrillic или RU. Когда Product Code выбран, жмем на Refurbish. Поздравляем, прошивка телефона через компьютер началась. Длиться она будет примерно 7-10 минут. В это время не стоит трогать телефон, кабель или саму программу.

Flashtool

В случае если специальной утилиты нет и нужна прошивка телефона через компьютер, программа Flashtool с легкостью с этим справится при наличии файла ОС и драйверов, которые нужно будет найти самому.

прошивка телефона самсунг

Алгоритм работы следующий. Выключаем телефон, вынимаем и вставляем аккумулятор. Включаем программу Flashtool. Нажимаем на значок молнии, оставляем точечку на пункте Flashmode. Далее выбираем из списка скачанную прошивку в левом окошке и нажимаем «Ок». После должна появиться инструкция для подключения смартфона к ПК через USB-кабель. Делаем это, и программа для прошивки телефона начинает работать.

Прошиваем «Андроид»

программа для прошивки телефона

Мобильные устройства на базе операционной системы «Андроид» гораздо чаще требуют смены ОС, нежели обычные мобильные телефоны. Причиной этому могут быть многочисленные вредоносные программы, скачанные из неизвестных источников приложения и т.д. Однако самая основная и наиболее частая причина выхода из строя смартфона – это его владелец.

Делается прошивка телефона через компьютер, однако можно обойтись и без него (в режиме Recovery).

С помощью ПК

Сначала нужно сделать некоторые приготовления.

  1. Скачиваем специальную утилиту для перепрошивки (Flashtool, Bootloader или программу от официального разработчика – PC Companion для Sony Ericsson, «Обновление ПО смартфонов Fly» для Fly и т.д.).
  2. Параллельно с этим скачиваем прошивку на конкретную модель устройства. При этом стоит обязательно ознакомиться с характеристиками, почитать комментарии и отзывы. Копируем прошивку в папку Firmwares программы Flashtool.
  3. Устанавливаем драйвера на ПК.
  4. Делаем резервную копию файлов со смартфона, а также копируем на компьютер содержимое флэшки (прошивка телефона через компьютер не оставит старых меток о расположении файлов на флэш-карте, поэтому создаст новые поверх старых).
  5. Находим USB-кабель, а также делаем отладку по USB (заходим в «Настройки», находим «Функции разработчика», далее отмечаем пункт «Отладка по USB» птичкой).
  6. Заряжаем устройство на 100 %.

После открываем утилиту Flashtool и проходим описанный выше алгоритм.

Без ПК

Делается это через режим Recovery. Для этого должен быть скачан и перемещен на карту памяти файл прошивки. Теперь выключаем смартфон и включаем Recovery. Для этого нужно одновременно зажать определенную комбинацию клавиш (питание и громкость вниз, вверх или меню – комбинация зависит от производителя). Точно узнать комбинацию можно, заглянув в паспорт устройства. Далее выбираем пункт «Apply Update From External Storage» (прошивка телефона «Самсунг» и многих других смартфонов на базе «Андроид» происходит так же).

как сделать прошивку телефона

Далее выбираем файл прошивки на флэшке и прошиваем.

Работаем над Windows Mobile

прошивка телефона через компьютер программа

Со смартфонами на базе Windows Mobile дела обстоят намного проще. Для этого понадобится, собственно, сам гаджет, USB-кабель и программа Windows Phone Recovery Tool для компьютера. Для начала скачиваем эту утилиту с официального сайта (или по этой прямой ссылке: go.microsoft.com/fwlink/?linkid=522381, скачивание начнется автоматически), устанавливаем и запускаем. Программа сразу же начнет поиск обновлений, после чего попросит подключить смартфон к ПК.

прошивка телефона нокиа

Теперь начнется поиск и установка драйверов для подключенного устройства. Если их не оказалось, можно нажать на соответствующую кнопочку для поиска в Интернете. Когда драйвера будут установлены, появится большая плитка с изображением подключенного гаджета. Нажав на нее, вы запустите скачивание файла прошивки. Не стоит паниковать, если процесс идет слишком долго, так как файл может весить около гигабайта. Кроме того, если загрузка внезапно прервется, его всегда можно продолжить с момента остановки. Ещё есть один приятный момент: если возникнет желание прошить смартфон ещё раз, то скачивать уже ничего не придется, так как ОС останется на компьютере.

Когда загрузка закончится, появится кнопка Reinstal Software, нажав на которую, вы начнете установку ПО. При этом категорически нежелательно трогать телефон, USB-кабель, включать/выключать компьютер, так как результаты подобных манипуляций могут быть довольно плачевны.

Многие из нас сталкивались с ситуациями когда только что купленный (и, возможно, за большие деньги) новый телефон или смартфон вдруг, при ближайшем рассмотрении, оказывался не таким «золотом», каким он блестел на витрине.

Стандартные симптомы его поведения – выключения и зависания без всяких особых причин, медленная реакция на команды, нестабильная работа приложений или просто мобильный «склероз» на выбранные рингтоны. Список можно продолжать…

Разбор полётов

Конечно, особо привередливые владельцы тут же побегут в сервисный центр (или салон связи) ломать стул о голову незадачливого менеджера, подсунувшего ему испорченный HTC или Nokia. Но давайте отбросим эмоции – не так страшен чёрт как его малюют. Как бы себя ни вёл ваш мобильный телефон, практически всегда можно решить возникшие с ним проблемы. И дело не в аппаратном браке устройства (хотя и такое может быть) а, скорее всего, в его «софтовой» составляющей.

Не секрет, что между компьютером и мобильным телефоном много общего. Например, и у того и другого есть процессор, flash-память, оперативная память, устройства ввода и вывода информации (клавиатура и дисплей). Отметим, что первичной по важности деталью в компьютере и телефоне является именно микросхема flash-памяти с основными настройками, отвечающими за запуск и взаимодействие аппаратной и программной составных этих устройств. Память flash энергонезависима, размер ее от 0,5 до 16 Мб, состоит она из полупроводникового чипа, в котором специальными электрическими импульсами пропечатаны, в народе «прошиты» аппаратные настройки и программное обеспечение (firmware).

Но если в компьютере flash-память и операционная система, как говорят в Одессе «две большие разницы», то в телефоне прошивка является их симбиозом — «два в одном». Поэтому под прошивкой телефона мы понимаем не только перечень рабочих настроек аппарата, но и весь остальной комплекс программного обеспечения, который входит в операционную систему и отвечает за интерфейс взаимодействия с пользователем телефона. Роль прошивки в телефоне очень велика. Именно она отвечает за связку заложенных в телефоне аппаратных компонентов между собой и сотовым модулем. Прошивки являются плодом кропотливой работы программистов компаний-производителей и разрабатываются исключительно под определённую модель телефона, естественно, своего производства. То есть, если в телефон Samsung залить прошивку от какой-нибудь модели Nokia, телефон даже не включится. Исключение составляют случаи когда одна прошивка может подойти к близкому по классу телефону, например ближайшей линейки. Как пример можно привести модель Siemens SL45, перепрошив который можно получить поддержку Wireless Java. Или Nokia 6210, в которую можно установить прошивку от 6250-ой модели, в результате чего владелец получает функции Nokia 6250 за меньшие деньги. Или Sony Ericsson K750i, который прошивают в W810i, превращая его тем самым в Wolkman.

Вы спросите — и какая-же связь между глюками телефона и прошивкой? Самая прямая. Поскольку рынок мобильных телефонов очень насыщенный, компании стараются как можно скорее запустить в продажу свои новинки, зачастую не до конца протестировав программное обеспечение. Поэтому первые покупатели навороченного смартфона или коммуникатора и сталкиваются с недоработками программистов. Первый совет – не «кидаться» покупать новейшую модель устройства, а подождать вплоть до полугода-года – за это время будет выпущена ещё не одна версия прошивки, порой их количество за всё время производства телефона достигает нескольких десятков.

Наихудший вариант – 1-ая, 2-ая или 3-я версии ПО, они обладают большим количеством недоработок. К примеру, первые прошивки Sony Ericsson K800i «славились» глюком — внезапно переставали сохраняться фото с камеры.

Версия прошивки, кроме основного цифрового, может иметь и дополнительные обозначения, например, 4.7 или 2A. Их величина говорит о существенности внесённых изменений, доустим, добавлены новые возможности или была просто произведена лёгкая «рихтовка» патчами.

Что даёт нам в конечном результате процесс перепрошивки? Конечно, даже если вы не жалуетесь на работу своего мобильного телефона, вам ничто не мешает сменить версию прошивки на более новую — просто так, из спортивного интереса. Например в самом свежем варианте прошивки могут быть реализованы некоторые новые возможности (к примеру, появится поддержка новых гарнитур), добавится встроенное ПО, будут загружены новые обои или ригтоны, темы меню. Но чудес ждать всё же не стоит, просто так «нарисоваться» поддержка Bluetoth, mp3 или более высокое разрешение фотокамеры не сможет. Зато изрядно улучшатся рабочие характеристики телефона, например приём сигнала, быстрота реагирования меню, приём-отправка SMS или даже увеличится ресурс аккумулятора (вплоть до 10-15%), поскольку будут оптимизированы алгоритмы взаимодействия между компонентами телефона.

Тем более вам нужно сменить прошивку телефона, когда он глючит все больше и больше. Глючить телефон может даже новый, как мы и описали во вступлении к статье. Причина проста — это еще «свежая» модель и ПО в ней не окончательно доработано. В этом случае рекомендуется ставить каждую новую прошивку, повышая стабильность работы трубки. Ну а бывает еще и так, что телефон служил вам верой и правдой, а тут внезапно начались проблемы. Это может быть связано с глюками в ПО, которые вдруг проявились, а может и с вашими действиями — например, установкой каких-нибудь непроверенных программ. В этом случае прошивка вернет телефон к его изначальному работоспособному состоянию.

Как же обновить ПО мобильника? Это можно сделать двумя путями. Первый вариант — просто отнести телефон в сервисный центр. Прошивка стоит недорого (в пределах 500 р.), а по гарантии и вовсе всегда бесплатна (даже если проблем с трубкой нет и вам хочется просто повысить версию ПО). Второй вариант – обновить ПО телефона самому.

Сами с усами

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

А что если попробовать все сделать самому? От этой мысли, у некоторых наверное появится кислая улыбка. Оно и правда, многим покажется что процесс перепрошивки это архисложное дело и новенький телефон этим можно запросто угробить. Но не будем делать однозначных выводов. Для начала скажем, что  окончательно и бесповоротно уничтожить телефон в процессе «заливки» софта можно разве что ударив по нему молотком :). Или отключив от сети компьютер, к которому мобильный подключён через кабель. В любом случае, если в процессе прошивки что-то случилось, вам всегда помогут в сервисном центре (нередко и бесплатно — по гарантии).

Прежде чем мы перейдём к описанию необходимых компонентов, уточним пару нюансов. А именно, какие марки телефонов больше предрасположены к самостоятельной «дрессировке», а какие лучше доверить специалистам.

Есть производители, которые сами поощряют пользователей прошивать телефоны дома. К ним можно отнести Nokia и Sony Ericsson. Эти замечательные компании выпускают и предлагают для бесплатного скачивания на своих сайтах специальные программы для прошивки телефонов. Пользоваться ими предельно просто и, главное, безопасно — подключил телефон, нажал кнопку, подождал. Требуется разве что быстрое и надежное соединение с интернетом для закачки файла прошивки из сети.

Компании Siemens (BenQ-Siemens) специального ПО для обновления открыто пользователям не предлагают. Зато для сервисных центров разработаны специальные программки для прошивки (они доступны всем, у кого есть интернет, на фан-сайтах). Они также очень просты, работают по нажатию одной кнопки «прошить» и ничего из сети не качают (скачиваются уже со «встроенной» прошивкой — то есть программа для прошивки сама по себе является и прошивкой как таковой).

Чуть посложнее программы для прошивки телефонов Motorola, LG, Samsung. Пользоваться ими неопытным «мобиломанам» мы бы не рекомендовали — есть риск допустить ошибку на каком-нибудь из этапов и сломать телефон (не окончательно, скорее всего, но восстанавливать его будет уже непросто и чаще в сервисном центре).

Итак. Решились на прошивку. Что вам для этого нужно?

Информация. Для начала поройтесь в сети на мобильных форумах и фан-сайтах производителей мобильников и узнайте побольше про свою модель телефона, тонкости обслуживания, поспрашивайте умных людей. На любом хорошем форуме есть обширный раздел FAQ — очень рекомендуем просмотреть его (и для пущей уверенности — еще и поиском по сайту воспользоваться), чем нервировать завсегдатаев 548-м вопросом «а как прошить?».

Хорошие фан-сайты владельцев телефонов с обширной информационной базой:

  • Nokia — series60.ru, dimonvideo.ru, nokinfo.ru, allnokia.ru, smart60.ru
  • Sony Ericsson — sony-ericsson.ru
  • Samsung — samsung-fan.ru, samsungpro.ru, mysamsung.ru, samsung-mobile.ru
  • LG — lg-talks.ru
  • Motorola — motofan.ru, letsmoto.com
  • Siemens — allsiemens.com, siemens-club.ru

У телефонов других производителей мы не можем порекомендовать вам столь же хороших фан-сайтов. Информацию по ним можно поискать на «общих» форумах, воспользовавшись, например, поисковой системой Google.

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

Драйвера для кабеля. Простые программы (от Nokia и Sony Ericsson, допустим) отдельных драйверов для кабеля не требуют и ставят их сами. Для кабелей телефонов других производителей нередко требуются особый драйвера, найти их можно также на фан-сайтах, на них нередко есть и целые разделы про виды дата-кабелей и ПО для работы с ними.

Последняя версия прошивки для вашего телефона (исключая официальные программы-прошивальщики для Nokia и Sony Ericsson, которые, как мы уже знаем, сами качают прошивку из сети). Найти ее на официальном сайте производителя нереально, так как компания-производитель занимается сервисным обслуживанием только в стенах своих центров. Мало того, с точки зрения закона – само распространение такого ПО является нелегальным. Причина – никто не хочет загружать и без того загруженные ремонтные центры претензиями горе-прошивальщиков. В общем, опять же обратите ваш взор на сообщество интернетчиков, многие из которых по доброте душевной организовывают тематические сайты и форумы, на которых делятся проблемами и опытом. Там же вы найдёте информацию, ответы на вопросы и сам «пошивочный» материал.

Еще момент. Необходимо заранее узнать, какова текущая версия прошивки вашего телефона, чтобы знать — есть для него более новое ПО. Сделать это можно в меню телефона (сверьтесь с инструкцией), либо введя специальный сервисный код. Например, владельцам Nokia нужно набрать *#0000#, а в телефонах большинства  других производителей используется код *#06#. После набора комбинации символов на экране высветится служебная информация. Чаще всего это IMEI-идентификатор телефона, дата изготовления, дата создания прошивки и её номер (SW-version), другая дополнительная информация.

Программа для прошивки. Выбор прошивки — это хорошо, но это только полдела. Необходимо заранее установить на компьютер программное обеспечение, так называемый «прошивальщик». Для некоторых — и не по одной программе. Официальное ПО для прошивки Nokia — NSU (Nokia Software Updater), сторонняя программа (вот ее использование — только на ваш страх и риск — Phoenix Service). Официальный «прошивальщик» моделей марки Sony Ericsson — SEUS (Sony Ericsson Update Service), неофициальный — DaVinchi. LG прошивают программами GsMulti, Speedo или Infinion FlashTool, в случае Samsung хорошо зарекомендовал себя OptiFlash, для BenQ — Update Tool или WinSwup. Не забудем и про Motorola, тут «правят бал» RSD Lite, Flash&Backup, P2K.

Несмотря на то что любой процесс постороннего вмешательства во внутреннюю жизнь телефона чреват определёнными рисками, желающих самостоятельно улучшить свой телефон становится всё больше. Почти все они успешно переходят в разряд «уше прошивавших и понявших, что это совсем не страшно). Всё, что вам понадобится, — это кабели, соответствующее ПО, файл-прошивка и инструкция-алгоритм действий, благо интернет всегда рядом. Так что дерзайте! :)

Автор: Дмитрий Дейнека

Гаджеты, Реверс-инжиниринг, Сотовая связь


Рекомендация: подборка платных и бесплатных курсов дизайна интерьера — https://katalog-kursov.ru/

Введение

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

Inoi 102 и Strike F10

Inoi 102 и Strike F10

Купил я телефон Inoi 101: дешевый, но функционально достойный даже на фоне более дорогих моделей. Всё бы хорошо, если бы не нежелательная функциональность, присущая большинству недорогих звонилок:

  • Пробные игры с покупкой полной версии через СМС, причём состояние покупки сбрасывается при полном сбросе устройства;

  • Встроенное меню СМС-подписок «Funbox»: гороскопы, анекдоты, новости, прочая платная ерунда.

Платные игр и меню Funbox

Платные игр и меню Funbox

Попробуем устранить недостатки путём анализа и модификации прошивки.

Чипсет

Современные кнопочные девайсы строятся на платформах трёх производителей: RDA Microelectronics, Spreadtrum, Mediatek. Первой компании уже не существует: её купил Spreadtrum в середине 2015. Обе компании ребрендировали под именем Unisoc в 2018 году.

Рассматриваемый телефон работает на последнем чипе «классического» RDA семейства Gallite, и был сделан уже после покупки компании, из-за чего у чипа два названия: RDA8826C (RDA’шное) и SC6533g (Spreadtrum’овское). В интернете нет не только datasheet’ов, но и почти никакой публичной информации об этой модели.
Архивная страница сайта rdamicro.com 2017 года скупо повествует нам о ключевых возможностях SoC’а:

General Description
RDA8826C is a high performance, highly integrated system-on-chip solution for low cost, low power, GSM/GPRS mobile phone.
Integrating all essential electronic components, including baseband, quad band RF transceiver, power management, FM receiver, Bluetooth onto a single system on chip, RDA8826C offers best in class bill of material, space requirement and cost/feature ratio for complete phone handsets.

Key Features
1. MIPS 312MHz processor
2. GSM/GPRS modem
3. 32Mb Flash and 64Mb PSRAM integrated
4. 320×480(HVGA) resolution

Нынешние телефоны построены в основном на процессорах Spreadtrum и Mediatek архитектуры ARM. Inoi 101 — не только «последний из могикан» на чипе ныне несуществующей компании, но и работает на ныне непопулярной архитектуре, с не самым известным набором команд MIPS16e, в котором инструкции кодируются в 2 байта вместо четырех, для уменьшения размера прошивки, что жизненно необходимо устройству со всего 4 МБ (32 Мбит) флеша.

Печальный факт: производители современных звонилок агрессивно экономят на флеш-памяти. Доступный пользователю объем выражается, как правило, десятками килобайт.
Вы не сможете пользоваться диктофоном или камерой без MicroSD-карты. Количество контактов и СМС-сообщений в памяти телефона ограничено, как и длина поля «имя», и общее количество полей записной книги.
Для сравнения, в Samsung X100 2003 года выпуска пользователю было доступно 9 мегабайт памяти, в Siemens C65 2004-го — 6 МБ.
Такова плата за дешевизну: X100 — $230 на старте продаж, Inoi 101 — $9.

SoC RDA8826 содержит в себе центральный процессор RDA8809e2, Baseband-процессор CT8851C, Bluetooth и FM-модули rdabt_8809 и rdafm_8809. Достоверная информация о всех компонентах в интернете не представлена.

Получение прошивки

Чтобы модифицировать прошивку, нужно сначала завладеть ей. Самый простой вариант — поискать на веб-сайте производителя. Inoi выкладывает прошивки ко всем своим моделям, но они не всегда самые последние — оказалось, что в версии с сайта отсутствует набор Т9 и игра «Тетрис».
Что-ж, телефон уже прошит, придётся покупать второй и скачивать актуальную прошивку с него. Сделать это можно, в случае RDA, только сторонними программами, т.н. «боксами» — аппаратно-программными комплексами для прошивки и восстановления от сторонних разработчиков. Обычно необходимо купить сам «бокс» (устройство с набором кабелей) и подписку на ПО, но к счастью подходящее ПО уже есть взломанной версии, отвязанное и от бокса, и от подписки — Miracle Thunder 2.82 от Gsm_X_Team. Относитесь к этому ПО как к трояну — устанавливайте на отдельный компьютер, без интернета (в виртуалке не работает).

Miracle Thunder

Miracle Thunder

Официальные прошивки поставляются в текстовом формате .lod. Этот формат описывает процесс прошивки поблочно, в соответствии с размерами блоков флеш-памяти, в виде адреса загрузки и бинарных данных, закодированных по 4 байта little endian. Формат нестандартный, но простой, без особенностей. Единственное, что нужно учесть при написании конвертера — файл описывает не все блоки флеша, некоторые из блоков не программируются (есть «дыры»).

#$mode=flsh_spi32m
#$sectormap=(16 x 4k, 57 x 64k, 96 x 4k)
#$base=0x08000000
#$spacesize=0x08000000
#$XCV_MODEL=xcv_8809e2 
#$PA_MODEL=pasw_hs8292u 
#$FLSH_MODEL=flsh_spi32m 
#$FLASH_SIZE=0x00400000 
#$RAM_SIZE=0x00800000 
#$RAM_PHY_SIZE=0x00800000 
#$CALIB_BASE=0x003FA000 
#$FACT_SETTINGS_BASE=0x003FE000 
#$CODE_BASE=0x00000000 
#$USER_DATA_BASE=0x00380000 
#$USER_DATA_SIZE=0x0007A000 
#$PM_MODEL=pmu_8809 
#$FM_MODEL=rdafm_8809e 
@08000000
d9ef0045
00000000
00000000
00000000
27bdffd0
afb10028
00808821
3c0481e0
…

Открываем дамп флеша или преобразованный файл прошивки в вашем любимом дисассемблере, начинаем анализировать, быстро разочаровываемся: строк мало, сегментация памяти непонятная, IDA норовит неправильно определить MIPS32/MIPS16-код, тут и там странные указатели 0x82xxxxxx на оперативную память, в которые никто не пишет…

Скребём по сусекам

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

Поиск приводит к двум репозиториям: https://github.com/jprothwell/sc-fix и https://github.com/cherryding1/RDA8955_W17.44_IDH
По первой ссылке можно скачать старые, но достаточно актуальные исходные коды загрузчика, HAL, пользовательского интерфейса и всей обвязки для старого семейства чипов RDA, а по второй ссылке доступен memory layout [1], [2] для нашего процессора.

Из заголовочных файлов узнаём самое основное:

  • Флеш располагается по адресу 0x88000000 (4 МиБ)

  • Оперативная память — в 0x82000000 (8 МиБ)

  • SRAM — 0x81C00000 (64 КиБ)

  • BootROM — 0x81E00000

UI на моём устройстве построен на форке фреймворка MMI (man-machine interface) от компании Pixtel — CoolMMI. Подобный фреймворк используется и в ОС для кнопочных телефонов Mediatek MAUI, под названием PlutoMMI.

Фреймворк создавался в лучшие годы кнопочных телефонов, с соответствующим качеством кода — всё завязано на глобальные переменные, глобальные состояния, магические константы, массивы строк, массивы функций-обработчиков кнопок. Монолитная архитектура без какой-либо модульности (даже минимальной) не позволяет писать красивый код — разные функциональные возможности активируются #define’ами в унифицированных *.c-файлах для всех случаев, затрудняющими чтение кода.

Обращение к текстовым строкам, ресурсам, задачам, меню, элементам NVRAM происходит с помощью уникального цифрового идентификатора, что затрудняет исследование: вы видите только цифры, далеко не сразу поддающиеся установке соответствия в осмысленную строку, пункт меню или ресурс.

/* Get current screen to gui buffer  for history purposes*/
guiBuffer = GetCurrGuiBuffer( SCR_CALL_TIME_SETUP_MAIN );
/* Retrieve no of child of menu item to be displayed */
nNumofItem = GetNumOfChild( MENU_CALL_TIME_SETUP );
/* Get attribute of menu to be displayed */
//nDispAttribute = GetDispAttributeOfItem( MENU_CALL_TIME_SETUP );
/* Retrieve string ids in sequence of given menu item to be displayed */
GetSequenceStringIds( MENU_CALL_TIME_SETUP, nStrItemList );
/* Set current parent id*/
SetParentHandler( MENU_CALL_TIME_SETUP );
/* Register highlight handler to be called in menu screen */
RegisterHighlightHandler( ExecuteCurrHiliteHandler );
/* Construct hint for menu items */
ConstructHintsList(MENU_CALL_TIME_SETUP, displayBuffer);

/* Display Category1 Screen */
ShowCategory52Screen( STR_MENU_CALL_TIME_SETUP, IMG_MENU_CALL_TIMES,
                        STR_GLOBAL_OK, IMG_GLOBAL_OK, STR_GLOBAL_BACK,
                        IMG_GLOBAL_BACK, nNumofItem, nStrItemList,
                        (U16 *)gIndexIconsImageList,
                        displayBuffer, 0, 0, guiBuffer );

/* Register function with right softkey */
SetKeyHandler( GoBackHistory,KEY_LEFT_ARROW, KEY_EVENT_DOWN);
SetRightSoftkeyFunction( GoBackHistory, KEY_EVENT_UP );
return;

Начальную информацию об основных функциях PlutoMMI от Mediatek можно почерпнуть из файла mmi framework and architecture.pdf. Архитектура CoolMMI и PlutoMMI совпадает в достаточной мере, чтобы пользоваться (аналогично скудной) документацией конкурирующего производителя.

Поиск сжатых ресурсов

Итак, память размечена правильно, а кардинальных изменений не видно — множество функций продолжают вызывать код из оперативной памяти, но найти, кто пишет в эти адреса, с наскока не получается. Да и ресурсов подозрительно мало.

После непродолжительного анализа обнаруживаются три особенности:

Переиспользование функций из BootROM
Для максимальной экономии пространства на флеш-памяти производитель реализовал наиболее востребованные функции библиотеки C непосредственно в ROM-памяти чипа: строковые функции (strlen, strcmp, strcpy, strcat, strtok), функции сравнения и копирования памяти (memcmp, memcpy, memmem, memchr), форматирования и вывода (sprintf, vsprintf), поиска и сортировки (bsearch, qsort) вызываются из памяти ROM, и не содержатся в коде прошивки, экономя драгоценные килобайты.

Сжатие кода и ресурсов алгоритмом LZMA
Код наиболее объемных «модулей» (WAP-браузера, мультимедиа-плеера, приложения FM-радио, инженерного меню) хранится в сжатом виде, а распаковывается один раз, при запуске телефона. Ничего дополнительного после распаковки не происходит: код скомпонован так, будто эти модули всегда в оперативной памяти по фиксированным адресам.
Аналогично распаковываются текстовые строки, но только для одного, текущего языка.

Копирование несжатого кода в оперативную память
Самый архитектурно важный код ОС копируется в оперативную память и выполняется из неё. Вероятно, это сделано для максимальной скорости исполнения базовых функций ОС.

Сжатые ресурсы легко находятся через binwalk. Можно было бы каждый из них вручную распаковать и загрузить в текущую базу IDA по корректным адресам, но я нашел способ проще, надёжней и быстрее.

Снятие оперативной памяти

Оказалось, протокол прошивки не только простой, но и разрешает чтение произвольных адресов без какой-либо подготовки, прямо во время работы телефона. В интернете была найдена готовая программа для чтения прошивки через UART, которая после модификации была использована для чтения всех 8 МиБ оперативной памяти через USB. 2 минуты — и никакой ручной работы!
Чтобы получить коммандный порт через USB, можно воспользоваться модулем usb-serial в Linux. Достаточно всего лишь «научить» модуль работать с RDA:

$ echo 1e04 0900 | sudo tee /sys/bus/usb-serial/drivers/generic/new_id

Разжатая функция в оперативной памяти

Разжатая функция в оперативной памяти

Отныне нам доступны все распакованные функции и ресурсы в оперативной памяти, что позволяет нам беспрепятственно их проанализировать.

«Покупаем» игры

В рассматриваемом телефоне присутствуют 3 платных игры производства Gameloft: Danger Dash, Ninja Up, Tetris. Первая — раннер, без какой-либо физики прыжка, вторая — примитивный фроггер с одним экраном, играть можно разве что в тетрис, но он начинает тормозить при заполнении экрана фигурами.
Каждая игра запускается всего 5 раз, далее их предлагается оплатить. Игры стоят 99 рублей каждая — половину стоимости телефона — обдираловка!

С точки зрения пользователя, покупка совершается так: нажимаем на кнопку «купить», телефон отправляет платное СМС, пользователю приходит ответный код, который нужно ввести в окно регистрации. Но если купить игру, запомнить ответный код, сбросить телефон и попробовать заново ввести этот же код, то он, с большой вероятностью, не подойдет.
Как так?

Алгоритм следующий:

  1. Генератор псевдослучайных чисел инициализируется значением текущей минуты;

  2. Генерируется псевдослучайное число от 1000 до 9999;

  3. Случайное число отправляется в СМС и сохраняется в NVRAM;

  4. Ответный код проверяется с учётом сохраненного случайного числа.

Связка запрос-ответ уникальна для каждой модели, и зависит от той минуты, в которую была нажата кнопка «купить»:

game_response_code = (1000 * (game_random % 10)
                    + game_random / 1000
                    + 100 * (game_random / 10 % 10)
                    + 10 * (game_random / 100 % 10)) ^ 0x1D6B;
game_code_temp = game_response_code;
game_response_code = atoi("28060") + game_code_temp;
return game_response_code == input_code;

Где 28060 — идентификатор телефона Inoi 101.
Этот нехитрый алгоритм легко реализовать в виде кейгена, что я и сделал: http://gameloft-keygen.valdikss.org.ru/
К слову, на телефонах с Mediatek алгоритм кода регистрации точно такой же, но алгоритм генерации псевдослучайных чисел отличается.

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

Замена переменных в функции инициализации

Замена переменных в функции инициализации

Найти функции можно по отладочным строкам, содержащим характерное имя файла:

Функция вывода номера строки файла src/gameloft_billing.c

Функция вывода номера строки файла src/gameloft_billing.c

Отключаем Funbox

Меню платных СМС-подписок — ожидаемая, но неуместная функция послепродажного заработка денег производителем. Одно неловкое нажатие — и минимум 5 рублей со счёта в сутки вам обеспечено. Подобные вещи позволяют держать цены на кнопочные телефоны на очень низком уровне, но в моём устройстве им не место.

Как и в случае с играми, в функциях Funbox присутствует отладочный вывод номеров строк с именем файла «src/gmb_smart_sms_win.c». С этих строк можно «дошагать» до функции-обработчика выделения элемента главного меню (в CoolMMI они называются hilite, очевидно имеется в виду highlight), в котором и находится иконка.
Методом проб и ошибок удалось обнаружить обработчик входа в интерфейс подписок, который был благополучно за’nop’лен — нажатие на иконку Funbox центральной кнопкой или левой софт-клавишей более ни к чему не приводят.

Функция расположена в несжатой области и легко поддаётся изменению.

Исправляем громкость

Компонент аудиоусилителя телефона имеет 15 ступеней усиления, но для мультимедии прошивка телефона предусматривает всего 7 уровней громкости, с большими шагами между ними. Это неудобно: на «единице» телефон еле слышно, а на «двойке» он сразу ОРЁТ.

Попробуем исправить эту проблему. В заголовочных файлах быстро находится регистр CONFIG_REGS по базовому адресу 0x01A24000, структура которого описывается следующим образом:

#define REG_CONFIG_REGS_BASE  0x01A24000
#define hwp_configRegs        ((HWP_CFG_REGS_T*) KSEG1(REG_CONFIG_REGS_BASE))

typedef volatile struct
{
  REG32    CHIP_ID;          //0x00000000
  /// This register contain the synthesis date and version
  REG32    Build_Version;    //0x00000004
  /// Setting bit n to '1' selects GPIO Usage for PAD connected to GPIOn. Setting
  /// bit n to '0' selects Alt.
  REG32    GPIO_Mode;        //0x00000008
  REG32    Alt_mux_select;   //0x0000000C
  REG32    IO_Drive1_Select; //0x00000010
  REG32    IO_Drive2_Select; //0x00000014
  REG32    audio_pd_set;     //0x00000018
  REG32    audio_pd_clr;     //0x0000001C
  REG32    audio_sel_cfg;    //0x00000020
  REG32    audio_mic_cfg;    //0x00000024
  REG32    audio_spk_cfg;    //0x00000028
  REG32    audio_rcv_gain;   //0x0000002C
  REG32    audio_head_gain;  //0x00000030
} HWP_CFG_REGS_T;

//audio_spk_cfg
#define CFG_REGS_AU_SPK_GAIN(n)     (((n)&15)<<0)
#define CFG_REGS_AU_SPK_MUTE_N      (1<<4)

Использование регистра происходит через сегмент KSEG1, в обход MMU и кешей. Полный адрес audio_spk_cfg, обращения к которому нужно искать в дисассемблере — 0xA1A24028.

После непродолжительного поиска обнаруживается функция, преобразующая уровень усиления (по всей видимости, в децибелах) в значение SPK_GAIN:

int __fastcall volume_maps(int a1) // 0x88038184
{
  int result; // $v0

  result = 0;
  if ( a1 >= 5 )
  {
    result = 2;
    if ( a1 >= 14 )
    {
      result = 4;
      if ( a1 >= 18 )
      {
        result = 6;
        if ( a1 >= 20 )
        {
          result = 8;
          if ( a1 >= 22 )
          {
            result = 10;
            if ( a1 != 22 )
            {
              result = 12;
              if ( a1 != 23 )
                return 14;
            }
          }
        }
      }
    }
  }
  return result;
}

Изменив уровни с [0, 2, 4, 6, 8, 10, 12, 14] на [0, 1, 2, 3, 5, 6, 8, 10], мы получили более плавную регулировку ценой уменьшения максимальной громкости, которая всё равно только приводила к перегрузу маломощного динамика телефона.

Если при воспроизведении MP3-файлов положительный эффект очевиден, то громкость FM-радио всё ещё регулируется с недостаточной гранулярностью. Вероятно, это аппаратная проблема подключения FM-чипа.

Неожиданные трудности

Для MIPS существует два стандарта 16-битных инструкций: MIPS16e и microMIPS. Первый является дополнением (extension) к архитектуре MIPS32: код может использовать одновременно оба набора инструкций, процессор может переключаться между режимом выполнения MIPS32 и MIPS16e в любое время, прыжком на нечётный адрес инструкции. Не все инструкции и возможности MIPS можно выразить командами MIPS16e — иногда переключение в режим MIPS32 просто необходимо.
microMIPS же — полноценная архитектура с полным набором 16-битных команд. Вот что говорит официальная брошюра:

The benchmarks prove that the microMIPS architecture delivers similar memory savings as the MIPS16e ASE, but with much better performance. The question is how? The list of reasons includes new optimized 16- and 32-bit instructions, an optimized recoding of MIPS32 instructions, and optimized op code format and register utilization.

The earlier stated fact that microMIPS is a complete architecture – not an extension ? is also key. Both MIPS16e, and for that matter the similarly-targeted ARM Thumb technologies, are extensions. Both microMIPS and these extensions rely on the concept of new 16-bit versions of regularly used instructions to minimize code size. And all deliver reductions in code size. But only microMIPS delivers 32-bit performance.

The microMIPS mode can handle all operations such as exception handling, and offers a superset of the MIPS32 ISA. With MIPS16e, the programmer had to swap modes to use ASEs such as MIPS DSP. The microMIPS mode can seamlessly access the ASEs. The need to run legacy binary code is really the only reason that would prompt a programmer to use the MIPS32 mode.

Проблема в том, что привычные утилиты инлайн-ассемблирования кода для патча программы, такие как rasm2 из состава Radare2 и kstool из KeyStone, не поддерживают режим MIPS16e. Они либо ассемблируют 32-битные команды, несмотря на то, что выбран 16-битный режим, либо выводят опкоды, явно не соответствующие MIPS16e.

К счастью, ассемблер gcc поддерживает режим MIPS16e, а работать с ним почти так же удобно, как с rasm2/kstool. Есть, разве что, одна особенность: он выравнивает блок nop’ами.

$ echo 'jr $ra' | mips64-linux-gnu-as -o /dev/null -al -mips16 -32
GAS LISTING                     page 1


   1 0000 E8206500      jr $ra
   1      65006500 
   1      65006500 
   1      65006500

Вывод

Надеюсь, эта небольшая заметка поможет исследователям прошивок кнопочных телефонов на платформе RDA и подогреет желание к погружению в звонилки на платформах других производителей. Доступные в любом магазине, эти дешевые но полнофункциональные двухсимочные телефоны с доступом в интернет так и просятся в руки хакеров, чтобы их адаптировали не только под базовые потребности связи.
Как оказалось, нет ничего сложного в минимальном изменении функциональности подобных устройств. Автор не столкнулся с неразрешимыми проблемами, проделанный путь в целом совпадает с анализом прошивкок любого другого устройства, а доступные исходники, хоть и устаревшие, позволяют разобраться в архитектуре и, при желании, интегрировать новые функции, не обладая кодом самой прошивки.

Готовую модифицированную прошивку для Inoi 101 можно скачать на GSMForum.ru: https://gsmforum.ru/threads/inoi-101-modificirovannaja-proshivka.337775/

Содержание материала

  1. Как установить прошивку на кнопочный телефон?
  2. Как установить прошивку Android?
  3. Подготовка
  4. Как перепрошить телефон Samsung
  5. Получение прошивки
  6. Могу ли я установить на Android разные прошивки?
  7. Программы
  8. Какой программой прошить телефон?
  9. Как сделать прошивку на самсунг если телефон не включается?
  10. Поиск сжатых ресурсов
  11. Работаем над Windows Mobile
  12. Как прошить телефон с помощью программы Flashtool?
  13. Без ПК
  14. Что нужно для перепрошивки телефона?
  15. Прошивка телефона Nokia

Как установить прошивку на кнопочный телефон?

Порядок прошивки мобильника

  1. Подключаем мобильник к ноутбуку или ПК.
  2. Устанавливаем драйвера для мобильника или кабеля.
  3. Скачиваем прошивку и программу для перепрошивки.
  4. Делаем бекап контактов, файлов.
  5. Перегружаем мобильник в специальный boot-режим.
  6. Запускаем прошивальщик и начинаем процесс прошивки.

20 июн. 2014 г.

Как установить прошивку Android?

  1. Шаг 1. Загрузите ПЗУ. Найдите ПЗУ для своего устройства на соответствующем форуме XDA. …
  2. Шаг 2: Загрузитесь в Recovery. Для загрузки в режим восстановления используйте комбинированные кнопки восстановления. …
  3. Шаг 3: Флэш-ПЗУ. Теперь идите и выберите «Установить»… …
  4. Шаг 4: Очистите кеш. После завершения установки вернитесь и очистите кеш…

Подготовка

Перед тем, как начнется обновление ОС необходимо проверить работоспособность аккумулятора . Достаточно долго держит ли заряд. Не отключается при зарядке смартфона. Если батарейка смартфона не надежна, то лучше не рисковать с перепрошивкой до тех пор, пока не приобретете новый аккумулятор.

Кроме проверки аккумулятора, необходимо проверить на точное присоединение к портам USB провода для соединения с компьютером. Любое отключение девайса в процессе приведет к тому, что смартфон станет кирпичом.

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

Как перепрошить телефон Samsung

В этом разделе мы опишем перепрошивку с помощью приложения MultiLoader. После ее скачивания необходимо запустить и выбрать пункт «BRCM2133». Далее следуйте таким инструкциям:

  1. Переходим к режиму «Download», зажав клавиши выключения (блокировки) и громкости. Если на экране появится надпись «Download», то это значит, что все прошло успешно.
  2. Подключаем телефон к ПК посредством USB-кабеля. После обнаружения девайса нажимаем кнопку «Download» и ждём пару минут.
  3. Отключаем USB и перезагружаем смартфон. Если мобильник запускается на английском языке, то делаем простенькую «Преконфигурацию», набрав «*#6984125*#» → «Pre-configuration», после чего вводим пароль «*#73561*#». Выбираем страну проживания и перезагружаемся. Далее в окне вбиваем «*2767*3855#», что поможет сбросить настройки.
  4. Все готово. Система обновлена. Думаем, вы поняли как перепрошить телефон Samsung.

Получение прошивки

Чтобы модифицировать прошивку, нужно сначала завладеть ей. Самый простой вариант — поискать на веб-сайте производителя. Inoi выкладывает прошивки ко всем своим моделям, но они не всегда самые последние — оказалось, что в версии с сайта отсутствует набор Т9 и игра «Тетрис».Что-ж, телефон уже прошит, придётся покупать второй и скачивать актуальную прошивку с него. Сделать это можно, в случае RDA, только сторонними программами, т.н. «боксами» — аппаратно-программными комплексами для прошивки и восстановления от сторонних разработчиков. Обычно необходимо купить сам «бокс» (устройство с набором кабелей) и подписку на ПО, но к счастью подходящее ПО уже есть взломанной версии, отвязанное и от бокса, и от подписки — Miracle Thunder 2.82 от Gsm_X_Team. Относитесь к этому ПО как к трояну — устанавливайте на отдельный компьютер, без интернета (в виртуалке не работает).

Miracle Thunder

Miracle Thunder

Официальные прошивки поставляются в текстовом формате .lod. Этот формат описывает процесс прошивки поблочно, в соответствии с размерами блоков флеш-памяти, в виде адреса загрузки и бинарных данных, закодированных по 4 байта little endian. Формат нестандартный, но простой, без особенностей. Единственное, что нужно учесть при написании конвертера — файл описывает не все блоки флеша, некоторые из блоков не программируются (есть «дыры»).

Открываем дамп флеша или преобразованный файл прошивки в вашем любимом дисассемблере, начинаем анализировать, быстро разочаровываемся: строк мало, сегментация памяти непонятная, IDA норовит неправильно определить MIPS32/MIPS16-код, тут и там странные указатели 0x82xxxxxx на оперативную память, в которые никто не пишет…

Могу ли я установить на Android разные прошивки?

Если вам не нравится прошивка, установленная производителем устройства на вашем устройстве Android, вы можете заменить ее своей собственной прошивкой. … Пользовательская прошивка — также единственный способ установить новые версии Android на устройства, которые больше не поддерживаются их производителями.

Программы

Утилит для прошивки довольно много и подразделяются они на две категории:

  • общие, которые подходят для всех моделей;
  • те, которые предназначены для одного производителя (например, программа «Феникс» для прошивки телефонов Nokia).

Общие утилиты могут прошить практически любую модель. Однако если существует программа, которая создана специально для определенной марки мобильных устройств, лучше использовать её, так как в ней уже содержатся все необходимые драйвера и, возможно, сама ОС. Вот небольшой перечень «прошивальщиков» для конкретных марок, которые помогут «вылечить» гаджет:

  • для Nokia – Phoenix Service и официальный сервис Nokia Software Updater;
  • Sony Ericsson – PC Companion (обновленная SEUS), неофициальная DaVinchi;
  • LG – «прошивальщики» Speedo, GsMulti;
  • Motorola – Flash&Backup, P2K;
  • Samsung – OptiFlash;
  • BenQ – Winswup, Update Tool.

Рассмотрим алгоритм работы на примере утилиты Phoenix.

Какой программой прошить телефон?

Какие бывают программы для прошивки Андроид с компьютера

ROM Manager. Данная утилита устанавливается для загрузки ОС с SD-карты без использования компьютера. SP FLASH TOOL. Сервис предназначен для работы с ПК.

Как сделать прошивку на самсунг если телефон не включается?

Шаги выполнения

  1. Установите на ПК необходимый прошивальщик.
  2. Скачайте прошивку для нужной модели.
  3. Запустите программу.
  4. Подключите гаджет к ПК шнуром и нажмите «Power» + «Vol –», в окне обнаружится новое устройство.
  5. Через утилиту выберите файл с Android и нажмите «Start».
  6. Дождитесь конца процедуры.

Поиск сжатых ресурсов

Итак, память размечена правильно, а кардинальных изменений не видно — множество функций продолжают вызывать код из оперативной памяти, но найти, кто пишет в эти адреса, с наскока не получается. Да и ресурсов подозрительно мало.

После непродолжительного анализа обнаруживаются три особенности:

Переиспользование функций из BootROMДля максимальной экономии пространства на флеш-памяти производитель реализовал наиболее востребованные функции библиотеки C непосредственно в ROM-памяти чипа: строковые функции (strlen, strcmp, strcpy, strcat, strtok), функции сравнения и копирования памяти (memcmp, memcpy, memmem, memchr), форматирования и вывода (sprintf, vsprintf), поиска и сортировки (bsearch, qsort) вызываются из памяти ROM, и не содержатся в коде прошивки, экономя драгоценные килобайты.

Сжатие кода и ресурсов алгоритмом LZMAКод наиболее объемных «модулей» (WAP-браузера, мультимедиа-плеера, приложения FM-радио, инженерного меню) хранится в сжатом виде, а распаковывается один раз, при запуске телефона. Ничего дополнительного после распаковки не происходит: код скомпонован так, будто эти модули всегда в оперативной памяти по фиксированным адресам.Аналогично распаковываются текстовые строки, но только для одного, текущего языка.

Копирование несжатого кода в оперативную памятьСамый архитектурно важный код ОС копируется в оперативную память и выполняется из неё. Вероятно, это сделано для максимальной скорости исполнения базовых функций ОС.

Сжатые ресурсы легко находятся через binwalk. Можно было бы каждый из них вручную распаковать и загрузить в текущую базу IDA по корректным адресам, но я нашел способ проще, надёжней и быстрее.

Работаем над Windows Mobile

Со смартфонами на базе Windows Mobile дела обстоя

Со смартфонами на базе Windows Mobile дела обстоят намного проще. Для этого понадобится, собственно, сам гаджет, USB-кабель и программа Windows Phone Recovery Tool для компьютера. Для начала скачиваем эту утилиту с официального сайта (или по этой прямой ссылке: go.microsoft.com/fwlink/?linkid=522381, скачивание начнется автоматически), устанавливаем и запускаем. Программа сразу же начнет поиск обновлений, после чего попросит подключить смартфон к ПК.

Теперь начнется поиск и установка драйверов для п

Теперь начнется поиск и установка драйверов для подключенного устройства. Если их не оказалось, можно нажать на соответствующую кнопочку для поиска в Интернете. Когда драйвера будут установлены, появится большая плитка с изображением подключенного гаджета. Нажав на нее, вы запустите скачивание файла прошивки. Не стоит паниковать, если процесс идет слишком долго, так как файл может весить около гигабайта. Кроме того, если загрузка внезапно прервется, его всегда можно продолжить с момента остановки. Ещё есть один приятный момент: если возникнет желание прошить смартфон ещё раз, то скачивать уже ничего не придется, так как ОС останется на компьютере.

Когда загрузка закончится, появится кнопка Reinstal Software, нажав на которую, вы начнете установку ПО. При этом категорически нежелательно трогать телефон, USB-кабель, включать/выключать компьютер, так как результаты подобных манипуляций могут быть довольно плачевны.

Достигает 80%. Они привлекают покупателей своей невысокой стоимостью, так как Android устанавливается даже на самые бюджетные модели, а также возможностью настроить всё на свой вкус и даже при желании поменять прошивку. Именно о последнем и будет сегодняшний материал. Мы ответим на вопрос, как прошить планшет без компьютера через флешку.

Многие пользователи спустя время после приобретения гаджета задумываются о новой модели с бóльшими функциональными возможностями

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

Как прошить телефон с помощью программы Flashtool?

В режиме Firmware Upgrade пункт PRELOADER должен быть активен; Нажать на кнопку Download; Подключить выключенное андроид устройство к компьютеру с помощью USB кабеля без использования переходников, удлинителей или хабов; После определения устройства начнется процесс прошивки.

Без ПК

Делается это через режим Recovery. Для этого должен быть скачан и перемещен на карту памяти файл прошивки. Теперь выключаем смартфон и включаем Recovery. Для этого нужно одновременно зажать определенную комбинацию клавиш (питание и громкость вниз, вверх или меню – комбинация зависит от производителя). Точно узнать комбинацию можно, заглянув в паспорт устройства. Далее выбираем пункт «Apply Update From External Storage» (прошивка телефона «Самсунг» и многих других смартфонов на базе «Андроид» происходит так же).

Далее выбираем файл прошивки на флэшке и прошиваем.

Что нужно для перепрошивки телефона?

Итак, для прошивки телефона понадобится следующее:

  • Мобильник с заряженным на 100% аккумулятором.
  • Ноутбук или компьютер, желательно с ИБП.
  • Дата-кабель: обычно телефоны прошиваются при помощи USB-кабеля, которым можно подключить телефон к ПК. Но есть некоторые модели, требующие специальный data-кабель для перепрошивки.
  • Драйвера для кабеля или мобильника, которые можно найти на сайте производителя.
  • Прошивка мобильника. Нередко прошивки выкладываются на официальных сайтах производителя телефона, но лучше поискать их на фан-сайтах телефонной марки. Узнать версию прошивки можно следующим образом: набираем на клавиатуре *#06# (для моделей Nokia — *#0000#). Но если высветился только IMEI, то находим в меню соответствующий пункт и смотрим версию текущей прошивки.
  • Специальная софтина для прошивки телефона. Просто так залить прошивку в телефон не получится. Требуется так называемый прошивальщик.

к содержанию ↑

Прошивка телефона Nokia

  • Сначала нам необходимо будет понять, какая же прошивка установлена на телефоне первоначально. Для этого набираем *#0000# в режиме ожидания, и на экране появится последняя версия прошивки. Теперь давайте посмотрим, что нам понадобится для того, чтобы поменять «внутренности» вашего телефона.
  • Нам необходимо удалить с ПК программу под названием PC Suite и загрузить на него файлы: Diego_3_06 , Phoenix 2004 , Crack для Phoenix и непосредственно саму прошивку Нокиа.
  • Следующим действием мы устанавливаем Diego_3_06.msi и запускаем файл Crack.exe, после чего автоматически происходит установка. Если в процессе установки начнут появляться различные файлы, не стоит обращать на них внимание, просто закрывайте и продолжайте далее установку.
  • После того, как эта процедура будет закончена, вы увидите открытое окно с двумя пунктами: добавить ярлык на рабочий стол и открыть журнал ошибок. На них мы не обращаем внимания и перезагружаем компьютер.
  • Теперь запускаем программу Phoenix 2004 и сразу же сворачиваем, но не закрываем. Запускаем установку нашей новой прошивки, и после этого нам снова будет предложена переустановка, но мы не должны это делать.
  • Теперь для того, чтобы окончательно узнать, как правильно прошить телефон, подключаем к компьютеру сетевой кабель и устанавливаем на него драйвера, чтобы он лучше работал.
  • Стоит отметить, что программа по прошивке Нокиа, установленная только что на вашем ПК действительна только до первой перезагрузки компьютера, а после нее вам придется заново повторять процедуру.
  • Теперь подготовка к процессу прошивки выполнена, и мы можем преступить непосредственно к самой процедуре переустановки программ. Разворачиваем программу, нажимаем файл — соединения, после чего открываем появившуюся вкладку «Добавить», теперь нажимаем «Вручную» и «Далее». Нам остаётся выбрать USB и нажать Finish.
  • Теперь при помощи подключенного кабеля к ПК присоединяем телефон, нажимаем в программе «Scan Product» и приступаем к самому ответственному процессу.
  • Теперь нажимаем в программе пункт «SW Update» и в открывшемся окне открываем файл прошивки. Они могут быть совершенно разными. Желательно их скачать побольше. Теперь нам необходимо подождать некоторое время, пока программа будет считывать данные телефона.
  • После того, как программа все подготовит, останется нажать только кнопку «Старт» и она все остальное сделает за вас сама.
  • Если в описании процесса вам оказалось что-либо непонятно, то лучше всего посмотреть видео, как прошить телефон, которое можно поискать в Сети Интернет.

Теги

  • Как прошить телефон через adb fastboot
  • Как прошивку сделать на телефон
  • Как работает дисплей телефона
  • Как прошить телефон хуавей через компьютер
  • Как работает дискорд на телефоне