TP Link Router M7350 v3
ЦП в V3: Qualcomm MSM 9625 (дерево сплюснутого устройства), модель: Qualcomm MSM 9625V2.1 MTP
Позже есть изменения в оборудовании:
Присоединяйтесь к нашему каналу Matrix
./system/etc/{passwd-,shadow}
./system/etc/lighttpd.user
./system/sbin
./META-INF/com/google/android/updater-script
SOC: Qualcomm MDM9225
Краткое примечание на терминах Qualcomm:
Flash: 2 Гбит (256 МБ) Winbond W71NW20GF3FW
Мобильная беспроводная связь: Skyworks Sky77629
Основываясь на официальных источниках от kernel.org и с кодом поставщика, мы работаем rsync
тем, чтобы построить это в 2024 году.
https://github.com/m0veax/tplink_m7350-kernel
Конфигурация с реального устройства: kernel/config
Если вы удалите батарею и плагин USB, LSUSB показывает:
Bus 001 Device 031: ID 18d1:d00d Google Inc. Xiaomi Mi/Redmi 2 (fastboot)
> fastboot devices
MDM9625 fastboot
Выше исчезают через несколько секунд.
Если вы загрузите нормально, это показывает:
Bus 001 Device 032: ID 2357:0005 TP-Link M7350 4G Mi-Fi Router
Введите Fastboot без Bootloop
fastboot reboot bootloader
Qualcomm документирует свои команды Fastboot.
Следующие команды getvar
дают результаты:
переменная | результат |
---|---|
version | 0.5 |
kernel | lk |
max-download-size | 0x2f00000 |
product | MDM9625 |
serialno | MDM9625 |
Дисплей прикреплен к шине SPI через контроллер по 0xf992_4000
. Мы могли бы извлечь эту информацию с деревьев устройств.
Строка контроллера SPI COMPAT IS qcom,spi-qup-v2
. В ядре поставщика драйвером SPI является drivers/spi/spi_qsd.c
. В Mainline Linux это drivers/spi/spi-qup.c
.
OLED -дисплей называется
tplink,oleds90319
(узел qcom,spi-qup-v2
)tp,oled_pt
-> qcom,oled_s90319_pt
Действительно, сторона дисплея (белая рама) читает: BLB-S90319B-1
В источниках ядра поставщика нет такой вещи, и Google или Bing ничего не дают. Так что неясно, что такое драйвер дисплея. Это выглядит как монохромный дисплей 128x128, похожий на SSD1306 / SH1107 .
От конфигурации ядра мы сбросили:
CONFIG_OLED=y
# CONFIG_OLED_SSD1306_PT is not set
CONFIG_OLED_S90319_PT=y
Двоичный /usr/bin/oledd
запускается через /etc/init.d/start_oledd
. Он обращается к OLED -дисплею через SYSFS:
/sys/class/display/oled/backlight_on
/sys/class/display/oled/panel_on
/sys/class/display/oled/oled_buffer
Мы можем повторить 1
в файлы *_on
0
воспроизведения с дисплеем. И мы можем самостоятельно написать в буфер, хотя то, как он работает, еще не ясно. Игра вокруг показала, что панель дисплея действительно поддерживает цвета. ?
Если вы хотите повеселиться:
/etc/init.d/start_oledd stop
echo 1 > /sys/class/display/oled/backlight_on
echo 1 > /sys/class/display/oled/panel_on
cat /dev/random > /sys/class/display/oled/oled_buffer
Это бесконечно рисует прямоугольники и покажет пиксельный мусор. Нажмите Ctrl+C, чтобы остановиться.
spi@f9924000 {
compatible = "qcom,spi-qup-v2";
reg = <0xf9924000 0x1000>;
interrupts = <0x00 0x60 0x00>;
spi-max-frequency = <0x17d7840>;
#address-cells = <0x01>;
#size-cells = <0x00>;
gpios = <0x02 0x07 0x00 0x02 0x05 0x00 0x02 0x04 0x00>;
cs-gpios = <0x02 0x06 0x00>;
qcom-spi-oled@1 {
compatible = "tplink,oleds90319";
reg = <0x01>;
spi-max-frequency = <0x927c00>;
};
};
oled {
compatible = "tp,oled_pt";
qcom,oled_s90319 {
compatible = "qcom,oled_s90319_pt";
qcom,oled-cs-gpio = <0x02 0x06 0x00>;
qcom,oled-rsx-gpio = <0x02 0x15 0x00>;
qcom,oled-reset-gpio = <0x02 0x14 0x00>;
qcom,oled-vdd0-gpio = <0x02 0x16 0x00>;
qcom,oled-vdd1-gpio = <0x02 0x17 0x00>;
qcom,oled-boost-en-gpio = <0x02 0x3d 0x00>;
};
};
[ 2.042245] s90319_spi_probe successed!
[ 2.045067] oled_90319_panel_init success.
[ 2.049204] oled_probe
[ 2.051692] oled_s90319_probe
[ 2.054716] oled init success!
Устройство, кажется, запускает Android, без /dev/binder
. Вы можете получить прошивку здесь:
Страница поддержки TP-Link
Прошивка не зарисована. Вы можете более глубоко взглянуть на конфигурации.
binwalk boot.img
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 Android bootimg, kernel size: 3564792 bytes, kernel addr: 0x308000, ramdisk size: 0 bytes, ramdisk addr: 0x308000, product name: ""
2048 0x800 Linux kernel ARM boot executable zImage (little-endian)
18403 0x47E3 gzip compressed data, maximum compression, from Unix, last modified: 1970-01-01 00:00:00 (null date)
3567616 0x367000 Qualcomm device tree container, version: 1, DTB entries: 55
3569664 0x367800 Flattened device tree, size: 49302 bytes, version: 17
3620864 0x374000 Flattened device tree, size: 49218 bytes, version: 17
3672064 0x380800 Flattened device tree, size: 49088 bytes, version: 17
3721216 0x38C800 Flattened device tree, size: 48730 bytes, version: 17
3770368 0x398800 Flattened device tree, size: 49193 bytes, version: 17
3821568 0x3A5000 Flattened device tree, size: 48516 bytes, version: 17
3870720 0x3B1000 Flattened device tree, size: 47693 bytes, version: 17
./system/etc/{passwd-,shadow}
root:C98ULvDZe7zQ2:0:0:root:/home/root:/bin/sh
Быстрый поиск хэша дает нам oelinux123
в качестве возможного значения. Нам нужно проверить это позже.
Источник: https://svson.xyz/posts/zte-dongle/part4/
./system/etc/lighttpd.user
admin:admin
./system/sbin
Прошивка, кажется, содержит adbd
. Нам нужно найти способ начать его.
./META-INF/com/google/android/updater-script
Пути к файлам и создание символических ссылок для AutoStart ECT. Давайте попробуем изменить это, чтобы активировать ADB.
В связанном потоке форума 4PDA находится POC для удаленного выполнения кода, который позволяет запустить демон Telnet. Сейчас связаны только сценарии Windows. Мы должны создать ShellScript, чтобы вызвать его.
Подробнее об этом здесь
Мы реализовали инструмент командной строки Rust и сценарий оболочки на основе сгиба.
С Open.Sh вход в систему выполняется автоматически.
Существует также реализация Ruby https://github.com/ecdsa521/tpown/tree/main
Файлы .DTB HW Rev V3 и V4 хранятся в DTB_FILES и могут быть визуализированы с помощью DTVIS
На 4PDA были опубликованы изображения на пункты в других ревизиях. Может быть таким же для нашего устройства. Посмотрите здесь
4PDA нашла несколько способов резервного копирования установленной прошивки.
https://4pda.to/forum/index.php?showtopic=669936&view=findpost&p=110738476
usb_composition
902B
nyy
Постоянное соединение ADBD должно быть установлено сейчас
По кабелю на вашем клиенте:
adb shell
После перезагрузки точка доступа, кажется, снижается. Итак, вам нужно снова деактивировать ADBD
adb shell
usb_composition
tplink
nyy
adbd