57 lines
2.4 KiB
Markdown
57 lines
2.4 KiB
Markdown
# Pace V5471 42k Series
|
|
|
|
42k Series Custom firmware for Pace V5471 xDSL Modem
|
|
|
|
(c) 2016-2017 [Triple Oxygen](https://www.tripleoxygen.net)
|
|
|
|
## ATENÇÃO!
|
|
|
|
É sempre arriscado editar e criar imagens custom para o aparelho. Algumas situações são complicadas de resolver quando uma imagem problemática é gravada.
|
|
|
|
O uso dessas informações e ferramentas é **por sua conta e risco**.
|
|
|
|
### Como construir uma imagem
|
|
|
|
* Clone este repo
|
|
* Escolha a versão base da imagem e baixe o rootfs [daqui](https://www.tripleoxygen.net/files/devices/pace/v5471/firmware/custom/rootfs/)
|
|
* Coloque o rootfs baixado na raiz do projeto
|
|
* Execute (substitua a versão pelo número do rootfs (e.g.: 42006, 42007, ...). Aqui vamos usar a 42007 como exemplo):
|
|
```
|
|
sudo ./unpack_rootfs.sh 42007
|
|
```
|
|
* **Atenção**: é importante descompactar o rootfs como root para que os devs (/dev/) possam ser criados com sucesso!
|
|
* O conteúdo do rootfs estará em `squashfs-root`, faça suas modificações nesta pasta
|
|
* Execute
|
|
```
|
|
./build.sh 42007
|
|
```
|
|
* A imagem gerada estará em `build/42007/` com a extensão `.bin`
|
|
* Esta imagem ainda precisa ser corrigida utilizando o `firmInfo_r2.py`.
|
|
|
|
#### Inserção manual dos tamanhos das partições
|
|
|
|
**Script as is**. Infelizmente não tenho a versão mais atualizada do script `firmInfo_r2.py` (devo ter sobrescrito em algum momento) que faz tudo sozinho. Esta versão é mais "manual", quem puder atualizá-la, ficaria grato. É simples.
|
|
|
|
* Na pasta de saída `build/42007/`, obtenha o tamanho dos arquivos `rootfs.patched` e da imagem final `.bin` (e.g.: B14103-GVT-OXY-42007.bin)
|
|
* Exemplo
|
|
```
|
|
$ ls -l *.bin rootfs.patched
|
|
-rw-r--r-- 1 ... 14815232 Jul 11 21:09 B14103-GVT-OXY-42007.bin
|
|
-rw-r--r-- 1 ... 12677120 Jul 11 21:06 rootfs.patched
|
|
```
|
|
* Edite a imagem `.bin` de saída com um editor hexadecimal, indo nos offsets especificados e editando (sobrescreva, não insira!):
|
|
```
|
|
Offset 0x40c (4 bytes) - Tamanho total da imagem `.bin`, big-endian
|
|
Offset 0x57c (4 bytes) - Tamanho do `rootfs.patched`, big-endian
|
|
```
|
|
* Exemplo
|
|
```
|
|
Offset 0x40c = 00 E2 10 00 (14815232 em hex, big-endian)
|
|
Offset 0x57c = 00 C1 70 00 (12677120 em hex, big-endian)
|
|
```
|
|
* Salve o arquivo, execute o `firmInfo_r2.py` na imagem `.bin` alterada acima:
|
|
```
|
|
python firmInfo_r2.py B14103-GVT-OXY-42007.bin
|
|
```
|
|
* A imagem resultante com `-fixed-header.bin` estará pronta para ser gravada no modem.
|