CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: Stahl con ben 12 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: Stahl con ben 94 Thanks ricevuti negli ultimi sette giorni
Utente del mese: Stahl con ben 460 Thanks ricevuti nell'ultimo mese

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

[GUIDA][MOD Kernel] Stock kernel con supporto per init.d

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
    Androidiano VIP L'avatar di Michelasso


    Registrato dal
    Apr 2012
    Località
    Treviso
    Messaggi
    3,215

    Ringraziamenti
    146
    Ringraziato 984 volte in 486 Posts
    Predefinito

    [GUIDA][MOD Kernel] Stock kernel con supporto per init.d

    PREMESSA:

    I vari kernel custom a disposizione per il Next Turbo non sembrano essere esenti da bug. D'altronde sono compilazioni dei codici sorgente AOSP che sono datati 14 Ottobre 2011. L'ultima stock ROM, la XILG1_ITVLG2_XXLF3 sembra aver risolto o perlomeno migliorato diverse situazioni, tra le quali i consumi della batteria. Purtroppo, con i kernel stock non è possibile far uso degli script in /etc/init.d, quali possono essere S2SD, l'Adrenaline Engine e altri.

    Mi sono quindi preso il compito di modificare il kernel XILG1, o per l'esattezza, la RAM disk nel suo boot.img, come verrà spiegato qui di seguito.


    PREFAZIONE TECNICA:

    Quando si installa un kernel, in realtà si copia in una partizione specifica un file chiamato boot.img. Questo file è dotato di due componenti (compresse in formato gz, lzma oppure xz. Assumiamo gz per semplicità di esposizione):

    1. kernel.gz: Il kernel vero e proprio
    2. ramdisk.gz: La RAM disk

    Il kernel è quello che viene compilato dai codici sorgenti. La RAM disk contiene invece tutti i file di configurazione di sistema necessari a eseguire il boot più alcuni moduli e comandi binari. In particolar modo contiene il file init.rc che è quello che istruisce il processo init su come eseguire la boot sequence. Qualcuno avrà notato che anche modificando via shell il file /init.rc le modifiche fatte vengono perse dopo il boot. Questo perché init.rc e gli altri file di configurazione del boot.img non fanno parte del file system fisico, ma vengono caricati ogni volta dopo il boot in una o più partizioni di una RAM disk. Risultato? Le modifiche effettuate sono di fatto scritte in RAM e quindi volatili.

    Come si risolve questa cosa? Solo ed esclusivamente nel seguente modo:

    • Scompattando il boot.img nei due file menzionati
    • Decomprimendo il file della RAM disk
    • Facendo le modiche necessarie ai file di configurazione
    • Ricomprimendo la RAM disk
    • Ricompattando il kernel.gz e ma nuova ramdisk.gz in un nuovo boot.img
    • Eseguendo il flash del nuovo boot.img (con uno qualsiasi dei metodi disponibili. Installazione via recovery, via Odin, a mano via shell, ecc..)

    Per scompattare si una usano i compression magic number per identificare l'inizio della RAM disk. Che ovviamente cambia a seconda del tipo di compressione. Una volta trovato, il boot.img viene spezzato nei due file già compressi. Questo assieme alla decompressione della RAM disk almeno per il formato gzip viene fatto automaticamente da uno script perl che si trova in internet assieme alle istruzioni. Qui lo troverete nella sezione DOWNLOAD. Ne ho fatta una seconda copia, modificata per i boot.img che usano il formato lzma, come il Kernel PX.

    Per ricompattare basta comprimere la directory della RAM disk modificata, meglio se nello stesso formato della compressione del kernel e poi eseguire il comando mkbootimg. Fa parte del'Android SDK, non so se vada compilato. Ma si trova ovviamente in internet. In DOWNLOAD troverete anche il secondo script perl per fare il repacking e la versione di mkbootimg per OS X (quella nel link delle istruzioni non è aggiornata), con la quale lavoro.

    Il tutto sembra banale e una volta avendo i tool a disposizione lo sarebbe pure se non fosse che per ricompattare bisogna conoscere il base e la ram disk address del specifico cellulare. Si noti infatti la sinstassi di mkbootimg:

    codice:
    BlueMoon:S5570I_XILG1 Michele$ mkbootimg
    error: no output filename specified
    usage: mkbootimg
           --kernel <filename>
           --ramdisk <filename>
           [ --second <2ndbootloader-filename> ]
           [ --cmdline <kernel-commandline> ]
           [ --board <boardname> ]
           [ --base <address> ]
           [ --pagesize <pagesize> ]
           [ --ramdiskaddr <address> ]
           -o|--output <filename>

    Queste informazioni si dovrebbero dedurre facendo riferimento alla struttura del file boot.img ed eseguendo un hex dump dello stesso:

    codice:
    BlueMoon:SignApk Michele$ od -h -N 200 XILG1_initd/boot.img 
    0000000      4e41    5244    494f    2144    8800    0030    8000    8160
    0000020      0a89    0015    0000    8260    0000    0000    0000    8250
    0000040      0100    8160    1000    0000    0000    0000    0000    0000
    0000060      0000    0000    0000    0000    0000    0000    0000    0000
    I valori in grassetto rappresentano la parte alta del base e ramdisk address. Questo in teoria, in realtà sono andato a tentativi cambiando i due indirizzi finché quei non ho visto che quei due valori combaciavano. pagesize allo stesso modo ho scoperto essere il tipico 4096. Il comando completo per la compattazione del boot.img del GT-S5570I sarà quindi:

    codice:
    mkbootimg --pagesize 4096 --kernel <kernel compresso>--base 0x81600000 --ramdiskaddr 0x82600000 --pagesize 4096  --ramdisk <RAM disk compressa> -o <nuovo boot.img>
    Fatto il nuovo boot.img dovete scegliere il metodo per installarlo. Io ho optato per il pacchetto zip di installazione da recovery. Altrimenti per la creazione di un file da installare via Odin seguite questa guida.

    Non mi addentrerò su come va modificato l'init.rc e gli altri file di sistema. presuppone conoscenze professionali di Unix Shell scripting di sistema. Potete se volere seguire questa guida del noto ACervellati nella quale ho trovato buona parte del materiale.

    Nella seconda parte ci sarà il primo kernel stock modificato per il Next Turbo.

    DOWNLOAD
    Ultima modifica di Michelasso; 31-08-12 alle 13:59
    Se sono stato utile non dimenticare di premere Thanks!

    Visita la mia collezione di temi per telefoni e tablet Xperia!


  2. I seguenti 4 Utenti hanno ringraziato Michelasso per il post:

    cryssro (17-09-12),Jeeko (19-07-13),Korgar (31-08-12),mirko1998 (31-08-12)

  3.  
  4. #2
    Androidiano VIP L'avatar di Michelasso


    Registrato dal
    Apr 2012
    Località
    Treviso
    Messaggi
    3,215

    Ringraziamenti
    146
    Ringraziato 984 volte in 486 Posts
    Thumbs up

    ATTENZIONE:
    Il kernel XILG1_initd non è più supportato
    E' stato sostituito da
    Cor Optimi™


    [CUSTOM KERNEL] Cor Optimi et Cor Optimi Plenus per S5570I

    Ssiore e ssiori, dopo quella pappardella sono lieto di presentarvi


    IL PRIMO KERNEL STOCK MODDED CON /etc/init.d SUPPORT PER S5570I
    (ma sicuramente in futuro anche altro! )



    NOVITA':

    • CUSTOM BOOT ANIMATION SUPPORT WITH ICS BOOT ANIMATION INCLUDED!!
    • Busybox inclusa nel kernel. Elimina la necessità del rooting per S2SD
    • e2fsck e tune2fs inclusi in /system/xbin per mantenere le tua partizione SDext sempre pulite (necessita script apposito. Ovviamente S2SD ne fa uso)!!



    CARATTERISTICHE
    :

    • Basato sul kernel XILG1
    • Permette l'esecuzione degli script in /etc/init.d
    • Supporta il file system ext4
    • Permette la personalizzaione dei boot animation
    • Busybox 1.15 (per ridurre le dimensioni) inclusa nel kernel
    • Necessita busybox ma non il rooting
    • Aggiunti e2fsck e tune2fs in /system/xbin per la riparazione dei file system ext (necessita script apposito. Ovviamente S2SD ne fa uso!!)
    • E' self contained. In teoria, poiché include tutti moduli standard, è possibile installarlo in una qualsiasi custom ROM
    • E' installabile da stock recovery


    Vantaggi:

    • E' l'ultimo kernel della Samsung. Quindi il più affidabile
    • Ha tutti i moduli testati e funzionanti. Per forza di cose, vedi sopra
    • E' facilmente aggiornabile quando esce una nuova versione del kernel, anche se in una stock ROM asiatica

    Non consente:
    • L'uso del filesystem ext4
    • I CPU Governor custom - Solo bcm21553 e performance - Tool come CPU Spy e SetCPU quindi non funzionano
    • Gli I/O Scheduler
    • E tutto quello che vi viene in mente pensando a un kernel custom

    INSTALLAZIONE:
    • Scaricate il zip file XILG1_initd.zip
    • Trasferitelo nella SD card
    • Fate il reboot in stock recovery
    • Installate l'update
    • Se non funziona può essere necessario reinstallare la ROM che già avete e ripetere il procedimento.


    RIMOZIONE:
    Se state usando l'ultima stock ROM

    • Scaricate il file Kernel_S5570I_XILG1.tar.md5 (originale da Samsung. Ottenuto con SplitFUS2)
    • Avviate Odin da Windows
    • Mettete il file nella sezione PDA
    • Fate il boot del telefono in boot loader (Vol giù-power-home)
    • Quando il telefono è riconosciuto fate il flashing con Odin


    Altrimenti dovete reinstallare la ROM/kernel che stavate usando oppure installare un altro custom kernel a vostro piacimento (PX, Repencis o altro che uscirà in futuro).

    NOTE:

    • Ho testato l'installazione più volte sopra la stock ROM ultima e non ho avuto problemi.
    • nel file /sbin/sysinit.rc e nel banner in logcat vedrete una versione "1.0v.xy". xy non contano nulla, li sto utilizzando solo per vericare che l'installazione sia avvenuta con successo
    • Causa macello avevo installato solo il boot.img (senza moduli) sopra alla versione stock ROM precedente. Funzionava!!
    • Se volete testarla con la Repencis o altra custom ROM per favore date una descrizione dei risultati in questa thread.


    E ora la sezione più importante!!!

    DOWNLOAD:




    Ultima modifica di Michelasso; 23-09-12 alle 11:11
    Se sono stato utile non dimenticare di premere Thanks!

    Visita la mia collezione di temi per telefoni e tablet Xperia!


  5. I seguenti 5 Utenti hanno ringraziato Michelasso per il post:

    gius01 (31-08-12),Jeeko (30-03-13),Korgar (31-08-12),mirko1998 (31-08-12),ZackFair84 (01-09-12)

  6. #3
    Androidiano VIP L'avatar di Michelasso


    Registrato dal
    Apr 2012
    Località
    Treviso
    Messaggi
    3,215

    Ringraziamenti
    146
    Ringraziato 984 volte in 486 Posts
    Predefinito

    [riservato per usi futuri]
    Se sono stato utile non dimenticare di premere Thanks!

    Visita la mia collezione di temi per telefoni e tablet Xperia!


  7. Il seguente Utente ha ringraziato Michelasso per il post:

    mirko1998 (31-08-12)

  8. #4
    Androidiano VIP L'avatar di Michelasso


    Registrato dal
    Apr 2012
    Località
    Treviso
    Messaggi
    3,215

    Ringraziamenti
    146
    Ringraziato 984 volte in 486 Posts
    Predefinito

    Quote Originariamente inviato da mirko1998 Visualizza il messaggio
    Michelasso, dovresti darli un nome al kernel, anche se alla fine è stock è pur sempre modificato da te..
    Nah… non per così poco.. Il problema più grosso è stato capire come fare. Ora ci metto 5 minuti a modificarlo.

    Quote Originariamente inviato da gius01 Visualizza il messaggio
    Quale? CuStock Kernel?!? xD... però ripensandoci andrebbe anche bene CuStock
    Ecco Gius, fai un piacere al mondo: non metterti nel marketing!

    PS: Il kernel è ora disponibile!!!
    Se sono stato utile non dimenticare di premere Thanks!

    Visita la mia collezione di temi per telefoni e tablet Xperia!


  9. #5
    Androidiano VIP L'avatar di astrone


    Registrato dal
    Dec 2011
    Località
    In mirroring
    Messaggi
    6,140
    Smartphone
    Z3 Compact

    Ringraziamenti
    828
    Ringraziato 2,401 volte in 1,477 Posts
    Predefinito

    Ok, thread pulito come al solito e dopo lo metto nell'indice :thumbup:

    Nota:

    Gius e mirko vi ho rimosso i commenti.

    Inviato dal mio GT-S5570 con Tapatalk 2


    11° Discepolo, SuperSuita a vita

  10. Il seguente Utente ha ringraziato astrone per il post:

    Michelasso (31-08-12)

  11. #6
    Androidiano L'avatar di deltafile


    Registrato dal
    Jun 2012
    Località
    Brescia
    Messaggi
    224
    Smartphone
    Galaxy Next Turbo e Moto G

    Ringraziamenti
    27
    Ringraziato 11 volte in 9 Posts
    Predefinito

    Michelasso..se io ho già il px kernel..posso sovrascriverlo con questo senza problemi?

    PHONE: Galaxy Mini/Pop Plus GT-S5570I
    ROM: CM7 Reincarnation
    KERNEL:Cyanus 1.9

    non uso più questo device (anche se seguo le news) adesso ho:

    PHONE: Motorola Moto G 8GB
    ROM: C-Rom 6.2 [4.4.2 kitkat]
    KERNEL: Furnace Kernel 1.2.0

  12. #7
    Androidiano VIP L'avatar di Michelasso


    Registrato dal
    Apr 2012
    Località
    Treviso
    Messaggi
    3,215

    Ringraziamenti
    146
    Ringraziato 984 volte in 486 Posts
    Predefinito

    Quote Originariamente inviato da deltafile Visualizza il messaggio
    Michelasso..se io ho già il px kernel..posso sovrascriverlo con questo senza problemi?
    Si e no. L'unico problema è che possono rimanere nella /system/lib/modules dei moduli PX che non sono compatibili col kernel. Ma tanto non vengono caricati, quindi… Ah, e ti rimane, credo il boot animation di PX.


    Insomma, prova e facci sapere, no? io mica posso testare tutti i casi possibili. Mal che vada o rimetti il kernel PX oppure rifai il flash della stock ROM e poi cambi di nuovo il kernel con questo modded.
    Se sono stato utile non dimenticare di premere Thanks!

    Visita la mia collezione di temi per telefoni e tablet Xperia!


  13. #8
    Androidiano L'avatar di deltafile


    Registrato dal
    Jun 2012
    Località
    Brescia
    Messaggi
    224
    Smartphone
    Galaxy Next Turbo e Moto G

    Ringraziamenti
    27
    Ringraziato 11 volte in 9 Posts
    Predefinito

    Ok é solo che non vorrei avere tutte le schifezze del px kernel sopra quello stock modded..vorrei che fosse pulito


    Inviato dal mio GT-S5570I usando Androidiani App

    PHONE: Galaxy Mini/Pop Plus GT-S5570I
    ROM: CM7 Reincarnation
    KERNEL:Cyanus 1.9

    non uso più questo device (anche se seguo le news) adesso ho:

    PHONE: Motorola Moto G 8GB
    ROM: C-Rom 6.2 [4.4.2 kitkat]
    KERNEL: Furnace Kernel 1.2.0

  14. #9
    Androidiano VIP


    Registrato dal
    Jun 2012
    Messaggi
    4,922
    Smartphone
    SAMSUNG GT-S5570I

    Ringraziamenti
    139
    Ringraziato 1,091 volte in 873 Posts
    Predefinito

    Be, siccome e' rom stock based non funziona droidwall o comunque l'opzione netfilter, vero?

  15. #10
    Androidiano VIP L'avatar di Michelasso


    Registrato dal
    Apr 2012
    Località
    Treviso
    Messaggi
    3,215

    Ringraziamenti
    146
    Ringraziato 984 volte in 486 Posts
    Predefinito

    Nope. Assieme a "E tutto quello che vi viene in mente pensando a un kernel custom"… Oddio, potrei provare a vedere se carica i moduli. Ma mi sa che dovevano essere compilati assieme al kernel. Perché Linux è monolitico, ovviamente. Deve avere tutto in pancia. bah.
    Se sono stato utile non dimenticare di premere Thanks!

    Visita la mia collezione di temi per telefoni e tablet Xperia!


Pagina 1 di 14 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