Lo sviluppatore CTurt ha annunciato l’ultimo aggiornamento e la fine del lavoro della scena PlayStation 4 attraverso la sua pagina Github. Nella pagina viene spiegato come avviare il sistema operativo utilizzando il PS4-kexec pubblicato dal team Fail0verflow utilizzando il firmware 1.76 PS4.
Ho voluto dare una breve panoramica di come configurare e avviare Linux sulla vostra PS4, grazie al duro lavoro del team fail0verflow.Per creare la tua distribuzione Linux, è necessario compilare il fork dei fail0verflow del kernel di Linux , e quindi creare i propri initramfs .Il modo più semplice per ottenere questi file nella RAM è quello di copiarli su un flash drive USB formattata in FAT32, che possono poi essere letti una volta che hai rotto la sandbox come spiegato in precedenza ( / mnt / usb0 / ). Potresti anche scaricarli attraverso la rete, se si preferisce.
Avrete anche bisogno di compilare l’implementazione PS4-kexec della chiamata di sistema come un binario rilocabile e includerlo nel kernel exploit.
Per il vostro 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 (che è garantito per essere all’offset 0 dal 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);
Once you return to userland, you can load the kernel and initramfs from USB, pass them to kexec, and finally reboot!
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:1920×1080-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);
Ci sono ancora un paio di questioni che devono essere affrontate, come ad esempio i 1080p di visualizzazione supportata ma il team fail0verflow continua a fare progressi costanti sul progetto per tutto il tempo.
Ulteriori informazioni potete leggere alla pagina ufficiale Cturt