Mi a boot az androidban. Mi az a Bootloader az Androidon. A FastBoot letöltése és telepítése
Az operációs rendszer és a hardver paramétereinek finomhangolása érdekében az Androidot futtató mobileszközök felhasználói időnként rootolják moduljaikat, és módosítják a . De ez nem minden elérhető mód az eszköz- és rendszerbeállításokhoz való kiterjesztett hozzáféréshez. A Fastboot Mode nevű mód segítségével benézhet az eszköz „burkolata” alá.
Mi az a Fastboot mód
Mit jelent a Fastboot Mode, és mi köze van a finomhangoláshoz? Egyes laptopmodelleknél valóban a rendszerindítási sebesség maximalizálását szolgálja, megkerülve a BIOS-t és hibakereső alkalmazásokat, mobileszközökön pedig némileg más a célja. Android okostelefonokon és táblagépeken ez az üzemmód elsősorban az eszköz rendszerelemeinek számítógépen keresztül történő eléréséhez és vezérléséhez szükséges.
A Fastboot Mode képességeit használva a szervizközpont szakemberei és tapasztalt felhasználók szoftvereket telepíthetnek, felvillanthatják a modult, visszaállíthatják az alkalmazásokat, biztonsági mentéseket és visszaállításokat hajthatnak végre, valamint módosíthatják a rejtett rendszerbeállításokat. A fejlesztők gyakran folyamodnak a „gyors betöltéshez”, szoftvertesztelésre és egyéb célokra.
Miután elmagyaráztuk a mód célját, úgy tűnik, hogy még mindig nem válaszoltunk arra a kérdésre, hogy mi is a Fastboot Mode lényege. Tehát a gyorsindítás az Androidban egy különálló, az operációs rendszertől független szoftverkomponens, amelyet hardverszinten implementálnak és a memóriachipben regisztráltak. Ez a függetlenség teszi lehetővé az eszköz indítását akkor is, ha komoly problémák merülnek fel az operációs rendszerrel. A Fastboot Mode programkód az olvasástól és írástól védett memóriaterületen található, ami megakadályozza a károsodást.
Milyen esetekben aktiválódik a Fastboot Mode?
A Fastboot környezet manuálisan elindítható a normál menüből, vagy a kikapcsolt eszköz bekapcsológombjának és a hangerő le/fel gombjának egyidejű megnyomásával. De bizonyos esetekben az üzemmód magától elindul, és ez nem túl jó. A spontán betöltés oka lehet a sikertelen villogás, a szabványos helyreállítási környezet módosított környezetre cseréje, szuperfelhasználói jogok megszerzése, rendszerhiba és az Android OS fájlok károsodása.
Hogyan lehet kilépni a Fastboot módból
Az üzemmód aktiválását a kinyitott robot képe és a telefon képernyőjén megjelenő Fastboot Mode felirat jelzi.
Ha korábban nem módosította a modul konfigurációját, akkor a „gyors rendszerindításra” való váltás oka valószínűleg valamilyen ideiglenes hiba volt. Próbálja újraindítani az okostelefont. Ha a telefon még újraindítás után is gyorsindítást ír, és nem vált át normál üzemmódba, ez mélyebb problémákra utalhat. Lehetséges, hogy a probléma olyan súlyosnak bizonyul, hogy a szerkentyűt újra kell frissíteni egy szervizközpontban, de amíg erre nem kerül sor, meg kell próbálnia saját maga kilépni a gyorsindításból.
Ennek két fő módja van: magán a telefonon és számítógépen keresztül. Ha a normál újraindítás nem segít, kapcsolja ki az eszközt, majd egyszerre tartsa lenyomva a bekapcsológombot és a hangerőcsökkentő gombot, amíg (kb. 10 másodpercig) meg nem jelenik a Rendszerindítási mód kiválasztása menü a képernyőn, vagy a telefon normál módban elindul. Ebben a menüben válassza a Normál rendszerindítás lehetőséget, és várja meg, amíg a modul normál módban elindul.
Bizonyos esetekben az akkumulátor eltávolítása segít a hibakeresési módból való kilépésben, ha az természetesen eltávolítható.
Néha a felhasználóknak meg kell küzdeniük a gyorsindítási módban történő betöltéssel, miután felvették a szerkentyűt a szervizközpontból. Ez általában azután történik. Valószínűleg az az oka, hogy a fastboot mód funkciót engedélyezve hagyták a beállításokban. Ha ez a helyzet, akkor a Fasboot mód letiltásához lépjen a beállításokhoz, majd a „Kijelző” vagy „Kisegítő lehetőségek” részben keresse meg a „Fast boot” elemet, és törölje a jelölést.
Hogyan lehet kilépni a Fastboot módból számítógépen? Telepítsen alkalmazásokat a számítógépére, csatlakoztassa telefonját a számítógéphez, aktiválja az USB hibakeresést, futtassa a parancssort rendszergazdaként, és futtassa a parancsot fastboot újraindítás. Ez egy egyszerű, de nagyon hatékony módja a gyorsindítás letiltásának.
Ha ez nem oldja meg a problémát, állítsa vissza az eszközt a gyári beállításokra. Az összes fontos adat másolása után vegye ki a SIM-kártyát és a memóriakártyát a telefonból, indítsa el a helyreállítási módot, keresse meg a lehetőséget a menüben Adatok törlése / gyári visszaállításés ennek segítségével hajtson végre visszaállítást.
Ezenkívül az opció kiválasztásával törölheti a tárhely tartalmát Cache partíció törlés.
Hogyan helyezzük a telefont Fastboot módba
A Fastboot Mode egy olyan szolgáltatási mód, amelyet leggyakrabban akkor kell igénybe vennie, ha számítógépen keresztül módosítani kell az eszköz konfigurációját, például módosítani kell a firmware-t, vagy root jogokat kell szereznie harmadik féltől származó programok használata nélkül. A gyors módban történő indításra is szükség lehet az Android rendszermappákhoz való teljes hozzáférés biztosításához és az operációs rendszer visszaállításához (a helyreállítási mód eszközeinek alternatívájaként).
A Fastboot módba lépés módja eszközenként eltérő lehet. Az Asus okostelefonokban ehhez le kell nyomva tartani a bekapcsológombot és a hangerőnövelő gombot, a Nexusban és a HTC-ben - a bekapcsoló- és hangerő-csökkentő gombot, a Sony-ban a gyorsindítási mód akkor töltődik be, ha lenyomva tartja a hangerőt, és csatlakoztatja a modult a számítógépet USB-n keresztül.
De van egy univerzális módszer is a gyorsindításba való betöltésre, amely minden Android mobileszközön egyformán működik. Töltse le és telepítse a programot a számítógépére Adb Run. Ezután engedélyezze az USB hibakeresést a telefon beállításaiban, csatlakoztassa az eszközt a számítógéphez, és az Adb Run elindítása után válassza ki a menüből Újraindítás – Bootloader újraindítása.
A modul Fastboot módban újraindul.
Az Android OS, mint bármely más szoftvertermék, időnként meghibásodhat. Az egyik ilyen probléma az, hogy egy okostelefon vagy táblagép képernyőjén fekete képernyő jelenik meg a Fastboot Mode vagy Select Boot Mode felirattal. Sok mobileszköz-tulajdonos hasonló képet látva pánikba esik, és elviszi a készüléket a legközelebbi műhelybe. Azonban ne tegyen elhamarkodott lépéseket, mivel a legtöbb esetben saját maga is kiléphet a Fastboot módból. Nézzük meg, mi okozza a Fastboot módot, mi az Androidon, és hogyan lehet megszabadulni tőle.
Cél és okok
A Fastboot hatékony eszköz az Android operációs rendszer módosítására és testreszabására, amely a fejlesztők számára készült szoftvercsomag része. Fő feladata az egyedi firmware telepítése. Ezt a rendszerbetöltőt azonban biztonsági másolatok telepítésére, különféle frissítések telepítésére, memóriakártya formázására is használják.
A Select Boot Mode és a Fastboot Mode nem belső vagy külső parancsok. Korábban indulnak el, mint maga az operációs rendszer (például a BIOS a Windows rendszeren). Ez lehetővé teszi a rendszer konfigurálását, valamint különféle problémák megoldását még akkor is, ha az Android összeomlott.
Sokoldalúsága és hasznossága ellenére a Fastboot önálló bekapcsolása szoftverhiba jele lehet. Ennek a módnak az Android rendszeren való megjelenésének fő okai a következők:
- A felhasználó véletlen aktiválása. Ez az eszköz manuálisan is elindítható a gadget menüből.
- Android hiba. Ha egy okostelefon vagy táblagép nem tud normál módban elindulni, automatikusan Fastboot módra vált.
- Sikertelen firmware a következőn keresztül.
- Futtatható fájl manuális törlése a rendszerkönyvtárból a root hozzáférés feloldása után.
- Rosszindulatú programoknak való kitettség. Ha szuperfelhasználói jogokkal rendelkezik az eszközön, bizonyos vírusok blokkolhatják vagy akár törölhetik is a rendszerfájlokat, ami az operációs rendszer összeomlásához vezet.
Miután rájött, mi a Fastboot Mode rendszerbetöltő, és mi a megjelenésének oka, elkezdheti megvizsgálni, hogyan lehet kilépni a rendszerindítási módból a Xiaomi, Meizu, Lenovo és más mobileszközök modelleken.
A Fastboot mód letiltása Androidon
A Fastboot rendszerbetöltő letiltásának két módja van:
- közvetlenül a telefonjáról;
- PC-n keresztül.
Az egyik vagy másik lehetőség kiválasztása attól függ, hogy mi okozta ezt a módot. Példaként nézzük meg, hogyan akadályozható meg a Fastboot ablak betöltődése egy Xiaomi okostelefonon.
Ha ezzel a problémával szembesül, először próbálja 20-30 másodpercig lenyomva tartani a bekapcsológombot. Az eszköznek normál módban kell újraindulnia.
A Fastboot helyett a Select Boot Mode űrlap jelenhet meg a mobiltelefon képernyőjén. A mezői a következőket jelentik:
Próbálja meg a második lehetőséget választani. Ha ez nem segít, tegye a következőket:
![](https://i2.wp.com/poandroidam.ru/wp-content/uploads/2017/06/fastboot-3.jpg)
Ha be tud menni a Xiaomi beállításaiba, vagyis az operációs rendszer működik, próbálja meg manuálisan letiltani a Fastboot módot. Ezen az eszközön lépjen a „Kisegítő lehetőségek” fülre, és a megfelelő elemmel szemben húzza a csúszkát Ki állásba.
A Fastboot mód letiltása számítógépen keresztül
Ha az operációs rendszer összeomlik, amikor az okostelefon menüjének használata technikailag lehetetlen, és a Fastboot letiltásának egyéb módjai nem hatékonyak, megpróbálhatja megoldani a problémát számítógépen és a cmd parancssoron keresztül. Ez a következőképpen történik:
![](https://i0.wp.com/poandroidam.ru/wp-content/uploads/2017/06/fastboot-5.jpg)
A parancssor a leghatékonyabb módja annak, hogy megszabaduljon a Fastboot módtól. Ha nem oldja meg a problémát, akkor továbbra is aktuális a mobileszköz normál módban történő bekapcsolásának kérdése, mindössze annyit kell tennie, hogy cserélje ki a telefon firmware-jét, vagy vigye el egy műhelybe.
A szerkesztő választása
Fastboot mód Androidban: rendszerszinten hajtjuk végre a [manipulációkat a modullal]
Néha az Android telefonok vagy táblagépek felhasználói anélkül találkoznak Fastboot móddal, hogy teljesen megértenék, mi az?
Amikor bekapcsolják a kütyüket, egy képernyőt látnak animációval és néhány adatlistával, ami inkább rendszerhibára emlékeztet.
Általában, A rendszeres újraindítás nem oldja meg ezt a problémátés jobb lépésről lépésre követni az utasításokat, mint egyedül megpróbálni rájönni. Végül is ez a rendszer egyike, és az ilyen dolgokban rosszul jártas felhasználó véletlenül károsíthatja a saját modulját.
Ezt követően emiatt fel kell vennie a kapcsolatot a szervizzel, időt és pénzt pazarolva. De ez könnyen elkerülhető, ha fölösleges kapkodás nélkül kitalálja a problémát.
Az alábbiakban részletesen megtudhatja, mi ez, miért történik a folyamat, és hogyan kell cselekedni, amikor megjelenik.
Tartalom:
Ami
Az Android operációs rendszerben teljes hozzáférést biztosít egy okostelefonhoz vagy táblagéphez, hogy számítógépen keresztül vezérelhesse. Ez a megközelítés lehetővé teszi:
- alkalmazások telepítése;
- különféle paraméterek konfigurálása;
- villog a kütyü;
- hozzáférési jogokat osztani.
A Fastboot nem egy adott operációs rendszer része, de gyakran megtalálható az Android SDK környezetben, mert enélkül nem lehet teljes kommunikációt kialakítani a PC és a kütyü között.
Ebben az esetben nehéz adatátvitelre, mégpedig a készülék beállítására gondolunk.
Érdemes megjegyezni, hogy korábban indul, mint maga az operációs rendszer. Ez arra utal, hogy a mód akkor is használható, ha még nincs telepítve a moduljára.
Miért fordul elő
Egy ilyen mód nagyon hasznos, de mit tegyünk, ha nem kell ilyen módon konfigurálnia okostelefonját, és hirtelen megjelenik egy ablak?
Megjelenésének okai eltérő lehet:
- hiba a modul villogásakor;
- véletlen gombnyomások – az okostelefon bekapcsolása és a hangerő egyidejű növelése;
- root felhasználói jogok megszerzése;
- rendszerhiba.
Az ilyen esetekben az Android ikon megjelenik az eszköz képernyőjén, valamint a modul rendszerinformációi.
Először is, ha a Fastboot megtörténik, ellenőrizze, hogy .
A hangerő fel és le gombok aktívak - az elsővel görgetjük a képernyőn megjelenő elemeket, a másodikkal pedig választunk (például egy billentyűt Belép PC-n).
Így elérjük a feliratot "Normal Boot"és válassza ki a hangerő csökkentő gombbal.
Ha ezután az okostelefon csendesen bekapcsol, akkor ez legalább azt jelzi, hogy nincs vele probléma, és nem a rendszerhiba az oka. Néha ez a számítógéphez való csatlakozás miatt fordul elő.
A szinkronizálás megtörténik, megtesz minden szükséges műveletet: új alkalmazást telepít, fényképet tölt fel vagy filmet tölt le, majd a számítógépről leválasztva látja, hogy nem tűnik el.
Ez annak a ténynek köszönhető, hogy a szerviz valószínűleg nem tiltotta le ezt a funkciót. Ezt egyedül is meg tudod oldani:
- miután a kütyü normálisan betöltődik, menjen rá "Beállítások";
- majd válassza ki a lapot "Képernyő";
- Ha megtalálta benne az elemet, törölje a pipát.
Így a fastboot mód deaktiválva lesz, és bekapcsolva már nem zavarja a felhasználót.
Mi a teendő rendszerhiba esetén
Ha az átmenet a "Normál boot" blokkolva, vagy ami még rosszabb, csak egy üzenet látható a képernyőn "Fastboot Mode"és nincs összefoglaló a paraméterekről, akkor valamilyen oknál fogva a kütyü rendszere meghibásodott, és két lehetőség van, hogyan lehet mindent megjavítani.
1.opció
Mindig megpróbálhatja visszaállítani a rendszert, és visszaállítani az okostelefont működőképes állapotba.
Fontos! A helyreállítás során az okostelefonon tárolt összes adat formázásra kerül, ezért jobb, ha megvédi magát, és először távolítsa el a memóriakártyát.
Először is, egyszerre kell lenyomva tartani a bekapcsológombot és a hangerőnövelő gombot. A megjelenő menüben keresse meg az elemet – adatok törlése/gyári visszaállítás.
Ezután válassza ki, és várja meg, amíg az összes beállítást visszaállítja. A folyamat egytől több percig is eltarthat.
A modul újraindul, és újra használhatja saját céljaira.
De a böngészőben telepített alkalmazásokat és könyvjelzőket újra vissza kell állítani, mert egy ilyen eljárás visszaállítja a gyári beállításokat.
2. lehetőség
Ezt a lehetőséget végső megoldásként kell igénybe vennie, ha a fent leírt módszerek egyike sem működik határozottan.
Ha a bekapcsoláskor megjelenő mód nem tartalmaz paramétereket, ha a kütyü újraindítása nem csinál semmit, és nem is tudja előhívni, akkor a következőket kell tennie:
- távolítsa el az akkumulátort;
- helyezze vissza;
- Nyomja meg és tartsa lenyomva a bekapcsológombot legalább 30 másodpercig.
A Fastboot Mode visszatérése világossá teszi, hogy ideje továbblépni a drasztikusabb lépésekre.
Újra kell indítania az eszközt, de a számítógépen keresztül.
Jegyzet! Ha olyan okostelefonnal szeretne dolgozni, amely rendszerhibát tapasztalt, megfelelő illesztőprogramokra lesz szüksége.
Nem olyan nehéz.
Csak használjon egy keresőt, és a „tűzifa” letöltését kínáló webhelyek sorából próbálja meg kiválasztani a hivatalos oldalakat, hogy elkerülje a vírusok behatolásával kapcsolatos kellemetlen eseményeket stb.
1 Csomagold ki letöltött „tűzifa”;
2 Adatok az archívumból tedd egy mappába;
3 Utána csatlakoztassa a modult a számítógéphez USB-kábellel;
4 Egy kis időt kell várni, miközben a számítógép felismeri az okostelefont, amely után felajánlja az illesztőprogramok telepítését a modullal való munka megkezdéséhez;
5 Mivel már előre letöltöttük őket, akkor válassza a „Telepítés egy megadott helyről” lehetőséget;
6 Válassza ki a mappát, amelybe elhelyezte őket, és kattintson a gombra Belép.
Az illesztőprogramok sikeres telepítése után folytassuk az eszközzel való munkavégzést a parancssoron keresztül.
- menj a menübe "Rajt";
- a végrehajtási sorba írjuk "cmd";
Ez a módszer, amely magában foglalja a számítógép használatát, a leghatékonyabb. De még mindig a legjobb, ha ehhez folyamodunk, ha a kisebb és egyszerűbb helyreállítási műveletek valószínűleg nem működnek.
A beállítások megadása
Ha ilyen igény merül fel, minden kizárólag a használt okostelefon modelljétől függ.
De ennek ellenére szüksége lesz egy számítógépre és. Mielőtt elkezdené, feltétlenül kapcsolja ki a modult.
Miután ezzel a móddal dolgozott, hogy ne zavarja rendszeresen, a legjobb, ha újra letiltja a beállításokban.
Gondolkozott már azon, hogyan működik a fastboot vagy az ADB? Vagy miért szinte lehetetlen egy Androidot futtató okostelefont téglává varázsolni? Vagy talán már régóta szeretné tudni, hol rejlik az Xposed keretrendszer varázsa, és miért van szükség a /system/etc/init.d rendszerindító szkriptekre? Mi a helyzet a helyreállítási konzollal? Ez az Android része vagy önmagában való dolog, és miért nem alkalmas a rendszeres helyreállítás harmadik féltől származó firmware telepítésére? Mindezekre és sok más kérdésre választ talál ebben a cikkben.
Hogyan működik az Android
A szoftverrendszerek rejtett képességeit megismerheti működési elvük megértésével. Egyes esetekben ez nehezen kivitelezhető, hiszen előfordulhat, hogy a rendszerkód zárva van, Android esetén viszont a teljes rendszert kívül-belül tanulmányozhatjuk. Ebben a cikkben nem fogok beszélni az Android minden árnyalatáról, és csak arra összpontosítok, hogyan indul az operációs rendszer, és milyen események történnek a bekapcsológomb megnyomása és az asztal megjelenése között.
Útközben elmagyarázom, mit változtathatunk ezen az eseményláncon, és hogyan használják az egyedi firmware-fejlesztők ezeket a képességeket olyan dolgok megvalósítására, mint az operációs rendszer paramétereinek hangolása, az alkalmazások tárhelyének bővítése, a swap csatlakoztatása, a különféle testreszabások és még sok más. Mindezek az információk felhasználhatók saját firmware létrehozására, valamint különféle hackek és módosítások végrehajtására.
Első lépés. ABOOT és partíciós tábla
Minden az elsődleges rendszerbetöltővel kezdődik. A tápfeszültség bekapcsolása után a rendszer végrehajtja az eszköz állandó memóriájában tárolt bootloader kódot. Ezután átadja a vezérlést a gyorsindítási protokoll beépített támogatásával rendelkező aboot bootloadernek, de a mobil chip vagy okostelefon/táblagép gyártójának jogában áll bármelyik másik indítóbetöltőt választani. Például a Rockchip saját rendszerbetöltőt használ, amely nem kompatibilis a gyorsindítással, és szabadalmaztatott eszközöket igényel a flash és a kezelés.
A fastboot protokoll viszont egy olyan rendszer, amely a rendszerbetöltőt PC-ről kezeli, és lehetővé teszi olyan műveletek végrehajtását, mint a rendszerbetöltő feloldása, új kernel felvillantása és helyreállítása, firmware telepítése és még sok más. A fastboot létjogosultsága az, hogy egy okostelefont vissza lehessen állítani az eredeti állapotába olyan helyzetben, amikor minden más eszköz kudarcot vall. A Fastboot akkor is a helyén marad, ha a kísérletek eredményeként az összes Androidot és helyreállítást tartalmazó NAND memóriapartíciót töröl az okostelefonjáról.
Miután megkapta az irányítást, az aboot ellenőrzi a partíciós táblát, és átadja a vezérlést a rendszermagnak, amely a boot nevű partícióba került, majd a kernel kivonja a RAM-képet ugyanarról a partícióról a memóriába, és megkezdi az Android vagy a helyreállítási konzol betöltését. Az Android-eszközök NAND memóriája hat feltételesen szükséges részre oszlik:
- boot - tartalmazza a kernelt és a RAM-lemezt, általában körülbelül 16 MB méretű;
- helyreállítás - helyreállítási konzol, egy kernelből, egy konzolalkalmazás-készletből és egy beállításfájlból áll, mérete 16 MB;
- rendszer - Androidot tartalmaz, a modern eszközökben a mérete legalább 1 GB;
- gyorsítótár - gyorsítótárazott adatok tárolására szolgál, az OTA frissítés során a firmware mentésére is szolgál, ezért mérete hasonló a rendszerpartíció méretéhez;
- felhasználói adatok - beállításokat, alkalmazásokat és felhasználói adatokat tartalmaz, az összes fennmaradó NAND memóriaterület hozzá van rendelve;
- misc - tartalmaz egy jelzőt, amely meghatározza, hogy a rendszer milyen módban induljon el: Android vagy helyreállítás.
Rajtuk kívül lehetnek más szakaszok is, de az általános jelölést az okostelefon tervezési szakaszában határozzák meg, és aboot esetén a rendszerbetöltő kódba varrják. Ez azt jelenti, hogy: 1) a partíciós tábla nem törölhető, mivel mindig visszaállítható a fastboot oem format paranccsal; 2) a partíciós tábla megváltoztatásához fel kell oldania és újra kell töltenie a rendszertöltőt új paraméterekkel. Vannak azonban kivételek e szabály alól. Például ugyanannak a Rockchipnek a rendszerbetöltője a NAND memória első blokkjában tárol információkat a partíciókról, így a rendszerbetöltő flash-be állítása nem szükséges a változtatáshoz.
A vegyes rész különösen érdekes. Feltételezhető, hogy eredetileg a fő rendszertől függetlenül különféle beállítások tárolására készült, de jelenleg csak egy célra használják: jelezze a rendszerbetöltőnek, hogy melyik partícióról kell betölteni a rendszert - rendszerindítás vagy helyreállítás. Ezt a funkciót különösen a ROM Manager alkalmazás használja a rendszer automatikus újraindítására a helyreállításhoz a firmware automatikus telepítésével. Ennek alapján épül fel az Ubuntu Touch dual boot mechanizmus, amely az Ubuntu rendszerbetöltőt visszaállítja, és lehetővé teszi annak szabályozását, hogy melyik rendszer induljon el legközelebb. Törölve a misc partíciót - Android betölt, adatokkal feltöltve - helyreállítás betöltődik... vagyis Ubuntu Touch.
Második lépés. Boot rész
Ha a misc szakasz nem rendelkezik helyreállítási rendszerindítási jelzővel, az aboot átadja az irányítást a rendszerindító részben található kódra. Ez nem más, mint a Linux kernel; a szakasz elején található, majd közvetlenül utána egy cpio és gzip archiválókkal csomagolt RAM lemezkép, amely tartalmazza az Android működéséhez szükséges könyvtárakat, az inicializálási rendszert és egyéb eszközöket. A rendszerindító partíción nincs fájlrendszer, a kernel és a RAM-lemez egyszerűen követi egymást. A RAM lemez tartalma:
- data - könyvtár az azonos nevű partíció csatlakoztatásához;
- dev - eszközfájlok;
- proc - a procfs ide van felszerelve;
- res - képkészlet a töltőhöz (lásd alább);
- sbin - segédprogramok és démonok halmaza (például adbd);
- sys - a sysfs ide van csatolva;
- rendszer - könyvtár a rendszerpartíció csatlakoztatásához;
- töltő - alkalmazás a töltési folyamat megjelenítésére;
- build.prop - rendszerbeállítások;
- init - inicializálási rendszer;
- init.rc - inicializálási rendszerbeállítások;
- ueventd.rc - az uventd démon beállításai az initben.
Ez, mondhatni, a rendszer váza: egy könyvtárkészlet a fájlrendszerek NAND-memóriapartíciókról való összekapcsolására, valamint egy inicializálási rendszer, amely a rendszerindítás többi részét is ellátja. A központi elem itt az init alkalmazás és annak init.rc konfigurációja, amiről a későbbiekben részletesen szólok. Addig is felhívnám a figyelmet a töltő és az ueventd.rc fájlokra, valamint az sbin, proc és sys könyvtárakra.
A töltőfájl egy kis alkalmazás, amelynek egyetlen feladata az akkumulátor ikon megjelenítése. Semmi köze az Androidhoz, és akkor használatos, ha az eszköz kikapcsolt állapotban csatlakozik a töltőhöz. Ebben az esetben az Android nem töltődik be, és a rendszer egyszerűen betölti a kernelt, csatlakoztatja a RAM-lemezt és elindítja a töltőt. Utóbbi egy akkumulátor ikont jelenít meg, amelynek képe minden lehetséges állapotban közönséges PNG-fájlokban tárolódik a res könyvtárban.
Az ueventd.rc fájl egy olyan konfiguráció, amely meghatározza, hogy a rendszerindítás során a sys könyvtárban mely eszközfájlokat kell létrehozni. A Linux kernelen alapuló rendszerekben a hardverhez való hozzáférés a dev könyvtáron belüli speciális fájlokon keresztül történik, ezek létrehozásáért az Androidban az init részét képező ueventd démon felel. Normál helyzetben automatikus módban működik, parancsokat fogad el fájlok létrehozásához a kernelből, de néhány fájlt önállóan kell létrehozni. Az ueventd.rc oldalon vannak felsorolva.
A készleten lévő Android sbin könyvtár általában nem tartalmaz mást, csak az adbd-t, vagyis az ADB démont, amely a számítógépről történő rendszer hibakereséséért felelős. Az operációs rendszer indításának korai szakaszában fut, és lehetővé teszi a lehetséges problémák azonosítását az operációs rendszer inicializálási szakaszában. Egyéni firmware-ekben sok más fájl is található ebben a könyvtárban, például az mke2fs, amelyre szükség lehet, ha a partíciókat újra kell formázni ext3/4-re. Emellett a modderek gyakran elhelyeznek egy BusyBox-ot, amivel több száz Linux-parancsot hívhatunk meg.
A proc könyvtár szabványos a Linux számára; a rendszerindítás következő szakaszában az init csatlakozik hozzá a procfs-hoz, egy virtuális fájlrendszerhez, amely hozzáférést biztosít a rendszer összes folyamatával kapcsolatos információkhoz. A rendszer összekapcsolja a sysfs-t a sys könyvtárral, amely hozzáférést biztosít a hardverrel és annak beállításaival kapcsolatos információkhoz. A sysf használatával például alvó állapotba helyezheti az eszközt, vagy módosíthatja a használt energiatakarékos algoritmust.
A build.prop fájl az alacsony szintű Android-beállítások tárolására szolgál. Később a rendszer visszaállítja ezeket a beállításokat, és felülírja azokat a jelenleg nem elérhető system/build.prop fájl értékeivel.
![](https://i1.wp.com/xakep.ru/wp-content/uploads/2014/11/ouya.png)
Kivonatok a szövegből
- A Fastboot akkor is a helyén marad, ha a kísérletek eredményeként az összes NAND memóriarész tartalmát törli okostelefonjáról
- A helyreállítási rész teljesen önellátó, és egy miniatűr operációs rendszert tartalmaz, amely semmilyen módon nem kapcsolódik az Androidhoz
- Az fstab fájl kis módosításával rákényszeríthetjük az init-et, hogy a memóriakártyáról indítsa el a rendszert
Második lépés, alternatíva. Helyreállítási szakasz
Ha a Misc részben be van állítva a helyreállítási rendszerindítási jelző, vagy a felhasználó bekapcsolja az okostelefont a hangerőcsökkentő gomb lenyomva tartásával, az aboot átadja a vezérlést a helyreállítási szakasz elején található kódra. A rendszerindító partícióhoz hasonlóan ez is tartalmazza a kernelt és egy RAM-lemezt, amely a memóriába kerül, és a fájlrendszer gyökerévé válik. A RAM-lemez tartalma azonban itt némileg eltér.
Ellentétben a rendszerindító partícióval, amely átmeneti kapcsolatként működik az operációs rendszer betöltésének különböző szakaszai között, a helyreállítási partíció teljesen önellátó, és egy miniatűr operációs rendszert tartalmaz, amely semmilyen módon nem kapcsolódik az Androidhoz. A helyreállításnak saját magja, saját alkalmazáskészlete (parancsai) és saját felülete van, amely lehetővé teszi a felhasználó számára a szolgáltatási funkciók aktiválását.
Egy szabványos (készlet) helyreállításban általában csak három ilyen funkció van: az okostelefon gyártójának kulcsával aláírt firmware telepítése, törlés és újraindítás. A módosított harmadik féltől származó helyreállítások, mint például a ClockworkMod és a TWRP, sokkal több funkcióval rendelkeznek. Formázhatják a fájlrendszereket, telepíthetik a tetszőleges kulccsal aláírt firmware-t (értsd: egyedi), fájlrendszereket csatlakoztathatnak más partíciókra (az operációs rendszer hibakeresési céljára), és tartalmazhatnak szkript-támogatást, amely lehetővé teszi a firmware-folyamat automatizálását és sok más funkciót.
A szkriptek használatával például megbizonyosodhat arról, hogy a rendszerindítás után a helyreállítás automatikusan megtalálja a szükséges firmware-t a memóriakártyán, telepíti azokat, és újraindul az Androidon. Ezt a funkciót a ROM Manager, az automatikus flasher eszközök, valamint a CyanogenMod és más firmware automatikus frissítési mechanizmusa használja.
Az egyéni helyreállítás támogatja a /system/addon.d/ könyvtárban található biztonsági mentési szkripteket is. A villogás előtt a helyreállítás ellenőrzi a szkripteket, és végrehajtja azokat a firmware felvillantása előtt. Az ilyen szkripteknek köszönhetően a gapp-ok nem tűnnek el egy új firmware-verzió telepítése után.
fastboot parancsok
A gyorsindítás eléréséhez telepítenie kell az Android SDK-t, csatlakoztatnia kell okostelefonját a számítógépéhez kábel segítségével, és mindkét hangerőgomb lenyomva tartásával kapcsolja be. Ezután lépjen az SDK-n belül a platform-tools alkönyvtárba, és futtassa a parancsot
Fastboot eszközök
Az eszköz neve megjelenik a képernyőn. Egyéb elérhető parancsok:
- fatsboot oem feloldás- a rendszerbetöltő feloldása a nexusokon;
- frissítse a file.zip fájlt- firmware telepítése;
- flash boot boot.img- a rendszerindító partíció képének villogása;
- flash recovery recovery.img- a helyreállítási partíció képének villogása;
- flash rendszer rendszer.img- a rendszerkép villogása;
- oem formátum- megsemmisült partíciós tábla helyreállítása;
Harmadik lépés. Inicializálás
Tehát, miután megkapta az irányítást, a kernel összekapcsolja a RAM-lemezt, és az összes alrendszer és illesztőprogram inicializálása után elindítja az init folyamatot, amely megkezdi az Android inicializálását. Ahogy már mondtam, az init rendelkezik egy init.rc konfigurációs fájllal, amelyből a folyamat megtanulja, hogy pontosan mit kell tennie a rendszer előhívásához. A modern okostelefonokban ez a konfiguráció lenyűgöző, több száz soros hosszúságú, és több gyermekkonfigurációt tartalmazó pótkocsival is fel van szerelve, amelyek az importálási irányelv segítségével csatlakoznak a fő konfigurációhoz. A formátuma azonban meglehetősen egyszerű, és lényegében blokkokra osztott parancsok halmaza.
Minden blokk meghatároz egy betöltési szakaszt, vagy Android fejlesztői szóhasználattal egy műveletet. A blokkokat egy on direktíva választja el egymástól, amelyet a művelet neve követ, például a korai beindításnál vagy a post-fs-nél. A parancsblokk csak akkor kerül végrehajtásra, ha az azonos nevű trigger aktiválódik. A rendszerindítás során az init felváltva aktiválja a korai init, init, early-fs, fs, post-fs, korai rendszerindítás és rendszerindítási triggereket, így elindítja a megfelelő parancsblokkokat.
![](https://i0.wp.com/xakep.ru/wp-content/uploads/2014/11/init.png)
Ha a konfigurációs fájl több, az elején felsorolt konfigurációt behúz (és ez szinte mindig így van), akkor a bennük lévő azonos nevű parancsblokkok a fő konfigurációval kombinálódnak, így amikor a trigger elindul, az init parancsokat hajt végre az összes fájl megfelelő blokkjából. Ez a több eszköz konfigurációs fájlok létrehozásának kényelmét szolgálja, amikor a fő konfiguráció minden eszközre közös parancsokat tartalmaz, és az egyes eszközökre jellemzők külön fájlba vannak írva.
A további konfigurációk közül a legfigyelemreméltóbb az initrc.device_name.rc, ahol az eszköznév meghatározása automatikusan történik a ro.hardware rendszerváltozó tartalma alapján. Ez egy platform-specifikus konfigurációs fájl, amely eszközspecifikus parancsblokkokat tartalmaz. A kernel hangolásáért felelős parancsokon kívül valami ilyesmit is tartalmaz:
Mount_all ./fstab.device_name
Ez azt jelenti, hogy az init-nek most fel kell csatolnia az összes fájlrendszert, amely a következő struktúrájú ./fstab.device_name fájlban szerepel:
Eszköz_neve (partíció) beillesztési_pont fájlrendszer fs_options egyéb beállítások
Általában utasításokat tartalmaz a fájlrendszereknek a belső NAND-partíciókból a /system (OS), a /data (alkalmazásbeállítások) és a /cache (gyorsítótárazott adatok) könyvtárba történő csatlakoztatásához. Ennek a fájlnak a kis módosításával azonban rákényszeríthetjük az init-et, hogy a memóriakártyáról indítsa el a rendszert. Ehhez egyszerűen ossza fel a memóriakártyát három 4 részre: 1 GB / ext4, 2 GB / ext4, 1 GB / ext4 és a maradék fat32 terület. Ezután meg kell határoznia a memóriakártya-partíciók nevét a /dev könyvtárban (különböző eszközök esetén eltérőek), és le kell cserélnie őket az eredeti eszköznevekre az fstab fájlban.
![](https://i2.wp.com/xakep.ru/wp-content/uploads/2014/11/fstab.png)
A boot init blokk végén valószínűleg találkozik a class_start default paranccsal, amely tájékoztatja, hogy ezután el kell indítania a konfigurációban felsorolt összes szolgáltatást, amely az alapértelmezett osztályhoz kapcsolódik. A szolgáltatások leírása a service direktívával kezdődik, ezt követi a szolgáltatás neve és az elindításához végrehajtandó parancs. A blokkokban felsorolt parancsokkal ellentétben a szolgáltatásoknak folyamatosan futniuk kell, így az okostelefon teljes élettartama alatt az init a háttérben lóg, és ezt figyeli.
A modern Android több tucat szolgáltatást tartalmaz, de ezek közül kettő különleges státuszú, és meghatározza a rendszer teljes életciklusát.
init.rc parancsok
Az init folyamat beépített parancskészlettel rendelkezik, amelyek közül sok a szabványos Linux parancskészletet követi. Közülük a legjelentősebbek:
- exec /path/to/command- külső parancs futtatása;
- ifup interfész- emelje fel a hálózati interfészt;
- class_star class_name- elindítani a megadott osztályba tartozó szolgáltatásokat;
- class_stop osztálynév- a szolgáltatások leállítása;
- insmod /útvonal/modulhoz- a kernel modul betöltése;
- mount FS eszközkönyvtár- csatlakoztassa a fájlrendszert;
- setprop név értéke- rendszerváltozó beállítása;
- start service_name- indítsa el a megadott szolgáltatást;
- trigger neve- a trigger engedélyezése (a megadott parancsblokk végrehajtása);
- írja be a /útvonal/fájl sorba- írjon egy sort egy fájlba.
Negyedik lépés. Zygote és app_process
A betöltés egy bizonyos szakaszában az init valami ehhez hasonló blokkot fog találni a konfiguráció végén:
Service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server class alapértelmezett socket zygote stream 660 gyökérrendszer onrestart write /sys/android_power/request_state wake onrestart write /sys/power/state on onrestart újraindítás adathordozó onrestart restart netd
Ez a Zygote szolgáltatás leírása, amely bármely Android-rendszer kulcsfontosságú összetevője, amely felelős az inicializálásért, a rendszerszolgáltatások elindításáért, a felhasználói alkalmazások indításáért és leállításáért, valamint sok más feladatért. A Zygote egy kis /system/bin/app_process alkalmazással indul, ami nagyon jól látható a konfiguráció fenti részében. Az app_proccess feladat a Dalvik virtuális gép elindítása, melynek kódja a /system/lib/libandroid_runtime.so megosztott könyvtárban található, majd a tetején futtassa a Zygote-ot.
Ha mindez megtörtént, és a Zygote kézben tartja, elkezdi felépíteni a Java alkalmazás futtatókörnyezetét a keretrendszer összes Java osztályának betöltésével (jelenleg több mint 2000). Ezután elindítja a system_server-t, amely a legtöbb magas szintű (Java nyelven írt) rendszerszolgáltatást tartalmazza, beleértve az Ablakkezelőt, az Állapotsort, a Csomagkezelőt és ami a legfontosabb, a Tevékenységkezelőt, amely a jövőben a fogadásért lesz felelős. kezdő- és végjelző alkalmazások.
Ezután a Zygote megnyitja a /dev/socket/zygote aljzatot, és alvó állapotba megy, és vár az adatokra. Ekkor a korábban elindított Activity Manager egy Intent.CATEGORY_HOME szórási szándékot küld, hogy megkeresse az asztal létrehozásáért felelős alkalmazást, és a socketen keresztül adja meg a nevét a Zygote-nak. Utóbbi viszont elágazik, és a virtuális gép tetején futtatja az alkalmazást. Voila, van egy asztal a képernyőnkon, amelyet az Activity Manager talált meg és a Zygote indított el, valamint egy állapotsor, amelyet a system_server indított el az állapotsor szolgáltatás részeként. Az ikon megérintése után az asztal intentot küld ennek az alkalmazásnak a nevével, az Activity Manager megkapja és parancsot küld az alkalmazás elindítására a Zygote démonnak.
INFO
A Linux terminológiájában a RAM-lemez egyfajta virtuális merevlemez, amely csak a RAM-ban létezik. A rendszerindítási folyamat korai szakaszában a kernel kivonja a lemez tartalmát a lemezképből, és root fájlrendszerként (rootfs) csatolja azt.
A rendszerindítási folyamat során az Android három különböző rendszerindítási képernyőt jelenít meg: az első közvetlenül a bekapcsológomb megnyomása után jelenik meg, és a Linux kernelbe kerül, a második pedig az inicializálás korai szakaszában jelenik meg, és a /initlogo.rle fájlba kerül rögzítésre (aligha ma használatos), az utolsó a bootanimation alkalmazással indul el, és a /system/media/bootanimation.zip fájlban található.
A szabványos triggerek mellett az init lehetővé teszi saját triggerek definiálását is, amelyeket számos esemény indíthat el: eszköz csatlakoztatása USB-re, okostelefon állapotának megváltoztatása vagy rendszerváltozók állapotának megváltoztatása.
Az Activity Manager többek között a háttérben futó alkalmazásokat is leállítja, ha nincs elegendő memória. A szabad memória küszöbértékeit a /sys/module/lowmemorykiller/parameters/minfree fájl tartalmazza.
Mindez kissé zavarónak tűnhet, de a legfontosabb dolog az, hogy emlékezzen három egyszerű dologra:
Az Android sok tekintetben nagyon különbözik a többi operációs rendszertől, és ezt nehéz azonnal kitalálni. Ha azonban megérted, hogyan működik minden, a lehetőségek egyszerűen végtelenek. Az iOS-től és a Windows Phone-tól eltérően a Google operációs rendszere nagyon rugalmas architektúrával rendelkezik, amely lehetővé teszi a viselkedés komoly megváltoztatását anélkül, hogy kódot kellene írnia. A legtöbb esetben elegendő a szükséges konfigurációk és szkriptek javítása.