DSU Loader Android 11-ში ეხმარება დეველოპერებს შეამოწმონ აპები საფონდო Android-ზე

Android 11 მოყვება DSU Loader დეველოპერის ოფციებში, რომელიც საშუალებას მოგცემთ ჩამოტვირთოთ და დააინსტალიროთ თავსებადი GSI ავტომატურად! წაიკითხეთ მეტი!

კარგი აპლიკაციის ეკოსისტემა არის ოპერაციული სისტემის წარმატების ერთ-ერთი ყველაზე მნიშვნელოვანი საყრდენი. ორივე Google და Apple აღიარებენ კარგი აპლიკაციების არსებობის მნიშვნელობას მათ პლატფორმებზე და ამიტომ ორივე კომპანია ცდილობს დააბალანსოს მათი მომხმარებლებისა და მათი აპლიკაციების დეველოპერების საჭიროებები. მომხმარებლები აგრძელებენ ცვლილებებს OS-ებში და მიუხედავად იმისა, რომ ადამიანების უმეტესობა ზოგადად აფასებს ახალ ფუნქციებს, მათ ცვლილებები ყოველთვის არ არის სახალისო აპლიკაციების შემქმნელებისთვის, რადგან მათ შეუძლიათ შეცვალონ მრავალი ძირითადი ფუნქცია და მოქმედება. დეველოპერებისთვის, რომლებიც მუდმივად მუშაობენ თავიანთი აპების აქტუალურობის შესანარჩუნებლად, ამ ცვლილებებთან გამკლავება ემატება მათ მზარდ სამუშაო სიას. მაშინაც კი, თუ ეს ცვლილებები პირდაპირ გავლენას არ მოახდენს მათ აპლიკაციებზე, დეველოპერებმა მაინც უნდა დარწმუნდნენ, რომ მათი აპლიკაციები იმუშავებს OS-ის ახალ განახლებაზე. Google-მა მრავალი ცვლილება განახორციელა წლების განმავლობაში, რათა ეს პროცესი გაეადვილებინა Android აპლიკაციის შემქმნელებისთვის და ახლა, ახალი ფუნქცია Android 11-ში, სახელწოდებით DSU Loader, კიდევ უფრო გაუადვილებს აპლიკაციების დეველოპერებს აპლიკაციების ახალ Android-ზე გამოცდას ვერსიები.

ის იწყება Project Treble-ით

პროექტი Treble, რომელიც დაინერგა Android 8.0-ში, არის მთავარი Android OS-ის ხელახალი არქიტექტურა. Project Treble-ის მიზანი იყო Android OS-ის ორ დიდ ნაწილად გაყოფა: ჩარჩო და გამყიდველის განხორციელება. ("გამყიდველი" აქ იგულისხმება ნებისმიერი საკუთრების ტექნიკის კომპონენტის მწარმოებელზე, რომელიც ნაპოვნია მოწყობილობაში, ჩვეულებრივ გულისხმობს სილიკონი). Android OS Framework არის თავად ოპერაციული სისტემა, რომელიც მოიცავს ყველა სისტემის აპს, ინტერფეისს და მის კომპონენტებს და API-ებს, რომლებიც გაზიარებულია Android მოწყობილობებში. გამყიდველის დანერგვა შეიცავს გამყიდველს HAL-ებს (Hardware Abstraction Layers) და Linux-ის ბირთვის და Linux-ის ბირთვის მოდულებს.

მას შემდეგ, რაც OEM-ები აგზავნიან სმარტფონებს სხვადასხვა ტექნიკის კომპონენტებთან მრავალი განსხვავებული გამყიდველისგან, მათ ბევრი სამუშაო უნდა გააკეთონ მხოლოდ იმისთვის, რომ ტექნიკის ამუშავება და გაშვება მოხდეს Android OS-ის ერთ გამოშვებაზე. შემდეგ Android OS-ის ყოველი ახალი განახლებით, მათ კიდევ უფრო მეტი სამუშაო უნდა გააკეთონ, რათა დარწმუნდნენ, რომ მათი აპარატურა მუშაობს ახალ ვერსიასთან. მაგრამ Project Treble-ის სტანდარტიზებით ABI (აპლიკაციის ორობითი ინტერფეისი) Android OS ჩარჩოსა და HAL-ებს შორის Android-ის კონკრეტული ვერსიისთვის, Android OEM-ებს შეუძლიათ დაიწყონ თავიანთი მოწყობილობების განახლებების ტესტირება სილიკონის მწარმოებლებისა და კომპონენტების სხვა შემქმნელების ლოდინის გარეშე, რათა განაახლონ თავიანთი მხარე. კოდი. ეს ცვლილება შესამჩნევად დაჩქარდა Android-ის განახლებების დამუშავების გზა.

ეს არის არსი იმისა, რაც Project Treble-მა გააკეთა Android-ის განახლებისთვის, მაგრამ რაც უფრო მნიშვნელოვანია აპისთვის დეველოპერები აქ არის ის, რომ Treble-მ ჩართო ზოგადი სისტემის სურათების (GSI) გამოყენება თავსებადობისთვის ტესტირება.

GSI-ების გაჩენა

იმისათვის, რომ OEM-ებმა შეამოწმონ, აქვთ თუ არა სათანადოდ დანერგილი Project Treble, Google ავალდებულებს, რომ OEM-ს შეეძლოს AOSP-დან Android-ის სუფთა ვერსიის ჩატვირთვა მოწყობილობაზე. Android-ის ამ სუფთა კონსტრუქციას ეწოდება ზოგადი სისტემის სურათი, ან GSI. თუ GSI ჩექმები და ძირითადი აპარატურა გამართულად ფუნქციონირებს, მაშინ OEM-მა იცის, რომ მათი მოწყობილობა აკმაყოფილებს Project Treble-ის მოთხოვნებს. ამგვარად, GSI-ების თავდაპირველი დანიშნულება იყო Treble-ის თავსებადობის ტესტირება, მაგრამ როგორც ვნახეთ განვითარების საზოგადოებასთან აქ XDA-Developers-ში, მათი გამოყენება შესაძლებელია სხვა მიზნებისთვის. ჩვენ ვნახეთ როგორ GSIs შეიძლება არსებითად დაუშვას მძიმე Android UX-ის მქონე მოწყობილობებს ისარგებლონ Android-ის უახლესი ვერსიით სამუშაო ფუნქციებით ახალი გამოშვებიდან რამდენიმე დღეში. მაგრამ გუგლი GSI-ის უკან სხვა მიზანს ითვალისწინებს: აპლიკაციის დეველოპერებს მისცეს შესაძლებლობა, გამოსცადონ თავიანთი აპლიკაციები Android-ის ახალ ვერსიაზე ფიზიკურ მოწყობილობაზე, რომელსაც უკვე ფლობენ.

Android 10-ით Google-მა გამოუშვა საკუთარი GSI კონსტრუქციები დეველოპერებისთვის. Google-მა გააძლიერა იდეა, რომ აპლიკაციების შემქმნელებმა უნდა გამოიყენონ GSI Android-ის სუფთა კონსტრუქციის ჩატვირთვისთვის საკუთარ აპარატურაზე, რაც გაუადვილებს მათი აპლიკაციის ქცევის შემოწმებას საფონდო Android-თან მიმართებაში. ამრიგად, ეს მეთოდი დაემატა აპების თავსებადობის ტესტირების არსებულ ვარიანტებს საფონდო Android-ზე OEM ქცევის ცვლილებების გარეშე, სხვები Pixel-ის სმარტფონის გამოყენებით, Android Studio-ში ოფიციალური Android ემულატორის გამოყენებით ან ღრუბელში მოწყობილობის მაგალითზე აპლიკაციის აპლიკაციების დაყენებით.

მიუხედავად ყველა მოხერხებულობისა, რაც მოჰყვა GSI-ებს, მათი ინსტალაცია მაინც რთული პროცესი იყო. აპლიკაციის შემქმნელებს შეიძლება არ მოეწონათ Android მოწყობილობაზე სისტემის სურათის ხელით ციმციმა, რადგან ეს არის ის, რასაც, როგორც წესი, მხოლოდ ჰობისტები ან Android OS დეველოპერები იცნობენ. GSI-ის ინსტალაცია მოითხოვდა სისტემის გამოსახულების ციმციმებს fastboot-ზე, რაც მოითხოვს Android Verified Boot-ის გამორთვას და ჩამტვირთველის განბლოკვას. ჩამტვირთველის განბლოკვა, თავის მხრივ, მოითხოვს მომხმარებლის მონაცემების სრულ გასუფთავებას. და როგორც ყველამ ვიცით, არ არსებობს ზუსტად ერთი პროცესი ან სახელმძღვანელო ყველა Android მოწყობილობის ჩამტვირთველის განბლოკვისთვის, ასე რომ, არ არსებობს თანმიმდევრულობა. მაგალითად, Samsung-ის მოწყობილობებს არ აქვთ სწრაფი ჩატვირთვა, ხოლო Xiaomi მოწყობილობებს გაიძულებთ გადახტეთ რამდენიმე რგოლში ჩამტვირთველის განბლოკვის მიზნით. ეს არის მოხერხებული არეულობა, რომელსაც აქვს პოტენციალი, რომ გაიხსნას რაღაც უფრო მარტივში.

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

დინამიური სისტემის განახლებები უბრალოდ GSI-ების დაყენებით

Google-მა გააცნობიერა, რომ GSI-ების დაყენების ამჟამინდელი მეთოდი არ იყო სრულყოფილი გამოსავალი, ამიტომ მათ დაიწყეს უკეთეს გადაწყვეტაზე მუშაობა. Android 10-ში, Google-მა დაიწყო დინამიური სისტემის განახლებების ტესტირება, ან DSU. DSU არის ახალი გზა GSI-ის დროებით ინსტალაციისთვის, სისტემის გამოსახულების გასანათებლად fastboot ბრძანებების გამოყენების საჭიროების გარეშე, ორიგინალური ინსტალაციის გადასაწერად. DSU-ით შეგიძლიათ ჩატვირთოთ GSI-ში, შეამოწმოთ თქვენი აპლიკაცია და შემდეგ მოხერხებულად გადატვირთოთ თავდაპირველი ინსტალაცია, რომელიც ხელუხლებელი დარჩა.

მიზეზი იმისა, რომ DSU-ს შეუძლია დააინსტალიროს GSI თავდაპირველ ინსტალაციაზე შეხების გარეშე არის ის, რომ ის ქმნის ახალ სისტემის და მონაცემთა დანაყოფის სურათებს, რომლებიც დროებით ინახება /data/gsi. ეს სურათები შემდეგ დამონტაჟებულია ჩატვირთვის დროს, ვიდრე ორიგინალური სისტემისა და მონაცემთა დანაყოფების. იმის გამო, რომ ტელეფონს სჭირდება დამატებითი საცავი ამ ახალი, დროებითი სურათებისთვის, თქვენს ტელეფონს უნდა ჰქონდეს „ლოგიკური ტიხრები“, რომლებიც ზომის დინამიურად შეცვლადია. ლოგიკური დანაყოფები არის ახალი მომხმარებლის სივრცის დაყოფის სისტემა Android-ისთვის, რომელიც სავალდებულოა Android 10-ით გაშვებული მოწყობილობებისთვის. თუ თქვენი მოწყობილობა გაშვებულია Android 10-ით, მაშინ მას უნდა ჰქონდეს GSI-ების ინსტალაცია DSU-ის მეშვეობით.

Android 10-ში ყველაფერი რაც თქვენ უნდა გააკეთოთ დააინსტალირეთ GSI DSU-ის საშუალებით არის სისტემის თვისების შეცვლა და შემდეგ გაშვება DynamicSystemUpdatesInstallationService განზრახვის გაგზავნით GSI-მდე ბილიკით, როგორც დამატებითი განზრახვა.

მიუხედავად იმისა, რომ ეს პროცესი შეიძლება უცნობი ჩანდეს, ის ბევრად უფრო ადვილი და ნაკლებად ინტრუზიულია გამოყენებასთან შედარებით fastboot ბრძანებები და ყველაფრის სირთულესთან გამკლავება, ორიგინალური ინსტალაციის ჩათვლით წაშლილია. თქვენ გჭირდებათ გარკვეული ცოდნა ADB-ის და განზრახვების შესახებ, რომ გამოიყენოთ DSU, მაგრამ ეს არ უნდა იყოს პრობლემა აპლიკაციების უმეტესობისთვის. და მაინც, არ არსებობს მიზეზი, რომ პროცესი კიდევ უფრო გამარტივდეს. გარდა ამისა, არის ის ფაქტი, რომ GSI-ის ინსტალაცია DSU-ს მეშვეობით მაინც მოითხოვს თქვენგან განბლოკოთ ჩამტვირთველი, ამ პროცესში მომხმარებლის ყველა მონაცემის წაშლა. ამ მიზნით, Google-მა განახორციელა ცვლილებები GSI ინსტალაციის ორივე ასპექტის გასაუმჯობესებლად. Android 11-ში მათ გააუქმეს ბრძანების ხაზის გამოყენების აუცილებლობა GSI-ის დასაყენებლად. ცალკე, მათ ასევე შესაძლებელი გახადეს GSI-ის დაყენება ჩამტვირთველის განბლოკვის გარეშე.

DSU Loader Android 11-ში

DSU Loader არის ახალი ინსტრუმენტი, რომელიც წარმოდგენილია Android 11-ის დეველოპერის ოფციებში, რომელიც საშუალებას გაძლევთ ჩამოტვირთვა და დაინსტალირება უახლესი GSI Google-ისგან ნებისმიერი fastboot ან ADB ბრძანებების შეყვანის საჭიროების გარეშე. უბრალოდ შეეხეთ DSU Loader ოფციას პარამეტრების ფარგლებში და დიალოგური ფანჯარა გამოჩნდება მხარდაჭერილი GSI-ების სიით პირდაპირ Google-იდან. ეს მხარდაჭერილი GSI დაფუძნებული იქნება თქვენს ამჟამინდელ OS-სა და არქიტექტურაზე, ასე რომ თქვენ შეგიძლიათ დააინსტალიროთ მხოლოდ GSI-ები, რომლებიც უფრო ახალია ვიდრე თქვენი OS ვერსია და შეესაბამება თქვენს SoC არქიტექტურას. უბრალოდ აირჩიეთ GSI, რომლის ინსტალაციაც გსურთ და ის ჩამოიტვირთება Google-ის სერვერებიდან და ავტომატურად დაინსტალირდება ფონზე.

DSU Loader Android 11-ზე

DSU Loader-ით, დეველოპერებს არასოდეს უწევთ შეხება ბრძანების ხაზს GSI-ის დასაყენებლად. ყოველ შემთხვევაში, ეს ოცნებაა, რადგან ჯერ კიდევ ერთი საკითხია გადასაჭრელი.

წინსვლის გზა

ამჟამად, GSI-ის დასაყენებლად DSU Loader-ის საშუალებით, გჭირდებათ განბლოკილი ჩამტვირთველი. მიუხედავად იმისა, რომ ამან შეიძლება დაამარცხოს მთელი განსაცდელის მიზანი, ეს ასე არ უნდა იყოს და გვეუბნებიან, რომ გამოსწორდება. Google-მა დაგეგმა, რომ მომხმარებლებს შეეძლოთ Google-ის მიერ ხელმოწერილი GSI-ების ჩატვირთვა DSU-ის მეშვეობით ჩამტვირთველის განბლოკვის გარეშე. სინამდვილეში, Google ავალებს ამას Android 10-ის გაშვების ყველა მოწყობილობა მოიცავს Android Verified Boot საჯარო კლავიშებს Google-ის ხელმოწერილი Android 10, Android 11 და Android 12 GSI-ებიდან. მოწყობილობის ramdisk-ში AVB საჯარო გასაღებების ჩართვა უზრუნველყოფს იმას, რომ AVB არ უარყოფს GSI-ს, რომლის ჩატვირთვას ცდილობთ. ამიტომაა, რომ მიმდინარე მეთოდი გულისხმობს ჩამტვირთველის განბლოკვას - ცარიელი vbmeta სურათის vbmeta დანაყოფზე ციმციმებით, თქვენ გამორთავთ AVB-ს, რათა ის არ უარყოს GSI, რომელსაც თქვენ აპირებთ ციმციმებს. AVB-ის გამორთვა არის უსაფრთხოების მთავარი რისკი, რადგან ეს ნიშნავს, რომ ნებისმიერი შეცვლილია სისტემა/ჩატვირთვა/პროდუქტი/მიმწოდებლის დანაყოფი შეიძლება ჩაიტვირთოს მოწყობილობაზე, რის გამოც Google-ს სურს ამის გაკეთება მოშორებით ამ მოთხოვნას.

Android 10 GSI გაშვების მოთხოვნები

მაშ, როდის შეიძლება ველოდოთ GSI-ის ჩატვირთვას DSU-ის მეშვეობით ჩამტვირთველის განბლოკვის ან რაიმე ბრძანების ხაზის ხელსაწყოების გამოყენების გარეშე? იმედია მალე, როგორც გუგლმა გვითხრა, რომ მათ ჰქონდათ რამდენიმე შეფერხება Android 11 დეველოპერის საწყისი გადახედვით, სანამ ამ ყველაფერს გამართულად იმუშავებდნენ. წინსვლისას შეიძლება ველოდოთ მომავალი Developer Preview GSI-ების დაინსტალირებას DSU-ის მეშვეობით ჩამტვირთველის განბლოკვის გარეშე. შესაძლოა, როდესაც ხელმისაწვდომი გახდება Android 12 დეველოპერის გადახედვები, თქვენ შეძლებთ მის სრულად ჩატვირთვას DSU Loader-ის გამოყენებით Android 11-ის დეველოპერის ოფციებში. აპლიკაციების დეველოპერებისთვის ეს ნიშნავს, რომ გექნებათ კიდევ ერთი გზა, რათა შეამოწმოთ თქვენი აპლიკაციები ფიზიკურ აპარატურაზე, რომელიც მუშაობს Android-ის ახალ ვერსიაზე.