[2014/08/22] [iOS] 非純正BluetoothキーボードをJISかな配列で使えるようにする (要jailbreak)

iPhoneやiPad用として、Bluetooth接続の外付けキーボードが多数製品化されていますが、ほとんどがUS配列の製品です。Windows向けの日本語JISキーボードを接続しても、JIS配列にはならず、US配列となってしまうため、キーの刻印とは異なる文字が入力されてしまいます。これは、iOSがApple純正のJISキーボード以外は全てUS配列として扱ってしまうためです。エレコムなど一部の製品では、キーボード側で細工をしてJIS配列で入力できるようなモードを用意している製品がありますが、これも英数モードの記号だけを入れ替えるもので、JISかな入力時は「かな」の刻印通りには入力できません。今回は、iOSのキーボードレイアウトファイルを書き換える事で、非純正キーボードで、英数モードもかな入力モードも全てJIS配列で入力できるようにしてしまおうというハックです。

なお、脱獄した上に、システムファイルを書き換えますので、何が起きても保証できません。くれぐれも自己責任でご利用ください。当方は、いっさいの責任を負えません。

uchrファイルの解析には、下記のサイトを参考にさせていただきました。


  • https://github.com/stefslon/iOSKeyboardEditor
    MATLABで作ったWindows用のuchrエディタらしく、uchr構造解析の参考にさせていただきました。
  • http://taka8aru.blogspot.jp/2010/11/ipadjisbluetoothusb.html
    このサイトでは、USキーボード用の英数モード時のJIS配列uchrファイルを配布していますが、'¥'(円マーク)が'\'(バックスラッシュ)になっているので、この部分のみ修正しました。ちなみに、お勧めのエレコムの日本語キーボードでは、キーボードの刻印通り、'¥'だけでなく、「ろ」のキーで'\'も入力できます。


英数モードの修正ファイルは、こちらです→JIS-fake.uchr.zip

日本語入力時のJISかな配列は、KANA.uchrに定義されています。前述のiOSKeyboardEditorのソースコードとJIS-fake.uchrを参考に、KANA.uchrの配列を、USキーボードでJIS配列位置になるように書き換えました。このファイルは、刻印がUS配列のキーボードと刻印が日本語JIS配列のキーボード用共用です。キーの数が異なるだけで、iOS側からはどちらもUSキーボードに認識されるためです。USキーボードは、JISキーボードより2つキーが少ないため、本来JISキーボードでは未定義の「む」のシフトで「ー」、「け」のシフトで「ろ」が入力できるようにしてあります。ちなみに、uchrファイル内の日本語コードはUTF-16です。それから、変換キーは、エレコム製などのWindows/Mac切替機能がある場合は、Macモードすると、「かな」キーで日本語モードに「英数」キーで英数モードにダイレクトに切替できます。「漢字」キーによるトグル動作も可能です。もちろん、通常のcommand+spaceキーでも切替が可能です。キーボード側をiOSモードすると、ダイレクト切替は使えなくなるので、Macモードで使う事をお勧めします。

日本語モードの修正ファイルは、こちらです→KANA-fake.uchr.zip

■ 設定方法

前提としてjailbreak済みで、sshログイン、sftpファイル転送できる状態にしてください。jailbreak/ssh/sftpについては、他のサイトをご参照ください。


  1. JIS-fake.uchrとKANA-fake.uchrを/System/Library/KeyboardLayouts/USBKeyboardLayouts.bundle/uchrsに転送します。
  2. US.uchrとKANA.uchrをそれぞれ入れ替えます。

    cd /System/Library/KeyboardLayouts/USBKeyboardLayouts.bundle/uchrs
    mv US.uchr US.uchr.org
    mv KANA.uchr KANA.uchr.org
    cp JIS-fake.uchr US.uchr
    cp KANA-fake.uchr KANA.uchr
    chmod 644 US.uchr KANA.uchr
     

  3. 再起動等はしなくても動作している様ですが、念のため再起動して完了です。


これで、どんなキーボードでもJIS配列で英数・日本語とも入力できます。
特にマルチペアリングのキーボードがあれば、Windows、Mac、Andoird、iPhone、iPadと全て一台で同じ配列で入力できるので、とても快適です!
本ファイルを導入しても、純正JISキーボードは、そのまま使えます。純正とUSキーボードを同時に接続した場合は、JISが優先されるため、USキーボードの配列は、本修正が反映されません。

ちなみに、USキーボードを接続すると、JISかな配列は、こんな感じになります。テプラを貼りました。:-)
US Keyboard

下記あたりは、完全に刻印通りに入力ができ、安価でお勧めです。私は、電車移動の時は15.6mmピッチの小型キーボード、車移動のときは、19mmピッチのフルサイズを持ち歩いています。

キーピッチ19mmの9台マルチペアリング可能でUSB接続もできるキーボード


キーピッチ15.6mmの9台マルチペアリング可能でUSB接続もできるキーボード


キーピッチ17.5mmの9台マルチペアリング可能なキーボード


マルチペアリングの時は、マルチペアリングのマウスもお勧めです。


■ US.uchr JIS-fake.uchrの差分

0001F1 3D 5E
0001F3 5B 40
0001F5 5D 5B
0001F7 5C 5D
0001F9 FF 5D
0001FA FF 00
0001FD 27 3A
000207 FF 5C
0002A3 FF 5C
0002A4 FF 00
0002A7 FF A5
0002A8 FF 00
0002F7 40 22
0002FF 5E 26
000301 26 27
000303 2A 28
000305 28 29
000307 29 7E
000313 5F 3D
000315 2B 7E
000317 7B 60
000319 7D 7B
00031B 7C 7D
00031D FF 7D
00031E FF 00
00031F 3A 2B
000321 22 2A
00032B FF 5F
0003C7 FF 5F
0003C8 FF 00
0003CB FF 7C
0003CC FF 00
000437 2D 3D
000439 3D 7E
00043B 5B 60
00043D 5D 7B
00043F 5C 7D
000441 FF 7D
000442 FF 00
000443 3B 2B
000445 27 2A
0004EB FF 5F
0004EC FF 00
0004EF FF 7C
0004F0 FF 00

■ KANA.uchr KANA-fake.uchrの差分

000285 9C 78
000289 80 9C
00028B 78 80
00028D FF 80
00028E FF 30
000337 FF 8D
000338 FF 30
00033B FF FC
00033C FF 30
0003AD FC 0C
0003AF 78 FC
0003B1 FF 0D
0003B2 FF 30
000C87 FC 00
000C88 30 00
000CF7 9C 9B
000CF9 80 9C
000CFB 8D 80

Category: PC ( iPod touch/iPhone )