V vaši napravi je veliko skritih ukazov za hitri zagon. Da bi jih našli, bomo morali zagnati zagonski nalagalnik in pregledati vsebino!
V svojem prizadevanju, da bi odkril čim več o prilagajanju Androida, sem prišel do številnih nejasnih, a zanimivih odkritij. Pokazal sem vam, kako dostopati skrite menije v vaši napravi s presejanjem skozi vse skrite dejavnosti aplikacij v telefonu. Pred kratkim sem vam pokazal, kako dostopati do diagnostično orodje za skrito strojno opremo na določenih pametnih telefonih. Zavedam se, da ste bili nekateri razočarani nad dejstvom, da vaš pametni telefon ni bil obravnavan v prejšnjem članku, in se opravičujem za to.
Da bi se oddolžil, vas bom popeljal skozi nekaj veliko, veliko bolj naprednega in razburljivega: izpustite zagonski nalagalnik vaše naprave, da odkrijete skrite ukaze hitrega zagona. Ta vodnik, čeprav narejen na mojem Nexus 6P, je vsekakor mogoče ponoviti na večini pametnih telefonov. Vendar pa se ukazi, do katerih boste imeli dostop, med napravami precej razlikujejo. Večina ukazov vam ne bo v resnici pomagala v nobeni resnični situaciji, a kljub temu je precej zanimivo potopiti se tako globoko v nastavitve telefona. Začnimo.
Zavrnitev odgovornosti: Dokler veste, kaj počnete, in lahko ustrezno sledite navodilom, se vaši napravi ne sme zgoditi nič slabega. Vendar se še vedno ubadamo s particijami naše naprave in zagonskim nalagalnikom, zato ni znano, kaj se lahko zgodi, če vnesete napačen ukaz. Prepričajte se, da imate pripravljeno varnostno kopijo zunaj naprave!
Priprava
Preden začnemo, moramo opozoriti na eno zelo, zelo pomembno stvar. Če želite ekstrahirati zagonski nalagalnik vaše naprave, v telefonu boste potrebovali korenski dostop. Če nimate korenskega dostopa, lahko nadaljujete z branjem tega priročnika v izobraževalne namene, vendar ne boste mogli izvesti nobenega od potrebnih ukazov. Razumem? Dobro. Drug predpogoj, ki ga boste morali izpolniti, je zagotoviti, da ima vaš računalnik vse ustrezne gonilnike ADB/fastboot. Če nimate binarnih datotek ADB/fastboot, priporočam namestitev Minimalni ADB & Fastboot iz naših forumov. Kar zadeva gonilnike, lahko zgrabite potrebne gonilnike za naprave Google Nexus tukaj in za vse ostale naprave od tukaj. Kako veste, ali ste pripravljeni? Priključite svojo napravo, omogočite odpravljanje napak USB v nastavitvah za razvijalce, odprite ukazni poziv in vnesite:
adb devices
Če se pojavi serijska številka vaše naprave, potem imate prave gonilnike.
Odlaganje zagonskega nalagalnika
Naš prvi korak je odpreti lupino na naši napravi, da lahko izvajamo ukaze prek ADB. Najbolje je, da izvajamo ukaze preko ADB, ker smo veliko bolj nagnjeni k delanju napak pri tipkanju na virtualni tipkovnici, delanje napak pa tukaj ni nekaj, kar bi radi počeli. Prvi ukaz, ki ga morate zagnati v ukaznem pozivu, je:
adb shell
Če vidite, da se ukazni poziv spremeni iz prikaza binarnega imenika ADB v prikaz kodnega imena vaše naprave Android, ste uspešno vnesli lupino lokalne ukazne vrstice vaše naprave. Za dostop do particij, ki jih moramo izpustiti, boste potrebovali dostop superuporabnika. Če želite to narediti, vnesite naslednje:
su
Simbol pred kodnim imenom vaše naprave bi se moral spremeniti iz $ do # kar pomeni, da lahko zdaj izvajate ukaze s povišanimi privilegiji. Previdno zdaj!
Nato bomo ugotovili natančno lokacijo slike zagonskega nalagalnika vaše naprave. Da bi našli natančen imenik, bomo natisnili seznam vseh particij in njihovih imenikov po imenu ter poiskali enega posebej z imenom 'aboot.' Vnesti boste morali dva ukaza, kot sledi:
cd /dev/block/bootdevice/by-name
ls -all
Kot lahko vidite zgoraj, je natisnjen ogromen seznam imenikov particij. Te particije so razvrščene po imenu, tako da lahko zlahka razberemo lokacijo naše zagonske particije. V mojem primeru bootloader, ki je 'približno' na zgornji sliki najdete na /dev/block/mmcblk0p10. to se bo razlikoval odvisno od vaše naprave, zato je pomembno, da sledite tem navodilom, da ugotovite pravi imenik, kjer se nahaja vaš zagonski nalagalnik. Vendar upoštevajte ta imenik, saj se bomo nanj sklicevali v naslednjem ukazu za izpis zagonskega nalagalnika:
dd if=/dev/block/{YOUR ABOOT PARTITION} of=/sdcard/aboot.img
Ko bo uspešen, bi morali najti datoteko z imenom 'aboot.img', ki se nahaja v korenu vašega notranjega pomnilnika. Zdaj, ko smo odstranili zagonski nalagalnik, ga moramo pregledati, da ugotovimo, katere skrite ukaze lahko najdemo.
Skriti ukazi Fastboot in njihova uporaba
Morda poznate nekatere pogostejše ukaze za hitri zagon, kot je hitri zagon flash oz hitri zagon. Obstaja veliko več ukazov za hitri zagon, kot je opredeljeno v odprtokodni protokol hitrega zagona. Tukaj je seznam ukazov za hitri zagon, ki so na voljo v vsaki napravi z zagonskim nalagalnikom, ki temelji na najnovejši kodi AOSP:
Na tem seznamu manjka hitri zagon oem ukazi. Ti ukazi so specifična proizvajalcem naprav Android in nikjer ni izčrpnega seznama ali dokumentacije o tem, kateri ukazi oem za hitri zagon so na voljo. Zdaj, če je bil proizvajalec vaše naprave dovolj prijazen, da je zagotovil ukaz za hitri zagon, ki navaja vse ukaze oem (poskusite hitri zagon oem? in preverite, ali to deluje), potem vam ne bo treba storiti ničesar več. Če ni ukaza, ki bi natisnil seznam razpoložljivih ukazov oem za hitri zagon, boste morali natisniti seznam strune iz aboot.img in ročno poiščite ukaze oem.
'strings' je ukaz za linux, dokumentacija za katerega je na voljo tukaj. Kot lahko vidite, osebno uporabljam računalnik z operacijskim sistemom Windows, zato sem namesto tega uporabljal program, ki posnema 'nize' iz Linuxa. Neobdelani izhod ukaza 'strings' v datoteki aboot.img bo precej grdo, a če preprosto pritisnete CTRL+F za 'oem', bi morali najti, kar potrebujete. Če želite izboljšati iskanje, lahko poskusite ta ukaz (za različico sistema Windows, ki sem jo povezal):
strings * | findstr /i oem
Za Nexus 6P sem sestavil naslednji seznam ukazov oem za hitri zagon:
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
Bodite opozorjeni, da ne smete izvajati nobenega od zgornjih ukazov ali katerega koli ukaza, ki ga odkrijete v svoji napravi, razen če ste pripravljeni sprejeti tveganje. Obstaja razlog, da so ti ukazi skriti pred uporabnikom.
Glede na povedano sem pomislil na nekaj lepih uporab za nekatere od teh ukazov za hitri zagon, ki sem jih našel (ki so lahko ali pa tudi ne prisoten v vaši napravi, zato sledite zgornjim navodilom, da preverite!), ki bi moral biti všeč najbolj zahtevnemu Androidu navdušenec. Tukaj sta dva ukaza, ki bi lahko bila praktično uporabna.
Najprej je fastboot oem (omogoči|onemogoči)-zaslon-polnilnika ukaz. To naredi tako, da onemogoči zaslon za polnjenje, ki se prikaže, ko je vaša naprava izklopljena. Če niste ljubitelj osupljive svetlosti zaslona za polnjenje, ko je vaš telefon izklopljen, ga lahko onemogočite s tem skritim ukazom za hitri zagon!
Naslednji je fastboot oem off-mode-charge (omogoči|onemogoči) ukaz. Ta ukaz določa, ali se bo vaša naprava samodejno vklopila, ko bo zaznan vir napajanja. Privzeto je nastavljeno na 'onemogoči'. Priznam, da ta ukaz nima veliko koristi za telefone, ampak če nameravate tablico namestiti na armaturno ploščo avtomobila, se vam bo ta ukaz zdel neverjetno uporaben. Svojo napravo boste lahko nastavili tako, da se takoj vklopi, ko tablični računalnik prejme napajanje, na primer, ko se zažene akumulator avtomobila. Nasprotno pa je povsem preprosto izklopiti tablični računalnik, ko izpade napajanje, z uporabo aplikacije za avtomatizacijo, kot je Tasker. Mimogrede, ta ukaz deluje natanko tako, kot je napisano na Nexus 7 (2013).
To je to za to lekcijo o prilagodljivosti Androida. Delite ukaze, ki jih odkrijete (idealno v povezavi pastebin), v spodnjih komentarjih!
Zahvaljujoč staremu priznanemu razvijalcu XDA Dees_Troy za njegovo pomoč pri nastajanju tega članka!