Показаны сообщения с ярлыком e8372. Показать все сообщения
Показаны сообщения с ярлыком e8372. Показать все сообщения

суббота, 29 августа 2015 г.

Huawei E8372 (МТС 8211F). Доступ к консоли. Установка TTL=64.

В этом посте мы с вами поговорим о том, как получить доступ к Linux'овой консоли модема, а также как установить патч TTL=64. Изначально пост задумывался как подробнейшее руководство на тему, но т.к. существует немалый риск того, что многие прочитав его, ввиду отсутствия опыта приведут свои устройства в состояние полной неработоспособности - некоторые подробности я все же опущу. Итак, для чего это было нужно лично мне? Во-первых для того чтобы вспомнить как работать с модемами на Balong'е, благо на эту тему есть уже очень много материалов любезно предоставленных vve, forth32, rust3028, Matrixnet и другими, ну а во-вторых - т.к. у меня совершенно случайно оказался Altel'евский Huawei E8372, который вы можете видеть на фото - я захотел его использовать для раздачи интернета через WiFi на головное устройство в автомобиле. Как раз под рукой оказалась телефонная симка Yota. На тему tethering'а Yota'ы уже достаточно много было сказано, поэтому повторяться здесь тоже не буду. Не то чтобы я собрался качать торренты гигабайтами, как вы понимаете в авто - это не нужно, просто я захотел попробовать использовать телефонную SIM (к сожалению, головное устройство не поддерживает установку SIM-карты, хоть и на Android). Вообщем начнем ...

Что нам понадобится? Собственно модем - Huawei E8372, прямые руки, светлая голова и так называемый OEM Code (как раз он нам понадобится для получения доступа к консоли модема). Если вы не представляете где взять этот код - дальше можно не читать, т.к. как раз этот момент я и опущу здесь. Если он у вас уже есть - можно приступать. Итак, первое что нам нужно сделать - это перевести модем из режима HiLink, в котором у нас доступен один лишь интерфейс RNDIS в режим COM-портов. Сделать это можно отправив XML POST запрос следующего содержания на http://192.168.8.1/CGI :

<?xml version="1.0" encoding="UTF-8" ?> 
<api version="1.0">
  <header>
    <function>switchMode</function>
  </header>
  <body>
    <request>
      <switchType>1</switchType> 
    </request>
  </body>
</api>

Сделать это можно с помощью curl (в конце статьи я выложу архив со всем необходимым), запустив файл sw_debug_mode.cmd из архива. Модем, естественно при этом должен быть подключен по USB. В результате в диспетчере устройств у нас появятся следующие устройства:


Как видите, драйвера на них не установились автоматически, поэтому если в системе нет драйверов Huawei устанавливаем их вручную из архива FcSerialDrv.rar или Huawei_Drivers.rar (эти два архива также содержатся в конце поста в общем архиве с материалами).У меня Win 8.1 x64 и драйвера из FcSerialDrv.rar успешно установились (у кого не устанавливаются - можно попробовать отключить обязательную проверку цифровой подписи драйверов, хотя лично я не отключал). В результате из этой мешанины устройств получилось следующее:


Как мы видим здесь 6 COM-портов и 1 RNDIS адаптер. Далее нас интересует командный порт, а именно PC UI Interface (COM 40). Берем PuTTy, включаем в нем режим локального эха для удобства и коннектимся (тип соединения - Serial) на COM40. Проверяем результат командой ATI:

Далее, как я уже говорил - нам понадобится OEM Code. В моем случае это был - 62265683 (не путать с кодом разблокировки модема). OEM Code для Huawei E8372 невозможно посчитать различными калькуляторами, которые генерируют коды по IMEI, поэтому не тратьте свое время впустую. Вводим последовательно следующие команды:

AT^DATALOCK="62265683"
AT^SPWORD="62265683"
AT^SHELL=2
AT^RESET

После чего модем у нас уходит в перезагрузку. Результатом ввода каждой из команд должно быть OK. Здесь DATALOCK - открывает доступ к расширенному набору команд, без нее, к примеру, нельзя ввести SPWORD. Далее активируем консоль с помощью SPWORD и SHELL и ждем перезагрузки модема. После рестарта он опять у нас окажется в HiLink режиме, в котором доступен только RNDIS. Переведем его в Debug Mode с помощью sw_debug_mode.cmd, как мы это уже делали раньше. И подключимся на FC ShallB (COM 41) с помощью Putty:


Далее в окне терминала появятся строчки из лога. Просто нажимаем Enter и видим следующие строки:

Password length is 0, ERR!
Login failed

Т.е. по факту у нас запрашивался пароль, но мы этого не видели. В приглашение Password вводим наш OEM Code, все тот же 62265683 в моем случае и видим приглашение EUAP> - это и есть консоль Linux модема. Теперь выполним в ней следующие три команды:

busybox telnetd -l /bin/sh
mount -o remount,rw /system
/system/bin/busybox tcpsvd -vE 0.0.0.0 21 /system/bin/busybox ftpd -w / &

Запускаем telnet демон (теперь мы можем получить доступ к той же консоли через telnet по 192.168.8.1), монтируем раздел /system на запись и запускаем FTP клиента с возможностью загрузки файлов. Теперь чтобы не повторять все это вручную миллион раз, если вдруг понадобится, мы можем добавить запуск busybox telnetd -l /bin/sh в файл /system/etc/autorun.sh , для меня, например, удобнее всего было сделать это через Far Manager 3.0 и FTP плагин в NetBox'е:

Пример моего autorun.sh, который у меня получился в конечном итоге - вы также сможете найти в архиве в конце этой статьи. К слову, в модеме в /sbin лежит adbd демон, но он не запускается, выпадая с Illegal Instruction. Поэтому мы возьмем adbd от E3372s и зальем его в /system/xbin выставив соответствующим образом права (chmod 750 adbd) и владельца (chown 0:0 adbd), чтобы получилось как на скрине:


Здесь правильная версия adbd с размером в 117968 байт у нас лежит в /system/xbin ... права на нее выставлены 750, владелец - root. Если внести его в autorun.sh, то при старте модема можно будет очень легко подключиться к нему по ADB:


Правильный файл adbd опять же в архиве в конце поста ;) Теперь что касается TTL, если применить патч, по аналогии с E3372S / E3372H, т.е. добавить в autorun.sh следующее:

iptables -P FORWARD DROP
... (тут пропущено) ...
f=0
while [ $f -eq 0 ]
do
dmesg | /system/bin/busybox grep "wan0: port 1(eth_x) entered forwarding state"
if [ $? -eq 0 ]
then
  /system/bin/sleep 15
  iptables -t mangle -A POSTROUTING -o wan0 -j TTL --ttl-set 64
  iptables -P FORWARD ACCEPT
  f=1
else
  /system/bin/sleep 3
fi
done

То ничего у нас не получится, хотя по логике вещей все верно. Если сделать iptables -t mangle -L POSTROUTING -v и посмотреть статистику, то пакеты у нас якобы модифицируются:


И TTL при выходе во вне у них должен быть 64 ... однако на практике происходит то же самое что и с Huawei E5372 (ZeroChaos и Matrixnet на 4PDA в свое время уделили очень много времени этой проблеме - но нашли только "промежуточное" решение, которое заключалось не в изменении всех выходящих пакетов, а в установке TTL по-умолчанию самого роутера в 63 с помощью busybox echo 63 > /proc/sys/net/ipv4/ip_default_ttl  ... в результате любые Android устройства, которые подключаются к нему через WiFi - работают нормально, т.к. дефолтный TTL на большинстве Android устройств - 64, а на всех ПК, которые планируются подключать к роутеру необходимо также изменить DefaultTTL в реестре на 64) ... 

Вообщем правило iptables -t mangle -A POSTROUTING -o wan0 -j TTL --ttl-set 64 в E8372 работает "через раз" и в результате часть пакетов все равно уходит во-вне с неизменным TTL, т.е. фиксации TTL для любых исходящих пакетов с wan0 не получается. Кто осилит полностью 43 страницы этой темы, получит более подробное представление.

В конечном итоге, чтобы не мучиться, получился патч, аналогичный этому для Huawei E5372. Его минус в том, что все подключенные к модему устройства должны иметь собственный DefaultTTL = 64.

Т.е. получаем Вариант №3 с картинки:


Как и обещал, архив 8372_mod.7z со всеми необходимыми файлами.

p.s. В качестве небольшого резюме. Что получилось в итоге? Модем с дефолтным TTL=63, любые устройства на Android (и не только), имеющие DefaultTTL=64 подключаются к интернет без каких-либо проблем, в том числе и головное устройство в авто, ради которого все это и затевалось. Пост написан исключительно в образовательных целях, отвечать на вопросы где взять OEM code под ваш модем, что делать с IMEI и т.п. - я не буду. Вся информация на эту тему есть в открытых источниках. Комментарии с подобными вопросами также не будут публиковаться.

Внимание! Материалы приведенные в данной статье размещены в ознакомительных целях. Все действия описанные в данной статье вы осуществляете на свой страх и риск! Автор(ы) статьи не несут ответственности за вышедшее из строя оборудование, в результате ошибочных действий или неверного понимания вами смысла изложенного в ней материала, а также в силу любых прямых и косвенных причин, которые потенциально могут привести к неработоспособности вашего устройства или любым другим проблемам с ним. Если вы не уверены в своих силах, сомневаетесь и т.п. - не выполняйте ничего из вышеописанного. Используя материалы из этой статьи вы соглашаетесь с тем, что ответственность за ваши действия несете вы и только вы.

среда, 10 июня 2015 г.

Huawei E8372 Wingle. Unboxing.

В этом посте я расскажу вам про новый 4G USB WiFi модем от Huawei - Huawei E8372 Wingle. Назвать этот пост обзором - у меня не поворачивается язык, т.к. собственно про что писать непонятно - скриншоты различных speedtest'ов будут неактуальны, т.к. реальная скорость приема / передачи данных зависит прежде всего от качества покрытия в месте использований и ограничений, накладываемых оборудованием оператора. Рассказывать про функционал? Он вообщем-то стандартный - устройство представляет из себя обычный 4G USB модем со встроенным WiFi модулем, т.е. можно вставить его в ПК / ноутбук и получать интернет через USB, плюс, тут же раздавать его по WiFi на другие устройства (либо же просто подключить его к зарядному устройству, или вставить в USB разъем в прикуривателе в автомобиле). Последний вариант, лично для меня представляется удобным, т.к. нет необходимости иметь множество разных устройств.

При постоянном использовании в ноутбуке, можно просто вынуть его, вставить в USB разъем в адаптер для прикуривателя, и использовать уже в качестве источника WiFi сигнала для устройств находящихся в авто, например, навигатора, планшета с функциями навигации и т.п. Вообщем, т.к. до полноценного обзора подобное описание "не дотягивает", я решил назвать пост Huawei E8372 Wingle. Unboxing. Многие "видеоблоггеры" снимают unboxing'и всего что только можно (вот, мы распаковываем новый фен или утюг и смотрим какие красивые инструкции положили в коробку ;)), вот и я сделаю примерно то же самое.


Мне достался Huawei E8372 от казахского оператора Altel. Стоимость этого чуда техники без подключения составляет 11990 тенге (KZT), что составляет примерно 3600 руб. На мой взгляд несколько дороговать, т.к. в России цена 4G роутеров начинается от 1200 руб., тот же ZTE MF90+ у Билайна, а в среднем же цена за подобного класса устройства колеблется от ~2000 до 3000 руб. Коробка от E8372 выполнена в фирменных цветах оператора и внешне напоминает ... упаковку от какой-то медицинской мази )) Это первое что пришло в голову, когда я увидел этот модем.


Внутри у нас находится само устройство, инструкция по быстрому подключению, а также мини рекламный проспект, расскзаывающий нам о возможностях приложения Huawei HiLink на котором я остановлюсь чуть подробнее позже:


Приложение это позволяет управлять Huawei E8372 с мобильного устройства на базе iOS или Android, например, просматривать статистику по траффику, отправлять SMS и т.п. Хотя все эти функции с равным успехом можно осуществить через web-интерфейс модема, возможно кому-то такой способ покажется более удобным.

Скачать Huawei HiLink:
Внешне Huawei E8372 ничем особенным не выделяется. Устройство выпускается в двух цветовых исполнениях - черном и белом. На передней панели расположены три индикатора - мобильная сеть, SMS и WiFi:


Сбоку имеются два разъема для подключения внешних антенн, ну и наконец сняв крышку мы можем увидеть слот для установки SIM-карты и microSD.

Основные характеристики
Размеры 94 х 30 х 14 мм
Вес 40 г
Цвет корпуса Белый/Черный
Поддерживаемые операционные системы Windows XP / Vista / 7 / 8, Mac OS
SIM-карта Стандартная SIM
SMS-сервис Да
Технические характеристики
4G (LTE 1800) Прием до 100 Мбит/с; Передача до 50 Мбит/с
3G (UMTS 850) Прием до 43,2 Мбит/с; Передача до 5,76 Мбит/с
2G (GSM 1800) До 236,8 кбит/с
Wi-Fi Да
Интерфейсы
Порты USB 2.0

Установка устройсва проходит без проблем и не требует от пользователя никаких усилий. В моем случае при установке Huawei E8372 Wingle в ноутбук с Windows 8.1 в система появился отдельный CDROM раздел, с которого сразу же запустилась программа установки. После чего CDROM раздел, как и следовало ожидать, пропал, а в системе появилась новое сетевое подключение (виртуальная сетевая карта RNDIS, связанная с модемом).

Набрав в адресной строке бразуера 192.168.8.1 (именно такой IP устройство имеет по умолчанию) - мы попадаем в web-интерфейс модема:


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


Единственное что бросилось в глаза - в штатном web-интерфейсе (WebUI) от Altel - отсутствует возможность отправки USSD запросов. Впрочем, это "ограничение" легко обходится прошивкой другого WebUI (т.к. модель новая, ссылок на альтернативные WebUI пока нет). Зато принимать и отправлять SMS можно "из коробки":


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

Ну и в качестве абстрактного примера покажу результаты SpeedTest'а со вставленной симкой Beeline в режиме 3G:


Протестировать подключение в режиме 4G/LTE сейчас, к сожалению, не представляется возможным, т.к. симки МТС сейчас под рукой нет, а Мегафон здесь ловится не очень хорошо. В любом случае результаты будут не совсем объективными, поэтому ориентироваться на них не стоит.

Возможные сценарии использования:
  • Благодаря сочетанию USB-модема и WiFi-роутера Huawei E8372 можно подключить к любому ПК, оснащенному USB-портом и при этом раздавать интернет на любые другие устройства.
  • Если USB порты в ПК заняты E8372 можно вставить в любое зарядное устройство с USB портом и подключиться к нему через WiFi. Этот же сценарий подходит для использования в автомобиле.
  • Благодаря компактности устройства - его удобно использовать повсеместно, в ноутбуке в офисе или в поездке, в стационарном компьютере, подключенным к зарядному устройству, при этом мобильным интернетом смогут пользоваться до 10-ти подключенных через WiFi устройств. Также с помощью Huawei E8372 можно открыть общий доступ к содержимому microSD-карты, вставленной в него.

p.s. Ну и одно субъективное сравнение я все же приведу. Правда мерять мы здесь будем не дБм, а "абстрактными палками". По-случаю у меня под рукой оказался ZTE MF90 от Билайн, и я решил проверить уровень сигнала на Huawei E8372 и ZTE MF90 (т.е. в одном и том же месте, с одной и той же SIM-картой Билайн):


Слева - ZTE MF90, справа - E8372. И хоть E8372 не отображает результат в дБм - результат думаю понятен. Даже на условной шкале приема из 5 делений MF90 показывает 2, а E8372 - полную шкалу.