Een tutorial over hoe u de locatiegebaseerde functies van Google's Smart Lock kunt repliceren op Huawei- of Honor-apparaten met EMUI.
Als je nog nooit een Huawei- of Honor-apparaat hebt gehad, kijk je waarschijnlijk naar de titel en denk je "huh?" Smart Lock is tenslotte een functie die weer is geïntroduceerd Android 5.0 Lollipop om het gemakkelijker te maken om snel toegang te krijgen tot uw apparaat onder bepaalde omstandigheden zoals locatie, wanneer verbonden met bepaalde apparaten, terwijl u in uw zak zit of wanneer u uw stem herkent.
Een dergelijke functie is normaal gesproken nauwelijks de moeite waard om te bespreken, aangezien het meer dan twee jaar geleden is dat Lollipop werd uitgebracht en het feit dat ongeveer 65% van alle Android-apparaten draaien op Android 5.0+. We vermoeden dat het aantal gebruikers op onze forums dat op zijn minst Lollipop gebruikt veel, veel hoger is, hoewel we daar geen exacte statistieken over hebben. Hoe dan ook is de Smart Lock-functie van Google zo gebruikelijk geworden onder Android-apparaten dat applicaties van derden deze functionaliteit aanbieden
Maar er is één groep gebruikers die overblijft met een gecastreerde versie van Smart Lock: gebruikers met een Huawei- of Honor-apparaat EMUI uitvoeren. Om welke reden dan ook biedt EMUI niet dezelfde Smart Lock-functies die de meeste andere Android 5.0+ apparaten bieden. In plaats daarvan kunt u met EMUI uw apparaat alleen automatisch ontgrendelen als het is verbonden met bepaalde Bluetooth-apparaten.
Hoewel het zeker handig is als je een Bluetooth-wearable bezit, zoals een smartwatch of fitnessband, heeft niet iedereen een draagbaar apparaat dat altijd met zijn smartphone is verbonden. Huawei's uitsluiting van de Smart Lock-functie van Google is duidelijk opzettelijk, want zelfs als je Smart Lock inschakelt als een "vertrouwde agent" in Android, kun je de functie niet daadwerkelijk gebruiken.
Kortom, je zit vast aan de "Smart" Lock-functie van Huawei, die minder functies biedt dan Google's Smart Lock. Je enige opties als eigenaar van een Huawei/Honor-apparaat zijn het uitproberen van een van de vele opties in de Play Store die beweren deze functie toe te voegen (die geen enkele ooit op mijn apparaat heeft gewerkt), of om je telefoon te rooten en download een Xposed-module. Het gebrek aan fatsoenlijke opties voor EMUI heeft mij er uiteraard toe aangezet deze tutorial te schrijven. Met een beetje Tasker-magie en een plug-in genaamd AutoTools kunnen we dat ontgrendel automatisch elk Huawei- of Honor-apparaat op basis van locatie zonder root.
Smart Lock voor Huawei/Honor-apparaten
Er zijn slechts twee applicaties nodig om deze functie actief te krijgen. De eerste is Tasker, de ongelooflijk populaire Android-automatiseringstool die we bij XDA vaak gebruiken om problemen op te lossen, variërend van de meest alledaagse tot ongelooflijk complexe. Met een prijs van $ 2,99 lijkt het misschien niet nodig om deze applicatie voor zoiets eenvoudigs aan te schaffen, maar de waarde die deze applicatie kan bieden is enorm, als je bereid bent om een paar tutorials doornemen. Vervolgens heb je de bètaversie van een Tasker-plug-in nodig, bekend als AutoTools. Deze plug-in voegt een heleboel handige functies toe aan de eigen toolkit van Tasker, en in het bijzonder zullen we een functie van AutoTools nodig hebben die bekend staat als Secure Settings om ons doel te bereiken.
Wat we gaan doen is een eigenschap op ons apparaat aanpassen die de timer regelt die Android gebruikt om te bepalen wanneer het vergrendelingsscherm moet worden weergegeven nadat de telefoon is verlopen. Een 'time-out' verwijst hier naar het moment waarop het scherm van uw telefoon wordt uitgeschakeld na X minuten inactiviteit, of wanneer de gebruiker het scherm handmatig uitschakelt door op de aan/uit-knop te drukken. Na een bepaalde tijd (variërend van onmiddellijk nadat het apparaat naar de slaapstand gaat tot 30 minuten nadat het naar de slaapmodus is gegaan), geeft Android het vergrendelscherm weer.
Het probleem met deze twee functies is dat het standaard verhogen van de timer voor automatisch vergrendelen potentieel een beveiligingsprobleem kan zijn, omdat als uw apparaat wordt gejat binnen het tijdsbestek waarin het vergrendelscherm nog niet is geactiveerd, een dief heeft toegang tot de volledige inhoud van uw apparaat. Om dit te verzachten biedt Android een optie "aan/uit-knop vergrendelt apparaat onmiddellijk", zodat u het vergrendelscherm onmiddellijk kunt activeren door op de aan/uit-knop te drukken. Maar vooral als u een korte schermtime-out heeft ingesteld, kunt u dit gemakkelijk vergeten, zodat u er nog steeds voor openstaat dat uw apparaat toegankelijk voor kwaadwillende derden als u per ongeluk het apparaat op een tafel of in uw zak laat time-outen zonder handmatig op de stroom te drukken knop.
Daarom is onze oplossing voor dit probleem het koppelen van een langere timer voor automatisch vergrendelen, niet aan de aan/uit-knop, waarvoor handmatige tussenkomst nodig is, maar aan de locatie/WiFi. Op die manier, u kunt genieten van het gebruik van uw apparaat zonder vergrendelscherm terwijl u comfortabel thuis bent, maar u kunt er zeker van zijn dat de pincode/het wachtwoord van het vergrendelscherm altijd zichtbaar zal zijn als u niet in de buurt bent thuis. Nu we hebben uitgelegd wat we doen, ziet u hier hoe het feitelijk wordt gedaan.
Handleiding
Zoals eerder vermeld, gaan we een bepaalde systeemeigenschap wijzigen. Deze eigenschap wordt gedefinieerd onder de Instellingen. Veilige klasse met de naam lock_screen_lock_after_timeout, en het accepteert gehele waarden in de milliseconden. Om deze waarde te wijzigen, moeten we AutoTools een bepaalde toestemming verlenen, zodat het naar deze instellingen kan schrijven zonder root-toegang nodig te hebben.
Onder het machtigingsbeheersysteem van Android definiëren applicaties de machtigingen die ze willen verlenen in het Manifest-bestand. Gebruikers kunnen vervolgens machtigingen verlenen of weigeren bij installatie (pre-Marshmallow) of op aanvraag (Marshmallow+). Er zijn echter bepaalde machtigingen waardoor applicaties niet kunnen worden verleend, zelfs niet als ze daarom in het Manifest vragen, zoals SCHRIJF_SECURE_SETTINGS. Dit komt omdat het verlenen van een toestemming aan een applicatie die zo krachtig is als deze, die app veel controle over je apparaat zou geven.
Maar er is één oplossing die we kunnen gebruiken om de toestemming WRITE_SECURE_SETTINGS te verlenen aan elke gewenste app. Door het gebruik van ADB's pakketbeheerder (pm) tool kunnen we bijna elke toestemming verlenen aan elke gewenste applicatie (op voorwaarde dat de applicatie die toestemming vraagt in het Manifest-bestand).
Het eerste dat u hoeft te doen is installeer het ADB-binaire bestand op uw computer, gevolgd door de juiste stuurprogramma voor uw apparaat. Schakel vervolgens USB-foutopsporing in in Opties voor ontwikkelaars (ga naar Instellingen --> Over de telefoon en tik zeven keer op Build-nummer als u dat nog niet hebt gedaan) en sluit uw telefoon aan op uw computer. Stuur ten slotte de volgende opdracht zodra u een terminal heeft geopend:
adb shell pm grant com.joaomgcd.autotools android.permission.WRITE_SECURE_SETTINGS
Nu heeft AutoTools de mogelijkheid om elke algemene, beveiligde of systeeminstelling op uw apparaat te wijzigen. Er zijn verschillende manieren waarop u met deze instellingen kunt spelen, en de lijst met beschikbare instellingen in elke categorie hangt volledig af van je apparaat en softwareversie, maar die discussie is voor een andere tijd. Hoe dan ook, we laten u zien hoe u AutoTools kunt gebruiken om de time-out van het vergrendelscherm te regelen.
Stap 2 - Tasker instellen
Open Tasker en druk op de + pictogram in de rechterbenedenhoek om een nieuw profiel aan te maken. Noem je nieuwe profiel zoiets als 'Automatisch vergrendelen' of wat je maar wilt, eigenlijk. Selecteer voor het type context dat we zullen gebruiken Staat. Ga naar Netto --> WiFi verbonden. Hier selecteren we de WiFi-netwerken die we op de witte lijst willen zetten om het apparaat automatisch te ontgrendelen. Druk op de vergrootglas pictogram en selecteer alle WiFi-netwerken die u op de witte lijst wilt plaatsen.
Optioneel: Als je een echt locatiegebaseerd Smart Lock wilt maken (in plaats van alleen op basis van WiFi-netwerken), dan kunt u de context "Locatie" in Tasker gebruiken in plaats van de Staat --> Net --> WiFi Connected functie. Houd er rekening mee dat Tasker geen geo-fences maakt, dus het leeglopen van de batterij zal bij deze methode erger zijn. Als u wilt dat Tasker reageert op batterij-efficiëntere geo-fences, dan moet u de Automatische locatie inpluggen.
Ga terug en u wordt vervolgens gevraagd een taak te maken. Voer een willekeurige naam in (of geen enkele is prima) om naar het scherm voor het maken van taken te gaan. druk de + -pictogram middenonder om een nieuwe actie toe te voegen. Ga naar Plug-in --> AutoTools --> Veilige instellingen. Druk op de potlood -pictogram om het configuratiescherm AutoTools Secure Setting te openen. Ga naar Vergrendel scherm --> Automatisch slot en voer voor de waarde een voldoende hoge waarde in, zoals '9001'. Dit is de waarde, in seconden, waarop AutoTools de automatische vergrendelschermtimer instelt. Gelukkig voor ons hoeven we niet te knoeien met het handmatig instellen van een commando om het lock_screen_lock_after_timeout waarde, aangezien de ontwikkelaar van AutoTools deze functie voor ons heeft geïmplementeerd in een mooie GUI.
Sla deze instelling op door op het vinkje bovenaan te drukken, vervolgens eenmaal op de Terug-toets te drukken in Tasker en ten slotte door het scherm voor het maken van taken te verlaten. Zodra u dat heeft gedaan, houdt Tasker uw apparaat nu automatisch heel lang ontgrendeld terwijl u thuis bent. Zeker weten dat "aan/uit-knop vergrendelt het apparaat onmiddellijk" is gehandicapt in beveiligde vergrendelingsinstellingen, anders wordt het vergrendelingsscherm van uw telefoon geactiveerd als u thuis op de aan/uit-knop drukt, wat niet is wat u wilt!
Ten slotte zullen we nog een taak moeten toevoegen die wordt geactiveerd wanneer we een van de op de witte lijst geplaatste WiFi-netwerken verlaten. Op de hoofdpagina van Tasker: lang indrukken op de Taak die u zojuist hebt gemaakt en tik op exit-taak toevoegen in het pop-upmenu. Geef deze taak een willekeurige naam en ga opnieuw naar het scherm voor het maken van taken. Tik hier op de + pictogram en ga opnieuw naar Plug-in --> AutoTools --> Veilige instellingen. Voer in dezelfde automatische vergrendelingsoptie deze keer een waarde in van 0. Zodra u uw WiFi-netwerk verlaat, zal Tasker niet langer vertragen dat het vergrendelscherm verschijnt nadat de telefoon is uitgevallen.
Optioneel: Voeg een tweede actie toe door op te drukken + pictogram, maar deze keer ga naar Weergave --> Systeemvergrendeling. Met deze actie wordt uw telefoon automatisch vergrendeld wanneer u het bereik van uw op de witte lijst geplaatste WiFi-netwerken verlaat. voor het geval u een heel lange time-out voor de weergave heeft en uw telefoon nooit in de sluimerstand gaat als u van huis gaat. Als u dit doet, moet u Tasker tot apparaatbeheerder maken door naar Instellingen te gaan. Zoek gewoon naar de optie en verleen Tasker de toestemming.
En dat is het! Hoewel deze tutorial lang lijkt, is het Tasker-script zelf in werkelijkheid heel eenvoudig. Er zijn in totaal maximaal drie acties nodig om deze functie in te schakelen. Probeer het eens en laat ons weten hoe het voor u werkt!