Teie seadmes on palju peidetud kiirkäivituskäske. Nende leidmiseks peame alglaaduri tühjendama ja sisu uurima!
Püüdes avastada Androidi kohandamise kohta nii palju kui võimalik, olen teinud palju ebaselgeid, kuid huvitavaid avastusi. Näitasin teile juurdepääsu seadme peidetud menüüd sõeludes läbi kõik oma telefonis peidetud rakendustegevused. Hiljuti näitasin teile, kuidas pääseda juurde peidetud riistvara diagnostika tööriist teatud nutitelefonides. Nüüd mõistan, et mõned teist olid pettunud selles, et teie nutitelefoni eelmises artiklis ei käsitletud, ja ma vabandan selle pärast.
Selle korvamiseks tutvustan teile midagi kaugelt, palju arenenumat ja põnevamat: oma seadme alglaaduri väljajätmine peidetud kiirkäivituskäskude leidmiseks. See juhend, kuigi see on minu peal tehtud Nexus 6P, on enamikus nutitelefonides kindlasti kopeeritav. Kuid need käsud, millele teil on juurdepääs, erinevad seadmeteti oluliselt. Enamik käske ei aita teid üheski reaalses olukorras, kuid sellegipoolest on päris huvitav oma telefoni seadetesse sukelduda. Alustame.
Kohustustest loobumine: seni, kuni teate, mida teete, ja järgite juhiseid õigesti, ei tohiks teie seadmega midagi halba juhtuda. Kuid me jamame endiselt oma seadme partitsioonide ja alglaaduriga, nii et pole võimalik öelda, mis võib juhtuda, kui sisestate vale käsu. Veenduge, et teil oleks seadmeväline varukoopia valmis!
Ettevalmistus
Enne kui alustame, tuleb märkida üks väga-väga oluline asi. Seadme alglaaduri ekstraktimiseks vajate oma telefoni juurjuurdepääsu. Kui teil pole juurjuurdepääsu, võite jätkata selle juhendi lugemist hariduslikel eesmärkidel, kuid te ei saa täita ühtegi vajalikku käsku. Sain aru? Hea. Teine eeltingimus, mida peate täitma, on tagada, et teie arvutis on kõik korralikud ADB/fastboot draiverid. Kui teil pole ADB/fastboot binaarfaile, siis soovitan installida Minimaalne ADB ja Fastboot meie foorumitest. Draiverite osas saate hankida Google Nexuse seadmete jaoks vajalikud draiverid siin ja kõigi muude seadmete jaoks alates siin. Kuidas sa tead, kas oled valmis minema? Ühendage seade vooluvõrku, lubage arendaja seadetes USB silumine, avage käsuviip ja tippige:
adb devices
Kui näete oma seadme seerianumbrit, siis on teil õiged draiverid.
Alglaaduri tühjendamine
Meie esimene samm on avada oma seadmes kest, et saaksime ADB kaudu käske käivitada. Parim on käivitada käske ADB kaudu, sest me teeme virtuaalsel klaviatuuril tippimisel palju rohkem vigu ja siin ei taha vigu teha. Esimene käsk, mida peaksite oma käsureal käivitama, on:
adb shell
Kui näete, et käsuviip muutub ADB binaarkataloogi kuvamise asemel teie Android-seadme koodnime kuvamiseks, siis olete edukalt sisestanud oma seadme kohaliku käsurea kesta. Nüüd, et pääseda juurde partitsioonidele, mida peame kustutama, vajate superkasutaja juurdepääsu. Selleks tippige järgmine tekst:
su
Teie seadme koodnime ees olev sümbol peaks muutuma $ juurde # mis näitab, et saate nüüd käivitada käske kõrgendatud õigustega. Olge nüüd ettevaatlik!
Järgmisena selgitame välja teie seadme alglaaduri pildi täpse asukoha. Täpse kataloogi leidmiseks prindime välja nimekirja kõigist partitsioonidest ja nende kataloogidest nimede järgi ning otsime konkreetse nimega 'aboot.' Peate sisestama kaks käsku järgmiselt:
cd /dev/block/bootdevice/by-name
ls -all
Nagu ülalpool näete, prinditakse välja tohutu partitsioonikataloogide loend. Need partitsioonid on sorteeritud nimede järgi, nii et saame hõlpsasti eristada oma alglaaduri partitsiooni asukohta. Minu puhul alglaadur, mis on 'aboot' ülaltoodud pildil leiate aadressilt /dev/block/mmcblk0p10. See varieerub olenevalt teie seadmest, seega on oluline, et järgiksite neid juhiseid, et välja selgitada tegelik kataloog, kus teie alglaadur asub. Võtke see kataloog siiski teadmiseks, kuna viitame sellele alglaaduri tühjendamiseks järgmises käsus:
dd if=/dev/block/{YOUR ABOOT PARTITION} of=/sdcard/aboot.img
Kui see õnnestub, peaksite leidma faili nimega "aboot.img, mis asub teie sisemälu juurtes. Nüüd, kui oleme alglaaduri välja jätnud, peame seda uurima, et teha kindlaks, milliseid peidetud käske leiame.
Varjatud kiirkäivituskäsud ja nende kasutusalad
Võib-olla olete tuttav mõne levinumate kiirkäivituskäskudega, näiteks fastboot flash või kiire alglaadimine. On palju rohkem kiirkäivituskäske, nagu on määratletud jaotises avatud lähtekoodiga kiirkäivitusprotokoll. Siin on nimekiri kiirkäivituskäskudest, mis on saadaval igas seadmes, mille alglaadur põhineb uusimal AOSP-koodil:
Selles loendis puudub kiire käivitamine oem käske. Need käsud on spetsiifiline Android-seadmete tootjatele ning kusagil pole täielikku loendit ega dokumentatsiooni selle kohta, millised kiirkäivituse oem-käsud on saadaval. Nüüd, kui teie seadme tootja oli piisavalt lahke andma kiirkäivituskäsku, mis loetleb kõik oem-i käsud (proovige fastboot oem? ja vaadake, kas see töötab), siis ei pea te enam midagi tegema. Kui pole ühtegi käsku, mis prindib saadaolevate kiirkäivituse oem-käskude loendi, peate printima loendi stringid failist aboot.img ja otsige oem-käske käsitsi.
'strings' on Linuxi käsk, mille dokumentatsioon on saadaval siin. Nagu näete, kasutan ma isiklikult Windowsi masinat, nii et selle asemel olen kasutanud a programm, mis jäljendab Linuxi "stringe".. Käsu "strings" toorväljund failis aboot.img on üsna segane, aga kui kasutate 'oem' jaoks lihtsalt CTRL+F, peaksite leidma selle, mida vajate. Kui soovite otsingut täpsustada, võite proovida seda käsku (minu lingitud Windowsi versiooni jaoks):
strings * | findstr /i oem
Nexus 6P jaoks koostasin järgmise kiirkäivituse oem-käskude loendi:
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
Hoiatage, et te ei tohiks proovida ühtegi ülaltoodud käsku ega ühtegi oma seadmest leitud käsku, välja arvatud juhul, kui olete nõus riskidega leppima. On põhjust, miks need käsud on kasutaja eest peidetud.
Sellest hoolimata olen mõelnud mõnele nendele leitud kiirkäivituskäskudele (mis võib, aga ei pruugi olla teie seadmes olemas, seega järgige kontrollimiseks ülalolevaid juhiseid!), mis peaks sobima kõige raskema Androidiga entusiast. Siin on kaks käsku, millel võib olla praktilist kasu.
Kõigepealt on fastboot oem (lubamine|keela)-laadija-ekraan käsk. See keelab laadimisekraani, mis kuvatakse seadme väljalülitamisel. Kui te pole laadimisekraani pimestava heleduse fänn, kui telefon on välja lülitatud, saate selle selle peidetud kiirkäivituskäsuga keelata!
Järgmisena on fastboot oem väljalülitatud režiimi laadimine (lubamine | keelamine) käsk. See käsk määrab, kas teie seade lülitub toiteallika tuvastamisel automaatselt sisse või mitte. Vaikimisi on see seatud olekusse "Keela". Tunnistan, et sellest käsust pole telefonide puhul erilist kasu, aga kui kui plaanite tahvelarvuti oma auto armatuurlauale paigaldada, leiate selle käsu uskumatult kasulik. Saate seadistada seadme koheselt sisse lülituma, kui tahvelarvuti saab toite, näiteks kui auto aku käivitub. Seevastu tahvelarvuti väljalülitamine on üsna lihtne, kui toide kaob, kasutades automatiseerimisrakendust, näiteks Tasker. See käsk, muide, töötab täpselt nii, nagu on kirjutatud Nexus 7 (2013).
See on Androidi kohandatavuse õppetund. Jagage avastatud käske (ideaaljuhul pastebini lingil) allolevates kommentaarides!
Täname XDA tunnustatud vanemarendajat Dees_Troy abi eest selle artikli koostamisel!