CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: complicazio con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 10 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Pagina 1 di 25 12311 ... ultimoultimo
Ultima pagina
Visualizzazione dei risultati da 1 a 10 su 249
Discussione:

[GUIDA][HOW TO] Partizioni e Ripartizione cellulari mediatek (struttura e come fare)

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Sviluppatore Android L'avatar di PaoloW8


    Registrato dal
    Mar 2013
    Messaggi
    6,401
    Smartphone
    NUBIA Z7 MAX, ZOPO 990 (morto)

    Ringraziamenti
    404
    Ringraziato 3,142 volte in 1,779 Posts
    Predefinito

    [GUIDA][HOW TO] Partizioni e Ripartizione cellulari mediatek (struttura e come fare)

    dopo svariate ricerche su internet (poco fruttuose) ho deciso di scrivere questa guida per chi come me è curioso e vuole capire la meccanica che c'è dietro al partizionamento dei cellulari MTK e non limitarsi a usare semplicemente dei file per ripartizionare preesistenti (se ne trovano diversi su internet)

    premetto che ci sono arrivato più tramite analisi di file esistenti che informazioni "sicure" trovate su internet quindi potrebbero benissimo esserci degli errori
    premetto anche che i test e le verifiche le ho fatte sullo zopo 990 quindi un MT6589T, non sono sicuro che per i precedenti dual core oppure nei prossimi octacore sia valido quello che scriverò qui di seguito.

    iniziamo con il dire che i file MBR, EBR1 e EBR2 sono semplicemente dei file binari in formato master boot record quindi con una logica ben definita

    quello che ci serve per poter analizzare e editare questi file è un editor esadecimale, in windows io uso HxD

    ai fini del ripartizionamento della partizione /data (e quindi di conseguenza della sd interna) bisognerà modificare i file EBR1 e EBR2, il file MBR non verrà toccato ma spiego dall'inizio la logica di tutto partendo proprio dal MBR.

    iniziamo con l'eseguire un comando sul cell (o tramite terminal emulator o tramite adb shell) per vedere le partizioni presenti:

    codice:
    cat /proc/emmc
    che sul mio cellulare (ripartizionato con 4GB di /data) mi restituisce questo risultato:
    codice:
    partno:    start_sect   nr_sects  partition_name
    emmc_p1: 00000400 00000002 "ebr1"
    emmc_p2: 00006800 00005000 "protect_f"
    emmc_p3: 0000b800 00005000 "protect_s"
    emmc_p4: 00016c00 00003000 "sec_ro"
    emmc_p5: 00020c00 00145000 "android"
    emmc_p6: 00165c00 0003f000 "cache"
    emmc_p7: 001a4c00 00800000 "usrdata"
    emmc_p8: 009a4c00 0308dd00 "fat"
    ogni file boot record contiene i dati di 4 partizioni quindi nel MBR troveremo i dati delle prime 4 "ebr1", "protect_f", "protect_s", "sec_ro"

    analizziamo il contenuto del MBR



    quello che ci interessa sono le 4 righe a partire dall'offset 000001C0
    ogni riga rappresenta una partizione, ricordo che la notazione è in esadecimale in little endian e cioè vengono scritti al contrario (il byte più significativo è a destra, per scrivere AABBCCDD si scrive DDCCBBAA)
    start address è il settore da dove parte la partizione e la dimensione della partizione è indicata in blocchi (ogni blocco è 512 byte)
    gli ultimi 2 byte della quarta riga (55 AA) indicano la fine del boot record

    guardando l'output del comando cat /proc/emmc e il contenuto del MBR possiamo vedere le corrispondenze (a parte la partizione ebr1 che viene indicata come dimensione FFFFFFFF che non so spiegare )
    per esempio guardiamo la "sec_ro" (la quarta partizione), il comando ci dice start 00016c00 e blocchi 00003000, nell'immagine start 006C0100 che girato è 00016C00 e blocchi 00300000 che girato è 00003000 quindi corrispondono

    bene, questo era per far capire come funziona la logica che c'è dietro...adesso andiamo a analizzare i file EBR1 e EBR2 che sono quelli che bisognerà realmente modificare per ridimensionare la /data



    nel MBR siamo arrivati alla partizione "sec_ro" quindi continuando nel file EBR1 si parte con la "android" (la system), "cache" e "usrdata" (la famosa /data dove si installano le app)
    la quarta partizione nel file EBR1 non è la "fat" ma la ebr2

    qui le cose si complicano un pelino perchè essendo inserite nel file EBR1 per avere un riscontro con l'output del comando c'è un offset da applicare (lo start sector della partizione ebr1 e quindi 00000400 che togliendo gli zeri non significativi diventa 400)
    prendiamo ad esempio la terza partizione (la "userdata"), il comando ci dice start 001a4c00 e blocchi 00800000
    nell'immagine leggiamo start 00481A00 quindi 001A4800 e aggiungendo l'offset 400 otteniamo 001A4C00 che corrisponde al comando
    i blocchi 00008000 che girato è 00800000 e corrisponde anche questo

    passiamo alla partizione "fat" presente nel EBR2



    come per l'EBR1 anche nel EBR2 abbiamo un offset da sommare, l'offset lo ricaviamo direttamente dal file EBR1 alla quarta riga ed è l'indirizzo di partenza della partizione, dall'immagine vediamo che è 00B40100...girato diventa 0001B400 e senza gli zeri non significativi 1B400, questo sarà il nostro offset per il file EBR2

    lo start della partizione "fat" corrisponde allo start della partizione "usrdata" + dimensione partizione "usrdata" - l'offset del EBR2 (in questo caso 1B400)
    nel file EBR2 leggiamo che lo start della fat è 00949800
    dal file EBR1 vediamo lo start "usrdata" (lo scrivo già girato per comodità) 001A4800 e blocchi 00800000, li sommiamo e togliamo l'offset 001A4800+0080000-1B400=00989400 che girato corrisponde allo start del EBR2 00949800
    la dimensione riportata nel EBR2 non è quella reale ma corrisponde a FFFFFFFF - lo start della "fat" - l'offset....questo sta praticamente a indicare "fino alla fine dello spazio disponibile"
    FFFFFFFF-00940800-1B400=FF65B7FF che girato fa FFB765FF e corrisponde perfettamente al file EBR2

    *******************************

    fino ad adesso abbiamo guardato i file reali da 4GB, facciamo invece un esempio pratico per portare la /data a 10GB

    iniziamo a calcolare quanti blocchi sono 10GB
    10*1024*1024*1024/512=20971520 che in esadecimale corrisponde a 01400000 che in little endian diventa 00004001
    visto che la partizione parte sempre dallo stesso punto nella terza riga del EBR1 cambieremo solo la dimensione in blocchi
    da:
    codice:
    00 00 83 00 00 00 00 48 1A 00 00 00 80 00 00 00
    a:
    codice:
    00 00 83 00 00 00 00 48 1A 00 00 00 40 01 00 00
    ovviamente avendo aumentato la partizione /data di conseguenza dobbiamo diminuire la partizione fat e qui entra in gioco il file EBR2
    abbiamo detto che lo start della partizione fat è lo start+dimensione della partizione "usrdata" - l'offset del EBR2
    quindi start=001A4800+01400000-1B400=01589400 che in little endian è 00945801
    e i blocchi sono FFFFFFFF-01589400-1B400=FEA5B7FF che in little endian é FFB7A5FE

    quindi bisogna modificare la prima riga del EBR2 da:
    codice:
    00 00 83 00 00 00 00 94 98 00 FF B7 65 FF 00 00
    a:
    codice:
    00 00 83 00 00 00 00 94 58 01 FF B7 A5 FE 00 00
    ecco fatta la partizione da 10GB

    *******************************

    ok dopo tutto questo spiegone (probabilmente pure spiegato male, scusate ma ho scritto tutto di getto) vi avverto che ho preparato un foglio elettronico che fa tutti i calcoli per voi e indica come modificare i file EBR1 e EBR2
    scusate per l'impaginazione ma sono secoli che non uso un foglio elettronico...ho usato libreoffice quindi è salvato nel suo formato, se serve in altri formati comunicatemelo che provvedo a convertirlo (se in libreoffice è previsto il formato)

    per usare questo foglio elettronico dovrete solo impostare i GB che volete avere come partizione /data, l'offset del EBR2 (ricavabile come ho spiegato prima dal file EBR1) e l'indirizzo di start della partizione /data (ricavabile sempre dal file EBR1 come detto prima)
    impostati questi 3 valori il foglio calcolerà tutto automaticamente, ecco uno screenshot di esempio:



    i 3 campi cerchiati di rosso sono i 3 valori da impostare

    DOWNLOAD:
    formato libreoffice Partizioni.ods
    formato excel Partizioni.xls

    ricordo che una volta modificati i file EBR1 e EBR2 vanno flashati sul cellulare o tramite flashtools oppure tramite la custom recovery con un apposito zip, se serve posso postarne uno di esempio.

    RIPARTIZIONARE VUOL DIRE formattare sia la /data che la sd interna quindi prima di procedere è necessario fare un backup completo del cellulare (anche della memoria sd interna) se non si vogliono perdere le ventuali foto/musica/video/etc oltre alle app e impostazioni

    Non mi assumo nessuna responsabilità per eventuali danni
    Ultima modifica di PaoloW8; 02-01-14 alle 12:31
    Nubia Z7MAX
    rom compilate da me: CM 12.1, BlissPop, CarbonROM

  2. I seguenti 28 Utenti hanno ringraziato PaoloW8 per il post:

    alexanzald (15-04-14),aluzzo (22-12-14),biobio (28-12-13),danieled82 (02-05-14),daxxxit (11-05-15),devilzwolit (24-03-14),Etrius (02-02-14),ghost45 (28-12-13),igor76 (11-03-15),ilflap (20-08-14),kidpollos (15-01-14),Lemi560 (23-01-14),lklancillotto (28-12-13),Marbas62 (16-01-14),marco70it (27-12-13),marsapa (27-12-13),MrElbarto (09-01-15),nescio (07-08-14),nuketruki (27-12-13),pasteca (06-09-14),Patybello (23-03-14),redone (23-03-14),Sampierdarena (27-12-13),TaekwonV (03-01-14),tajima (10-02-14),toty30 (22-02-14),unico2003 (03-01-15)

  3.  
  4. #2
    Sviluppatore Android L'avatar di PaoloW8


    Registrato dal
    Mar 2013
    Messaggi
    6,401
    Smartphone
    NUBIA Z7 MAX, ZOPO 990 (morto)

    Ringraziamenti
    404
    Ringraziato 3,142 volte in 1,779 Posts
    Predefinito

    perchè ho scritto questa guida ?
    perchè non è assolutamente scontato che i file ebr1 e ebr2 modificati che si trovano su internet vadano bene su tutti i cellulari.

    l'esistenza di determinate partizioni e la dimensione delle stesse (cache, android, ebr1, protect_f, etc etc) potrebbe variare da cellulare a cellulare, lo stesso vale per gli start address di ognuna e quindi relativi offset.

    molto meglio modificare ad hoc i file ebr1 e ebr2 originali del proprio cellulare così si ha (quasi) la certezza di avere un ripartizionamento funzionante...con questa guida ho cercato di rendere la cosa il più semplice possibile a tutti (anche grazie al foglio di calcolo che fa il "lavoro sporco" in automatico )
    Ultima modifica di PaoloW8; 29-12-13 alle 20:14
    Nubia Z7MAX
    rom compilate da me: CM 12.1, BlissPop, CarbonROM

  5. #3
    Sviluppatore Android L'avatar di PaoloW8


    Registrato dal
    Mar 2013
    Messaggi
    6,401
    Smartphone
    NUBIA Z7 MAX, ZOPO 990 (morto)

    Ringraziamenti
    404
    Ringraziato 3,142 volte in 1,779 Posts
    Predefinito

    riservato per usi futuri 2
    Nubia Z7MAX
    rom compilate da me: CM 12.1, BlissPop, CarbonROM

  6. #4
    Baby Droid


    Registrato dal
    Oct 2012
    Messaggi
    20

    Ringraziamenti
    7
    Ringraziato 6 volte in 6 Posts
    Predefinito

    ...sai che c'è mi sei piaciuto!! premetto che con le apk preconfezionate e con gli ebr predisposti da altri non ha funzionato. modificato gli ebr con le indicazioni del tuo tool e installati con flahtool. al primo riavvio giusta la userdata non montava la memoria del telefono. Riavviato in cwm recovry e fatto i tre wipe, adesso c'è tutto, domani installo le app e vi aggiorno. Buonanotte, ed ancora grazie.

  7. #5
    Sviluppatore Android L'avatar di PaoloW8


    Registrato dal
    Mar 2013
    Messaggi
    6,401
    Smartphone
    NUBIA Z7 MAX, ZOPO 990 (morto)

    Ringraziamenti
    404
    Ringraziato 3,142 volte in 1,779 Posts
    Predefinito

    si flashare gli ebr non è sufficente, dopo bisogna fare il wipe per formattare le partizioni con la nuova dimensione
    cmq sono contento che a qualcuno sia servita la guida, ci ho passato qualche giorno sopra a studiarmi il funzionamento di sti file ebr e in giro su internet non ho trovato praticamente nessuna info o quasi.
    io sono un tipo curioso, le cose mi piace capirle oltre che usarle
    Nubia Z7MAX
    rom compilate da me: CM 12.1, BlissPop, CarbonROM

  8. I seguenti 3 Utenti hanno ringraziato PaoloW8 per il post:

    aluzzo (22-12-14),lklancillotto (28-12-13),nuketruki (27-12-13)

  9. #6
    Baby Droid


    Registrato dal
    Dec 2013
    Messaggi
    32

    Ringraziamenti
    2
    Ringraziato 2 volte in 2 Posts
    Predefinito

    ciao ti volevo chiedere se fosse possibile non avere EBR2 ? il mio è un gt-i9500 alps s4, grazie

  10. #7
    Sviluppatore Android L'avatar di PaoloW8


    Registrato dal
    Mar 2013
    Messaggi
    6,401
    Smartphone
    NUBIA Z7 MAX, ZOPO 990 (morto)

    Ringraziamenti
    404
    Ringraziato 3,142 volte in 1,779 Posts
    Predefinito

    Quote Originariamente inviato da marioelmatador86 Visualizza il messaggio
    ciao ti volevo chiedere se fosse possibile non avere EBR2 ? il mio è un gt-i9500 alps s4, grazie
    tutto è possibile
    fra l'altro cercando il tuo modello su internet si parla sia di modelli dual core che di quad core...il tuo qual'è ?
    cmq la prova più veloce è quella di fare un backup tramite mtkdroidtools, a quel punto vedi subito se hai i file ebr1 e ebr2 oppure solo ebr1
    Nubia Z7MAX
    rom compilate da me: CM 12.1, BlissPop, CarbonROM

  11. #8
    Baby Droid


    Registrato dal
    Dec 2013
    Messaggi
    32

    Ringraziamenti
    2
    Ringraziato 2 volte in 2 Posts
    Predefinito

    Infatti dal backup che ho fatto con mtk droid tools ho notato che non avevo il file ebr2. Cmq il mio è quello dual core. Io vorrei provare sul mio a fare sta cosa. Hai qualche consiglio con me? Grazie mille in anticipo

  12. #9
    Sviluppatore Android L'avatar di PaoloW8


    Registrato dal
    Mar 2013
    Messaggi
    6,401
    Smartphone
    NUBIA Z7 MAX, ZOPO 990 (morto)

    Ringraziamenti
    404
    Ringraziato 3,142 volte in 1,779 Posts
    Predefinito

    Quote Originariamente inviato da marioelmatador86 Visualizza il messaggio
    Infatti dal backup che ho fatto con mtk droid tools ho notato che non avevo il file ebr2. Cmq il mio è quello dual core. Io vorrei provare sul mio a fare sta cosa. Hai qualche consiglio con me? Grazie mille in anticipo
    ok quindi è probabile che sui dual core le varie partizioni siano diverse
    riesci a postare l'output del comando
    codice:
    cat /proc/emmc
    così vediamo di capirci qualcosa

    e se vuoi mandami il MBR e EBR1 (o metti gli screenshot come ho fatto io nella guida) così vediamo le varie corrispondenze
    Nubia Z7MAX
    rom compilate da me: CM 12.1, BlissPop, CarbonROM

  13. #10
    Baby Droid


    Registrato dal
    Dec 2013
    Messaggi
    32

    Ringraziamenti
    2
    Ringraziato 2 volte in 2 Posts
    Predefinito

    Ok questo esce sul tel: u0_a91@android:/ $ cat /proc/emmc
    partno** start_sect** nr_sects* partition_name
    emmc_p1: 00000400 00000002 "ebr1"
    emmc_p2: 00004800 00005000 "protect_f"
    emmc_p3: 00009800 00005000 "protect_s"
    emmc_p4: 0001ba00 00145000 "android"
    emmc_p5: 00160a00 000bc000 "cache"
    emmc_p6: 0021ca00 00296000 "usrdata"
    emmc_p7: 004b2a00 0027ae00 "fat"
    u0_a91@android:/ $

Pagina 1 di 25 12311 ... ultimoultimo
Ultima pagina

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy