Home Homebrew Nuovi sviluppi per il plugin taiHEN

[Scena PS Vita] Nuovi sviluppi per il plugin taiHEN

105
0

Il developer cuevavirus rimette mano sullo sviluppo del plugin taiHEN introducendo il supporto multi-fw, il metodo di ripristino, la riduzione dell’uso della memoria e diverse correzioni di bug, il framework ci ha permesso di caricare patch personalizzate nel kernel della PlayStation Vita.

Quando viene caricato con un exploit del kernel, il plugin funge da substrate comune per l’applicazione delle patch al sistema. TaiHEN offre principalmente tre servizi:

  • Disattiva i controlli della firma del codice per consentire di eseguire codice non firmato.
  • Espone il kernel alle syscall peek/poke per le applicazioni utente e consente il caricamento dei moduli del kernel.
  • Ancora più importante, fornisce un’API per l’aggancio e la sostituzione di funzioni basate sul sostituto.

L’ultimo punto indica che gli sviluppatori potranno aggiungere patch personalizzate al kernel, alle applicazioni di sistema e ai giochi.

Installazione

Per poter utilizzare il plugin taiHEN, la console deve eseguire separatamente un exploit del kernel. Una volta che l’exploit carica il plugin taihen.skprx nel kernel, il framework taiHEN si occuperà del resto.

[stextbox id=’info’]Nota: Per ulteriori informazioni, consultare la documentazione relativa all’exploit.[/stextbox]

Plugin

I plugin vengono caricati nel kernel dopo che taiHEN è stato caricato o su richiesta all’avvio di un’applicazione. taiHEN legge il file di configurazione in ux0:tai/config.txt.

La configurazione che determina i plugin da caricare e l’ordine di caricamento sono disponibili in ux0:tai/config.txt. Il formato è molto semplice e autoesplicativo.

# ignored line starting with #
# Kernel plugins are started with taiHEN and are in this section
*KERNEL
ux0:app/MLCL00001/henkaku.skprx
ux0:path/to/another.skprx
ux0:tai/plugin3.skprx
ux0:data/tai/plugin4.skprx
ux0:data/tai/plugin5.skprx
# titleid for SceSettings
*NPXS10015
ux0:app/MLCL00001/henkaku.suprx
ux0:data/tai/some_settings_plugin.suprx
# titleid for Package Installer
*NPXS10031
ux0:path/to/some_pkg_installer_plgin.suprx
# titleid for SceShell is special (does not follow the XXXXYYYYY format)
*main
ux0:app/MLCL00001/henkaku.skprx
ux0:data/tai/shell_plgin.skprx

Le cose chiave da notare sono

  1. # inizia un commento, * inizia una sezione e qualsiasi altro carattere che inizia un percorso.
  2. KERNEL è un nome di sezione speciale che indica di caricare un plugin del kernel all’avvio di taiHEN. Tutti gli altri nomi di sezione sono l’id del titolo dell’applicazione/gioco in cui caricare il plugin all’avvio. Si noti che SceShell ha un TitleID speciale da main.
  3. In ogni sezione, c’è un elenco di percorsi dei plugin che verranno caricati in ordine. I percorsi possono essere ovunque, ma è consigliabile che i plugin risiedano in ux0:tai o ux0:data/tai, è valido avere un plugin in più sezioni, ma lo sviluppatore deve assicurarsi che il plugin sappia in quale applicazione viene caricato e se deve fare le cose in modo diverso.

Changelog

Le versioni precedenti utilizzavano le versioni da 0.2 a 0.11. Considerali da 0.2.0 a 0.11.0. Da questo punto, le versioni 0.x.y saranno retrocompatibili con 0.11.0, mentre le versioni 1.x.y non lo saranno.

Modifiche al modulo

  • Supporta tutte le versioni del software di sistema >= 3.60 con un singolo modulo.
  • Salta il caricamento del plugin all’avvio su una PSTV (vedi i passaggi seguenti).
  • Ridotto il requisito di memoria dell’immagine caricabile da 256 KiB a 64 KiB.
  • Ridotta la dimensione del blocco dell’heap di patch da 64 KiB a 4 KiB.
  • Corretto un crash fatale causato da una manipolazione errata dell’elenco collegato quando si sganciava quando la catena del gancio ha due o più ganci.
  • Corretto un crash fatale causato da stub irrisolti identificati erroneamente come risolti.
  • Corretto un crash fatale causato da un’istruzione Thumb to Thumb BLX (reg) scritta erroneamente sul trampolino outro quando la patch di salto sovrascrive un’istruzione Thumb to ARM BLX (imm) (https://github.com/yifanlu/taiHEN/issues /84).

Modifiche all’intestazione dello sviluppo:

  • Aggiunta una macro TAI_NEXT simile a TAI_CONTINUE, ma ha il controllo del tipo statico e consente di continuare la catena di hook su funzioni che passano argomenti con registri VFP.
  • Aggiunte le funzioni taihenModuleUtils all’intestazione pubblica.

Nessuna modifica all’API. Le librerie stub incluse sono solo per il linker SN. Le librerie stub Vitasdk delle versioni precedenti continueranno a funzionare per gli utenti Vitasdk.

Ripristino dopo l’installazione di un cattivo plugin su PlayStation TV

  1. Scollegare l’alimentatore dalla PlayStation TV.
  2. Collegare un controller con un cavo USB.
  3. Collegare l’alimentatore. La PlayStation TV si avvierà automaticamente. Collegare il controller premendo il pulsante PS.
  4. Il LED di alimentazione lampeggerà lentamente per 10 secondi quando taiHEN è in attesa di input. Quando il controller è connesso, premere e tenere premuto . Il LED di alimentazione lampeggerà rapidamente per indicare che l’ingresso è stato ricevuto.
  5. L’avvio continua con il caricamento del plugin ignorato.

Nota che se avvii con qualsiasi altro metodo, taiHEN non aspetterà l’input durante l’avvio.

Download: Plugin taiHEN v0.12.0

Download: Source code taiHEN v0.12.0

Fonte: forum.devchroma.nl

Articolo precedente[Scena PS Vita] Rilasciato Grand Theft Auto: San Andreas v1.1
Articolo successivoRilasciato Universal Media Server v10.1.0
Sono Nato nel 1980 e da diversi anni coltivo la passione per tutto ciò che riguarda il mondo dei videogiochi, ho vissuto l'era degli home computer con il Commodore 64 e l'Amiga 500, da sempre appassionato di giochi di ruolo e di titoli di avventura.