Το επίσημο Xposed Framework για το Android Nougat είναι εδώ

click fraud protection

Μετά από μακρά αναμονή, ο προγραμματιστής του Xposed Framework ανακοίνωσε επίσημα ότι το έργο υποστηρίζει πλέον το Android Nougat. Εγκαταστήστε τα Xposed Modules τώρα!

Καθώς το οικοσύστημα Android έχει ωριμάσει με τα χρόνια, όλο και λιγότεροι χρήστες βρίσκουν λόγους για τους οποίους πρέπει να κάνουν root τη συσκευή τους. Υπάρχει μια αυξανόμενη τάση των χρηστών που επιλέγουν να παραμείνουν στο υλικολογισμικό μετοχών, είτε επειδή βρίσκουν την εμπειρία ικανοποιητική είτε επειδή δεν θέλουν να παίξουν ένα παιχνίδι γάτας και ποντικιού με το SafetyNet API της Google. Αλλά αν ρωτούσατε έναν χρήστη στις αρχές του 2016 γιατί έκανε root τα τηλέφωνά του, ίσως ο νούμερο ένα λόγος που δόθηκε ήταν για να μπορέσει εγκαταστήστε το Xposed Framework. Έχει γίνει πάνω από ένα χρόνο από το Android 7.0 Nougat κυκλοφόρησε για πρώτη φορά, αλλά η μακρά αναμονή τελείωσε επιτέλους: Το επίσημο Xposed Framework για Android Nougat είναι επιτέλους διαθέσιμο.

Κατά τη διάρκεια του περασμένου έτους, XDA Senior Recognized Developer

rovo89, ο κύριος προγραμματιστής του Xposed Framework, παρείχε αρκετάενημερώσεις σχετικά με την πρόοδο του Xposed Framework για Android Nougat. Για κάποιους, το η αναμονή ήταν ανεκτή κυρίως λόγω του τεράστιου αριθμού πρόσθετων λειτουργιών που προσφέρει το Xposed Framework Android Marshmallow. Αλλά πολλοί άλλοι έχουν προχωρήσει σε μια ζωή χωρίς Xposed στις συσκευές τους.

Είδαμε μια γεύση ανανεωμένου ενθουσιασμού στο έργο όταν ο προγραμματιστής abforce κυκλοφόρησε ένα Υποενότητα ART για AOSP 7.1.2, αλλά όπως επισημαίνει ο δικός μας GermainZ καλύτερα να περιμένετε το επίσημο Xposed Framework Η απελευθέρωση ως εφαρμογή του abforce απαιτούσε την ενσωμάτωση του πλαισίου σε προσαρμοσμένες ROM. Επί πλέον, αυτή η ανεπίσημη εφαρμογή ήταν ελλιπής, οδηγώντας σε ασυνεπή ή λανθασμένη συμπεριφορά με ορισμένα Xposed Ενότητες.

Ενώ ο abforce έκανε εξαιρετική δουλειά για να βάλει το ανεπίσημο Xposed του να δουλέψει στο Android 7.1 Nougat, η εφαρμογή του ήταν αντίθετη. Το όραμα του rovo89 για το Xposed—ότι θα πρέπει να είναι μια σταθερή λύση που παρέχει ένα αξιόπιστο και εύκολο στη χρήση συμβόλαιο για χρήστες και προγραμματιστές ομοίως. Αυτό που εννοούμε με αυτό είναι ότι όχι μόνο οι λειτουργικές μονάδες πρέπει να λειτουργούν χωρίς προβλήματα για τους χρήστες, αλλά και ο τρόπος με τον οποίο ρυθμίζονται οι ενότητες up θα πρέπει να είναι συνεπής μεταξύ των χρηστών, ώστε οι προγραμματιστές να γνωρίζουν εάν μια μονάδα Xposed ευθύνεται ή όχι για μια εφαρμογή σύγκρουση.

Δεν χρειάζεται πλέον να ανησυχούμε για ζητήματα όπως το rovo89 (μετά από κάποια βοήθεια από τον αναγνωρισμένο προγραμματιστή XDA ουάναμ) είναι τώρα έτοιμο να κυκλοφορήσει μια επίσημη ενημέρωση για το Xposed Framework and Installer—φέρνοντας συμβατότητα με Android 7.0/7.1 Nougat. Αυτό σημαίνει ότι δεν θα χρειαστεί να εγκαταστήσετε μια προσαρμοσμένη ROM ή να αντιμετωπίσετε τις ασταθείς εκδόσεις που αναβοσβήνουν απολαύστε το Xposed—απλώς root το τηλέφωνό σας και εγκαταστήστε την πιο πρόσφατη εφαρμογή Xposed Installer (σύνδεσμος παρακάτω) και ο Το Xposed Installer θα κάνει τη μαγεία της εγκατάστασης του Xposed για εσάς.

Xposed Installer Περιήγηση στο χώρο αποθήκευσης της μονάδας

Αυτό μπορεί να φαίνεται λίγο αργά σε ορισμένα μυαλά, ειδικά από τη στιγμή που έρχεται αυτή η έκδοση περισσότερο από ένα μήνα μετά την κυκλοφορία του Android 8.0 Oreo. Λάβετε υπόψη ότι πολύ λίγες συσκευές θα έχουν πρόσβαση σε μια σταθερή έκδοση του Android Oreo για πολλούς μήνες. Android Oreo είναι μόνο σε 0.2% όλων των συσκευών Android (σε σύγκριση με ~18% στο Nougat) σύμφωνα με τα πιο πρόσφατα στατιστικά στοιχεία από την Google, αλλά πολλοί από τους χρήστες μας είναι αυτοί που αγαπούν την εγκατάσταση προσαρμοσμένων ROM για να παραμείνουν στην αιμορραγία.

Διανομή έκδοσης Android από τον Οκτώβριο του 2017. Πηγή: Google

Αν και ακόμα κι αν εγκαταστήσετε ένα ανεπίσημη θύρα του Android 8.0 διαθέσιμες σε μυριάδες συσκευές στα φόρουμ μας, πολλές από αυτές τις θύρες δεν είναι καθημερινή κατάσταση προγράμματος οδήγησης. Έτσι, εκτός αν είστε διατεθειμένοι να ξοδέψετε εκατοντάδες δολάρια για ένα ολοκαίνουργιο Google Pixel 2/2 XL, Sony Xperia XZ1/XZ1 Compact, ή μια επερχόμενη συσκευή όπως η Huawei Mate 10, τότε πιθανότατα θα μπορείτε να αποσπάσετε αρκετούς μήνες χρήσης από το Xposed Framework στο Android Nougat.

Αν σας ακούγεται αυτό, τότε μεταβείτε στο επίσημο νήμα του φόρουμ για το Xposed Installer και τα φερμουάρ πλαισίου για να το θέσετε σε λειτουργία στη συσκευή σας Android Nougat.

Λήψη Xposed Installer v3.1.2 (Συνημμένο)

Λήψη του Xposed Installer για Nougat 7.0 (SDK24).

Λήψη του Xposed Installer για Nougat 7.1 (SDK25).

Για τους πολλούς νεότερους χρήστες που δεν είναι τόσο εξοικειωμένοι με τι μπορεί να χρησιμοποιηθεί το Xposed Framework ή πώς λειτουργεί, θα εξηγήσει εν συντομία το Xposed Framework παρακάτω, γιατί θα πρέπει να είστε ενθουσιασμένοι και γιατί η ανάπτυξη σε αυτό χρειάστηκε όσο χρόνο έκανε.


Γιατί να εγκαταστήσετε το Xposed Framework;

Θέλετε να αποκτήσετε προσαρμοσμένες δυνατότητες ROM χωρίς να αναβοσβήνει μια προσαρμοσμένη ROM; Η μητέρα όλων των Xposed Modules για την προσαρμογή της ROM σας, γνωστή ως GravityBox, έχεις καλύψει. Θέλετε να προσαρμόσετε τις ρυθμίσεις εμφάνισης ανά εφαρμογή; Δοκιμάστε Ρυθμίσεις εφαρμογής. Τι θα λέγατε να προσαρμόσετε ορισμένες εφαρμογές όπως Hangouts; Ή να τροποποιήσετε το Instagram για να μπορείτε κατεβάστε όποιες αναρτήσεις σας αρέσουν?

Το Xposed δίνει στους προγραμματιστές τη δυνατότητα να τροποποιούν σχεδόν ό, τι θέλουν—προορίζονται κυρίως σε μεμονωμένες εφαρμογές, αλλά ακόμη και λειτουργίες σε όλο το σύστημα μπορούν να τροποποιηθούν. Τα παραδείγματα που παραθέσαμε είναι μόνο η κορυφή του παγόβουνου. Ο αριθμός των πρόσθετων λειτουργιών που μπορείτε να προσθέσετε ή των εφαρμογών που μπορείτε να τροποποιήσετε είναι απίστευτος—απλώς αναζητήστε μέσα από το επίσημο αποθετήριο Xposed Module για να δείτε μόνοι σας. Λάβετε υπόψη ότι ορισμένες μονάδες μπορεί να χρειαστεί να ενημερωθούν για αυτήν τη νέα έκδοση και για την υποστήριξη Nougat, οπότε φροντίστε να ελέγξετε πριν τις εγκαταστήσετε στη Nougat ROM σας!

Πώς λειτουργούν τα Xposed Modules;

Η ουσία του είναι ότι το Xposed Framework επιτρέπει στις μονάδες να «αγκιστρώστε» στις μεθόδους Java οποιασδήποτε εφαρμογής— είτε πρόκειται για εγκατεστημένη από τον χρήστη είτε για εφαρμογή συστήματος. Το Xposed επιτρέπει στα modules να εκτελούν τις δικές τους μεθόδους πριν, κατά τη διάρκεια ή στη θέση του τις αρχικές μεθόδους της εφαρμογής-στόχου.

Για παράδειγμα, φανταστείτε μια μέθοδο που χρησιμοποιείται στην εφαρμογή Gmail που δημοσιεύει ειδοποιήσεις για νέα email. Από προεπιλογή, η μέθοδος δημιουργεί μια νέα ειδοποίηση με κουμπιά για αρχειοθέτηση/διαγραφή ή απάντηση στο email. Μια μονάδα Xposed θα μπορούσε να δημιουργηθεί για να συνδεθεί σε αυτήν τη μέθοδο και να προσθέσει ένα νέο κουμπί όπως "επισήμανση ως αναγνωσμένης". (Ναι, υπάρχει ήδη μια Ενότητα για αυτό ακριβώς.)

Τα παραπάνω είναι μια υπερβολική απλοποίηση του τελικού αποτελέσματος αυτού που επιτρέπει στο Xposed Framework να κάνουν οι λειτουργικές μονάδες του. Το ίδιο το Framework είναι απίστευτα πολύπλοκο και το κάνει να λειτουργεί σχεδόν καθολικά σε συσκευές με root—χωρίς να χρειάζεται προσαρμοσμένη ROM—αυτός είναι ο λόγος που το Xposed για Android Nougat χρειάστηκε τόσο πολύ για να ολοκληρωθεί.

Γιατί η ανάπτυξη του Xposed διαρκεί τόσο πολύ;

Η μαγεία πίσω από το Xposed—αυτό που επιτρέπει στις μονάδες να αγκιστρώνονται σε μεθόδους άλλων εφαρμογών—απαιτεί βαθιά γνώση του τρόπου με τον οποίο το Zygote και το Android Runtime (Εργα ΤΕΧΝΗΣ. Αυτές οι απαιτήσεις αποκλείουν ήδη μεγάλο αριθμό ατόμων από το να συνεισφέρουν στο έργο, αλλά το πρόβλημα επιδεινώνεται από το γεγονός ότι Το rovo89 ήταν ο κύριος συντελεστής του Xposed τα τελευταία 5 χρόνια.

Αυτός είναι ο λόγος για τον οποίο απορρίφθηκαν οι εκκλήσεις για open source των τροποποιήσεών του στο Xposed από την τελευταία δημόσια κυκλοφορία του Xposed. Είναι το πνευματικό του τέκνο και είναι ο καλύτερος στο να το κατανοήσει και να το τροποποιήσει, οπότε προσθέτει περισσότερο ανθρώπινο δυναμικό στο έργο σε τόσο αργό στάδιο θα μπορούσε απλώς να καθυστερήσει περαιτέρω το έργο.

Επιπλέον, αν ο rovo89 ενημέρωσε συνεχώς την πηγή του, ανησύχησε ότι κάποιος θα έπαιρνε τον ημιτελή κώδικα για να δημιουργήσει ένα ημι-λειτουργικό Xposed Framework χωρίς το καθολικό πρόγραμμα εγκατάστασης Xposed να το συνοδεύει. (Αυτό ακριβώς συνέβη ούτως ή άλλως με την abforce υλοποίηση και το χάος που προέκυψε από διάφορες μεθόδους εγκατάστασης δικαιολογούσε τον δισταγμό του rovo89.)

Έτσι, το καλύτερο που μπορούσαμε να κάνουμε ήταν να δώσουμε χρόνο στον rovo89 να δουλέψει στο έργο του για το κατοικίδιο. Το Xposed δεν είναι η πλήρης ή ακόμη και η μερική του απασχόληση. Είναι απλά ένα χόμπι, ένα που το κάνει προς όφελος της κοινότητας εδώ και 5 χρόνια. Ένα έργο τόσο περίπλοκο όσο το Xposed απαιτεί χρόνο για να δουλέψει και μετά να δοκιμάσει—χρόνο που δεν είχε συχνά λόγω των άλλων υποχρεώσεών του. Πρόοδος ήταν που δημιουργήθηκαν τον περασμένο χρόνο, ακριβώς όπως τεκμηριώθηκε ο rovo89 σε μερικές από τις δημόσιες ενημερώσεις του σχετικά με το θέμα μέχρι που τελικά τόσο το ίδιο το Xposed Framework όσο και το Xposed Installer είναι έτοιμα για κυκλοφορία.

Τι έκανε το rovo89 για να δουλέψει το Xposed στο Nougat;

Οι νέες εκδόσεις του Android μερικές φορές επιφέρουν αλλαγές στον τρόπο λειτουργίας του ART, κάτι που μπορεί να απαιτεί την εκ νέου επεξεργασία τμημάτων του Xposed. Το Android 7.0 Nougat παρουσίασε έναν μεταγλωττιστή Just-in-Time για το ART για να βοηθήσει στη βελτίωση της απόδοσης του χρόνου εκτέλεσης των εφαρμογών, για παράδειγμα. Αλλά το ανεπίσημο Xposed Framework by abforce απλώς απενεργοποιεί πολλές βελτιστοποιήσεις ART, έτσι ώστε η σύνδεση μεθόδου να μπορεί να λειτουργήσει σωστά.

Βελτιστοποιήσεις ART στο Android Nougat. Πηγή: Google

Αντίθετα, η υλοποίηση του rovo89 διατηρεί όλες τις βελτιστοποιήσεις ART στο Android Nougat με την εκ νέου μεταγλώττιση του καλούντος μιας μεθόδου χρησιμοποιώντας το JIT και τη διατήρηση της μεθόδου στη θέση του. Αυτό σημαίνει ότι μπορείτε να απολαύσετε τα πλεονεκτήματα μιας μονάδας Xposed χωρίς να θυσιάζετε την απόδοση απενεργοποιώντας αναγκαστικά τις βελτιστοποιήσεις ART.

Για περισσότερες λεπτομέρειες σχετικά με το τι έκανε ο rovo89 για να επιτύχει τελικά μια αξιόπιστη μέθοδο αγκίστρωσης στο Xposed για Android Nougat, σας συνιστούμε να διαβάσετε την παρακάτω δήλωση που μας παρείχε.

Ολόκληρη η δήλωση από το rovo89

Ο πυρήνας του Xposed είναι προφανώς η ικανότητά του να συνδέει μεθόδους Java, δηλαδή να αφήνει τις μονάδες να εκτελούν κώδικα πριν, μετά ή αντί αυτών των μεθόδων. Σχεδόν κάθε άλλη λειτουργικότητα βασίζεται σε αυτό, επομένως είναι σημαντικό να λειτουργεί πάντα όπως αναμένεται. Η γενική ιδέα είναι η ίδια από τότε που ανακάλυψα το Xposed πριν από πέντε χρόνια, απαιτεί αλλαγή του σημείου εισόδου της μεθόδου. Αυτό αρχίζει να αποτυγχάνει όταν το σημείο εισόδου δεν ελέγχεται κατά την εκτέλεση - κάτι που συμβαίνει στην πραγματικότητα με ορισμένες από τις βελτιστοποιήσεις στο ART.

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

Το ART είναι αρκετά έξυπνο για να παρατηρήσει ότι η μέθοδος double() είναι πολύ απλή και επομένως ενσωματώνει τη λογική απευθείας στη μέθοδο doSomething(), ως εξής:

Μπορείτε ακόμα να συνδέσετε τη μέθοδο double(), αλλά δεν θα καλείται πια από την doSomething() κατά το χρόνο εκτέλεσης, και έτσι δεν θα γίνεται και η επιστροφή κλήσης σας. Η ART είναι ακόμα πιο έξυπνη: Συνειδητοποιεί ότι η μαγεία είναι πάντα 42 και επομένως η προϋπόθεση δεν μπορεί ποτέ να εκπληρωθεί. Οπότε ολόκληρη η μέθοδος doSomething() είναι στην πραγματικότητα ένα no-op:

Σε προηγούμενες εκδόσεις, το Xposed συνήθιζε να απενεργοποιεί πλήρως αυτές τις βελτιστοποιήσεις και να αναγκάζει την εκ νέου μεταγλώττιση των πάντων. Αυτό είχε πολλά μειονεκτήματα. Πρώτα απ 'όλα, οι προγραμματιστές ART κάνουν φανταστική δουλειά στη μεγιστοποίηση της απόδοσης με τους βελτιστοποιήσεις και η απενεργοποίησή τους οδηγεί αναγκαστικά σε μικρότερη απόδοση (ποτέ δεν μέτρησα πόσο αν και). Στη συνέχεια, η ίδια η επανασύνταξη δεν είναι πάντα εύκολη και μου προκάλεσε πολλούς πονοκεφάλους, ειδικά στην αρχή. Τέλος, τα εκ νέου μεταγλωττισμένα αρχεία καταλαμβάνουν χώρο, εκτός από τα προμεταγλωττισμένα αρχεία στο /system.

Οι ανεπίσημες εκδόσεις για το Nougat απενεργοποιούν επίσης αυτές τις βελτιστοποιήσεις, αλλά δεν επιβάλλουν την εκ νέου μεταγλώττιση (επειδή η θύρα είχε αρχικά κατασκευαστεί για να ενσωματωθεί στη ROM). Επομένως, τα hook μπορεί να μην εκτελούνται μερικές φορές.

Με την επίσημη έκδοση, θα μπορείτε να διατηρήσετε τον βελτιστοποιημένο κώδικα και να έχετε ακόμα αξιόπιστα άγκιστρα. Πώς λειτουργεί αυτό; Λοιπόν, το Xposed καταγράφει όλες τις κλήσεις που γίνονται. Αυτό συμβαίνει κατά τη μεταγλώττιση των APK ή σε ξεχωριστό πάσο για προ-βελτιστοποιημένο κώδικα. Αυτά τα πρόσθετα δεδομένα δεν καταλαμβάνουν πολύ χώρο, αλλά επιτρέπουν στο Xposed να ανακαλύψει πού μπορεί να είχε ενσωματωθεί μια συγκεκριμένη μέθοδος. Έτσι, όταν μια μέθοδος είναι συνδεδεμένη, όλοι οι καλούντες της θα αποβελτιστοποιηθούν, δηλαδή ο κώδικάς τους δεν θα χρησιμοποιείται πλέον. Αυτό διασφαλίζει ότι το άγκιστρο θα κληθεί σίγουρα. Και αν ο καλών χρησιμοποιείται σε μεγάλο βαθμό, απλώς θα μεταγλωττιστεί εκ νέου με JIT, αυτή τη φορά με τη γνώση ότι η μέθοδος είναι συνδεδεμένη και επομένως ορισμένες από τις βελτιστοποιήσεις δεν ισχύουν. Αυτό σημαίνει ότι τα αποτελέσματα των μεθόδων αγκίστρωσης μειώνονται στο ελάχιστο. Ναι!

Τώρα προχωρήστε και δοκιμάστε το. Βεβαιωθείτε ότι χρησιμοποιείτε το Xposed Installer 3.1.2, καθώς η διαδρομή διαμόρφωσης έπρεπε να αλλάξει για να υποστηρίζεται η κρυπτογράφηση βάσει αρχείων.

Διαβάστε περισσότερα

συμπέρασμα

Ελπίζουμε να είστε τόσο ενθουσιασμένοι όσο εμείς για την κυκλοφορία του Xposed για Android 7.X Nougat. Η αναμονή ήταν μεγάλη, αλλά αναπόφευκτη δεδομένης της απόλυτης πολυπλοκότητας του Xposed. Εάν εξακολουθείτε να έχετε σύγχυση σχετικά με το τι είναι το Xposed ή πώς λειτουργεί, μην ανησυχείτε. Πολύ λίγοι άνθρωποι (συμπεριλαμβανομένων εμείς) καταλαβαίνουν πραγματικά πώς λειτουργεί. Προγραμματιστές όπως το rovo89 κάνουν ό, τι μπορούν για να συσκευάζουν τη δουλειά τους, ώστε να μην χρειάζεται πραγματικά να καταλάβετε τι συμβαίνει κάτω από την κουκούλα.

Σας αρέσει το Xposed Framework; Σκεφτείτε να κάνετε δωρεά στον rovo89 για την καταπληκτική δουλειά που κάνει. Εάν πιστεύετε ότι έχετε ό, τι χρειάζεται για να συνεισφέρετε στο έργο, ρίξτε μια ματιά στη σελίδα GitHub του rovo89 παρακάτω.

Κάντε δωρεά στο rovo89

Συνεισφέρετε στο Xposed

Ψάχνετε για Xposed Modules; Ρίξτε μια ματιά στο υποφόρουμ Xposed Framework Module ή κατεβάστε την εφαρμογή XDA Labs και περιηγηθείτε στη συλλογή των Xposed Module.

Xposed Modules Forum

Κατεβάστε το XDA Labs

Πρόοδος Android Oreo

Σε περίπτωση που αναρωτιέστε, δείτε πώς είναι η πρόοδος στη λήψη του Xposed για Android Oreo:

Έχω ήδη ξεκινήσει να δουλεύω στο Android 8.0. Υπάρχουν λίγα νέα χαρακτηριστικά γλώσσας που θα πρέπει να κοιτάξω, αλλά η γενική ιδέα θα πρέπει ακόμα να λειτουργεί. Αυτό περιλαμβάνει όλη την εργασία για την ακύρωση του μεταγλωττισμένου κώδικα οποιωνδήποτε καλούντων όταν αγκιστρωθεί μια μέθοδος, η οποία πήρε μακράν τον περισσότερο χρόνο όταν δούλευα στο Nougat. Οπότε είμαι πολύ σίγουρος ότι αυτή τη φορά θα είμαι πολύ πιο γρήγορος. Android 8.1δεν θα πρέπει να είναι πολύ διαφορετικό, οπότε δεν περιμένω πολλή επιπλέον δουλειά για αυτό.