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:

  1. A felhasználó véletlen aktiválása. Ez az eszköz manuálisan is elindítható a gadget menüből.
  2. Android hiba. Ha egy okostelefon vagy táblagép nem tud normál módban elindulni, automatikusan Fastboot módra vált.
  3. Sikertelen firmware a következőn keresztül.
  4. Futtatható fájl manuális törlése a rendszerkönyvtárból a root hozzáférés feloldása után.
  5. 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:


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:


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.


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.


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.


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.




Top