Το Android 11 θα συνοδεύεται από DSU Loader στις Επιλογές προγραμματιστή που θα σας επιτρέψει να κατεβάσετε και να εγκαταστήσετε συμβατά GSI αυτόματα! Διαβάστε για περισσότερα!
Ένα καλό οικοσύστημα εφαρμογών είναι ένας από τους πιο σημαντικούς πυλώνες της επιτυχίας ενός λειτουργικού συστήματος. Τόσο η Google όσο και η Apple αναγνωρίζουν την αξία της ύπαρξης καλών εφαρμογών στις πλατφόρμες τους, και έτσι και οι δύο εταιρείες προσπαθούν να εξισορροπήσουν τις ανάγκες των χρηστών τους και των προγραμματιστών εφαρμογών τους. Οι χρήστες συνεχίζουν να πιέζουν για αλλαγές στα λειτουργικά συστήματα και ενώ οι περισσότεροι εκτιμούν γενικά τις νέες δυνατότητες, αυτές Οι αλλαγές δεν είναι πάντα διασκεδαστικές για τους προγραμματιστές εφαρμογών, καθώς μπορούν να αλλάξουν πολλές από τις βασικές λειτουργίες και η ΣΥΜΠΕΡΙΦΟΡΑ. Για τους προγραμματιστές που εργάζονται συνεχώς για να διατηρήσουν τις εφαρμογές τους σχετικές, η αντιμετώπιση αυτών των αλλαγών προστίθεται στην αυξανόμενη λίστα εργασιών τους. Ακόμα κι αν αυτές οι αλλαγές δεν επηρεάζουν άμεσα τις εφαρμογές τους, οι προγραμματιστές πρέπει να βεβαιωθούν ότι οι εφαρμογές τους θα λειτουργούν στη νέα ενημέρωση λειτουργικού συστήματος. Η Google έχει κάνει πολλές αλλαγές όλα αυτά τα χρόνια για να διευκολύνει αυτή τη διαδικασία για τους προγραμματιστές εφαρμογών Android, και τώρα, μια νέα Η δυνατότητα στο Android 11, που ονομάζεται DSU Loader, θα διευκολύνει ακόμα περισσότερο τους προγραμματιστές εφαρμογών να δοκιμάσουν τις εφαρμογές τους σε νέο Android εκδόσεις.
Ξεκινά με το Project Treble
Το Project Treble, που παρουσιάστηκε στο Android 8.0, είναι σημαντικό εκ νέου αρχιτεκτονική του λειτουργικού συστήματος Android. Ο στόχος του Project Treble ήταν να χωρίσει το λειτουργικό σύστημα Android σε δύο μεγάλα κομμάτια: το πλαίσιο και την υλοποίηση του προμηθευτή ("Πωλητής" εδώ αναφέρεται στον κατασκευαστή οποιουδήποτε ιδιόκτητου στοιχείου υλικού που βρίσκεται μέσα σε μια συσκευή, συνήθως αναφερόμενος στο πυρίτιο). Το πλαίσιο λειτουργικού συστήματος Android είναι το ίδιο το λειτουργικό σύστημα, συμπεριλαμβανομένων όλων των εφαρμογών συστήματος, της διεπαφής χρήστη και των στοιχείων του, καθώς και των API που είναι κοινόχρηστα σε όλες τις συσκευές Android. Η υλοποίηση του προμηθευτή περιέχει τα HALs του προμηθευτή (Hardware Abstraction Layers) και τις ενότητες πυρήνα Linux και πυρήνα Linux.
Δεδομένου ότι οι OEM αποστέλλουν smartphone με πολλά διαφορετικά εξαρτήματα υλικού από πολλούς διαφορετικούς προμηθευτές, πρέπει να κάνουν πολλή δουλειά μόνο και μόνο για να θέσουν σε λειτουργία το υλικό και να λειτουργήσουν σε μία μόνο έκδοση του λειτουργικού συστήματος Android. Στη συνέχεια, με κάθε νέα ενημέρωση του λειτουργικού συστήματος Android, πρέπει να κάνουν ακόμη περισσότερη δουλειά για να βεβαιωθούν ότι το υλικό τους λειτουργεί με τη νέα έκδοση. Αλλά με το Project Treble να τυποποιεί το ABI (Δυαδική Διασύνδεση Εφαρμογών) μεταξύ του πλαισίου του λειτουργικού συστήματος Android και των HAL για μια συγκεκριμένη έκδοση Android, Οι OEM Android μπορούν να ξεκινήσουν να δοκιμάζουν ενημερώσεις στις συσκευές τους χωρίς να χρειάζεται να περιμένουν τους κατασκευαστές πυριτίου και άλλους κατασκευαστές εξαρτημάτων να ενημερώσουν την πλευρά τους ο κώδικας. Αυτή η αλλαγή επιταχύνθηκε αισθητά τον τρόπο χειρισμού των ενημερώσεων Android.
Αυτή είναι η ουσία του τι έχει κάνει το Project Treble για τις ενημερώσεις Android, αλλά αυτό που είναι πιο σημαντικό για τις εφαρμογές Οι προγραμματιστές εδώ είναι ότι το Treble έχει ενεργοποιήσει τη χρήση των Γενικών Εικόνων Συστήματος (GSIs) για συμβατότητα δοκιμές.
Η εμφάνιση των GSIs
Προκειμένου οι OEM να δοκιμάσουν εάν έχουν εφαρμόσει σωστά το Project Treble, η Google ορίζει ότι ο OEM θα πρέπει να μπορεί να εκκινήσει μια καθαρή έκδοση Android από το AOSP στη συσκευή. Αυτή η καθαρή έκδοση του Android ονομάζεται Γενική Εικόνα συστήματος ή GSI. Εάν οι μπότες GSI και το πιο βασικό υλικό λειτουργούν σωστά, τότε ο OEM γνωρίζει ότι η συσκευή του πληροί τις απαιτήσεις του Project Treble. Ο αρχικός σκοπός των GSI ήταν επομένως η δοκιμή συμβατότητας Treble, αλλά όπως είδαμε με την κοινότητα ανάπτυξης εδώ στο XDA-Developers, μπορούν να χρησιμοποιηθούν για άλλους σκοπούς. Είδαμε πώς τα GSIs θα μπορούσε ουσιαστικά να επιτρέψει σε συσκευές με βαριά Android UX να απολαμβάνουν την πιο πρόσφατη έκδοση του Android με λειτουργικές λειτουργίες εντός ημερών από τη νέα κυκλοφορία. Αλλά η Google οραματίζεται έναν άλλο σκοπό πίσω από το GSI: να δώσει στους προγραμματιστές εφαρμογών τη δυνατότητα να δοκιμάσουν τις εφαρμογές τους σε μια νέα έκδοση Android σε μια φυσική συσκευή που ήδη κατέχουν.
Με το Android 10, η Google κυκλοφόρησε τις δικές της εκδόσεις GSI για προγραμματιστές. Η Google εδραίωσε την ιδέα ότι οι προγραμματιστές εφαρμογών θα πρέπει να χρησιμοποιούν ένα GSI για να εκκινήσουν μια καθαρή έκδοση του Android στο δικό τους υλικό, καθιστώντας ευκολότερο τον έλεγχο της συμπεριφοράς της εφαρμογής τους έναντι του stock Android. Αυτή η μέθοδος προστέθηκε έτσι στις υπάρχουσες επιλογές δοκιμής συμβατότητας εφαρμογών σε stock Android χωρίς αλλαγές στη συμπεριφορά OEM, ενώ οι άλλες χρησιμοποιώντας ένα smartphone Pixel, χρησιμοποιώντας τον επίσημο εξομοιωτή Android στο Android Studio ή ανάπτυξη εκδόσεων εφαρμογής σε μια παρουσία συσκευής στο cloud.
Παρά την ευκολία που έφεραν μαζί τους τα GSI, η εγκατάστασή τους ήταν ακόμα μια κοπιαστική διαδικασία. Οι προγραμματιστές εφαρμογών μπορεί να μην αισθάνονται άνετα με το να αναβοσβήνουν με μη αυτόματο τρόπο μια εικόνα συστήματος σε μια συσκευή Android, καθώς αυτό είναι κάτι που συνήθως γνωρίζουν μόνο οι χομπίστες ή οι προγραμματιστές του λειτουργικού συστήματος Android. Η εγκατάσταση ενός GSI απαιτούσε να αναβοσβήνει μια εικόνα συστήματος μέσω του fastboot, κάτι που απαιτεί την απενεργοποίηση του Android Verified Boot και το ξεκλείδωμα του bootloader. Το ξεκλείδωμα του bootloader, με τη σειρά του, απαιτεί πλήρη διαγραφή δεδομένων χρήστη. Και όπως όλοι γνωρίζουμε, δεν υπάρχει ακριβώς μια διαδικασία ή οδηγός για το ξεκλείδωμα του bootloader κάθε συσκευής Android εκεί έξω, επομένως δεν υπάρχει συνέπεια. Για παράδειγμα, οι συσκευές Samsung δεν διαθέτουν fastboot, ενώ οι συσκευές Xiaomi σας κάνουν να πηδήξετε μέσα από μερικές κρίκους για να ξεκλειδώσετε το bootloader. Είναι ένα βολικό χάος που έχει τη δυνατότητα να ξεμπερδέψει σε κάτι πιο απλό.
Εδώ μπαίνουν οι ενημερώσεις δυναμικού συστήματος.
Δυναμικές ενημερώσεις συστήματος με απλή εγκατάσταση GSI
Η Google συνειδητοποίησε ότι η τρέχουσα μέθοδος εγκατάστασης GSI δεν ήταν η τέλεια λύση, έτσι άρχισαν να εργάζονται για μια καλύτερη λύση. Στο Android 10, Η Google άρχισε να δοκιμάζει τις Δυναμικές ενημερώσεις συστήματος, ή DSU. Το DSU είναι ένας νέος τρόπος για να εγκαταστήσετε προσωρινά ένα GSI χωρίς να χρειάζεται να χρησιμοποιήσετε εντολές fastboot για να αναβοσβήσετε μια εικόνα συστήματος, αντικαθιστώντας την αρχική εγκατάσταση. Με το DSU, μπορείτε να κάνετε εκκίνηση σε ένα GSI, να δοκιμάσετε την εφαρμογή σας και στη συνέχεια να επανεκκινήσετε άνετα στην αρχική σας εγκατάσταση, η οποία παρέμεινε ανέγγιχτη.
Ο λόγος που το DSU μπορεί να εγκαταστήσει ένα GSI χωρίς να αγγίξει την αρχική εγκατάσταση είναι ότι δημιουργεί νέες εικόνες διαμερισμάτων συστήματος και δεδομένων που αποθηκεύονται προσωρινά στο /data/gsi. Στη συνέχεια, αυτές οι εικόνες τοποθετούνται κατά την εκκίνηση αντί για το αρχικό σύστημα και τα διαμερίσματα δεδομένων. Επειδή το τηλέφωνο χρειάζεται επιπλέον αποθηκευτικό χώρο για αυτές τις νέες, προσωρινές εικόνες, το τηλέφωνό σας πρέπει να διαθέτει "λογικά διαμερίσματα", τα οποία είναι διαμερίσματα με δυνατότητα δυναμικής αλλαγής μεγέθους. Τα λογικά διαμερίσματα είναι ένα νέο σύστημα διαμερισμάτων χώρου χρηστών για Android, το οποίο είναι υποχρεωτικό για συσκευές που κυκλοφορούν με Android 10. Εάν η συσκευή σας ξεκίνησε με Android 10, τότε θα πρέπει να υποστηρίζει την εγκατάσταση GSI μέσω DSU.
Στο Android 10, το μόνο που χρειάζεται να κάνετε εγκαταστήστε ένα GSI μέσω DSU είναι να αλλάξετε μια ιδιότητα συστήματος και στη συνέχεια να εκκινήσετε το DynamicSystemUpdatesInstallationService στέλνοντας μια πρόθεση με τη διαδρομή προς το GSI ως πρόσθετη πρόθεση.
Αν και αυτή η διαδικασία μπορεί να φαίνεται άγνωστη, είναι πολύ πιο εύκολη και λιγότερο ενοχλητική σε σύγκριση με τη χρήση εντολές fastboot και αντιμετώπιση της ταλαιπωρίας των πάντων, συμπεριλαμβανομένης της αρχικής εγκατάστασης σκουπίστηκε. Απαιτείτε κάποια γνώση του ADB και των προθέσεων για να κάνετε χρήση του DSU, αλλά αυτό δεν θα πρέπει να αποτελεί πρόβλημα για τους περισσότερους προγραμματιστές εφαρμογών εκεί έξω. Ωστόσο, δεν υπάρχει κανένας λόγος που η διαδικασία δεν θα μπορούσε να γίνει ακόμα πιο απλή. Επιπλέον, υπάρχει το γεγονός ότι η εγκατάσταση ενός GSI μέσω DSU εξακολουθεί να απαιτεί να ξεκλειδώσετε τον bootloader, διαγράφοντας όλα τα δεδομένα χρήστη στη διαδικασία. Για το σκοπό αυτό, η Google έχει εφαρμόσει αλλαγές για να βελτιώσει και τις δύο πτυχές της εγκατάστασης GSI. Στο Android 11, έχουν εξαλείψει την ανάγκη χρήσης της γραμμής εντολών για την εγκατάσταση ενός GSI. Ξεχωριστά, κατέστησαν επίσης δυνατή την εγκατάσταση ενός GSI χωρίς να ξεκλειδώσετε το bootloader.
DSU Loader στο Android 11
Το DSU Loader είναι ένα νέο εργαλείο που υπάρχει στις Επιλογές προγραμματιστή του Android 11 που σας επιτρέπει Κατεβάστε και εγκαθιστώ το πιο πρόσφατο GSI από την Google χωρίς να χρειάζεται να εισαγάγετε εντολές fastboot ή ADB. Απλώς πατήστε την επιλογή DSU Loader στις Ρυθμίσεις και θα εμφανιστεί ένα παράθυρο διαλόγου με μια λίστα με τα υποστηριζόμενα GSI απευθείας από την Google. Αυτά τα υποστηριζόμενα GSI θα βασίζονται στο τρέχον λειτουργικό σύστημα και την αρχιτεκτονική σας, επομένως μπορείτε να εγκαταστήσετε μόνο GSI που είναι νεότερα από την έκδοση του λειτουργικού σας συστήματος και που ταιριάζουν με την αρχιτεκτονική SoC σας. Απλώς επιλέξτε το GSI που θέλετε να εγκαταστήσετε και θα ληφθεί από τους διακομιστές της Google και θα εγκατασταθεί αυτόματα στο παρασκήνιο.
Με το DSU Loader, οι προγραμματιστές δεν χρειάζεται ποτέ να αγγίξουν τη γραμμή εντολών για να εγκαταστήσουν ένα GSI. Τουλάχιστον, αυτό είναι το όνειρο, γιατί μένει ακόμη ένα ζήτημα να λυθεί.
Ο δρόμος μπροστά
Επί του παρόντος, για να εγκαταστήσετε ένα GSI μέσω DSU Loader, χρειάζεστε έναν ξεκλείδωτο bootloader. Αν και αυτό μπορεί να νικήσει τον σκοπό της όλης δοκιμασίας, δεν υποτίθεται ότι είναι έτσι, και μας λένε ότι θα διορθωθεί. Η Google έχει σχεδιάσει ώστε οι χρήστες να μπορούν να εκκινούν GSI υπογεγραμμένα από την Google μέσω DSU χωρίς να χρειάζεται να ξεκλειδώσουν το bootloader. Στην πραγματικότητα, η Google το επιβάλλει όλες οι συσκευές εκκίνησης Android 10 περιλαμβάνουν τα δημόσια κλειδιά Android Verified Boot των υπογεγραμμένων από την Google Android 10, Android 11 και Android 12 GSI. Η συμπερίληψη των δημόσιων κλειδιών AVB στο ramdisk της συσκευής θα διασφαλίσει ότι το AVB δεν θα απορρίψει το GSI που προσπαθείτε να εκκινήσετε. Αυτός είναι ο λόγος για τον οποίο η τρέχουσα μέθοδος περιλαμβάνει ξεκλείδωμα του bootloader - αναβοσβήνοντας μια κενή εικόνα vbmeta στο διαμέρισμα vbmeta, απενεργοποιείτε το AVB έτσι ώστε να μην απορρίπτει το GSI που πρόκειται να αναβοσβήσετε. Ωστόσο, η απενεργοποίηση του AVB αποτελεί σημαντικό κίνδυνο για την ασφάλεια, καθώς σημαίνει ότι τυχόν τροποποιηθεί Το διαμέρισμα συστήματος/εκκίνησης/προϊόντος/προμηθευτής μπορεί να φορτωθεί στη συσκευή, γι' αυτό η Google θέλει να κάνει μακριά από αυτή την απαίτηση.
Πότε λοιπόν μπορείτε να περιμένετε να εκκινήσετε ένα GSI μέσω DSU χωρίς να χρειάζεται να ξεκλειδώσετε τον φορτωτή εκκίνησης ή να χρησιμοποιήσετε εργαλεία γραμμής εντολών; Ας ελπίσουμε ότι σύντομα, καθώς η Google μάς ανέφερε ότι είχαν μερικές ασάφειες για να τελειώσουν με τις αρχικές προεπισκοπήσεις προγραμματιστών Android 11 προτού μπορέσουν να λειτουργήσουν σωστά όλα αυτά. Προχωρώντας προς τα εμπρός, μπορεί κανείς να αναμένει την εγκατάσταση μελλοντικών GSI προεπισκόπησης προγραμματιστών μέσω DSU χωρίς να χρειάζεται να ξεκλειδώσετε τον bootloader. Ίσως όταν διατίθενται οι προεπισκοπήσεις προγραμματιστών Android 12, θα μπορείτε ακόμη και να το εκκινήσετε πλήρως χρησιμοποιώντας το DSU Loader στις Επιλογές προγραμματιστή του Android 11. Για τους προγραμματιστές εφαρμογών, αυτό σημαίνει ότι θα υπάρχει ένας ακόμη τρόπος για να δοκιμάσετε τις εφαρμογές σας σε φυσικό υλικό που εκτελούν μια νέα έκδοση Android.