備忘録:iPhone/iPad 接続・復元機能を物理的に抹殺する
macOSシステムがiOSデバイスを認識する根本的な仕組みを無効化し、通常接続・リカバリーモードを問わず、デバイスとの通信を物理レベルで遮断する手法。
1. 通信プロセスの心臓部「usbmuxd」の無効化
macOSとiOSのUSB通信を仲介する usbmuxd プロセスを、バイナリレベルでロックする。
Bash
# バイナリの不変フラグを解除(SIP OFFが必要)
sudo chflags noschg /usr/libexec/usbmuxd
# 全ユーザーの実行・読み取り権限を剥奪
sudo chmod 000 /usr/libexec/usbmuxd
# 再度不変フラグを立て、システムによる自動修復を防止
sudo chflags schg /usr/libexec/usbmuxd
2. ペアリング鍵の保存先「lockdown」の要塞化
デバイスとの信頼関係(ペアリング)を保存するデータベースディレクトリを破壊し、アクセス不能にする。
Bash
# ディレクトリのロック解除
sudo chflags -R noschg /var/db/lockdown
# 既存のペアリング情報をすべて削除
sudo rm -rf /var/db/lockdown/*
# ディレクトリの全権限を剥奪
sudo chmod 000 /var/db/lockdown
# 不変フラグでディレクトリの状態を固定
sudo chflags schg /var/db/lockdown
3. 通信プロセスの完全停止
現在実行中の関連プロセスをすべて強制終了させ、設定を反映させる。
Bash
sudo killall -9 usbmuxd AMPDevicesAgent AMPDeviceDiscoveryAgent
4. 自動化スクリプト(.zshrc への実装)
ワンコマンドで「封印」と「解除」を切り替えるためのシェル関数。
Bash
# iOS通信抹殺モード
kill_ios_link() {
# ロック解除と掃除
sudo chflags -R noschg /var/db/lockdown /usr/libexec/usbmuxd 2>/dev/null
sudo killall -9 usbmuxd AMPDevicesAgent AMPDeviceDiscoveryAgent 2>/dev/null
sudo find /var/db/lockdown -mindepth 1 -delete 2>/dev/null
# 権限剥奪と物理ロック
sudo chmod 000 /var/db/lockdown /usr/libexec/usbmuxd
sudo chflags schg /var/db/lockdown /usr/libexec/usbmuxd
echo "iOS Blackout Mode: ON"
}
# iOS通信復旧モード
restore_ios_link() {
# ロック解除
sudo chflags -R noschg /var/db/lockdown /usr/libexec/usbmuxd 2>/dev/null
# 標準権限の再割当て
sudo chmod 700 /var/db/lockdown
sudo chmod 755 /usr/libexec/usbmuxd
sudo chown _usbmuxd:_usbmuxd /var/db/lockdown
# 通信プロセスの再起動
sudo /usr/libexec/usbmuxd &
echo "iOS Blackout Mode: OFF"
}
5. 運用上の注意
- SIP (System Integrity Protection):
/usr/libexec以下の変更を伴うため、本設定の適用・解除時はSIPを無効化しておく必要がある。 - 効果: 本設定適用後は、Finder、iTunes、Apple Configurator、写真アプリ等、すべてのmacOSネイティブアプリにおいてiOSデバイスが完全に不可視となる。