In order to fulfill the basic functions of our service, the user hereby agrees to allow Xiaomi to collect, process and use personal information which shall include but not be limited to written threads, pictures, comments, replies in the Mi Community, and relevant data types listed in Xiaomi's Private Policy. By selecting "Agree", you agree to Xiaomi's Private Policy and Content Policy .
Agree

Modding

[Guide] #3 Nessuna ROM per il tuo dispositivo? CREALA!

2020-11-18 06:31:18
740 11


Ciao Mi Fans!

Benvenuti in questo terzo episodio dedicato alla nostra serie modulare sulla costruzione di una ROM personalizzata! Dopo esserci concentrati sulla creazione vera e propria di una Custom ROM (qui) e dopo avervi mostrato tutta una serie di personalizzazioni basilari da apportarvi (qui), andremo oggi ad illustrarvi come personalizzare l’interfaccia utente del Sistema Android. In questa nuova guida, accompagnato dal buon Mattia Mingardi come per i precedenti episodi, ci addentreremo ancora più profondamente nei meandri della personalizzazione del nostro OS preferito e cercheremo di istruirvi al meglio riguardo tutto ciò che è necessario al fine preposto.


Ricordate: nulla è difficile, fintanto che mossi dalla curiosità ci affacciamo alla conoscenza


Forse non molti di voi sapranno che tantissimi utenti all’interno di noti forum, come XDA Developers per citarne uno dei più famosi e frequentati, pongono costantemente domande del tipo ‘come posso cambiare il colore del pannello delle notifiche?’ oppure ‘come faccio a cambiare le icone dei quick toggles?’ e altre domande simili relative all'interfaccia utente Android. Alcuni brand consentono modifiche simili attraverso un negozio di Temi, ma l’esperienza può variare in base a cosa i temi possono cambiare esattamente, per cui spesso l’utente finale resta deluso e con l’amaro in bocca. Noi vogliamo che questo cambi.


Questa bellissima introduzione in fin dei conti si riduce ad un solo file che davvero ci interessa: SystemUI.apk. Questo file è responsabile di tutto ciò che siamo in grado di vedere a schermo e di tutto ciò con cui siamo in grado di interagire attraverso i tocchi o gli swipe, in quanto comunica direttamente con un’elemento importantissimo chiamato Kernel. Oggi vi mostreremo passo dopo passo come modificare le risorse all'interno di questo file apk per personalizzare l'interfaccia utente di Android a vostro piacimento. Ovviamente così come accaduto per le guide precedenti, tenete conto che ci riferiremo a ROM basate su AOSP, per cui i tutti i riferimenti ai file contenuti all’interno del nostro SystemUI.apk possono essere diversi da quelli che avete nel vostro (se usate una ROM stock ad esempio), in quanto variano a seconda del produttore del vostro telefono. Se avete costruito un AOSP con la nostra guida o se l’avete semplicemente letta, saprete certamente di cosa stiamo parlando. Se non dovesse essere questo il caso, non disperate poiché sarà comunque possibile ottenere il risultato sperato, seppur con qualche tentativo in più. Pronti a darci dentro?

PREMESSA

Questa guida a scopo informativo, elenca una serie di azioni che se eseguite in maniera errata e senza le dovute conoscenze, potrebbero portare ad avere applicazioni importanti non funzionanti, in grado anche di portare al bootloop del dispositivo. Pertanto noi, Xiaomi e la Mi Community Italia non saremo in alcun modo responsabili di eventuali danni causati ai vostri dispositivi, qualora sceglierete in autonomia di seguire questa guida. Ogni lamentela sarà completamente ignorata, per cui agite consapevolmente.

REQUISITI


Nota: Per questa guida, userermo APKTool come riferimento. Se qualcuno dovesse invece preferire APKMultiTool, si ricordi che processo iniziale di configurazione e decompilazione / ricompilazione potrebbe essere diverso, ma che nel complesso i passi da seguire sono gli stessi.

Inoltre, suggeriamo vivamente di utilizzare un AOSP intallata su un dispositivo secondario o ancora meglio di utilizzarla con un Emulatore Android, in modo da poter testare e visualizzare in anteprima le modifiche relative a SystemUI prima di trasferirle sul dispositivo.

APKTOOL - DOWNLOAD & SETUP

Supponendo che abbiate correttamente scaricato e installato tutto il software necessario sulla vostra macchina (in caso contrario c’è Google), cominciamo a spiegare alcune cose fondamentali: Download e Setup di APKTool.


Per gli utenti che utilizzano come sistema operativo Windows di Microsoft, la procedura di download e configurazione relativa ad APKTool si compone dei seguenti punti:

  • Scaricate lo script wrapper di Windows (Tasto destro del mouse, poi salva collegamento con nome e scrivete apktool.bat)
  • Scaricate apktool-2 e rinominatelo in apktool.jar
  • Spostate entrambi i file (apktool.jar & apktool.bat) nella directory principale di Windows (solitamente si tratta di C://Windows)
  • Se non avete accesso a C://Windows, si possono collocare i due file ovunque e poi aprire una finestra di comando da quella posizione
  • Infine, provate ad eseguire apktool tramite il prompt dei comandi (alternativamente è possibile eseguirlo dal file bat)


Per gli utenti che utilizzano come sistema operativo Linux, la procedura di download econfigurazione relativa ad APKTool si compone dei seguenti punti:

  • Scaricate lo script wrapper di Linux (Tasto destro del mouse, poi salva collegamento con nome e scrivete apktool.bat)
  • Scaricate apktool-2 e rinominatelo in apktool.jar
  • Spostate entrambi i file (apktool.jar & apktool.bat) in usr/local/bin (privilegi di amministratore richiesti)
  • Assicuratevi che entrambi i file siano eseguibili (chmod +x)
  • Provate ad eseguire apktool tramite command line di Linux (riga di comando)


Per gli utenti che utilizzano come sistema operativo MacOS X di Apple, la procedura di download e configurazione relativa ad APKTool si compone dei seguenti punti:

  • Scaricate lo script wrapper di Linux (Tasto destro del mouse, poi salva collegamento con nome e scrivete apktool.bat)
  • Scaricate apktool-2 e rinominatelo in apktool.jar
  • Spostate entrambi i file (apktool.jar & apktool.bat) in usr/local/bin (privilegi di amministratore richiesti)
  • Assicuratevi che entrambi i file siano eseguibili (chmod +x)
  • Provate ad eseguire apktool tramite command line di MacOS X (riga di comando)

A questo punto, se tutto funziona correttamente sul vostro dispositivo, possiamo andare avanti. Imparerete ad estrarre e decompilare il file apk di cui abbiamo bisogno.

DECOMPILAZIONE SYSTEMUI

Prima che vi addentriate nell’estrazione e decompilazione di un file apk, dovete necessariamente capire prima cosa realmente è un file apk. Chiaramente ci sono dei corsi e delle guide (in inglese) ultra dettagliate per chi volesse approfondire questi argomenti, ma al fine di completare la nostra guida vi basterà sapere ciò che vi diremo. Un file apk piuttosto che come singolo elemento deve essere inteso come un archivio, siccome effettivamente si tratta di un file jar con estensione modificata. Come tutti gli archivi dunque può essere aperto, cambiando la sua estensione in rar (o zip) si potrà infatti avere accesso agli elementi contenuti al suo interno. Un apk quindi non è altro che un contenitore di elementi, i quali possono essere racchiusi in uno schema simile:



O se preferite, eccovi una visualizzazione più chiara




Avere accesso a questi contenuti però non significa ovviamente poterli visualizzare tutti. Sì perché sebbene alcuni di essi possano essere aperti (e talvolta modificati), molti altri necessitano di tool specifici per poterlo fare ed uno di questi è proprio APKTool. Questo strumento permette la decompilazione, cioè l’estrazione dei contenuti compressi nel file apk. Uguale ad estrarre un file zip direte, vero? Non proprio. Quando si decompila con questo tool, vengono estratti anche alcuni elementi nascosti che non sono visibili se l’apk viene aperto come archivio, necessari per il corretto funzionamento dell’app (e la sua corretta ricompilazione). Chiarita questa parte, direi che siamo pronti per mostrarvi come fare.

1. Dopo aver installato APKTool, dobbiamo estrarre il file del framework dal vostro dispositivo tramite ADB. Il file generico del framework AOSP si chiama framework-res.apk e si trova nel percorso /system/framework del vostro dispositivo. La maggior parte dei produttori include spesso dei propri file di framework specifici in aggiunta al framework AOSP
2. La ricerca di questi file potrebbe essere piuttosto complicata poiché si dovrebbe capire come il produttore ha rinominato il file delle risorse del framework. Di solito si trovano in /system/framework, ma a volte possono essere nascoste in /data/system-framework o /system/priv-app. I file stessi avranno tipicamente 'risorse', 'res', o 'framework' come nome.
3. Una volta individuato il file del framework, bisognerà estrarlo assieme al file SystemUI.apk tramite la console ADB.
4. Per fare questo potete utilizzare il seguente comando:


(cambiare il percorso se necessario e fare lo stesso comando per SystemUI.apk)



5. A termine dell’esecuzione, troverete i file estratti nella cartella principale dove è installato ADB sul vostro computer.
6. Adesso, ‘installeremo’ questi due file apk in APKTool. Quindi, in un prompt dei comandi, digitate:



(quindi per esempio apktool se C:\ADB\framework-res.apk)


7. Ripetete quanto sopra anche per SystemUI.apk
8. Ora è il momento di decompilare il vostro SystemUI.apk, quindi digitate nella finestra di comando:




9. Questo comando estrarrà il contenuto di SystemUI.apk in tutta una serie di cartelle, un po' come l’immagine che vi abbiamo postato poco più sopra.

MODIFICARE ICONE E COLORI

Adesso che avete estratto tutto il necessario, possiamo procedere alle modifiche vere e proprie. Innanzitutto è importante capire qual è la densità di pixel, ovvero il DPI (dot per inch) del vostro telefono, perché vi troverete dinanzi a cartelle come SystemUI/res/drawable-hdpi, SystemUI/res/xhdpi, e questo potrebbe spaventarvi se non sapete di cosa parliamo. Di seguito una piccola panoramica per aiutarvi a capire i DPI e i relativi codici che li identificano.

•        ldpi (densità bassa) = 120dpi
•        mdpi (densità media) = 160dpi
•        hdpi (densità alta) = 240dpi
•        xhdpi (densità extra alta) = 320dpi
•        xxhdpi (extra-extra-alta) = 480dpi
•        xxxhdpi (densità extra-extra-extra-alta) = 640dpi

Il DPI di un dispositivo è contenuto all’interno del suo build.prop, per cui è modificabile eventualmente lo si volesse cambiare. Detto questo, per modificare le vostre risorse all’interno di SystemUI dovrete capire in quale categoria rientra il vostro schermo. All'interno della cartella, vedrete praticamente tutti i file .png utilizzati per la vostra SystemUI. Sarà presente praticamente tutto, dalle icone della barra di notifica, alle icone del pannello delle impostazioni rapide, ecc. I nomi dei file effettivi possono variare a seconda del produttore, ma le ROM basate su AOSP dovrebbero avere tipicamente file con questo nome:






Ovviamente questo succede quando si parla di AOSP, se parliamo di altri marchi e quindi di software personalizzati, il produttore potrebbe non seguire queste convenzioni di denominazione, quindi dovrete solo guardare attentamente i .png per poter capire esattamente a cosa servono.

IMPORTANTE: se vi imbattete in alcuni file con estensione .9.png, non tentate assolutamente di modificarli direttamente in GIMP o Photoshop senza prima avere un tutorial. Si tratta di file .png 9Patch che hanno dei bordi visibili quando si modificano le immagini, ma questi bordi diventano invisibili poi nell'interfaccia utente di Android attraverso una tecnica speciale (troppo lunga da spiegare), e c'è un metodo speciale per manipolarli. Si dovrebbe usare lo strumento Draw 9-Patch Tool di Android Studio, o imparare a modificare / creare correttamente le immagini 9Patch in Photoshop / GIMP.

Per modificare il colore di sfondo del pannello delle impostazioni rapido, è necessario aprire /res/values/colors.xml e modificare le linee di codice relative ai colori con codice Hex. Le righe dovrebbero essere commentate con spiegazioni da parte di Google (o dello sviluppatore) o almeno abbastanza facili da capire poiché comprendenti una denominazione. Per questo motivo abbiamo consigliato l'utilizzo di un emulatore Android, per visualizzare in anteprima e modificare le impostazioni man mano che si procede.

ELEMENTI MODIFICABILI

Ora che avete capito come modificare i colori (alla fine basta seguire il percorso giusto), potete addentrarvi nella modifica di tanti altri elementi. Ecco ad esempio alcuni percorsi relativi alla modifica dei colori per quanto riguarda gli elementi testuali nella status bar. Per cominciare, controllate in /res/layout/tw_statusbar.xml per queste righe:

Colore del testo dell'icona della batteria (se la batteria viene visualizzata come percentuale di testo)


(lasciare tutto attaccato durante la trascrizione, senza spazi)


Colore del testo dell'orologio


(lasciare tutto attaccato durante la trascrizione, senza spazi)

E poi in /res/layout/tw_status_bar_expanded_header.xml

Colore dell'orologio a discesa



(lasciare tutto attaccato durante la trascrizione, senza spazi)

Colore della data


(lasciare tutto attaccato durante la trascrizione, senza spazi)

Ragazzi, ci sono così tante cose da personalizzare in SystemUI, che ci vorrebbe una vita per spiegare ogni piccola cosa in questa guida. In rete potreste sicuramente trovare guide molto più dettagliate, ma per quello che ci serve ora, questo basta e avanza.

RICOMPILAZIONE SYSTEMUI

Ora che avete apportato tutte e modifiche ai file, è tempo di ricompilare il tutto! In una finestra di comando, digitate:


Questo creerà una nuova cartella .apk all’interno della già presente cartella Dist, a sua volta presente nella cartella dove è stato decompilato il nostro file. Quindi cercate il nuovo file SystemUI.apk in /systemUI/dist e successivamente utilizzate 7-Zip o WinRAR per copiare e sostituire la cartella META-INF e AndroidManifest.xml dall'APK originale nel nuovo APK, quindi ricompilate di nuovo. Dopo aver fatto ciò non resta altro che testare l’apk all’interno dell’emulatore, oppure installarlo nel dispositivo! Ovviamente senza permessi di root non potete installare app di sistema, quindi ricordatevi che se effettuate il tutto su un dispositivo fisico è un requisito fondamentale quello di possedere i permessi di root!

Eccoci giunti al termine di questo terzo episodio, speriamo davvero che vi sia piaciuto quanto gli altri due. Altre novità sono in arrivo, quindi stay tuned! Per ora lasciatemi ringraziare Mattia che come sempre è preziosissimo nel suo lavoro e nel suo aiuto, inoltre grazie a tutti voi per averci seguito in tutti gli episodi precedenti, vi vogliamo bene.

A presto Mi Fans!

Lista Comandi.rar (11.97 KB, Downloads: 0)

2020-11-18 06:31:18
Favorites15 RateRate

Mi Blogger

Mattia Mingardi | from app

#1

gg ci hanno scammato
2020-11-18 16:55:38
Invalid floor, the posts have been deleted #2

Rookie Bunny

marcy1989 | from app

#3

e mo
2020-11-19 15:21:14

Mi Blogger

Mattia Mingardi | from app

#4


e mo arriva la parte 4! Un po' di pazienza e concludiamo questa serie
2020-11-19 15:29:28

Pro Bunny

Giu_Car | from app

#5

Ottimo articolo, ma penso sia solo, per quelli che già si dilettano nell'informatica...
2020-11-19 17:28:04

Mi Blogger

Giuskiller995 Author | from app

#6

Giu_Car
Ottimo articolo, ma penso sia solo, per quelli che già si dilettano nell'informatica...

Giu, cerchiamo di renderlo più semplice possibile, però ci rendiamo conto che a volte alcune cose sono tecniche e non si possono limare più di tanto. Ci dispiace per questo, noi vogliamo cercare di fare post utili, originali e differenti dalla massa, ma cercheremo in futuro di fare qualcosa DAVVERO alla portata di tutti, promesso ❤️
2020-11-19 20:41:01

Mi Blogger

Giuskiller995 Author | from app

#7

Mattia Mingardi
e mo arriva la parte 4! Un po' di pazienza e concludiamo questa serie

Ahahahahahha
2020-11-19 20:43:45

Mi Blogger

Giuskiller995 Author | from app

#8


Come diceva un grande... e mo so cazzi!
2020-11-19 20:44:00

Semi Pro Bunny

ultracris | from app

#9

Ottimo
2020-11-20 14:11:20

Pro Bunny

Skeggia63 | from app

#10

Ottimo
2020-11-20 15:47:04
please sign in to reply.
Sign In Sign Up

Giuskiller995

Mi Blogger

  • Followers

    433

  • Threads

    210

  • Replies

    2261

  • Points

    10608

3 Days Check-In
7 Days Check-In
21 Days Check-In
40 Days Check-In
70 Days Check-In
100 Days Check-In
Halloween
100mila
redminote8series
200mila Mi Fans
MIUI 12
2 anni insieme
BEST Mi Blogger
MIBAND4
Survey2020
Magazzino in Italia
Monitor
Mi TWS 2 Bacis
Mi Scooter Pro 2
Mi Smart Band 5
Mi Tv Stick
K2K
300K
1 milione

Read moreGet new

Mi Comm APP

Stay updated on Mi Products and MIUI

Copyright©2010-2020 Xiaomi.com, All Rights Reserved
Quick Reply To Top Return to the list