Skip to content

Commit fdf5d5b

Browse files
committed
Update workflows
1 parent 2c78f75 commit fdf5d5b

4 files changed

Lines changed: 239 additions & 60 deletions

File tree

‎.github/workflows/update-badge.yml‎

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Nome da nossa automação
2+
name: Update All Firmware Badges
3+
4+
on:
5+
# Aciona a automação em qualquer push para a branch 'main'
6+
push:
7+
branches:
8+
- main
9+
10+
# Adiciona a permissão de escrita para o bot poder fazer o commit
11+
permissions:
12+
contents: write
13+
14+
jobs:
15+
update-badge:
16+
# Não roda o job se o último commit foi feito pelo bot, para evitar loops infinitos
17+
if: "${{ !contains(github.event.head_commit.message, 'Bot:') }}"
18+
19+
runs-on: ubuntu-latest
20+
21+
# A MATRIZ: O cérebro da operação.
22+
# Define as configurações para cada placa que queremos atualizar.
23+
strategy:
24+
matrix:
25+
device:
26+
# Configuração para a primeira placa
27+
- name: tdisplay
28+
file: atualizar_jade_tdisplay.md
29+
# Configuração para a segunda placa
30+
- name: tdisplays3
31+
file: atualizar_jade_tdisplays3.md
32+
33+
steps:
34+
# 1. Baixa o código do seu repositório
35+
- name: Checkout code
36+
uses: actions/checkout@v4
37+
38+
# 2. A NOVA LÓGICA: Acha a última versão olhando as pastas
39+
- name: Get latest firmware version for ${{ matrix.device.name }}
40+
id: get_version
41+
run: |
42+
# Procura na pasta específica da placa, ordena por versão e pega a última
43+
DEVICE_PATH="firmware/${{ matrix.device.name }}"
44+
if [ -d "$DEVICE_PATH" ]; then
45+
LATEST_VERSION=$(ls -v "$DEVICE_PATH" | tail -n 1)
46+
else
47+
LATEST_VERSION=""
48+
fi
49+
50+
if [ -z "$LATEST_VERSION" ]; then
51+
LATEST_VERSION="not-found"
52+
fi
53+
54+
echo "Found version for ${{ matrix.device.name }}: $LATEST_VERSION"
55+
# Prepara a versão para o formato do badge (shields.io usa '--' para '-')
56+
BADGE_VERSION=$(echo $LATEST_VERSION | sed 's/-/--/g')
57+
58+
# Salva as variáveis para os próximos passos
59+
echo "version=$LATEST_VERSION" >> $GITHUB_OUTPUT
60+
echo "badge_version=$BADGE_VERSION" >> $GITHUB_OUTPUT
61+
62+
# 3. Atualiza o arquivo .md específico da placa
63+
- name: Update ${{ matrix.device.file }}
64+
run: |
65+
# Usa o 'sed' para encontrar a linha do badge e substituir a versão no arquivo correto
66+
sed -i "s|img.shields.io/badge/Firmware-.*-blue|img.shields.io/badge/Firmware-${{ steps.get_version.outputs.badge_version }}-blue|g" ${{ matrix.device.file }}
67+
68+
# 4. Faz o commit e push das mudanças (se houver alguma)
69+
- name: Commit and push if changed
70+
uses: stefanzweifel/git-auto-commit-action@v5
71+
with:
72+
# Mensagem de commit dinâmica, informando qual placa foi atualizada
73+
commit_message: "Bot: Auto-update badge for ${{ matrix.device.name }} to v${{ steps.get_version.outputs.version }}"
74+
branch: main
75+
# O padrão de arquivo a ser verificado para commit também é dinâmico
76+
file_pattern: ${{ matrix.device.file }}

‎.github/workflows/update-readme-badge.yml‎

Lines changed: 0 additions & 60 deletions
This file was deleted.
File renamed without changes.

‎atualizar_jade_tdisplay3.md‎

Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
# 🔱 Atualizador Jade Wallet com Secure Boot
2+
3+
![Firmware](https://img.shields.io/badge/Firmware-1.0.36--87--wbatt-blue) ![Secure Boot](https://img.shields.io/badge/Secure%20Boot-V1-green) ![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)
4+
5+
<p align="center">
6+
<a href="" target="_blank" rel="noopener noreferrer">
7+
<img src="https://raw.githubusercontent.com/cateim/jade-diy/main/assets/jade/logos/jade_web/jade_logo_white_on_transparent_rgb.svg" alt="Logo da Jade" width="250"/>
8+
</a>
9+
</p>
10+
11+
Uma ferramenta web simples e oficial para atualizar o firmware da sua **Jade Wallet montada por nós**, focada em dispositivos que já possuem **Secure Boot ativado**. Chega de linha de comando, chega de complicação. Tudo direto do seu navegador.
12+
13+
## ⚠️ Para Quem é Esta Ferramenta?
14+
15+
Esta ferramenta foi feita para um propósito **muito específico**. Leia com atenção para saber se ela é para você:
16+
17+
* ✅ **Você comprou uma Jade Wallet conosco** que já veio com **Secure Boot ativado**.
18+
* ✅ Você quer **ATUALIZAR** o firmware para uma nova versão oficial que estamos disponibilizando.
19+
* ✅ Você está ciente de que o dispositivo foi selado com uma chave de segurança única.
20+
21+
Esta ferramenta **NÃO SERVE** para:
22+
23+
* ❌ Ativar o Secure Boot pela primeira vez.
24+
* ❌ "Destravar" uma placa caso algo dê errado (a chave de segurança é permanente).
25+
* ❌ Instalar um firmware que não seja o oficial fornecido por nós.
26+
27+
## ✨ Como Usar
28+
29+
Atualizar sua Jade Wallet nunca foi tão fácil. Sério.
30+
31+
## 🔁 Atualizar Jade Wallet
32+
33+
Guia direto para atualizar o firmware da sua Jade DIY. Tenha os **3 arquivos `.bin`** prontos e um cabo USB. ⚠️ Leia atentamente antes de começar.
34+
35+
## ⚠️ Atenção: Importante!!!
36+
37+
Este firmware da Jade Wallet está configurado com **Secure Boot ativo**.
38+
👉 Isso significa que **somente este firmware pode ser usado** para atualizar sua carteira.
39+
⚠️ **Se tentar instalar qualquer outro firmware diferente, a Jade pode travar de forma irreversível, resultando em perda total da wallet.**
40+
41+
Mantenha este firmware como a única opção de atualização para evitar problemas graves. ❌💀
42+
43+
## ✅ Checklist antes de começar
44+
- Cabo USB funcionando (não só carregamento). 🔌
45+
- Os **3 arquivos `.bin`** baixados (veja link abaixo). ⬇️
46+
- PC com navegador compatível (Chrome/Edge recomendados). 🖥️
47+
48+
**Baixe os arquivos**:
49+
[**Firmware Jade Wallet**](https://github.com/CaTeIM/jade-diy/tree/main/firmware)
50+
51+
## 1️⃣ Conectar ao ESP TOOL (Web)
52+
1. Abra o site: https://espressif.github.io/esptool-js
53+
2. Conecte sua ESP32 ao PC via USB. 🔌
54+
3. Em **`Baudrate`** selecione **`115200`** e clique **`Connect`**.
55+
56+
<p align="center">
57+
<img src="https://raw.githubusercontent.com/cateim/jade-diy/main/assets/update/step_1.webp" alt="Connect no ESP Tool — passo 1" />
58+
</p>
59+
60+
## 2️⃣ Selecionar porta / parear
61+
Quando clicar **`Connect`**, escolha a porta/dispositivo que apareceu e confirme **Conectar**. 🔗
62+
63+
<p align="center">
64+
<img src="https://raw.githubusercontent.com/cateim/jade-diy/main/assets/update/step_2.webp" alt="Selecionar dispositivo/porta" />
65+
</p>
66+
67+
**Se não aparecer porta:**
68+
- Troque o cabo USB.
69+
- Tente outra porta USB.
70+
- Se a placa tiver, segure o botão `BOOT` enquanto conecta (dependendo da placa). 🔧
71+
72+
## 3️⃣ Confirmação de conexão
73+
Tela preta mostrará logs e vai aparecer **`Connected to device`** no topo quando OK. 🟢
74+
75+
<p align="center">
76+
<img src="https://raw.githubusercontent.com/cateim/jade-diy/main/assets/update/step_3.webp" alt="Connected to device" />
77+
</p>
78+
79+
## 4️⃣ Adicionar os 3 arquivos
80+
O site abre com 1 slot só. Clique **`Add File`** até ter **3 vagas**.
81+
82+
<p align="center">
83+
<img src="https://raw.githubusercontent.com/cateim/jade-diy/main/assets/update/step_4.webp" alt="Adicionar 4 arquivos" />
84+
</p>
85+
86+
## 5️⃣ Carregar arquivos e definir Flash Address
87+
Coloque cada arquivo na ordem abaixo (use **`Escolher arquivo`**):
88+
89+
📁 **Arquivos (ordem):**
90+
```py
91+
jade-signed.bin
92+
ota_data_initial.bin
93+
partition-table.bin
94+
```
95+
96+
⚙️ **Flash Addresses (defina exatamente):**
97+
98+
| Flash Address | File |
99+
| :------------ | :----------------------- |
100+
| ~~`0x1000`~~ | ~~`bootloader.bin`~~ |
101+
| `0x10000` | `jade-signed.bin` |
102+
| `0xE000` | `ota_data_initial.bin` |
103+
| `0x9000` | `partition-table.bin` |
104+
105+
<p align="center">
106+
<img src="https://raw.githubusercontent.com/cateim/jade-diy/main/assets/update/step_5.webp" alt="Definir flash addresses" />
107+
</p>
108+
109+
## 6️⃣ Programar (gravar)
110+
Clique **`Program`** para iniciar a gravação. ▶️
111+
112+
**IMPORTANTE:** **NÃO** desconecte o cabo nem desligue o computador enquanto o processo estiver em andamento. ⚠️
113+
Desconectar pode danificar a placa e torná-la inutilizável. ❌
114+
115+
<p align="center">
116+
<img src="https://raw.githubusercontent.com/cateim/jade-diy/main/assets/update/step_6.webp" alt="Clique Program para iniciar" />
117+
</p>
118+
119+
## 7️⃣ Finalização
120+
Acompanhe o log na tela. Quando aparecer **"Leaving…"** o dispositivo reinicia sozinho. Se não reiniciar, pressione o botão de reset na placa. 🔁
121+
122+
Ao reiniciar corretamente, o seu dispositivo estará com a Jade instalada. 💎
123+
124+
<p align="center">
125+
<img src="https://raw.githubusercontent.com/cateim/jade-diy/main/assets/update/step_7.webp" alt="Processo concluído" />
126+
</p>
127+
128+
## 🔧 Problemas comuns (rápido)
129+
- **Não conecta:** troque o cabo, tente outra porta, veja drivers no PC.
130+
- **Program travou:** cancele, reconecte e tente novamente.
131+
- **Não inicia depois:** pressione `RESET`/botão lateral.
132+
133+
## 🔐 A Regra de Ouro do Secure Boot
134+
135+
Pensa assim: quando ativamos o Secure Boot na sua Jade, a placa e a nossa chave privada (`.pem`) se "casaram" para sempre. 💍
136+
O chip guarda uma "impressão digital" da nossa chave e nunca mais aceitará um firmware que não tenha a assinatura **exata** dela.
137+
138+
* **Tentou usar um firmware de outra pessoa?** A placa vai rejeitar com o erro `secure boot check fail`.
139+
* **Aconteceu um problema grave e a placa travou?** Infelizmente, ela virou um peso de papel. O Secure Boot é uma via de mão única e não permite recuperação.
140+
141+
**Nós garantimos que o firmware fornecido aqui é seguro e assinado com a chave correta para o seu dispositivo.**
142+
143+
## 🛠️ Para Usuários Avançados (Desenvolvedores e Montadores)
144+
145+
Quer customizar ou adicionar seus próprios firmwares?
146+
147+
1. **Estrutura de Pastas:** O projeto espera a seguinte organização:
148+
149+
```
150+
📂 firmware/
151+
📂 [nome_da_placa]/
152+
📂 [versao_do_firmware]/
153+
🔐 jade-signed.bin
154+
📦 ota_data_initial.bin
155+
📦 partition-table.bin
156+
📄 manifest.json
157+
```
158+
159+
## 📌 Créditos
160+
161+
* A **Blockstream**, por criar e manter o projeto incrível que é a Jade.
162+
* A galera do **ESPHome** e **`esp-web-tools`**, que criaram a magia de flashear direto do navegador que usamos aqui.
163+
* Ao DIG P2P pois esse guia foi inspirado nesse arquivo: [Instalação e manuseio Passo-a-passo Jade DIY](https://medium.com/@digp2p/instala%C3%A7%C3%A3o-e-manuseio-passo-a-passo-jade-diy-b20220df5970)

0 commit comments

Comments
 (0)