SuperSU BETA: დააყენეთ Android Lollipop Stock Kernel-ზე

შესვენება: Chainfire-მა დღეს გამოაცხადა SuperSU Beta 2.27, მოხსნის ბირთვის ramdisk-ის მოდიფიკაციების საჭიროებას Android 5.0-ზე root წვდომის გამოსაყენებლად.

აქამდე, თუ გინდოდათ Android 5.0-ზე დაყენება, თქვენ გჭირდებათ შეცვლილი ბირთვის გამორთვა თქვენს მოწყობილობაზე SELinux-ის ზოგიერთი შეზღუდვის გადასაჭრელად. XDA Senior აღიარებული დეველოპერი ჯაჭვის ცეცხლი ახლახან გამოუშვა ადრე საჭირო CF-Auto-Root პაკეტი, რომელმაც მოახდინა ბირთვის ramdisk-ის საჭირო ცვლილებები, რათა ამოეღო SELinux შეზღუდვა install-recovery.sh სკრიპტიდან AOSP-ზე. თუმცა, ამ დილით, Chainfire-მა ბევრ სახეზე ღიმილი მოიტანა, როგორც მან გამოაცხადა Twitter-ზე რომ შემდგომში ეს აღარ იქნება საჭირო.

დღემდე, Chainfire გეგმავდა ავტომატური ZIP-ზე დაფუძნებული პაჩის ხელსაწყოს ავტომატურად გამოშვებას დაალაგეთ ბირთვის სურათები TWRP აღდგენიდან, სანამ არ წააწყდა შესაბამის მეთოდს საჭიროების მოსაშორებლად ეს.

ეს გამოცხადება ნიშნავს, რომ Android 5.0-ის მომხმარებლებს აღარ სჭირდებათ შეცვლილი ბირთვის გაშვება, რომ მიიღონ root წვდომა SuperSU-ს (ან სხვა root გადაწყვეტილებების) მეშვეობით. მიუხედავად იმისა, რომ არ არის დიდი პრობლემა Nexus მოწყობილობებზე განბლოკვის ჩამტვირთველებით, საჭირო იყო ramdisk-ის ცვლილებები. ეხება ჩამტვირთავზე დაბლოკილი მოწყობილობების მრავალი მომხმარებლისთვის, რომლებისთვისაც განბლოკვა არ არის ხელმისაწვდომი (დიახ, ისინი ამას აკეთებენ სამწუხაროდ არსებობს). მათი ლოცვების პასუხი ახლა აქ არის და ჩვენ შეგვიძლია წარმოვადგინოთ საჭირო ცვლილებების ექსკლუზიური ახსნა. ყოველ შემთხვევაში, ამ დროისთვის (სანამ/თუ Google ამას არ დააყენებს), შესაძლებელია მოიპოვოთ root წვდომა და შემდეგ დააინსტალიროთ და გამოიყენოთ SuperSU საფონდო Android 5.0 მოწყობილობაზე, ბირთვის ramdisk შესწორების გარეშე. ამის მიზეზი არის SuperSU-ს აუცილებლობა, გაუშვას სერვისი როგორც root, რათა დაუშვას Root-ის შეუზღუდავი წვდომა SELinux-ით დაცულ მოწყობილობებზე.

ადრე, SuperSU გამოიყენებდა წინასწარ დაყენებულ AOSP-ს ფლეშ_აღდგენა სერვისი (გამოიყენება AOSP-ში OTA ინსტალაციის შემდეგ აღდგენის გასაახლებლად) SuperSU დემონის დასაწყებად (რომელიც რეალურად უზრუნველყოფს root პრივილეგიებს აპებისთვის, რომლებიც ამას ითხოვენ). Lollipop-ის გამოშვებით, ეს სერვისი დაემატა SELinux-ის შეზღუდულ კონტექსტს, რაც იმას ნიშნავს, რომ მას აღარ აქვს წვდომა სისტემაში. ბირთვის წინა ცვლილებები ცდილობდა SELinux-ის შეზღუდვების ამოღებას ამ სკრიპტიდან.

Chainfire-ის SuperSU-ის უახლესი ბეტა გამოშვება წყვეტს ამას ძირითადი "Zygote" სერვისის გამოყენებით (პასუხისმგებელია Java-ის ყველა სერვისის გაშვებაზე და, შესაბამისად, მოწყობილობაზე დაინსტალირებული ყველა აპლიკაციისთვის). ვინაიდან Zygote არის ერთ-ერთი ერთადერთი სერვისი, რომელიც ხელმისაწვდომია Android L-ზე, რომელიც დაწყებულია როგორც root შიგნით შეუზღუდავი "init" SELinux-ის კონტექსტი, რაც მას აქცევს მთავარ სამიზნედ გამოყენებისთვის SuperSU. ჩატვირთვის შემდეგ, Zygote სერვისს აქვს თავისი SELinux "init" კონტექსტი გადადის საბოლოო (შეზღუდულ) "Zygote" კონტექსტზე. Chainfire-მა მოახერხა Zygote ფაილების წარმატებით შეცვლა, რათა გაუშვა კოდი, როგორც root მომხმარებელი, შეუზღუდავი "init" კონტექსტში, რითაც SuperSU დააბრუნებს Android L-ს, ბირთვის გარეშე მოდიფიკაციები.

ეს არ არის პირველი შემთხვევა, როდესაც Chainfire მიმართავს Zygote-ს ამ პრობლემების გადასაჭრელად; ადრინდელი 2.23 ბეტა იყენებდა Zygote-ს, როგორც SELinux-ის სხვა პრობლემების თავიდან აცილების საშუალებას (რაც იწვევდა root აპების გატეხვას Android L-ზე). ეს საშუალებას აძლევდა ზოგიერთ (მაგრამ არა ყველა) არაფუნქციურ აპს ემუშავა - დანარჩენს მათი დეველოპერების მიერ გარკვეული განახლებები სჭირდება. სამწუხაროდ, როდესაც 5.0 AOSP კოდის კონსულტაცია მოხდა, გაირკვა, რომ Google-მა უკვე დაარღვია Zygote სერვისის აღების ეს მეთოდი. იმის გათვალისწინებით, რომ მისი წინა მცდელობა ზიგოტის ხელში ჩაგდება წარუმატებელი აღმოჩნდა, ეს პერსპექტიული ნაბიჯია.

Chainfire-ს სურდა აღენიშნა, რომ SuperSU უკვე დიდი ხანია ახერხებს SELinux-ის პოლიტიკის შეცვლა გაშვებულ სისტემაზე (და აფრთხილებს სიმარტივეს რაც OEM-ს შეუძლია გამორთოს ეს და ნამდვილად აღკვეთოს მნიშვნელოვანი და მარტივი root წვდომა) და როგორ უნდა განხორციელდეს Zygote-ში შეტანილი ნებისმიერი ცვლილება ფრთხილად, იმის გათვალისწინებით, რომ სერვისი იმართება სხვადასხვა კონტექსტიდან, სხვადასხვა ამოცანებისთვის და ეს ზრდის რამდენიმე (სასიამოვნო) შესაძლებლობას დახვეწილი წარუმატებლობები. ეს ახალი SuperSU beta 2.27 არის ნაგებობა ენთუზიასტებისა და სხვა ტექნიკოსებისთვის, რომლითაც უნდა ითამაშონ, რათა გაარკვიონ რა ფუჭდება. თითები გადაკვეთილია - არ არის მოულოდნელი საჩვენებელი შეცდომები და ეს წინსვლის ეფექტური გზაა.

გაითვალისწინეთ - მაშინაც კი, თუ ეს ბეტა მუშაობს და Zygote არის სასურველი გზა root წვდომის მოსაპოვებლად, შემდგომში, მთელი პროცესი მხოლოდ ერთი ხაზის ცვლილებაა. დაშორებული Google-ის მიერ გატეხვისგან, რაც გახდის დაყენებული ბირთვის ramdisks მომავალს root წვდომისთვის Android-ზე (ამით გამორიცხავს root-ისთვის ჩამტვირთველით ჩაკეტილი მოწყობილობები). მართლაც, როგორც სათავეში, ახალმა პროცესმა შეიძლება არც კი იმუშაოს სრულად განახლებულ AOSP-ზე, საკმაოდ დიდი SELinux-ის გამო. ცვლილებები გასული რამდენიმე თვის განმავლობაში, რომელიც არ იყო შეტანილი საცალო მოწყობილობებში, მაგრამ რაც უდაოდ იქნება მომავალში ავრცელებს. თუმცა, ადრე თუ გვიან, როგორც ჩანს, სავარაუდოა, რომ შეცვლილი ბირთვის ramdisks საჭირო იქნება root-ისთვის, მაგრამ ამ ახალმა ბეტამ შეიძლება შემოგვთავაზოს ხანმოკლე შესრულება, სანამ ამ მიმართულებით უნდა წავიდეთ.

შეამოწმეთ გამოშვების შენიშვნები დამატებითი ინფორმაციისთვის ამის ტესტირებასთან დაკავშირებული რისკების შესახებ და ბმულებისთვის. დეველოპერებმა ასევე უნდა იცოდნენ, რომ Chainfire ამჟამად მძიმედ მუშაობს მასზე სახელმძღვანელო "How-to SU". (სრულად განახლებულია Android 5.0-ისთვის), რომელიც ხელმისაწვდომი იქნება მომდევნო რამდენიმე დღის განმავლობაში.

[დიდი მადლობა Chainfire-ს აქ მუშაობისთვის და ამ სტატიის მომზადებაში დახმარებისთვის.]