Як увімкнути функцію Smart Lock на основі місцезнаходження на пристроях Huawei/Honor із EMUI

Підручник про те, як відтворити функції Google Smart Lock на основі місцезнаходження на пристроях Huawei або Honor з EMUI.

Якщо ви ніколи не володіли пристроєм Huawei або Honor, то, напевно, ви дивитесь на назву та думаєте «а?» Зрештою, функція Smart Lock була представлена ​​ще в Android 5.0 Lollipop щоб полегшити швидкий доступ до вашого пристрою за певних умов наприклад місцезнаходження, під час підключення до певних пристроїв, у вашій кишені або під час розпізнавання вашого голосу.

Зазвичай таку функцію навряд чи варто обговорювати, враховуючи, що з моменту випуску Lollipop минуло більше двох років, а також той факт, що приблизно 65% усіх пристроїв Android працюють на Android 5.0+. Ми підозрюємо, що частка користувачів на наших форумах, які використовують принаймні Lollipop, набагато, набагато вища, хоча ми не маємо жодної точної статистики щодо цього. У будь-якому випадку функція Smart Lock від Google стала настільки поширеною серед пристроїв Android, що програми сторонніх розробників, які пропонують цю функцію

мають значною мірою був покинутий, тому що вони не бачать сенсу конкурувати з функцією.

Але є одна група користувачів, які залишилися з a кастрована версія Smart Lock: користувачі з a Пристрій Huawei або Honor працює EMUI. З будь-якої причини EMUI не надає тих самих функцій Smart Lock, які пропонує більшість інших пристроїв Android 5.0+. Натомість EMUI дозволяє автоматично розблокувати пристрій, лише якщо він підключений до певних пристроїв Bluetooth.

Хоча це, безумовно, корисно, якщо у вас є носій пристрій Bluetooth, наприклад смарт-годинник або браслет для фітнесу, не кожен має пристрій, який можна носити, завжди підключений до свого смартфона. Виключення Huawei з функції Google Smart Lock є явно навмисним, оскільки навіть якщо ви ввімкнете Smart Lock як «довіреного агента» в Android, ви не зможете фактично використовувати цю функцію.

По суті, ви застрягли на функції «Smart» Lock від Huawei, яка пропонує менше функцій, ніж Smart Lock від Google. Ваші єдині можливості як власника пристрою Huawei/Honor — спробувати один із багатьох варіантів у Play Store які стверджують, що додають цю функцію (жодна з них ніколи не працювала на моєму пристрої) або рутують ваш телефон і завантажити модуль Xposed. Відсутність гідних варіантів для EMUI, звичайно, спонукала мене написати цей посібник. За допомогою трохи магії Tasker і плагіна під назвою AutoTools ми можемо автоматично розблоковувати будь-який пристрій Huawei або Honor на основі місцезнаходження без необхідності root.


Smart Lock для пристроїв Huawei/Honor

Для запуску цієї функції потрібні лише дві програми. Перший Tasker, неймовірно популярний інструмент автоматизації Android, який ми в XDA часто використовуємо для вирішення різноманітних проблем — від найпростіших до неймовірно складних. За 2,99 дол. США може здатися непотрібним купувати цю програму для чогось такого простого, але ця програма може надати величезну цінність, якщо ви бажаєте прочитайте кілька підручників. Далі вам знадобиться бета-версія плагіна Tasker, відомого як AutoTools. Цей плагін додає масу корисних функцій до рідного набору інструментів Tasker, і, зокрема, для досягнення нашої мети нам знадобиться функція AutoTools, відома як Secure Settings.

Ми будемо змінювати властивість на нашому пристрої, яка керує таймером, який використовує Android, щоб визначити, коли показувати екран блокування після закінчення часу очікування телефону. Термін «тайм-аут» тут означає, що екран телефону вимикається після X хвилин бездіяльності або коли користувач вручну вимикає дисплей, натиснувши кнопку живлення. Через певний проміжок часу (відразу після переходу пристрою в сплячий режим до 30 хвилин після переходу в режим сну) Android відобразить екран блокування.

Проблема з цими двома функціями полягає в тому, що за замовчуванням збільшення таймера «автоматичного блокування» потенційно може бути проблемою безпеки, оскільки якщо ваш пристрій піднято протягом періоду часу, коли екран блокування ще не активовано, злодій матиме доступ до повного вмісту вашого пристрій. Щоб пом’якшити це, Android пропонує опцію «кнопка живлення миттєво блокує пристрій», щоб ви могли негайно активувати екран блокування, натиснувши кнопку живлення. Однак, особливо якщо ви встановили короткий час очікування екрана, легко забути це зробити, тож ви все ще можете мати свій пристрій доступ до зловмисних третіх осіб, якщо ви випадково залишили пристрій на столі чи в кишені, не натиснувши вручну кнопку живлення кнопку.

Отже, наше рішення цієї проблеми полягає в тому, щоб прив’язати довший таймер «автоматичного блокування» не до кнопки живлення, яка вимагає ручного втручання, а замість цього до розташування/Wi-Fi. Цей шлях, ви можете насолоджуватися використанням пристрою без блокування екрана, перебуваючи в комфорті власного дому, але будьте впевнені, що PIN-код/пароль на екрані блокування завжди буде видно, коли ви знаходитесь далеко від додому. Тепер, коли ми пояснили, що ми робимо, ось як це насправді робиться.


Підручник

Як згадувалося раніше, ми будемо змінювати певну властивість системи. Ця властивість визначається відповідно до Налаштування. Безпечний клас з назвою lock_screen_lock_after_timeout, і він приймає цілі значення в мілісекундах. Для того, щоб змінити це значення, нам потрібно буде надати AutoTools певний дозвіл, щоб він міг записувати ці налаштування без потреби кореневого доступу.

У системі керування дозволами 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 для керування тайм-аутом екрана блокування.

Крок 2 - Налаштування Tasker

Відкрийте Tasker і натисніть + у нижньому правому куті, щоб створити новий профіль. Назвіть свій новий профіль на кшталт «Автоматичне блокування» або як завгодно. Виберіть тип контексту, який ми будемо використовувати Держава. Йти до Мережа --> WiFi підключено. Тут ми виберемо мережі WiFi, які хочемо додати до білого списку для автоматичного розблокування пристрою. Вдарити збільшувальне скло і виберіть усі мережі WiFi, які потрібно додати до білого списку.

Додатково: Якщо ви хочете створити Smart Lock, що справді базується на визначенні місцезнаходження (а не просто на основі мереж WiFi), тоді ви можете використовувати контекст «Розташування» в Tasker замість State --> Net --> WiFi Connected функція. Зауважте, що Tasker не створює геозон, тому цей метод розряджатиме акумулятор. Якщо ви хочете, щоб Tasker реагував на геоогорожі з більшою енергоефективністю, вам потрібно буде встановити Авторозташування підключати.

Поверніться, і вам буде запропоновано створити завдання. Введіть будь-яке ім’я (або жодного), щоб перейти до екрана створення завдання. Натисніть + унизу посередині, щоб додати нову дію. Йти до Плагін --> AutoTools --> Secure Settings. Вдарити олівець піктограму, щоб відкрити екран конфігурації AutoTools Secure Setting. Йти до Екран блокування --> Автоматичне блокування а для значення введіть будь-яке досить високе значення, наприклад '9001'. Це значення в секундах, на яке AutoTools встановить таймер автоматичного блокування екрана. На щастя для нас, нам не потрібно возитися з ручним налаштуванням команди для зміни значення lock_screen_lock_after_timeout, оскільки розробник AutoTools реалізував цю функцію для нас у приємному графічному інтерфейсі.

Збережіть це налаштування, натиснувши піктограму галочки вгорі, потім натиснувши клавішу «Назад» один раз у Tasker і, нарешті, вийшовши з екрана створення завдання. Після того, як ви це зробите, Tasker тепер автоматично залишатиме ваш пристрій розблокованим протягом дуже тривалого часу, поки ви будете вдома. Переконайтеся, що "кнопка живлення миттєво блокує пристрій" є вимкнено у налаштуваннях безпечного блокування, інакше, коли ви натискаєте кнопку живлення, перебуваючи вдома, активується екран блокування телефону, а це не те, чого ви хочете!

Нарешті, нам потрібно буде додати ще одне завдання, яке запускається, коли ми залишаємо будь-яку мережу Wi-Fi із білого списку. На головній сторінці Tasker довге натискання на завдання ви щойно створили та торкніться додати вихідне завдання у спливаючому меню. Назвіть це завдання як завгодно та знову перейдіть до екрана створення завдання. Тут натисніть на + і знову перейдіть до Плагін --> AutoTools --> Secure Settings. У тій самій опції автоматичного блокування цього разу введіть значення 0. Після того, як ви залишите мережу Wi-Fi, Tasker більше не відкладатиме відображення екрана блокування після закінчення часу очікування телефону.

Додатково: Додайте другу дію, натиснувши на + але цього разу перейти до Дисплей --> Блокування системи. Ця дія автоматично заблокує ваш телефон, коли ви вийдете з зони дії мереж Wi-Fi із білого списку, на випадок, якщо у вас дуже довгий час очікування дисплея, і ваш телефон ніколи не переходить у режим сну, коли ви виходите з дому. Якщо ви це зробите, вам доведеться зробити Tasker адміністратором пристрою, перейшовши до налаштувань. Просто знайдіть опцію та надайте Tasker дозвіл.

І це все! Хоча цей посібник здається довгим, насправді сам сценарій Tasker дуже простий. Щоб увімкнути цю функцію, необхідно виконати до 3 дій. Спробуйте і повідомте нам, як це працює для вас!