გიყვართ სისხლდენის ზღვარზე ცხოვრება, ასე რომ, ავედით ბორტზე და დააინსტალირეთ Google-ის ახალი Android N-ის გადახედვის კონსტრუქციები. თუ თქვენ იყენებთ პროგრამულ უზრუნველყოფას, როგორც ყოველდღიურ დრაივერს (შესაძლოა მოგწონთ ავარია და წვა, ვინ იცის?) მაშინ, სავარაუდოდ, შენიშნეთ, რომ ბევრი თქვენი საყვარელი აპლიკაცია საერთოდ არ მუშაობს. თქვენ გაააქტიურეთ Chainfire-ის SuperSU ბეტა Android N-ისთვის, რათა შეამსუბუქოთ პრობლემები სისტემის უკეთესი კონტროლით, მაგრამ ბევრი root აპი ასევე იშლება. რატომ? და როგორ შეიძლება მათი გამოსწორება? Chainfire-ის მიხედვით, მიზეზი არის ის, რომ Google შორდება ხელსაწყოების ყუთი მიმართ სათამაშო ყუთი (და უკვე Android Marshmallow-დან) და აქვს ახლა ამოღებულია ხელსაწყოთა ყუთის სამაგრი მხარდაჭერა. თუ წარსულში გქონდათ პრობლემები root აპებთან, ალბათ ადრე გინახავთ სიტყვა „ინსტრუმენტების ყუთი“. თუ არა, მე მივცემ ნებას Chainfire-ს აგიხსნას რა არის ეს:
Android-ის სამი ყუთი არის ხელსაწყოთა ყუთი, busybox და სათამაშოების ყუთი. ეს ყუთები უზრუნველყოფს სხვადასხვა ძირითადი unix ბრძანებების იმპლემენტაციას - მსგავსი GNU Core Utils, რომელიც უზრუნველყოფს Linux-ის სხვადასხვა დისტრიბუციას.
ხელსაწყოების ყუთი ბოლო დრომდე იყო სტანდარტული Android იმპლემენტაცია. დაკავებული ყუთი არის თითქმის სტანდარტული ყუთი Android-ის გარეთ, GPL ლიცენზირებული და ბევრის მიერ არის პორტირებული ანდროიდზე. სათამაშო ყუთი არის BSD-ის ლიცენზირებული ალტერნატივა დაკავებული ყუთი ყოფილის მიერ შექმნილი დაკავებული ყუთი შემნახველი. სათამაშო ყუთი პირველად გამოჩნდა Android-ზე M-ში და ნელ-ნელა ანაცვლებს მას ხელსაწყოების ყუთი განხორციელება სხვადასხვა ბრძანებებისთვის.
ამ ბრძანებებს ძირითადად იყენებენ root აპლიკაციები, მოწყობილობის სკრიპტები და adb shell/ტერმინალის ემულატორის მომხმარებლები.
რაც შეეხება იმას, თუ რატომ შეგექმნათ პრობლემები, რომლებიც წარმოიშვა ხელსაწყოთა ყუთიდან ან busybox-იდან, Chainfire-ის მიხედვით:
ბევრ root აპლიკაციას ესაჭიროება ამ ველებით მოწოდებული ბრძანებების შესრულება. მიუხედავად იმისა, რომ საბაზისო ბრძანება ზოგადად იგივეა, მიღებული პარამეტრები, ზუსტი სამუშაო და გამომავალი განსხვავებები იქნება განხორციელებებსა და ამ განხორციელების სხვადასხვა ვერსიებს შორის.
ძირითადად, რადგან ზოგიერთი თქვენი root აპი მოითხოვს ერთ კონკრეტულ ბრძანებას, რომელიც შეიძლება მოიძებნოს ერთ ყუთში, მაგრამ სხვა აპლიკაციას შეიძლება მოითხოვოს სხვა კონკრეტული ბრძანება სხვა ველში, ბევრ მომხმარებელს შეექმნა პრობლემები გარკვეული root აპლიკაციების გამართულად ფუნქციონირების გამო, რადგან მათ ყუთში დანერგვა არ არის ყველა უფლება ბრძანებებს. ეს იწვევს თავის ტკივილს დეველოპერებისთვის, როგორიცაა Chainfire, რომლებსაც უწევთ გამკლავება მომხმარებლებთან, რომლებიც აინტერესებთ, რატომ არ მუშაობს მათი აპლიკაცია. მომხმარებელთა უმეტესობას ალბათ აქვს b-ის ერთი განხორციელებაusybox დაინსტალირებულია, მაგრამ დეველოპერებს შეუძლიათ დარეკვა ხელსაწყოების ყუთი პირდაპირ იმის ნაცვლად, რომ იმედოვნებდეთ, რომ თქვენს ინსტალაციას აქვს შესაბამისი ბრძანებები შესაბამისი პარამეტრებით, რომლებიც აუცილებელია მათი root პროგრამის ფუნქციონირებისთვის. თუმცა, ეს გამოსავალი გატეხილია Android N-ში. თითო Chainfire:
სამწუხაროდ, N Preview-ზე, სათამაშო ყუთის სამაგრი შეცვალა ხელსაწყოთა ყუთის სამაგრი როგორც ნაგულისხმევი განხორციელება და კიდევ უარესი, ხელსაწყოთა ყუთის სამაგრი ამოღებულია, ასე რომ თქვენ არ შეგიძლიათ დაუბრუნდეთ მას. ხოლო სათამაშო ყუთის სამაგრი როგორც ჩანს, თავი დააღწია სეგფულტების საგას, ის მაინც არ მუშაობს ისე კარგად. არც ისე ახლოს, როგორც ხელსაწყოების ყუთი განხორციელება მაინც შეცვალა.
სწორედ ამიტომ თქვენი root აპლიკაციები Android N-ზე ვერ ხერხდება. Chainfire ცდილობდა ნაწილობრივ გამოესწორებინა ზოგიერთი გატეხილი აპი, რომლებიც იყენებენ mount ბრძანების პოპულარულ ფორმებს SuperSU 2.70-ში შესწორების გამოყენებით, თუმცა, ყველა აპი არ გამოსწორდება. თუ თქვენ ხართ საბოლოო მომხმარებელი, ვერაფერს გააკეთებთ, სანამ თქვენი საყვარელი აპის დეველოპერი არ განაახლებს განახლებას. თუ თქვენ ხართ დეველოპერი და გაინტერესებთ, რატომ აქვთ Android N-ის მომხმარებლებს პრობლემები, თქვენ უნდა წაიკითხო Chainfire-ის სრული პოსტი იმის გაგება, თუ როგორ უნდა გაასწოროთ თქვენი აპლიკაცია.
გქონიათ რაიმე root აპლიკაციის წარუმატებლობა Android N-ზე მუშაობისას? აცნობეთ ყველამ ქვემოთ მოცემულ კომენტარებში (და განსაკუთრებით შეეცადეთ დაუკავშირდეთ დეველოპერს)!