投稿

2月, 2022の投稿を表示しています

Nova Air 純正マグネティックケースの物理キーをすべてのアプリで使えるようにする

イメージ
Nova Airのマグネティックケースについて Nova Airは純正ケースに物理キーがついているのが魅力の一つです。ケースと本体の接触部分に端子があり、ケースのボタンを押すと Androidから物理キーが押されたと認識されるようになっています。 つまり、ケースが外部キーボード的な役割を果たします。この物理キーは標準ではVolUp/VolDownに対応しています。 このおかげで、ボリュームキーによるページ送りに対応しているKindleアプリなどの電子書籍ビューアであれば、物理キーによるページ送りを利用することができます。 物理キーの制約 一方でボリュームキーによるページ送りに対応していないアプリもあります。この場合はAndroid標準のアクセシビリティ機能をつかったキーリマッピングアプリを使って、キー入力イベントを画面タップに割り当てればば、物理キーをページ送りに使えます。 しかしながら、NovaAirではボリュームキーに関してリマッピングが動作しません。アクセシビリティ機能のレベルで認識できないようで、どのアプリを使っても結果は同様です。ケースを買った後で気づきましたが、海外でも困っている人が大勢いるようです。 というわけで、これを動くようにしていきます。 注:ここで紹介する方法を使うと、物理キーはボリュームキーではなくなるので、キーリマッピングアプリを経由しないと物理キーは使えなくなります。 root の取得 まず、 BOOX Nova Air で root を取得する の手順に従ってrootを取得します。パッチ済みboot.imgをNANDに書き込んでいないtemprootの状態でも構いません。 ここで使ったadbコマンドは以後の手順でも使います。 キーマップファイルの取得 adb pull /system/usr/keylayout/gpio-keys.kl をコマンドプロンプトで実行しgpio-keys.klを本体から取得します。 キーマップファイルの編集 中身を編集します。もとの中身は以下のようになっていると思います。 key 115 VOLUME_UP key 114 VOLUME_DOWN key 102 HOME key 528 FOCUS key 766 CAMERA これを以下のように変更します。 key 115

BOOX Nova Air で root を取得する

イメージ
BOOX Nova シリーズでrootを取得する方法を紹介します。 この記事ではNova Airを例に挙げていますが、Nova NoteやNova Leafなど、全てのNovaシリーズでも同じ方法でrootを取得できます。 初期イメージの取得 root取得済みのイメージを作成するため、初期イメージを取得します。初期イメージはブラウザから普通にダウンロードできます。 ダウンロードページはこちら です。 他の機種かつ発売直後でアップデートがまだない場合 アップデートがまだされておらず、ダウンロードページでファームウェアが見つからない機種の場合は、この 記事の法則に従ってOTAのURL を辿ります。 Nova Airの場合、一覧のURLは以下のようになります。 http://data.onyx-international.cn/api/firmware/update?where=%7B%22buildNumber%22:0,%22buildType%22:%22user%22,%22deviceMAC%22:%22%22,%22lang%22:%22en_US%22,%22model%22:%22NovaAir%22,%22submodel%22:%22%22,%22fingerprint%22:%22%22%7D この中で 2022年2月現在の最新ファームの場URLは以下です。 http://firmware-us.boox.com/83536cf3a6e7bc19112380c4ebb75477/update.upx イメージの暗号化解除と抽出 イメージは暗号化されているので、それを復号します。復号には decryptBooxUpdateUpx を利用します。decryptBooxUpdateUpxはPython 使って動くので Python を事前にインストール しておきます。 以下はNovaAirの場合の実行例です。 pip install pycryptodome python DeBooxUpx.py NovaAir update.upx 実行するとアップデートイメージの update.zip が得られます。普通の zip ファイルになっていますので、この中からboot.img 取り出します。 root 化済み boot.img の作成 ここからは一般的なb