Съдържание:
Обичаме да получаваме вашите въпроси. Винаги е хубаво нещо, когато можем да си помагаме взаимно и сами се научаваме да търсим отговорите. Въпреки че не можем да намерим време да отговорим на всички тях, понякога се появява достатъчно въпрос, който заслужава подробен отговор.
"Какво означава корен?" е един от тези въпроси. Концепцията може да е проста за някои от нас, но за много хора, които не са прекарали време да се занимават с Android или друга операционна система, базирана на разрешения, е нещо, за което да задават въпроси. Ще се опитам да им отговоря на всички, както мога.
Разрешения
Преди да определим корен, важно е да разберем защо той съществува и как работи. Това е така, защото Android използва разрешения (базирани на Linux разрешения, за да бъдем точни) във файловата структура. Всеки файл, всяка папка и всеки дял има набор от разрешения. Тези разрешения решават кой може да чете файл (гледайте или да получите достъп до съдържанието, без да ги променяте), запишете в файл (бъдете в състояние да промените съдържанието на този файл или да създадете нов файл в папка или дял) и да изпълните файл (стартирайте файла, ако е тип, който може да се изпълнява, като приложение). Това се прави въз основа на потребители и разрешения - определени потребители имат достъп, докато потребителите, които нямат правилни разрешения, са блокирани от достъп.
Когато за първи път настроите телефона си и го включите за първи път, получавате потребителски идентификационен номер. Ако друг потребител влезе чрез Google, той му получава различен потребителски идентификационен номер. Когато приложението е инсталирано на вашия телефон, то също получава собствена идентификация на потребителя. Самата система е потребител и други процеси, които трябва да се стартират на телефона ви, може да имат собствен идентификационен номер на потребителя. Всичко, което може да направи всичко с всякакви файлове на вашия Android, е потребител.
Система от потребители и разрешения е как Android следи кой какво може да прави.
Да речем, че инсталирате приложение за съобщения. Той получава присвоен потребителски идентификатор, когато го инсталирате. Той също така получава място на собствения си дял данни, до който само той има достъп. Имате разрешения за изпълнение на приложението и когато приложението работи, има разрешение за достъп до собствената му папка с данни и файлове. Приложението може също да поиска разрешение за достъп до неща като вашата адресна книга или SD карта или библиотека със снимки. Ако отговорите „да“ на тези искания (или ако сте съгласни с разрешенията за по-стари версии на Android), идентификационният номер на потребителя на приложението получава разрешение за файловете с данни на тези неща, което означава, че може да прегледа папката с данни и нейното съдържание и евентуално да се промени тях или добавете нови файлове. Приложението не може да има достъп до файлове с данни, на които няма разрешение за "преглед". Това означава (в нашия пример), че не може да прави неща като поглед в базата данни с настройки или достъп до папката с данни на друго приложение. Терминът "пясъчник" често се използва за това - приложенията са с пясъчник и могат да играят само в пясъчниците, в които имат разрешение да бъдат.
За файлове, които са програми и могат да се изпълняват (като приложения), важи същият модел разрешения. Вашият потребителски идентификатор има разрешение за стартиране на приложенията, които сте инсталирали, докато сте влезли в системата. Потребителят на системата има разрешение да ги стартира, а други потребители на системно ниво могат да имат достъп до приложенията или някои процеси, които приложенията използват. Други приложения не могат да стартират приложения, те нямат разрешение за стартиране. Ако сте добавили вторичен потребител, те нямат достъп до вашите приложения или файлове и обратно. На вашия телефон има файлове, папки и приложения, за които потребителският ви идентификационен номер няма разрешение да вижда, променя или стартира. Обикновено тези части на Android изискват разрешения на системно ниво (идентификатор на системния потребител), за да свършат нещо, а вие не сте системният потребител или потребител, който има разрешения на системно ниво.
Превключване на разрешения
Макар че технически е възможно да промените начина на зареждане на телефона си и файловете, които използва, за да стартирате работещата система и да присвоите вашите потребителски идентификатори с повишени разрешения, това не е нито безопасно, нито практично. Но Android (и повечето системи базирани на Unix или Linux) имат това, което се нарича root потребител, и поддържат двоичния файл SubstituteUser (помислете за двоично приложение като малко приложение), за да променят потребителските идентификационни номера. Те се използват за администриране на системата на основно ниво.
Тъй като хората, които са направили телефона ви, не искат да имате лесен достъп до идентификационния номер на коренния потребител - и не всички причини са егоистични, защото защитава и вас и вашите лични данни - двоичният файл SubstituteUser не е включен в повечето компилации на Android. Без SubstituteUser не можем да превключим потребителския си идентификационен номер. Повечето неща на системно ниво в Android имат между другото подобни лесни имена. Основната сигурност (файловете в зареждащия механизъм и / или самото ядро) също са изградени по начин, който да ви попречи да превключвате потребителски идентификатори като част от SELinux (S ecurity- E nhanced Linux - каза ви, че имената са лесни) модула на ядрото, Някои телефони (Knox на Samsung идва на ум) имат допълнителна защита и почти всички компании, които правят Androids, изискват, за да направят промени, bootloader трябва да бъде отключен, така че тези файлове да могат да се променят и да ви позволят да превключвате идентификатори на потребители, Някои телефони, като BlackBerry Priv, дори отиват крачка напред и няма да се зареждат, ако променим нещо (дори ако можехме).
За да станете root, се нуждаете от начин да промените потребителския си идентификационен номер.
След като преодолеем всичко това - или чрез отключване на зареждащия механизъм чрез разрешени средства, или чрез някакъв експлоатация - можем да поставим SU двоичния файл (SubstituteUser) на място, което може да работи, когато се извиква да работи - това се нарича PATH. Ако някое приложение е в PATH на вашия потребителски идентификатор, то ще работи, без да казва на системата къде точно се намира. Също така трябва да се уверите, че двоичният SU се намира на място, където потребителският ви идентификатор има разрешение за изпълнение (стартиране) на файлове. Всяко друго приложение (Google Play има много приложения, които се нуждаят от root права) също ще се нуждае от същия достъп. Когато използвате метод за корен на вашия телефон, всичко това се подрежда от хората, които са изградили кореновия метод.
След като всичко е на мястото си, можем да стартираме SU двоичния файл (или друго приложение може да изпълнява SU двоично).
Получаване на корен достъп
Това е мястото, където идва коренът. SU-файлът използва флагове, когато се изпълнява, за да каже на системата към кой потребителски идентификатор искате да преминете. Например, ако изпълня SU двоичния файл на моя Ubuntu компютър като този "su Jim -c nano", ще изпълня командата nano като потребител Джим (след като предоставя паролата на Jim). Ако стартирате SU двоичен файл без флагове или аргументи, той ви превключва на root потребител. Обикновено ще трябва да въведете парола, но тъй като "root" е неизползван потребител в Android, той няма парола. Изпълняването на командата "su" ще ви превключи към потребителския корен и ще ви назначи потребителския идентификатор на 0 и ще ви постави в кореновата група. Вече сте супер потребител.
Като супер потребител можете да направите всичко с всеки файл, папка или дял на вашия Android. Под всичко имаме предвид буквално всичко. Можете да премахнете приложения с разширен софтуер и можете също да премахнете основни системни файлове, които разбиват телефона ви. Можете също така да правите неща с хардуера като да промените честотата на процесора и да съсипете телефона си завинаги.
Root е супер потребителят, който може да направи всичко. И имаме предвид всичко.
Приложенията могат да направят същото. SU се поставя там, където е в приложението PATH и всяко приложение може да го извика и да го стартира. Тогава приложението има разрешения за супер потребител и може да прави всичко, което харесва, на всеки файл на всяко място от телефона ви. Ето защо хората, които са направили телефона ви, наистина не искат да имате това ниво на достъп, а компаниите, които ви позволяват да отключите зареждащия механизъм и да промените нещата, все още не поставят SU двоичния файл на вашия телефон по подразбиране. Да имате root достъп, без да контролирате кой или какво може да го използвате, е опасно за софтуера на телефона и за личните ви данни.
Ето защо трябва да инсталирате приложение, което ви принуждава да разрешавате root достъп всеки път, когато или друго приложение се опита да се позове на разрешенията на Super User. Повечето пъти, когато използвате корен метод за телефона си, ще бъде включен един, заедно с някои други полезни двоични файлове като набора от инструменти BusyBox. Ако сте вършили нещата на ръка, ще трябва да инсталирате сами. SuperSU от Chainfire в Google Play е добре да започнете с това.
Коефициенти и краища
Много телефони и някои основни методи правят нещата малко по-различно (Android 4.3 донесе много промени) и изискват скриптове или демон (ще видите думи като daemonsu или su.d споменати), вместо просто да пуснете SU двоичния файл на място. Те се използват за извикване на SubstituteUser, така че можете да преминете към root потребител точно като суровия двоичен метод. Хората, които измислиха как да изкорени телефона ви, са подредили всичко това и той ще работи същото от страна на потребителя.
Възможно е също така да "темп-корен" някои андроиди. Това означава, че можете да имате разрешения за супер потребител и да направите няколко неща, които трябва да направите, но рестартирането отнема root достъп. По същия начин, можете да имате "shell-root", където можете да получите достъп до root потребител само чрез adb от вашия компютър.
И накрая, искам да подчертая, че ако сте имали тези въпроси, трябва да помислите дали сте готови да имате вкоренен Android. Не се шегувахме, когато казахме, че е лесно да съсипеш телефона си с SuperUser достъп. Няма причина да се срамувате, че трябва да направите малко четене или да зададете още няколко въпроса, преди да направите неща, които могат да ви счупят телефона или да дадат на приложението на случаен руж достъп до всичките ви данни.
За това сме тук.