Logo sv.androidermagazine.com
Logo sv.androidermagazine.com

Vad betyder egentligen rooting din telefon?

Innehållsförteckning:

Anonim

Vi älskar att få dina frågor. Det är alltid bra när vi kan hjälpa varandra och vi lär oss saker när vi letar efter svaren. Även om vi inte hittar tid att svara på dem alla, kommer ibland en viss fråga tillräckligt för att den förtjänar ett detaljerat svar.

"Vad betyder rot?" är en av dessa frågor. Konceptet kan vara enkelt för några av oss, men för många som inte har spenderat tid med att fikla med Android eller något annat behörighetsbaserat operativsystem är det något att ställa frågor om. Jag ska försöka svara på dem alla så bra jag kan.

Behörigheter

Innan vi definierar rot är det viktigt att förstå varför det finns och hur det fungerar. Det beror på att Android använder behörigheter (Linux-baserade behörigheter, för att vara exakta) i filstrukturen. Varje fil, varje mapp och varje partition har en uppsättning behörigheter. Dessa behörigheter bestämmer vem som kan läsa en fil (titta på eller få åtkomst till innehållet utan att ändra dem), skriva till en fil (kunna ändra innehållet i den filen eller skapa en ny fil i en mapp eller partition) och köra en fil (kör filen om det är en typ som kan köras, som en app). Detta görs baserat på användare och behörigheter - vissa användare har åtkomst, medan användare som inte har rätt behörighet blockeras från att ha åtkomst.

När du först ställer in telefonen och slår på den för första gången tilldelas du ett användar-ID. Om en annan användare loggar in via Google tilldelas de ett annat användar-ID. När en app är installerad på din telefon tilldelas den också ett eget användar-ID. Själva systemet är en användare och andra processer som behöver köras på din telefon kan ha sitt eget användar-ID. Allt som kan göra vad som helst för alla filer på din Android är en användare.

Ett system med användare och behörigheter är hur Android håller reda på vem som kan göra vad.

Låt oss säga att du installerar en meddelanden-app. Det får ett användar-ID när du installerar det. Det får också en plats på din datapartition av sin egen, som bara den har tillgång till. Du har behörigheter att köra appen, och när appen körs har den behörighet att få åtkomst till sin egen datamapp och filer. Appen kan också begära tillåtelse att få åtkomst till saker som din adressbok eller SD-kort eller fotobibliotek. Om du säger ja till dessa förfrågningar (eller om du godkänner behörigheterna för äldre versioner av Android) får appens användar-ID tillstånd till datafilerna för dessa saker, vilket innebär att den kan titta på datamappen och dess innehåll och eventuellt ändra dem eller lägg till nya filer. Appen har inte åtkomst till några datafiler som den inte har behörighet att "titta" på. Det betyder (i vårt exempel) det kan inte göra saker som att titta på inställningsdatabasen eller komma åt datamappen i ett annat program. Termen sandlåda används ofta för detta - appar är sandlådor och kan bara spela i sandlådorna de har tillåtelse att vara i.

För filer som är program och som kan köras (som appar) gäller samma tillståndsmodell. Ditt användar-ID har behörighet att köra apparna som du installerade medan du är inloggad. Systemanvändaren har tillåtelse att köra dem och andra systemnivåanvändare kan ha tillgång till apparna eller vissa processer som apparna använder. Andra appar kan inte starta appar som de inte har tillåtelse att starta. Om du har lagt till en sekundär användare har de inte tillgång till dina appar eller filer och tvärtom. Det finns filer, mappar och appar på din telefon som ditt användar-ID inte har behörighet att se, ändra eller köra. Vanligtvis kräver de delar av Android behörigheter på systemnivå (systemanvändar-ID) att göra något med, och du är inte systemanvändaren eller en användare som har behörigheter på systemnivå.

Växla behörigheter

Det är tekniskt möjligt att ändra hur din telefon startar upp och filerna den använder för att starta körsystemet och tilldela ditt användar-ID förhöjda behörigheter, men det är varken säkert eller praktiskt. Men Android (och de flesta Unix- eller Linuxbaserade system) har det som kallas en root-användare, och stöder SubstituteUser-binär (tänk på en binär som en liten app) för att ändra användar-ID. De används för att administrera systemet på kärnnivå.

Eftersom de människor som skapade din telefon inte vill att du ska ha enkel åtkomst till root-användar-ID - och inte alla skälen är själviska eftersom det också skyddar dig och dina privata data - ingår inte SubstituteUser-binären i de flesta byggnader av Android. Utan substitutionsanvändare kan vi inte ändra vårt användar-ID. De flesta saker på systemnivå i Android har förresten liknande enkla namn. Kärnsäkerheten (filer i bootloader och / eller själva kärnan) är också byggd på ett sätt för att förhindra att du byter användar-ID som en del av SELinux (S ecurity- E nhanced Linux - sa att namnen är enkla) kärnmodul. Vissa telefoner (Samsungs Knox kommer att tänka på) har ytterligare skydd, och nästan alla företag som tillverkar Androids kräver att, för att göra ändringar, måste bootloadern låsas upp så att dessa filer kan ändras och låta dig byta användar-ID. Vissa telefoner, som BlackBerry Priv går till och med ett steg längre och kommer inte att starta om vi ändrar något (även om vi kunde).

För att bli rot behöver du ett sätt att ändra ditt användar-ID.

När vi väl har kommit förbi allt detta - antingen genom att låsa upp bootloader genom godkända medel eller använda någon form av exploit - kan vi placera SU-binären (SubstituteUser) på en plats som den kan köras när den kallas att köra - det kallas en PATH. Om någon app finns i ditt användar-ID: s PATH kommer den att köras utan att säga systemet exakt var det är. Du måste också se till att SU-binären är på en plats där ditt användar-ID har tillstånd att köra (köra) filer. Alla andra appar (Google Play har många appar som behöver root-behörigheter) kommer också att behöva samma åtkomst. När du använder en metod för att rota din telefon sorteras allt detta av de personer som byggde rotmetoden.

När allt som är på plats kan vi köra SU binärt (eller en annan app kan köra SU binär).

Få root-åtkomst

Det är här roten kommer in. SU-binären använder flaggor när den körs för att berätta systemet vilket användar-ID du vill växla till. Om jag till exempel kör SU-binäret på min Ubuntu-dator som denna "su Jim -c nano" kommer jag att köra nano-kommandot som användaren Jim (efter att ha angett Jims lösenord). Om du kör SU binärt utan flaggor eller argument, byter det dig till rotanvändaren. Normalt skulle du behöva ange ett lösenord, men eftersom "root" är en oanvänd användare på Android har det inget lösenord. Om du kör kommandot "su" byter du dig till användarroten och tilldelar dig användar-ID för 0 och sätter dig i rotgruppen. Du är nu superanvändaren.

Som superanvändare kan du göra vad som helst för alla filer, mappar eller partitioner på din Android. Med vad som helst menar vi bokstavligen allt. Du kan ta bort bloatware-appar och du kan också ta bort viktiga systemfiler som bryter din telefon. Du kan också göra saker till hårdvaran som att ändra CPU-frekvensen och förstöra din telefon för alltid.

Root är superanvändaren som kan göra vad som helst. Och vi menar vad som helst.

Appar kan göra samma sak. SU placeras där den finns i applikationen PATH och alla appar kan ringa den och köra den. Den appen har sedan Super User-behörigheter och kan göra vad som helst för alla filer som helst på din telefon. Det är därför människorna som skapade din telefon verkligen inte vill att du ska ha denna åtkomstnivå, och företagen som låter dig låsa upp startladdaren och ändra saker fortfarande inte placerar SU binär på din telefon som standard. Att ha root-åtkomst utan något sätt att kontrollera vem eller vad som kan använda det är farligt för telefonens programvara och dina personuppgifter.

Det är därför du måste installera en app som tvingar dig att tillåta root-åtkomst när du eller någon annan app försöker åberopa Super User-behörigheterna. De flesta gånger när du använder en root-metod för din telefon kommer en att inkluderas tillsammans med några andra användbara binärer som BusyBox-verktygset. Om du gjorde saker för hand måste du installera en själv. SuperSU by Chainfire i Google Play är bra att börja med.

Småsaker

Många telefoner och vissa rotmetoder gör saker och ting lite annorlunda (Android 4.3 medförde en hel del förändringar) och kräver skript eller en demon (du kommer att se ord som daemonsu eller su.d nämnt) istället för att bara släppa SU-binären på plats. Dessa används för att ringa SubstituteUser så att du kan växla till rotanvändaren precis som den råa binära metoden. De människor som räknat ut hur du ska rota din telefon har sorterat allt detta och det kommer att fungera på samma sätt som på den användarvändande sidan.

Det är också möjligt att "temp-root" vissa Androids. Detta betyder att du kan ha Super User-behörigheter och göra några saker du behöver göra, men en omstart tar bort root-åtkomst. På samma sätt kan du ha en "shell-root" där du bara kan komma åt root-användaren via adb från din dator.

Slutligen vill jag betona att om du hade dessa frågor måste du överväga om du är redo att ha en rotad Android. Vi tullade inte när vi sa att det är lätt att förstöra din telefon med SuperUser-åtkomst. Det finns ingen anledning att skämmas för att du behöver läsa lite eller ställa några frågor till innan du gör saker som kan bryta din telefon eller ge någon slumpmässig rouge-app åtkomst till all din data.

Det är vad vi är här för.