Come scoprire i comandi di avvio rapido nascosti

Ci sono molti comandi di avvio rapido nascosti sul tuo dispositivo. Per trovarli dovremo scaricare il bootloader ed esaminarne il contenuto!

Nella mia ricerca per scoprire quanto più possibile sulla personalizzazione di Android, ho fatto molte scoperte oscure ma interessanti. Ti ho mostrato come accedere menu nascosti sul tuo dispositivo spulciando tutte le attività delle applicazioni nascoste sul tuo telefono. Più recentemente, ti ho mostrato come accedere a strumento diagnostico hardware nascosto su alcuni smartphone. Ora, mi rendo conto che alcuni di voi sono rimasti delusi dal fatto che il proprio smartphone non fosse trattato nell'articolo precedente, e me ne scuso.

Per rimediare, ti guiderò attraverso qualcosa di molto, molto più avanzato ed emozionante: scarica il bootloader del tuo dispositivo per scoprire i comandi di avvio rapido nascosti. Questa guida, anche se fatta sul mio Nesso 6P, è sicuramente replicabile sulla maggior parte degli smartphone. Tuttavia, i comandi a cui avrai accesso varieranno in modo significativo tra i dispositivi. La maggior parte dei comandi non ti aiuterà davvero in nessuna situazione reale, ma è comunque piuttosto interessante immergerti così in profondità nelle impostazioni del tuo telefono. Iniziamo.

Dichiarazione di non responsabilità: finché sai cosa stai facendo e puoi seguire le istruzioni in modo appropriato, non dovrebbe accadere nulla di male al tuo dispositivo. Ma stiamo ancora giocando con le partizioni del nostro dispositivo e il bootloader, quindi non si può dire cosa potrebbe succedere se inserisci il comando sbagliato. Assicurati di avere un backup esterno al dispositivo pronto!


Preparazione

Prima di iniziare, c'è una cosa davvero importante da notare. Per estrarre il bootloader del tuo dispositivo, avrai bisogno dell'accesso root sul tuo telefono. Se non hai accesso root, puoi continuare a leggere questa guida per scopi didattici, ma non sarai in grado di eseguire nessuno dei comandi necessari. Capito? Bene. Un altro prerequisito che dovrai soddisfare è garantire che il tuo computer disponga di tutto driver ADB/fastboot corretti. Se non disponi dei binari ADB/fastboot, ti consiglio di installarli ADB minimo e avvio rapido dai nostri forum. Per quanto riguarda i driver, puoi procurarti i driver necessari per i dispositivi Google Nexus Qui e per tutti gli altri dispositivi da Qui. Come fai a sapere se sei a posto? Collega il tuo dispositivo, abilita il debug USB in Impostazioni sviluppatore, apri un prompt dei comandi e digita:

adb devices

Se vedi apparire il numero di serie del tuo dispositivo, hai i driver giusti.


Dumping del Bootloader

Il nostro primo passo è aprire una shell sul nostro dispositivo in modo da poter eseguire comandi su ADB. È meglio eseguire comandi su ADB perché siamo molto più inclini a commettere errori quando digitiamo su una tastiera virtuale e commettere errori non è qualcosa che vuoi fare qui. Il primo comando da eseguire nel prompt dei comandi è:

adb shell

Se vedi che il prompt dei comandi cambia dalla visualizzazione della directory binaria ADB alla visualizzazione del nome in codice per il tuo dispositivo Android, hai inserito correttamente la shell della riga di comando locale del tuo dispositivo. Ora, per accedere alle partizioni di cui dobbiamo eseguire il dump, avrai bisogno dell'accesso da superutente. Per fare ciò, digitare quanto segue:

su

Il simbolo davanti al nome in codice del tuo dispositivo dovrebbe cambiare da $# indicando che ora puoi eseguire comandi con privilegi elevati. Stai attento adesso!

Successivamente, scopriremo la posizione esatta dell'immagine del bootloader del tuo dispositivo. Per trovare la directory esatta, stamperemo un elenco di tutte le partizioni e le relative directory per nome e ne cercheremo una in particolare chiamata 'uno stivale.' Dovrai inserire due comandi come segue:

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

Come puoi vedere sopra, viene stampato un enorme elenco di directory delle partizioni. Queste partizioni sono ordinate per nome, quindi possiamo facilmente discernere la posizione della nostra partizione del bootloader. Nel mio caso, il bootloader, che è 'uno stivale' nell'immagine sopra, può essere trovato in /dev/block/mmcblk0p10. Questo varierà a seconda del tuo dispositivo, quindi è importante seguire queste istruzioni per capire la vera directory in cui si trova il tuo bootloader. Prendi nota di questa directory, tuttavia, poiché vi faremo riferimento nel comando seguente per eseguire il dump del bootloader:

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

Una volta riuscito, dovresti trovare un file chiamato 'aboot.img' situato nella radice della memoria interna. Ora che abbiamo scaricato il bootloader, dobbiamo esaminarlo per determinare quali comandi nascosti possiamo trovare.


Comandi di avvio rapido nascosti e loro utilizzo

Potresti avere familiarità con alcuni dei comandi di avvio rapido più comuni, come flash di avvio rapido avvio rapido. Esistono molti altri comandi di avvio rapido come definiti nel file protocollo di avvio rapido open source. Ecco un elenco dei comandi fastboot disponibili su ogni dispositivo con un bootloader basato sull'ultimo codice AOSP:

Ciò che manca in questo elenco è il fastboot oem comandi. Questi comandi sono specifica ai produttori di dispositivi Android e non esiste un elenco completo o documentazione da nessuna parte per quali comandi fastboot oem siano disponibili. Ora, se il produttore del tuo dispositivo è stato così gentile da fornire un comando fastboot che elenca tutti i comandi oem (prova avvio rapido originale? e vedere se funziona), non sarà necessario fare altro. Se non è presente alcun comando che stampi un elenco dei comandi fastboot oem disponibili, dovrai stampare un elenco di stringhe da aboot.img e cercare manualmente i comandi oem.

'strings' è un comando Linux, la cui documentazione è disponibile qui. Come puoi vedere, personalmente utilizzo una macchina Windows, quindi invece ho utilizzato a programma che imita le "stringhe" di Linux. L'output grezzo del comando 'strings' su un file aboot.img sarà abbastanza disordinato, ma se premi semplicemente CTRL+F per "oem" dovresti trovare ciò di cui hai bisogno. Se vuoi affinare la ricerca, puoi provare questo comando (per la versione Windows che ho linkato):

strings * | findstr /i oem

Per il Nexus 6P, ho compilato il seguente elenco di comandi 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

Tieni presente che non dovresti tentare nessuno dei comandi di cui sopra o nessuno dei comandi che scopri sul tuo dispositivo, a meno che tu non sia disposto ad accettare i rischi. C'è una ragione per cui questi comandi sono nascosti all'utente.

Detto questo, ho pensato ad alcuni usi interessanti per alcuni di questi comandi di avvio rapido che ho trovato (che potrebbero essere o meno presente sul tuo dispositivo, quindi segui le istruzioni sopra per verificare!) che dovrebbe piacere all'Android più hardcore appassionato. Ci sono due comandi qui che potrebbero avere qualche utilità pratica.

Il primo è il fastboot oem (abilita|disabilita)-schermata-caricabatterie comando. Ciò che fa è disabilitare la schermata di ricarica che appare quando il dispositivo è spento. Se non sei un fan della luminosità accecante dello schermo di ricarica quando il telefono è spento, puoi disabilitarlo tramite questo comando fastboot nascosto!

Poi c'è il fastboot oem off-mode-charge (abilita|disabilita) comando. Questo comando determina se il dispositivo si accenderà automaticamente o meno quando viene rilevata una fonte di alimentazione. Per impostazione predefinita, è impostato su "disabilita". Devo ammettere che questo comando non è di grande utilità per i telefoni, ma if stai pensando di montare il tuo tablet sul cruscotto della tua auto, troverai questo comando incredibilmente utile. Potrai impostare il dispositivo in modo che si accenda immediatamente quando il tablet riceve alimentazione, ad esempio quando si avvia la batteria dell'auto. Al contrario, è abbastanza semplice spegnere il tablet in caso di interruzione dell'alimentazione utilizzando un'app di automazione come Tasker. Questo comando, tra l'altro, funziona esattamente come scritto sul file Nesso7 (2013).


Questo è tutto per questa lezione sulla personalizzazione di Android. Condividi i comandi che scopri (idealmente in un collegamento pastebin) nei commenti qui sotto!

Grazie allo sviluppatore riconosciuto senior XDA Dees_Troy per il suo aiuto nella realizzazione di questo articolo!