Kako otkriti skrivene Fastboot naredbe

Na vašem uređaju ima mnogo skrivenih naredbi za brzo pokretanje. Kako bismo ih pronašli, morat ćemo izbaciti bootloader i ispitati sadržaj!

U svojoj potrazi da otkrijem što više o prilagodbi Androida, došao sam do mnogo nejasnih, ali zanimljivih otkrića. Pokazao sam vam kako pristupiti skrivene izbornike na vašem uređaju pretragom svih skrivenih aktivnosti aplikacija na vašem telefonu. Nedavno sam vam pokazao kako pristupiti alat za dijagnostiku skrivenog hardvera na određenim pametnim telefonima. Sada shvaćam da su neki od vas bili razočarani činjenicom da vaš pametni telefon nije bio pokriven u prethodnom članku, i ispričavam se zbog toga.

Kako bih to nadoknadio, provest ću vas kroz nešto daleko, daleko naprednije i uzbudljivije: izbacite bootloader vašeg uređaja kako biste otkrili skrivene naredbe za brzo pokretanje. Ovaj vodič, iako je napravljen na mom Nexus 6P, definitivno se može replikovati na većini pametnih telefona. Međutim, naredbe kojima ćete imati pristup značajno će se razlikovati od uređaja do uređaja. Većina naredbi neće vam baš pomoći u bilo kojoj stvarnoj situaciji, ali svejedno je prilično zanimljivo uroniti ovako duboko u postavke vašeg telefona. Započnimo.

Izjava o odricanju od odgovornosti: sve dok znate što radite i možete slijediti upute na odgovarajući način, ništa loše se ne bi trebalo dogoditi vašem uređaju. No, još uvijek petljamo s našim particijama uređaja i bootloaderom, tako da nema pojma što bi se moglo dogoditi ako unesete pogrešnu naredbu. Provjerite imate li spremnu sigurnosnu kopiju izvan uređaja!


Priprema

Prije nego što počnemo, postoji jedna stvarno, jako važna stvar koju treba napomenuti. Da biste ekstrahirali pokretački program svog uređaja, trebat će vam root pristup na vašem telefonu. Ako nemate root pristup, možete nastaviti čitati ovaj vodič u obrazovne svrhe, ali nećete moći izvršiti nijednu od potrebnih naredbi. Kužiš to? Dobro. Još jedan preduvjet koji ćete morati ispuniti jest osigurati da vaše računalo ima sve odgovarajući ADB/fastboot upravljački programi. Ako nemate binarne datoteke ADB/fastboot, preporučujem instalaciju Minimalni ADB & Fastboot s naših foruma. Što se tiče upravljačkih programa, možete preuzeti potrebne upravljačke programe za Google Nexus uređaje ovdje i za sve ostale uređaje iz ovdje. Kako znaš jesi li spreman? Uključite svoj uređaj, omogućite USB Debugging u postavkama za razvojne programere, otvorite naredbeni redak i upišite:

adb devices

Ako vidite da se pojavljuje serijski broj vašeg uređaja, onda imate prave upravljačke programe.


Izbacivanje pokretačkog programa

Naš prvi korak je otvoriti ljusku na našem uređaju kako bismo mogli pokretati naredbe preko ADB-a. Najbolje je da naredbe izvodimo preko ADB-a jer smo mnogo skloniji pravljenju pogrešaka kada tipkamo na virtualnoj tipkovnici, a pravljenje pogrešaka nije nešto što ovdje želite raditi. Prva naredba koju biste trebali pokrenuti u naredbenom retku je:

adb shell

Ako vidite da se naredbeni redak mijenja iz prikaza ADB binarnog direktorija u prikaz kodnog naziva za vaš Android uređaj, tada ste uspješno unijeli ljusku lokalne naredbene linije svog uređaja. Sada, da biste pristupili particijama koje trebamo izbaciti, trebat će vam pristup superkorisnika. Da biste to učinili, upišite sljedeće:

su

Simbol ispred kodnog naziva vašeg uređaja trebao bi se promijeniti iz $ do # što ukazuje da sada možete pokretati naredbe s povišenim privilegijama. Budite oprezni sada!

Zatim ćemo otkriti točnu lokaciju slike pokretačkog programa vašeg uređaja. Kako bismo pronašli točan direktorij, ispisat ćemo popis svih particija i njihovih direktorija po nazivu i potražiti jedan posebno pod nazivom 'o tome.' Morat ćete unijeti dvije naredbe kako slijedi:

cd /dev/block/bootdevice/by-name
ls -all

Kao što možete vidjeti gore, ispisuje se ogroman popis particijskih direktorija. Ove su particije poredane po nazivu, tako da možemo lako razlučiti mjesto naše bootloader particije. U mom slučaju, bootloader, koji je 'otprilike' na gornjoj slici, može se pronaći na /dev/block/mmcblk0p10. Ovaj varirat će ovisno o vašem uređaju, stoga je važno da slijedite ove upute kako biste otkrili pravi direktorij u kojem se nalazi vaš bootloader. Međutim, obratite pažnju na ovaj direktorij jer ćemo ga referencirati u sljedećoj naredbi za izbacivanje bootloadera:

dd if=/dev/block/{YOUR ABOOT PARTITION} of=/sdcard/aboot.img

Nakon uspjeha, trebali biste pronaći datoteku pod nazivom 'aboot.img' koji se nalazi u korijenu vaše interne pohrane. Sada kada smo izbacili bootloader, moramo ga ispitati kako bismo utvrdili koje skrivene naredbe možemo pronaći.


Skrivene Fastboot naredbe i njihova upotreba

Možda su vam poznate neke od uobičajenih naredbi za brzo pokretanje, kao što je brzo pokretanje flash ili brzo pokretanje. Postoji mnogo više naredbi za brzo pokretanje kako je definirano u protokol brzog pokretanja otvorenog koda. Ovdje je popis naredbi za brzo pokretanje dostupnih na svakom uređaju s pokretačkim programom koji se temelji na najnovijem AOSP kodu:

Ono što nedostaje na ovom popisu je brzo pokretanje oem naredbe. Ove naredbe su specifično proizvođačima Android uređaja i nigdje ne postoji sveobuhvatan popis ili dokumentacija o tome koje su naredbe brzog pokretanja OEM dostupne. Sada, ako je proizvođač vašeg uređaja bio dovoljno ljubazan da pruži naredbu za brzo pokretanje koja navodi sve oem naredbe (pokušajte fastboot oem? i provjerite radi li to), tada više nećete morati ništa poduzimati. Ako ne postoji nijedna naredba koja ispisuje popis dostupnih fastboot oem naredbi, tada ćete morati ispisati popis žice iz aboot.img i ručno potražite oem naredbe.

'strings' je Linux naredba, dokumentacija za koju je dostupan ovdje. Kao što vidite, ja osobno koristim Windows stroj, pa sam umjesto toga koristio program koji oponaša 'stringove' iz Linuxa. Neobrađeni izlaz naredbe 'strings' u datoteci aboot.img bit će prilično neuredno, ali ako jednostavno pritisnete CTRL+F za 'oem', trebali biste pronaći ono što vam je potrebno. Ako želite pročistiti svoju pretragu, možete isprobati ovu naredbu (za Windows verziju koju sam povezao):

strings * | findstr /i oem

Za Nexus 6P sastavio sam sljedeći popis brzih oem naredbi:

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

Upozoravamo vas da ne biste trebali isprobavati nijednu od gore navedenih naredbi ili bilo koju od naredbi koje otkrijete na svom uređaju, osim ako ste voljni prihvatiti rizike. Postoji razlog zašto su te naredbe skrivene od korisnika.

Uz to, smislio sam neke zgodne upotrebe za neke od ovih naredbi za brzo pokretanje koje sam pronašao (koje mogu, a ne moraju biti prisutan na vašem uređaju, pa slijedite gornje upute da provjerite!) koji bi se trebao svidjeti najtvrđem Androidu entuzijasta. Ovdje postoje dvije naredbe koje bi mogle imati neke praktične koristi.

Prvo je na redu fastboot oem (omogući|onemogući)-zaslon-punjača naredba. Ovo onemogućuje zaslon za punjenje koji se pojavljuje kada je vaš uređaj isključen. Ako niste ljubitelj zasljepljujuće svjetline zaslona punjenja kada vam je telefon isključen, možete ga onemogućiti putem ove skrivene naredbe za brzo pokretanje!

Sljedeće, tu je fastboot oem off-mode-charge (omogući|onemogući) naredba. Ova naredba određuje hoće li se vaš uređaj automatski uključiti kada se otkrije izvor napajanja. Prema zadanim postavkama postavljeno je na 'onemogući'. Priznat ću da ova naredba nema previše koristi za telefone, ali ako planirate montirati tablet na kontrolnu ploču automobila, ova će vam naredba biti nevjerojatna koristan. Moći ćete postaviti svoj uređaj da se odmah uključi kada tablet dobije napajanje, na primjer kada se pokrene akumulator vašeg automobila. Nasuprot tome, prilično je jednostavno isključiti tablet kada nestane struje pomoću aplikacije za automatizaciju kao što je Tasker. Usput, ova naredba radi točno onako kako je napisano na Nexus 7 (2013.).


To je to za ovu lekciju o prilagodljivosti Androida. Podijelite naredbe koje ste otkrili (idealno u pastebin vezi) u komentarima ispod!

Zahvaljujući XDA Senior Recognised Developer Dees_Troy za njegovu pomoć u izradi ovog članka!