GitHubで、SKGleba氏がPS Vita/Vita TVの工場出荷時の初期ファームウェアバージョンを変更することができるユーティリティmincg v1.0をリリースしていました。
mincg v1.0 is now public – Min. firmware version manager for Playstation Vita/TV
Big thanks to @pomfpomfpomf3
Link: https://t.co/YzMwBys8W4 pic.twitter.com/9j5tIhrI39— SKGleba (@skgleba) November 5, 2019
mincgによって3.60へはダウングレードできないはずのVitaを工場出荷時ファームウェアを3.60以下にすることによって3.60へダウングレードできるようにするために使います。
事実上Vitaをダウングレードすべき最も古いファームウェアは3.60となるため、工場出荷時ファームウェアを3.60よりも古いものにする必要性はありません。特にSlimモデルは2.00など古いファームウェアをハードウェアとしてサポートしていないため不用意にダウングレードしてはいけない数字に工場出荷時ファームウェアを変えてしまわないよう注意が必要です。うっかりダウングレードを防ぐ意味でも大切です。そもそもVitaを3.60よりも古いファームウェアへダウングレードすることは無意味なので厳禁だと思って下さい。
mincgはVitaのminfw(ミニマムファームウェアの意味=ファクトリーファームウェア)バージョンが保存されている、Vita個体ごとに暗号化されたSMIというデータをダンプ、変更、書き込みを行います。Team Moleculeのmoth Exploitを利用しているそうです。
moth exploitはPS VitaのFlashメモリにある固有情報が存在するIDStorageに保存されているファクトリーファームウェアバージョンの情報をVitaがきちんとチェックをしていないという脆弱性を利用したものです。
本来ならファクトリーファームウェアバージョンはIDStorageの中のデータを本体ごとに存在する固有値の鍵を使って復号化、RSA公開鍵で検証、本体ごとに存在する別の固有値の鍵で復号することで得られるという何重ものプロテクトがかけられていますが、そもそも検証をしていないことから他のドナーとして扱うVitaのものとすげ替えてしまい、鍵が異なるため狙った値にはできないものの運が良ければファクトリーファームウェアの数字が3.60以下になるというものです。2度復号されていますが、それぞれインナーレイヤー、アウターレイヤーと呼ばれてます。
説明を試みようといろいろ計算して検証しましたが、3/256の確率でダウングレードで使える数字になるようなわかりやすい説明方法が導き出せないので説明は省きます。要するに当たるも八卦当たらぬも八卦状態でやってみてくれということになります。自分のVitaの個体値は決まっているため、一度駄目なら何度やり直しても結果は変わりません。
時間がなくて自分で検証できていないのですが、GitHubの原文翻訳とソースコード見ての概略の使い方を書いておきます。ただし、現時点では確実に使えるという物ではないので使用のお勧めはしません。
使い方
mincgはPC側ツールとVita側ツールの2つを使います。GitHubのReleaseで配布されているのはVitaのvpkだけですが、PC(Windows)側のツールはhttps://github.com/SKGleba/mincg/tree/master/pctool/windowsにあります。
1) mincg.vpkをダウンロードしてVitaにインストールする。
2) Vitaでmincgを起動し、[×]ボタンを押してSMIデータをダンプする
3) ux0:data/
にある_SMI_
ファイル(複数ある)をPCにコピーする。
XXXXXXXX_SMI_HEADER.SMI_HDR
XXXXXXXX_SMI_KEYS.SMI_KEY
XXXXXXXX_SMI_NOUTER.SMI_e1
というファイルのようです。
4) .SMI_KEY
ファイルをmincg/pctool/
ディレクトリにコピーし、cur.key
のように短いファイル名に変更しておく。
5) PC側(OpenSSL必須)のツールmincgをキーファイル名を引数にしてコマンドラインで実行する
例: ./mincg cur.key
6) 3/256の確率でキーが一致すればラッキー。以前に別の個体で一致したSMIがある場合は/keys/ディレクトリから取り出して別で保管等しておいてからPC側でmincgを実行する。
7) /mincg/
にあるTSMI.SMI
ファイルをVitaのux0:data
にコピーする。
8) Vitaでmincgを起動し、[〇]を押して新しいSMIデータを書き込む。
mincgが利用しているmoth Exploitは今後対策される可能性があるため、現時点で最新ファームウェアである3.73からはアップデートしないようにして下さい。
動作させるとux0:data/mincg.log
にログが保存されます。うまく行かなかった場合にはそのログと_SMI_
ファイルを(_SMI_
ファイルに関してはうまくいこうが行くまいが)skgleba氏にGmail(skgleba@gmail.com)で送って情報提供することで、当たるも八卦当たらぬも八卦状態状態から何歩か進めると思います。現時点でhttps://github.com/SKGleba/mincg/tree/master/pctoolのdataフォルダとkeysフォルダにユーザーから寄せられたサンプルデータが追加されてきています。
PSPの時代でもファクトリーファームウェアの変更というのはできなかったので、もし任意のバージョンへ変更できるようになればmincgは画期的なツールになります。
Autopluginのver 4.02が公開されました
https://github.com/theheroGAC/Autoplugin/releases/tag/4.02