Как да активирате потапящ режим за цялата система без root

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

Тъй като екраните на телефоните стават все по-големи и по-големи, понякога искаме да скрием лентата за състояние и навигация, за да можем да преглеждаме съдържанието си, като използваме целия чист, красив HD екран.

Започвайки с Android 4.4, приложенията могат да внедряват Потапящ режим наистина да предостави изживяване на цял екран на крайния потребител. За съжаление, Google и OEM производителите никога не са излагали на потребителите възможността ръчно да контролират кога искат да активират режима на потапяне. Извика се приложение на трета страна GMD Режим на потапяне на цял екран предоставя заобиколно решение от няколко години, но най-големият проблем при използването на това приложение е, че то разваля меката клавиатура.

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

без root достъп, при условие че приложението има определено разрешение. Това означава, че можете активиране на поглъщащ режим за цялата система при поискване. Можете например да създадете плочка Nougat, за да превключвате поглъщащ режим или дори да зададете потапящ режим за всяко приложение.


Превключете режима на потапяне без root

Както можете да видите във видеото по-горе, създадох плочка 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 мениджър на пакети (pm) можем да предоставим всяко разрешение на всяко приложение, което пожелаем (при условие, че приложението поиска това разрешение във файла на манифеста).

Първото нещо, което ще трябва да направите е инсталирайте двоичния файл на ADB на вашия компютър, последвано от правилния драйвер за вашето устройство. След това активирайте USB Debugging в Developer Options (отидете на Settings --> About Phone и докоснете Build number 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, прочетете за инструкции стъпка по стъпка.

Превключване на потапящ режим на плочки Nougat

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. Под Команден филтър влизам потапящ режим. Това е точната команда, която ще бъде изпратена, когато докоснем плочка Nougat.

Сега създайте нова задача (с произволно име), прикрепена към този профил, и за първото действие отидете на Plugin --> AutoNotification --> Tiles. За номера на плочката изберете първата плочка. За командване влизам потапящ режим точно както е написано. 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, тъй като ние ще създадем профил за стартиране на Immersive Mode, когато определени приложения са отворени. Отворете Tasker и натиснете + в долния десен ъгъл, за да създадете нов профил. За типа контекст изберете Приложение и изберете всички приложения, в които искате режимът на потапяне да бъде активен.

Когато сте готови, натиснете назад и Tasker ще ви помоли да създадете задача. Няма нужда да наименувате задачата, така че просто натиснете отметката, за да започнете създаването на задача. След като влезете в екрана за създаване на задача, има само едно действие, което трябва да добавите. Натисни + бутон в долната част и отидете на Добавка --> AutoTools --> Secure Setting. Натиснете иконата на молив, за да конфигурирате AutoTools. Ето, отидете на Дисплей след това докоснете Потапящ режим и изберете "Превключване."

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


Потапящ режим за фина настройка

Както споменах по-рано, точните команди, налични за принудително потапяне в режим, могат да бъдат събрани от AOSP. Можете да настроите режима на потапяне да скрие само лентата за известия или да скрие само лентата за навигация, като издадете една от следните команди:

settings put global policy_control immersive.status=*

settings put global policy_control immersive.navigation=*

Разбира се, AutoTools всъщност не ви позволява директно да изпращате команди на обвивката като тази, но вместо това ще изпратите командата чрез неговия интерфейс. Просто изберете „Персонализирана настройка“ в AutoTools Secure Settings, задайте Тип настройка на „глобален“, задайте „Тип въвеждане“ на „String“ и за Името трябва да въведете „policy_control immersive.status=*“ или „policy_control immersive.navigation=*". Можете да използвате тази команда вместо тази, която използвахме за плочката Nougat или за управление на приложение, ако предпочитате режимът на потапяне да скрие едно от лентата на състоянието или лентата за навигация.


Изтеглете и импортирайте в Tasker

Както винаги, предоставяме XML файла на скрипта, който можете да изтеглите и импортирате. Просто изтеглете файла от връзката по-долу и го запазете навсякъде във вашата вътрешна памет. Отворете Tasker и деактивирайте режима за начинаещи в Предпочитания. След това се върнете към главния екран и натиснете продължително върху раздела „Профил“ в горната част. Трябва да видите изскачащ прозорец с една от опциите „Импортиране“. Докоснете това и прегледайте мястото, където сте запазили файла .prf.xml и изберете този файл за импортиране.

Ако изберете да импортирате плочката с известия, уверете се, че сте запазили иконата на режима на потапяне като immersive.png и я запишете в /sdcard/Tasker. Ако изберете да импортирате профила за всяко приложение, уверете се, че влизате и персонализирате приложенията, които ще се задействат, тъй като моята проба е настроена да се задейства само при използване на Chrome или XDA Labs.

Изтеглете превключвателя на поглъщащия режим на плочката за известия

Изтеглете профила за превключване на поглъщащ режим за всяко приложение

Надяваме се, че ще намерите този съвет за полезен. Уведомете ни в коментарите по-долу дали това работи за вас!