Output entries are written with a Unix host, but the source entry's external attributes were copied as is. ZIPs made on Windows carry only MS-DOS attributes, so app0 files were recorded with mode 0000 and Info-ZIP unzip extracts them unreadable. Entries without a Unix mode now get 0644.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Windows PowerShell's Compress-Archive stores entry names with \ as the separator and an MS-DOS host. The converter rejected every such ZIP as an unsafe path. Entries from an MS-DOS host now have \ turned into / before the path is validated, so .. and the other unsafe names are still rejected. Unix-host names keep rejecting \.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Before: a dump taken straight from a package holds SELF containers, so the app
root has no ELF, and converting it answered "Expected exactly one executable ELF
in the app root; found 0" while the Convert button stayed disabled, with nothing
pointing at what was wrong. A sce_module entry that is a SELF was dropped as well
without a word, although docs/user/USAGE.md documents the relinker skipping
SELF/fSELF containers with a warning.
Now the first bytes of each root file are matched against SELF_MAGIC_PS4 and
SELF_MAGIC_PS5 (the two containers pkg-to-anyps5 unwraps), so an executable case
names the file and asks for the app to be unwrapped first, and a skipped module
joins the same warnings list the conversion gate already reads, which makes the
acknowledge box appear for it too.