正しく動作するようにHIDデバイスをトレーニングします(BTキーボードを読み取ります)

こんにちは、habralyudi!

DRでは、友人がBTキーボードをくれました。 小さく、白い、きれいで、快適!

Android 2.3.5(SGSII)に接続し、メニューの操作、プログラムの起動、Vkontakteへのアクセス、メッセージの作成に使用し始めました... ! しかし、私がしたこと。 どうだろう?



今、私は多くを理解しました、そして、私は私の話をどこから始めればよいかわかりません。 したがって、それは長く退屈になりますが、ゲームはろうそくの価値があります!



私たちが持っています:


キーボードRAPOO E6300

AndroidフォンSamsung Galaxy S II



最初のステップ


まず、キーボードテクニカルサポートに手紙を書いて、次のように尋ねました。Android向けのキーボードのセットアップについてお問い合わせください。 予想通り、「このキーボードはiPad専用に作られています」という愛情のこもった拒否を受けました。



私は彼らからの回答を待っている間に、HIDデバイスとAndroidの間の相互作用のトピックを「グーグル」し始めました。 そして、大量のゴミの中から、2つの便利な記事を見つけました。





これらの記事を調べると、デバイスが適切に機能するには、少なくともキー割り当てを含む.klファイルを編集する必要があることが明らかになりました。



記事を読むのが面倒だった人には、簡単に説明します。

Androidデバイスにフォルダーがありますデバイスによって異なりますが、詳細は上記の記事をご覧ください)

/system/usr





必要なディレクトリはどこですか

keylayout



keychars





それらには、タイプ_.kl



および_.kcm.bin



ファイルがそれぞれ含まれています。



最初 (プレーンテキスト)は、キーボード信号(Linuxキーコード)とAndroid信号(Androidキーコード名)の対応を担当し、次のコマンドのリストのように見えます。



key 30 A WAKE





復号化: key [scancode] [Android key] [Flags]





ロシア語:コード30のボタンがキーボードで押されると、Aキーがシステムに送信され、デバイスが起動します。



WAKEフラグにより​​、デバイスは起動し、文字Aを押すことに応答します。

そして、WAKE_DROPPEDフラグは、あなたを目覚めさせるだけです。 Aを押すには、もう一度押す必要があります。

この記事には他のフラグの説明があります。



2番目 (ソースからコンパイルされたバイナリ)は、Shift、Altなどとともにキーの組み合わせを担当します。 Androidキーに対するアクションを説明するさまざまなオプションの表が既にあります。 元の形式では、次のようになります。



key A {

label: 'A'

base: 'a'

shift, capslock: 'A'

ctrl, alt, meta: none

}








そして、作業を高速化し、デバイスをロードするためにコンパイルされました。



何をすべきかを決定します。


私は再びキーボード技術サポートに手紙を書き、私の観察を説明しました。 しかし、私は彼らから何の支援も得ませんでした。 彼らは興味がありません。 あなたはすべて自分でやらなければなりません。



また、ルート?


/システムフォルダにアクセスするには、ルート権限が必要です。 だから、それを手に入れ、保証を失う必要はありません。 私は長い間方法を探していましたが、自分用の方法を見つけました 。 何もフラッシュする必要はありません。 すべてを戻すことができます。 あなた自身のリスクで使用してください! すべては承認のためにのみ! 責任はありません! しかし、私にとってはすべてが正常に機能しました。



クッキングファイル


そこに何かを置くには、ファイルkeyboard_name.klを準備する必要があります。 そして、元のサンプルをダウンロードすることから始める価値があります。 また、ファイルマネージャを使用してそこから必要なファイルをコピーすることにより、rootなしで/ system / usr / keylayout /フォルダーにアクセスできます。 ASTROを利用しました。 ただし、 Samsung KIESに付属のadb.exeコンソールアプリケーションを使用できます。

adb pull remote local



- copy file/dir from device







最初のレーキ:

必要なファイルの名前を見つけるのは難しい場合があります。 記事によると、ファイル名の一般的な原則はVendor_XXXX_Product_XXXX_Version_XXXX.klまたはDEVICE_NAME.klです。


さて、彼らはファイルを見つけ、ダウンロードし、 コピーを作成し 、メモ帳などのテキストエディターで開きました。

私のファイルはBroadcom_Bluetooth_HID.klと呼ばれていました



すっごく、ここに何があるの?


すべてが明確で、一部のコード、一部のボタンは特に明確ではありませんが、この記事を最初からここまで注意深く読んでいるので、準備ができています。 しかし、キーコードを決定する方法は?



2番目のレーキ:

キーコードを決定するには、デバッグツールまたは...が必要です
もちろん、最初の試行ではなく、市場に行って必要なものを見つけてください 。 3〜4つのプログラムを試しました。 誰もが必要な機能を自慢できるわけではありません-多くはAndroidコードのみを表示しました。Androidコードは既にファイルに登録されています。 そして、スキャンコッドが必要です!



スキャンコッドを入手


キーボードをコピー機で「ゼロ」にし、KeyEvent Displayから渡されたコードにペンで署名し始めました。 そのため、一連のコードを取得しましたが、それらをファイルに書き直して正しい機能を割り当てる必要があります。





ファイルを編集


キーボードに関する最初の記事を開き、ボタンに新しい値を系統的に割り当てます。

次のようになります。

 # RAPOO E6300 keylayout file # (c) Nix Pro Soft - Nikita Tratorov, 2012 key 172 HOME WAKE_DROPPED key 217 SEARCH WAKE_DROPPED key 165 MEDIA_PREVIOUS key 164 MEDIA_PLAY_PAUSE key 163 MEDIA_NEXT key 114 VOLUME_DOWN key 115 VOLUME_UP key 1 BACK WAKE_DROPPED # key 183 key 41 GRAVE key 2 1 key 3 2 key 4 3 key 5 4 key 6 5 key 7 6 key 8 7 key 9 8 key 10 9 key 11 0 key 12 MINUS key 14 DEL key 15 TAB key 16 Q key 17 W key 18 E key 19 R key 20 T key 21 Y key 22 U key 23 I key 24 O key 25 P key 13 EQUALS key 43 BACKSLASH key 58 SHIFT_LEFT key 30 A key 31 S key 32 D key 33 F key 34 G key 35 H key 36 J key 37 K key 38 L key 39 SEMICOLON key 28 ENTER WAKE_DROPPED key 42 SHIFT_LEFT key 86 GRAVE key 44 Z key 45 X key 46 C key 47 V key 48 B key 49 N key 50 M key 51 COMMA key 52 PERIOD key 53 SLASH key 103 DPAD_UP key 54 SHIFT_RIGHT key 56 ALT_LEFT # key 125 # key 161 key 57 SPACE WAKE_DROPPED # key 126 key 26 LEFT_BRACKET key 27 RIGHT_BRACKET key 40 APOSTROPHE key 105 DPAD_LEFT key 108 DPAD_DOWN key 106 DPAD_RIGHT # keys for Android >=3.0 key 113 VOLUME_MUTE key 111 FORWARD_DEL key 1 ESCAPE WAKE_DROPPED key 59 F1 key 60 F2 key 61 F3 key 62 F4 key 63 F5 key 64 F6 key 65 F7 key 66 F8 key 67 F9 key 68 F10 key 87 F11 key 88 F12 key 58 CAPS_LOCK key 29 CTRL_LEFT key 104 PAGE_UP key 93 PAGE_DOWN
      
      







3番目のレーキ:

Android OSのバージョンですべてのボタンが機能するとは限りません! 最初のキーボード記事のバージョン列に注意してください。 自分のバージョンよりも大きいバージョン用に設計されたコードを使用すると、この時点からキーボードは機能しなくなります。
間違ったボタンの後に表示されるすべてのボタンは機能しません。



したがって、将来の互換性のために、Android OSのバージョン用ではないキーを最後にファイルに転送しました。 実践が示しているように、この場合、すべてが機能し、ファイルはOSの他のバージョンに転送する準備ができています。



ファイルをシステムにアップロードします


ここでは、コンソールユーティリティなしでは実行できません。 デバイスをデバッグモードでUSB経由で接続し、cmd.exeコンソールでコマンドを順番に実行します。

 d: cd D:\android-sdks\platform-tools adb push Broadcom_Bluetooth_HID.kl /data/local/Broadcom_Bluetooth_HID.kl adb shell su mount -o remount,rw -t ext4 /dev/block/mmcblk0p9 /system rm /system/usr/keylayout/Broadcom_Bluetooth_HID.kl cp /data/local/Broadcom_Bluetooth_HID.kl /system/usr/keylayout/Broadcom_Bluetooth_HID.kl chmod 644 /system/usr/keylayout/Broadcom_Bluetooth_HID.kl exit exit
      
      







4番目のレーキ:

/システムフォルダーは、ファイルシステム上で読み取り専用モードです。 そこに書き込むには、RWモードでシステムを再マウントする必要があります。 ただし、このためには、単純なマウントコマンドを使用して、マウントポイントとファイルシステムタイプを決定する必要があります。
デバイスを再起動すると、ファイルシステムは再び読み取り専用になります。



コマンドの説明:


D:\ android-sdks \ platform-tools-これはSDKのadb.exeがあるフォルダーです(KIESのみがインストールされている-Program Filesを参照)

adb push Broadcom_Bluetooth_HID.kl ...-このコマンドは、ファイルをフォルダーにアップロードします。 フォルダ/データ/ローカル/はランダムに選択されません。 これは、何かを置くことができる数少ないフォルダの1つであり、そこからファイルを別のファイルシステムにコピーできます。

mount -o remount、rw -t ext4 / dev / block / mmcblk0p9 / system-システムを再マウントします。 インターネットにはこれを行う方法の例がたくさんありますが、何らかの理由で間違ったディスクとファイルシステムがそこに表示されます。 調整する必要がありました。

残りは古いファイルを削除し、ファイルをコピーして正しい権利を割り当てます。 権利の割り当ては非常に重要です!



確認する


ここで、USBを切断し(Bluetoothがオフになる場合があります)、キーボードへの接続を再開する必要があります。





稼いだ!


おめでとうございます! そうでなければできませんでした! よくできました! のみ...どのようにロシア語に切り替えることができますか?

それほど長くないGoogle、簡単な答えを見つけました-ハードウェアをサポートするソフトウェアキーボードが必要です。 それらの多くはありません。 私の意見では、今日は完璧です-ruKeybord

インストール、構成、レイアウトにqwertyなどの代わりにハードウェアキーボードをインストールします。

Alt + Shift (UPD:またはShift + Space )でレイアウトを切り替えることができます。 そして、チェックボックスが表示されます。



キーボードをすばやく切り替えるには、入力フィールドに指を置き、ドロップダウンメニューから[入力モード]を選択します。



まとめ


どのように試しても、2.3.5ですべてのボタンをコンピューターのように動作させることは不可能です。 しかし、すぐにAndroid OS 4にアップグレードすると、新しいボタンが機能します。 最初の写真では、パテに座ってサイトを編集しています。 Ctrlボタンが本当に恋しいです。 OSの更新を本当に楽しみにしています。 結果に満足。



できた!


ご清聴ありがとうございました!



All Articles