GestaltX — iOS 27.xに対応したMobileGestalt設定エディタ
huamidev/GestaltX
★ 6,320 ・ Swift ・ GPL-3.0
概要
GestaltXは、iPhoneおよびiPadを対象としたMobileGestaltエディタです。開発者のhuamidev氏によって公開されており、iOSおよびiPadOS 27.x環境においてデバイスの機能フラグや構成パラメータの確認・編集を行うことができます。
MobileGestaltは、iOS/iPadOSシステム内でデバイスの機能可否やハードウェア構成、各種設定フラグなどを管理している領域です。GestaltXを使用することで、ディスプレイ表示に関するフラグやリージョンコード、各種プリセット設定をGUI上から調整することが可能になります。また、直接キーや値を操作できるフィールドエディタ機能も備えています。
本ツールは、システムの内部フラグや動作仕様を検証したい開発者やセキュリティ研究者、またはOSの設定項目を詳細に調査したい技術者に向けて提供されています。
主な特徴
-
豊富な機能プリセット Dynamic Islandのレイアウトや常時表示(Always-On Display)、HDR写真表示といったディスプレイ周りのフラグから、充電上限、タップして起動、アクションボタン、ステージマネージャ機能など、多岐にわたる設定項目があらかじめプリセットとして用意されています。
-
リージョンコードおよび機能フラグの変更 本体の販売地域サフィックスを維持したまま、独立してリージョンコード(
RegionCode)を編集するオプションを提供しています。米国(LL)をはじめ、日本、英国、中国本土、香港、台湾などを選択でき、各種機能フラグの有効化試行に対応しています。 -
詳細なフィールドエディタ機能 プリセットにない項目でも、
CacheExtraフィールドを読み込み、検索、追加、編集、削除することができます。値のデータ型としてString、Integer、Real、Boolean、Data、Date、Array、Dictionaryをサポートしており、plistファイルのローカルインポートおよびエクスポートも行えます。 -
多重のバックアップと復元メカニズム デバイス編集前の自動初期バックアップに加え、書き込みごとのバックアップ、変更前オリジナル値の保持など、安全策が組み込まれています。プリセットを無効化するか「Revert」ボタンを実行することで、記録された元の値と型へ復元できます。
-
plistファイルの検証付きインポート 共有拡張機能(Share Extension)を経由してMobileGestaltのplistを取り込む際、デバイス固有の証明情報や識別子をチェックし、不整合なファイルの上書きを防止する検証システムを備えています。
-
多言語ローカライズ iOSのシステム言語設定に追従し、日本語、英語、簡体字中国語、繁体字中国語(台湾/香港)、ベトナム語、ロシア語、韓国語、スペイン語、ペルシャ語(RTLレイアウト対応)の表示をサポートしています。
使い方
READMEに記載されている導入および基本的な操作手順は以下の通りです。
1. アプリの入手と署名
リポジトリのReleasesページからIPAファイルをダウンロードします。Safariでダウンロードが不完全になる事象が報告されているため、ファイル破損エラー等が発生した場合は再ダウンロードや別ブラウザの利用が推奨されています。
署名とインストールにあたっては、以下の条件を満たす必要があります。
- 少なくとも1つの共通App Groupを含む証明書とプロビジョニングプロファイルを用意する。
- 本体アプリおよび組み込まれている共有拡張機能(Share Extension)の両方に同じApp Groupを割り当てて再署名する(SideStoreやAltStore等のツール利用時もApp Groupの維持が必要)。
2. plistファイルのインポートと編集
ファイルアプリなどからMobileGestalt plistを読み込む手順は次の通りです。
- 「ファイル」アプリ等でMobileGestalt plistを選択し、共有メニューから「GestaltX」を選択します。
- 共有拡張機能がApp Groupを介してアプリ本体へファイルを渡します。
- アプリがデバイス識別子等の整合性を検証後、インポート確認プロンプトが表示されるので確認します。
- 「MG Control」画面にて、型付きのキーや値の追加・編集・名前変更・削除を行います。
3. 設定の適用と反映
変更内容を適用する際は、以下の点に留意します。
- 検証済みファイルをデバイスへ反映するには「Restore Imported Plist」を使用します。システムのキャッシュレイアウトの一致確認や追加の確認プロンプトを経て、バックアップ取得と書き込み検証が自動で実行されます。
- 設定をOS側に反映させるため、変更後は付属の「NeoSpring」機能によるリスプリング(respring)または端末の再起動を行います。
技術的なポイント
-
Swiftによる開発と外部エクスプロイト/ライブラリの統合 主要な実装言語としてSwiftが採用されています。デバイス上のMobileGestaltアクセス領域(SystemGroup)へのアクセスには、
worse_queryが利用されています。また、リスプリング機能にはNeoSpringが統合されています。 -
App Groupを活用したプロセス間連携 本体アプリと共有拡張機能の間でファイルデータの受け渡しを行うため、共通のApp Groupコンテナが利用されています。実行時に署名された実際のApp Groupを動的に検出する構造が取られています。
-
デバイスバインドによる保護機構 エクスポートされたplistには、検証用の情報が紐付けられます。検証キーは端末ローカルのKeychain内に保持され、ファイル内には直接含めない設計となっています。他の端末由来のplistを誤って適用してシステムを破損させないよう、最低2つの固有識別子による突き合わせ検証が行われます。
-
段階的な検証フロー 設定の書き込み時には、変更前後のレビュー、書き込み後の検証プロセスが挟まれる設計になっており、意図しないデータ破損を防ぐ考慮がなされています。
注意点
-
対応環境の制限 GestaltXはiOS / iPadOS 27.xを対象としています。READMEには、iOS / iPadOS 26.x環境では端末上からのMobileGestaltアクセスがサポートされていない旨が明記されています。
-
署名要件の厳格さ 配布されているIPAファイルはAd-hoc署名状態であり、SideStoreやAltStore、あるいは自身の開発者証明書で再署名する際、適切なApp Groupのエンタイトルメントが付与されていないと正常に動作しません。
-
システム破損リスクと免責事項 MobileGestaltのキーを改変する行為は、システムの不安定化や起動不能(復元が必要な状態)を引き起こす可能性があります。READMEの免責事項(Disclaimer)において、本ツールはセキュリティ研究および教育目的のみを意図したものであり、変更の適用に伴うリスクはユーザー自身の自己責任であると明記されています。作業前には必ず端末全体のバックアップを作成することが求められます。
-
ライセンス GestaltXは「GNU General Public License v3.0(GPL-3.0)」のもとで公開されています。
まとめ
GestaltXは、iOS/iPadOS 27.xにおいてMobileGestaltの低レイヤー設定をグラフィカルに管理・変更できるSwift製ツールです。安全面を配慮した検証機構やバックアップ機能、各種ハードウェアフラグのプリセットが揃っており、iOSの内部構造や機能フラグを調査したい研究者にとって有用な選択肢となります。





