ოფიციალური Xposed Framework Android Nougat-ისთვის აქ არის

დიდი ხნის ლოდინის შემდეგ, Xposed Framework-ის დეველოპერმა ოფიციალურად გამოაცხადა, რომ პროექტი ახლა მხარს უჭერს Android Nougat-ს. დააინსტალირეთ Xposed მოდულები ახლავე!

როგორც Android-ის ეკოსისტემა მომწიფდა წლების განმავლობაში, სულ უფრო და უფრო ნაკლები მომხმარებელი პოულობს მიზეზებს, თუ რატომ უნდა დააყენონ თავიანთი მოწყობილობა. არსებობს მზარდი ტენდენცია, როდესაც მომხმარებლები ირჩევენ დარჩენას საფონდო firmware-ზე, ან იმიტომ, რომ მათ გამოცდილება დამაკმაყოფილებლად მიაჩნიათ ან არ სურთ თამაში. კატა-თაგვური თამაში Google-ის SafetyNet API-ით. მაგრამ თუ თქვენ ჰკითხეთ მომხმარებელს ჯერ კიდევ 2016 წლის დასაწყისში, რატომ დაამყარეს მათი ტელეფონები, შესაძლოა, ნომერ პირველი მიზეზი იყო ის, რომ მათ შეეძლოთ დააინსტალირეთ Xposed Framework. Იყო Android 7.0 Nougat-იდან ერთ წელზე მეტი ხნის განმავლობაში პირველად გამოვიდა, მაგრამ ხანგრძლივი ლოდინი საბოლოოდ დასრულდა: ოფიციალური Xposed Framework Android Nougat-ისთვის საბოლოოდ ხელმისაწვდომია.

გასული წლის განმავლობაში XDA Senior-ის აღიარებული დეველოპერი rovo89Xposed Framework-ის წამყვანმა დეველოპერმა მოგვაწოდა

რამდენიმეგანახლებები Xposed Framework-ის პროგრესის შესახებ Android Nougat-ისთვის. ზოგიერთისთვის, ლოდინი ასატანი იყო ძირითადად დამატებითი ფუნქციების დიდი რაოდენობის გამო, რომელსაც Xposed Framework გთავაზობთ Android Marshmallow. მაგრამ ბევრი სხვა გადავიდა ცხოვრებაზე Xposed-ის გარეშე მათ მოწყობილობებზე.

ჩვენ დავინახეთ განახლებული აღფრთოვანება პროექტში, როდესაც დეველოპერმა აბფორსმა გამოუშვა ა ART ქვემოდული AOSP 7.1.2-ისთვის, მაგრამ როგორც ჩვენი საკუთარი GermainZ აღნიშნავს თქვენ ჯობია დაელოდოთ ოფიციალურ Xposed Framework-ს გამოშვება, როგორც abforce-ს დანერგვა მოითხოვდა ფრეიმერიკის ინტეგრირებას საბაჟო ROM-ებში. გარდა ამისა, ეს არაოფიციალური განხორციელება არასრული იყო, რამაც გამოიწვია არათანმიმდევრული ან შეცდომით ქცევა ზოგიერთ Xposed-თან მოდულები.

მიუხედავად იმისა, რომ აბფორსმა დიდი სამუშაო შეასრულა თავისი არაოფიციალური Xposed Android 7.1 Nougat-ზე მუშაობისთვის, მისი განხორციელება წინააღმდეგი იყო. rovo89-ის ხედვა Xposed-ისთვის - ეს უნდა იყოს სტაბილური გადაწყვეტა, რომელიც უზრუნველყოფს საიმედო და ადვილად გამოსაყენებელ კონტრაქტს მომხმარებლებისა და დეველოპერებისთვის ერთნაირად. ამაში ჩვენ ვგულისხმობთ, რომ არა მხოლოდ მოდულები უნდა მუშაობდნენ უპრობლემოდ მომხმარებლებისთვის, არამედ მოდულების დაყენების გზა up უნდა იყოს თანმიმდევრული მომხმარებლებს შორის, რათა დეველოპერებმა იცოდნენ, არის თუ არა Xposed მოდული დამნაშავე აპისთვის ავარია.

ჩვენ აღარ გვჭირდება ფიქრი ისეთ საკითხებზე, როგორიცაა rovo89 (XDA აღიარებული დეველოპერის გარკვეული დახმარების შემდეგ ვაამ) ახლა მზად არის გამოუშვას ოფიციალური განახლება Xposed Framework-ისა და ინსტალერი-მოყვანისთვის თავსებადობა Android 7.0/7.1 Nougat-თან. ეს ნიშნავს, რომ თქვენ არ მოგიწევთ დააინსტალიროთ საბაჟო ROM ან არ მოგიწიოთ არეულობა მოციმციმე არასტაბილურ ვერსიებში ისიამოვნეთ Xposed - უბრალოდ დააყენეთ თქვენი ტელეფონი და დააინსტალირეთ უახლესი Xposed Installer აპლიკაცია (ბმული ქვემოთ) და The Xposed Installer გააკეთებს მაგიას და დააინსტალიროს Xposed თქვენთვის.

Xposed ინსტალერი ათვალიერებს მოდულის საცავს

ეს შეიძლება ცოტა გვიან ჩანდეს ზოგიერთ გონებაში, განსაკუთრებით მას შემდეგ, რაც ეს გამოცემა მოდის Android 8.0 Oreo-ს გამოშვებიდან ერთი თვის შემდეგ. გაითვალისწინეთ, რომ ძალიან ცოტა მოწყობილობას ექნება წვდომა Android Oreo-ს სტაბილურ ვერსიაზე მრავალი თვის განმავლობაში. Android Oreo არის მხოლოდ 0.2% ყველა Android მოწყობილობიდან (შედარებით ~18% Nougat-ზე) Google-ის უახლესი სტატისტიკის მიხედვით, მაგრამ ჩვენი ბევრი მომხმარებელი ისეთია, ვისაც უყვარს პერსონალური ROM-ების დაყენება, რათა დარჩეს სისხლდენის ზღვარზე.

Android ვერსიის განაწილება 2017 წლის ოქტომბრის მდგომარეობით. წყარო: Google

თუმცა მაშინაც კი, თუ თქვენ დააინსტალირეთ Android 8.0-ის არაოფიციალური პორტი ხელმისაწვდომია ჩვენს ფორუმზე არსებულ უამრავ მოწყობილობაზე, ამ პორტებიდან ბევრი არ არის ყოველდღიური მძღოლის სტატუსი. ასე რომ, თუ თქვენ არ გსურთ დახარჯოთ ასობით დოლარი სრულიად ახალისთვის Google Pixel 2/2 XL, Sony Xperia XZ1/XZ1 Compact, ან მომავალი მოწყობილობა, როგორიცაა Huawei Mate 10, მაშინ ალბათ შეძლებთ რამდენიმეთვიანი გამოყენების გამორთვას Xposed Framework-ის Android Nougat-ზე.

თუ ასე ჟღერს, მაშინ გადადით ფორუმის ოფიციალურ თემაში Xposed Installer-ისა და ჩარჩოს ზიპებისთვის, რომ ამოქმედოთ და გაუშვათ თქვენს Android Nougat მოწყობილობაზე.

ჩამოტვირთეთ Xposed Installer v3.1.2 (დანართი)

Xposed ინსტალერი Nougat 7.0 (SDK24) ჩამოტვირთეთ

Xposed ინსტალერი Nougat 7.1 (SDK25) ჩამოტვირთეთ

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


რატომ დააინსტალირეთ Xposed Framework?

გსურთ მიიღოთ საბაჟო ROM-ის ფუნქციები საბაჟო ROM-ის ციმციმის გარეშე? ყველა Xposed მოდულის დედა თქვენი ROM-ის შესწორებისთვის, რომელიც ცნობილია როგორც GravityBox, გაქვთ დაფარული. გსურთ ეკრანის პარამეტრების მორგება თითო აპის საფუძველზე? სცადე აპის პარამეტრები. რაც შეეხება გარკვეული აპლიკაციების მორგებას, როგორიცაა ჰენგაუთები? ან შეცვალეთ Instagram, ასე რომ თქვენ შეგიძლიათ ჩამოტვირთეთ ნებისმიერი პოსტი, რომელიც მოგწონთ?

Xposed აძლევს დეველოპერებს შესაძლებლობას შეცვალონ თითქმის რაც უნდათ— ძირითადად მიზნად ისახავს ცალკეულ აპლიკაციებს, მაგრამ სისტემური ფუნქციების შეცვლაც კი შესაძლებელია. ჩვენ მიერ ჩამოთვლილი მაგალითები მხოლოდ აისბერგის მწვერვალია. დამატებითი ფუნქციების რაოდენობა, რომელთა დამატებაც შეგიძლიათ, ან აპების, რომელთა შეცვლაც შეგიძლიათ, წარმოუდგენელია – უბრალოდ მოძებნეთ ოფიციალური Xposed Module საცავი რომ თავად ნახოთ. გაითვალისწინეთ, რომ ზოგიერთ მოდულს შესაძლოა განახლება დასჭირდეს ამ ახალი გამოშვებისთვის და Nougat-ის მხარდაჭერისთვის, ასე რომ, დარწმუნდით, რომ შეამოწმეთ სანამ დააინსტალიროთ ისინი თქვენს Nougat ROM-ზე!

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

მისი არსი ის არის, რომ Xposed Framework საშუალებას აძლევს მოდულებს "ჩართეთ" ნებისმიერი აპლიკაციის Java მეთოდებში— იქნება ეს მომხმარებლის მიერ დაინსტალირებული თუ სისტემური აპლიკაცია. Xposed საშუალებას აძლევს მოდულებს შეასრულონ საკუთარი მეთოდები ადრე, დროს ან მის ნაცვლად სამიზნე განაცხადის ორიგინალური მეთოდები.

მაგალითად, წარმოიდგინეთ მეთოდი, რომელიც გამოიყენება Gmail აპლიკაციაში, რომელიც აქვეყნებს შეტყობინებებს ახალი ელფოსტის შესახებ. ნაგულისხმევად, მეთოდი ქმნის ახალ შეტყობინებას ღილაკებით დაარქივება/წაშლა ან ელფოსტაზე პასუხის გასაცემად. Xposed Module შეიძლება შეიქმნას ამ მეთოდის დასამაგრებლად და ახალი ღილაკის დამატება, როგორიცაა "მონიშნე როგორც წაკითხული". (დიახ, არსებობს უკვე მოდული სწორედ ამისთვის.)

ზემოაღნიშნული არის საბოლოო შედეგის ზედმეტად გამარტივება იმისა, რაც Xposed Framework საშუალებას აძლევს თავის მოდულებს გააკეთონ. თავად Framework წარმოუდგენლად რთულია და აიძულებს მას თითქმის უნივერსალურად იმუშაოს root მოწყობილობებზე - მორგებული ROM-ის საჭიროების გარეშე - ამიტომაც Xposed for Android Nougat-ს ამდენი დრო დასჭირდა.

რატომ იღებს Xposed განვითარებას ამდენი დრო?

Xposed-ის მიღმა ჯადოქრობა - რაც საშუალებას აძლევს მოდულებს სხვა აპლიკაციების მეთოდებთან დაკავშირებას - მოითხოვს ღრმა ცოდნას იმის შესახებ, თუ როგორია Zygote და Android Runtime (ART) მუშაობს. ეს მოთხოვნები უკვე გამორიცხავს ადამიანთა დიდ რაოდენობას პროექტში წვლილის შეტანაში, მაგრამ პრობლემას ამწვავებს ის ფაქტი, რომ rovo89 იყო Xposed-ის მთავარი კონტრიბუტორი ბოლო 5 წლის განმავლობაში.

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

გარდა ამისა, თუ rovo89 მუდმივად ანახლებს თავის წყაროს, ის წუხდა რომ ვინმე აიღებს დაუმთავრებელ კოდს ნახევრად ფუნქციონალური Xposed Framework-ის ასაგებად უნივერსალური Xposed ინსტალერის გარეშე. (ზუსტად ეს მოხდა ყოველ შემთხვევაში აბფორსის დანერგვისას და ინსტალაციის სხვადასხვა მეთოდების შედეგად გამოწვეული არეულობა გაამართლა rovo89-ის ყოყმანის შესახებ.)

ამგვარად, საუკეთესო, რაც შეგვეძლო გაგვეკეთებინა, იყო rovo89-ის მიცემა დრო თავისი შინაური ცხოველების პროექტზე სამუშაოდ. Xposed არ არის მისი სრული, ან თუნდაც ნახევარ განაკვეთზე სამუშაო. ეს უბრალოდ ჰობია, რომელსაც ის აკეთებს საზოგადოების საკეთილდღეოდ 5 წლის განმავლობაში. ისეთი კომპლექსური პროექტი, როგორიც Xposed-ია, მოითხოვს დროს მუშაობას და შემდეგ გამოცდას — დრო, რომელიც მას ხშირად არ ჰქონდა სხვა ვალდებულებების გამო. პროგრესი იყო დამზადებულია გასული წლის განმავლობაში, ისევე, როგორც rovo89-მა დააფიქსირა ამ საკითხთან დაკავშირებული მისი რამდენიმე საჯარო განახლება, სანამ საბოლოოდ თავად Xposed Framework და Xposed ინსტალერი მზად არ იქნება გამოსაშვებად.

რა გააკეთა rovo89-მა იმისთვის, რომ Xposed-ი ემუშავა Nougat-ში?

Android-ის ახალი გამოშვებები ზოგჯერ ცვლის ART-ის მუშაობას, რაც შეიძლება მოითხოვდეს Xposed-ის ნაწილების გადამუშავებას. Android 7.0 Nougat-მა წარმოადგინა Just-in-Time შემდგენელი ART-ისთვის, რათა დაეხმაროს აპლიკაციების მუშაობის გაშვების გაუმჯობესებას, მაგალითად. მაგრამ არაოფიციალური Xposed Framework by abforce უბრალოდ გამორთავს ART-ის ბევრ ოპტიმიზაციას, რათა მეთოდის დაკვრა სწორად იმუშაოს.

ART ოპტიმიზაცია Android Nougat-ში. წყარო: Google

ამის საპირისპიროდ, rovo89-ის იმპლემენტაცია ინახავს ყველა ART ოპტიმიზაციას Android Nougat-ში მეთოდის აბონენტის ხელახალი შედგენით JIT-ის გამოყენებით და მეთოდის კვლავ ჩამაგრებით. ეს ნიშნავს, რომ თქვენ შეგიძლიათ ისარგებლოთ Xposed მოდულის უპირატესობებით, შესრულების შეწირვის გარეშე, ART ოპტიმიზაციის იძულებით გამორთვით.

დამატებითი დეტალებისთვის იმის შესახებ, თუ რა გააკეთა rovo89-მა, რათა საბოლოოდ მიაღწიოს საიმედო მიმაგრების მეთოდს Xposed-ში Android Nougat-ისთვის, გირჩევთ წაიკითხოთ ქვემოთ მოცემული განცხადება, რომელიც მან მოგვაწოდა.

სრული განცხადება rovo89-დან

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

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

ART საკმარისად ჭკვიანია იმისთვის, რომ შეამჩნიოს, რომ double() მეთოდი ძალიან მარტივია და, შესაბამისად, ათავსებს ლოგიკას პირდაპირ doSomething() მეთოდში, ასე:

თქვენ კვლავ შეგიძლიათ დააკავშიროთ ორჯერ() მეთოდი, მაგრამ ის აღარ იქნება გამოძახებული doSomething()-დან გაშვების დროს და ასე არ იქნება თქვენი გამოძახება. ART კიდევ უფრო ჭკვიანია: ის ხვდება, რომ მაგია ყოველთვის 42-ია და ამიტომ პირობა ვერასოდეს შესრულდება. ასე რომ, მთელი doSomething() მეთოდი რეალურად არის no-op:

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

Nougat-ის არაოფიციალური ვერსიები ასევე გამორთავს ამ ოპტიმიზაციებს, მაგრამ ისინი არ აიძულებენ ხელახლა კომპილაციას (რადგან პორტი თავდაპირველად ROM-ში ინტეგრირებული იყო). ამიტომ, კაკვები შეიძლება არ შესრულდეს ხანდახან.

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

ახლა წადი და სცადე. დარწმუნდით, რომ გამოიყენოთ Xposed Installer 3.1.2, რადგან კონფიგურაციის გზა უნდა შეიცვალოს ფაილზე დაფუძნებული დაშიფვრის მხარდასაჭერად.

წაიკითხე მეტი

დასკვნა

ვიმედოვნებთ, რომ თქვენც ისეთივე აღფრთოვანებული ხართ, როგორც ჩვენ Xposed-ის გამოშვებით Android 7.X Nougat-ისთვის. ლოდინი დიდი ხანია, მაგრამ გარდაუვალია Xposed-ის სირთულის გათვალისწინებით. თუ ჯერ კიდევ დაბნეული ხართ რა არის Xposed ან როგორ მუშაობს, არ ინერვიულოთ. ძალიან ცოტა ადამიანს (მათ შორის ჩვენც) რეალურად ესმის, როგორ მუშაობს. დეველოპერები, როგორიცაა rovo89, ყველაფერს აკეთებენ თავიანთი სამუშაოს შეფუთვაში, ასე რომ თქვენ ნამდვილად არ გჭირდებათ იმის გაგება, თუ რა ხდება კაპოტის ქვეშ.

მოგწონთ Xposed Framework? იფიქრეთ rovo89-ისთვის შესაწირად იმ გასაოცარი სამუშაოსთვის, რომელსაც ის აკეთებს. თუ ფიქრობთ, რომ გაქვთ ის, რაც გჭირდებათ პროექტში წვლილისთვის, იხილეთ rovo89-ის GitHub გვერდი ქვემოთ.

შემოწირულობა rovo89-ს

წვლილი შეიტანეთ Xposed-ში

ეძებთ Xposed მოდულებს? შეამოწმეთ ჩვენი Xposed Framework Module ქვეფორუმი ან ჩამოტვირთეთ XDA Labs აპლიკაცია და დაათვალიერეთ Xposed მოდულების ჩვენი კოლექცია.

Xposed მოდულების ფორუმი

ჩამოტვირთეთ XDA Labs

Android Oreo პროგრესი

თუ გაინტერესებთ, აი, როგორი პროგრესია Android Oreo-სთვის Xposed-ის მიღებაში:

Android 8.0-ზე მუშაობა უკვე დავიწყე. Არის ცოტაოდენი ახალი ენის მახასიათებლები რომ მომიწევს ყურება, მაგრამ ზოგადი კონცეფცია მაინც უნდა იმუშაოს. ეს მოიცავს მთელ სამუშაოს ნებისმიერი აბონენტის კომპილირებული კოდის გაუქმებაზე, როდესაც მეთოდი ჩართულია, რასაც ყველაზე მეტი დრო დასჭირდა Nougat-ზე მუშაობისას. ასე რომ, მე ნამდვილად დარწმუნებული ვარ, რომ ამჯერად ბევრად უფრო სწრაფი ვიქნები. Android 8.1დიდად განსხვავებული არ უნდა იყოს, ამიტომ არ ველოდები დამატებით სამუშაოს ამისთვის.