[Scena PS4] Riportata la procedura corretta per eseguire Linux su PS4

Il developer Cturt ha ampliato la sua terza ed ultima pubblicazione riportando la procedura corretta per chi intende eseguire Linux su Playstation 4.

linux

Per creare la propria distribuzione si rende necessario compilare il Kernel Linux del team Fail0verflow, questo può essere fatto anche da altre persone o developer della scena, tuttavia bisogna creare i propri initramfs, serve dunque una certa conoscenza in materia.

Il metodo più semplice per ottenere i file all’interno della RAM vede la copia dei file su di una pendrive USB formattata in Fat32, i file potranno essere letti dopo la rottura del sandbox (/mnt/usb0/) o in alternativa si può scegliere di caricarli attraverso la rete.

Bisogna compilare anche le chiamate di sistema PS4-kexec come un binario rilocabile e includerlo nel kernel exploit.

Ora per il proprio payload del kernel è necessario copiare la chiamata di sistema da qualche parte nello spazio di indirizzamento del kernel (come DT_HASH_SEGMENT), ed eseguire kexec_init per installarlo (garantito per l’offset 0 sul binario).

void *DT_HASH_SEGMENT = (void *)0xffffffff82200160;
memcpy(DT_HASH_SEGMENT, kexec, kexecSize);

void (*kexec_init)(void *, void *) = DT_HASH_SEGMENT;
kexec_init(NULL, NULL);

Una volta tornati in userland, si può andare a caricare il kernel e initramfs da USB, passare per kexec , e infine riavviare!

FILE *fkernel = fopen("/mnt/usb0/bzImage", "r");
...

FILE *finitramfs = fopen("/mnt/usb0/initramfs.cpio.gz", "r");
...

char *cmdLine = "panic=0 clocksource=tsc radeon.dpm=0 console=tty0 console=ttyS0,115200n8 "
	"console=uart8250,mmio32,0xd0340000 video=HDMI-A-1:1920x1080-24@60 "
	"consoleblank=0 net.ifnames=0 drm.debug=0";

syscall(153, kernel, kernelSize, initramfs, initramfsSize, cmdLine);

free(kernel);
free(initramfs);

// Reboot
int evf = syscall(540, "SceSysCoreReboot");
syscall(546, evf, 0x4000, 0);
syscall(541, evf);
syscall(37, 1, 30);

Esistono ancora diverse questioni che andrebbero affrontate come ad esempio la possibilità di poter cambiare la risoluzione (al momento viene supportata la sola visualizzazione a 1080p), ma il team Fail0verflow continua a lavorare costantemente al progetto, e siamo certi che ben presto porterà la dovuta correzione.



Source : cturt.github.io


5 commenti

  1. Marco5896 lascia stare non è roba per novellini rischi solo di fare un bel casino e di brillare la console se vuoi un consiglio aspetta le versioni facilitare “sempre se usciranno ma sono molto fiducioso”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *