Xposed For Lollipop ახლა ოფიციალურად ხელმისაწვდომია

Xposed Framework არ საჭიროებს შესავალი XDA მკითხველებს. როდესაც ჰკითხეს ჩვენს საზოგადოებას ყველაზე მეტად სძულს Lollipop-ს, დისკუსიაში ყველაზე მეტი ხმა იყო ის, რომ მან დაარღვია მხარდაჭერა Xposed-ისთვის. სინამდვილეში, ფორუმის ბევრმა წევრმაც კი თქვა უარი Lollipop-ის განახლებაზე სპეციალურად ამ მიზეზით. მაგრამ ეს ყველაფერი ახლა იცვლება, რადგან ძალიან მოსალოდნელი Xposed Framework საბოლოოდ ჩამოვიდა Android Lollipop-ისთვის.

თუ თქვენ უკვე არ იცნობთ Xposed-ს, მარტივად რომ ვთქვათ, ეს არის მოდიფიკაციის საზოგადოებისთვის ღვთის საჩუქარი. Xposed არ საჭიროებს ROM-ების მოციმციმეს, მაგრამ მოაქვს უამრავი პერსონალიზაცია და შესწორებები, რომლებიც მომხმარებლებს შეუძლიათ დააინსტალირონ, როგორც აპლიკაციები root მოწყობილობებზე. მისი გამოყენება წარმოუდგენლად მარტივია და შეზღუდული რისკით. ახლა კი, Android-ის ყველა ენთუზიასტს Lollipop-ზე შეუძლია ისარგებლოს ამ ფანტასტიკური პროექტის უპირატესობებით საკუთარ მოწყობილობებზე. აიღეთ თქვენი ჩამოტვირთვა და გადადით მოდიფიკაციაზე!

rovo89 ასევე იყო საკმარისად კეთილი და მოგვაწოდა კითხვა-პასუხი უახლესი პროექტისთვის. თქვენ შეგიძლიათ იპოვოთ პასუხი ყველა თქვენს კითხვაზე პროექტის შესახებ ქვემოთ.

რატომ გაგრძელდა ამდენი დრო? ART გამოიცა ერთ წელზე მეტი ხნის წინ!

უპირველეს ყოვლისა - ბევრი ადამიანი ითხოვს ART მხარდაჭერას. Lollipop-ს აქვს ამაზე ბევრად მეტი ცვლილება, როგორიცაა კიდევ უფრო მკაცრი SELinux პოლიტიკა, 64-ბიტიანი ROM-ები და არქიტექტურის ცვლილებები, რასაც მოელოდით ძირითადი გამოშვებისგან. და რა თქმა უნდა, თავად ART მუდმივად იხვეწება; დიდი განსხვავებებია ART-ს შორის KitKat-ისთვის და ART-ს Lollipop-ისთვის.

ასე რომ, ერთ-ერთი მიზეზი არის დიდი სირთულე, რომელიც მოითხოვს ბევრ, ბევრ საათს მუშაობას კვლევის, განვითარებისა და ტესტირებისთვის.

კიდევ ერთი მიზეზი ის არის, რომ ჩემს ცხოვრებაში არის სხვა რამ, გარდა Xposed-ისა, ასე რომ, იყო კვირები ან თუნდაც თვეები, როცა კოდს საერთოდ არ ვუყურებდი.

გვჭირდება ყველა მოდულის გადაწერა?

არა, Xposed API საკმაოდ უცვლელია. Xposed აბსტრაქტებს ყველა დეტალს, ამიტომ მოდულებს არ სჭირდებათ ზრუნვა, მუშაობენ თუ არა Dalvik-ზე თუ ART-ზე. ბევრი მოდული რეალურად იმუშავებს ყოველგვარი ცვლილების გარეშე, განსაკუთრებით ის, რომელიც ცვლის მომხმარებლის აპლიკაციების ქცევას. მოდულები, რომლებიც მიზნად ისახავს სისტემის ქცევას, შესაძლოა საჭირო გახდეს Android-ის ახალ ჩარჩო კოდზე მორგება, რომელიც არ არის გამოწვეული ART-ით, არამედ უბრალოდ არქიტექტურით და კოდის ცვლილებებით, რომლებიც ხდება ნებისმიერ ორ Android-ს შორის რელიზები. ყველაზე მნიშვნელოვანი ის არის, რომ სისტემის სერვისების კოდი გადატანილია ცალკე ფაილში. დაზარალებული მოდულების უმეტესობისთვის ეს შეიძლება გადაწყდეს მცირე რეფაქტორირებით (კოდის სხვა ადგილას გადატანა).

რეალურად მუშაობს?

დიახ! ყოველ შემთხვევაში, ის კარგად მუშაობს ჩემს ყოველდღიურ მოწყობილობაზე (Nexus 5 CM12-ზე) და ასევე ჩემს Nexus 9-ზე (გადახდილია XDA-ს მიერ - მადლობა!). ტელეფონი ჩვეულებრივ სტაბილურია და აპლიკაციები კარგად მუშაობს. და ცხადია, მოდულები და მათი კაკვები/რესურსების გამოცვლაც კარგად მუშაობს, თორემ აზრი არ ექნება რაღაცის გამოშვებას.

მაგრამ მაშინ რატომ არის ის ალფა ვერსია?

იმის გამო, რომ ბოლო სტაბილური გამოშვების შემდეგ მოხდა უზარმაზარი ცვლილებები, რომლებიც უნდა შემოწმდეს იმ ადამიანების მიერ, რომლებმაც იციან როგორ გამოიყენონ აღდგენა, თავი დააღწიონ ჩატვირთვის მარყუჟებს და სწორად შეატყობინონ შეცდომები. ახალბედებს კატეგორიულად ვურჩევ, დაელოდონ Xposed-ის გამოცდას საკმარისად გამოცდილი ადამიანების მიერ.

ასევე არის რამდენიმე ზღვრული შემთხვევა, რომელიც ჯერ არ არის გამოცდილი, როგორიცაა JNI (მშობლიური) მეთოდები და მეთოდები, რომლებიც შესრულებულია მათი დამაგრების დროს.

მისი დაყენება მინდა. ახლავე! Რა უნდა გავაკეთო?

დარწმუნდით, რომ წაიკითხეთ ჩემი ზემოთ მოყვანილი სიტყვები და იცნობთ თქვენი ტელეფონის ინტერიერს. ცხადია, თქვენ უნდა იყოთ Lollipop ROM-ზე და გქონდეთ თქვენი მონაცემების კარგი სარეზერვო ასლი. ამ დროისთვის გამოვაქვეყნებ მხოლოდ ARMv7 ვერსიას. 64-ბიტი უფრო რთულია, ამიტომ ჯერ ვცადოთ "მარტივი" ვარიანტი.

ამ დროისთვის, ინსტალაცია უნდა შესრულდეს ხელით პერსონალური აღდგენის დროს. zip ფაილის ციმციმი დაინსტალირდება:

  • app_process32_xposed და რამდენიმე სიმბოლო
  • libexposed_art.so
  • libart.so და ზოგიერთი დაკავშირებული ორობითი + ბიბლიოთეკა (5.0.2-ზე დაფუძნებული, გაძლიერებული Hooking-ის მხარდაჭერით და ა.შ.)
  • XposedBridge.jar (ახლა ინახება /system/framework)

არსებული ფაილების სარეზერვო ასლები ავტომატურად შეიქმნება და შეიძლება მოგვიანებით აღდგეს.

არ მუშაობს/არ მომწონს! როგორ შემიძლია მისი დეინსტალაცია?

უმარტივესი გზაა სარეზერვო ასლის აღდგენა ან სისტემის დანაყოფის ფლეში. დეინსტალაციისთვის zip ფაილი ჯერ არ არის შექმნილი.

რატომ ცვლით ART ფაილებს ჩემს მოწყობილობაზე? ეს უფრო ინვაზიურია ვიდრე Dalvik-ზე, გამოიწვევს მუშაობის მნიშვნელოვან პრობლემებს და იქნება არასტაბილური!

მე დავწერე რამდენიმე მიზეზი GitHub. დიახ, ეს უფრო ინვაზიურია, ამიტომ დიდი ხნის განმავლობაში ვცდილობდი ამის თავიდან აცილებას, მაგრამ ტექნიკური და მხარდაჭერაზე ორიენტირებული თვალსაზრისით, ვფიქრობ, რომ ეს უკეთესი ვარიანტია.

ნაკლები შესრულება ვიდრე ორიგინალური ART? ალბათ, რადგან მომიწია გარკვეული ოპტიმიზაციის გამორთვა, რათა შესაძლებელი ყოფილიყო გარკვეული სახის კაკვები. თუმცა, ეს გავლენას ახდენს ყველა მეთოდის მხოლოდ ნაწილზე და მათთვისაც კი, შესრულების დაკარგვა ნამდვილად არ არის მნიშვნელოვანი ან შესამჩნევი, თუ თუნდაც გაზომვადი. ჯერ კიდევ არსებობს ათასობით სხვა ოპტიმიზაცია შესრულებული ART-ის მიერ და მე ვცდილობდი რაც შეიძლება ნაკლები გამორთვა, რაც შეიძლება მეტი მოქნილობის უზრუნველყოფისას.

სტაბილურობა კარგია, როგორც ზემოთ აღინიშნა. იმ მიდგომასთან შედარებით, რომელიც მე გამოვიყენე Dalvik-ისთვის (გაშვების დროის შიდა მონაცემთა სტრუქტურების შეცვლა). app_process), მე კი დარწმუნებული ვარ, რომ ბიბლიოთეკების მთლიანად ჩანაცვლება ბევრად უფრო საიმედოა გზა. მე შემეძლო ჩემი ცვლილებების სუფთად ინტეგრირება არსებულ კოდში და ხელახლა გამოვიყენო დაკავშირებული ფუნქციები, მაშინ როცა ბევრი ჰაკი და ვარაუდი იქნებოდა საჭირო სხვა გზებისთვის.

საბოლოოდ გახადეთ წყარო კოდი საჯარო?

რა თქმა უნდა, თქვენ იპოვით მას GitHub-ზე ალფა ვერსიის გამოშვებიდან ძალიან მალე, ცალკე ფილიალში.

ნიშნავს ეს, რომ Android-ის ძველი ვერსია ახლა აღარ არის მხარდაჭერილი?

არა! ახალი კოდი შედგენილია Android-ის ყველა 4.x ვერსიაზე და უბრალოდ უნდა შემოწმდეს ერთიან გამოშვებამდე. მაგრამ პირველ რიგში, მე უნდა დავრწმუნდე, რომ ის კარგად მუშაობს Lollipop-ისთვის. შესაძლოა, ART მხარდაჭერა შეიძლება იყოს KitKat-ში, მაგრამ ეს ნაკლებად პრიორიტეტულია.

როგორ შემიძლია მადლობა გადაგიხადოთ თქვენი მუშაობისთვის?

ბევრმა ადამიანმა მოითხოვა რამდენიმე დოლარის შემოწირულობის გზები, ამიტომ მე დავაყენე შემოწირულობა გვერდი ახლა.

რა თანხა მჭირდება იმისათვის, რომ დაამატოთ X ფუნქცია ან მოდული, რომელიც მუშაობს Y?

ეს არ არის შემოწირულობა, ეს არის ვინმეს გადახდა მომავალი სამუშაოს მოლოდინში. მე არ მაინტერესებს შტატგარეშე სამუშაოები.