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 2 di 4 primaprima 1234 ultimoultimo
Ultima pagina
Visualizzazione dei risultati da 11 a 20 su 34
Discussione:

[guide] appunti di modding

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. #11
    Androidiano VIP L'avatar di umberto1978


    Registrato dal
    Aug 2011
    Località
    Sicilia
    Messaggi
    1,667
    Smartphone
    Nexus 4

    Ringraziamenti
    666
    Ringraziato 1,981 volte in 737 Posts
    Predefinito

    7b - BOOT.IMG

    Recatevi per prima cosa al percorso lib/modules e cancelliamo solo i moduli come da selezione nello screen sotto


    Dovremo rimpiazzarli con quelli appena compilati, vediamo come.

    Avviate il terminale e recatevi al percorso android/source/drivers utilizzando terminale.

    Digitate il comando

    codice:
    cd android/source/drivers
    Adesso vedrete che Linux è davvero potente: esiste un comando che consente di trovare tutti i files con una determinata estensione e di copiarli in una determinata directory

    codice:
    find . -name "*.ko" -exec cp {} /home/nome_utente/android/bootimg-tools/out/ramdisk/lib/modules/ \;
    Se avete pratica di inglese capirete benissimo cosa avviene: il comando troverà tutti i files con estensione .ko (che sono i moduli) e li copierà nel percorso specificato alla fine della stringa. Da standing ovation.....

    Controllate che i file siano stati copiati nella destinazione.

    NOTA: L'operazione di sostituzione dei moduli descritta va eseguita SEMPRE, ad ogni ri-compilazione. Preciso che è tuttavia possibile disattivare il versioning durante la compilazione, proprio per evitare un non matching delle magic strings. Ma non è conveniente in quanto sarebbe difficile eseguire un corretto tracking delle varie modifiche eseguite sul codice sorgente dei moduli.

    La modifica della ramdisk può dirsi conclusa (per il momento). Il passo successivo è la ri-compressione della ramdisk.

    E' necessario ESSERE nel percorso in cui si trovano i files da comprimere; da terminale:

    codice:
    cd android/bootimg-tools/out/ramdisk
    e lanciamo il seguente comando

    codice:
    find . | cpio -o -H newc | gzip > /home/nome_utente/android/bootimg-tools/ramdisk.cpio.gz
    Verrà creato un archivio con estensione .cpio.gz al percorso indicato alla fine della stringa delle dimensioni di circa 1 megabyte.

    Rinominate il file da

    codice:
    ramdisk.cpio.gz
    a

    codice:
    initrd.img
    Ora va creata la boot.img unendo assieme il kernel e la ramdisk appena compressa.

    Usando il file explorer recatevi in android/source/arch/arm/boot e copiamo il file zImage, che abbiamo ottenuto dalla compilazione dei sorgenti, all'interno della cartella "bootimg-tools", in modo da avere sia il che kernel (zImage) che la ramdisk (initrd.img) nello stesso percorso in cui sono contenuti gli "attrezzi".


    Accertiamoci di essere con il terminale all'interno del percorso dove si trovano i files di cui sopra, nell'eventualità spostiamoci con il comando cd

    codice:
    cd android/bootimg-tools
    Lanciamo il comando

    codice:
    ./mkbootimg.Linux.x86_64 --kernel zImage --ramdisk initrd.img -o newboot.img --base 0x10000000
    SPIEGAZIONE: Il comando lancerà l'eseguibile "mkbootimg.Linux.x86_64" contenuto nella cartella che assemblerà un --kernel (che in questo caso si chiama "zImage") una --ramdisk (che in questo caso si chiama "initrd.img") creando una "newboot.img". Il nome finale "newboot.img" è stato impostato di proposito con il prefisso "new" per evitare di fare confusione con altri files. Occorrerà rinominarlo semplicemente in "boot.img" successivamente.

    !!FONDAMENTALE!! : La parte finale della stringa
    codice:
    --base 0x10000000
    indica un codice che è univoco per il device in questione. E' importantissimo non dimenticarsi di specificarlo e soprattutto di non commettere errori di digitazione se vogliamo che la boot.img funzioni correttamente.


    L'ultimo passo è creare un file zip da flashare in recovery.

    Se vi serve uno zip come struttura potrete scaricare QUESTO, contiene una cartella meta-inf con tutto quello che serve per creare uno zip flashabile da recovery CWM o simili.

    Scaricate dunque lo zip ed estraetelo dove vi pare, l'importante è che vi ricordiate dove si trova.

    Create una nuova cartella nel work tree chiamandola ad esempio "zip-recovery"


    Adesso copiamo la cartella estratta meta-inf all'interno di "zip-recovery" e copiamo anche il file "newboot.img" creato qualche minuto prima.

    Rinominiamo il file
    codice:
    newboot.img
    in
    codice:
    boot.img
    . In sostanza dovremmo ottenere qualcosa di simile a quello mostrato nel seguente screen.



    Spostiamoci con il terminale nella cartella mostrata sopra

    codice:
    cd android/zip-recovery
    E lanciamo questo comando

    codice:
    zip -r pirla-kernel ./
    Verrà creato uno zip con il nome indicato nel comando, in questo caso "pirla-kernel" che sarà pronto per essere flashato dalla recovery.


    TIP: Per evitare di fare confusione con le varie builds del kernel che partorite di volta in volta, potrete ad esempio sostituire il nome dello zip con la data, l'ora, i minuti e i secondi in cui viene creato lo zip.
    Semplicemente
    codice:
    pirla-kernel
    con
    codice:
    `date +"%Y-%m-%d-%H-%M-%S"`
    apici compresi, mi raccomando.

    Per completezza ecco il comando finale

    codice:
    zip -r `date +"%Y-%m-%d-%H-%M-%S"` ./
    Lo zip creato avrà un nome abbastanza esplicativo e privo di ambiguità.


    Abbiamo finito, se tutto è andato bene avrete compilato dalla a alla z il vostro primo kernel.




    .....To be continued......
    Ultima modifica di umberto1978; 02-08-13 alle 10:58
    codice:
    These mist covered mountains, are a home now for me 
    But my home is the lowlands, and always will be 
    Some day you'll return to your valleys and your farms 
    And you'll no longer burn to be brothers in arm

  2. I seguenti 9 Utenti hanno ringraziato umberto1978 per il post:

    bluflight13 (30-10-13),bn1540 (31-07-13),crisgen (31-07-13),FN6 (31-07-13),giuros77 (31-07-13),Janobifronte (31-07-13),japoco_poz14 (31-07-13),Paolone46 (31-07-13),unname (31-07-13)

  3.  
  4. #12
    Androidiano VIP L'avatar di umberto1978


    Registrato dal
    Aug 2011
    Località
    Sicilia
    Messaggi
    1,667
    Smartphone
    Nexus 4

    Ringraziamenti
    666
    Ringraziato 1,981 volte in 737 Posts
    Predefinito

    per finire riservo anche questo post.
    codice:
    These mist covered mountains, are a home now for me 
    But my home is the lowlands, and always will be 
    Some day you'll return to your valleys and your farms 
    And you'll no longer burn to be brothers in arm

  5. I seguenti 8 Utenti hanno ringraziato umberto1978 per il post:

    bn1540 (31-07-13),crisgen (31-07-13),FN6 (31-07-13),giuros77 (31-07-13),Janobifronte (31-07-13),japoco_poz14 (31-07-13),Paolone46 (31-07-13),unname (31-07-13)

  6. #13
    Senior Droid L'avatar di darboc


    Registrato dal
    Jul 2012
    Messaggi
    605

    Ringraziamenti
    68
    Ringraziato 131 volte in 93 Posts
    Predefinito

    Azzz

    E qui mi tocca contribuire allora:sly:

  7. I seguenti 5 Utenti hanno ringraziato darboc per il post:

    bn1540 (31-07-13),crisgen (31-07-13),FN6 (31-07-13),giuros77 (31-07-13),Janobifronte (31-07-13)

  8. #14
    Senior Droid L'avatar di darboc


    Registrato dal
    Jul 2012
    Messaggi
    605

    Ringraziamenti
    68
    Ringraziato 131 volte in 93 Posts
    Predefinito

    Non essendo megalomane ne prendo solo un altro

    P.s.
    Umberto ovviamente non mi riferisco a te



    TASTI SOFT KEY

    Ho notato che su questa semplice mod, di cui forse sono stato il primo a proporla , regna una certa confusione in quanto spulciando le varie mods di questo tipo che girano in rete la cosa che le accomuna è il copia e incolla (spesso inutile)del codice in questione........

    Prendendo come esempio l' xml di sotto (clock al centro) notiamo che in esso è contenuto il codice per far apparire nell'angolo destro della statusbar il tasto/ icona " power".
    Ecco il codice in particolare:


    codice:
    <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/back" android:paddingLeft="0.0dip" android:paddingRight="0.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lock" android:contentDescription="@string/accessibility_back" systemui:keyCode="26" systemui:glowBackground="@drawable/ic_sysbar_highlight" />

    L'unica cosa in questo caso(sintassi xml obbligatoria a parte) che permette al tastino power(erroneamente chiamato "back" ) di funzionare è questo comando: systemui : keycode="26" che fa riferimento alla classe/oggetto" KeyEvent " nella quale sono stati definiti alcune costanti a cui corrispondono la pressione di alcuni tasti fisici e non......come nel suddetto caso il tasto power.

    Quindi se volessimo privare di inutili orpelli il codice preso come esempio otterremmo:


    codice:
    <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/power"  android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lock" systemui:keyCode="26"  />

    Per chi volesse dare sfogo alla propria creatività(ad esempio creare un lettore musicale nel menu a tendina:P ) ecco i keycode disponibili ad oggi:
    KeyEvent | Android Developers
    N.B.
    Fare riferimento ai numeri e non alle lettere i codici iniziano da metà pagina in poi

    P.s.
    systemui:glowBackground="@drawable/ic_sysbar_highlight" non è da considerarsi un orpello ed inoltre non lo si vede in giro....per capici si tratta dell'ombra di backgroud quindi in realtà molto scenografico.....ma eventualmente farò un post a parte se interessa

    Ciauz
    Ultima modifica di darboc; 31-07-13 alle 17:15

  9. I seguenti 6 Utenti hanno ringraziato darboc per il post:

    crisgen (31-07-13),FN6 (31-07-13),giuros77 (31-07-13),Janobifronte (31-07-13),Picciotto (31-07-13),umberto1978 (31-07-13)

  10. #15
    Senior Droid L'avatar di darboc


    Registrato dal
    Jul 2012
    Messaggi
    605

    Ringraziamenti
    68
    Ringraziato 131 volte in 93 Posts
    Predefinito

    COME METTERE IL CLOCK AL CENTRO
    :


    Cercherò di spiegare perchè il clock va a centro concettualmente,poi il codice è relativo......
    Detto in soldoni noi andiamo ad incastonare il clock tra due Layout cioè le icone di notifica(mail,tapatalk...ecc) a sinistra e le icone di sistema(batteria,segnale...ecc)a destra ,attribuendo ad entrambi lo stesso Weigth(peso) cioè immaginate questi gruppi di icone che si spingono a vicenda con uguale intensità, e in mezzo c'è il nostro clock
    il risultato è appunto l'orologio al centro
    Senza addentrarmi troppo nella teoria(ma se richiesto posso essere più tecnico ) andiamo a vedere come implementare il suddetto concetto:

    Usiamo essenzialmente Linear Layout:TIPS(LinearLayout è un gruppo di finestre (una sottoclasse di ViewGroup ) che mostra le finestre figli(child View) in un orientamento verticale o orizzontale, come specificato dal "android: orientation" degli attributi. Ogni figlio di un LinearLayout appare sullo schermo nell'ordine in cui appare nel codice XML)
    gli attributi WEIGHT(peso): android: layout_weight TIPS( Questo attributo assegna un valore "importanza" di una visione in termini di quantità di spazio dovrebbe occupare sullo schermo. Un valore di peso più grande permette di espandersi per riempire tutto lo spazio rimanente nella finestra padre.)

    e WIDTH(larghezza):android:layout_width TIPS(attributo che nel caso di "wrap_content" utilizza solo la larghezza nativa(Es:una foto 24x24 userà 24 pixel come larghezza),mentre nel caso "fill_parent"userà tutta la laghezza disponibile del Layout padre)

    utilizziamo come esempio una mod che feci per l'S4 di un caro amico

    l'xml in questione è status_bar.xml e ho evidenziato:

    in rosso:LinearLayout Padre(tutta la status bar)
    in viola LinearLayout figlio(icone a sinistra)
    in verde LinearLayout figlio(CLOCK)
    in blu LinearLayout figlio(icone di destra)

    in arancione gli attributi WIDTH e WEIGHT da usare per il nostro obiettivo
    in LinearLayout figlio(icone a destra)




    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <com.android.systemui.statusbar.phone.PhoneStatusBarView android:orientation="vertical" android:id="@id/status_bar" android:background="@drawable/carotix_statusbar_bg" android:focusable="true" android:fitsSystemWindows="true" android:descendantFocusability="afterDescendants"
      xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
        <ImageView android:id="@id/black_bg" android:background="#ff000000" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent" />
        <ImageView android:id="@id/notification_lights_out" android:paddingLeft="6.0dip" android:paddingBottom="2.0dip" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" />
        <LinearLayout android:orientation="horizontal" android:id="@id/status_bar_contents" android:paddingLeft="6.0dip" android:paddingRight="6.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent">
            <LinearLayout android:orientation="horizontal" android:id="@id/notification_icon_area" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0" android:alpha="0.8">
                <com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/back" android:paddingLeft="0.0dip" android:paddingRight="0.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lock" android:contentDescription="@string/accessibility_back" systemui:keyCode="26" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
                <TextView android:textSize="15.0dip" android:textColor="#fff71a1a" android:gravity="center_vertical" android:id="@id/carrierLabel" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
                <ImageView android:id="@id/operatorLogoIcon" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/tw_stat_notify_operator_logo" />
                <com.android.systemui.statusbar.StatusBarIconView android:id="@id/moreIcon" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/stat_notify_more" />
                <com.android.systemui.statusbar.phone.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentLeft="true" />
            </LinearLayout>
    		
            <LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/clock" android:layout_width="wrap_content" android:layout_height="fill_parent">
                <com.android.systemui.statusbar.policy.Clock android:textSize="20.0dip" android:textColor="#ffbebebe" android:ellipsize="none" android:gravity="center" android:id="@id/clock" android:paddingLeft="1.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginTop="0.0dip" android:singleLine="true" android:includeFontPadding="false" />
            </LinearLayout>
             <LinearLayout android:gravity="right|center" android:orientation="horizontal" android:id="@id/system_icon_area" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0" android:alpha="0.8">
                <LinearLayout android:gravity="right" android:orientation="horizontal" android:id="@id/statusIcons" android:layout_width="wrap_content" android:layout_height="fill_parent" />
                <LinearLayout android:gravity="right" android:orientation="horizontal" android:id="@id/signal_battery_cluster" android:paddingLeft="2.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent">
                    <include android:id="@id/signal_cluster" android:layout_width="wrap_content" android:layout_height="wrap_content" layout="@layout/signal_cluster_view" />
                    <TextView android:textSize="12.0dip" android:textColor="#fff71a1a" android:layout_gravity="center" android:id="@id/battery_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/status_bar_network_name_separator" />
                    <ImageView android:gravity="right" android:id="@id/battery" android:layout_width="wrap_content" android:layout_height="wrap_content" />
                </LinearLayout>
            </LinearLayout>
    		</LinearLayout>
        
        <LinearLayout android:orientation="horizontal" android:id="@id/ticker" android:paddingLeft="6.0dip" android:animationCache="false" android:layout_width="fill_parent" android:layout_height="fill_parent">
            <ImageSwitcher android:id="@id/tickerIcon" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:layout_marginRight="4.0dip">
                <com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="centerInside" />
                <com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="centerInside" />
            </ImageSwitcher>
            <com.android.systemui.statusbar.phone.TickerView android:id="@id/tickerText" android:paddingTop="2.0dip" android:paddingRight="10.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_weight="1.0">
                <TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" android:textColor="#ffffffff" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
                <TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" android:textColor="#ffffffff" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
            </com.android.systemui.statusbar.phone.TickerView>
        </LinearLayout>
    </com.android.systemui.statusbar.phone.PhoneStatusBarView>
    Semplice......NO?
    per eventuali dubbi io sono qui......impegni permettendo

    per chi volesse approfondire questi semplici concetti:
    Linear Layout | Android Developers
    Ultima modifica di darboc; 31-07-13 alle 17:07

  11. I seguenti 6 Utenti hanno ringraziato darboc per il post:

    crisgen (31-07-13),giuros77 (31-07-13),Janobifronte (31-07-13),japoco_poz14 (31-07-13),Picciotto (31-07-13),unname (31-07-13)

  12. #16
    Androidiano VIP L'avatar di japoco_poz14


    Registrato dal
    Nov 2011
    Messaggi
    2,709
    Smartphone
    p500,Htc Evo3d, Note 2, Note 3

    Ringraziamenti
    2,259
    Ringraziato 1,028 volte in 447 Posts
    Predefinito

    porca miseria!!qua si fa sul serio usti!!


    Il mio C.V.
    Tester:
    - Audax rom
    - FoxHounh team
    - Blumark
    - Abyss kernel
    - R2D2 Droid

    Editore per Batista70 phone

  13. I seguenti 2 Utenti hanno ringraziato japoco_poz14 per il post:

    darboc (31-07-13),giuros77 (31-07-13)

  14. #17
    Super Droid


    Registrato dal
    Sep 2011
    Messaggi
    4,168

    Ringraziamenti
    2,430
    Ringraziato 2,504 volte in 1,407 Posts
    Predefinito

    Quote Originariamente inviato da darboc Visualizza il messaggio
    Azzz

    E qui mi tocca contribuire allora:sly:
    Bravo... l'hai capita. Non partire con le tendine trasparenti però... ehehhe

  15. I seguenti 3 Utenti hanno ringraziato bn1540 per il post:

    crisgen (31-07-13),darboc (31-07-13),giuros77 (31-07-13)

  16. #18
    Senior Droid L'avatar di darboc


    Registrato dal
    Jul 2012
    Messaggi
    605

    Ringraziamenti
    68
    Ringraziato 131 volte in 93 Posts
    Predefinito

    Quote Originariamente inviato da MrGlonass Visualizza il messaggio
    Bravo... l'hai capita. Non partire con le tendine trasparenti però... ehehhe
    Te piacerebbe.....eh.......sporcaccione

  17. I seguenti 3 Utenti hanno ringraziato darboc per il post:

    bn1540 (31-07-13),crisgen (31-07-13),giuros77 (31-07-13)

  18. #19
    Androidiano VIP L'avatar di soloilmeglio


    Registrato dal
    Jan 2012
    Messaggi
    3,693
    Smartphone
    N7100 - N8000

    Ringraziamenti
    163
    Ringraziato 1,796 volte in 1,191 Posts
    Predefinito

    Quote Originariamente inviato da darboc Visualizza il messaggio

    ...omissis...

    L'unica cosa in questo caso(sintassi xml obbligatoria a parte) che permette al tastino power(erroneamente chiamato "back" ) di funzionare è questo comando: systemui : keycode="26" che fa riferimento alla classe/oggetto" KeyEvent " nella quale sono stati definiti alcune costanti a cui corrispondono la pressione di alcuni tasti fisici e non......come nel suddetto caso il tasto power.

    Quindi se volessimo privare di inutili orpelli

    ...omissis...
    Grande topic complimenti!

    A volte gli inutili orpelli sono messi dai dev appositamente per vedere chi copia in maniera bovina ahhahahahah (piccole soddisfazioni godute in privato)

    Il mio system ui è pieno di orpelli e png inutilissime ahhahahahahaha

    If you like my work and wants to keep the project alive please consider to buy me a glass of red wine or a toy for my dog

  19. Il seguente Utente ha ringraziato soloilmeglio per il post:

    giuros77 (31-07-13)

  20. #20
    Androidiano VIP L'avatar di giuros77


    Registrato dal
    Feb 2012
    Località
    http://goo.gl/jhH3w
    Messaggi
    2,152
    Smartphone
    SGN2

    Ringraziamenti
    1,206
    Ringraziato 2,200 volte in 987 Posts
    Predefinito

    Quote Originariamente inviato da soloilmeglio Visualizza il messaggio
    Grande topic complimenti!

    A volte gli inutili orpelli sono messi dai dev appositamente per vedere chi copia in maniera bovina ahhahahahah (piccole soddisfazioni godute in privato)

    Il mio system ui è pieno di orpelli e png inutilissime ahhahahahahaha
    Grazie.
    Allora possiamo contare sul tuo contributo?

  21. I seguenti 3 Utenti hanno ringraziato giuros77 per il post:

    crisgen (31-07-13),Janobifronte (31-07-13),Paolone46 (31-07-13)

Pagina 2 di 4 primaprima 1234 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