docs: record Y2JB homebrew chain

This commit is contained in:
2026-10-02 20:41:52 +01:00
parent 38e68cf165
commit 0e48387f70
3 changed files with 148 additions and 6 deletions
+113 -6
View File
@@ -84,12 +84,38 @@ e o ELF loader ficou à escuta na 9021. Uma sondagem TCP posterior à porta 9021
teve sucesso. O utilizador enviou foto que confirma `Executed successfully` e
`Awaiting connection` na porta JS.
Depois de o utilizador fechar YouTube, uma sondagem TCP sem payload confirmou que
a consola permaneceu acessível e o ELF loader continuou ativo na porta 9021. Não
foi observado crash imediato durante este fecho controlado em 13.20.
O payload deixa OIDs de sysctl alterados até reboot; `kern.smp.cpus` devolve um
endereço de kernel em vez do número de CPUs. O texto do payload indica que a app
pode fechar com os pipes restaurados, mas essa segurança foi medida upstream em
12.60, não nesta consola 13.20. Não houve teste de estabilidade prolongada,
fecho da app, Remote Play ou homebrew neste boot. Não executar outro exploit de
kernel nesta sessão. Reiniciar normalmente antes de repetir o teste.
12.60. Este teste acrescenta apenas ausência de crash imediato e persistência da
9021 após um fecho em 13.20; não demonstra estabilidade prolongada. Não executar
outro exploit de kernel nesta sessão. Reiniciar normalmente antes de repetir.
## Cadeia homebrew após fechar YouTube
Com a porta 9021 ainda acessível, foram descarregados novamente e verificados os
artefactos registados abaixo. O envio ocorreu na ordem requerida:
1. kstuff-lite v1.11;
2. confirmação de `app.db` patching e patch SceShellUI Trophy bem-sucedido;
3. espera superior a quatro segundos;
4. ShadowMountPlus 1.7beta3.
ShadowMountPlus identificou FW 13.20 e confirmou controlo runtime KStuff, hooks
SceShellCore, watcher de ciclo de vida, quatro flags de sistema monitorizadas,
localização `pt-PT`, leitura de 58 títulos em `app.db`, biblioteca sincronizada
com zero jogos e API HTTP/JSON em `127.0.0.1:10101`. A configuração observada
manteve mounts read-only, force/persistent desativados e atualização AMPR
automática desativada. Foi criado `/data/.kstuff_noautomount` pela cadeia.
O teste demonstra o arranque KStuff → ShadowMountPlus a partir do loader obtido
por YouTube/Y2JB/Relapse. Não montou jogos ou imagens e não testou API, gameplay,
suspend/resume, shutdown, reboot ou estabilidade prolongada. As cópias em
`/var/tmp` foram removidas depois do envio.
## Artefactos verificados
@@ -148,9 +174,8 @@ foram preservados. Os ficheiros exatos dos testes foram removidos após uso.
## Pendentes
- Fecho controlado do YouTube em FW 13.20 e confirmação de que 9021 persiste.
- Teste homebrew neste boot; evidências anteriores de kstuff-lite/ShadowMount+
estão em [payload-evidence](payload-evidence/README.md).
- Montagem read-only de uma imagem conhecida e teste de gameplay/lifecycle.
- Suspend/resume, shutdown e reboot com a cadeia ativa.
- Teste Remote Play, após rever uma forma de fake sign-in que não afete slot 1.
- Autoloader itsPLK v0.9.1 não tem kernel exploit para 13.20. v1.0.0-dev
integra Relapse 10.20–13.60 mas é experimental, não instalado; rever hash,
@@ -158,4 +183,86 @@ foram preservados. Os ficheiros exatos dos testes foram removidos após uso.
- PKG Manager corre em memória (8844 UI, 18842 Direct Install) e precisa de
reenvio depois de reboot. A UI respondeu HTTP 200 antes do reboot deste teste.
## Integração proposta: Y2JB Autoloader e Payload Manager
O desenho preferido mantém responsabilidades separadas:
```text
YouTube
→ Y2JB Autoloader
→ Relapse para FW 13.20
→ ELF loader TCP 9021
→ Payload Manager no net-utils01
→ kstuff-lite
→ espera e confirmação
→ ShadowMountPlus
```
O Y2JB Autoloader fica responsável apenas pelo exploit userland, seleção do
exploit de kernel, execução do Relapse e arranque do ELF loader. O Payload
Manager externo continua responsável pelo catálogo, fontes, releases, versões,
compatibilidade, downloads, tamanho, SHA-256, dependências, ordem, envio e logs.
KStuff e ShadowMountPlus não devem ser colocados no `autoload.txt` quando esta
arquitetura estiver ativa, porque isso contornaria a política e os registos do
manager.
### Loader loopback e acesso externo
O autoloader usa por defeito um ELF loader que aceita ligações apenas da própria
PS5. Essa opção é segura para payloads carregados internamente, mas impede o
manager em `192.168.20.30` de enviar para `192.168.40.14:9021`. A integração
externa exige uma variante revista do loader que escute na interface LAN. A
proteção passa então a depender da firewall existente, limitada a:
```text
192.168.20.30 → 192.168.40.14 TCP 9021
```
Nenhum outro host deve alcançar essa porta. Antes de adotar a variante LAN,
confirmar o binário, o hash, o bind efetivo e o comportamento após fechar
YouTube. Não iniciar dois ELF loaders concorrentes nem reenviar Relapse no mesmo
boot.
### Perfil de execução no manager
O perfil inicial deve representar explicitamente a cadeia validada:
```text
1. kstuff-lite v1.11
2. aguardar confirmação de arranque
3. esperar no mínimo 4000 ms
4. ShadowMountPlus 1.7beta3
```
O manager deve rejeitar qualquer artefacto cujo tamanho ou SHA-256 não coincida
com o registo aprovado. `enabled` e `favorite` são preferências do utilizador e
ficam separados da evidência imutável da fonte. ShadowMountPlus declara KStuff
como dependência e não pode ser enviado se a etapa anterior não tiver confirmação.
### Estado da consola e sessões
Uma porta 9021 aberta prova apenas que existe um listener. A primeira versão do
manager deve combinar o output recebido no envio, padrões de sucesso conhecidos
e confirmação manual quando não existir uma API de estado fiável. Estados úteis:
```text
offline
loader-disponivel
kstuff-confirmado
shadowmount-confirmado
cadeia-concluida
estado-desconhecido
```
O estado runtime deve pertencer a uma sessão/boot da consola. Depois de reboot,
perda de ligação ou resultado ambíguo, o manager limpa as afirmações de payloads
ativos e volta a `estado-desconhecido` ou `offline`. Histórico e evidência de
execuções permanecem, mas não servem como prova do boot atual.
Cada tentativa deve guardar timestamp, consola, firmware, payload, versão,
digest, origem final do download, resultado e operador. Não guardar credenciais
nos logs. O manager deve apresentar claramente que o autoloader v1.0.0-dev é
experimental e que o fluxo manual documentado continua a ser a referência de
comparação para o primeiro teste A/B.
Este registo é documental; não exigiu rebuild nem deployment do runtime Docker.