Számos rejtett gyorsindítási parancs található az eszközön. Ahhoz, hogy megtaláljuk őket, ki kell dobnunk a rendszerbetöltőt, és meg kell vizsgálnunk a tartalmat!
Azzal a céllal, hogy minél többet megtudjak az Android testreszabásáról, sok homályos, mégis érdekes felfedezést tettem. Megmutattam, hogyan lehet hozzáférni rejtett menük az eszközön a telefon összes rejtett alkalmazástevékenységének átvizsgálásával. Nemrég megmutattam, hogyan érheti el a rejtett hardveres diagnosztikai eszköz bizonyos okostelefonokon. Most már tudom, hogy néhányan csalódottak voltak amiatt, hogy az előző cikkben nem szerepelt okostelefonja, ezért elnézést kérek.
Ennek pótlására egy sokkal, de sokkal fejlettebb és izgalmasabb dolgot mutatok be: az eszköz rendszerbetöltőjének kiíratása a rejtett gyorsindítási parancsok felfedezéséhez. Ez az útmutató, bár az én Nexus 6P, határozottan reprodukálható a legtöbb okostelefonon. Az azonban, hogy milyen parancsokhoz fog hozzáférni, az eszközökönként jelentősen eltérhet. A legtöbb parancs nem igazán segít semmilyen valós helyzetben, de ennek ellenére elég érdekes mélyen belemerülni a telefon beállításaiba. Kezdjük el.
Jogi nyilatkozat: Amíg tudja, mit csinál, és megfelelően tudja követni az utasításokat, semmi rossz nem történhet az eszközzel. De továbbra is vacakolunk az eszközpartícióinkkal és a rendszerbetöltővel, így nem lehet tudni, mi történhet, ha rossz parancsot adunk meg. Győződjön meg róla, hogy készen áll a készüléken kívüli biztonsági mentésre!
Készítmény
Mielőtt elkezdenénk, egy nagyon-nagyon fontos dolgot meg kell jegyeznünk. Az eszköz rendszerbetöltőjének kibontásához, root hozzáférésre lesz szüksége a telefonon. Ha nem rendelkezik root hozzáféréssel, oktatási célból tovább olvassa ezt az útmutatót, de nem tudja végrehajtani a szükséges parancsokat. Megvan? Jó. Egy másik előfeltétel, amelyet teljesítenie kell, annak biztosítása, hogy számítógépe az összes megfelelő ADB/fastboot illesztőprogramok. Ha nem rendelkezik ADB/fastboot bináris fájlokkal, akkor azt javaslom, hogy telepítse Minimális ADB és Fastboot fórumainkról. Ami az illesztőprogramokat illeti, megragadhatja a szükséges illesztőprogramokat a Google Nexus eszközökhöz itt és az összes többi eszközhöz itt. Honnan tudod, hogy jó-e? Csatlakoztassa az eszközt, engedélyezze az USB hibakeresést a Fejlesztői beállítások alatt, nyisson meg egy parancssort, és írja be:
adb devices
Ha megjelenik az eszköz sorozatszáma, akkor a megfelelő illesztőprogramok vannak.
A Bootloader törlése
Első lépésünk egy shell megnyitása az eszközünkön, hogy parancsokat tudjunk futtatni az ADB-n keresztül. A legjobb, ha ADB-n keresztül futtatjuk a parancsokat, mert sokkal hajlamosabbak vagyunk hibázni, amikor virtuális billentyűzeten gépelünk, és itt nem érdemes hibázni. Az első parancs, amelyet a parancssorban futnia kell:
adb shell
Ha azt látja, hogy a parancssor az ADB bináris könyvtár megjelenítéséről az Android-eszköz kódnevének megjelenítésére változik, akkor sikeresen belépett az eszköz helyi parancssori héjába. Most, hogy hozzáférjen a kiírandó partíciókhoz, szuperfelhasználói hozzáférésre lesz szüksége. Ehhez írja be a következőt:
su
Az eszköz kódneve előtti szimbólumnak a következőről kell változnia $ nak nek # jelezve, hogy most már magasabb jogosultságokkal is futtathat parancsokat. Most légy óvatos!
Ezután kitaláljuk az eszköz rendszerbetöltő képének pontos helyét. A pontos könyvtár megtalálása érdekében kinyomtatjuk az összes partíció és a hozzájuk tartozó könyvtárak listáját név szerint, és megkeresünk egyet, amelynek neve:egy bakancs.' Két parancsot kell beírnia az alábbiak szerint:
cd /dev/block/bootdevice/by-name
ls -all
Amint fentebb látható, a partíciós könyvtárak óriási listája kerül kinyomtatásra. Ezek a partíciók név szerint vannak rendezve, így könnyen felismerhetjük a rendszerbetöltő partíciónk helyét. Az én esetemben a bootloader, ami az 'egy bakancs' a fenti képen a /dev/block/mmcblk0p10 címen található. Ez változni fog az eszköztől függően, ezért fontos, hogy kövesse ezeket az utasításokat, hogy megtudja, melyik könyvtárban található a rendszerbetöltő. Vegye figyelembe azonban ezt a könyvtárat, mivel a következő parancsban hivatkozni fogunk rá a rendszerbetöltő törléséhez:
dd if=/dev/block/{YOUR ABOOT PARTITION} of=/sdcard/aboot.img
Ha sikeres, meg kell találnia egy fájltaboot.imgA belső tárhely gyökerében található. Most, hogy kiírtuk a rendszerbetöltőt, meg kell vizsgálnunk, hogy meghatározzuk, milyen rejtett parancsokat találhatunk.
Rejtett gyorsindítási parancsok és használatuk
Talán ismeri a gyakoribb gyorsindítási parancsokat, mint pl fastboot flash vagy fastboot boot. Számos további gyorsindítási parancs létezik, amint azt a nyílt forráskódú gyorsindítási protokoll. Íme egy lista a gyorsindítási parancsokról, amelyek minden olyan eszközön elérhetők, amelyek a legújabb AOSP-kódon alapuló rendszerbetöltővel rendelkeznek:
Ami hiányzik ebből a listából, az a gyorsindítás oem parancsokat. Ezek a parancsok különleges Android készülékgyártóknak, és sehol nincs átfogó lista vagy dokumentáció arról, hogy milyen fastboot oem parancsok érhetők el. Most, ha az eszköz gyártója volt olyan kedves, hogy megadjon egy gyorsindítási parancsot, amely felsorolja az összes oem parancsot (próbáld fastboot oem? és nézd meg, működik-e), akkor nem kell többet tennie. Ha nincs olyan parancs, amely kiírná az elérhető fastboot oem parancsok listáját, akkor ki kell nyomtatnia a húrok az aboot.img fájlból, és manuálisan keresse meg az oem parancsokat.
A 'strings' egy linuxos parancs, amelynek dokumentációja az elérhető itt. Amint láthatja, én személy szerint Windows-os gépet használok, ezért ehelyett a program, amely utánozza a Linux „karakterláncait”.. A „strings” parancs nyers kimenete egy aboot.img fájlban a következő lesz elég rendetlen, de ha egyszerűen a CTRL+F billentyűkombinációt használja az 'oem'-hez, meg kell találnia, amire szüksége van. Ha finomítani szeretné a keresést, próbálkozzon ezzel a paranccsal (az általam hivatkozott Windows-verzióhoz):
strings * | findstr /i oem
A Nexus 6P esetében a következő listát állítottam össze a fastboot oem parancsokról:
fastboot oem unlock-go
fastboot oem frp-unlock
fastboot oem frp-erase
fastboot oem enable reduced-version
fastboot oem device-info
fastboot oem enable-charger-screen
fastboot oem disable-charger-screen
fastboot oem enable-bp-tools
fastboot oem disable-bp-tools
fastboot oem enable-hw-factory
fastboot oem disable-hw-factory
fastboot oem select-display-panel
fastboot oem off-mode-charge enable
fastboot oem off-mode-charge disable
fastboot oem ramdump enable
fastboot oem ramdump disable
fastboot oem uart enable
fastboot oem uart disable
fastboot oem hwdog certify begin
fastboot oem hwdog certify close
fastboot oem get-imei1
fastboot oem get-meid
fastboot oem get-sn
fastboot oem get-bsn
fastboot oem get_verify_boot_status
Figyelmeztetés: ne próbálkozzon a fenti vagy az eszközén felfedezett parancsok egyikével sem, hacsak nem hajlandó elfogadni a kockázatokat. Van egy oka annak, hogy ezek a parancsok el vannak rejtve a felhasználó elől.
Ennek ellenére eszembe jutott néhány praktikus felhasználási mód a talált gyorsindítási parancsok némelyikéhez (ez lehet, hogy nem jelen van az eszközén, ezért kövesse a fenti utasításokat az ellenőrzéshez!), amelyek a legkeményebb Androidot kedvelik lelkes. Két parancs van itt, amelyeknek gyakorlati haszna lehet.
Az első helyen a fastboot oem (enable|disable)-charger-screen parancs. Ezzel letiltja a töltési képernyőt, amely az eszköz kikapcsolásakor jelenik meg. Ha nem rajong a töltőképernyő vakító fényéért, amikor telefonja ki van kapcsolva, akkor ezzel a rejtett gyorsindítási paranccsal letilthatja!
Következő, ott van a fastboot oem off-mode-töltés (engedélyezés | letilt) parancs. Ez a parancs határozza meg, hogy az eszköz automatikusan bekapcsol-e, ha áramforrást észlel. Alapértelmezés szerint „letiltásra” van állítva. Elismerem, hogy ennek a parancsnak nem sok haszna van telefonoknál, de ha Ha azt tervezi, hogy a táblagépét az autó műszerfalába szereli, akkor ezt a parancsot hihetetlenül hasznosnak fogja találni hasznos. Beállíthatja, hogy az eszköz azonnal bekapcsoljon, amikor a táblagép áramot kap, például amikor az autó akkumulátora beindul. Ezzel szemben egy automatizálási alkalmazás, például a Tasker használatával meglehetősen egyszerű kikapcsolni a táblagépet, ha áramszünet. Ez a parancs egyébként pontosan úgy működik, ahogy az a Nexus 7 (2013).
Ennyi az Android testreszabhatóságáról szóló leckében. Oszd meg a felfedezett parancsokat (ideális esetben egy pastebin linkben) az alábbi megjegyzésekben!
Köszönet az XDA Senior Recognised Developernek Dees_Troy a cikk elkészítésében nyújtott segítségéért!