Flashable zip ახლა ხელმისაწვდომია, რომელიც მოაქვს Xposed Framework-ს Android 7.1 Nougat ROM-ებში. zip მუშაობს OnePlus 3T-ზე, ისევე როგორც ბევრ სხვა ტელეფონზე!
თვეების განმავლობაში ლოდინის შემდეგ, ჩვენ საბოლოოდ მივიღეთ Xposed Framework მხარდაჭერა Nougat ROM-ებისთვის (თუმცა არაოფიციალურად). რამდენიმე ნიჭიერი დეველოპერების წყალობით, რომლებიც ჩვენს საკუთარ XDA ფორუმებზე მუშაობენ, ახლა შეგიძლიათ დააინსტალიროთ Xposed Framework Android Nougat ROM-ზე, ფლეში zip-ის საშუალებით.
აქამდე, Xposed-ის მომავალი Nougat-ზე ცოტა არამყარი ჩანდა. Rovo89 - დეველოპერი Xposed Framework-ის უკან - ერთ კვირაზე ცოტა მეტი ხნის წინ მოგვაწოდა განახლება Android Nougat-ის მხარდაჭერის შესახებ. Rovo89-მა არსებითად განაცხადა, რომ ჯერ კიდევ ბევრი სამუშაო იყო გასაკეთებელი იმისთვის, რომ Xposed-მა სწორად იმუშაოს Nougat-ზე და რომ ჩვენ უბრალოდ მოთმინება მოგვიწევდა.
საბედნიეროდ, როგორც ჩანს, ჩვენ მივიღეთ დროებითი გამოსავალი მათთვის, ვინც მოუთმენლად ელოდა გაჩერების ზომას. PurifyOS-ის გუნდმა აიღო ART მოდული ამ დეველოპერისთვის აიძულებს
მუშაობდა (და რომელიც დღეს ადრე გამოქვეყნდა), და მოახდინა მისი ადაპტირება, რათა დაინსტალირდეს სხვა საბაჟო ROM-ებზე Flashable zip-ის საშუალებით (ნაცვლად იმისა, რომ დანერგილიყო ROM-ის შედგენისას).ამჟამად არსებობს სამი ხელმისაწვდომი ვერსია სხვადასხვა პლატფორმისთვის, მათ შორის Xposed SDK25 ARM64, Xposed SDK25 ARMდა Xposed SDK25 x86. PurifyOS-ის გუნდმა გამოსცადა Xposed-ის ეს ახალი ვერსია OnePlus 3T-ით, რომელიც მუშაობს Android 7.1-ზე დაფუძნებული OxygenOS-ით, მაგრამ ის უნდა იმუშაოს სხვა ტელეფონები, რომლებიც მუშაობენ Android Nougat-ზე და მომხმარებლები უკვე აცხადებენ, რომ მათ წარმატებით შეძლეს მისი ინსტალაცია სხვადასხვა ROM-ებზე და მოწყობილობები. მაგალითად, OnePlus 5-ის რამდენიმე მომხმარებელმა განაცხადა, რომ ის მუშაობს (არ არის გასაკვირი, იმის გათვალისწინებით, რომ ის მუშაობს OnePlus-ზე 3T კარგია), მაგრამ მომხმარებელმა, რომელიც აწარმოებს AOSP-ზე დაფუძნებულ ROM-ს Samsung Galaxy S6-ისთვის, ასევე აღნიშნა, რომ ის მუშაობდა მათთვის.
გასარკვევი იქნება უცნაურობები და ყველამ ვერ მოახერხა მისი ამოქმედება აქამდე, ზოგიერთ მომხმარებელს განიცდის ძალის დახურვისა და სხვა უცნაურობების გამო. თუმცა, მაშინაც კი, თუ ეს ასეა, თქვენ მაინც შეგიძლიათ აჩვენოთ ის, თუ თქვენ ელოდებით Xposed-ის ჩამოსვლას Nougat-ზე მას შემდეგ, რაც გამოვიდა Android OS-ის წინა ვერსია. ყველა არსებული Xposed Framework მოდული არ იმუშავებს პირდაპირ, მაგრამ ზოგიერთი მართლაც პოპულარული, როგორიცაა Amplify, მუშაობს.
დარწმუნდით, რომ გააკეთეთ რეგულარულად სარეზერვო ასლები და ყურადღებით წაიკითხეთ თემა, სანამ არ შეხვალთ, თუ არ ხართ დარწმუნებული, არის თუ არა თქვენი მოწყობილობა ან ROM მხარდაჭერილი. დაბოლოს, დარწმუნდით, რომ გამოიყენოთ "ძებნის" ფუნქცია დუბლიკატი კითხვის დატოვებამდე. Android O შეიძლება ახლოს იყოს, მაგრამ როგორც ნათქვამია, "სჯობს გვიან, ვიდრე არასდროს." გარდა ამისა, ბევრი მომხმარებელი არ აპირებს Android O-ს თავის მოწყობილობებზე დიდი ხნის განმავლობაში ნახოს, ამიტომ Xposed უნდა იყოს სასიამოვნო საშუალება, რათა თავი არ იგრძნოთ მიღმა.
განახლება: Rovo89-ის პასუხი
ორიგინალი შეიქმნა Xposed Framework-ის, XDA Senior Recognized Developer-ის უკან rovo89, უპასუხა Github-ზე თავისი მოსაზრებებით ამ ბოლო დროს განვითარებულ მოვლენებზე.
ჩემი გამოცდილებიდან შემიძლია გითხრათ, რომ საფუძვლების შესრულება არც ისე რთულია, მაგრამ დეტალებისთვის დიდი დრო სჭირდება. ეს ჰგავს 80-20 წესს, გარდა იმისა, რომ ეს უფრო ჰგავს 95-5-ს.
დამაგრების მიდგომა, რომელიც მე შემუშავებული მაქვს წინა გამოშვებებისთვის, საკმაოდ სტაბილურია და შეიძლება გამოყენებულ იქნას უფრო ახალი გამოცემებისთვისაც. ვვარაუდობ, რომ ყველაზე მეტად დაგჭირდათ ყველა ადგილის შემოწმება
IsProxyMethod()
დაIsDirect()
გამოიძახება და გადაწყვეტს, განიხილონ ახალი მეთოდის მოდიფიკატორი თუ არა (ანუ გამოიყენონ პარამეტრიtrue
თუ არა). თუ ამას არ გააკეთებდით, შესაძლოა გამოგრჩეთ რამდენიმე ადგილი, სადაც მათ ახლად შემოიღეს ასეთი ზარები. იგივე მეთოდებისთვის, როგორიცააInstallStubsForMethod()
, რომელიც უნდა იმუშაოს თავდაპირველი ორიგინალური მეთოდით მაშინაც კი, როდესაც ისინი გამოიძახებენ hooked მეთოდს. თქვენ უნდა შეამოწმოთ მეტი ადგილი, სადაც ეს შეიძლება იყოს შესაბამისი. ეს ჯერ კიდევ დღეების დიაპაზონშია, მაგრამ თუ ამის გაკეთებას გამოტოვებთ, შეიძლება დაინახოთ ბუნდოვანი ავარია ან არასწორი ქცევა, რომელთა გამართვა ძალიან რთულია.გარდა ამისა, თქვენ აიღეთ მიდგომა, სადაც ჰუკები იმუშავებს მხოლოდ ROM-ებისთვის, რომლებიც მთლიანად შედგენილია ნულიდან. საფონდო ROM-ებზე და ჩვეულ ROM-ებზეც კი (რომელიც არ მოიცავდა თქვენს პორტს მშენებლობის დროს), ისევე როგორც ნებისმიერი აპისთვის, რომელიც მოწყობილობამ შესაძლოა ადრე შედგენილიყო. ასე რომ, თქვენ უნდა დაიწყოთ ყველაფერი თავიდან წაშლილი მოწყობილობით, რომელიც მუშაობს სპეციალურ ROM-ზე. თუ არა, მაშინ ოპტიმიზაციამ (მაგ. ჩასმა) შესაძლოა ხელი შეუშალოს მეთოდის გამოძახებას და, შესაბამისად, ჰუკები არ იმუშავებს. ყველაზე ცუდი ის არის, რომ ზუსტი ქცევა დამოკიდებული იქნება ROM-ზე, ან თუნდაც იმაზე, თუ როგორ იყენებს მომხმარებელი მოწყობილობას (ახლა, როდესაც აპლიკაციები შედგენილია პროფილებზე დაყრდნობით). მოდულები შემთხვევით ჩავარდება და მოდულის შემქმნელებს აინტერესებთ, რა დააშავეს (პასუხი: არაფერი). თუ ყველა წინაპირობა არ არის შესრულებული, ეს საკმაოდ არასანდო APIა. წარმოიდგინეთ Google-მა გამოაქვეყნა განახლება, სადაც
OnClickListener
ღილაკზე ხანდახან არ იძახდა, თუ არ შეგიდგენიათ თქვენი ROM ნულიდან... პირადად ჩემთვის ეს დიდი შეზღუდვაა.
ის აგრძელებს:
საერთოდ არ აქვს აზრი ამით Flashable ZIP-ების გამოქვეყნებას, რადგან პორტი განკუთვნილია მხოლოდ ROM-ის თავიდან კომპილაციისთვის..
და როგორც მეშინოდა, არ არსებობს არც ერთი გაფრთხილება, რომ ეს არის არასრული პორტი, რომელიც ხშირად ვერ შეასრულებს API კონტრაქტს. 😠 ეს ცუდია დეველოპერებისთვის და მომხმარებლებისთვის, მათ უნდა იცოდნენ, რომ ის არასრულია, რათა გადაწყვიტონ, სურთ თუ არა მისი მხარდაჭერა/გამოყენება. ვერასდროს გავბედავდი მსგავსი რამის გაკეთებას დიდი მსუქანი გაფრთხილების გარეშე. რეალურად, რადგან საკმაოდ პერფექციონისტი ვარ, არასრულ ვერსიას საერთოდ არ გამოვაქვეყნებდი, სანდოობა ჩემთვის ძალიან მნიშვნელოვანია.
მე ახლახანს შევამოწმე ჩემი Git ჟურნალი და ოქტომბერში მზად მქონდა ძირითადი დაკვრა (როგორც ამ პორტში). მას შემდეგ ვმუშაობ შეზღუდვების მოხსნაზე. წინასწარ შედგენილ ROM-ებზე უფრო საიმედო რომ გავხდე, შემეძლო გადამეყენებინა რეკომპლინგ ნაწილიც, თუმცა ეს ჯერ კიდევ არ არის იდეალური. როგორც სადღაც ზემოთ იყო ახსნილი, ახლა ჩვენ გვაქვს JIT, რომელიც საშუალებას გვაძლევს შევინარჩუნოთ ყველა ოპტიმიზაცია, მხოლოდ გავაუქმოთ (და შესაძლოა ხელახლა შევადგინოთ) მეთოდები, რომლებზეც პირდაპირ გავლენას ახდენს hooking. ეს საკმაოდ რთულია, რადგან ის უფრო მეტია, ვიდრე უბრალოდ კოპირება და ჩასმა. და სანამ ეს არ გაკეთდება, არაფერს გამოვაქვეყნებ. ამისთვის 9 თვე (აქამდე) მართლა დიდი დროა, ვიცი, მაგრამ აი, ჩემი თავისუფალი დროა და ე.ი. გადასვლის გამო ახალი ბინა, Xposed-ზე რამდენიმე თვე (!) საერთოდ ვერ ვიმუშავე და სხვაგვარად ძალიან შეზღუდული დრო მქონდა.
ჩვენ უნდა განვაცხადოთ, რომ ეს ბოლო მოვლენები არ არის ის ჭეშმარიტი "Xposed", რომელიც თქვენ ყველამ იცით და მიყვარს, მაგრამ ფუნქციურად ისინი საშუალებას გაძლევთ გამოიყენოთ Xposed Framework მოდული ახლავე Android-ზე ნუგა. ჩვენ არ დაგამტყუნებთ, რომ არ ელოდებით Xposed Framework-ის ოფიციალურ, უფრო სტაბილურ და უფრო თავსებადი ვერსიას Android-ისთვის Nougat, მაგრამ ჩვენ გვინდა განვმარტოთ, რომ ეს გამეორება არის მხოლოდ შეჩერების ღონისძიება, რომელიც მიზნად ისახავს ზოგიერთი მომხმარებლის საჭიროებების სწორად დაკმაყოფილებას ახლა. სავარაუდოდ, ეს არ იქნება ისე, როგორც Xposed იქნება დამუშავებული მომავალში.
ჩამოტვირთეთ არაოფიციალური Xposed Framework Nougat-ისთვის XDA ფორუმებზე