archicharmer |
Дата: Сб, 23 Май 2020, 10:11 | Сообщение #1 |
Не проведешь
Сообщений: 1586
|
Хочу представить здесь ход эксперимента по проверке поддержки Linux'овских символьных ссылок в их обыкновенном виде (те, которые созданы с помощью Linux'овской консольной команды "ln -s файл_на_который_ссылаться название_символьной_ссылки")
Вердикт: Не поддерживаются
Теперь пошла "тягомотина") На файловой системе внутреннего жёсткого диска PS3 нельзя создать символьную ссылку - нет ни специальных хоумбрю, которые позволяли бы создать её, ни через ftp подключение с ПК команда ln не проходит, ни команда по созданию символьной ссылки у эксплойта ничего не делает (что странно, ведь если есть соответствующий этой команде syscall, значит и делаться что-то должно... но речь не об этом). Остаётся ещё проверить как обстоят дела с уже созданными символьными ссылками на образе.
GenPS3ISO, или его консольный предшественник с открытым исходным кодом makeps3iso, если им подсунуть файлы с символьными ссылками с идеей чтобы они сделали образ с этими символьными ссылками - они, если "не сломанные", то проги пишут файлы, на которые они указывают; а если они "сломанные", то проги их не пропускают и образ не создаётся.
Есть в линуксе создаватель ISO с поддержкой символьных ссылок - genisoimage. Символьные ссылки поддерживаются с расширением файловой системы для ISO 9660, которое называется "Rock Ridge". Всячески повыясняв с какими параметрами файловой системы образа ISO создаёт прога GenPS3ISO, команда с флагами для genisoimage у меня выглядела так:
Код genisoimage -iso-level 3 -J -ucs-level 1 -V PS3VOLUME -volset PS3VOLUME -sysid "" -A "" -N -r -input-charset cp1250 -o genisoimage.iso папка
Подопытная игра - Hustle Kings [NPEA00145]. Эта NPDRM игра прекрасно переделывается в ISO, и уже не ищет никаких своих файлов на внутреннем HDD PS3 (ну кроме DLC, и дополнительных данных конечно, это как и большинство игр). Сперва переподготовил её файлы как для записи как ISO. Для GenPS3ISO: - удалил папку TROPDIR, вместо неё, с помощью HEX-редактора, создал файл с тем же названием TROPDIR, только с таким содержимым, чтобы он в конечном итоге был размером со "сломанную" символьную ссылку, но ею не являлся, т.е., с таким содержимым:
Код 123456789;game;NPEA99145;TROPDIR
(намёк на /dev_hdd0/game/NPEA99145/TROPDIR) - удалил файл root.vfs что в папке USRDIR, и так же создал подобный символьной ссылке файл; - собрал ISO с помощью GenPS3ISO. Для genisoimage: - удалил папку TROPDIR, вместо неё создал символьную ссылку на /dev_hdd0/game/NPEA99145/TROPDIR ; - удалил файл root.vfs что был в папке USRDIR, вместо него создал символьную ссылку на /dev_hdd0/game/NPEA99145/USRDIR/root.vfs ; - собрал ISO с помощью genisoimage. Очевидно, что образ создался без спец. header'а игровых дисков PS3. Правлю образ в HEX-редакторе, руководствуясь данными в википедии. В оффсете 3 - 02 В оффсетах E-F - значение стартового оффсета файла LIC.DAT делёное на размер сектора (что в десятичном есть 2048) минус один В оффсетах 12-13 - значение сектора ISO файла, сразу после файла EBOOT.BIN, делёное на размер сектора В оффсетах 16-17 - значение последнего оффсета делёное на размер сектора В оффсетах 800-9FF - скопированное с тех же оффсетов из образа, созданного прогой GenPS3ISO
Итак, образ Hustle Kings, ищущий папку и файл -> согласно символьным ссылкам в TROPDIR->/dev_hdd0/game/NPEA99145/TROPDIR root.vfs->/dev_hdd0/game/NPEA99145/USRDIR/root.vfs готов.
Но вот беда - мультименеджеры не считают, что это образ игры PS3! Подумав над этим немалое количество времени, я вспомнил, что у ODE, продуктом которого я являюсь владельцем, был свой менеджер, которому, в принципе, всё равно что монтировать, как и самому девайсу в принципе. Прога GenPS3Extra для ODE. Она тоже не считает созданный образ за игру PS3. Так я проделал следующее: - положил пару образов от других игр рядышком с тем необычным образом в корневую папку PS3_GAMES внешнего HDD используемого для ODE; - обработал содержимое внешнего HDD для ODE прогой GenPS3Extra; - удалил из папки PS3_GAMES образ, который в файле COBRA/cobra.cfg указан последним; - переименовал необычный образ в название удалённого образа. Трюк сработал! - образ монтируется и в XMB видится, что это Hustle Kings. Перед запуском надо скопировать реальные файлы от Hustle Kings по местам куда ссылаются на них символьные ссылки: папку TROPDIR с содержимым в /dev_hdd0/game/NPEA99145/ файл root.vfs в /dev_hdd0/game/NPEA99145/USRDIR/
Запускаю Hustle Kings и... чёрный экран. Что говорит о том, что PS3 непонимает символьных ссылок, созданных Linux'овской командой 'ln -s' . Могу лишь предположить, что учитывая структуру базы данных файловой системы внутреннего HDD PS3, если символьные ссылки и поддерживаются, то они должны быть соответствующим образом прописаны где-то среди файлов этой самой структуры внутреннего HDD PS3. Есть и другое предположение почему ISO'шные символьные ссылки несработали - возможно PS3 неподдерживает Rock Ridge, и попросту невидит тот специальный "слой" данных, для представления которых недостаточно реализации ISO 9660 и понадобились преимущества Rock Ridge.
Если кому есть что сказать по этому поводу, возразить, подвергнуть сомнению - смело пишите.
PS4 CUH-1108A OFW 5.05 + VR CUH-ZVR2 PS3 SuperSlim CECH-4208a OFW v.4.50 Cobra ODE PS2 SCPH-77008a SLIM чиповка; припаян Y Pb Pr - компонент PS2 SCPH-55004 FAT чиповка + orig SCPH-10281 Network Adapter SATA mod
|
|
| |