Как включить общесистемный режим погружения без рута

Учебное пособие о том, как включить режим погружения для всей системы (или для каждого приложения) без необходимости доступа с правами root. Работает на всех устройствах Android 4.4+.

Поскольку экраны телефонов становятся все больше и больше, иногда нам хочется скрыть панель состояния и навигации, чтобы мы могли просматривать наш контент, используя весь четкий и красивый HD-экран.

Начиная с Android 4.4, приложения могут реализовывать Режим погружения чтобы по-настоящему предоставить конечному пользователю полноэкранный режим. К сожалению, Google и OEM-производители никогда не предоставляли пользователям возможность вручную контролировать, когда они хотят включить режим погружения. Стороннее приложение под названием Полноэкранный режим погружения GMD уже несколько лет предоставляет обходной путь, но самая большая проблема при использовании этого приложения заключается в том, что оно ломает программную клавиатуру.

Пользователи уже довольно давно обсуждают команду ADB, которая запускает общесистемный режим погружения, но в течение многих лет считалось, что для использования этой команды при отключении от терминала ADB потребуется root доступ. Однако в конце прошлого года пользователи обнаружили, что некоторые команды ADB на самом деле могут запускаться на устройстве.

без root-доступа, при условии, что приложение имеет определенное разрешение. Это означает, что вы можете включить общесистемный режим погружения по требованию. Например, вы можете создать плитку Nougat для переключения режима погружения или даже установить режим погружения для каждого приложения отдельно.


Переключить режим погружения без рута

Как вы можете видеть на видео выше, я создал плитку Nougat, которая переключает режим погружения, когда я нажимаю на нее. Это на моем нерутированном Huawei Mate 9, но должно работать и на почти каждое устройство Android 4.4+. Для этой работы вам понадобится всего два приложения: Таскер и Бета-версия AutoTools. Вам также потребуется установить Автоуведомление если вы хотите сделать из этого плитку нуги, но это не обязательно.

После установки обоих приложений вам потребуется предоставить WRITE_SECURE_SETTINGS разрешение AutoTools, чтобы иметь возможность переключать режим погружения (среди других замечательных настроек, о которых мы расскажем позже). Это связано с тем, что команда для режима погружения определена в разделе Настройки. Глобальный class, хотя точный синтаксис команды скрыт в AOSP. Сначала мы рассмотрим, как предоставить необходимые разрешения AutoTools, а затем как использовать команду в Tasker.


В системе управления разрешениями Android приложения определяют разрешения, которые они хотят предоставить, в файле манифеста. Затем пользователи могут предоставлять или отклонять разрешения при установке (до Marshmallow) или по требованию (Marshmallow+). Однако существуют определенные разрешения, которые приложениям не могут быть предоставлены, даже если они запрашивают это в манифесте, например: WRITE_SECURE_SETTINGS. Это связано с тем, что предоставление любому приложению такого мощного разрешения даст этому приложению массу контроля над вашим устройством.

Но есть один обходной путь, который мы можем использовать, чтобы предоставить разрешение WRITE_SECURE_SETTINGS любому приложению, которое нам нужно. Используя АБР менеджер пакетов (pm) инструмент, мы можем предоставить любое разрешение любому приложению, которое захотим (при условии, что приложение запрашивает это разрешение в файле манифеста).

Первое, что вам нужно сделать, это установить двоичный файл ADB на свой компьютер, а затем правильный драйвер для вашего устройства. Затем включите отладку по USB в параметрах разработчика (перейдите в «Настройки» -> «О телефоне» и нажмите «Номер сборки» 7 раз, если вы еще этого не сделали) и подключите телефон к компьютеру. Наконец, отправьте следующую команду, как только вы откроете терминал:

adb shell pm grant com.joaomgcd.autotools android.permission.WRITE_SECURE_SETTINGS

Теперь AutoTools сможет изменить любые глобальные, безопасные или системные настройки на вашем устройстве. Существует несколько способов поиграться с этими настройками, а список доступных настроек см. каждая категория полностью зависит от вашего устройства и сборки программного обеспечения, но это обсуждение уже для другой темы. время. В любом случае, мы продолжим показывать вам, как использовать AutoTools для переключения режима погружения.


Использование Tasker для переключения режима погружения с помощью Nougat Tile

Для переключения режима погружения с помощью плитки, очевидно, требуется Android Nougat, поэтому, если у вас нет Nougat, пропустите этот раздел, чтобы узнать, как переключать его для каждого приложения отдельно. Если вы еще этого не сделали, загрузите AutoNotification из Google Play Store и предоставьте ему доступ к уведомлениям. Этот плагин Tasker мы будем использовать для создания собственной плитки уведомлений.

Вот описание профиля для тех из вас, кто знаком с Tasker. Если вы не очень знакомы с Tasker, читайте пошаговые инструкции.

Переключение режима погружения плитки нуги

Profile: Toggle Immersive Mode (30)
Event: AutoNotification [ Configuration: Event Behaviour
Filter: immersivemode ]
Enter: Immersive Mode (33)
A1: AutoNotification Tiles [ Configuration: Tile: 1
Command: immersivemode
Label: Immersive mode
Icon: /storage/emulated/0/Tasker/immersive.png
State: 999 Timeout (Seconds):60 ]
A2: AutoToolsSecureSettings[ Configuration: Immersive Mode: Toggle Timeout (Seconds):60 ]

читать далее

Откройте Tasker и нажмите кнопку + кнопка в правом нижнем углу. Создать Событие контекст и выберите Плагин -> Автоуведомление. Нажмите значок карандаша, чтобы открыть страницу конфигурации автоматического уведомления. Под Фильтр команд входить режим погружения. Это точная команда, которая будет отправлена, когда мы нажмем на плитку нуги.

Теперь создайте новую задачу (с любым именем), прикрепленную к этому профилю, и для первого действия перейдите к Плагин -> Автоуведомление -> Плитки. В качестве номера плитки выберите первую плитку. Для Команда входить режим погружения именно так, как написано. этикетка это то, что будет отображаться под плиткой, поэтому назовите его, например, «Режим погружения». Для Икона, сохраните значок, который я прикрепил в начале этого раздела, во внутреннюю память и используйте его. Наконец для Состояние выбирать Переключите активный/неактивный.

Когда вы закончите, запустите задачу один раз (нажмите кнопку воспроизведения в левом нижнем углу экрана создания задачи), чтобы плитка заполнилась. Теперь, когда вы развернете список доступных плиток уведомлений, вы увидите новый переключатель режима погружения.


Использование Tasker для переключения режима погружения для каждого приложения

Переключить режим погружения для каждого приложения довольно просто: все, что нам нужно сделать, это создать контекст приложения в Tasker, который срабатывает при запуске или закрытии приложения, и когда это происходит, используется режим погружения. переключился. Чтобы Tasker мог отслеживать приложения, вам необходимо включить его Служба доступности.

Вот описание профиля для тех из вас, кто знаком с Tasker. Если вы не очень знакомы с Tasker, читайте пошаговые инструкции.

Режим погружения для каждого приложения

Profile: Per-App Immersive Mode (192)
Application: Chrome or XDA Labs
Enter: Anon (199)
A1: AutoToolsSecureSettings[ Configuration: Immersive Mode: Toggle Timeout (Seconds):60 ]

Exit: Anon (204)
A1: AutoToolsSecureSettings[ Configuration: Immersive Mode: Toggle Timeout (Seconds):60 ]

читать далее

Сначала вам нужно открыть Tasker, поскольку мы создадим профиль для запуска режима погружения при открытии определенных приложений. Откройте Tasker и нажмите кнопку + кнопку в правом нижнем углу, чтобы создать новый профиль. В качестве типа контекста выберите Приложение и выберите все приложения, в которых вы хотите, чтобы режим погружения был активен.

Когда вы закончите, нажмите «Назад», и Tasker предложит вам создать задачу. Давать задаче имя не нужно, поэтому просто нажмите галочку, чтобы начать создание Задачи. После входа на экран создания задачи вам нужно добавить только одно действие. нажмите + кнопку внизу и перейдите к Плагин -> AutoTools -> Настройка безопасности. Нажмите значок карандаша, чтобы настроить AutoTools. Вот, иди в Отображать затем нажмите на Режим погружения и выбери "Переключать."

И последнее, что нам нужно сделать — отключить режим погружения при выходе из приложения. Вернитесь на главный экран Tasker и длительное нажатие в только что созданной задаче, чтобы вы могли создать Выйти из задачи. Когда вы создаете задачу выхода, просто добавьте то же действие, которое вы добавили в первую задачу — это переключит режим погружения.


Точная настройка режима погружения

Как я упоминал ранее, точные команды, доступные для включения режима погружения, могут быть почерпнуто из AOSP. Вы можете настроить режим погружения так, чтобы скрывать только панель уведомлений или скрывать только панель навигации, выполнив любую из следующих команд:

settings put global policy_control immersive.status=*

settings put global policy_control immersive.navigation=*

Конечно, AutoTools на самом деле не позволяет вам напрямую отправлять такие команды оболочки, вместо этого вы отправляете команду, используя его интерфейс. Просто выберите «Пользовательская настройка» в настройках безопасности AutoTools, установите тип настройки на «глобальный», установите «Тип ввода» на «Строка», а в качестве имени необходимо ввести «policy_control immersive.status=*» или «policy_control». immersive.navigation=*". Вы можете использовать эту команду вместо той, которую мы использовали для плитки «Нуга» или элемента управления для каждого приложения, если вы предпочитаете, чтобы режим погружения скрывал одну из строк состояния или панели навигации.


Загрузите и импортируйте в Tasker

Как всегда, мы предоставляем XML-файл сценария, который вы можете загрузить и импортировать. Просто загрузите файл по ссылке ниже и сохраните его в любом месте во внутренней памяти. Откройте Tasker и отключите режим новичка в настройках. Затем вернитесь на главный экран и нажмите и удерживайте вкладку «Профиль» вверху. Вы должны увидеть всплывающее окно с одним из вариантов «Импорт». Нажмите на него, перейдите туда, где вы сохранили файл .prf.xml, и выберите этот файл для импорта.

Если вы решите импортировать плитку уведомления, обязательно сохраните значок режима погружения как immersive.png и сохраните его в /sdcard/Tasker. Если вы решите импортировать профиль для каждого приложения, обязательно зайдите и настройте приложения, в которых он будет запускаться, поскольку мой образец настроен на запуск только при использовании Chrome или XDA Labs.

Загрузите плитку уведомлений. Переключатель режима погружения

Загрузите профиль переключения режима погружения для каждого приложения

Мы надеемся, что вы найдете этот совет полезным. Дайте нам знать в комментариях ниже, если это работает для вас!