目次
⚠️ 注意
Big Sur でも Catalina 以前と同じように KeySetting_Default.plist
と KeySetting_Windows.plist
を編集することで、スペースを常に半角にすることができました。
しかし、副作用として SIP と SSV 認証が無効な状態でしか起動できなくな (るのと、恐らく FileVault の有効化をしたらまずいことにな) ります。
なにか続報があったら追記します。
また、情報をご存知の方がいたらコメント頂けると嬉しいです。
環境
PC: MacBook Pro (13 インチ, 2019)
CPU: 2.8 GHz クアッドコア Intel Core i7
OS: macOS Big Sur 11.2.3
手順
1. FileVault をオフにする
- システム環境設定アプリを起動する
-
セキュリティとプライバシー > FileVault
に移動する - 「FileVaultをオフにする...」 をクリックする
- 「暗号化をオフにする」をクリックする
- シャットダウンする
2. System Integrity Protection (SIP) を無効にする
- Command + R キーを押しながら電源を入れ (M1 Mac の場合は電源ボタンを長押しし) て macOS復旧を起動する
- メニューバーの
ユーティリティ > ターミナル
をクリックして、ターミナルを起動する - 以下のコマンドを実行して SIP を無効にする
# csrutil disable
3. Signed System Volume (SSV) 認証を無効にする
- 続けてターミナルで以下のコマンドを実行して SSV 認証を無効にする
# csrutil authenticated-root disable
2. Mac を再起動する
4. システムファイルを書き込み可能としてマウントする
- 通常のユーザーでログインする
- ターミナルを起動する
- システムボリュームのデバイス ID を確認する (私の場合は
disk1s5
でした)
% diskutil list | grep Macintosh
1: APFS Volume Macintosh HD - Data 199.0 GB disk1s1
5: APFS Volume Macintosh HD 15.1 GB disk1s5
4. マウントポイントを作成する
$MOUNT_POINT
は任意のパスに置き換えてください。
% mkdir $MOUNT_POINT
ホームディレクトリに mount
という名前で作成する場合は以下。
% mkdir ~/mount
5. システムボリュームをマウントする
$DEVICE_NODE
は /dev/システムボリュームのデバイス ID
に、 $MOUNT_POINT
はマウントポイントのパスに置き換えてください。
% sudo mount -o nobrowse -t apfs $DEVICE_NODE $MOUNT_POINT
システムボリュームのデバイス ID が disk1s5
で、マウントポイントを ~/mount
とする場合は以下。
% sudo mount -o nobrowse -t apfs /dev/disk1s5 ~/mount
5. 設定ファイルを編集する
- ディレクトリごと一応バックアップする
$MOUNT_POINT
はマウントポイントのパスに置き換えてください。
sudo tar acvf ~/Resources.tar.gz $MOUNT_POINT/System/Library/PrivateFrameworks/CoreJapaneseEngine.framework/Versions/A/Resources
マウントポイントを ~/mount
とした場合は以下。
sudo tar acvf ~/Resources.tar.gz ~/mount/System/Library/PrivateFrameworks/CoreJapaneseEngine.framework/Versions/A/Resources
2. KeySetting_*.plist
ファイルを開く (私は code
(VSCode) を使用しましたが vim
でも nano
でもお好きなエディタでかまわないです)
日本語 IM の設定で「Windows 風のキー操作」にチェックをつけていない場合は以下。
sudo code $MOUNT_POINT/System/Library/PrivateFrameworks/CoreJapaneseEngine.framework/Versions/A/Resources/KeySetting_Default.plist
日本語 IM の設定で「Windows 風のキー操作」にチェックをつけている場合は以下。
sudo code $MOUNT_POINT/System/Library/PrivateFrameworks/CoreJapaneseEngine.framework/Versions/A/Resources/KeySetting_Windows.plist
3. スペースの設定を書き換える
<key>' '</key>
<dict>
<key>command</key>
- <string>contextual_space</string>
+ <string>direct_input</string>
+ <key>character</key>
+ <string> </string>
</dict>
<key>shift+' '</key>
<dict>
<key>command</key>
- <string>contextual_space_reverse</string>
+ <string>direct_input</string>
+ <key>character</key>
+ <string> </string>
</dict>
<key>delete:</key>
<dict>
4. ファイルを保存して閉じる
6. SSV を更新する
- ターミナルで以下のコマンドを実行して、システムボリュームの新しいスナップショットを取得する
sudo bless --folder $MOUNT_POINT/System/Library/CoreServices --bootefi --create-snapshot
2. 再起動する
問題
以上の手順をすべて行った後に macOS復旧のターミナルで csrutil enable
と csrutil authenticated-root enable
を実行し、再起動したところ
Mac 起動 -> リンゴマーク -> 再起動 -> 問題が起きたためコンピュータを再起動しました。このまま起動する場合は、いずれかのキーを押すか、数秒間そのままお待ちください。 -> リンゴマーク -> 再起動 -> 問題が起きたためコンピュータを再起動しました。このまま起動する場合は、いずれかのキーを押すか、数秒間そのままお待ちください。 -> リンゴマーク -> 再起動 -> 問題が起きたためコンピュータを再起動しました。このまま起動する場合は、いずれかのキーを押すか、数秒間そのままお待ちください。 -> リンゴマーク -> ...
というループに陥ってしまいました。
再度 csrutil disable
と csrutil authenticated-root disable
を実行すると起動できたので、ひとまず SIP と SSV 認証は無効のまま使うしかなさそうです。
なお、SIP だけ有効で SSV 認証は無効、なども試してみましたが起動できませんでした。
参考文献
- macOS Catalina (Mojave, High Sierra, Sierra)で日本語入力時に常にスペースを半角に
- macOS 11.0 Big Surの署名済みシステム・ボリュームはセキュリティ保護を強化
- Big Sur’s Signed System Volume: added security protection
- macOS High Sierra の JapaneseIM で常に半角スペースを入力する方法
- ビッグサーで書き込み可能なルートとしてマウント
- How to make root volume writeable in Big Sur?
- Can I mount the root (system) filesystem as writable in Big Sur?