TP Link Router M7350 V3
CPU em V3: Qualcomm MSM 9625 (árvore de dispositivo achatada), Modelo: Qualcomm MSM 9625V2.1 MTP
Há revisões posteriores de hardware:
Junte -se ao nosso canal Matrix
./system/etc/{passwd-,shadow}
./system/etc/lighttpd.user
./system/sbin
./META-INF/com/google/android/updater-script
SOC: Qualcomm Mdm9225
Nota rápida nos termos da Qualcomm:
Flash: 2Gbit (256MB) WinBond W71NW20GF3FW
Mobile Wireless: SkyWorks Sky77629
Com base nas fontes oficiais do Kernel.org e com o Código do Fornecedor rsync
ED, estamos trabalhando para que isso construa em 2024.
https://github.com/m0veax/tplink_m7350-kernel
Uma configuração de um dispositivo real: kernel/config
Se você remover a bateria e o plug -in USB, o LSUSB mostra:
Bus 001 Device 031: ID 18d1:d00d Google Inc. Xiaomi Mi/Redmi 2 (fastboot)
> fastboot devices
MDM9625 fastboot
Acima desaparece depois de alguns segundos.
Se você inicializa normal, ele mostra:
Bus 001 Device 032: ID 2357:0005 TP-Link M7350 4G Mi-Fi Router
Digite Fastboot sem bootloop
fastboot reboot bootloader
Qualcomm documenta seus comandos Fastboot.
Os seguintes comandos getvar
produzem resultados:
variável | resultado |
---|---|
version | 0.5 |
kernel | lk |
max-download-size | 0x2f00000 |
product | MDM9625 |
serialno | MDM9625 |
A tela é conectada ao barramento SPI através do controlador em 0xf992_4000
. Poderíamos extrair essas informações das árvores do dispositivo.
A sequência Compat SPI Controller é qcom,spi-qup-v2
. No kernel do fornecedor, o driver SPI é drivers/spi/spi_qsd.c
. No Linux Mainline, é drivers/spi/spi-qup.c
.
A tela OLED é chamada
tplink,oleds90319
(Nó atrás da qcom,spi-qup-v2
)tp,oled_pt
-> qcom,oled_s90319_pt
De fato, o lado da tela (quadro branco) diz: BLB-S90319B-1
Não existe tal coisa nas fontes do kernel do fornecedor, nem o Google ou o Bing produzem nada. Portanto, não está claro o que é exatamente o driver de exibição. Parece uma tela monocromática de 128x128, semelhante a SSD1306 / SH1107 .
Da configuração do kernel, largamos:
CONFIG_OLED=y
# CONFIG_OLED_SSD1306_PT is not set
CONFIG_OLED_S90319_PT=y
O binário /usr/bin/oledd
é iniciado via /etc/init.d/start_oledd
. Ele acessa a tela OLED via SYSFS:
/sys/class/display/oled/backlight_on
/sys/class/display/oled/panel_on
/sys/class/display/oled/oled_buffer
Podemos ecoar 1
aos arquivos *_on
0
tocar com a tela. E podemos escrever para o buffer, embora como ele funcione ainda não esteja claro. Brincar mostrou que o painel de exibição realmente suporta cores. ?
Se você quiser se divertir:
/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
Isso desenhará incessantemente retângulos e mostrará lixo de pixel. Pressione Ctrl+C para parar.
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!
O dispositivo parece executar o Android, sem /dev/binder
. Você pode obter o firmware aqui:
Página de suporte TP-Link
O firmware não é criptografado. Você é capaz de dar uma olhada mais profunda nas configurações.
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
A pesquisa rápida pelo hash nos dá oelinux123
como um valor possível. Precisamos verificar isso mais tarde.
Fonte: https://svson.xyz/postss/zte-dongle/part4/
./system/etc/lighttpd.user
admin:admin
./system/sbin
O firmware parece conter um adbd
. Precisamos encontrar uma maneira de iniciá -lo.
./META-INF/com/google/android/updater-script
Caminhos para arquivos e criação de links simbólicos para o AutoStart ECT. Vamos tentar modificar isso para ativar o ADB.
No encadeamento do fórum 4PDA vinculado, há um POC para uma execução de código remoto vuln, que permite iniciar o daemon telnet. Existem apenas scripts do Windows vinculados agora. Devemos construir um conchado para invocá -lo.
Mais sobre isso aqui
Implementamos uma ferramenta de linha de comando de ferrugem e um script de shell baseado em curl.
Com open.sh, o login é feito automaticamente.
Há uma implementação do Ruby também https://github.com/ecdsa521/tpown/tree/main
Os arquivos .dtb de HW Rev V3 e V4 são armazenados em dtb_files e podem ser visualizados com DTVIs
Houve imagens publicadas no 4PDA para apontar em outras revisões. Pode ser o mesmo para o nosso dispositivo. Dê uma olhada aqui
O 4PDA encontrou várias maneiras de fazer backup do firmware instalado.
https://4pda.to/forum/index.php?showtopic=669936&view=findPost&p=110738476
usb_composition
902B
nyy
A conexão persistente do ADBD deve estar ebrada agora
Por cabo em seu cliente:
adb shell
Após uma reinicialização, o ponto de acesso parece estar inativo. Então você precisa desativar o ADBD novamente
adb shell
usb_composition
tplink
nyy
adbd