Jak odkryć ukryte polecenia Fastboot

W moim dążeniu do uzyskania jak największej liczby informacji na temat dostosowywania Androida, dokonałem wielu niejasnych, ale interesujących odkryć. Pokazałem ci, jak uzyskać dostęp do ukrytych menu na twoim urządzeniu, przeglądając wszystkie ukryte działania aplikacji w telefonie. Niedawno pokazałem ci, jak uzyskać dostęp do ukrytego narzędzia do diagnostyki sprzętu na niektórych smartfonach. Teraz zdaję sobie sprawę, że niektórzy z was byli rozczarowani faktem, że wasz smartfon nie został opisany w poprzednim artykule i przepraszam za to.

Aby to zrekompensować, przeprowadzę cię przez coś znacznie bardziej zaawansowanego i ekscytującego: zrzucenie programu ładującego urządzenie, aby odkryć ukryte polecenia szybkiego uruchamiania . Ten przewodnik, chociaż sporządzony na moim Nexusie 6P, z pewnością można go odtworzyć na większości smartfonów. Jednak polecenia, do których będziesz mieć dostęp, będą się znacznie różnić między urządzeniami. Większość poleceń naprawdę nie pomoże ci w żadnej rzeczywistej sytuacji, ale mimo to zanurzenie się w ustawieniach telefonu jest dość interesujące. Zacznijmy.

Zastrzeżenie: Tak długo, jak wiesz, co robisz i odpowiednio postępujesz zgodnie z instrukcjami, nic złego nie powinno się stać z twoim urządzeniem. Ale nadal mamy problemy z naszymi partycjami urządzeń i bootloaderem, więc nie wiadomo, co może się stać, jeśli wprowadzisz niewłaściwe polecenie. Upewnij się, że masz gotową kopię zapasową poza urządzeniem!


Przygotowanie

Zanim zaczniemy, jest jedna, naprawdę ważna rzecz do odnotowania. Aby wyodrębnić program ładujący urządzenia, potrzebujesz dostępu do konta root w telefonie. Jeśli nie masz dostępu do konta root, możesz kontynuować czytanie tego przewodnika w celach edukacyjnych, ale nie będziesz w stanie wykonać żadnego z niezbędnych poleceń. Zrozumiałeś? Dobry. Innym warunkiem, który musisz spełnić, jest upewnienie się, że Twój komputer ma wszystkie odpowiednie sterowniki ADB / Fastboot . Jeśli nie masz plików binarnych ADB / fastboot, zalecamy zainstalowanie Minimal ADB i Fastboot z naszych forów. Jeśli chodzi o sterowniki, możesz pobrać niezbędne sterowniki dla urządzeń Google Nexus tutaj i dla wszystkich innych urządzeń stąd. Skąd wiesz, czy możesz iść? Podłącz urządzenie, włącz debugowanie USB w Ustawieniach programisty, otwórz wiersz polecenia i wpisz:

 adb devices 

Jeśli pojawi się numer seryjny urządzenia, oznacza to, że masz odpowiednie sterowniki.


Zrzut Bootloadera

Naszym pierwszym krokiem jest otwarcie powłoki na naszym urządzeniu, abyśmy mogli uruchamiać polecenia przez ADB. Najlepiej jest, gdy uruchamiamy polecenia w ADB, ponieważ jesteśmy znacznie bardziej podatni na popełnianie błędów podczas pisania na wirtualnej klawiaturze, a popełnianie błędów nie jest tutaj czymś, co chcesz zrobić. Pierwsze polecenie, które należy uruchomić w wierszu polecenia, to:

 adb shell 

Jeśli zobaczysz zmianę wiersza polecenia z wyświetlania katalogu binarnego ADB na wyświetlanie nazwy kodowej urządzenia z systemem Android, oznacza to, że pomyślnie wprowadziłeś lokalną powłokę wiersza poleceń. Teraz, aby uzyskać dostęp do partycji, które musimy zrzucić, będziesz potrzebować dostępu administratora. Aby to zrobić, wpisz następujące polecenie:

 su 

Symbol przed nazwą kodową urządzenia powinien zmienić się z $ na #, wskazując, że możesz teraz uruchamiać polecenia z podwyższonymi uprawnieniami. Uważaj teraz!

Następnie ustalimy dokładną lokalizację obrazu bootloadera urządzenia. Aby znaleźć dokładny katalog, wydrukujemy listę wszystkich partycji i ich katalogów według nazwy, i szukamy konkretnej o nazwie „ aboot”. Musisz wprowadzić dwa polecenia w następujący sposób:

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

Jak widać powyżej, drukowana jest ogromna lista katalogów partycji. Te partycje są sortowane według nazwy, dzięki czemu możemy łatwo rozpoznać lokalizację naszej partycji bootloadera. W moim przypadku program ładujący, który jest pokazany na powyższym obrazie, można znaleźć pod adresem / dev / block / mmcblk0p10. Różni się to w zależności od urządzenia, dlatego ważne jest, aby postępować zgodnie z tymi instrukcjami, aby dowiedzieć się, jaki jest prawdziwy katalog, w którym znajduje się bootloader. Zwróć jednak uwagę na ten katalog, ponieważ odwołamy się do niego w następującym poleceniu, aby zrzucić bootloader:

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

Po pomyślnym zakończeniu powinieneś znaleźć plik o nazwie „ aboot.img ” znajdujący się w katalogu głównym pamięci wewnętrznej. Teraz, gdy zrzuciliśmy bootloader, musimy go zbadać, aby ustalić, jakie ukryte polecenia możemy znaleźć.


Ukryte polecenia Fastboot i ich zastosowania

Możesz być zaznajomiony z niektórymi bardziej popularnymi poleceniami fastboot, takimi jak fastboot flash lub fastboot boot. Istnieje wiele innych poleceń szybkiego uruchamiania zdefiniowanych w protokole szybkiego uruchamiania typu open source. Oto lista poleceń szybkiego uruchamiania dostępnych na każdym urządzeniu z programem ładującym opartym na najnowszym kodzie AOSP:

Brakuje na tej liście poleceń OEM Fastboot. Te polecenia są specyficzne dla producentów urządzeń z Androidem i nigdzie nie ma wyczerpującej listy ani dokumentacji dotyczącej dostępnych poleceń OEM Fastboot. Teraz, jeśli producent urządzenia był na tyle uprzejmy, że dostarczył komendę fastboot, która zawiera listę wszystkich komend oem (wypróbuj fastboot oem? I sprawdź, czy to działa), nie musisz nic więcej robić. Jeśli nie ma żadnego polecenia drukującego listę dostępnych poleceń OEM Fastboot, musisz wydrukować listę ciągów z pliku aboot.img i ręcznie wyszukać polecenia OEM.

„ciągi” to komenda linux, której dokumentacja jest dostępna tutaj. Jak widać, osobiście korzystam z komputera z systemem Windows, więc zamiast tego korzystam z programu naśladującego „łańcuchy” z Linuksa. Surowe dane wyjściowe polecenia „strings” w pliku aboot.img będą dość nieuporządkowane, ale jeśli po prostu CTRL + F dla „oem”, powinieneś znaleźć to, czego potrzebujesz. Jeśli chcesz zawęzić wyszukiwanie, możesz wypróbować to polecenie (dla wersji systemu Windows, którą podłączyłem):

 strings * | findstr /i oem 

Dla Nexusa 6P skompilowałem następującą listę poleceń OEM Fastboot:

 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 

Ostrzegamy, że nie powinieneś próbować wykonywać żadnych z powyższych poleceń ani żadnych poleceń wykrytych na urządzeniu, chyba że zechcesz zaakceptować ryzyko. Istnieje powód, dla którego te polecenia są ukryte przed użytkownikiem.

To powiedziawszy, pomyślałem o fajnych zastosowaniach dla niektórych z tych poleceń szybkiego uruchamiania, które znalazłem (które mogą, ale nie muszą być obecne na twoim urządzeniu, więc postępuj zgodnie z instrukcjami powyżej, aby to sprawdzić!), Które powinny spodobać się najbardziej hardcorowemu Androidowi entuzjasta. Są tutaj dwa polecenia, które mogą mieć praktyczne zastosowanie.

Najpierw jest polecenie fastboot oem (włącz | wyłącz) -charger-screen . Powoduje to wyłączenie ekranu ładowania, który pojawia się po wyłączeniu urządzenia. Jeśli nie jesteś fanem oślepiającej jasności ekranu ładowania, gdy telefon jest wyłączony, możesz go wyłączyć za pomocą tego ukrytego polecenia szybkiego uruchamiania!

Następnie dostępna jest komenda fastboot oem off-mode-charge (enable | disable) . To polecenie określa, czy urządzenie włączy się automatycznie po wykryciu źródła zasilania. Domyślnie jest ustawione na „wyłącz”. Przyznaję, że to polecenie nie ma większego zastosowania dla telefonów, ale jeśli planujesz zamontować tablet w desce rozdzielczej samochodu, przekonasz się, że to polecenie jest niezwykle przydatne. Będziesz mógł ustawić urządzenie tak, aby włączało się natychmiast po otrzymaniu zasilania tabletu, na przykład po uruchomieniu akumulatora samochodowego. Z drugiej strony dość łatwo jest wyłączyć tablet w przypadku utraty zasilania za pomocą aplikacji do automatyzacji, takiej jak Tasker. Nawiasem mówiąc, to polecenie działa dokładnie tak, jak napisano na Nexusie 7 (2013).


To tyle w przypadku tej lekcji na temat dostosowywania Androida. Podziel się poleceniami, które odkryłeś (najlepiej w linku do wklejania) w komentarzach poniżej!

Podziękowania dla Senior Recognized Developer Dees_Troy za pomoc w tworzeniu tego artykułu!