Hemsida » hur » SafetyNet Explained Varför Android Pay and Other Apps inte fungerar på rotade enheter

    SafetyNet Explained Varför Android Pay and Other Apps inte fungerar på rotade enheter

    Att döda din Android-enhet ger dig tillgång till ett större antal applikationer och en djupare tillgång till Android-systemet. Men vissa appar, som Google: s Android Pay, fungerar inte alls på en rotad enhet.

    Google använder något som heter SafetyNet för att upptäcka om enheten är rotad eller inte och blockerar åtkomst till dessa funktioner. Google är inte den enda, heller inte mycket av program från tredje part fungerar inte på rotade Android-enheter, även om de kan kontrollera att ro finns på andra sätt.

    SafetyNet: Hur Google vet du har rotat din Android-telefon

    Android-enheter erbjuder ett "SafetyNet API", som ingår i Google Play Services-lagret installerat på Google-godkända Android-enheter. Detta API "ger åtkomst till Googles tjänster som hjälper dig att bedöma hälsan och säkerheten för en Android-enhet", enligt Google. Om du är en Android-utvecklare kan du ringa det här API-en i din app för att kontrollera om den enhet du kör på har manipulerats med.

    Detta SafetyNet API är utformat för att kontrollera om en enhet har manipulerats - oavsett om den har roterats av en användare, kör en anpassad ROM eller har blivit smittad med skadlig programvara på låg nivå, till exempel.

    Enheter som skickas med Googles Play Store och andra installerade appar måste passera Googles Android "Compatibility Test Suite". Att rotera en enhet eller installera en anpassad ROM hindrar en enhet från att vara "CTS-kompatibel". Så här kan SafetyNet API berätta om du är rotad - det kontrollerar bara för CTS-kompatibilitet. På samma sätt, om du får en Android-enhet som aldrig kom med Googles appar, som en av de 20 tabletterna som skickas direkt från en fabrik i Kina, kommer den inte att betraktas som "CTS-kompatibel" alls, även om du inte har rotat den.

    För att hämta den här informationen hämtar Google Play Services ett program med namnet "snet" och kör det i bakgrunden på enheten. Programmet samlar in data från din enhet och skickar den regelbundet till Google. Google använder den här informationen för en rad olika ändamål, från att få en bild av det bredare Android-ekosystemet för att avgöra huruvida enhetens programvara har manipulerats eller inte. Google förklarar inte exakt vad snet letar efter, men det är troligt att snet kontrollerar om din systempartition har ändrats från fabriksstatus.

    Du kan kontrollera enhetens SafetyNet-status genom att ladda ner en app som SafetyNet Helper Sample eller SafetyNet Playground. Appen kommer att be Googles SafetyNet-tjänst om enhetens status och berätta svaret från Googles server.

    För mer tekniska detaljer, läs det här blogginlägget, skrivet av John Kozyrakis, en teknisk strateg vid Cigital, ett programvaruföretag. Han grävde in i SafetyNet och förklarar mer om hur det fungerar.

    Det är upp till appen

    SafetyNet är valfritt för apputvecklare, och apputvecklare kan välja att använda det eller inte. SafetyNet förhindrar endast att en app fungerar om en apps utvecklare inte vill att den ska fungera på rotade enheter.

    De flesta appar kommer inte att kolla SafetyNet API alls. Även en app som kontrollerar SafetyNet API - som testapparna ovan - slutar fungera om de får ett dåligt svar. Appens utvecklare måste kontrollera SafetyNet API och göra appen vägran att fungera om den lär sig att enhetens programvara har ändrats. Googles egna Android Pay app är ett bra exempel på detta i åtgärd.

    Android Pay fungerar inte på rotade enheter

    Googles mobilbetalningslösning för Android Pay fungerar inte alls på rotade Android-enheter. Försök att starta det, och du får bara se ett meddelande som säger "Android Pay kan inte användas. Google kan inte verifiera att din enhet eller programvaran som körs på den är Android-kompatibel. "

    Det handlar inte bara om att rota, det är självklart att du kör en anpassad ROM också ger dig detta krav. SafetyNet API kommer att hävda att det inte är "Android-kompatibelt" om du använder en anpassad ROM som enheten inte kom med.

    Kom ihåg att det här inte bara upptäcker roten. Om din enhet smittades av någon skadlig programvara på nätverket med möjlighet att spionera på Android Pay och andra appar, skulle SafetyNet API också hindra Android Pay från att fungera, vilket är bra.

    Att rösta på din enhet bryter Androids normala säkerhetsmodell. Android Pay skyddar normalt din betalningsinformation med hjälp av Androids sandboxningsfunktioner, men appar kan bryta sig ur sandlådan på en rotad enhet. Google har ingen väg att veta hur säker Android Pay skulle vara på en viss enhet om den är rotad eller kör en okänd anpassad ROM, så de blockerar den. En Android Pay ingenjör förklarade problemet på XDA Developers forum om du är nyfiken på att läsa mer.

    Andra sätt Apps kan upptäcka rot

    SafetyNet är bara ett sätt att en app kan kontrollera om den körs på en rotad enhet. Till exempel innehåller Samsung-enheter ett säkerhetssystem som heter KNOX. Om du roterar din enhet utlöses KNOX-säkerhet. Samsung Pay, Samsungs egen mobilbetalningsapp, kommer att vägra att fungera på rotade enheter. Samsung använder KNOX för detta, men det kan lika bra använda SafetyNet.

    På samma sätt kommer många apper från tredje part att blockera dig från att använda dem, och inte alla använder SafetyNet. De kan bara leta efter förekomsten av kända root-appar och -processer på en enhet.

    Det är svårt att hitta en aktuell lista över appar som inte fungerar när en enhet är rotad. Dock tillhandahåller RootCloak flera listor. Dessa listor kan vara out-of-date, men de är de bästa som vi kan hitta. Många är bank- och andra mobila plånböcker, som blockerar åtkomst på rotade telefoner i ett försök att skydda din bankinformation från att fångas av andra appar. Appar för video streaming-tjänster kan också vägra att fungera på en rotad enhet som en slags DRM-åtgärd, för att förhindra att du spelar in en skyddad videoström.

    Vissa appar kan luras

    Google spelar ett katt-och-musspel med SafetyNet och uppdaterar ständigt det i ett försök att hålla sig inför människor som kommer runt det. Till exempel har Android-utvecklaren Chainfire skapat en ny metod för att rota Android-enheter utan att ändra systempartitionen, känd som "systemlös rot". SafetyNet upptäckte initialt inte sådana enheter som manipulerade, och Android Pay fungerade, men SafetyNet uppdaterades så småningom för att upptäcka den här nya rotationsmetoden. Det innebär att Android Pay fungerar inte längre tillsammans med systemlös rot.

    Beroende på hur en app kontrollerar root access kan du kanske lura den. Till exempel finns det enligt uppgift metoder för att rotera vissa Samsung-enheter utan att snubbla KNOX-säkerheten, vilket skulle göra det möjligt för dig att fortsätta använda Samsung Pay.

    När det gäller appar som bara söker efter root-appar på ditt system finns det en Xposed Framework-modul som heter RootCloak som enligt uppgift tillåter dig att lura dem till att fungera ändå. Detta fungerar med appar som DirecTV GenieGo, Best Buy CinemaNow och Filmer från Flixster, som normalt inte fungerar på rotade enheter. Men om dessa appar uppdaterades för att använda Googles SafetyNet, skulle de inte vara så lätta att lura på så sätt.


    De flesta appar fortsätter att fungera normalt när du har rotatat din enhet. Mobila betalningsappar är det stora undantaget, liksom några andra bank- och finansiella appar. Betalda videostreaming-tjänster försöker ibland att blockera dig från att titta på deras videoklipp också.

    Om en app du behöver inte fungerar på din rotad enhet kan du alltid ta bort enheten för att använda den. Appen ska fungera efter att du har returnerat enheten till dess säkra, fabriksstatus.

    Bildkrediter: Danny Choo på Flickr