Οδηγοί

Πώς να δημιουργήσετε ένα προσαρμοσμένο ROM από το Android Open Source Project

Εάν είστε εξοικειωμένοι με τη ριζοβολία του τηλεφώνου σας Android ή τη λήψη προσαρμοσμένων ROM, όπως το ιδιαίτερα δημοφιλές CyanogenMod ή το διάδοχό του Lineage OS, ίσως αναρωτηθήκατε - πώς οι άνθρωποι δημιουργούν αυτά τα ROM; Πόση δουλειά πηγαίνει ακριβώς στην ανάπτυξη ενός προσαρμοσμένου ROM;

Αυτός ο οδηγός θα σας καθοδηγήσει στα βασικά στοιχεία της ανάπτυξης του δικού σας προσαρμοσμένου Android ROM. Θα πρέπει να σημειωθεί ότι πρόκειται για μια τεράστια δέσμευση - εάν δεν έχετε καμία εμπειρία στην κωδικοποίηση ή να χαζεύεστε στα τερματικά Linux, ίσως θελήσετε να αποκτήσετε κάποια γνώση πριν από την κατάδυση σε αυτό το βαθύ άκρο. Αλλά αν έχετε τουλάχιστον μια βασική ιδέα για αυτά τα πράγματα, θα προσπαθήσω να εξηγήσω τα πράγματα όσο πιο απλά γίνεται, ώστε να μπορείτε να ακολουθήσετε.

Βασικά αυτό που κάνουμε είναι η λήψη του ακατέργαστος Πηγαίος κώδικας Android (AOSP) και τροποποίηση σύμφωνα με τις προτιμήσεις μας. Επειδή υπάρχουν τόσες πολλές πηγές για να διαλέξετε για διαφορετικές συσκευές, αυτός ο οδηγός θα αναφέρεται απλώς στο κύριος πηγή γνωστό ως AOSP (Android Open Source Project).

Τώρα το θέμα για το AOSP είναι ότι ο καθαρός πηγαίος κώδικας δεν περιλαμβάνει ιδιότητες υλικού για συγκεκριμένες συσκευές. Σε απλούς όρους, υλικό όπως η φωτογραφική μηχανή και η GPU δεν θα λειτουργούν «έξω από το κουτί» κατά την ανάπτυξη με το AOSP. Στην πραγματικότητα, η συσκευή σας δεν θα εκκινήσει καν χωρίς αυτά τα δυαδικά αρχεία υλικού.

Εάν αναπτύσσετε ένα τηλέφωνο με επωνυμία Google (Pixel, Nexus, κ.λπ.), μπορείτε να βρείτε τα δυαδικά αρχεία υλικού απευθείας από την Google και αυτός ο οδηγός θα σας καθοδηγήσει στη λήψη και τη δημιουργία τους στο ROM. Ωστόσο, εάν αναπτύσσετε ένα ROM για ένα επώνυμο τηλέφωνο (Sony, Samsung, κ.λπ.)… καλά, ευλογείστε την καρδιά σας, επειδή είστε σε μια βόλτα.

Μερικοί Οι κατασκευαστές έχουν τα δικά τους έργα ανοιχτού κώδικα ή κυκλοφορούν εργαλεία ανάπτυξης για τους υποψήφιους προγραμματιστές, ενώ άλλοι κατασκευαστές διατηρούν αυστηρά καπάκια στους ιδιόκτητους κωδικούς τους. Ακολουθεί μια σύντομη λίστα έργων ανοιχτού κώδικα από τους πιο δημοφιλείς κατασκευαστές:

Κέντρο έκδοσης ανοιχτού κώδικα Samsung

Sony Developer World

Υποστήριξη Lenovo

Κέντρο έκδοσης ανοιχτού κώδικα Huawei

Προγραμματιστές Motorola

Με αυτόν τον τρόπο, ας συνεχίσουμε υπό την προϋπόθεση ότι χτίζουμε ένα ROM για την πιο βασική, εμπειρία βανίλιας Android, για μια συσκευή Google Pixel. Με αυτές τις γνώσεις, θα είστε σε θέση να διακλαδώσετε μόνοι σας και να αρχίσετε να αναπτύσσετε προσαρμοσμένες εκδόσεις συγκεκριμένων ROM του κατασκευαστή.

Απαιτήσεις για αυτόν τον οδηγό:

  • Έργο Android Open Source
  • Τηλέφωνο Pixel XL ή έναν εξομοιωτή Android για Linux
  • Λειτουργικό σύστημα Linux 64-bit - Το Ubuntu ή το Linux Mint είναι τα πιο φιλικά προς τους αρχάριους διανομείς, ενώ το BBQLinux αναπτύχθηκε ειδικά με γνώμονα τους προγραμματιστές Android.
  • Πύθων
  • Ένας μεγάλος υπολογιστής (η σύνταξη κώδικα απαιτεί πολλή μνήμη και χώρο!)

Ρύθμιση του περιβάλλοντος κατασκευής σας

Ας ξεκινήσουμε ρυθμίζοντας τον εξομοιωτή Android στον υπολογιστή σας Linux. Είτε έχετε συσκευή Google Pixel XL είτε όχι, είναι πάντα ασφαλέστερο να δοκιμάσετε το νέο σας ROM σε έναν εξομοιωτή Android πριν αναβοσβήνει στη συσκευή σας. Το προσωπικό μου αγαπημένο είναι το Genymotion, οπότε θα σας καθοδηγήσω στην εγκατάσταση αυτού του συγκεκριμένου εξομοιωτή. Ωστόσο, μπορείτε επίσης να δείτε αυτόν τον οδηγό "Best Android Emulators", καθώς τα περισσότερα έχουν επίσης συμβατότητα με Linux.

Μεταβείτε στον ιστότοπο Genymotion, καταχωρίστε έναν λογαριασμό, επαληθεύστε τον μέσω email και πραγματοποιήστε λήψη του εκτελέσιμου στην επιφάνεια εργασίας Linux.

Τώρα ανοίξτε ένα τερματικό Linux και πληκτρολογήστε:

Chmod + x genymotion-xxxxx.bin (αντικαταστήστε το xxxx με τον αριθμό έκδοσης στο όνομα αρχείου)

./genymotion-xxxxxx.bin

Τύπος Γ για να δημιουργήσετε τον κατάλογο Genymotion. Τώρα πληκτρολογήστε το τερματικό:

cd genymotion && ./genymotion

Τώρα θα σας ζητήσει να ξεκινήσετε τη διαδικασία εγκατάστασης, οπότε συνεχίστε να κάνετε κλικ στο Επόμενο μέχρι να φτάσετε στο παράθυρο Προσθήκη εικονικών συσκευών. Επιλέξτε "Pixel XL" στην επιλογή Μοντέλο συσκευής και μετά ολοκληρώστε την εγκατάσταση. Μπορείτε να δοκιμάσετε την εικονική συσκευή εάν θέλετε, βασικά θα ήταν σαν να έχετε τηλέφωνο Pixel XL στην επιφάνεια εργασίας σας.

Ας δημιουργήσουμε τώρα την Python:

$ apt-get install python

Τώρα πρέπει να ρυθμίσουμε το Java Development Kit στον υπολογιστή σας Linux. Ανοίξτε το τερματικό Linux και πληκτρολογήστε τις ακόλουθες εντολές:

$ sudo apt-get ενημέρωση

$ sudo apt-get install openjdk-8-jdk

Τώρα θα πρέπει να διαμορφώσετε το σύστημα Linux ώστε να επιτρέπεται η πρόσβαση στη συσκευή USB. Εκτελέστε τον ακόλουθο κώδικα στο τερματικό Linux:

Αυτό θα κατεβάσει το απαιτούμενο αρχείο 51-android.txt που επιτρέπει την προαναφερθείσα πρόσβαση στη συσκευή USB. Ανοίξτε το αρχείο .txt και τροποποιήστε το για να συμπεριλάβετε το όνομα χρήστη Linux και, στη συνέχεια, τοποθετήστε το αρχείο .txt στην ακόλουθη θέση: (όπως το χρήστης root). Τώρα συνδέστε τη συσκευή σας στον υπολογιστή σας μέσω USB για να τεθούν αυτόματα σε ισχύ οι νέοι κανόνες.

Λήψη της πηγής Android

Το AOSP φιλοξενείται στο Git, οπότε θα χρησιμοποιήσουμε ένα εργαλείο που ονομάζεται Repo για να επικοινωνήσουμε με το Git.

Πρώτα πρέπει να ρυθμίσουμε ένα φάκελο / bin στον αρχικό σας κατάλογο. Πληκτρολογήστε τις ακόλουθες εντολές στο τερματικό Linux:

$ mkdir ~ / bin

$ PATH = ~ / bin: $ PATH

Τώρα θα κατεβάσουμε το εργαλείο Repo, οπότε πληκτρολογήστε στο τερματικό Linux:

$ curl //storage.googleapis.com/git-repo-downloads/repo> ~ / bin / repo

$ chmod a + x ~ / bin / repo

Μετά την εγκατάσταση του Repo, πρέπει τώρα να δημιουργήσουμε έναν κενό κατάλογο για να διατηρήσουμε τα αρχεία εργασίας σας. Γι 'αυτό πληκτρολογήστε αυτό στο τερματικό Linux:

$ mkdir WORKING_DIRECTORY

$ cd WORKING_DIRECTORY

Τώρα θα διαμορφώσουμε το Git με το όνομα και τη διεύθυνση ηλεκτρονικού ταχυδρομείου σας - χρησιμοποιήστε μια διεύθυνση Gmail που ελέγχετε τακτικά, διαφορετικά δεν θα μπορείτε να χρησιμοποιήσετε το εργαλείο ελέγχου κώδικα Gerrit.

$ git config –global user.name «Το όνομά σας»

$ git config –global user.email [email protected]

Τώρα θα πούμε στον Repo να τραβήξει το τελευταίο κύριο μανιφέστο του AOSP από το Git:

$ repo init -u //android.googlesource.com/platform/manifest

Εάν ολοκληρωθεί με επιτυχία, θα λάβετε ένα μήνυμα ότι το Repo έχει αρχικοποιηθεί στον κατάλογο εργασίας σας. Θα βρείτε επίσης ένα ".repo " κατάλογος στον κατάλογο πελατών. Τώρα θα κατεβάσουμε το δέντρο προέλευσης Android με:

Συγχρονισμός $ repo

Δημιουργία της πηγής Android

Αυτό είναι όπου τα δυαδικά αρχεία υλικού που αναφέρονται στην αρχή αυτού του οδηγού μπαίνουν στο παιχνίδι. Ας κατευθυνθούμε στη σελίδα προγραμμάτων οδήγησης AOSP και κατεβάστε τα δυαδικά αρχεία Pixel XL για Android 7.1.0 (NDE63P). Θέλετε να κατεβάσετε τόσο την εικόνα του προμηθευτή όσο και τα στοιχεία υλικού. Αυτά έρχονται ως συμπιεσμένα αρχεία, οπότε εξαγάγετε τα στην επιφάνεια εργασίας σας και εκτελέστε το σενάριο αυτόματης εξαγωγής από τον ριζικό φάκελο. Επιλέξτε να εγκαταστήσετε τα δυαδικά αρχεία στη ρίζα του WORKING_DIRECTORY που δημιουργήσαμε νωρίτερα.

Τώρα πληκτρολογήστε το τερματικό Linux:

$ make clobber

$ source build / envsetup.sh

Τώρα θα επιλέξουμε τον στόχο που θα δημιουργηθεί, οπότε πληκτρολογήστε:

$ lunch aosp_marlin-userdebug

$ setpaths

$ make –j4

Εκεί, έχουμε πλέον δημιουργήσει ένα ROM Android από την πηγή. Ας το δοκιμάσουμε λοιπόν στον εξομοιωτή, πληκτρολογώντας στο τερματικό:

εξομοιωτής $

Λοιπόν παίξτε λίγο στον εξομοιωτή. Όπως μπορείτε να δείτε, μια καθαρά εμπειρία Android βανίλιας είναι αρκετά ελάχιστη και για αυτό οι κατασκευαστές προσαρμόζουν το AOSP στις ανάγκες τους. Αρα εσύ θα μπορούσε flash αυτό το ROM που μόλις δημιουργήσαμε στη συσκευή σας αν το θέλατε, αλλά χωρίς να προσθέσετε βελτιώσεις, μια καθαρά εμπειρία βανίλιας Android θα ήταν πράγματι πολύ βαρετό.

Έτσι, αυτό που συνήθως θα κάνουν οι κατασκευαστές με το AOSP είναι το πιρούνι, προσθέστε τα δικά τους ιδιόκτητα δυαδικά αρχεία, προσαρμόστε το περιβάλλον εργασίας χρήστη, προσθέστε ένα λογότυπο εκκίνησης κ.λπ. .

Μείνετε συντονισμένοι, καθώς το δεύτερο μέρος αυτού του οδηγού θα περάσει με την προσθήκη γραμματοσειρών, θεμάτων και κινούμενης εκκίνησης στο ROM σας!

$config[zx-auto] not found$config[zx-overlay] not found