ルートを使用せずにナビゲーションバーのアイコンを変更したり、ボタンを再配置したりする方法

このチュートリアルでは、Nougat を実行している場合にナビゲーション バーのアイコンを変更する方法、またはボタンを再配置する方法を説明します。 ルートは必要ありません。

初めて走っている方は Android O 開発者プレビュー 隠されたものをいじったかもしれない ナビゲーションバーカスタマイザー SystemUIチューナーにあります。 このナビゲーション バー カスタマイザーは、実際には AOSP で数か月前から存在していましたが、Android Nougat でアクセスする唯一の方法は、 システムUI APKの変更もちろん、これには root アクセスが必要です。 Android Nougat の隠しナビゲーション バー カスタマイザーが次のような機能を備えていることを発見したのは、つい今週になってからです。 実際には、root アクセス、カスタム ROM、またはシステム UI mod を必要とせずにアクセスできます。. この機能を使用すると、ナビゲーション バーのアイコンを変更したり、キーを交換したり、ボタンを追加したりできます。

そうです - ロックされたブートローダーを使用して、完全にストックされたルート化されていない ROM 上のナビゲーション バーを変更することが可能です。 Android O に限定されていると人々が考えていた機能は、実際には、Nexus、Pixel、OnePlus、および一部の Sony、HTC、Motorola スマートフォンで Android Nougat を実行している人なら誰でもアクセスできます。 お使いのデバイスが Google のソフトウェアに近いソフトウェアを実行している場合 (Samsung および Huawei/Honor ユーザーの皆様、ごめんなさい)、お使いのデバイスには Google が使用できる隠し AOSP ナビゲーション バー カスタマイザーが搭載されている可能性があります。 このチュートリアルでは、ナビゲーション バー カスタマイザーを使用して次のことを行う方法を説明します。 ボタンのアイコンを好きなものに変更したり、好きな順序で再配置したりできます。

Nexus 6 の Google Pixel Nav バー

Nexus 6 の逆向きのナビゲーション バー

ナビゲーション バーの変更 - セットアップ

要件: AOSP ナビゲーション バー カスタマイザーと互換性のあるデバイスが必要です。 「互換性」セクションを参照してください。 このスレッドで. (注: デバイスの OEM またはタイプがそのスレッドにリストされていない可能性があります。 デバイスに互換性があるかどうかを確認する唯一の方法は、試してみることです。その方法については以下で説明します。

ナビゲーション バーを変更するには 2 つの方法があります。 1 つはアプリを使用する方法、もう 1 つは ADB シェル コマンドを使用する方法です (これがアプリの動作方法です)。 完全を期すために両方を紹介しますが、現時点では、開発者がアプリを更新してこの機能を含めるまで、アプリから標準のナビゲーション バー アイコンを変更できないことに注意してください。

最初に行う必要があるのは、デバイスのナビゲーション バーを変更できることを確認することです。 お使いのデバイスが、 カスタムナビゲーションバーのネジなら、そうなる可能性が高いでしょう。 このアプリに付属する簡単なチュートリアルを実行することで確認できます。

アプリをインストールする Google Play ストアから (そしてまた ベータテストにサインアップする そのため、実験的な機能を使用して、後でナビゲーション バーを再配置できます)。 次に、アプリを開いて、紹介画面に進みます。 カスタム ナビゲーション バーは、アプリの使用を続行するために、WRITE_SECURE_SETTINGS と呼ばれる特定の権限を付与するように求めます。 アプリケーションに記載されているように、これを行うには 2 つの方法があります。

  1. root化されたデバイスがある場合は、開きます ターミナルエミュレータ 携帯電話で次のように入力して root アクセスを許可します。 su. 次に、次のコマンドを入力します。 pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGS
  2. デバイスがルート化されていない場合は、ADB を通じて権限を付与する必要があります。 マシン上でコマンド プロンプト/ターミナルを開き、次のコマンドを入力します。 adb shell pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGS

上記の 2 つの方法のいずれかでアプリにこの権限を付与すると、アプリは互換性テストを続行します。 ナビゲーション バーが変化しない場合は、残念ながら運がありません。 ナビゲーション バーが変化して右矢印ボタンが表示された場合、お使いのデバイスはサポートされています。 次に、ナビゲーション バーの変更に進みます。


ナビゲーションバーボタンの再配置

アプリメソッド

アプリのセットアップが完了したので、ナビゲーション バーのボタンを非常に簡単に再配置できます。 これを行うには、カスタム ナビゲーション バー アプリのベータ テスト バージョンを使用している必要があるため、続行する前に、戻ってベータ チャネルにいることを確認してください。

ベータ版を使用している場合は、というセクションが表示されます。 実験的な調整 メインの「設定」セクションで。 それをタップすると、既存の戻る、ホーム、最近のキーを置き換えることができるオプションが表示されます。 ここで、「戻る」ボタンを「概要 (最近)」ボタンに変更し、「概要 (最近)」ボタンを「戻る」ボタンに変更することで、キーを簡単に再配置できます。 または、必要に応じて変更することもできます。実際の制限はありません。 キーを交換した後、ナビゲーション バーの設定メニューでレイアウト オプションを試してみることもできます。

ADB方式

必要に応じて、ADB コマンドを使用して同じことを行う方法を以下に示します。 変更するコマンドは、sysui_nav_bar というセキュア設定設定です。 この設定は、ナビゲーション バーのレイアウトを含む文字列です。 設定のデフォルトの構造は次のとおりです

space, back; home; recent, space

ここで、スペースはナビゲーション バー キーを互いに区切る空のスペースを表し、戻る、ホーム、最近はナビゲーション バーの 3 つのデフォルト ボタンを表します。 たとえば、戻るキーと最近のキーを交換したい場合は、次のように文字列を変更する必要があります。

space, recent; home; back, space

注: 次のコマンドのいずれかを root 化されたシェル環境から入力しようとしている場合、 携帯電話上のターミナル エミュレータの場合、送信する前にコマンドから「adb shell」を省略する必要があります。 彼ら。

この文字列を実際に変更するには、次の構文で ADB シェル コマンドを使用する必要があります。

adb shell settings put secure sysui_nav_bar "STRING"

したがって、最近のキーと戻るキーを交換するために送信するコマンドは次のようになります。

adb shell settings put secure sysui_nav_bar "space, recent; home; back, space"

ご想像のとおり、これはかなり柔軟です。 設定の文字列値を変更することで、キーを自由に移動できます。 たとえば、2 つのスペースの配置場所を変更することで、反転したナビゲーション バー キーを左寄せまたは右寄せにすることができます。

左揃え:

adb shell settings put secure sysui_nav_bar "recent; home; back, space, space"

右寄せ:

adb shell settings put secure sysui_nav_bar "space, space, recent; home; back"

ただし、ナビゲーション バーのボタンを、標準の「戻る」、「ホーム」、または「最近」キーとはまったく異なるものに変更することもできます。たとえば、多くのキーのうちの 1 つを送信するなどです。 重要なイベント. 次のセクションではこの事実を利用して、ナビゲーション バー ボタンのアイコンを変更する方法を説明します。


カスタムナビゲーションバーアイコン

さて、次のセクションは、次のような事実があるため、大したことではないように思えるかもしれません。 多数のアプリケーションの上 rootなしでナビゲーションバーを変更すると約束するPlayストア。 これらは機能しますが、Chrome などの特定のアプリで全画面ビデオや一部のゲームを再生すると、これらのアプリにバグがあると多くのユーザーが報告しています。 さらに、これらのアプリの多くでは、ナビゲーション バーの色を変更するタイミングを知るためにアプリを監視するために、アクセシビリティ サービスを有効にする必要があります。 パフォーマンスが低下する可能性があります. 最後に、これらのアプリに長期間依存しすぎると、Android O が公開されると突然動作しなくなって驚くかもしれません。これは、次の Android バージョンが これらのアプリの機能を無効にする システム UI 要素の上に描画します。

私たちが使用している方法は、Google のナビゲーション バー チューナーの実装に基づいているため、これらの問題はありません。 ただし、現在、事前にお知らせしておきたい問題が 1 つあります。この方法に従ってホーム ボタンを変更することを選択した場合、 ホームボタンの長押しアクションが機能しなくなります つまり、ホームボタンから Google アシスタントにすぐにアクセスできなくなります。 それでも問題ない場合は、ナビゲーション バーのアイコンを変更する方法を次に示します。

最初に行う必要があるのは、デフォルトのナビゲーション バー キーのアイコンを置き換えるアイコンをダウンロードすることです。 Google Pixel ナビゲーション バー アイコンを取得するためのダウンロード リンクを提供しますが、他に何か必要な場合は、独自のアイコンを見つけるのはあなた次第です。 アイコンは PNG 形式で必要になります。サイズについては、必要なアイコンのサイズを調べることで決定できます。 Material.io のデバイスのディスプレイ密度メトリクス そしてそれを アイコンサイズの参考表.

これらの Google Pixel ナビゲーション バー アイコンの抽出に対するクレジットは、XDA シニア メンバーに与えられます。 ダリオムク. ダウンロード 1920x1080p をお持ちの場合はこのアーカイブ 表示と 2560x1440p ディスプレイをお持ちの場合はこれ. いずれかの zip ファイルの内容を、ストレージのルート ディレクトリにある「NavIcons」というフォルダーに抽出します。

適切な場所にアイコンを配置したら、次の ADB シェル コマンドを入力します (長いコマンドであることに注意してください)。

adb shell settings put secure sysui_nav_bar "space, key(4:file:///storage/emulated/0/NavIcons/back.png);key(3:file:///storage/emulated/0/NavIcons/home.png);key(187:file:///storage/emulated/0/NavIcons/recents.png),space"

このコマンドは、back、home、recent キーを、同じ機能を実行する KeyEvent に置き換えます。 特に背面は次のように置き換えられます。 KEYCODE_BACK、家はに置き換えられます キーコード_ホーム、最近の部分は次のように置き換えられます KEYCODE_APP_SWITCH. これらのキー コードはまったく同じ機能を実行しますが、KeyEvent を使用しているため、キー コードに使用するアイコンを指定できます。 この場合、/NavIcons に保存した back.png、home.png、recents.png を指しています。

ただし、現在、シミュレートされたキー入力の長押しイベントを認識する方法がないため、ストック キーを KeyEvent に置き換えることにより、ホーム長押し機能が失われます。

現時点では、この方法は理想的ではない、または実装が簡単ではないように思われるかもしれませんが、この記事の執筆時点では、カスタム ナビゲーション バー アプリは独自のアイコンの追加をサポートするように更新されていません。 現時点では、私の方法 (これはまさにそのアプリの動作方法であり、アプリが更新されると同じ制限に直面することになります) は、ナビゲーション バーに必要なカスタム アイコンを取得する方法です。


このチュートリアルはこれで終わりです。 今後のチュートリアルでは、特に Tasker などの自動化アプリを使用したコンテキストに応じた方法で、ナビゲーション バーを変更する潜在的な実際的な使用方法を紹介します。 フォローしてください XDA のチュートリアル カテゴリ 私たちが公開するすべての最新のヒントやコツを常に最新の状態に保つため。