Samouczek dotyczący replikowania funkcji Google Smart Lock opartych na lokalizacji na urządzeniach Huawei lub Honor z systemem EMUI.
Jeśli nigdy nie posiadałeś urządzenia Huawei lub Honor, prawdopodobnie patrzysz na tytuł i pytasz „co?” W końcu Smart Lock to funkcja wprowadzona ponownie Androida 5.0 Lollipop aby ułatwić szybki dostęp do urządzenia pod pewnymi warunkami takie jak lokalizacja, połączenie z określonymi urządzeniami, przebywanie w kieszeni lub rozpoznawanie głosu.
Zwykle nie warto omawiać takiej funkcji, biorąc pod uwagę, że minęły ponad dwa lata od premiery Lollipopa i fakt, że około 65% wszystkich urządzeń z Androidem działają na systemie Android 5.0+. Podejrzewamy, że odsetek użytkowników na naszych forach, którzy korzystają przynajmniej z Lollipopa, jest znacznie, znacznie wyższy, chociaż nie mamy na ten temat żadnych dokładnych statystyk. W każdym razie funkcja Google Smart Lock stała się tak powszechna na urządzeniach z Androidem, że aplikacje innych firm oferują tę funkcję w dużej mierze został opuszczony, ponieważ nie widzą sensu konkurowania z tą funkcją.
Ale jest jedna grupa użytkowników, którym pozostał wykastrowana wersja Smart Lock: użytkownicy z a Urządzenie Huawei lub Honor działa EMUI. Z jakiegoś powodu EMUI nie zapewnia tych samych funkcji Smart Lock, które oferuje większość innych urządzeń z Androidem 5.0 lub nowszym. Zamiast tego EMUI umożliwia automatyczne odblokowanie urządzenia tylko wtedy, gdy jest połączone z określonymi urządzeniami Bluetooth.
Choć z pewnością jest to przydatne, jeśli posiadasz urządzenie do noszenia z Bluetooth, takie jak smartwatch lub opaska fitness, nie każdy ma urządzenie do noszenia, które jest zawsze podłączone do smartfona. Wyłączenie przez Huawei funkcji Google Smart Lock jest wyraźnie celowe, ponieważ nawet jeśli włączysz Smart Lock jako „zaufany agent” w systemie Android, nie będziesz mógł w rzeczywistości korzystać z tej funkcji.
Zasadniczo utknąłeś w funkcji „Smart” Lock Huawei, która oferuje mniej funkcji niż Smart Lock Google. Jako właściciel urządzenia Huawei/Honor jedyną opcją jest wypróbowanie jednej z wielu opcji w Sklepie Play które twierdzą, że dodają tę funkcję (z których żadna nigdy nie działała na moim urządzeniu) lub zrootowały telefon i pobierz moduł Xposed. Brak przyzwoitych opcji dla EMUI oczywiście skłonił mnie do napisania tego samouczka. Przy odrobinie magii Taskera i wtyczce o nazwie AutoTools możemy to zrobić automatycznie odblokuj dowolne urządzenie Huawei lub Honor na podstawie lokalizacji, bez konieczności rootowania.
Inteligentna blokada dla urządzeń Huawei/Honor
Do uruchomienia tej funkcji potrzebne są tylko dwie aplikacje. Pierwszym jest Zadanie, niezwykle popularne narzędzie do automatyzacji Androida, które w XDA często wykorzystujemy do rozwiązywania problemów od najbardziej przyziemnych po niezwykle złożone. Za 2,99 USD kupowanie tej aplikacji za coś tak prostego może wydawać się niepotrzebne, ale wartość, jaką może zapewnić ta aplikacja, jest ogromna, jeśli chcesz przesiedzieć kilka tutoriali. Następnie będziesz potrzebować wersji beta wtyczki Tasker znanej jako Narzędzia automatyczne. Ta wtyczka dodaje mnóstwo przydatnych funkcji do natywnego zestawu narzędzi Taskera, a w szczególności będziemy potrzebować funkcji AutoTools znanej jako Bezpieczne ustawienia, aby osiągnąć nasz cel.
Będziemy modyfikować właściwość na naszym urządzeniu, która kontroluje licznik czasu używany przez system Android do określenia, kiedy wyświetlić ekran blokady po upływie limitu czasu telefonu. „Limit czasu” odnosi się tutaj do sytuacji, w której ekran telefonu wyłącza się po X minutach bezczynności lub do sytuacji, w której użytkownik ręcznie wyłącza wyświetlacz, naciskając przycisk zasilania. Po określonym czasie (od chwili przejścia urządzenia w tryb uśpienia do 30 minut po przejściu w tryb uśpienia) Android wyświetli ekran blokady.
Problem z tymi dwiema funkcjami polega na tym, że domyślne zwiększenie licznika czasu „automatycznej blokady” może potencjalnie stanowić problem bezpieczeństwa, ponieważ jeśli jeśli Twoje urządzenie zostanie przesunięte w czasie, w którym ekran blokady nie został jeszcze aktywowany, złodziej będzie miał dostęp do pełnej zawartości Twojego urządzenie. Aby temu zaradzić, system Android oferuje opcję „przycisk zasilania natychmiast blokuje urządzenie”, dzięki czemu można natychmiast aktywować ekran blokady, naciskając przycisk zasilania. Jednakże, szczególnie jeśli ustawiłeś krótki limit czasu ekranu, łatwo o tym zapomnieć, więc nadal możesz mieć swoje urządzenie dostępne dla złośliwych stron trzecich, jeśli przypadkowo pozostawisz urządzenie na stole lub w kieszeni bez ręcznego naciśnięcia przycisku zasilania przycisk.
Dlatego naszym rozwiązaniem tego problemu jest powiązanie dłuższego timera „automatycznego blokowania” nie z przyciskiem zasilania, co wymaga ręcznej interwencji, ale z lokalizacją/WiFi. W ten sposób, możesz korzystać z urządzenia bez ekranu blokady w zaciszu własnego domu, ale możesz mieć pewność, że kod PIN/hasło ekranu blokady będzie zawsze widoczny, gdy będziesz z dala od dom. Skoro już wyjaśniliśmy, co robimy, oto jak to się właściwie robi.
Instruktaż
Jak wspomnieliśmy wcześniej, będziemy modyfikować pewną właściwość systemu. Właściwość ta jest zdefiniowana w ust Ustawienia. Bezpieczna klasa z nazwą lock_screen_lock_after_timeouti akceptuje wartości całkowite w milisekundach. Aby zmodyfikować tę wartość, będziemy musieli przyznać AutoTools określone uprawnienia, aby mógł zapisywać te ustawienia bez konieczności posiadania uprawnień roota.
W systemie zarządzania uprawnieniami systemu Android aplikacje definiują uprawnienia, które chcą otrzymać, w pliku manifestu. Użytkownicy mogą następnie przyznawać lub odmawiać uprawnień podczas instalacji (w wersji wcześniejszej niż Marshmallow) lub na żądanie (Marshmallow+). Istnieją jednak pewne uprawnienia, których aplikacjom nie można udzielić, nawet jeśli zażądają tego w Manifeście, np ZAPISZ_SECURE_SETTINGS. Dzieje się tak dlatego, że przyznanie dowolnej aplikacji tak potężnego uprawnienia zapewniłoby tej aplikacji ogromną kontrolę nad Twoim urządzeniem.
Istnieje jednak jedno obejście, którego możemy użyć, aby przyznać uprawnienia WRITE_SECURE_SETTINGS dowolnej aplikacji. Używając ADB menedżer pakietów (po południu) narzędziu, możemy przyznać prawie dowolne uprawnienia dowolnej aplikacji (pod warunkiem, że aplikacja poprosi o to pozwolenie w pliku manifestu).
Pierwszą rzeczą, którą musisz zrobić, to zainstaluj plik binarny ADB na komputer, a następnie odpowiedni sterownik dla Twojego urządzenia. Następnie włącz debugowanie USB w Opcjach programisty (przejdź do Ustawienia -> Informacje o telefonie i dotknij Numer kompilacji 7 razy, jeśli jeszcze tego nie zrobiłeś) i podłącz telefon do komputera. Na koniec wyślij następujące polecenie po otwarciu terminala:
adb shell pm grant com.joaomgcd.autotools android.permission.WRITE_SECURE_SETTINGS
Teraz AutoTools będzie mogło zmienić dowolne ustawienia globalne, bezpieczne lub systemowe na Twoim urządzeniu. Istnieją różne sposoby zabawy tymi ustawieniami, a lista dostępnych ustawień znajduje się w każda kategoria całkowicie zależy od urządzenia i wersji oprogramowania, ale ta dyskusja jest na inny temat czas. W każdym razie pokażemy Ci, jak używać AutoTools do kontrolowania limitu czasu blokady ekranu.
Krok 2 — konfiguracja Taskera
Otwórz Taskera i naciśnij + ikonę w prawym dolnym rogu, aby utworzyć nowy profil. Nazwij swój nowy profil na przykład „Blokada automatyczna” lub jakkolwiek chcesz. Wybierz typ kontekstu, którego będziemy używać Państwo. Iść do Sieć -> Połączono z Wi-Fi. Tutaj wybierzemy sieci Wi-Fi, które chcemy umieścić na białej liście w celu automatycznego odblokowania urządzenia. Uderz w szkło powiększające ikonę i wybierz wszystkie sieci Wi-Fi, które chcesz umieścić na białej liście.
Opcjonalny: Jeśli chcesz stworzyć inteligentną blokadę opartą na lokalizacji (a nie tylko na sieciach Wi-Fi), następnie możesz użyć kontekstu „Lokalizacja” w Taskerze zamiast Stanu -> Sieć -> Połączono z Wi-Fi funkcja. Pamiętaj, że Tasker nie tworzy geo-ogrodzeń, więc w przypadku tej metody zużycie baterii będzie większe. Jeśli chcesz, aby Tasker reagował na bardziej wydajne pod względem baterii geo-ogrodzenia, musisz zainstalować Automatyczna lokalizacja podłącz.
Wycofaj się, a następnie zostaniesz poproszony o utworzenie zadania. Wpisz dowolną nazwę (lub żadna nie jest w porządku), aby przejść do ekranu tworzenia zadania. wciśnij + ikonę w dolnym środku, aby dodać nową akcję. Iść do Wtyczka --> AutoTools --> Bezpieczne ustawienia. Uderz w ołówek Ikona otwierająca ekran konfiguracji AutoTools Secure Setting. Iść do Ekran blokady --> Automatyczna blokada i jako wartość wprowadź dowolną wystarczająco wysoką wartość, np. „9001'. Jest to wartość w sekundach, na którą AutoTools ustawi licznik czasu automatycznej blokady ekranu. Na szczęście dla nas nie musimy męczyć się z ręcznym ustawianiem polecenia modyfikacji pliku lock_screen_lock_after_timeout, ponieważ twórca AutoTools zaimplementował dla nas tę funkcję w ładnym GUI.
Zapisz to ustawienie, naciskając ikonę znacznika wyboru u góry, następnie naciskając klawisz Wstecz ponownie w Taskerze i na koniec wychodząc z ekranu tworzenia zadania. Gdy to zrobisz, Tasker będzie teraz automatycznie utrzymywał Twoje urządzenie odblokowane przez naprawdę długi czas, gdy będziesz w domu. Upewnij się, że "przycisk zasilania natychmiast blokuje urządzenie" Jest wyłączony w ustawieniach bezpiecznej blokady, w przeciwnym razie po naciśnięciu przycisku zasilania w domu aktywuje się ekran blokady telefonu, czego nie chcesz!
Na koniec będziemy musieli dodać kolejne zadanie, które uruchamia się, gdy opuścimy dowolną z sieci Wi-Fi znajdujących się na białej liście. Na stronie głównej Taskera, długie naciśnięcie na Zadanie właśnie utworzyłeś i dotknij dodaj zadanie wyjściowe w wyskakującym menu. Nadaj temu zadaniu dowolną nazwę i ponownie przejdź do ekranu tworzenia zadania. Tutaj dotknij + ikonę i ponownie przejdź do Wtyczka --> AutoTools --> Bezpieczne ustawienia. W tej samej opcji Blokada automatyczna tym razem wprowadź wartość 0. Po opuszczeniu sieci Wi-Fi Tasker nie będzie już opóźniał wyświetlania ekranu blokady po upływie limitu czasu telefonu.
Opcjonalny: Dodaj drugą akcję, naciskając przycisk + ikona, ale tym razem przejdź do Wyświetlacz --> Blokada systemu. Ta czynność automatycznie zablokuje Twój telefon, gdy opuścisz zasięg sieci Wi-Fi znajdujących się na białej liście, na wypadek, gdybyś miał naprawdę długi limit czasu wyświetlania, a Twój telefon nigdy nie zasypiał, gdy wychodziłeś z domu. Jeśli to zrobisz, będziesz musiał ustawić Taskera jako administratora urządzenia, przechodząc do Ustawień. Po prostu wyszukaj opcję i udziel Taskerowi pozwolenia.
I to wszystko! Chociaż ten samouczek wydaje się długi, w rzeczywistości sam skrypt Taskera jest bardzo prosty. Aby włączyć tę funkcję, wymagane są łącznie maksymalnie 3 akcje. Wypróbuj to i daj nam znać, jak to działa w Twoim przypadku!