Як увімкнути загальносистемний режим занурення без Root

click fraud protection

Підручник про те, як увімкнути режим занурення в усій системі (або на основі окремої програми), не вимагаючи кореневого доступу. Працює на всіх пристроях Android 4.4+.

Оскільки екрани телефонів стають все більшими й більшими, іноді нам хочеться приховати панель стану та навігаційну панель, щоб ми могли переглядати наш вміст, використовуючи весь чіткий, красивий екран HD.

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

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

без root-доступу, якщо додаток має певний дозвіл. Це означає, що ви можете увімкнути загальносистемний режим занурення на вимогу. Ви можете, наприклад, створити плитку Nougat для перемикання режиму занурення або навіть встановити режим занурення для кожної програми.


Перемкніть режим занурення без кореневого доступу

Як ви можете бачити у відео вище, я створив плитку Nougat, яка перемикає режим занурення, коли я натискаю на неї. Це на моєму нерутованому Huawei Mate 9, але воно має працювати майже кожен пристрій Android 4.4+. Для цього вам знадобляться лише дві програми: Tasker і Бета-версія AutoTools. Вам також потрібно буде встановити Автосповіщення якщо ви хочете зробити з цього плитку Nougat, але це не обов’язково.

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


У системі керування дозволами Android програми визначають дозволи, які вони хочуть отримати, у файлі маніфесту. Потім користувачі можуть надавати або забороняти дозволи під час інсталяції (до Marshmallow) або за запитом (Marshmallow+). Однак існують певні дозволи, які не можна надати програмам, навіть якщо вони запитують це в Маніфесті, наприклад WRITE_SECURE_SETTINGS. Це пояснюється тим, що надання будь-якій програмі настільки потужного дозволу дасть цій програмі масу контролю над вашим пристроєм.

Але є один обхідний шлях, який ми можемо використати, щоб надати дозвіл WRITE_SECURE_SETTINGS будь-якій програмі, яку ми хочемо. За допомогою ADB менеджер пакунків (пм) ми можемо надати будь-який дозвіл будь-якій програмі, яку ми хочемо (за умови, що програма запитує цей дозвіл у файлі маніфесту).

Перше, що вам потрібно зробити, це інсталюйте двійковий файл 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 і надайте йому доступ до сповіщень. Цей плагін Tasker — це те, що ми використовуватимемо для створення власної плитки сповіщень.

Ось опис профілю для тих із вас, хто знайомий із Tasker. Якщо ви не настільки знайомі з Tasker, читайте далі, щоб отримати покрокові інструкції.

Перемикач режиму занурення Nougat Tile

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 і натисніть + у нижньому правому куті. Створити Подія контекст і виберіть Плагін --> AutoNotification. Натисніть значок олівця, щоб відкрити сторінку конфігурації для AutoNotification. Під Фільтр команд введіть режим занурення. Це точна команда, яка буде надіслана, коли ми торкнемося плитки Nougat.

Тепер створіть нове завдання (з будь-якою назвою), приєднане до цього профілю, і для першої дії перейдіть до Плагін --> AutoNotification --> Tiles. Для номера плитки виберіть 1-шу плитку. Для Команда введіть режим занурення точно так, як написано. The етикетка це те, що відображатиметься під плиткою, тому назвіть це щось на зразок «Режим занурення». Для значок, збережіть піктограму, яку я прикріпив на початку цього розділу, до внутрішньої пам’яті та використовуйте її. Нарешті для Держава вибрати Перемикач між активними/неактивними.

Після завершення запустіть завдання один раз (натисніть кнопку відтворення в нижній лівій частині екрана створення завдання), щоб плитка була заповнена. Тепер, коли ви розширите список доступних плиток сповіщень, ви побачите новий перемикач режиму занурення.


Використання Tasker для перемикання режиму занурення в окрему програму

Перемикати режим занурення для кожної програми досить просто, все, що нам потрібно зробити, це створити контекст програми в Tasker, який спрацьовує, коли програму запускають або закривають, і коли це відбувається, це Immersive Mode перемикається. Щоб 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 --> Secure Setting. Натисніть піктограму олівця, щоб налаштувати AutoTools. Ось, іди до Дисплей потім торкніться Режим занурення і виберіть "Перемикач."

Є останнє, що нам потрібно зробити, і це вимкнути режим занурення, коли ви виходите з програми. Поверніться на головний екран Tasker і довге натискання на Завданні, яке ви щойно створили, щоб ви могли створити Вихід із завдання. Коли ви створюєте завдання виходу, просто додайте ту саму дію, яку ви додали в першому завданні – це перемкне режим занурення.


Точне налаштування режиму занурення

Як я вже згадував раніше, точні команди, доступні для примусового занурення в режим занурення, можуть бути почерпнуто з AOSP. Ви можете встановити режим занурення, щоб приховати лише панель сповіщень або лише панель навігації, виконавши одну з наведених нижче команд:

settings put global policy_control immersive.status=*

settings put global policy_control immersive.navigation=*

Звичайно, AutoTools насправді не дозволяє вам безпосередньо надсилати такі команди оболонки, але натомість ви надсилатимете команду за допомогою його інтерфейсу. Просто виберіть «Custom Setting» у AutoTools Secure Settings, установіть Setting Type на «global», встановіть «Input Type» на "Рядок", а для назви потрібно ввести "policy_control immersive.status=*" або "policy_control immersive.navigation=*". Ви можете використовувати цю команду замість команди, яку ми використовували для Nougat Tile або окремої програми, якщо ви віддаєте перевагу режиму занурення, який приховує рядок стану або панель навігації.


Завантажте та імпортуйте в Tasker

Як завжди, ми надаємо XML-файл сценарію, який ви можете завантажити та імпортувати. Просто завантажте файл за посиланням нижче та збережіть його будь-де у внутрішній пам’яті. Відкрийте Tasker і вимкніть режим для початківців у налаштуваннях. Потім поверніться на головний екран і натисніть і утримуйте вкладку «Профіль» угорі. Ви повинні побачити спливаюче вікно з одним із варіантів «Імпорт». Торкніться цього та знайдіть місце, де ви зберегли файл .prf.xml, і виберіть цей файл для імпорту.

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

Завантажте перемикач режиму занурення в плитку сповіщень

Завантажте профіль перемикання режиму занурення в програму

Сподіваємось, ця порада буде для вас корисною. Повідомте нам у коментарях нижче, чи це працює для вас!