[Bada Software and Hacking General] DevilM:
Ciao a tutti,

Molte persone si sono lamentati del bootloader onda la chiusura e che essere grave problema per lo sviluppo di OS alternativi.

Ho dato un'occhiata più da vicino il processo di avvio e vorrei contribuire mie osservazioni alla comunità. Avrò poco tempo (accanto a nessuno) per lavorare ulteriormente, così mi piacerebbe che qualcuno di prendere da questo punto.

OK, ha detto che posso introdurre a cosa ho trovato:

Il processo d'avvio inizia con l'inizializzazione dell'hardware, interruzioni, ecc e arriva alla selezione della modalità di avvio. Questo è il posto che controlla i problemi combinazione di tasti, JIG e possibile. Sulla base di questo il bootloader verrà eseguito il telefono in entrambe le modalità di avvio normale, andare a scaricare o caricare modalità.

Avvio normale inizia con il controllo del modulo FOTA. Se hai già provato a lampeggiare il telefono è probabilmente notato che alcune versioni del FW includere un file con estensione *. FOTA. Il file è crittografato e non firmato. Si tratta di circa 2 MB, ma si riserva il bootloader esattamente 3 MB per esso. FOTA è destinato ad essere utilizzato per l'aggiornamento del firmware over the air, ma non so nulla che venga usata per Wave. Si può leggere qualcosa sul design e ottenere un concetto di quel processo qui:

http://www.freepatentsonline.com/pdf...0100175062.pdf

Fondamentalmente, è possibile che l'avvio sarebbe necessario eseguire alcune azioni che sono il risultato della FOTA. Pertanto, durante l'avvio normale che legge il modulo FOTA dalla NAND (0xC600000) e controlla se il modulo esiste ed è nella versione giusta. Che viene fatto il controllo di una magia (testo "FOTA_ENGINE_VER_INFO_2.0") sotto la 0xC600100. Se si trova o non sono corrette si finirà con il messaggio "Motore FOTA non è intalled" o "mancata corrispondenza del motore FOTA versione" sullo schermo e sarà necessario riavviare il telefono in modalità download per caricarlo.

Dopo di che, il codice verifica di ulteriori valori magia 0xC880000. Nel caso in cui è "BPDZ" salta al codice nel file FOTA. Il contenuto del file viene caricato nella RAM posizione 0x43800000 ed eseguito da lì.

Ho fatto un esperimento come un proof-of-concept e avere una conferma che quanto sopra è informazione vera e valida. Ho realizzato un file FOTA più che l'allegato al solito (per essere più grande di 2,5 MB). Nel caso si voglia ripetere che, ricordiamo che lo scorso 1024 byte non vengono caricati e inserire ulteriori dati prima. Il mio file ha due valori magici:

"FOTA_ENGINE_VER_INFO_2.0" alla 0x100 offset e "BPDZ" a 0x280000. All'offset 0 ho messo il mio codice che è iniziato con PON diversi (nel caso) e codice che ha chiamato le funzioni bootloader originale per visualizzare il testo sullo schermo.

Dopo aver caricato il file con Multiloader, il messaggio è apparso sullo schermo come previsto. Ricaricamento del file originale FOTA fatto il boot telefono normalmente.

La scoperta apre la vasta area di possibilità di partire con la sostituzione del bootloader senza firmarlo o utilizzando JTAG, multiboot, ecc

Come il bootloader originale è nella memoria come bene, possiamo usarlo, ma io non consiglierei questo approccio come avremmo bisogno di un ulteriore controllo delle versioni e cambiare routine originali e gli indirizzi dati per ogni versione.

OK. Spero chiarito abbastanza per capire, ma posso chiarire ciò che avrei potuto omesso nella descrizione. L'idea è che qualcuno qui che prendeva da dove ho finito e sviluppare un caricatore decente lasciando i file originali (a parte FOTA) intatta.

Cordiali saluti,

mijoma

---------- Post added at 11:27 AM ---------- Previous post was at 11:23 AM ----------

link ? su bada 2.0 funziona ?

link? bay of 2.0 works?