Na vašem zařízení je mnoho skrytých příkazů pro rychlé spuštění. Abychom je našli, budeme muset vyhodit bootloader a prozkoumat obsah!
Ve své snaze objevit o přizpůsobení Androidu co nejvíce, jsem učinil mnoho nejasných, ale zajímavých objevů. Ukázal jsem vám, jak získat přístup skryté nabídky na vašem zařízení procházením všech skrytých aktivit aplikací v telefonu. Nedávno jsem vám ukázal, jak získat přístup k skrytý nástroj pro diagnostiku hardwaru na některých chytrých telefonech. Nyní si uvědomuji, že někteří z vás byli zklamáni tím, že váš smartphone nebyl zmíněn v předchozím článku, a omlouvám se za to.
Abych to vynahradil, provedu vás něčím daleko, mnohem pokročilejším a vzrušujícím: vypuštěním bootloaderu vašeho zařízení objevíte skryté příkazy rychlého spuštění. Tento návod, i když byl proveden na mém Nexus 6P, je zcela jistě replikovatelný na většině smartphonů. To, k jakým příkazům budete mít přístup, se však mezi zařízeními výrazně liší. Většina příkazů vám opravdu nepomůže v žádné skutečné situaci, ale přesto je docela zajímavé ponořit se takto hluboko do nastavení telefonu. Začněme.
Upozornění: Pokud víte, co děláte, a dokážete správně postupovat podle pokynů, nemělo by se vašemu zařízení stát nic špatného. Stále si ale lámeme hlavu s oddíly našich zařízení a zavaděčem, takže nelze říci, co by se mohlo stát, pokud zadáte špatný příkaz. Ujistěte se, že máte připravenou zálohu mimo zařízení!
Příprava
Než začneme, je třeba si uvědomit jednu opravdu, opravdu důležitou věc. Chcete-li extrahovat bootloader vašeho zařízení, budete potřebovat root přístup v telefonu. Pokud nemáte přístup root, můžete pokračovat ve čtení této příručky pro vzdělávací účely, ale nebudete moci provádět žádné potřebné příkazy. Mám to? Dobrý. Dalším předpokladem, který budete muset splnit, je zajistit, aby váš počítač měl všechny tyto vlastnosti správné ovladače ADB/fastboot. Pokud nemáte binární soubory ADB/fastboot, pak doporučuji nainstalovat Minimální ADB a Fastboot z našich fór. Pokud jde o ovladače, můžete získat potřebné ovladače pro zařízení Google Nexus tady a pro všechna ostatní zařízení od tady. Jak víš, jestli chceš jít? Připojte zařízení, povolte ladění USB v části Nastavení vývojáře, otevřete příkazový řádek a zadejte:
adb devices
Pokud se zobrazí sériové číslo vašeho zařízení, máte správné ovladače.
Vyprázdnění bootloaderu
Naším prvním krokem je otevřít shell na našem zařízení, abychom mohli spouštět příkazy přes ADB. Nejlepší je spouštět příkazy přes ADB, protože jsme mnohem náchylnější k chybám při psaní na virtuální klávesnici a dělat chyby zde není něco, co byste chtěli dělat. První příkaz, který byste měli spustit v příkazovém řádku, je:
adb shell
Pokud uvidíte, že se příkazový řádek změnil ze zobrazení binárního adresáře ADB na zobrazení kódového názvu vašeho zařízení Android, pak jste úspěšně zadali místní příkazový řádek vašeho zařízení. Nyní, abyste získali přístup k oddílům, které potřebujeme vypsat, budete potřebovat přístup superuživatele. Chcete-li tak učinit, zadejte následující:
su
Symbol před kódovým jménem vašeho zařízení by se měl změnit z $ na # což znamená, že nyní můžete spouštět příkazy se zvýšenými oprávněními. Dávejte si teď pozor!
Dále zjistíme přesné umístění obrazu bootloaderu vašeho zařízení. Abychom našli přesný adresář, vytiskneme seznam všech oddílů a jejich adresářů podle názvu a vyhledáme jeden konkrétní s názvem 'bota.' Budete muset zadat dva následující příkazy:
cd /dev/block/bootdevice/by-name
ls -all
Jak můžete vidět výše, vytiskne se obrovský seznam adresářů oddílů. Tyto oddíly jsou seřazeny podle názvu, takže můžeme snadno rozeznat umístění našeho oddílu bootloaderu. V mém případě bootloader, který je 'bota' na obrázku výše lze nalézt na /dev/block/mmcblk0p10. Tento se bude lišit v závislosti na vašem zařízení, takže je důležité, abyste se řídili těmito pokyny, abyste zjistili skutečný adresář, kde je umístěn váš bootloader. Poznamenejte si však tento adresář, protože na něj budeme odkazovat v následujícím příkazu pro výpis bootloaderu:
dd if=/dev/block/{YOUR ABOOT PARTITION} of=/sdcard/aboot.img
Jakmile budete úspěšní, měli byste najít soubor s názvem 'aboot.img“ umístěné v kořenovém adresáři vašeho interního úložiště. Nyní, když jsme spustili bootloader, musíme jej prozkoumat, abychom zjistili, jaké skryté příkazy můžeme najít.
Skryté příkazy Fastboot a jejich použití
Možná jste obeznámeni s některými běžnějšími příkazy rychlého spuštění, jako je např blesk rychlého spuštění nebo fastboot boot. Existuje mnoho dalších příkazů pro rychlé spuštění, jak jsou definovány v open source fastboot protokol. Zde je seznam příkazů rychlého spuštění dostupných na každém zařízení s bootloaderem založeným na nejnovějším kódu AOSP:
Co v tomto seznamu chybí, jsou rychlé spouštění oem příkazy. Tyto příkazy jsou charakteristický výrobcům zařízení Android a nikde neexistuje žádný úplný seznam ani dokumentace pro to, jaké příkazy fastboot oem jsou k dispozici. Nyní, pokud byl výrobce vašeho zařízení tak laskav a poskytl příkaz rychlého spuštění, který uvádí všechny příkazy oem (zkuste fastboot oem? a uvidíte, jestli to funguje), pak už nebudete muset dělat nic. Pokud neexistuje žádný příkaz, který by vytiskl seznam dostupných oem příkazů rychlého spuštění, budete muset vytisknout seznam struny z aboot.img a ručně vyhledejte příkazy oem.
'strings' je linuxový příkaz, jehož dokumentace je k dispozici zde. Jak můžete říci, osobně používám počítač se systémem Windows, takže místo toho jsem používal a program, který napodobuje 'řetězce' z Linuxu. Surový výstup příkazu 'strings' v souboru aboot.img bude docela chaotický, ale pokud jednoduše CTRL+F pro „oem“, měli byste najít, co potřebujete. Pokud chcete upřesnit vyhledávání, můžete zkusit tento příkaz (pro verzi Windows, kterou jsem propojil):
strings * | findstr /i oem
Pro Nexus 6P jsem sestavil následující seznam příkazů fastboot 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 byste se neměli pokoušet o žádný z výše uvedených příkazů ani žádný z příkazů, které na svém zařízení objevíte, pokud nejste ochotni přijmout rizika. Existuje důvod, proč jsou tyto příkazy před uživatelem skryté.
Jak již bylo řečeno, přemýšlel jsem o nějakém úhledném použití pro některé z těchto příkazů rychlého spuštění, které jsem našel (které mohou, ale nemusí být přítomen na vašem zařízení, takže se řiďte výše uvedenými pokyny a zkontrolujte!), které by měly mít nejnáročnější Android nadšenec. Jsou zde dva příkazy, které by mohly mít nějaké praktické využití.
První na řadě je fastboot oem (enable|disable)-charger-screen příkaz. Tím se zakáže obrazovka nabíjení, která se objeví, když je zařízení vypnuté. Pokud nejste příznivci oslepujícího jasu nabíjecí obrazovky, když je váš telefon vypnutý, můžete jej deaktivovat pomocí tohoto skrytého příkazu rychlého spuštění!
Dále je tu fastboot oem off-mode-charge (povolit|zakázat) příkaz. Tento příkaz určuje, zda se vaše zařízení automaticky zapne, když je detekován zdroj napájení. Ve výchozím nastavení je nastaveno na „zakázat“. Uznávám, že tento příkaz nemá pro telefony velké využití, ale kdyby plánujete namontovat tablet na palubní desku auta, tento příkaz se vám bude zdát neuvěřitelně užitečný. Budete moci nastavit své zařízení tak, aby se okamžitě zapnulo, když tablet přijme energii, například když se spustí baterie vašeho auta. Naopak je docela snadné vypnout tablet při výpadku napájení pomocí automatizační aplikace, jako je Tasker. Tento příkaz mimochodem funguje přesně tak, jak je napsáno na Nexus 7 (2013).
To je pro tuto lekci přizpůsobení Androidu vše. Podělte se o příkazy, které objevíte (ideálně v odkazu Pastebin) v komentářích níže!
Díky XDA Senior Recognized Developer Dees_Troy za jeho pomoc při tvorbě tohoto článku!