カスタムファームウェア

**カスタムファームウェア**（**CFW**、Custom Firmware）とは、新しい機能を搭載したり隠された機能をロック解除するために、サードパーティーによって非公式に改造されたファームウェアのことを指す。主にゲーム機や様々な組み込み機器などのデバイス上で動作するが、多くの場合、PlayStation PortableやPlayStation 4、PlayStation 3、PlayStation Vita、ニンテンドー3DS、Nintendo Switchなどのゲーム機の公式のシステムソフトウェア（公式ファームウェア、あるいは単にFW（Firmware）やOFW（Official Firmware）などと呼ばれる）が改造されたものを指す。多くはチート行為を可能にする為に改造を行う。また、全てのシステムバージョンにおいて改造が可能な訳ではない。また改造を施す事によりデータの損傷や機器が使用不可になってしまう事もある。

## ゲーム機におけるCFW

通常の場合、公式ファームウェアでは署名済み（つまり、動作が公式に許可された）ソフトウェアのみが起動できる。しかし、CFWでは、動作が許可されていないHomebrew（自作のアプリケーション）やゲームデータのバックアップなどをゲーム機上で直接実行できる。ただし、CFWはソフトウェアの著作権侵害につながるため、任天堂やソニーなどのゲームメーカーは、CFWの導入をはじめとしたゲーム機の改造を一切認めていない。そのため、システムの脆弱性を突くエクスプロイトなどの特殊な方法を使用しない限り、公式ファームウェアをCFWに書き換えることはできない。また、公式ファームウェアの更新の際、CFWやそれに準ずるプログラムを導入可能にする脆弱性を利用不可能にすることがある。無論、このような改造をしたことが判明した場合、メーカー保証は対象外となる。

### PlayStation Portable、PlayStation 3、PlayStation Vita
CFWは、ソニーが販売した携帯用ゲーム機PlayStation Portableでよく知られる。PSPのCFWには、Dark_AleXによるM33 のほか、5.50GEN シリーズ、Minimum Edition（ME / LME）、PROなどがある。PlayStation Portableにおけるカスタムファームウェアは、ハードウェア機能の非公式な拡張を可能にした。RemoteJoyLiteなどのプラグインにより、USB経由で本体の映像出力をリアルタイムに接続されたPCのモニターへ転送することが可能となった。さらに、iR Shellなどのプログラムは、初期モデルであるPSP-1000に搭載された赤外線ポートを活用し、IRインターフェースを介してリモートコードを送信することで、家庭用電子機器向けのユニバーサルリモコン機能を実装した。

CFWは、PlayStation 3にも存在する。ただし、2019年9月現在、CFWが導入できるのは初期のモデルおよびスリムモデル（CECH-20xxからCECH-25xxまで）のみ。スリムモデル（CECH-30xx）およびスーパースリムモデルは、CFWとほぼ同様の機能を備えたHEN（Homebrew Enabler）のみ導入可能。

PlayStation Vitaには、PS VitaのPSPエミュレーター上で実行できるPSP用CFWを意味するeCFWがある。eCFWには、ARKやTN-V、およびAdrenalineなどがある。特にAdrenalineは、システムレベルでハッキングを行っているため、より多くの機能を利用することができる。

2016年には、PS Vitaハックシーンが大きく変わった。MoleculeというハッキングチームがHENkakuをリリースし、FW3.60でPS VitaのCFW導入を可能にした。また、その後taiHENをリリース。taiHENは、HENkakuの最新バージョンが実行されるフレームワークである。これにより、PSPで使用していたようにシステムレベルでプラグインをロードすることができ、様々な機能の変更や追加が可能になった。また、Ensoを使用すれば、Vitaのブートローダーの脆弱性を利用してHENkakuを持続可能にし、ブート時に実行できるようになる。そのため、VitaにはHENkakuとtaiHEN、およびEnsoを含む完全なCFWが確立されている。3.60のユーザーは、Henkaku Ensoのまま3.65に更新することもできる。

### ニンテンドー3DS
ニンテンドー3DSの改造シーンには、オリジナルのゲームカートリッジをエミュレートするマジコンとCFWの両方が含まれる。現在最も広く使用されているCFWは、Aurora WrightとTuxSHによって開発されたLuma3DSである。これにより、ニンテンドー3DS上で未署名のCIA（CTR Importable Archives）ファイルをインストールできる。過去のCFWには、Gateway（DRM経由でフラッシュカートリッジにロックされた独自のCFW、3DS初のCFW）やPasta、RxTools（初期に無料で広く使用されたもの）、Cakes CFW（初のオープンソースCFW）、ReiNAND（Luma3DSのベース）、およびCorbenik。現在開発中のCFWはLuma3DS（以前はAuReiNANDとして知られていた）のみ。

ニンテンドー3DSのCFWは当初、EmuNANDおよびRedNAND（3DSのNANDメモリのコピーを含むSDカードのパーティション化されていないスペースからシステムを起動する機能）に依存していた。これらは、EmuNANDが正常に機能しなくなった場合や使用できなくなった場合に通常のシステムNANDが影響を受けないため、3DSシステムをブリックから保護できる。さらに、EmuNANDは通常のシステムNANDとは別に更新することも可能。これにより、ユーザーは、システムNANDが脆弱なバージョンを保持しながら、EmuNANDに最新のシステムバージョンをインストールすることができる。そのため、古い3DSシステムバージョンでオンラインプレイとニンテンドーeショップへのアクセスが可能。

EmuNANDはarm9loaderhaxのリリースにより廃止された。arm9loaderhaxはニンテンドー3DS起動時のARM9エクスプロイトで、これによりSysNANDを安全に使用かつ更新できるようになった。ただし、このエクスプロイトでは、インストールに必要なコンソール固有のOTPを取得するために、非常に初期のシステムバージョンにダウングレードする必要があった。

2017年5月19日、arm9loaderhaxに代わって、sighaxと呼ばれる新しいエクスプロイトがリリースされた。sighaxは、bootROMのコンテキストでコードの実行を許可するため、ダウングレードやOTPが不要になり、ユーザーがシステムをさらに素早く制御できるようになった。続いて、sighaxを使いやすく改良したBoot9Strapがリリース。それと同時に、ntrbootと呼ばれる別のbootROMエクスプロイトが発表された。これにより、bootROMに存在するバックドアを使用して、ファームウェアバージョンに関係なく、3DSでシステム全体を制御できるようになった（bootROMはファームウェアのようには更新できないため）。ただし、導入にはマジコンと磁石が必要。最初のリリースは8月12日で、AceKard 2iとR4i Gold 3DS RTSをサポートしていた。

### Nintendo Switch
Nintendo SwitchのCFWには、AtmosphereやReiNX、およびSXOSがあるが現在開発が続けられているのはAtmosphereのみである。その導入方法には大きく分けて２つあり、一つは販売開始から2018年中期ごろまで製造されていたUSBリカバリーモードにおける「fusee gelee」と呼ばれる脆弱性を持ついわゆる未対策機に対しPCからペイロードを送る手法、もう一つはゲーム機本体に後から内蔵したpicofly,hwflyなどのRP2040というチップを利用したオープンソースの手法がある。後者は前者と比較してソフトウェアアップデートでは防ぐことができないブート中に極端に短い信号を送ることで内蔵したチップからのペイロードを受け取れるようにする脆弱性を用いているため、上記の未対策機以降に製造された初期型、バッテリー強化型、有機ELモデル、Liteモデルでも使用できるという点と前者はペイロードの際にPCに繋ぐ必要があるが、後者は単体でペイロードを行うことができる点が異なっている。

## 他のデバイスにおけるCFW
ゲーム機のほか、デジタルカメラやワイヤレスルーター、およびスマートテレビなど、様々なデバイスでCFWを導入できる。以下に主なものを列記する。

* ポータブルメディアプレーヤー用のロックボックス 
* iPodポータブルメディアプレーヤー用のiPodLinux 
* キヤノン製デジタルカメラ用のCHDKおよびMagic Lantern 
* ニコン製デジタル一眼レフカメラ用のNikon Hackerプロジェクト
* コンピューター用のCorebootとLibreboot 
* ワイヤレスルーター向けのファームウェアプロジェクトには次のものが含まれる。 
** Ben NanonoteやBuffalo WZR-HP-G300NH、および最小限のリソースを持つコンピューター用のLibreWRTプロジェクト 
** OpenWrtおよびDD-WRTなどの派生 
** Instruments AR7チップセットをベースにしたADSLゲートウェイルーター用のRouterTech（PspbootまたはAdam2 ブートローダーを使用）Texas 
* ケーブルモデムのアンキャッピングを可能にするCable HackとSigma（法律に抵触するおそれがある） 
* DVDドライブをリージョンフリーにするファームウェア
* Samsung製スマートテレビ用のSamyGO 
*ソニー製ウォークマンA30/A40/A50/ZX300/WM1A/WM1Z 用のcustom firmware

## 脚注

## 外部リンク
* PSP®「プレイステーション・ポータブル」 システムソフトウェア アップデート | プレイステーション® オフィシャルサイト
* PlayStation®3 システムソフトウェア アップデート | プレイステーション® オフィシャルサイト
* PlayStation®Vita/PlayStation®TV システムソフトウェア アップデート | プレイステーション® オフィシャルサイト
* ニンテンドー3DSのシステムバージョン変更履歴｜ニンテンドー3DS サポート情報｜Nintendo
* 本体更新情報｜Nintendo Switch サポート情報｜Nintendo