Hur man aktiverar en platsbaserad Smart Lock-funktion på Huawei/Honor-enheter som kör EMUI

En handledning om hur man replikerar de platsbaserade funktionerna i Googles Smart Lock på Huawei- eller Honor-enheter som kör EMUI.

Om du aldrig har ägt en Huawei- eller Honor-enhet, tittar du förmodligen på titeln och säger "va?" När allt kommer omkring är Smart Lock en funktion som introducerats tillbaka Android 5.0 Lollipop för att göra det enklare att snabbt komma åt din enhet under vissa förutsättningar till exempel plats, när du är ansluten till vissa enheter, när du är i fickan eller när du känner igen din röst.

En sådan funktion är normalt knappast värd att diskutera med tanke på att det har gått över två år sedan Lollipop släpptes, och det faktum att cirka 65 % av alla Android-enheter körs på Android 5.0+. Vi misstänker att andelen användare på våra forum som kör åtminstone Lollipop är mycket, mycket högre, även om vi inte har någon exakt statistik på det. Hur som helst har Googles Smart Lock-funktion blivit så vanlig bland Android-enheter att tredjepartsapplikationer som erbjuder denna funktionalitet

har till stor del varit övergiven, eftersom de inte ser poängen med att konkurrera med funktionen.

Men det finns en uppsättning användare som har en kastrerad version av Smart Lock: användare med en Huawei eller Honor-enhet kör EMUI. Av vilken anledning som helst ger EMUI inte samma Smart Lock-funktioner som de flesta andra Android 5.0+-enheter erbjuder. Istället låter EMUI dig bara låsa upp din enhet automatiskt om den är ansluten till vissa Bluetooth-enheter.

Även om det verkligen är användbart om du äger en bärbar Bluetooth-enhet som en smartklocka eller fitnessband, har inte alla en bärbar enhet alltid ansluten till sin smartphone. Huaweis uteslutning av Googles Smart Lock-funktion är helt klart avsiktlig, för även om du aktiverar Smart Lock som en "pålitlig agent" i Android så kan du inte faktiskt använda funktionen.

I grund och botten har du fastnat för Huaweis "Smart" Lock-funktion, som erbjuder färre funktioner än Googles Smart Lock. Dina enda alternativ som Huawei/Honor-enhetsägare är att prova ett av de många alternativen i Play Butik som gör anspråk på att lägga till den här funktionen (av vilka ingen någonsin har fungerat på min enhet), eller att rota din telefon och ladda ner en Xposed-modul. Bristen på anständiga alternativ för EMUI har naturligtvis drivit mig att skriva den här handledningen. Med lite Tasker-magi och en plug-in som heter AutoTools kan vi automatiskt låsa upp alla Huawei- eller Honor-enheter baserat på plats utan att behöva root.


Smart Lock för Huawei/Honor-enheter

Det behövs bara två applikationer för att få den här funktionen igång. Den första är Tasker, det otroligt populära automationsverktyget för Android som vi på XDA ofta använder för att lösa problem som sträcker sig från det mest vardagliga till otroligt komplexa. För $2,99 kan det tyckas onödigt att köpa den här applikationen för något så enkelt, men värdet som denna applikation kan ge är enormt, om du är villig att gå igenom några tutorials. Därefter behöver du betaversionen av en Tasker-plugin som kallas AutoTools. Denna plug-in lägger till massor av användbara funktioner till Taskers inbyggda verktygslåda, och i synnerhet kommer vi att behöva en funktion av AutoTools som kallas Secure Settings för att uppnå vårt mål.

Det vi kommer att göra är att ändra en egenskap på vår enhet som styr timern som Android använder för att avgöra när låsskärmen ska visas efter att telefonen har tagit timeout. En "time-out" här hänvisar till antingen när din telefons skärm stängs av efter X minuters inaktivitet eller när användaren manuellt stänger av skärmen genom att trycka på strömknappen. Efter en viss tid (från omedelbart efter att enheten går i viloläge upp till 30 minuter efter att den har gått in i viloläge), kommer Android att visa låsskärmen.

Problemet med dessa två funktioner är att som standard kan en ökning av "automatiskt lås"-timern potentiellt vara ett säkerhetsproblem, eftersom om din enhet svepas inom det tidsfönster där låsskärmen ännu inte har aktiverats, en tjuv kommer att ha tillgång till hela innehållet på din enhet enhet. För att mildra detta erbjuder Android ett "strömknapp låser enheten omedelbart" så att du omedelbart kan aktivera låsskärmen genom att trycka på strömknappen. Men, och speciellt om du har ställt in en kort skärm timeout, är det lätt att glömma att göra detta, så du är fortfarande öppen för att ha din enhet nås av illvilliga tredje parter om du av misstag låter enheten timeout på ett bord eller i fickan utan att manuellt trycka på strömmen knapp.

Därför är vår lösning på detta problem att knyta en längre "automatiskt lås"-timer inte till strömknappen, vilket kräver manuellt ingripande, utan istället till plats/WiFi. På det sättet, du kan njuta av att använda din enhet utan låsskärm när du är bekvämt i ditt eget hem, men var säker på att låsskärmens stift/lösenord alltid kommer att vara synligt när du är borta från Hem. Nu när vi har förklarat vad vi gör, så här är det faktiskt gjort.


Handledning

Som nämnts tidigare kommer vi att ändra en viss systemegenskap. Denna egenskap definieras under Inställningar. Säker klass med namnet lock_screen_lock_after_timeout, och den accepterar heltalsvärden i millisekunder. För att ändra detta värde måste vi ge AutoTools en viss behörighet så att den kan skriva till dessa inställningar utan att behöva root-åtkomst.

Under Androids behörighetshanteringssystem definierar applikationer de behörigheter de vill beviljas i Manifest-filen. Användare kan sedan bevilja eller neka behörigheter vid installation (pre-Marshmallow) eller på begäran (Marshmallow+). Det finns dock vissa tillstånd att ansökningar inte kan beviljas även om de begär det i Manifestet, som t.ex WRITE_SECURE_SETTINGS. Detta beror på att att ge alla appar en så kraftfull behörighet som detta skulle ge den appen massor av kontroll över din enhet.

Men det finns en lösning som vi kan använda för att ge WRITE_SECURE_SETTINGS behörighet till vilken app vi vill. Genom att använda ADB pakethanterare (pm) verktyg, kan vi ge nästan vilken behörighet som helst till vilken applikation vi vill (förutsatt att applikationen begär det tillståndet i Manifest-filen).

Det första du behöver göra är installera ADB-binären på din dator följt av rätt drivrutin för din enhet. Aktivera sedan USB-felsökning i utvecklaralternativ (gå till Inställningar --> Om telefon och tryck på Byggnummer 7 gånger om du inte redan har gjort det) och anslut din telefon till din dator. Slutligen, skicka följande kommando när du har öppnat en terminal:

adb shell pm grant com.joaomgcd.autotools android.permission.WRITE_SECURE_SETTINGS

Nu kommer AutoTools att ha möjlighet att ändra alla globala, säkra eller systeminställningar på din enhet. Det finns olika sätt du kan leka med dessa inställningar och listan över tillgängliga inställningar i varje kategori beror helt på din enhet och programvara, men den diskussionen är för en annan tid. I vilket fall som helst kommer vi att gå vidare och visa dig hur du använder AutoTools för att styra tidsgränsen för låsskärmen.

Steg 2 - Konfigurera Tasker

Öppna Tasker och tryck på + ikonen i det nedre högra hörnet för att skapa en ny profil. Ge din nya profil ett namn som "Automatiskt lås" eller vad du vill, egentligen. För den typ av sammanhang vi kommer att använda, välj stat. Gå till Nät --> WiFi ansluten. Här kommer vi att välja de WiFi-nätverk som vi vill vitlista för att automatiskt låsa upp enheten. Slå förstoringsglas och välj alla WiFi-nätverk som du vill ha vitlista.

Frivillig: Om du vill skapa ett verkligt platsbaserat Smart Lock (snarare än bara baserat på WiFi-nätverk), då kan du använda "Plats"-kontexten i Tasker istället för staten --> Nät --> WiFi ansluten funktion. Observera att Tasker inte skapar geo-stängsel, så batteriladdningen blir sämre med den här metoden. Om du vill få Tasker att reagera på mer batterieffektiva geo-stängsel, måste du installera AutoLocation plug-in.

Gå tillbaka ut och du kommer att bli ombedd att skapa en uppgift. Ange vilket namn som helst (eller inget är bra) för att komma till skärmen för att skapa uppgifter. tryck på + ikonen längst ner i mitten för att lägga till en ny åtgärd. Gå till Plugin --> Autoverktyg --> Säkra inställningar. Slå penna ikonen för att öppna AutoTools Secure Setting-konfigurationsskärm. Gå till Låsskärm --> Automatiskt lås och för värdet anger du ett tillräckligt högt värde som "9001'. Detta är värdet, i sekunder, som AutoTools ställer in den automatiska låsskärmstimern till. Lyckligtvis för oss behöver vi inte bråka med att manuellt ställa in ett kommando för att ändra lock_screen_lock_after_timeout värde, eftersom utvecklaren av AutoTools har implementerat den här funktionen åt oss i ett snyggt GUI.

Spara den här inställningen genom att trycka på bockikonen upptill, tryck sedan på bakåttangenten en gång tillbaka i Tasker och slutligen genom att lämna skärmen för att skapa uppgift. När du har gjort det kommer Tasker nu automatiskt att hålla din enhet olåst under riktigt lång tid medan du är hemma. Se till att "strömknappen låser omedelbart enheten" är Inaktiverad i säkra låsinställningar, annars aktiveras telefonens låsskärm när du trycker på strömknappen när du är hemma, vilket inte är vad du vill!

Slutligen måste vi lägga till en annan uppgift som utlöses när vi lämnar något av de vitlistade WiFi-nätverken. På Tasker huvudsida, lång pressUppgift du just skapat och tryck på lägg till utgångsuppgift i popup-menyn. Namnge den här uppgiften vad som helst och gå in på skärmen för att skapa uppgift igen. Här, tryck på + ikonen och återigen gå till Plugin --> Autoverktyg --> Säkra inställningar. I samma automatiska låsalternativ anger du den här gången ett värde på 0. När du lämnar ditt WiFi-nätverk kommer Tasker inte längre att fördröja att låsskärmen visas efter att telefonen har gått ut.

Frivillig: Lägg till en andra åtgärd genom att trycka på + ikon men den här gången gå till Display --> Systemlås. Den här åtgärden låser din telefon automatiskt när du lämnar räckvidden för dina vitlistade WiFi-nätverk, bara om du har en riktigt lång skärmtimeout och din telefon aldrig går i viloläge när du går hemifrån. Om du gör detta måste du göra Tasker till enhetsadministratör genom att gå till Inställningar. Sök bara efter alternativet och ge Tasker tillstånd.

Och det är allt! Även om den här handledningen verkar lång, är själva Tasker-skriptet i själva verket väldigt enkelt. Totalt upp till 3 åtgärder krävs för att aktivera den här funktionen. Ge det här ett försök och låt oss veta hur det fungerar för dig!