Ako zistiť skryté príkazy rýchleho spustenia

Na vašom zariadení je veľa skrytých príkazov na rýchle spustenie. Aby sme ich našli, musíme spustiť bootloader a preskúmať obsah!

V snahe zistiť čo najviac o prispôsobení Androidu som urobil veľa nejasných, no zaujímavých objavov. Ukázal som vám, ako získať prístup skryté ponuky na vašom zariadení prehľadávaním všetkých skrytých aktivít aplikácií v telefóne. Nedávno som vám ukázal, ako získať prístup k skrytý nástroj na diagnostiku hardvéru na niektorých smartfónoch. Teraz si uvedomujem, že niektorí z vás boli sklamaní z toho, že váš smartfón nebol uvedený v predchádzajúcom článku, a ospravedlňujem sa za to.

Aby som vám to vynahradil, prevediem vás niečím ďaleko, oveľa pokročilejším a vzrušujúcejším: vypnite bootloader vášho zariadenia, aby ste objavili skryté príkazy rýchleho spustenia. Tento návod, aj keď robený na mojom Nexus 6P, je určite replikovateľný na väčšine smartfónov. Príkazy, ku ktorým budete mať prístup, sa však medzi zariadeniami výrazne líšia. Väčšina príkazov vám skutočne nepomôže v žiadnej reálnej situácii, no napriek tomu je celkom zaujímavé ponoriť sa takto hlboko do nastavení telefónu. Začnime.

Zrieknutie sa zodpovednosti: Pokiaľ viete, čo robíte a dokážete správne postupovať podľa pokynov, vášmu zariadeniu by sa nemalo stať nič zlé. Stále sa však zaoberáme oddielmi našich zariadení a bootloaderom, takže nevieme, čo sa môže stať, ak zadáte nesprávny príkaz. Uistite sa, že máte pripravenú zálohu mimo zariadenia!


Príprava

Predtým, než začneme, je tu jedna naozaj, naozaj dôležitá vec, ktorú si treba uvedomiť. Ak chcete extrahovať bootloader vášho zariadenia, budete potrebovať root prístup v telefóne. Ak nemáte prístup root, môžete pokračovať v čítaní tejto príručky na vzdelávacie účely, ale nebudete môcť vykonávať žiadne potrebné príkazy. Mám to? Dobre. Ďalším predpokladom, ktorý budete musieť splniť, je zabezpečiť, aby váš počítač mal všetky tieto položky správne ovládače ADB/fastboot. Ak nemáte binárne súbory ADB/fastboot, potom odporúčam inštaláciu Minimálne ADB a rýchle spustenie z našich fór. Pokiaľ ide o ovládače, môžete získať potrebné ovládače pre zariadenia Google Nexus tu a pre všetky ostatné zariadenia od tu. Ako viete, či môžete ísť? Zapojte svoje zariadenie, povoľte ladenie USB v časti Nastavenia vývojára, otvorte príkazový riadok a zadajte:

adb devices

Ak sa zobrazí sériové číslo vášho zariadenia, máte správne ovládače.


Vypustenie bootloadera

Naším prvým krokom je otvoriť shell na našom zariadení, aby sme mohli spúšťať príkazy cez ADB. Najlepšie je spúšťať príkazy cez ADB, pretože sme oveľa náchylnejší robiť chyby pri písaní na virtuálnej klávesnici a robiť chyby tu nie je niečo, čo by ste chceli robiť. Prvý príkaz, ktorý by ste mali spustiť v príkazovom riadku, je:

adb shell

Ak uvidíte, že sa príkazový riadok zmenil zo zobrazovania binárneho adresára ADB na zobrazenie kódového názvu pre vaše zariadenie Android, potom ste úspešne zadali miestne prostredie príkazového riadka vášho zariadenia. Teraz, aby ste mali prístup k oddielom, ktoré potrebujeme vypísať, budete potrebovať prístup superužívateľa. Ak to chcete urobiť, zadajte nasledujúce:

su

Symbol pred kódovým názvom vášho zariadenia by sa mal zmeniť z $ do # čo naznačuje, že teraz môžete spúšťať príkazy so zvýšenými oprávneniami. Dávajte si teraz pozor!

Ďalej zistíme presné umiestnenie obrazu zavádzača vášho zariadenia. Aby sme našli presný adresár, vytlačíme zoznam všetkých oddielov a ich adresárov podľa názvu a vyhľadáme jeden konkrétny s názvom 'naštartovať.“ Budete musieť zadať dva nasledujúce príkazy:

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

Ako môžete vidieť vyššie, vytlačí sa obrovský zoznam adresárov oddielov. Tieto oddiely sú zoradené podľa názvu, takže môžeme ľahko rozoznať umiestnenie nášho oddielu zavádzača. V mojom prípade bootloader, ktorý je 'aboot' na obrázku vyššie nájdete na /dev/block/mmcblk0p10. Toto sa bude líšiť v závislosti od vášho zariadenia, takže je dôležité, aby ste postupovali podľa týchto pokynov, aby ste zistili skutočný adresár, kde sa nachádza váš bootloader. Poznamenajte si však tento adresár, pretože naň budeme odkazovať v nasledujúcom príkaze na výpis bootloadera:

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

Po úspechu by ste mali nájsť súbor s názvom 'aboot.imgsa nachádza v koreňovom adresári vášho interného úložiska. Teraz, keď sme spustili bootloader, musíme ho preskúmať, aby sme zistili, aké skryté príkazy môžeme nájsť.


Skryté príkazy rýchleho spustenia a ich použitie

Možno poznáte niektoré z bežnejších príkazov rýchleho spustenia, ako napr blesk rýchleho spustenia alebo rýchle spustenie. Existuje mnoho ďalších príkazov rýchleho spustenia, ako sú definované v open source protokol rýchleho spustenia. Tu je zoznam príkazov rýchleho spustenia dostupných na každom zariadení s bootloaderom na základe najnovšieho kódu AOSP:

Čo v tomto zozname chýba, je rýchle spustenie oem príkazy. Tieto príkazy sú špecifické výrobcom zariadení so systémom Android a nikde neexistuje úplný zoznam ani dokumentácia o tom, aké príkazy rýchleho spustenia oem sú k dispozícii. Teraz, ak bol výrobca vášho zariadenia taký láskavý, že poskytol príkaz rýchleho spustenia, ktorý obsahuje všetky príkazy Oem (skúste fastboot oem? a uvidíte, či to funguje), potom už nebudete musieť robiť nič. Ak neexistuje žiadny príkaz, ktorý vytlačí zoznam dostupných príkazov rýchleho spustenia OEM, budete musieť vytlačiť zoznam struny z aboot.img a manuálne vyhľadajte príkazy oem.

'strings' je linuxový príkaz, ktorého dokumentácia je k dispozícii tu. Ako môžete povedať, osobne používam počítač so systémom Windows, takže namiesto toho som používal a program, ktorý napodobňuje „reťazce“ z Linuxu. Surový výstup príkazu 'strings' v súbore aboot.img bude dosť chaotický, ale ak jednoducho CTRL+F pre 'oem', mali by ste nájsť to, čo potrebujete. Ak chcete spresniť vyhľadávanie, môžete vyskúšať tento príkaz (pre verziu systému Windows, ktorú som prepojil):

strings * | findstr /i oem

Pre Nexus 6P som zostavil nasledujúci zoznam príkazov rýchleho spustenia Oem:

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

Upozorňujeme, že by ste sa nemali pokúšať o žiadne z vyššie uvedených príkazov ani o žiadny z príkazov, ktoré objavíte na svojom zariadení, pokiaľ nie ste ochotní prijať riziká. Existuje dôvod, prečo sú tieto príkazy pred používateľom skryté.

Ako už bolo povedané, premýšľal som o nejakom úhľadnom využití niektorých z týchto príkazov rýchleho spustenia, ktoré som našiel (ktoré môžu alebo nemusia byť prítomný na vašom zariadení, preto skontrolujte podľa pokynov vyššie!), ktorý by mal byť obľúbený pre najtvrdší Android nadšenec. Sú tu dva príkazy, ktoré by mohli mať praktické využitie.

Na prvom mieste je fastboot oem (enable|disable)-charger-screen príkaz. Tým sa zakáže obrazovka nabíjania, ktorá sa objaví, keď je zariadenie vypnuté. Ak nie ste fanúšikom oslepujúceho jasu obrazovky nabíjania, keď je telefón vypnutý, môžete ho vypnúť pomocou tohto skrytého príkazu rýchleho spustenia!

Ďalej je tu fastboot oem off-mode-charge (povoliť|zakázať) príkaz. Tento príkaz určuje, či sa vaše zariadenie automaticky zapne, keď sa zistí zdroj napájania. V predvolenom nastavení je nastavená na „zakázať“. Priznám sa, že tento príkaz nemá pre telefóny veľké využitie, ale keby plánujete namontovať tablet na palubnú dosku auta, tento príkaz sa vám bude zdať neuveriteľne užitočné. Svoje zariadenie budete môcť nastaviť tak, aby sa okamžite zaplo, keď tablet dostane energiu, napríklad keď sa spustí batéria vášho auta. Naopak, je celkom jednoduché vypnúť tablet pri výpadku napájania pomocou automatizačnej aplikácie, ako je Tasker. Tento príkaz, mimochodom, funguje presne tak, ako je napísané na Nexus 7 (2013).


To je všetko pre túto lekciu prispôsobiteľnosti systému Android. Podeľte sa o príkazy, ktoré objavíte (ideálne v odkaze na pastebin), v komentároch nižšie!

Vďaka XDA Senior Recognized Developer Dees_Troy za pomoc pri tvorbe tohto článku!