Настройка панели навигации всегда была скрыта в стандартной версии Nougat... и для нее никогда не требовался рут-доступ

Настройка панели навигации Android O была фактически скрыта в Android Nougat. Ну, мы все это знали, но оказывается, что рут никогда не требовался!

Поднимите руки: сколько из вас на самом деле участвует в первых соревнованиях? Предварительная версия Android O для разработчиков? Мало того, что Developer Preview доступна только для нескольких устройств Google, она еще и не подходит для повседневного использования. Конечно, он никогда не предназначался для использования обычным пользователем, а скорее в качестве испытательного стенда для разработчиков, чтобы убедиться, что их приложения будут работать, когда Android O официально выйдет. Однако это не значит, что мы не можем развлечься и взглянуть на то, что внутри. Одна из самых интересных функций, появившихся на устройствах Android O, — это настройка навигационной панели находится в System UI Tuner. Но что, если мы скажем вам, что эта потрясающая настройка панели навигации доступна не только пользователям Android O Developer Preview? Верно, эта функция на самом деле уже работает на Android 7.X Nougat и не требует root-доступа.

Фейспалм. Когда я написал свой руководства по контекстному изменению панели навигации на Android O я предполагал, что эти команды оболочки, которые я отправлял, будут работать только на Android O. Оказывается, это не так — эти команды на самом деле прекрасно работают на Android Nougat. Сейчас, мы знакомы почти 9 месяцев что настройку панели навигации можно включить в Android Nougat, однако первоначальное открытие требовало от пользователей изменить APK-файл SystemUI к открыть настройки тюнера навигационной панели. Очевидно, что это было серьезным препятствием, которое необходимо было преодолеть для многих пользователей, поскольку для этого требуется не только root-доступ, но также требуется декомпиляция и исправление APK-файла SystemUI для каждого отдельного обновления. Однако вы даже не нуждаться Чтобы изменить SystemUI, чтобы открыть эту активность тюнера навигационной панели, вы в любом случае можете изменить навигационную панель вручную с помощью команд оболочки!

Предупреждение: некоторые пользователи сообщают, что настройка панели навигации не работает в последней бета-версии Android 7.1.2 на Google Pixel. Попробуйте эти команды на свой страх и риск. В целях безопасности рекомендую опробовать эту настройку. с помощью приложения, разработанного paphonb опубликовано ниже, а не команды ADB. Если с его приложением не работает, НЕ пробуйте команды ADB!

Мы можем подтвердить, что эта скрытая настройка панели навигации в Android Nougat работает на следующих устройствах:

  • Гугл Нексус 6
  • Гугл Нексус 5X
  • Google Нексус 6P
  • Google Пиксель
  • Гугл Пиксель XL
  • OnePlus 3
  • OnePlus 3T
  • телефоны сони иксперия

Настройщик навигационной панели работает на любом устройстве или ПЗУ, на котором не удалена реализация AOSP, поэтому На большинстве устройств со стандартной или близкой к стандартной прошивкой на базе Android 7.X Nougat она должна работать.


Изменение панели навигации вручную в Android Nougat работает так же, как и в Android O. Вы можете либо отправить команду оболочки ADB для изменения конкретного параметра, либо предоставить разрешение WRITE_SECURE_SETTINGS приложению, например SecureTask или АвтоИнструменты чтобы они могли контролировать изменение настроек. Безопасная настройка, управляющая кнопками панели навигации. С использованием Таскер, вы также можете контекстно изменить панель навигации.

Предоставить WRITE_SECURE_SETTINGS для SecureTask или AutoTools очень просто, поскольку все, что вам нужно сделать, это ввести любую из следующих команд оболочки ADB, которая не требует от вас root-доступа.

Для SecureTask:

adbshellpmgrantcom.balda.securetaskandroid.permission.WRITE_SECURE_SETTINGS

Для AutoTools:

adbshellpmgrantcom.joaomgcd.autotoolsandroid.permission.WRITE_SECURE_SETTINGS

Тогда синтаксис для изменения панели навигации будет следующим:

settings put secure sysui_nav_bar "key(KEYCODE_CONSTANT: file:///path/to/icon.png),back; home; recent, key(KEYCODE_CONSTANT: file:///path/to/icon.png)"

Вы можете изменить расположение клавиш, добавить пробелы слева или справа для смещения кнопок (набрав space добавит пустой слот на панель навигации), выберите собственные значки, измените коды клавиш и т. д. как вам будет угодно, следуя этому синтаксису. Например, вот команда, которую я бы использовал для добавления KEYCODE_MENU кнопка и KEYCODE_FORWARD кнопку на панели навигации, чтобы улучшить возможности просмотра в Chrome:

settings put secure sysui_nav_bar "key(82:file:///storage/emulated/0/NavIcons/menu.png),back; home; recent, key(125:file:///storage/emulated/0/NavIcons/forward.png)"

Пути к значкам, на которые ссылается команда, являются пользовательскими значками, которые я скачал с сайта ИконкиБД. Я получил правильный размер значков, проверив плотность дисплея моего устройства на Материал.io затем соотносим эту плотность с правильный размер значка с использованием справочной таблицы.

Если я хочу вернуть панель навигации к макету по умолчанию, я бы ввел эту команду:

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

Если вы следили за моими уроками по Android O, то этот синтаксис покажется вам знакомым. Если нет, то не волнуйтесь. Для этого есть приложение.


Пользовательская панель навигации

Старший член XDA пафонб разработал приложение под названием Пользовательская панель навигации это сделает всю работу за вас и изменит кнопки панели навигации. Приложение очень простое в использовании, поскольку оно основано на настройщике панели навигации Android O. Однако приложение было закодировано так, чтобы вы могли использовать собственные значки (почти как в моем уроке), включает возможность создавать профили, между которыми можно быстро переключаться, а также имеет Поддержка Tasker, поэтому вы можете контекстно изменять панель навигации в зависимости от ваших критериев. хотеть.

Все, что вам нужно сделать, это установить приложение, а затем предоставить ему разрешение WRITE_SECURE_SETTINGS, выполнив следующую команду в ADB:

adbshellpmgrantxyz.paphonb.systemuitunerandroid.permission.WRITE_SECURE_SETTINGS

Затем, когда вы откроете приложение, оно определит, поддерживает ли ваше устройство изменение панели навигации. Он попытается представить «следующую» клавишу по центру панели навигации. Если он появится, вы можете изменить панель навигации. Если нет, приложение сообщит вам, что вам не повезло.

Приложение бесплатно но вам потребуется приобрести профессиональную версию, если вы хотите создать более двух профилей. Это приложение, безусловно, упрощает модификацию панели навигации, поэтому я лично считаю, что цена того стоит. но если у вас есть знания, вы можете использовать все функции, которые предлагает это приложение, через Tasker и SecureTask/Автоинструменты.


Возможности настройки

С этим приложением + Tasker вы можете сделать множество вещей. Я описал много таких случаев в моих уроках, но вот краткий список того, что вы можете попробовать:

  • Показывать элементы управления воспроизведением мультимедиа при воспроизведении музыки
  • Показывать клавишу «Вперед/Назад» в Gmail для быстрого просмотра электронных писем.
  • Показывать клавиши прокрутки страницы вверх/вниз при использовании Chrome
  • Показывать курсоры влево/вправо, когда отображается клавиатура
  • Показывать кнопку меню/вперед при использовании Chrome
  • Показывать ярлык контактов и кнопку завершения вызова во время телефонного разговора

Это то, что я придумал, когда экспериментировал с настройщиком навигационной панели в Android O, но они все равно должны работать со скрытым настройщиком навигационной панели в Android Nougat.

Я совершенно поражен тем, что кому-то потребовалось так много времени, чтобы понять, что этот тюнер навигационной панели работает в Android Nougat без рута. Вспоминая об этом, становится очевидным, что он работает без рута. В конце концов, мод SystemUI предоставляет только фрагмент настроек для запуска активности тюнера навигационной панели, но этот мод на самом деле не добавляет эту функцию в SystemUI — она всегда была там. Команды оболочки просто позволяют нам изменять панель навигации, не раскрывая эту активность SystemUI, а приложение paphonb делает все это проще.


Как бы вы хотели настроить панель навигации? Дайте нам знать в комментариях ниже!