FW4.05のPS4向け ゲームデータからPKGを作成してインストールしてバックアップ起動まで持っていく手順 2018/01/20

2018/01/20 21:37 PS4 4
flatz氏が公開した文書(FSELFを含んだ偽PKGの作成及びそれをPS4へインストールする方法(FW4.55向け))と、
それを元にwildcard‏氏がその方法をFW4.05向けに移植したHEN(Homebrew ENabler)ペイロード、これらにより
FW4.05環境でHomebrewやバックアップの起動が可能になりました。
この記事では2018年1月20日、現時点でのバックアップの起動までの手順を書いていきます。

最初に書いておきますが、現状この手順で全てのゲームが起動(または正常に動作)するわけではありません。
PS4にはPlayGoシステムが実装されており、ゲームのファイルをチャンク毎にダウンロードしたり、ロードしたりする事が可能です。
ゲームをダウンロードする際に全部DLせずとも起動可能なゲームがありますが、それがPlayGoシステムの恩恵です。
ここで言うチャンクは簡単に言えばどのファイルがどのグループに属すか、という考えで1つのグループの事を言います。
チャンクに関してはflatz氏が公開した文書の後半に書かれていますが、現状チャンクの構造を把握する事は出来ません。
なので今各所で紹介されているFake PKG Generator(Orbis Publishing Tools)を使ったバックアップPKGの作成方法は、
どこもゲームデータ全部をChunk0に設定していると思います。これでは複雑なチャンク構造を持ったゲームは正常に動作しません。
flatz氏によれば基本的に複雑なシナリオを持つゲームは複雑なチャンク構造をしているそうで、例えばDriveClubのような
1chunk/1scenarioな単純なゲームはチャンクの事は何も考えずただPKGにしてインストールすれば正常に動作するのだとか。
チャンクの構造を知るためにはカーネルへのパッチとPS4のアプリケーション(おそらくHomebrewの事)が必要らしいのですが、
flatz氏としてはそれを開発するつもりは無いそうです。なのでそれを行う開発者が現れるのを待つ必要があります。

FW1.76でプレイルームを通してバックアップを起動する方法がありましたが、うまく動作しないゲームもあったそうで、
flatz氏としてはその原因はバックアップ起動のベースとなるプレイルームのチャンクが関係していると考えているそうです。

肝心の手順はついさっきまでどう書こうかなと悩んでいたのですが、PSXHAXでXVortex氏が公開された方法が
今最もイカしてるなと思ったのでそちらをベースにして解説していこうかなと思います。
PKG Kitchen - PS4 Guides, Tools and Scripts for Fake PKG Creation




※本来ならスクショ撮ったりしてしっかりした記事にすべきなのでしょうが、面倒なのでスクショ用意してません



●用意する物、環境
・PS4 FW4.05
・PC及びFTPクライアント
FW4.05向けのKernel exploit実行環境
PS4へペイロードを送信可能な環境
PKG Kitchen
Fake PKG Generator(Orbis Publishing Tools)
ps4-ftp-vtx
HENペイロード
・バイナリエディタ(何でもいい)
・FW4.05機で起動するゲーム(ディスクでもDLゲーでも起動するならどっちでも良い)
・USBメモリや外付けHDD(exfatでフォーマット済み)

用意するゲームは削除するので、ディスクのゲーム推奨です。

PKG KitchenはPKGファイルから必要なファイルを取り出したり、Orbis Publishing Toolのプロジェクトファイルである
gp4ファイルを作成したりのバッチファイルです。作成されるgp4ファイルは全ゲームデータをChunk0扱いにした物です。

Fake PKG Generatorは流出したとされるSDKに含まれていたOrbis Publishing Toolsにcfwprophet氏が手を加えた物で、
本来はゲームの実行ファイルであるELFをFSELF(Fake Signed ELF)に変換しなければいけない所を、
ただのELFをFFSELF(Fake FSELF)として扱う事が出来るようにした物です。
FSELFに変換済みの物はSELFとして正しく認識されます。cfwprophet氏の環境でflatz氏が用意したmake_fself.pyが
動作しなかったという事から開発された物らしく、これで作成したPKGをインストールして起動する事が可能です。

ps4-ftp-vtxはPS4とFTP接続して実行ファイルを復号状態(ELF)でクライアント側にダウンロード(ダンプ)可能なペイロードです。
ペイロードのソースで実行ファイルのパスを指定する必要が無いので、とんでもなくお手軽です。
ただしバイナリエディタでペイロード内にあるIPアドレスを自分の環境に合わせて編集する必要はあります。


●PKG作成してインストールする手順
1、pkg_kitchen.zipをダウンロードし、専用フォルダを作ってそこに解凍
※出来るだけHDDのルートに近い方が良い
※以下、この記事では専用フォルダをKitchenとする

2、Fake_PKG_Generator.rarをダウンロードし、"Kitchen/tools/" に解凍
※toolsフォルダ内にorbisのexeファイル群が来るように解凍

3、PS4-FTP-VTX.binをダウンロードし、バイナリエディタで展開する

4、PS4-FTP-VTX.binの中にあるIPアドレスを自分の環境に合わせて編集する
※192で検索すればすぐ見つかる
※2つあるが、1つ目がPS4のIPアドレス、2つ目がPC側のIPアドレス
※私の環境では1つ目のアドレスを自分の環境に合わせただけで動作した

5、編集したPS4-FTP-VTX.binをPS4に送信

6、ゲームを起動し、タイトル画面まで行く
※私の環境ではタイトル画面まで行かないとFTPでのファイル転送がどうにも不安定な感じがするため

7、PS4とFTP接続(ポート番号:1337)し、以下のようにPCに転送していく
A)
・/mnt/sandbox/pfsmnt/CUSAxxxxx-app0-nest/pfs_image.dat
→/Kitchen/dump/pfs/
・/user/app/CUSAxxxxx/app.pkg
→/Kitchen/dump/pkg/
・/system_data/priv/appmeta/CUSAxxxxx/
→/Kitchen/dump/appmeta

B)
・/mnt/sandbox/pfsmnt/CUSAxxxxx-app0/eboot.bin
→/Kitchen/dump/app/
・/mnt/sandbox/pfsmnt/CUSAxxxxx-app0/sce_moduleフォルダ
→/Kitchen/dump/app/
・/mnt/sandbox/pfsmnt/CUSAxxxxx-app0/sce_sys/about/right.sprx
→/Kitchen/dump/app/sce_sys/about/right.sprx
・他の実行ファイルがあれば同じようにPCに転送

手順7-Bでは他にも実行ファイル(ELF)があればコピーしてください
基本的に拡張子はbin、prx、sprxで、PCに転送した際にバイナリの文字列の先頭にELFがあれば実行ファイルです


8、PS4を再起動してゲームをアンインストール

9、_extract_pkg.batを実行
コンソールが開いて"Image extract succeeded' message"と表示されればOK

10、Kitchen/tools/ArchiveExplorer.exe を起動

11、ArchiveExplorerでPCに転送したpfs_image.datを開く

12、.datの中身が表示されているので、ドラッグして全ファイルを選択

13、手順12の状態で右クリックし、Extract slected itemsを選択し、"Kitchen/app/"フォルダを選択する
全ファイルがappフォルダに抽出されるまで待つ。

14、"/Kitchen/dump/app/"の中身を"Kitchen/app/"にコピーする

15、"/Kitchen/dump/appmeta/"の中身を"Kitchen/app/sec_sys/"にコピーする

16、_gen_gp4.batを実行
CUSAxxxxx.gp4 が作成される

17、Kitchen/tools/orbis-pub-gen.exeを起動し、"File/Open"から手順16で作成されたgp4ファイルを開く

18、ウィンドウ右上にあるBuildボタンをクリック

19、Output Path(pkg) のボックスでpkgの作成先を設定する(どこでも良い)

20、下のBuldボタンでPKGを作成
※sce_sys/about に関するエラーが出たらCloseをクリックして再度手順18と19を行ってください

21、USBメモリか外付けHDDを用意し、exfatでフォーマットする

22、USBメモリのルートに作成したpkgをコピーする。
※なので既にexfatでフォーマットしたストレージがあるならpkgはそこに直接作成して良い。

23、PS4にHENペイロードを送信

24、pkgが入ったUSBメモリや外付けHDDをPS4に挿す

25、PS4の"設定/★Debug Settings/Game/Package Installer"からpkgをインストール

26、enjoy!



これでチャンクが1つ(chunk0のみ)であるという事に問題が無ければゲームは正常に動作するはずです。

チャンクはデフォだと1つのみですが、Fake PKG Generatorの"Command/PlayGo System Settings"で増やす事が出来、
増やした後はChunkタブで各ファイルにチャンクの設定が出来ます。

現段階でチャンク構造を知る事は出来ませんが、そのゲームのチャンクの総数は知る事が可能です。
_extract_pkg.bat(orbis-pub-chk.exeの機能を使用)はpkgをパスコード無しで展開してその状態で抽出可能なファイルを抽出します。
その中にplaygo-manifest.xmlがあり、この中にあるchunk_countがチャンクの総数です。

余談ですが、MGSVGZにchunk1、chunk2、chunk3と名の付いたファイルがあったのでその通りに設定しましたが、
最初のロードが越えられませんでした。全部chunk0にしても最初のロードを越えられません。
また、GE2RBでは全てをchunk0にするとタイトルでフリーズします。
やはりチャンクの構造を把握して正しく設定しなければいけないという事でしょう。

現状、正常に動作しないゲームはバックアップ起動でのプレイを諦めた方が良さそうです。


追記
2018/1/21 23:09
MGSVGZ最初のロード越えた!

pkg_kitchen_v1.3使ってください。チャンクに関する修正入ってます。

PS4_HEN, kood

▼コメント


A 2018/01/25 14:25
バックアップのメリットって何ですか?
カセットを売れるようになるってことくらいしか思いつきません…
管理人 kood 2018/01/26 01:31
>>Aさん
私としてはディスクの入れ替えをしなくて済む事とゲームデータの改造(いわゆるMOD)が可能になる事がメリットだと思っています。
後者はゲームデータに施された暗号化であるPFSが復号された状態だからこそ可能な事です。
もちろん各ファイルの形式に関する知識等は必要ですしそう簡単に出来るわけではありませんが…

それ以外ではおっしゃる通り売れる事と海賊行為くらいじゃないですか現時点では。私はその2つに興味ありませんけど。
A 2018/01/26 08:41
セーブデータも改造できるのですか。
私は3dsでデータをダンプして適当にバイナリでお金等弄ったりすることくらいの初心者向けの改造しか経験が無いのですが古いps4を譲ってもらって4.05にしましたのでそれは気になります。。
暗号化→復号→再度号化という手順を踏むらしいのですがどうも知識が無いと難しいみたいですね…
管理人 kood 2018/01/26 20:09
>>Aさん
ゲームデータとは書きましたがセーブデータとは書いていません……
分かりやすい例を出すと、翻訳を行ったりグラフィック的な物を弄ったり、
私がメリットだと思っているのはその類が可能になるという所です。
セーブデータの改造に関しては現時点ではセーブエディターやSave Wizardでしか出来ません。


▼コメントを投稿












※「英数字90%以上」のコメントを規制中です。コメントを投稿する際は日本語でお願いします。
※確認ボタンを押すと投稿確認フォームに移ります。投稿確認フォームの送信ボタンを押してください。
※確認フォームにある「メールアドレス」に入力された内容は管理人のみ確認可能です。空欄で構いません。
※確認フォームにある「タイトル」「パスワード」は当ブログでは使用していません。空欄で構いません。
※確認フォームにある「URL」は名前のリンクとして機能します。空欄で構いません。
※確認フォームには非公開コメントのチェック項目がありますが、非公開コメントは受け付けていません。
メールフォームより連絡頂ければメールにてお返事致します。