TP Link Router M7350 V3
CPU in V3: Qualcomm MSM 9625 (Abflacher Gerätebaum), Modell: Qualcomm MSM 9625V2.1 MTP
Es gibt spätere Hardware -Revisionen:
Treten Sie unserem Matrixkanal bei
./system/etc/{passwd-,shadow}
./system/etc/lighttpd.user
./system/sbin
./META-INF/com/google/android/updater-script
SOC: Qualcomm MDM9225
Kurzer Hinweis zu Qualcomm -Begriffen:
Blitz: 2Gbit (256 MB) Winbond W71NW20GF3FW
Mobile Wireless: Skyworks Sky77629
Basierend auf den offiziellen Quellen von kernel.org und mit dem Vendor Code rsync
ED arbeiten wir daran, dies 2024 zu erstellen.
https://github.com/m0veax/tplink_m7350-kernel
Eine Konfiguration aus einem realen Gerät: kernel/config
Wenn Sie den Akku und das Plugin USB entfernen, zeigt LSUSB:
Bus 001 Device 031: ID 18d1:d00d Google Inc. Xiaomi Mi/Redmi 2 (fastboot)
> fastboot devices
MDM9625 fastboot
Oben verschwindet nach ein paar Sekunden.
Wenn Sie normal booten, zeigt es:
Bus 001 Device 032: ID 2357:0005 TP-Link M7350 4G Mi-Fi Router
Geben Sie Fastboot ohne Bootloop ein
fastboot reboot bootloader
Qualcomm dokumentiert ihre Fastboot -Befehle.
Die folgenden Befehle getvar
liefern Ergebnisse:
Variable | Ergebnis |
---|---|
version | 0.5 |
kernel | lk |
max-download-size | 0x2f00000 |
product | MDM9625 |
serialno | MDM9625 |
Das Display ist über den Controller unter 0xf992_4000
am SPI -Bus angeschlossen. Wir könnten diese Informationen aus den Gerätebäumen extrahieren.
Die SPI-Controller-Compat-Zeichenfolge ist qcom,spi-qup-v2
. Im Verkäufer Kernel ist der SPI -Treiber drivers/spi/spi_qsd.c
. In Mainline Linux handelt es sich drivers/spi/spi-qup.c
.
Das OLED -Display heißt
tplink,oleds90319
(Knoten hinter qcom,spi-qup-v2
)tp,oled_pt
-> qcom,oled_s90319_pt
In der Tat lautet die Seite des Displays (weißer Rahmen): BLB-S90319B-1
Es gibt weder so etwas in den Kernelquellen des Verkäufers noch Google oder Bing etwas. Es ist also unklar, was genau der Display -Treiber ist. Es sieht aus wie ein 128x128 -Monochrom -Display, ähnlich wie SSD1306 / SH1107 .
Von der Kernel -Konfiguration, die wir abgeladen haben:
CONFIG_OLED=y
# CONFIG_OLED_SSD1306_PT is not set
CONFIG_OLED_S90319_PT=y
Das binäre /usr/bin/oledd
wird über /etc/init.d/start_oledd
gestartet. Es greift über SYSFs auf das OLED -Display zu:
/sys/class/display/oled/backlight_on
/sys/class/display/oled/panel_on
/sys/class/display/oled/oled_buffer
Wir können 1
in die *_on
-Dateien wiedergeben 0
um mit der Anzeige abzuspielen. Und wir können dem Puffer selbst schreiben, obwohl es noch nicht klar ist, wie es funktioniert. Das Spielen zeigte, dass das Display -Panel die Farben wirklich unterstützt. ?
Wenn Sie Spaß haben möchten:
/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
Dies zeichnet endlos Rechtecke und zeigt Pixelmüll. Drücken Sie Strg+C, um zu stoppen.
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!
Das Gerät scheint Android ohne /dev/binder
auszuführen. Sie können die Firmware hier erhalten:
TP-Link-Support-Seite
Die Firmware ist nicht kryptiert. Sie können die Konfigurationen tiefer ansehen.
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
Die schnelle Suche nach dem Hash gibt uns oelinux123
als möglicher Wert. Wir müssen das später überprüfen.
Quelle: https://svson.xyz/posts/zte-dongle/part4/
./system/etc/lighttpd.user
admin:admin
./system/sbin
Firmware scheint eine adbd
zu enthalten. Wir müssen einen Weg finden, um damit zu beginnen.
./META-INF/com/google/android/updater-script
Pfade zu Dateien und Erstellen von Symlinks für Autostart ECT. Versuchen wir, dies zu ändern, um ADB zu aktivieren.
Im verknüpften 4PDA -Forum -Thread befindet sich ein POC für eine Remote -Code -Ausführung, mit der der Telnet -Daemon gestartet werden kann. Im Moment sind nur Windows -Skripte verknüpft. Wir sollten ein Shellscript erstellen, um es aufzurufen.
Mehr dazu hier
Wir haben ein Rust -Befehlszeilen -Tool und ein Curl -basiertes Shell -Skript implementiert.
Mit open.sh die Anmeldung erfolgt automatisch.
Es gibt eine Ruby -Implementierung auch https://github.com/ecdsa521/tpown/tree/main
Die .dtb -Dateien von HW Rev V3 und V4 werden in dtb_files gespeichert und können mit DTIS visualisiert werden
Auf 4pda wurden Bilder in einer anderen Revisionen veröffentlicht. Könnte für unser Gerät gleich sein. Schauen Sie sich hier an
4PDA hat verschiedene Möglichkeiten gefunden, die installierte Firmware zu sichern.
https://4pda.to/forum/index.php?showtopic=669936&view=findpost&p=110738476
usb_composition
902B
nyy
Die anhaltende ADBD -Verbindung sollte jetzt etabliert werden
Pro Kabel für Ihren Kunden:
adb shell
Nach einem Neustart scheint der Zugangspunkt unterzubringen. Sie müssen also ADBD erneut deaktivieren
adb shell
usb_composition
tplink
nyy
adbd
zu starten