Συνεχίζουμε τη βόλτα μας στο μαγικό κόσμο των custom ROM και σήμερα θα δούμε πώς μπορούμε να καλλωπίσουμε τη ROM μας φτιάχνοντας τα δικά μας εικονίδια, αλλάζοντας τους χρωματισμούς αλλά και μεταφράζοντάς την. Είναι θεωρητικά το πιο δύσκολο κομμάτι στην κατασκευή μιας ROM καθώς θα χρησιμοποιήσουμε λιγάκι το τερματικό, αλλά ευτυχώς είναι προαιρετικό.
Μη χάσετε τα δύο πρώτα μέρη της σειράς με θέμα:
APK
Όπως ήδη γνωρίζουμε, όλες οι εφαρμογές και τα παιχνίδια στο Android είναι πακεταρισμένα σε αρχεία με κατάληξη .apk. Το .apk είναι στην ουσία ένας συμπιεσμένος φάκελος (όπως τα .zip και τα .rar) και έχει αυτή την κατάληξη για να "καταλαβαίνει" το σύστημα του Android ότι πρόκειται για εγκαταστάσιμο αρχείο. Μέσα του θα βρούμε υποφακέλους στους οποίους περιέχονται όλες οι πληροφορίες εγκατάστασης, ο κώδικας, οι βιβλιοθήκες και φυσικά τα εικονίδια που μας ενδιαφέρουν στην προκειμένη περίπτωση.
Κάθε .apk λοιπόν κρύβει και το εικονίδιό του, τα εικονίδια του συστήματος όμως βρίσκονται όλα στο "SystemUI.apk" (διαδρομή "/system/app") και το "framework-res.apk" (διαδρομή "/system/framework"). Αν το δεύτερο δεν υπάρχει στη δική σας ROM, ψάξτε για .apk αρχεία που στην ονομασία τους έχουν τις λέξεις "res" ή "resources", για παράδειγμα στις ROM που περιέχουν το HTC Sense UI το αρχείο είναι το "com.htc.resources.apk".
Αλλαγή εικονιδίων χειροκίνητα
Για να αλλάξουμε λοιπόν τα εικονίδιά μας θα πρέπει να ανοίξουμε το "framework-res.apk" με το APK Tool που θα δούμε παρακάτω. Μπαίνουμε στο φάκελο "res" και ψάχνουμε για υποφακέλους που στην ονομασία τους έχουν τη λέξη "drawable". Μέσα σε αυτούς θα δούμε ότι υπάρχουν όλα τα εικονίδια και τα φόντο των εφαρμογών συστήματος, τα οποία μπορούμε να φορτώσουμε σε ένα πρόγραμμα επεξεργασίας εικόνων και να τα διαμορφώσουμε όπως μας αρέσει. Μόλις τελειώσουμε την επεξεργασία, θα πρέπει να αποθηκεύσουμε το εικονίδιο που φτιάξαμε αντικαθιστώντας το πρωτότυπο:
- στον ίδιο φάκελο
- με την ίδια ακριβώς ονομασία,
- με τις ίδιες διαστάσεις της εικόνας
- και τον ίδιο τύπο (π.χ. από png σε png)
Θα προσέξετε ότι υπάρχουν πολλά ίδια εικονίδια σε διαφόρους φακέλους. Αυτό συμβαίνει γιατί η κάθε συσκευή, ανάλογα με την ανάλυση οθόνης, τραβάει τα εικονίδια από διαφορετικό φάκελο. Για παράδειγμα, ο φάκελος "drawable-hdpi" εξυπηρετεί συσκευές με ανάλυση οθόνης 480x800p (hdpi), ενώ ο φάκελος "drawable-nodpi" είναι κοινός για όλες. Αλλάξτε τα λοιπόν όλα για να είστε σίγουροι και προσοχή στις ονομασίες. Μην ξεχάσετε επίσης να τσεκάρετε και το "SystemUI.apk" το οποίο περιέχει εικονίδια κυρίως από τη notification bar του Android.
Μερικά από τα περιεχόμενα του "framework-res.apk":
Αλλαγή εικονιδίων μέσω της UOT Kitchen
Ο παραπάνω τρόπος μπορεί να είναι ο καλύτερος γιατί μας δίνει πλήρη ελευθερία να δημιουργήσουμε τα δικά μας εικονίδια, είναι όμως χρονοβόρος. Για όσους θέλουν αλλά βαριούνται, υπάρχει η UOT Kitchen, μία σελίδα στην οποία μπορούμε να ανεβάσουμε το "framework-res.apk" της ROM μας και να επιλέξουμε μέσα από μία πολύ μεγάλη γκάμα εικονιδίων. Η UOT θα αναλάβει να τα ενσωματώσει αυτόματα και θα μας επιστρέψει το αρχείο, έτοιμο για εγκατάσταση. Περισσότερες πληροφορίες.
Μετάφραση της ROM
Τι γίνεται όμως αν η ROM που έχουμε επιλέξει ως βάση, δεν έχει την ελληνική γλώσσα; Θα την παρατήσουμε; Όχι βέβαια! Τα αρχεία μετάφρασης του συστήματος βρίσκονται όλα στο "Settings.apk". Το ανοίγουμε με τον ίδιο τρόπο και μέσα στο φάκελο "res" θα βρούμε ένα σωρό φακέλους με ονομασία "values-**". Θα προσέξετε ότι ο κάθε ένας έχει δύο γράμματα μετά τη λέξη "values", τα οποία είναι η συντομογραφία της γλώσσας που αντιπροσωπεύουν, για παράδειγμα it = italia, bg = bulgaria και πάει λέγοντας (ο ελληνικός φάκελος είναι ο "values-el").
Μέσα σε αυτούς τους φακέλους θα βρούμε μερικά .xml αρχεία τα οποία περιέχουν τις μεταφράσεις, με σημαντικότερο το "strings.xml". Το ανοίγουμε με το Notepad++ και αρχίζουμε τη μετάφραση αλλάζοντας μόνο τα μαύρα γράμματα:
Για να αποφύγουμε τη δημιουργία νέων φακέλων και αρχείων, μπορούμε να επεξεργαστούμε μία άλλη γλώσσα που δεν τη χρειαζόμαστε και να επιλέγουμε αυτή μέσα από τις ρυθμίσεις συστήματος. Δεν ξεχνάμε επίσης να μεταφράσουμε και άλλα περιεχόμενα φακέλων που αναφέρονται σε γλώσσες όπως το "values-**-nokeys" και το "xml-**".
APK Tool & Sign APK
Ας δούμε τώρα πώς λειτουργούν τα προγράμματα που θα χρειαστούμε για να επεξεργαστούμε με επιτυχία τα .apk μας. Μπορεί τα .apk να μοιάζουν με .zip αρχεία αλλά χρειάζονται ειδική μεταχείριση στην αποσυμπίεση και τη συμπίεση. Για αυτό το λόγο θα χρησιμοποιήσουμε το APK Tool και το Sign APK. Η χρήση και η εγκατάστασή τους είναι πανεύκολη, το πρόβλημά όμως είναι ότι εξαρτώνται από τη Java την οποία αν δε στήσουμε σωστά θα έχουμε σφάλματα.
Για να τα εγκαταστήσουμε:
1. Κατεβάζουμε και εγκαθιστούμε την τελευταία έκδοση της Java Runtime Environment (JRE) από την επίσημη σελίδα της.
2. Κατεβάζουμε και εγκαθιστούμε το APK Tool από την επίσημη σελίδα του εκτελώντας τα εξής, ανάλογα με το λειτουργικό μας σύστημα:
Windows:
- Κατεβάζουμε το "apktool-install-windows-***"
- Κατεβάζουμε το "apktool-***"
- Αποσυμπιέζουμε και αποθηκεύουμε τα περιεχόμενά τους (apktool, aapt και apktool.jar) στη διαδρομή "C:\WINDOWS"
Linux:
- Κατεβάζουμε το "apktool-install-linux-***"
- Κατεβάζουμε το "apktool-***"
- Αποσυμπιέζουμε και αποθηκεύουμε τα περιεχόμενά τους (apktool, aapt και apktool.jar) στη διαδρομή "/usr/local/bin" (θα πρέπει φυσικά να έχουμε πρώτα δικαιώματα root)
Mac:
- Κατεβάζουμε το "apktool-install-macos-***"
- Κατεβάζουμε το "apktool-***"
- Αποσυμπιέζουμε και αποθηκεύουμε τα περιεχόμενά τους (apktool, aapt και apktool.jar) στη διαδρομή "/usr/local/bin" (θα πρέπει φυσικά να έχουμε πρώτα δικαιώματα root)
3. Ανοίγουμε ένα τερματικό και πληκτρολογούμε τη λέξη "apktool". Αν όλα έχουν γίνει σωστά, θα μας εμφανίσει τη λίστα εντολών της εφαρμογής.
4. Κατεβάζουμε το Sign APK Tool από το Gοogle και αποσυμπιέζουμε τα περιεχόμενά του (signapk.jar, certificate.pem, key.pk8) σε έναν οποιοδήποτε φάκελο.
Χρήση του APK Tool
Για να ξεκινήσουμε να χρησιμοποιήσουμε το APK Tool θα χρειαστούμε το αρχείο framework της ROM μας αλλά και το .apk που θέλουμε να πειράξουμε. Το framework θα πρέπει να εγκατασταθεί στο APK Tool πριν αρχίσουμε να αποσυμπιέζουμε τα .apk μας, εκτός και αν πρόκειται για το "framework-res.apk" το οποίο είναι ήδη προεγκατεστημένο. Για παράδειγμα αν θέλουμε να πειράξουμε το αρχείο "Mms.apk" μίας ROM που περιέχει το HTC Sense θα πρέπει να το εξάγουμε στον υπολογιστή μας μαζί με το "com.htc.resources.apk" το οποίο είναι το framework αρχείο αυτής της ROM.
Για να το εγκαταστήσουμε στο APK Tool, ανοίγουμε ένα τερματικό, μπαίνουμε στο φάκελο που βρίσκονται τα αρχεία και δίνουμε την εντολή:
Windows & Linux & Mac:
Ως απάντηση θα μας δώσει κάτι παρόμοιο με το παρακάτω:
Decompile
Για να ανοίξουμε το Mms.apk δίνουμε την εντολή:
Windows & Linux & Mac:
και θα μας εμφανίσει κάτι τέτοιο:
Μόλις τελειώσει το decompile, στον ίδιο φάκελο με το "Mms.apk" θα έχει δημιουργηθεί ένας ακόμα με το όνομα "Mms" και με όλα τα αρχεία που χρειαζόμαστε. Τώρα μπορούμε να αρχίσουμε το theming.
Compile
Αφού τελειώσουμε με τις αλλαγές μας, για να κλείσουμε τα περιεχόμενα του φακέλου "Mms" σε .apk δίνουμε την εντολή:
Windows & Linux & Mac:
και αν όλα πάνε καλά θα μας εμφανίσει το εξής:
Μόλις τελειώσει η διαδικασία, θα βρούμε το νέο "Mms.apk" στη διαδρομή "/Mms/dist".
Χρήση του Sign APK Tool
Το αρχείο μας όμως δεν είναι ακόμα έτοιμο καθώς θα πρέπει να προσθέσουμε και μια "ψηφιακή υπογραφή" για να εγκατασταθεί με επιτυχία στη συσκευή μας. Για να τα καταφέρουμε τοποθετούμε το νέο .apk στον ίδιο φάκελο με το Sign APK, ανοίγουμε ένα τερματικό, μπαίνουμε στο φάκελο και δίνουμε την εντολή:
Windows:
Θα δημιουργηθεί λοιπόν το αρχείο "Mms-signed.apk" το οποίο μπορούμε πλέον να εγκαταστήσουμε στη συσκευή μας.
Κλείσιμο
Είδαμε λοιπόν μερικά απλά πράγματα που μπορούμε να κάνουμε σε μία ROM σε επίπεδο καλλωπισμού, αλλά και τις βασικές λειτουργίες των απαιτούμενων προγραμμάτων. Μπορούμε φυσικά να πειράξουμε και να μεταφράσουμε οποιοδήποτε .apk έχουμε στη διάθεσή μας, ακολουθώντας την ίδια διαδικασία. Με λίγο ψάξιμο επίσης μπορούμε να βρούμε και άλλα .xml αρχεία τα οποία εκτελούν βασικές λειτουργίες και να τα διαμορφώσουμε όπως θέλουμε με τον πολύ απλό τρόπο που είδαμε.
Στο επόμενο και τελευταίο μέρος της σειράς, θα δούμε πώς πακετάρουμε με επιτυχία μία ROM και θα πούμε λίγα πράγματα για τη σημασία του φακέλου "META-INF".
Αν έχετε εντοπίσει και άλλες χρήσιμες λειτουργίες που μπορούμε να πειράξουμε, προτείνετέ τις στα σχόλια παρακάτω.