Pubblicato un rapido aggiornamento correttivo per LibWiiPy, la moderna libreria scritta in Python 3 pensata per gestire vari file e formati legati alla console Wii.
Creata con l’obiettivo di semplificare il lavoro degli sviluppatori, questa libreria offre una soluzione completa e facile da usare per la manipolazione dei dati relativi alla Wii, fornendo una gamma di funzionalità utili a chi sviluppa applicazioni homebrew o tool per la console.
Questo nuovo aggiornamento annulla alcune modifiche introdotte nella versione 0.5.0, che avevano causato più problemi di quanti ne risolvessero, sostituendole con una nuova soluzione molto più semplice.
Inoltre, l’aggiornamento aggiunge un supporto di base per la gestione di WAD firmati e crittografati, attualmente in fase di sviluppo.
Caratteristiche
La libreria è ispirata a libWiiSharp, sviluppata originariamente da Leathl e mantenuta ora da @TheShadowEevee, ma con un approccio completamente nuovo. Tra le principali funzionalità attualmente disponibili in libWiiPy troviamo:
- Analisi/modifica TMD e Ticket (
.tmd
,.tik
). - Analisi/modifica del titolo, inclusa la crittografia/decrittografia del contenuto.
- Analisi/modifica del file WAD (
.wad
). - Scaricare titoli dalla NUS.
- Imballaggio e disimballaggio degli archivi U8 (
.app
,.arc
). - Decompressione dei file ASH (
.ash
sia le varianti standard che quelle presenti in My Pokémon Ranch). - Patch IOS.
- Funzionalità relative alla NAND:
- Gestione del titolo EmuNAND (attualmente richiede un EmuNAND esistente).
content.map
analisi/modifica.uid.sys
analisi/modifica.
- Varie funzionalità varie utilizzate per rendere possibili le altre funzionalità principali.
Per una panoramica più dettagliata di ciò che è disponibile in libWiiPy, consultare la documentazione API .
Con queste caratteristiche, libWiiPy si presenta come una soluzione completa per chiunque voglia sviluppare strumenti legati alla Wii utilizzando Python, risparmiando tempo e sforzi nel dover combinare più librerie.
Installazione e utilizzo
L’installazione di libWiiPy è molto semplice e può essere eseguita direttamente tramite PyPI, la repository ufficiale per i pacchetti Python: pip install -U libWiiPy
Tuttavia, poiché la libreria è ancora in una fase di sviluppo iniziale, è consigliabile installare la versione più recente direttamente dalla repository GitHub, in modo da ottenere tutte le nuove funzionalità in tempo reale: pip install -U git+https://github.com/NinjaCheetah/libWiiPy
Le istruzioni dettagliate su come iniziare a utilizzare libWiiPy, compresi i passaggi per la compilazione locale, sono disponibili nella documentazione ufficiale.
Changelog
Contenuto
- Le modifiche al modo in cui venivano elaborati gli indici di contenuto sono state annullate. Nella versione 0.5.0, tutti i metodi per
ContentRegion()
che richiedevano un indice come parametro sono stati modificati per risolvere quell’indice trovando il record di contenuto che lo conteneva e poi utilizzando quello, invece di andare semplicemente alla posizione letterale di quell’indice. Questa modifica è stata effettuata per migliorare il supporto per i WAD in cui l’indice del contenuto nel record non corrispondeva all’indice letterale, ma ha introdotto problemi relativi all’ottenimento/decrittazione del contenuto, nonché alla sua impostazione/crittografia. - Come sostituzione per la soluzione complicata e problematico sopra menzionata, i metodi in
ContentRegion()
che utilizzano indici risolveranno di nuovo l’indice letterale, ma continueranno a risolvere l’indice di contenuto quando necessario per la decrittazione. Ciò risolve lo stesso problema senza introdurre un comportamento diverso dall’API v0.4.x.
Parsing e Modifica del titolo
- Il metodo
get_common_key()
ora accetta il parametrokwarg dev
, che, se impostato su True, farà sì che il metodo restituisca la Wii Common Key di sviluppo invece di quella di vendita al dettaglio quando viene richiesta la chiave 0. Le chiavi 1 e 2 non sono influenzate da questo argomento. - I metodi di crittografia
encrypt_title_key()
edecrypt_title_key()
ora accettano il parametrokwarg dev
, che, se impostato su True, farà sì che passino quel valore aget_common_key()
, consentendo loro di decrittare con successo la Title Key di un titolo di sviluppo. - L’emittente della firma di un Ticket viene ora analizzato durante il caricamento, e la nuova proprietà
is_dev
diTicket()
sarà impostata su True se l’emittente della firma è quello utilizzato per i titoli di sviluppo. - I metodi
get_title_key()
diTicket()
eset_title_id()
diTitle()
ora passano la nuova proprietàis_dev
di Ticket adecrypt_title_key()
eset_title_id()
, rispettivamente, per consentire un supporto adeguato dei titoli di sviluppo in tutta la libreria. - Combinate, queste funzionalità consentono una decrittazione senza interruzioni dei contenuti provenienti da titoli di sviluppo senza la necessità di interventi espliciti in condizioni di utilizzo tipiche.
L’aggiornamento è disponibile anche su PyPI mentre la documentazione API viene aggiornata automaticamente dalle docstring.
Download: libWiiPy v0.5.2 py3-none-any.whl
Download: libwiipy v0.5.2.tar.gz
Download: Source code libWiiPy v0.5.2
Fonte: github.com