Breaking: Η Chainfire ανακοίνωσε σήμερα το SuperSU Beta 2.27, καταργώντας την ανάγκη για τροποποιήσεις ramdisk του πυρήνα για χρήση της πρόσβασης root στο Android 5.0
Μέχρι τώρα, αν θέλατε να αποκτήσετε root στο Android 5.0, έπρεπε να αναβοσβήσετε έναν τροποποιημένο πυρήνα στη συσκευή σας για να αντιμετωπίσετε ορισμένους περιορισμούς SELinux. XDA Senior Recognized Developer Αλυσίδα πρόσφατα κυκλοφόρησε το προηγουμένως απαραίτητο CF-Auto-Root πακέτο, το οποίο έκανε τις απαραίτητες τροποποιήσεις ramdisk του πυρήνα για την κατάργηση του περιορισμού SELinux από το σενάριο install-recovery.sh στο AOSP. Σήμερα το πρωί, ωστόσο, ο Chainfire έφερε χαμόγελα σε πολλά πρόσωπα, όπως ο ίδιος ανακοινώθηκε στο Twitter ότι αυτό δεν θα ήταν πλέον απαραίτητο στο μέλλον.
Μέχρι σήμερα, η Chainfire είχε σχεδιάσει να κυκλοφορήσει ένα αυτοματοποιημένο εργαλείο επιδιόρθωσης που βασίζεται σε ZIP, αυτόματα επιδιορθώστε τις εικόνες του πυρήνα μέσα από την ανάκτηση TWRP, μέχρι που βρήκε μια κατάλληλη μέθοδο για να αφαιρέσει την ανάγκη Αυτό.
Αυτή η αποκάλυψη σημαίνει ότι οι χρήστες Android 5.0 δεν χρειάζεται πλέον να εκτελούν έναν τροποποιημένο πυρήνα για να αποκτήσουν πρόσβαση root μέσω SuperSU (ή άλλων λύσεων root). Αν και δεν αποτελεί τεράστιο πρόβλημα στις συσκευές Nexus με ξεκλειδωμένους bootloaders, η ανάγκη για τροποποιήσεις ramdisk ήταν ανησυχητικό για πολλούς χρήστες συσκευών κλειδωμένων με bootloader για τις οποίες δεν είναι διαθέσιμο ξεκλείδωμα (ναι, δυστυχώς το κάνουν υπάρχει). Η απάντηση στις προσευχές τους είναι τώρα εδώ, και μπορούμε να παρουσιάσουμε μια αποκλειστική εξήγηση των αλλαγών που χρειάζονται. Τουλάχιστον προς το παρόν (μέχρι/εκτός αν το διορθώσει η Google), είναι δυνατό να αποκτήσετε πρόσβαση root και, στη συνέχεια, να εγκαταστήσετε και να χρησιμοποιήσετε το SuperSU σε μια stock συσκευή Android 5.0, χωρίς καμία προσαρμογή του ramdisk του πυρήνα. Ο λόγος για αυτό είναι η ανάγκη για το SuperSU να εκτελεί μια υπηρεσία ως root, ώστε να επιτρέπει την απεριόριστη πρόσβαση root σε συσκευές που προστατεύονται από SELinux.
Προηγουμένως, το SuperSU θα αξιοποιούσε το προεγκατεστημένο AOSP flash_recovery υπηρεσία (χρησιμοποιείται στο AOSP για την ενημέρωση της ανάκτησης μετά από εγκατάσταση OTA) για την εκκίνηση του δαίμονα SuperSU (ο οποίος παρέχει στην πραγματικότητα τα δικαιώματα root για εφαρμογές που το ζητούν). Με την κυκλοφορία του Lollipop, αυτή η υπηρεσία προστέθηκε σε ένα περιορισμένο πλαίσιο SELinux, που σημαίνει ότι δεν έχει πλέον ανόθευτη πρόσβαση στο σύστημα. Οι προηγούμενες τροποποιήσεις του πυρήνα προσπάθησαν να αφαιρέσουν τους περιορισμούς SELinux από αυτό το σενάριο.
Η τελευταία έκδοση beta του SuperSU του Chainfire επιλύει αυτό το πρόβλημα χρησιμοποιώντας την βασική υπηρεσία «Zygote» (υπεύθυνη για την εκκίνηση όλων των υπηρεσιών Java και, επομένως, όλων των εφαρμογών που είναι εγκατεστημένες σε μια συσκευή). Δεδομένου ότι το Zygote είναι μία από τις μοναδικές διαθέσιμες υπηρεσίες στο Android L, η οποία ξεκινά ως root εντός του απεριόριστο περιβάλλον "init" SELinux, αυτό το καθιστά πρωταρχικό στόχο για χρήση στη λειτουργία του SuperSU. Μετά την εκκίνηση, η υπηρεσία Zygote έχει το περιβάλλον "init" του SELinux στο τελικό (περιορισμένο) πλαίσιο "Zygote". Το Chainfire κατάφερε να τροποποιήσει επιτυχώς τα αρχεία Zygote, προκειμένου να εκτελέσει τον κώδικα ως χρήστης root, εντός του απεριόριστου περιβάλλοντος "init", φέρνοντας έτσι το SuperSU πίσω στο Android L, χωρίς πυρήνα τροποποιήσεις.
Αυτή δεν είναι η πρώτη φορά που η Chainfire στρέφεται στη Zygote για να λύσει αυτά τα προβλήματα. η προηγούμενη έκδοση 2.23 beta χρησιμοποιούσε το Zygote ως μέσο για την πιθανή παράκαμψη ορισμένων άλλων προβλημάτων του SELinux (τα οποία προκαλούσαν τη διακοπή των εφαρμογών root στο Android L). Αυτό επέτρεψε σε ορισμένες (αλλά όχι σε όλες) τις μη λειτουργικές εφαρμογές να λειτουργήσουν - οι υπόλοιπες απαιτούν ορισμένες ενημερώσεις από τους προγραμματιστές τους. Δυστυχώς, όταν ζητήθηκε η γνώμη του κώδικα 5.0 AOSP, προέκυψε ότι η Google είχε ήδη παραβιάσει αυτήν τη μέθοδο εξαγοράς της υπηρεσίας Zygote. Δεδομένου ότι όλες οι προηγούμενες προσπάθειές του να αναλάβει το Zygote είχαν αποτύχει, αυτό είναι ένα πολλά υποσχόμενο βήμα προς τα εμπρός.
Η Chainfire ήθελε να επισημάνει ότι η SuperSU έχει από καιρό τη δυνατότητα να τροποποιεί τις πολιτικές SELinux σε ένα λειτουργικό σύστημα (και προειδοποιεί για την ευκολία με που ένας OEM θα μπορούσε να το απενεργοποιήσει και να αποτρέψει πραγματικά την ουσιαστική και απλή πρόσβαση root), και πώς πρέπει να γίνουν οποιεσδήποτε τροποποιήσεις στο Zygote προσεκτικά, δεδομένου ότι η υπηρεσία εκτελείται από διάφορα διαφορετικά περιβάλλοντα, για διαφορετικές εργασίες, και αυτό αυξάνει την πιθανότητα μιας σειράς (άσχημα) λεπτές αποτυχίες. Αυτή η νέα SuperSU beta 2.27 είναι μια κατασκευή για τους λάτρεις και άλλους τεχνικούς να παίξουν μαζί τους, για να ανακαλύψουν τι χαλάει. Σταυρωμένα δάχτυλα -- δεν υπάρχουν απροσδόκητα σφάλματα επίδειξης, και αυτός είναι ένας βιώσιμος τρόπος να προχωρήσουμε.
Λάβετε υπόψη - ακόμα κι αν αυτό το beta λειτουργεί και το Zygote είναι η προτιμώμενη λεωφόρος για να αποκτήσετε πρόσβαση root, στο εξής, η όλη διαδικασία είναι μόνο μια αλλαγή μιας γραμμής μακριά από τη διάσπαση από την Google, η οποία θα έκανε τους διορθωμένους ramdisks πυρήνα το μέλλον για πρόσβαση root στο Android (άρα αποκλείοντας το root για κλειδωμένο με bootloader συσκευές). Πράγματι, ως heads-up, η νέα διαδικασία μπορεί να μην λειτουργεί καν σε μια πλήρως ενημερωμένη έκδοση AOSP, λόγω κάποιου αρκετά μεγάλου SELinux αλλαγές εντός των τελευταίων μηνών, οι οποίες δεν συμπεριλήφθηκαν στις συσκευές λιανικής, αλλά αναμφίβολα θα υπάρχουν στο μέλλον εκδόσεις. Ωστόσο, αργά ή γρήγορα, φαίνεται πιθανό ότι οι τροποποιημένοι ramdisks του πυρήνα θα είναι απαραίτητοι για το root, αλλά αυτή η νέα έκδοση beta μπορεί να προσφέρει μια σύντομη παραμονή στην εκτέλεση πριν προχωρήσουμε προς αυτήν την κατεύθυνση.
Ολοκλήρωση αγοράς τις σημειώσεις έκδοσης για περισσότερες πληροφορίες σχετικά με τους κινδύνους που συνεπάγεται η δοκιμή αυτού, και για συνδέσμους. Οι προγραμματιστές θα πρέπει επίσης να γνωρίζουν ότι το Chainfire εργάζεται σκληρά επί του παρόντος Οδηγός "How-To SU". (πλήρης ενημερωμένο για Android 5.0), το οποίο θα είναι διαθέσιμο εντός των επόμενων ημερών.
[Ένα τεράστιο ευχαριστώ στον Chainfire για τη δουλειά του εδώ και τη βοήθεια στην προετοιμασία αυτού του άρθρου.]