Что такое breed в роутере

Для работы проектов iXBT.com нужны файлы cookie и сервисы аналитики.
Продолжая посещать сайты проектов вы соглашаетесь с нашей
Политикой в отношении файлов cookie

Я давно выделил для себя практически идеальный роутер в плане цена/качество, и этим роутер стал Xiaomi 3G. Его я перепрошил в «Padavan» и роутер стал уже более функционален и с очень стабильной работой. Но время не стоит на месте, технологии тоже. Поэтому сейчас сменить прошивку со стоковой MiWiFi или с Padavan на OpenWRT уже дело, практически 2 минут. Все дело в установке другого загрузчика – BREED, благодаря которому можно менять прошивки на роутере, как перчатки, используя только скрепку и кнопку reset. Функционала в целом хватало, пока не появился роутер AC2100 и идея связать их WiFi в MESH сеть. А для этого необходимо на каждом роутере установить прошивку Keenetic.

Роутер Xiaomi 3G – КУПИТЬ​

 Все файлы для прошивки роутера в Keenetic и другие прошивки — СКАЧАТЬ​

Мой канал в телеграмм @Lubops- ПОДПИСАТЬСЯ​

Содержание

  • Подготовка.
  • Установка загрузчика Breed из под прошивки Padavan
  • Установка Breed из «стоковой» прошивки MiWiFi
  • Установка прошивки Padavan из Breed
  • Установка прошивки Keenetic на роутер mi 3G
  • Обзор Keenetic на роутере Xiaomi 3G
  • Подробная видео инструкция
  •  Вывод

Подготовка.

Выключить антивирус и брандмауэр. Скачать и разархивировать файлы для перепрошивки в корень диска D/E/F, отформатировать флешку в FAT32, разогнуть скрепку и найти Ethernet кабель любой длины (до 100 метров ;) )

Если у вас кроме «родного» Дефендера не установлен никакой, другой антивирус ( что правильно ;) ), то отключаем его и брандмауэр Windows. Думаю, по скриншотам понятно даже для «чайников», как сделать эту процедуру.

Все действия актуальны для Windows 10. Но по умолчанию в Win10 не установлен клиент Telnet, устанавливаем его.  «Параметры Windows» — «Приложения».

Делаем все как на скриншотах

СТАВИМ галочку напротив «Telnet клиент«

 Завершаем установку.

Установка загрузчика Breed из под прошивки Padavan

Если прошивку Padavan вы устанавливали достаточно давно, допустим по этой инструкции:

То сейчас необходимо сделать следующие шаги: соединяем роутер Ethernet кабелем LAN-порт ПК (или ноутбука). 

После этого отключаем беспроводные и прочие интерфейсы, кроме нашего LAN подключения. 

Теперь достаем флешку, желательно до 4 Гб, и форматируем ее в файловую систему — Fat32. Из папки «3G-Breed-Keenetic\Firmware» копируем на флешку файл под названием breed-mt7621-xiaomi-r3g.bin. 

Вставляем флешку в USB порт роутера Xiaomi 3G. И переходим в административную часть роутера по адресу http://192.168.1.1 У вас этот адрес может быть немного другим, все зависит от настроек локальной сети в роутере.  Переходим в пункт «Администрирование» — «Консоль». В консоли вводим команду «mount» для проверки подключенных к роутеру накопителей. 

Исходя из того, как «обозвалась» ваша флешка изменяем команду «mtd_write write /media/AiDisk_a1/breed-mt7621-xiaomi-r3g.bin Bootloader»  где вместо AiDisk_a1 вписываем данные, из окна выше. В моем случае правильно будет «mtd_write write /media/DISK_IMG/breed-mt7621-xiaomi-r3g.bin Bootloader» 

Вставляем новую команду «mtd_write write /media/DISK_IMG/breed-mt7621-xiaomi-r3g.bin Bootloader» в строку и нажимаем обновить. 

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

Обновляем страницу по адресу http://192.168.1.1 и попадаем в загрузчик Breed, из которого уже можно устанавливать, практически любую подходящую к mi3G прошивку.

Установка Breed из «стоковой» прошивки MiWiFi

 Сбрасываем роутер на «дефолт», для этого удерживаем скрепкой кнопку Reset 10 секунд и ждем перезагрузки роутера. Делаем предварительную настройку «чистого» роутера, можно даже без интернета. Указываем пароль для WiFi и админки роутера.

Как и в случае прошивки из-под Padavan, отключаем ВСЕ сетевые интерфейсы, кроме того, к которому подключен Ethernet кабель.  Переходим в папку прошивки «Xiaomi 3Pro_3G patches (24.05.2020)» и запускаем файл Start.bat

В открывшемся окне нажимаем 1 и ждем подключения к роутеру.

За скрипт спасибо Sedy c 4pda.ru! После того как шлюз определился вводим ваши учетные данные к административной панели miWiFi. В моем случае это admin и пароль 12345678. Жмем Enter.

Если все ок, получаем такую картинку с запущенными сервисами telnet и ftpd.

На всякий случай сохраняем оригинальный eeprom и backup, последовательно нажимая 2 и 3 в консоли скрипта.

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

И теперь заливаем загрузчик Breed в мозги нашего роутера. Для этого жмем 4 и Enter. После этого выключаем роутер из розетки, зажимаем скрепкой и держим кнопку Reset. Подключаем роутеру питание, ждем 7-10 секунд, после того, как светодиод начнет моргать, отпускаем Reset.

Так же, очень рекомендую скачать оригинальный eeprom и backup, для этого переходим в 3тюю вкладку левого меню, и поочередно скачиваем eeprom и backup.

Установка прошивки Padavan из Breed

На примере установки прошивки Padavan, попробую показать, насколько просто и быстро можно установить практически любую прошивку на mi3G роутер. Переходим по адресу http://192.168.1.1 и попадаем в загрузчик Breed. 

Сразу переходим в 6ой пункт левого меню и прописываем такие значения «autoboot.command boot flash 0x600000», после чего жмем применить.

Переходим на вторую колонку левого меню, ставим галочку в среднем меню выбора файла, предварительно выбрав его из папки 3G-Breed-Keenetic\Firmware. Я выбрал последний на 26/03/2021 сборку Padavan — RT-MIR3G_3.0.0.4_382_52290-geac6f28.trx. Пишем прошивку во второй раздел и ставим галочку о необходимости перезагрузки роутера и жмем на кнопку «прошивка» на китайском языке.

1-2 минуты и Padavan уже установлен.

Установка прошивки Keenetic на роутер mi 3G

Переходим в загрузчик Breed,  выключаем роутер из розетки, зажимаем скрепкой и держим кнопку Reset. Подключаем роутеру питание, ждем 7-10 секунд,  после того, как светодиод начнет моргать, отпускаем Reset.  Переходим во 2ой пункт меню, в левой колонке и зашиваем новый, временный, загрузчик pb-boot.img из папки 3G-Breed-Keenetic\Keenetic Xiaomi MI3G v.1

Галочку в поле «перезагрузка» устанавливаем и жмем «прошивка».

После установки временного загрузчика Pandora Box, который так же, должен открыть по адресу http://192.168.1.1. Если этого не произошло, опять переходим в режим boorloader — выключаем роутер из розетки, зажимаем скрепкой и держим кнопку Reset. Подключаем роутеру питание, ждем 7-10 секунд,  после того, как светодиод начнет моргать, отпускаем Reset

Выбираем «Выбор файла» и указываем прошивку Кинетик — Keenetic_MI3Gv1_ZM.06_3.06.B.2.0-1_factory.bin для нашего mi3G роутера.

Жмем «Firmware update» и ждем завершения прошивки.

После этого меню, а именно перезагрузки роутера, рекомендую перейти в режим загрузчика. Выключаем роутер из розетки, зажимаем скрепкой и держим кнопку Reset. Подключаем роутеру питание, ждем 7-10 секунд,  после того, как светодиод начнет моргать, отпускаем Reset. Как видим, загрузчик у нас остался Breed, Пандора Бокс был временный для прошивки Кинетик.  «После установки прошивки Кинетик ни в коем случае нельзя перепрошивать другой Breed, а то на 4пда в ветке роутера уже есть счастливчики попробовавшие прошить breed с английским языком. С падаваном, OpenWrt, или стоком можно шить любой.»

Для управления нашим роутером, родным приложением для смартфона от Кинетик, нам надо изменить в 5ом пункте левого меню строки servicetag, servicepass, sernumb иcloudalias внеся вместо последних шести нулей 000000 любые цифры, причем разные во всех строках, по типу569812, 235145, 569870 и 561120.

Должно получится, что-то типа такого. Сохраняем, нажимая на кнопочку.

Теперь нам надо изменить МАС адрес, который находится в 8ом пункте левого меню. Изменяем 3-4 любых цифры в нижних двух строках.

Перезагружаем роутер отключив и включив питание.  Уже можно включить все сетевые адаптеры. WiFi уже доступен — пароль по умолчанию 12345678

Обзор Keenetic на роутере Xiaomi 3G

 Принимаем условия соглашения, и оказываемся в прошивке, которая открывает нам роутер полностью с другой стороны, с новыми возможностями, без затрат на железо. Кто скажет, мол «ай вей», «украли памагите» — вот GitHub от Кинетик, с исходниками прошивок — просто собери под себя — https://github.com/keenetic/keenetic-sdk

Тут описывать можно много и долго, но, по сути это полноценная прошивка Кинетик, на роутер Xiaomi 3G, которая при этом ПОЛНОСТЬЮ использует все потоки и ядра процессора Xiaomi.

Единственное НО, не обновлять прошивку  ни по «по воздуху», ни в ручном режиме — НИКОГДА!!! Пока автор на 4pda не выкатит новую прошивку. Но и эта прошивка очень стабильная и готовая к 24/7 работе.

Так как mi3G имеет ЮСБ порт, то мы можем не только подключить «4G свисток» местного провайдера телефонии, для организации автоматического резервного канала. Так и установить жесткий диск и сделать ftp, dlna или торрент сервер  — 1 кликом мышки.

Пробуем скачать на смартфон приложение с ПлейМаркета от Кинетик — https://play.google.com/store/apps/details?id=com.keenetic.kn

Регистрируемся, находим в локальной сети наш Кинетик и подключаемся к нему. Никаких вопросов нет, родное приложение от Кинетик, вполне работает с нашим Xiaomi роутером.

 Минус только 1, через определенное время, Кинетик, вот такие «левые» подключения банит. Кому-то везет и на 6 месяцев управлять роутером с телефона, а мне только 2 дня, потом красное предупреждение и роутер выпал из приложения. Надо опять заходить в Breed и менять те значения в 4 полях.

 Роутер Xiaomi 3G – КУПИТЬ​

 Все файлы для прошивки роутера в Keenetic и другие прошивки — СКАЧАТЬ​

Мой канал в телеграмм @Lubops — ПОДПИСАТЬСЯ

Подробная видеоинструкция

 Вывод

Все работает стабильно, настроек стало тоже намного больше, чем в Padavan. Благодаря наличию Breed, теперь можно в любой момент вернуть Padavan, откатится на OpenVRT или установить Кинетик в несколько кликов. Благодаря уважаемому zbancam с http://bit.do/fPvKr​ который модифицировал прошивку под 3G, мы можем на железе от Xiaomi использовать все огромные возможности от Keenetic. Начиная от дополнительного резервного канала провайдера, или использования 3/4G модема, до встроенной блокировки рекламы, использования родного мобильного приложения для управления роутером и до создания MESH сетей.

Xiaomi Router 3G: бэкап и прошивка PandoraBox (включая Breed)

JustACat

Все, что вы делаете, вы делаете на свой страх и риск.
Я никакой ответственности за ваши действия не несу!

1.Подготовка

Чтобы делать что-то с роутером, его нужно одним проводом (LAN1 порт) соединить с ПК, с которого будет производиться настройка, а вторым (WAN порт) соединить с одним из LAN портов вашей домашней сетки (старого роутера).

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

2.Начальная настройка и проверка роутера

Заходим с ПК через браузер в настройку роутера http://192.168.31.1

Проходим начальную настройку — тут поможет переводчик (если вы не владеете китайским, конечно).

Вариантов несколько:

  • Можно переводить через камеру мобильного (google translate это умеет).
  • Можно переводить прямо в браузере ПК, если у ПК есть второй канал, подключенный к инету (мой случай).
  • Можно попробовать установить вот это расширение для браузера Chrome: https://chrome.google.com/webstore/detail/rumiwifi/mbiehbednoakmhlmjcpgpciocekdjabp?hl=ru — я не ставил. С ним иногда бывают затыки: могут не нажиматься какие-то кнопки и т.п. — тогда надо его просто временно отключить.

После настройки и проверки, что все более или менее работает, я так же списал из веб-панели серийники и т.п. по роутеру, просто на всякий случай.

3.Открытие SSH доступа на роутере

Делал по этой инструкции: http://4pda.ru/forum/index.php?s=&showtopic=686221&view=findpost&p=36762639

Особенности:

  • Скачивать файл отсюда http://www1.miwifi.com/miwifi_download.html — нужно под наш роутер: «ROM for R3G» (Developer версию, не Stable).
  • Найти в родной панели роутера место, где прошивка обновляется, не так просто, особенно если у вас оно все на китайском. Но если все прощелкать — то найти можно. Скрины не делал, увы.
  • Если не заходит на http://d.miwifi.com/rom/ssh, попробуйте https://d.miwifi.com/rom/ssh (то есть прямо руками в строке адреса в браузере дописать https:// вместо http:// в ссылке, к которой уже добавится ваш «?userId=»). То же самое справедливо и при скачивании «miwifi_ssh.bin» — при ошибке дописываем https.

Если для вас SSH и putty — темный лес, то стоит почитать/посмотреть что-нибудь по поиску: https://yandex.ru/search/?text=как%20через%20putty%20подключиться%20по%20ssh

Ну и дополнительно можно еще вот эту статью использовать (там и скрины есть разные, и мысли умные): https://sysadmin.atomsoznanya.ru/firmware/259-proshivka-xiaomi-mi-wifi-na-proshivku-pandorabox-i-padavan.html — только опять же не забывайте, что делать надо с оглядкой на то, что роутер у нас 3G (а в статье речь про Mini). Обычно это влияет только на то, где и какие файлы надо скачивать.

4.Бэкапы !обязательно!

Делал по этой инструкции: http://4pda.ru/forum/index.php?s=&showtopic=837667&view=findpost&p=64406210 — в этом посте есть ссылки на другие с более развернутым описанием, если не ясно — прочтите и их тоже.

Проблем не возникло:

  • вставил чистую флешку (fat32) в роутер
  • зашел (через putty) по ssh
  • выполнил команды
  • выключил роутер
  • вынул флешку
  • сохранил полученные файлы на ПК

Для справки: структура разделов на стоке в 3G такая:

dev:  size  erasesize name
mtd0: 07f80000 00020000 «ALL»
mtd1: 00080000 00020000 «Bootloader»
mtd2: 00040000 00020000 «Config»
mtd3: 00040000 00020000 «Bdata»
mtd4: 00040000 00020000 «Factory»
mtd5: 00040000 00020000 «crash»
mtd6: 00040000 00020000 «crash_syslog»
mtd7: 00040000 00020000 «reserved0»
mtd8: 00400000 00020000 «kernel0»
mtd9: 00400000 00020000 «kernel1»
mtd10: 02000000 00020000 «rootfs0»
mtd11: 02000000 00020000 «rootfs1»
mtd12: 03580000 00020000 «overlay»
mtd13: 012a6000 0001f000 «ubi_rootfs»
mtd14: 030ec000 0001f000 «data»

5.Если хочется прошивку от Padavan

Тогда действуем по этой статье: http://4pda.ru/forum/index.php?s=&showtopic=837667&view=findpost&p=64429446

И дальше не читаем/не делаем.

6.Прошивка загрузчика Breed

Делал по этой инструкции: http://4pda.ru/forum/index.php?s=&showtopic=837667&view=findpost&p=65262189 — не шибко подробная она :)
В общем-то из нее всего 1 строчка требуется.

Действия:

  • Вот тут: https://breed.hackpascal.net/ — берем «breed-mt7621-xiaomi-r3g.bin».
  • Кладем файл в корень чистой флешки (fat32), советую проверить хэш-сумму скачанного файла и сравнить с указанной в https://breed.hackpascal.net/md5sum.txt
  • Флешку в роутер.
  • Заходим на роутер по ssh.
  • Выполняем команду:

mtd write /extdisks/sda1/breed-mt7621-xiaomi-r3g.bin Bootloader

  • В ответ выплюнется что-то вроде:

Unlocking Bootloader …
Writing from /extdisks/sda1/breed-mt7621-xiaomi-r3g.bin to Bootloader …

Все, теперь у нас вместо стокового загрузчика стоит загрузчик Breed.

Чтобы загрузиться в Breed, нужно:

  • Выключить роутер.
  • Зажать Reset на роутере (чем-то острым в дырочку сзади).
  • Включить роутер.
  • Когда замигает активно синий светодиод спереди, отпускаем Reset.
  • На ПК заходим: http://192.168.1.1 — вот так он выглядит:

Breed

7.Еще один бэкап (через Breed, можно пропустить)

  • Грузимся в Breed (см. выше).
  • Если на ПК есть интернет, включаем перевод на английский (хотя можно и без перевода тыкнуть).
  • Тыкаем в левом меню третий сверху пункт.
  • На открывшейся страничке по очереди тыкаем обе кнопки и сохраняем файлы в надежное место:

Бэкап в Breed

8.Прошивка PandoraBox

  • Качаем отсюда:
    http://downloads.pandorabox.com.cn/pandorabox/17.09/targets/ralink/mt7621/
    или:
    http://pandoraserver.chinacloudapp.cn/pandorabox/17.09/targets/ralink/mt7621/
    последний по дате файл прошивки «r3g», например:
    PandoraBox-ralink-mt7621-xiaomi-r3g-2017-09-27-git-923ec9a-squashfs-sysupgrade.bin
  • Проверяем хэш-сумму скачанного файла (указаны там же в файле «sha256sums»).
  • Грузимся в Breed (см. выше).
  • Если на ПК есть интернет, включаем перевод на английский (хотя можно и без перевода тыкнуть).
  • Тыкаем в левом меню второй сверху пункт.
  • На открывшейся страничке первая из двух закладка.
  • На ней отмечаем среднюю из трех галочек и рядом с ней выбираем скачанный ранее .bin файл, в общем, в соответствии с картинкой:

  • Жмем кнопку «Upload» (или как там она по-китайски), попадаем на такую страничку:

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

  • Когда ползунок прошивки дойдет до конца, нужно еще немного подождать.

  • Роутер перезагрузится. И можно попробовать на новой вкладке постучаться на роутер: http://192.168.1.1

  • Остается только выбрать английский и настроить PandoraBox.

NB: Кому мало стандартных (простых) настроек PandoraBox, включите «Geek Mode» и перед вами появится полноценная LuCI.

Внимание: не пытайтесь прошить загрузчик от PandoraBox, если вы не знаете, что делаете и зачем вам это надо. Судя по всему, он закрывает изменение загрузчика. Оставайтесь на загрузчике Breed.

После прошивки PandoraBox разметка приняла следующий вид:

dev:  size  erasesize name
mtd0: 00080000 00020000 «Bootloader»
mtd1: 00040000 00020000 «Config»
mtd2: 00040000 00020000 «Bdata»
mtd3: 00040000 00020000 «Factory»
mtd4: 00040000 00020000 «crash»
mtd5: 00040000 00020000 «crash_syslog»
mtd6: 00040000 00020000 «reserved0»
mtd7: 07e00000 00020000 «firmware»
mtd8: 00200000 00020000 «kernel»
mtd9: 07bc0000 00020000 «ubi»
mtd10: 00040000 00020000 «panic_oops»
mtd11: 00080000 00020000 «factory_bbt»

*.Дополнительные материалы

  • Xiaomi Router 3G: прошивка LEDE/OpenWrt (+ возврат на stock через Breed):
    http://telegra.ph/Xiaomi-Router-3G-proshivka-LEDE-11-23
  • Xiaomi Router 3G: обновление LEDE (OpenWrt)
    http://telegra.ph/Xiaomi-Router-3G-obnovlenie-LEDE-OpenWRT-01-24
  • Сравнительная табличка роутеров Xiaomi:
    https://wikidevi.com/wiki/List_of_Xiaomi_Wireless_Devices
  • Тема по Xiaomi Mi WiFi Router 3G на 4pda (вопросы можно задавать там):
    http://4pda.ru/forum/index.php?showtopic=837667
  • Основные команды для работы с BusyBox:
    http://telegra.ph/Osnovnye-komandy-dlya-raboty-s-BusyBox-01-24
  • HashTab (бесплатное расширение для Windows для подсчета хэш-сумм файлов):
    http://implbits.com/products/hashtab/
  • putty (ssh-клиент и не только):
    https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
  • WinSCP (клиент для доступа к файлам по ssh):
    https://winscp.net/eng/download.php

Всем бобра и успешных перепрошивок!

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

Инструкция по установке Breed на роутер:

  1. Шаг 1: Подключите роутер к компьютеру посредством Ethernet-кабеля и убедитесь, что роутер включен. Запустите веб-браузер и в адресной строке введите IP-адрес роутера.
  2. Шаг 2: Введите логин и пароль для доступа к панели администратора роутера. Обычно логин и пароль по умолчанию указаны на наклейке на задней панели роутера или указаны в документации.
  3. Шаг 3: В панели администратора найдите вкладку «Настройки» или «Настройки системы».
  4. Шаг 4: В меню настройки найдите пункт «Обновление прошивки» или «Firmware Update».
  5. Шаг 5: Загрузите файл прошивки Breed с официального сайта или с сайта разработчика альтернативных прошивок для вашей модели роутера.
  6. Шаг 6: Нажмите кнопку «Обновить» или «Update» и подождите, пока процесс установки Breath будет завершен.
  7. Шаг 7: После установки Breed роутер будет автоматически перезагружен. После перезагрузки вы сможете настроить роутер в соответствии с вашими потребностями.

Внимание! Установка Breed является процессом, который может потребовать определенных знаний и навыков работы с роутерами. При неправильной установке Breed роутер может перестать работать корректно или вообще перестать загружаться. Перед установкой Breed рекомендуется ознакомиться с документацией, предоставленной разработчиком альтернативных прошивок, а также проконсультироваться со специалистом.

Содержание

  1. Как установить Breed на роутер
  2. Получите необходимые материалы
  3. Подготовьте роутер
  4. Загрузите и установите Breed

Как установить Breed на роутер

Для установки Breed на роутер, необходимо выполнить следующие шаги:

  1. Подготовка устройства. Установите веб-интерфейс (интерфейс для управления устройством) на роутер. Обычно это делается через web-интерфейс фирменной прошивки роутера.
  2. Скачивание файлов. Посетите официальный сайт проекта Breed и скачайте актуальную версию Breed для своей модели роутера.
  3. Подключение к роутеру. Запустите SSH-клиент и подключитесь к роутеру по протоколу SSH с использованием учетных данных (логин и пароль).
  4. Перезагрузка и установка. Введите команду для перезагрузки роутера и во время загрузки нажмите определенную комбинацию клавиш, чтобы войти в режим Breed. Затем загрузите файл прошивки из предварительно распакованного архива Breed и запустите процедуру установки.
  5. Проверка успешной установки. После установки Breed, роутер будет автоматически перезагружен. Проверьте, что Breed успешно установлен, зайдя в web-интерфейс роутера или выполнив соответствующую команду через SSH.

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

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

Получите необходимые материалы

Перед тем как начать процедуру установки Breed на роутер, вам понадобятся следующие материалы:

  • Роутер: убедитесь, что у вас есть совместимый роутер, для которого существует поддержка Breed.
  • Компьютер: вам понадобится компьютер для подключения к роутеру и выполнения необходимых операций.
  • Кабель Ethernet: у вас должен быть кабель Ethernet для подключения компьютера к роутеру.
  • Файл прошивки Breed: необходимо скачать файл прошивки Breed для вашего конкретного роутера.
  • Утилита для прошивки: вам понадобится специальная утилита для прошивки роутера с использованием Breed.

Доставьте и подготовьте все эти материалы перед тем, как приступить к установке Breed на ваш роутер.

Подготовьте роутер

Прежде чем начать установку Breed на роутер, необходимо выполнить ряд подготовительных шагов:

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

После того как вы выполните все эти шаги, ваш роутер будет готов к установке Breed.

Загрузите и установите Breed

1. Откройте браузер на вашем компьютере и введите в адресной строке следующий URL-адрес: https://breed.hackpascal.net/

2. Найдите на странице загрузки Breed подходящую версию для вашего роутера и нажмите на ссылку для загрузки.

3. После того как файл загрузится, найдите его в папке загрузок на вашем компьютере.

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

1. Подключите компьютер к роутеру с помощью Ethernet-кабеля или подключитесь к сети Wi-Fi роутера.

2. Откройте веб-браузер на компьютере и в адресной строке введите IP-адрес вашего роутера (обычно 192.168.1.1 или 192.168.0.1). Нажмите Enter.

3. Введите логин и пароль для доступа к настройкам роутера (обычно по умолчанию admin:admin) и нажмите Войти.

4. Найдите настройку, которая позволит вам обновить прошивку роутера, и выберите файл Breed, который вы загрузили ранее.

5. Нажмите на кнопку «Обновить прошивку» или аналогичную для запуска процесса установки Breed.

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

Благодарности

Коллективными усилиями участников тематического tg чата особенно UnameOne, M, Karim, Nicky F. с форума 4pda, удалось разобраться в запутанных хитросплетениях исходного кода прошивок, архитектуре смартбоксов, чипа MT7621, технологиях пайки микросхем. Все эти модные софт скилы «командная работа», «межличностное взаимодействие», «креативность», «проактивность», «самостоятельность», «дисциплина» все еще слабоваты, но что-то точно улучшилось. Сотни часов с дымящимся паяльником и перед монитором, но я не бросил. Спасибо за это товарищам!

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

Хочу отдельно отметить человека по имени Андрей он же inflabz, который начал заниматься темой смартбоксов очень давно. Сейчас он отошел от темы, с ним очень сложно разговаривать. Люди, кто знал его раньше говорят: «Очень плохая музыка! Раньше лучше было». Тем не менее его вклад первопроходца нельзя не отметить. Кажется, что он чем-то тяжело и неизлечимо болеет. Мужайся, не раскисай, держись! Общение с ним недавно закончилось выпиливанием меня из телеграма до 1 февраля по чьей-то жалобе. Сразу вспомнились офисные интриги, сплетни, сенсации, которые я уже за время пока не работаю успел забыть. В общем если это он меня выпилил, я не держу зла. А если кто-то другой, то мне нет дела до этой жалкой ничтожной личности. :-)

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

Тем, кого незаслуженно забыл, простите и не обессудьте.

Введение


Я занимаюсь прошивками маршрутизаторов Билайн Смартбокс Флеш и Гига на базе чипа Mediatek MT7621A уже больше полугода. За это время чего только не было. Я заказывал программаторы чипов NAND с Али, возвращал их обратно, купил кучу флюсов, припоя, 3 паяльника, паяльную станцию, коврик для пайки, кучу проводков и raspberry pi. Накоплены бесценные знания и опыт, которые пришлось доставать по крупицам из сообщений форумов, китайских мануалов на просторах сети, репозиториев github тоже в основном китайских, исходных кодов программ.

Пришлось это все собрать, проанализировать, просеять, снова проанализировать, потом структурировать и обобщить. У меня короткая память, поэтому если так случится и через месяц или год я снова займусь чем-то подобным, то эта статья будет отличным мануалом. Надеюсь, что кому-то она понравится. Людям JS скрипта вряд ли будет интересно, но статья для настоящих пусть и начинающих инженеров/программистов, кто любит не только нажимать педали, но и залезть под капот.

Зачем понадобилось менять загрузчик, если он и так работал?

Резонный вопрос. Ответ очень прост. Лень. Дело в том, что скомпилированный автором загрузчик брид недоступен в исходных кодах, не уверен, что автор знает, что в России есть устройство, которое используется десятками (если не сотнями) тысяч людей по всей стране. Автор китаец поэтому логично, что он сделал загрузчик для китайского роутера Xiaomi mi router 3g. Этот роутер хоть и построен на том же чипе MT7621A, но все же отличается. В роутере Xiaomi кнопка reset подключена к 18 выводу GPIO, а в билайновских смартбоксах кнопки reset на всех моделях подключены к другим выводам. В smartbox flash reset на GPIO 3, а в smartbox giga на GPIO 4. Если установить на smartbox flash или giga загрузчик breed для Xiaomi mi router 3g, то кнопка reset не работает.

Кнопка reset в breed используется для прерывания загрузки, чтобы если в нем настроен автозапуск прошивки, этот запуск не производился, а брид продолжал бы работать. Если у вас настроенный роутер, который сразу запускает прошивку, то может быть довольно сложно прервать этот процесс без работающей кнопки reset. Если ты делаешь прошивки, или испытываешь чужие, то прерывать загрузку приходится очень часто. Автор брид предусмотрел еще 2 альтернативных способа прерывания загрузки. Всего мне известно 4 способа прерывания загрузки breed, 3 штатных и 1 нештатный.

Первый способ прерывания загрузки breed

Можно использовать специальную программу, которую написал автор самого брида. Программа отправляет специальный пакет через сетевой интерфейс, чтобы брид, получив такой пакет приостановил дальнейшую загрузку. Во-первых программе breedenter.exe требуется для работы качественное сетевое соединение, нужно подключиться к роутеру патчкордом от компьютера. Во-вторых программа на китайском языке. В-третьих программа под windows и требует установки дополнительного ПО для своей работы.

Второй способ прерывания загрузки breed

Если у вас есть подключение к роутеру через интерфейс UART, то брид готов остановится, если получит любые данные через интерфейс. Проблема тут в том, что для подключения по UART требуется последовательный порт COM или USB устройство, которое будет эмулировать наличие такого порта. Нужно разобрать роутер и распаять контакты для UART подключения. Конечно распаянный UART вещь в хозяйстве полезная. Но разбирать и паять только для прерывания загрузки, как стрелять из пушки по воробьям.

Третий и лучший способ прерывания загрузки breed

Прерывание загрузки breed с помощью кнопки reset — самый простой и надежный способ. Только именно он и не работает на роутерах smartbox без модификаций загрузчика. Чтобы починить кнопку и понадобилось изменять загрузчик. В сообществе на форуме 4pda уже были люди, которые проделали трюк с изменением загрузчика. Но ни описаний, ни скриптов они не выложили, поэтому старые версии breed с переключенной кнопкой для smartbox, которые имелись в наличии, не решали проблему. До того, как полез в дебри реверс-инжинеринга я пытался достучаться до этих людей.

velomas

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

inflabz

Второго человека, который делал изменения кнопок (inflabz) на форуме уже давно не было, от дел он кажется уже отошел и пропал с горизонта. Он в свое время довольно сильно продвинулся в адаптации прошивки openwrt для smartbox, выкладывал все в паблик. Вел свой чат по смартбоксам. Он делал изменение кнопок. Я смог на него выйти через другого человека из прошивочной тусовки. Уважаемый inflabz, говорил как препод в шараге, отвечал вопросом на вопрос, но скриптов так и не дал, сам менять брид отказался. Кое-что полезное он таки сказал, а главное не дал моему интересу к теме угаснуть.

Sedy

Довольно одиозная личность в узких кругах. У него огромный опыт работы с различными моделями устройств, какое-то чумовое кол-во сообщений и ачивка супермодератор на gsm-forum. Он изгнан с форума 4pda за ведение коммерческой деятельности, но в нашем чате он состоит. Поскольку он сделал прошивки своим заработком, бесплатно делится знаниями он не настроен. По имеющимся данным он является обладателем нужных скриптов для модификации, который получил по блату от velomas. В чате пишет часто, но очень осторожно, больше читает. Его я даже не спрашивал.

Четвертый (нештатный) способ прерывания загрузки breed

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

Перед моментом запуска прошивки, когда брид уже передал управление следующей программе есть примерно 2 секунды, в которые брид уже загружен и работает, но еще не успел запустить прошивку. Если отключить DHCP и вручную установить IP адрес компьютера и шлюза (192.168.1.1), то за эти 2 секунды можно подключиться к брид через telnet и передать команды на отключение автозагрузки. Вот эти:

env unset autoboot.command; env save

Успеть за это время довольно сложно, поэтому получается через раз. Но на безрыбье и рак — рыба.

Описание структуры загрузчика breed

Для истории и тех, кто захочет поковыряться самостоятельно.
Структура загрузчика breed для xiaomi mi3g:
Размер заголовка 64 байта. Вот как выглядит этот участок памяти в редакторе.

/* uboot image header 64B */
typedef struct image_header {
    uint32_t        ih_magic;       /* 4B Image Header Magic Number */
    uint32_t        ih_hcrc;        /* 4B Image Header CRC Checksum */
    uint32_t        ih_time;        /* 4B Image Creation Timestamp  */
    uint32_t        ih_size;        /* 4B Image Data Size           */
    uint32_t        ih_load;        /* 4B Data   Load  Address      */
    uint32_t        ih_ep;          /* 4B Entry Point Address       */
    uint32_t        ih_dcrc;        /* 4B Image Data CRC Checksum   */
    uint8_t         ih_os;          /* 1B Operating System          */
    uint8_t         ih_arch;        /* 1B CPU architecture          */
    uint8_t         ih_type;        /* 1B Image Type                */
    uint8_t         ih_comp;        /* 1B Compression Type          */
    uint8_t         ih_name[12];    /* 12B Image Name               */
    nand_header_t   ih_nand;        /* 20B Этого куска нет в обычном заголовке uboot image, image name занимает не 12, а все 32 байта */
} image_header_t;

Применительно к MT7621, который установлен в smartbox flash, giga, turbo nand_header_t устроен так:

typedef struct nand_header {
    uint32_t                nand_ac_timing;             /* 4B */
    uint32_t                ih_stage_offset;            /* 4B stage1 offset */
    uint32_t                ih_bootloader_offset;       /* 4B bootloader offset */
    uint32_t                nand_info_1_data;           /* 4B */
    uint32_t                crc;                        /* 4B Хитрый crc, который поддавался дольше остальных */
} nand_header_t;

После заголовка идет предзагрузчик, который настраивает чип, распаковывает сжатый lzma загрузчик, загружает его и передает ему управление. Место, где начинается основной код загрузчика содержит заголовок с минимальным числом параметров. Для поиска заголовка загрузчика используется уникальный идентификатор Breed. 32 битное число 0x37540178. Затем идет 4 байта размера тела загрузчика, потом 4 байта адреса памяти, куда предзагрузчик записывает загрузчик, дальше 4 байта адреса точки входа, откуда будет запущен загрузчик.

Это участок программы, где с волшебного числа 0x37540178 начинается заголовок breed.

#define BOOTSTRAP_HDR_MAGIC     0x37540178
/* breed bootstrap kernel header */
typedef struct bootstrap_kernel_header_type {
    uint32_t magic; /* 0x37540178 */
    uint32_t length;
    uint32_t load_address;
    uint32_t entry_point;
} bootstrap_kernel_header_t;

Сразу после заголовка Breed идет заголовок lzma длиной 13 байт.

typedef struct lzma_header_type { 
 uint8_t lzma_props;                    /* 1B параметры сжатия (lc, lp, pb) */
 uint32_t dictSize;                     /* 4B размер словаря */
 uint64_t uncompressedSize;             /* 8B распакованный размер данных */
} lzma_header_t;

Значение байта с параметрами сжатия вычисляются по формуле: pb * 5 + lp * 9 + lc. Обратно значения параметров вычисляются так:

lc = lzma_props % 9; /* остаток от деления на 9 */
lzma_props /= 9;     /* Заменяем исходное число на полученное целое число при делениии на 9 */
pb = lzma_props / 5; /* целое число при делении на 5 */
lp = lzma_props % 5; /* остаток от деления на 5 */

В самом начале запуска чипа, после того как контроллер памяти MT7621A в состоянии считывать данные NAND памяти, он умеет работать только с uimage заголовком. Т.е. он умеет проверять только 1 контрольную сумму заголовка, копировать себя в нужный участок оперативной памяти, а потом начать выполнять код предзагрузчика из заданной в заголовке точки входа (ep). Предзагрузчик становится умнее, понимает lzma. Распаковывает из архива код breed и уступает ему место. Все это довольно очевидно. Для человека, который знаком с работой подобных устройств, все становится понятно сразу при виде знакомых идентификаторов. Я не такой, поэтому очень здорово, что Nicky F. посмотрел и любезно согласился все объяснить мне. В этом плане в нашей мини-тусовке есть критическая масса людей, которые готовы начать объяснять «от печки» или чуть дальше алфавита. Новичков натыкающихся на бетонную стену профессионалов легко развернуть в направлении выхода. А ведь как тяжело бывает этим профессионалам опускаться на уровень новичка. Все компьютерщики, которым приходилось побывать в шкуре мастера по настройке исчезнувшего курсора мышки, хорошо поймут о чем я толкую.

Тайну всех контрольных сумм разбирали несколько дней, я старался без устали, но все понял только когда меня ткнули носом в нужный участок исходного кода другого загрузчика mt7621. Поскольку для запуска загрузчика вторая контрольная сумма nand crc не проверяется, то успешно, если как-то самостоятельно записать даже такой неполноценный загрузчик, то работать он будет не хуже нормального. На этом можно было бы и остановиться. Как говорится: «Работает — не трогай!» Но очень хотелось пройти этот квест, поэтому никто не бросил. Прошло еще несколько дней прежде, чем сначала обнаружилось присутствие этой спрятанной контрольной суммы, а потом нашелся алгоритм подсчета этой контрольной суммы. Кто-то может сказать: «Ну что тут такого? Открыл исходники и все увидел». Таким я хочу напомнить, что загрузчик breed это программа с закрытым исходным кодом, автор китаец, который на вопросы и просьбы через гитхаб не отвечает.

Как я сказал, вторая контрольная сумма, которая не предусмотрена каноническим заголовком uimage спрятана в том участке, в котором записывается имя образа (image name). 32 байта для имени образа сократили до 12, а оставшиеся 20 байт пошли под еще 1 заголовок с еще 1 контрольной суммой. Вторая контрольная сумма в отличие от первой подсчитывается не по алгоритму crc32, а по старому алгоритму crc стандарта POSIX.

Вот как это работает.

  1. В заголовке Breed проверяется длина lzma архива.
  2. В заголовке uimage:
    2.1. image size (preloader и сам bin файл брида без 64 байт заголовка)
    2.2. image data crc (crc32 checksum preloader + bin)
    2.3. nand crc (crc POSIX 1003.2 checksum uimage заголовка, перед вычислением уже должен быть выполнен п. 2.1, а значение контрольных сумм nand crc и header crc должны быть установлены нулями)
    2.4. header crc (crc32 uimage заголовка, перед вычислением должен быть выполнен п. 2.3)
    Если все чексуммы сходятся, брид готов записать такой загрузчик. Спасибо за внимание, пишите, как говорится, письма. Буду рад ответить на вопросы.

Как все было

Пару недель назад, не теряя надежды модифицировать брид, я забрел в соседний чат специлизирующийся на прошивке PADAVAN для SMARTBOX. Слово за слово и откликнулся человек %username%, который на 4pda Nicky F. Он согласился помочь в разборе breed, хотя у него даже нет тех моделей роутеров, для которых я хотел делать модификацию. Видимо увидел в чате приятные сердцу слова про реверс и дизасм. В чатах довольно много людей что-то постоянно просят, но в основном приходят те, у кого не работает модем или что-то не так с прошивкой. Nicky F. рассказал что и куда нажимать. Я отвечал впопад, поэтому дело заладилось. Так я в первый раз дизасембировал код программы. Я не могу назвать себя совсем нубом в вопросе, так как уже к тому времени приходилось использовать отладчик, делать какие-то вставки в программы на языке ассемблера. Я видел ассемблер, но это были либо вставки в собственные простейшие программы или полученный во время компиляции ассемблерный код, который производит компилятор.

Переводить именно машинный код в ассемблер мне не приходилось ни разу. Чистый ассемблер полученный без оптимизаций компилятора, перемежающийся с исходным кодом и оптимизированный до неузнаваемости машинный код, который преобразован дизассемблером — это, как говорят в Одессе, 2 большие разницы. Страшно сказать, но первый моим дизассемблером стала Ghidra, та самая, которая родилась в недрах АНБ, но с недавних пор выложена в публичный доступ.

Через пару дней мытарств и безуспешных поисков обращений к участкам памяти, которые чип MT7621 использует в качестве интерфейса взаимодействия и управления GPIO. У нас только вчера появился MT7621 ProgrammingGuide на английском, где все четко и понятно написано. А тогда у нас был исходный код ядра линукс с драйверами для MT7621 и какие-то обрывки данных с китайских сайтов на китайском языке. Это был поиск чего-то примерно такого, выполняющее что-то примерно этакое. Но удача любит смелых, поэтому она мне улыбнулась. Nicky F. написал, что нашел нужную функцию. Китаец hackpascal (Weijie Gao — автор breed) заботливо написал функцию, которая прямо первым аргументом брала в десятичном виде номер нужного GPIO. А ведь управление осуществляется установкой нужных битов, поэтому вполне могло быть что-то типа такого в исходном коде:

#define GPIO_HIGH(i,g)  (g) < 32 ? (*(reg32_t *)(i + GPSET0) = 1<<(g)) : (*(reg32_t *)(i + GPSET1) = 1<<(g))  

Тут еще, поморщив брови, можно разобраться. Но чем это станет на ассемблере? Ведь тут код в виде MACRO, который компилятору попадает уже в виде просто чисел.

Для наглядности покажу то место в коде breed.

Я быстро сделал версии для обоих роутеров. Чик, чик и чудо случилось. Не пришлось даже сильно рисковать. Так как брид позволяет запустить себя без физической записи на чип памяти. Можно просто загрузить код в оперативную память и указать точку входа для запуска. Брид с работающей кнопкой сброса заработал. Затем я прошил его на место старого загрузчика и скрестив пальцы выключил и включил питание. Роутер включился, но к тому времени я уже несколько раз портил загрузчик и успешно перепаивал микросхему памяти. Паяльная станция стояла рядом, поэтому я переживал не сильно.

Заключение

Денег мне за это не платят, в значительной степени я занимаюсь всем этим ради таких моментов. Когда своими руками и головой удается заставить что-то работать это непередаваемое чувство. И почти неважно что именно ты создаешь этими руками. Это может быть сделанная стяжка пола в квартире, замена дисплея на разбитом айфоне сестры. Упорный труд плюс успешный результат дает это чувство. Я много лет работал в офисе, там этого сильно меньше. Офисный планктон с 9 до 18 перекатывают ручку с одного конца стола на другой, потом покупает форд фокус или даже бмв и квартиру в ипотеку, а потом едет в ГОА искать смысл жизни. А я с китайской паяльной станцией ковыряюсь с микросхемой памяти в общем не сильно нужного мне роутера, но я делаю и от этого счастлив, чего и вам желаю.

Другие наши интересноые статьи:

  • Что такое cpe lte wi fi роутер
  • Что такое bridge в роутере mikrotik
  • Что такое bpdu в роутере
  • Что такое crc в роутере
  • Что такое bitswap в роутере

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии