Hoe verborgen Fastboot-opdrachten te ontdekken

In mijn zoektocht om zoveel mogelijk te weten te komen over Android-aanpassing, heb ik veel obscure, maar toch interessante ontdekkingen gedaan. Ik heb je laten zien hoe je toegang krijgt tot verborgen menu's op je apparaat door alle verborgen toepassingsactiviteiten op je telefoon te doorzoeken. Meer recent heb ik je laten zien hoe je toegang krijgt tot het diagnostisch hulpprogramma voor verborgen hardware op bepaalde smartphones. Nu realiseer ik me dat sommigen van u teleurgesteld waren in het feit dat uw smartphone niet werd behandeld in het vorige artikel, en mijn excuses daarvoor.

Om het goed te maken, ga ik je door iets veel, veel geavanceerder en opwindends: de bootloader van je apparaat dumpen om verborgen fastboot-opdrachten te ontdekken . Deze handleiding, hoewel gedaan op mijn Nexus 6P, is zeker repliceerbaar op de meeste smartphones. Welke opdrachten u echter wel kunt gebruiken, verschilt aanzienlijk tussen apparaten. De meeste opdrachten helpen je niet echt in een echte situatie, maar toch is het best interessant om zo diep in de instellingen van je telefoon te duiken. Laten we beginnen.

Disclaimer: zolang je weet wat je doet en de instructies op de juiste manier kunt volgen, mag er niets ergs gebeuren met je apparaat. Maar we zijn nog steeds aan het rommelen met onze apparaatpartities en de bootloader, dus we weten niet wat er zou kunnen gebeuren als je het verkeerde commando invoert. Zorg dat je een off-device back-up bij de hand hebt!


Voorbereiding

Voordat we beginnen, is er een heel, heel belangrijk ding om op te merken. Om de bootloader van je apparaat te extraheren, heb je root-toegang op je telefoon nodig. Als u geen root-toegang hebt, kunt u deze handleiding voor educatieve doeleinden blijven lezen, maar kunt u geen van de benodigde opdrachten uitvoeren. Heb het? Is goed. Een andere voorwaarde waaraan u moet voldoen, is ervoor zorgen dat uw computer over alle juiste ADB / fastboot-stuurprogramma's beschikt . Als je de ADB / fastboot-binaries niet hebt, raad ik aan Minimal ADB & Fastboot te installeren vanaf onze forums. Wat betreft de stuurprogramma's, u kunt hier de benodigde stuurprogramma's voor Google Nexus-apparaten ophalen en voor alle andere apparaten vanaf hier. Hoe weet je of je klaar bent om te gaan? Sluit uw apparaat aan, schakel USB-foutopsporing in onder Instellingen ontwikkelaar, open een opdrachtprompt en typ:

 adb devices 

Als u het serienummer van uw apparaat ziet verschijnen, hebt u de juiste stuurprogramma's.


De bootloader dumpen

Onze eerste stap is om een ​​shell op ons apparaat te openen, zodat we opdrachten via ADB kunnen uitvoeren. Het is het beste dat we commando's uitvoeren via ADB omdat we veel gevoeliger zijn om fouten te maken bij het typen op een virtueel toetsenbord, en fouten maken is niet iets dat je hier wilt doen. De eerste opdracht die u in uw opdrachtprompt moet uitvoeren, is:

 adb shell 

Als u de opdrachtprompt ziet veranderen van de weergave van de binaire ADB-map in de codenaam voor uw Android-apparaat, hebt u de lokale opdrachtregelhell van uw apparaat ingevoerd. Nu, om toegang te krijgen tot de partities die we moeten dumpen, heb je superuser-toegang nodig. Typ hiervoor het volgende:

 su 

Het symbool voor de codenaam van uw apparaat zou moeten veranderen van $ in # om aan te geven dat u nu opdrachten met verhoogde rechten kunt uitvoeren. Wees nu voorzichtig!

Vervolgens zullen we de exacte locatie van de bootloader-afbeelding van uw apparaat achterhalen. Om de exacte map te vinden, drukken we een lijst van alle partities en hun mappen op naam af en zoeken we naar een in het bijzonder genaamd ' aboot'. U moet als volgt twee opdrachten invoeren:

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

Zoals u hierboven kunt zien, wordt een gigantische lijst met partitiemappen afgedrukt. Deze partities zijn gesorteerd op naam, zodat we gemakkelijk de locatie van onze bootloader-partitie kunnen onderscheiden. In mijn geval is de bootloader, die in de bovenstaande afbeelding 'aboot', te vinden op / dev / block / mmcblk0p10. Dit is afhankelijk van je apparaat, dus het is belangrijk dat je deze instructies volgt om de ware map te achterhalen waar je bootloader zich bevindt. Let echter op deze map, want we zullen ernaar verwijzen in de volgende opdracht om de bootloader te dumpen:

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

Zodra dit is gelukt, moet u een bestand met de naam ' aboot.img ' vinden in de hoofdmap van uw interne opslag. Nu we de bootloader hebben gedumpt, moeten we deze onderzoeken om te bepalen welke verborgen opdrachten we kunnen vinden.


Verborgen Fastboot-opdrachten en hun gebruik

Je bent misschien bekend met enkele van de meest voorkomende fastboot-opdrachten, zoals fastboot flash of fastboot boot. Er zijn veel meer fastboot-opdrachten zoals gedefinieerd in het open source fastboot-protocol. Hier is een lijst van de fastboot-opdrachten die beschikbaar zijn op elk apparaat met een bootloader op basis van de nieuwste AOSP-code:

Wat in deze lijst ontbreekt, zijn fastboot oem- opdrachten. Deze opdrachten zijn specifiek voor fabrikanten van Android-apparaten en er is nergens een uitgebreide lijst of documentatie beschikbaar voor welke Fastboot OEM-opdrachten beschikbaar zijn. Als de fabrikant van uw apparaat nu zo vriendelijk was om een ​​fastboot-opdracht te geven met alle oem-opdrachten (probeer fastboot oem? En kijk of dat werkt), hoeft u verder niets te doen. Als er geen opdracht is die een lijst met beschikbare fastboot oem-opdrachten afdrukt, moet u een lijst met tekenreeksen van aboot.img afdrukken en handmatig naar de oem-opdrachten zoeken.

'strings' is een linux-commando, waarvan de documentatie hier beschikbaar is. Zoals je kunt zien, gebruik ik persoonlijk een Windows-machine, dus in plaats daarvan heb ik een programma gebruikt dat 'strings' van Linux nabootst. De ruwe uitvoer van de opdracht 'strings' op een aboot.img-bestand zal behoorlijk rommelig zijn, maar als u gewoon CTRL + F voor 'oem' gebruikt, moet u vinden wat u nodig hebt. Als u uw zoekopdracht wilt verfijnen, kunt u deze opdracht proberen (voor de Windows-versie die ik heb gekoppeld):

 strings * | findstr /i oem 

Voor de Nexus 6P heb ik de volgende lijst met fastboot oem-opdrachten samengesteld:

 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 

Wees gewaarschuwd dat u geen van de bovenstaande opdrachten of opdrachten op uw apparaat mag proberen, tenzij u bereid bent de risico's te accepteren. Er is een reden waarom deze opdrachten verborgen zijn voor de gebruiker.

Dat gezegd hebbende, ik heb een aantal nette toepassingen bedacht voor sommige van deze fastboot-opdrachten die ik heb gevonden (die al dan niet op je apparaat aanwezig zijn, dus volg de instructies hierboven om te controleren!) Die de meest hardcore Android leuk zouden vinden liefhebber. Er zijn hier twee commando's die praktisch kunnen worden gebruikt.

Eerst komt de opdracht fastboot oem (enable | disable) -charger-screen . Wat dit doet, is het laadscherm uitschakelen dat verschijnt wanneer uw apparaat is uitgeschakeld. Als je geen fan bent van de verblindende helderheid van het oplaadscherm wanneer je telefoon is uitgeschakeld, kun je deze uitschakelen via dit verborgen fastboot-commando!

Vervolgens is er de opdracht fastboot oem off-mode-charge (enable | disable) . Deze opdracht bepaalt of uw apparaat automatisch wordt ingeschakeld wanneer een stroombron wordt gedetecteerd. Standaard is deze ingesteld op 'uitschakelen'. Ik geef toe dat deze opdracht niet veel gebruikt voor telefoons, maar als je van plan bent je tablet in het dashboard van je auto te monteren, zul je deze opdracht ongelooflijk nuttig vinden. U kunt uw apparaat zo instellen dat het onmiddellijk wordt ingeschakeld wanneer de tablet stroom ontvangt, bijvoorbeeld wanneer de batterij van uw auto wordt opgestart. Omgekeerd is het vrij eenvoudig om de tablet uit te schakelen wanneer de stroom uitvalt met behulp van een automatiserings-app zoals Tasker. Dit commando werkt trouwens precies zoals geschreven op de Nexus 7 (2013).


Dat is het voor deze les in Android-aanpasbaarheid. Deel de opdrachten die u ontdekt (idealiter via een link in het venster) in de reacties hieronder!

Dank aan Senior Erkende Ontwikkelaar Dees_Troy voor zijn hulp bij het maken van dit artikel!