Home Homebrew Rilasciato ftpsrv v0.17: il payload ufficiale migliora velocità ed efficienza su...

[Scena PS4/PS5] Rilasciato ftpsrv v0.17: il payload ufficiale migliora velocità ed efficienza su PS4 e PS5

258
0

Dopo l’uscita del fork realizzato da Drakmor, che aveva attirato molta attenzione nella scena homebrew grazie a un notevole incremento delle velocità di trasferimento, anche John Törnblom ha deciso di intervenire direttamente sul progetto principale di ftpsrv.

Lo sviluppatore ha aggiornato il payload ufficiale, allineandolo alle esigenze emerse dalla community e migliorandone in modo concreto le prestazioni, senza snaturarne la filosofia di semplicità e leggerezza.

Ftpsrv rimane un server FTP essenziale, pensato per essere eseguito su PlayStation 4 e PlayStation 5 modificate e avviate tramite un loader ELF.

Il payload consente di stabilire connessioni FTP sulla porta 2121, offrendo un metodo pratico e immediato per trasferire file tra console e PC, operazione fondamentale per chi utilizza homebrew, strumenti di debug o gestisce contenuti personalizzati sulle console Sony.

L’aggiornamento, arrivato alla versione 0.17, introduce diverse migliorie mirate a ottimizzare le prestazioni e ridurre l’uso della memoria.

Tra le novità principali, il comando RETR sfrutta ora la funzione sendfile() per trasmettere i file in modo più efficiente, mentre il server disabilita l’algoritmo di Nagle (TCP_NODELAY) sulle connessioni attive per ridurre la latenza.

Già dalla versione 0.16, i buffer di invio e ricezione (SO_SNDBUF e SO_RCVBUF) erano stati aumentati per garantire un throughput più elevato, era stata introdotta la possibilità di attivare la modalità ASCII con un messaggio di errore se utilizzata durante STOR, e la gestione delle connessioni era stata ottimizzata tramite la preallocazione del buffer di lettura.

Inoltre, erano state implementate ulteriori ottimizzazioni, tra cui la massimizzazione del backlog delle connessioni in ingresso, il distacco dai thread per liberare automaticamente le risorse terminate, la riduzione dell’impronta di memoria e l’aggiunta di casi di test per monitorare e misurare con precisione le velocità di trasferimento.

Caratteristiche

Il software client testato include gFTP, Filezilla, curl e Thunar. Inoltre, il payload supporta alcuni comandi SITE personalizzati specifici per PS4 e PS5 (eseguiti senza il prefisso SITE). In particolare:

  • KILL – Termina il server FTP.
  • MTRW – Rimonta /system e /system_ex con permessi di scrittura.
  • SELF – Abilita o disabilita la decrittazione SELF in ELF in tempo reale (abilitata di default).

Nota: Il comando SELF opera su singole connessioni; ad esempio: john@localhost:ftpsrv$ curl -o libkernel.sprx -Q SELF ftp://ps5:2121/system/common/lib/libkernel.sprx

Problemi noti: Alcuni firmware PS5 con versione inferiore alla 4 presentano un bug del kernel per cui la lettura di alcuni file SELF può causare il blocco della syscall di lettura.

Segnalazione di Bug

  • Se si riscontrano problemi con ftpsrv, è possibile segnalarli su GitHub. Qualora si intenda inviare una pull request che modifica più di poche righe di codice, è preferibile aprire prima una issue per discutere la soluzione, così da definire correttamente l’approccio prima di investire tempo ed energie nello sviluppo.

Changelog v0.17

  • RETR: Utilizza sendfile() per la trasmissione dei file, migliorando le prestazioni e riducendo l’utilizzo della memoria.
  • srv: Disabilitato l’algoritmo di Nagle (TCP_NODELAY) sulle connessioni attive.

Changelog v0.16

  • Aumentata la dimensione di SO_SNDBUF e SO_RCVBUF per migliorare il throughput
  • Consentita l’attivazione della modalità ASCII, ma viene segnalato un errore se abilitata durante STOR
  • STOR: preallocazione del buffer di lettura quando viene stabilita una nuova connessione
  • srv: massimizzata la dimensione del backlog delle connessioni in ingresso
  • srv: distacco dai thread in modo che le risorse dei thread terminati siano restituite al sistema
  • io: ridotto l’utilizzo della memoria
  • Aggiunti casi di test per misurare le velocità di trasferimento

Download: ftpsrv v0.17 (PS4)

Download: ftpsrv v0.17 (PS5)

Download: Source code ftpsrv v0.17