English Documentation
Version 1.2.7 (Latest Release) - Elimination of Unexported Libc Stubs (fchown/chown) & Crash-Free Restore
MacheteSVG v1.2.7 permanently eliminates a fatal SIGSEGV segmentation fault (si_addr: 0) that occurred during the finalization of savegame restores on PlayStation 5 consoles running root jailbreak environments. The crash was triggered when SQLite's internal WAL checkpoint / file locking mechanism invoked POSIX fchown(), which exists in compile-time SDK stubs (libkernel_sys.so) but is not exported in userland by Sony's libkernel.prx. Version 1.2.7 provides built-in strong runtime stubs directly inside eboot.bin, purges all unexported dynamic symbols from the ELF, and adds database concurrency protection (busy_timeout = 3000ms).
Key Enhancements in v1.2.7
- Elimination of Unexported
fchown&chownNULL Pointer Dereference:- Under root escalation (
UID 0), SQLite's internal Unix VFS (robustFchown) attempted to preserve ownership when creating or accessing database sidecars (-wal,-shm). - On Prospero OS,
fchownandchownare unexported in retail/jailbrokenlibkernel.prx, leaving their Global Offset Table (GOT) entries as0x0. Calling them resulted in jumping to address 0 (SIGSEGV). - Built strong local implementations directly in
tooling/native/app_cpp_runtime.cpp, completely resolving all calls internally at link time without any dynamic relocations in.rela.dyn. - Also added built-in implementations for
getcwdandreadlinkto ensure total isolation from unexported SDK stubs.
- Under root escalation (
- Compile-Time Flags for Clean SQLite VFS:
- Added
-DHAVE_FCHOWN=0 -DHAVE_READLINK=0compile definitions acrosstools/build.shandtools/build-tests.sh.
- Added
- Database Concurrency Protection:
- Added
PRAGMA busy_timeout = 3000;before executing SQLite statements inupdate_or_register_ps4_savedata_dbandrepair_title_corruption_flagsto gracefully wait if system daemons accesssavedata.dbsimultaneously.
- Added
- Pure Runtime Dynamic Linking in PFS Mount Loader:
- Replaced weak symbol declarations of
sceKernelLoadStartModuleandsceKernelDlsyminpfs_mount_manager.hppwith purely runtimedlsym(RTLD_DEFAULT, ...)lookup, eliminating weak dynamic symbol relocations.
- Replaced weak symbol declarations of
- Verified Zero Emojis & 106 Passing Unit Tests:
- 100% clean zero-emoji certification across all files and documentation.
- All 106 unit tests passing.
Package Checksums (v1.2.7)
| File | Size | SHA-256 Checksum |
|---|---|---|
MacheteSVG_v1.2.7_PS5.zip
| 30.2 MB (31,668,524 bytes) | 3f820ff6ef2176c0b94289f6c797b3570b31e2d733cf675fe0825cb7941f0102
|
eboot.bin
| 25.0 MB (26,204,448 bytes) | 04ff4f9656a46f27f97cc922c7606f9f2501a75d6f4d6036ad0c01bc63582b9e
|
Installation (Easy FTP Method)
- Download
MacheteSVG_v1.2.7_PS5.zip. - Extract the archive on your PC to get the
PPSA99001folder. - Enable FTP on your PS5 (OnionHEN, etaHEN, etc.).
- Upload the
PPSA99001folder directly to/data/homebrew/via FTP (resulting path:/data/homebrew/PPSA99001/eboot.bin). - Launch MacheteSVG from your homebrew launcher or system menu.
Notas de la Version en Espanol (Spanish Documentation)
Version 1.2.7 (Ultima Version) - Eliminacion de Stubs Libc no Exportados (fchown/chown) y Restauracion Libre de Crashes
MacheteSVG v1.2.7 elimina de forma definitiva el error fatal de segmentacion SIGSEGV (si_addr: 0) que ocurria durante la finalizacion de la restauracion de partidas en consolas PlayStation 5 con privilegios de root. El fallo se producia cuando el mecanismo interno de WAL checkpoint y bloqueo de archivos de SQLite invocaba la llamada POSIX fchown(), la cual existe como stub en el SDK en tiempo de compilacion (libkernel_sys.so) pero no esta exportada en espacio de usuario por Sony en libkernel.prx. La version 1.2.7 implementa stubs fuertes enlazados directamente dentro de eboot.bin, purga todos los simbolos dinamicos no exportados del ELF y anade proteccion de concurrencia en bases de datos (busy_timeout = 3000ms).
Mejoras Principales en v1.2.7
- Eliminacion de Puntero Nulo por Llamada a
fchownychownno Exportados:- Al escalar a root (
UID 0), el VFS Unix de SQLite (robustFchown) intentaba preservar los permisos de propietario al crear o modificar los archivos auxiliares de la base de datos (-wal,-shm). - En el sistema operativo Prospero,
fchownychownno son exportadas porlibkernel.prx, dejando sus entradas en la tabla GOT en0x0. Invocar la funcion resultaba en un salto a la direccion cero (SIGSEGV). - Se anadieron implementaciones locales directas en
tooling/native/app_cpp_runtime.cpp, resolviendo todas las llamadas internamente en tiempo de enlace sin generar reubicaciones en.rela.dyn. - Tambien se anadieron implementaciones seguras para
getcwdyreadlinkpara evitar cualquier dependencia de stubs no exportados.
- Al escalar a root (
- Banderas de Compilacion para un VFS de SQLite Limpio:
- Se anadieron las definiciones
-DHAVE_FCHOWN=0 -DHAVE_READLINK=0entools/build.shytools/build-tests.sh.
- Se anadieron las definiciones
- Proteccion de Concurrencia en Bases de Datos:
- Se agrego
PRAGMA busy_timeout = 3000;antes de ejecutar consultas SQLite enupdate_or_register_ps4_savedata_dbyrepair_title_corruption_flagspara esperar limpiamente si algun proceso o servicio del sistema accede asavedata.dbde forma simultanea.
- Se agrego
- Carga Dinamica Pura en Tiempo de Ejecucion en el Cargador PFS:
- Se reemplazaron las declaraciones debiles de
sceKernelLoadStartModuleysceKernelDlsymenpfs_mount_manager.hpppor una resolucion limpia viadlsym(RTLD_DEFAULT, ...), eliminando simbolos dinamicos debiles en el ELF.
- Se reemplazaron las declaraciones debiles de
- Certificacion de Cero Emojis y 106 Pruebas Unitarias Exitosas:
- Certificacion 100% limpia de cero emojis en todos los archivos y documentacion.
- 106 pruebas unitarias completadas con 100% de exito.
Sumas de Verificacion de Paquetes (v1.2.7)
| Archivo | Tamano | Suma de Verificacion SHA-256 |
|---|---|---|
MacheteSVG_v1.2.7_PS5.zip
| 30.2 MB (31,668,524 bytes) | 3f820ff6ef2176c0b94289f6c797b3570b31e2d733cf675fe0825cb7941f0102
|
eboot.bin
| 25.0 MB (26,204,448 bytes) | 04ff4f9656a46f27f97cc922c7606f9f2501a75d6f4d6036ad0c01bc63582b9e
|
Instalacion (Metodo Facil via FTP)
- Descarga
MacheteSVG_v1.2.7_PS5.zip. - Descomprime el archivo en tu PC para obtener la carpeta
PPSA99001. - Habilita el servidor FTP en tu PS5 (OnionHEN, etaHEN, etc.).
- Copia la carpeta
PPSA99001directamente en/data/homebrew/via FTP (ruta final:/data/homebrew/PPSA99001/eboot.bin). - Inicia MacheteSVG directamente desde tu lanzador de homebrew o menu principal.