როგორ მოქმედებს A/B ტიხრები და უწყვეტი განახლებები XDA-ზე მორგებულ განვითარებაზე

click fraud protection

შეიძლება ადრე გსმენიათ Seamless Updates-ის შესახებ. იგი მოიცავს რაღაც სახელწოდებით "A/B ტიხრები". რა არის ეს და როგორ მოქმედებს ის XDA-ზე მორგებულ განვითარებაზე?

როდესაც Android Nougat გამოვიდა, მასზე ვსაუბრობდით ყველა სახის ახალი ფუნქცია. ჩვენ მივიღეთ ახლად განახლებული მომხმარებლის ინტერფეისი დამწყებთათვის, დიდი ხნის ნანატრი მრავალფანჯრის შესაძლებლობებთან და Vulkan Graphics API-ს მხარდაჭერასთან ერთად. მაგრამ მომხმარებელთა უმეტესობის თავში ერთმა ქუდის ქვეშ მოთავსებულმა დამატებამ გადაიფრინა. Android Nougat-მა წარადგინა "Seamless Updates" მოწყობილობებზე, რომლებიც მხარს უჭერენ A/B დანაყოფებს. არსებული Android მოწყობილობების აბსოლუტურ უმრავლესობას (ახალი Google Pixel-ისა და Google Pixel XL-ის გამოკლებით) არ გააჩნდა A/B დანაყოფები იმ დროს და, შესაბამისად, ვერ ისარგებლებდა უწყვეტი განახლებებით. ამ ფუნქციის ძირითადი წინაპირობა არის ის, რომ მოწყობილობას აქვს სისტემის მეორე ნაკრები, ჩატვირთვა, გამყიდველი და სხვა მნიშვნელოვანი დანაყოფები და როდესაც თქვენ მიიღებთ OTA-ს. განახლების განახლება ხდება ფონზე, ხოლო დანაყოფების მეორე ნაკრები შეფუთულია, რაც საშუალებას გაძლევთ შეუფერხებლად გადატვირთოთ განახლებული პროგრამული უზრუნველყოფა. თუ განახლება ვერ მოხერხდა, თქვენ დაბრუნდებით სამუშაო კონსტრუქციაზე, რაც ნიშნავს, რომ კომპანიებს ნაკლები თავის ტკივილი ექნებათ და მომხმარებლები უკეთესად დაცულნი იქნებიან.

უწყვეტი განახლებების მხარდაჭერა არ არის მოთხოვნა ნებისმიერი ახალი Android მოწყობილობისთვის, განსხვავებით Project Treble. როგორც ასეთი, ახალი Android მოწყობილობების აბსოლუტურ უმრავლესობას არ აქვს ფუნქცია. ჩვენ დღემდე ვინახავთ ყველა მხარდაჭერილი მოწყობილობის სიასდა ცხადია, რომ ეს ფუნქცია ფართოდ არ არის მხარდაჭერილი. ეს სირცხვილია, რადგან A/B ტიხრები უამრავ სარგებელს მოაქვს როგორც ჩვეულებრივი მომხმარებლებისთვის, ასევე ენერგიული მომხმარებლებისთვის. თუმცა, მახასიათებელს ცოტა ცუდი რეპუტაცია აქვს ენთუზიასტ საზოგადოებაში, რადგან ის აღიქმება, რომ Android-ის განვითარებას და მოციმციმე მოდიფიკაციებს უფრო ართულებს. სინამდვილეში ეს ასე არ არის, ამიტომ გვინდოდა გაგვეცნო უწყვეტი განახლებები და აგვეხსნა, თუ როგორ მოქმედებს A/B ტიხრები XDA-ზე მორგებულ განვითარებაზე.

დიდი მადლობა XDA-ს უფროს წევრს ნპჯონსონი, ა მონაწილე LineageOS და -ის შემნარჩუნებელი Motorola Moto Z2 Force, რომელიც დაგვეხმარა ამ სტატიის ფაქტების შემოწმებაში.


ტიხრები Android მოწყობილობაზე

დანაყოფი უბრალოდ არის დისკრეტული განყოფილება ტელეფონის შიდა მეხსიერებაზე, სადაც ინახება მონაცემები. რა სახის მონაცემები ინახება თითოეულ დანაყოფზე, დამოკიდებულია აპარატურაზე, ოპერაციულ სისტემაზე და ბევრ სხვა ფაქტორზე. ჩამტვირთველს ექნება ერთი, სისტემას (Android OS) ერთი, მომხმარებლის მონაცემებს ერთი... და ასე შემდეგ. როდესაც ხედავთ, რომ ადამიანები საუბრობენ "/system" და "/cache" შესახებ, ისინი მიუთითებენ ამ ტიხრების მითითებულ სახელებზე. მაგალითად, OnePlus 6-ს აქვს 72 დანაყოფი. ეს ბევრს ჟღერს, მაგრამ OnePlus 6 არის ერთ-ერთი მოწყობილობა, რომელიც მხარს უჭერს უწყვეტ განახლებებს, რაც ნიშნავს, რომ ამ ტიხრების უმეტესობა უბრალოდ ერთმანეთის დუბლიკატია.

დანაყოფების ნაწილობრივი გამომავალი OnePlus 6-ზე. ზოგიერთი A/B დანაყოფი ხაზგასმულია საჩვენებელი მიზნებისთვის.

მოწყობილობაზე არის უამრავი დანაყოფი, რომლებზეც არასოდეს მოგიწევთ ფიქრი, როგორც მომხმარებელი. ამ ტიხრებიდან ბევრი არასოდეს იცვლება პერსონალური ROM-ების, ბირთვების, აღდგენის ან მოდიფიკაციების ციმციმის დროს, როგორიცაა Magisk ან Xposed. ბევრი ეს დანაყოფი ან გამოუყენებელი იქნება ჩვენი მიზნებისთვის ან ძალიან საშიშია შეხებისთვის, თუ არ იცით რას აკეთებთ (XLOADER და OEMINFO Huawei/Honor-ზე მოწყობილობები მახსენდება.) Android-ის მომხმარებელთა დიდი უმრავლესობისთვის, დანაყოფები, რომლებთანაც ძირითადად საქმე გვაქვს არის სისტემა, ჩატვირთვა, აღდგენა, მომხმარებლის მონაცემები და ბოლო დროს გამყიდველი და vbmeta. აქ მოცემულია თითოეული დანაყოფის მიზნის მოკლე ახსნა:

  • სისტემა - ინახავს Android OS-ს, სისტემის ბიბლიოთეკებს, სისტემის აპებს და სხვა სისტემურ მედიას, როგორიცაა bootanimations, stock wallpapers, ringtones და ა.შ.
  • ჩატვირთვა - ინახავს ბირთვს, ramdisk-ს და A/B მოწყობილობებზე ასევე აღდგენას
  • აღდგენა - ინახავს აღდგენას, სადაც TWRP ყველაზე ხშირად ციმციმდება მხოლოდ A-მოწყობილობებზე (A/B მოწყობილობებს არ აქვთ გამოყოფილი აღდგენის დანაყოფი)
  • მომხმარებლის მონაცემები - ინახავს თქვენს აპს, სისტემას და შიდა მეხსიერების მონაცემებს
  • გამყიდველი - ფლობს პლატფორმისა და მოწყობილობისთვის სპეციფიკურ HAL-ებს, ფაილებს, რომლებიც აუცილებელია Android OS-ისთვის ძირეულ აპარატურასთან კომუნიკაციისთვის
  • vbmeta - დანაყოფი Android Verified Boot 2.0-ისთვის, რომელიც ამოწმებს ჩატვირთვის პროცესის მთლიანობას

მოწყობილობის OEM-ებს შეუძლიათ შეცვალონ თავიანთი დანაყოფის სქემები, რათა გამოიყენონ ნებისმიერი განლაგება, რაც მათ სურთ. მაგალითად, Huawei ყოფს ჩატვირთვის განყოფილებას ramdisk_recovery და kernel-ად. ასევე არის ბევრი დამატებითი დანაყოფი, რომელიც შეიძლება შეიცავდეს სხვა სისტემურ აპებს, როგორიცაა cust, პროდუქტი და oem, და while მათი შეცვლა უსაფრთხოა, ზოგადად არ არის რეკომენდებული, თუ გსურთ გაუადვილოთ საკუთარ თავს მარაგში დაბრუნება. მაშ სად ასრულებენ როლს A/B დანაყოფები?


A/B გაყოფის სქემა

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

ძალიან მარტივი სურათი, რომელიც მე გავაკეთე ქვემოთ, ასახავს, ​​თუ როგორ ხდება განახლების დამუშავება მოწყობილობაზე A/B დანაყოფის მხარდაჭერით. დანაყოფი, რომელიც ილუსტრირებულია, არის სისტემის დანაყოფი, თუმცა სხვა დანაყოფები, როგორიცაა ჩატვირთვა და გამყიდველი, ასევე შეიძლება განახლდეს OEM-ის ნებისმიერი მოცემული OTA განახლებით. განახლების ეს პროცესი ხდება არა მხოლოდ Android-ის ძირითადი ვერსიის განახლებით, არამედ უსაფრთხოების პაჩის განახლებით.

  1. ჩვენ ვიწყებთ სისტემის ორი დანაყოფით, system_a და system_b, ორივე Android-ის ერთსა და იმავე ვერსიაზე.
  2. თუ ვივარაუდებთ, რომ system_a აქტიურია, OTA განახლება ფონზე გაასწორებს system_b-ს, არააქტიურ დანაყოფის.
  3. system_a დაყენებულია არააქტიურად და system_b შემდეგ გახდება აქტიური მომხმარებლის გადატვირთვის შემდეგ.
  4. ახლა უმოქმედო დანაყოფი, system_a, განახლდება, როდესაც შემდეგი OTA განახლება გამოვა.

რა სარგებლობა მოაქვს ამ განახლების პროცესს?

  1. თუ განახლება ვერ მოხერხდა, მოწყობილობა დაბრუნდება მეორე სლოტზე არსებულ სამუშაო კონსტრუქციაზე.
  2. თქვენი მონაცემები სრულყოფილად ხელუხლებელი რჩება, თუნდაც განახლება შეფერხებული იყოს, რადგან არსებობს მხოლოდ ერთი დანაყოფი (მომხმარებლის მონაცემები), რომელიც შეიცავს თქვენს მონაცემებს.
  3. განახლების სტრიმინგი: თუ თქვენი მონაცემების დანაყოფი სავსეა, განახლების ჩამოტვირთვა და სტრიმინგი შესაძლებელია არააქტიურ სლოტში. ეს საკმაოდ მოწესრიგებული ფუნქციაა და ნიშნავს, რომ თქვენ არ გჭირდებათ დროებითი მეხსიერების დახარჯვა თქვენს განახლებებზე. ამიტომ არ არის ქეში დანაყოფი A/B მოწყობილობებზე, რადგან ისინი აღარ არიან საჭირო.

რა გავლენას ახდენს A/B დანაყოფის სქემა მოწყობილობის შენახვაზე?

ნიშნავს თუ არა ის ფაქტი, რომ უწყვეტი განახლებები იწვევს დუბლირებულ ტიხრების თაიგულს, რომ თქვენ კარგავთ საცავის სივრცის უამრავ ადგილს? Არაფერს. Google ამბობს, რომ მოწყობილობები უწყვეტი განახლების მხარდაჭერით უნდა იყოს მხოლოდ რამდენიმე ასეული მეგაბაიტის დაქვეითება /cache და /აღდგენის ტიხრების ამოღების წყალობით. ორივეს ამოღება ანაზღაურებს დანაყოფების მეორე ნაკრების დამატების ღირებულებას. Google-ის თანახმად, Pixel-ის A/B სისტემის სურათი არის მხოლოდ A-სისტემის გამოსახულების ზომის ნახევარი. დამატებითი მეხსიერების გამოყენების უმეტესი ნაწილი რეალურად მოდის მეორე გამყიდველის დანაყოფის დამატებით. ეს ლოგიკურია, რადგან გამყიდველის დანაყოფი შეიცავს ყველა საკუთრებაში არსებულ ბინარებს, რომლებსაც იყენებენ OEM-ები (პროექტის Treble-ის ნაწილი), ამიტომ მოსალოდნელია, რომ ის საკმაოდ დიდ ადგილს დაიკავებს. მიუხედავად იმისა, რომ Google არ გირჩევთ A/B დაყოფას მოწყობილობებზე 4 გბაიტი მეხსიერებით (რადგან ეს არის მთლიანი ხელმისაწვდომი მეხსიერების თითქმის 10%), ისინი ამას ურჩევენ მოწყობილობებზე 8 გბაიტი და მეტი.

აქ მოცემულია Google Pixel-ზე გამოყენებული მეხსიერების სივრცის დაყოფა A/B დანაყოფებით და მის გარეშე.

დანაყოფის ზომები

A/B

A-მხოლოდ

ჩამტვირთავი

50 MB * 2

50 მბ

ჩექმა

32 მბ*2

32 მბ

აღდგენა

32 მბ

ქეში

100 მბ

რადიო

70 მბ*2

70 მბ

Გამყიდველი

300MB*2

300 მბ

სისტემა

2048 მბ*2

4096 მბ

სულ

5000 მბ

4680 MB

რა დაემართა აღდგენის დანაყოფს?

Android მოწყობილობებზე Linux-ის ძირითადი ბირთვი არის ის, რაც Android-ს აძლევს საშუალებას ამოიცნოს და სწორად გამოიყენოს აპარატურა სმარტფონზე. A-მხოლოდ Android მოწყობილობებზე, როგორც წესი, გაქვთ ბირთვის ორი ვერსია: ერთი შეფუთულია აღდგენის დანაყოფის შიგნით, ხოლო მეორე ჩატვირთვის განყოფილებაში. A/B მოწყობილობებზე, რომლებიც მხარს უჭერენ უწყვეტ განახლებებს, აღდგენა ახლა არის ჩატვირთვის სურათის შიგნით, ბირთვთან ერთად. აღდგენის მთავარი ფუნქცია იყო განახლებების დაყენება, მაგრამ რადგან ამას თავად სისტემა ამუშავებს (განახლება_ძრავა) სანამ Android ჩაიტვირთება, გამოყოფილი აღდგენის დანაყოფი აღარ არის საჭირო.

A/B მოწყობილობებზე მორგებული აღდგენის დასაყენებლად, ჩვენ უნდა შევცვალოთ ჩატვირთვის დანაყოფი და შევცვალოთ მარაგის აღდგენა ჩვენით. სწორედ ამიტომ TWRP-ის ინსტალაციისთვის საჭიროა გამოიყენოთ fastboot ბრძანება, რომ ჩატვირთოთ მორგებული ჩატვირთვის სურათი და მაშინ აანთეთ TWRP ინსტალაციის სკრიპტი, რადგან fastboot-ს არ შეუძლია ტიხრების დაყენება — მხოლოდ მთლიანად აანთებს მათ. თქვენ შეგიძლიათ ტექნიკურად წინასწარ დაალაგოთ თქვენი არსებული ჩატვირთვის სურათი TWRP-ით და შემდეგ გაანათოთ ის fastboot-ის საშუალებით, მაგრამ ეს იმაზე მეტი უბედურებაა, ვიდრე ღირს. TWRP ინსტალერის სკრიპტი ასწორებს boot_a და boot_b ტიხრებს TWRP-ის დასაყენებლად.

სახალისო ფაქტი: Android update_engine, რომელიც უმკლავდება უწყვეტ განახლებებს, ძირითადად ამოღებულია პირდაპირ Chrome OS-დან. სულ ახლახან იყო "Chrome OS" შემცველი სტრიქონები ამოღებული update_engine-ის ჟურნალიდან, რათა თავიდან აიცილოს დაბნეულობა ყველასთვის, ვინც შემთხვევით ამოწმებს logcat-ს.

მხარს უჭერს თუ არა ჩემს Android სმარტფონს A/B ტიხრები უწყვეტი განახლებისთვის?

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


როგორ მოქმედებს უწყვეტი განახლებები პერსონალურ განვითარებაზე?

მომხმარებლის აღქმა A/B ტიხრების შესახებ

მრავალი მომხმარებლის მიერ პერსონალური პროგრამული უზრუნველყოფის შემუშავების შემაფერხებლად მიჩნეული, უწყვეტი განახლებები რეალურად სიკეთეა დეველოპერებისთვის. მიზეზი იმისა, რომ A/B მოწყობილობებს აღიქმება ცუდი განვითარების მხარდაჭერა, მოდის პირველი A/B მოწყობილობების ფასზე. ყოველივე ამის შემდეგ, Google Pixel მოწყობილობები იყო ერთ-ერთი პირველი, ვინც მხარს უჭერდა უწყვეტ განახლებებს და წინა Nexus სმარტფონებთან შედარებით, ისინი შედარებით ძვირი ღირდა. გარდა ამისა, უამრავი გაუმჯობესების წყალობით, რომელსაც Google ახორციელებს Android OS-ში, რომელმაც შექმნა მორგებული ROM-ები და Google-ის მოწყობილობებზე ნაკლებად პოპულარული მოდიფიკაციები, Google Pixel სმარტფონები არ გავრცელდა ჩვენს ფორუმებზე, ისევე როგორც Nexus-მა სმარტფონები. გარე ფაქტორების ერთობლიობამ განაპირობა Google Pixel სმარტფონების პერსონალური განვითარების შემცირება, თუმცა მომხმარებელთა უმეტესობამ არჩია დაადანაშაულოს A/B დანაყოფის მხარდაჭერა. შეადარეთ მორგებული განვითარების ხელმისაწვდომობა მოწყობილობებზე, როგორიცაა Google Pixel და მოწყობილობებს, როგორიცაა Xiaomi Mi A1 ჩვენს ფორუმებზე.

გარდა ამისა, იმის გაგებამ, თუ როგორ შეცვალა A/B ტიხრები, როგორ შეცვალა მომხმარებლებმა მორგებული ROM-ების, ბირთვების, აღდგენისა და მოდიფიკაციების დაყენება, გამოიწვია A/B დანაყოფის მხარდაჭერა არაპოპულარული. აღდგენის შემდეგ, რომელიც ამჟამად ჩატვირთვის გამოსახულების შიგნითაა, მოციმციმე მოდიფიკაციები არასწორი თანმიმდევრობით, როგორიცაა Magisk ან Xposed, შეიძლება გამოიწვიოს კონფლიქტები და გამოიწვიოს ჩატვირთვის პროცესი. რა თანმიმდევრობით გამორთავთ ამ მოდებს, შეიძლება მნიშვნელოვანი იყოს, თუმცა საბაჟო ROM-ების შემთხვევაში თქვენ არ უნდა ინერვიულოთ იმაზე, თუ რომელ სლოტზე აანთებთ. საერთო რწმენის საწინააღმდეგოდ, ჩვეული ROM-ების უმეტესობის ინსტალაციის სკრიპტი არ ანათებს ორივე სლოტზე. თქვენ ძირითადად არ გჭირდებათ ამაზე ფიქრი, რადგან არ გჭირდებათ სლოტების ხელით შეცვლა.

როგორ ნახულობენ დეველოპერები A/B დანაყოფებს

ROM-ის შექმნისას, დეველოპერებს შეუძლიათ გამოიყენონ ორივე დანაყოფი ცალკეული build-ების შესამოწმებლად. თუ ერთი არ მუშაობს, მათ შეუძლიათ უბრალოდ დაუბრუნდნენ სამუშაო დანაყოფს და აღადგინონ თავიანთი ROM. დეველოპერებს ასევე შეუძლიათ შეამოწმონ რეგრესიები განახლების უბრალოდ დაყენებით, აქტიური დანაყოფის გადართვით და ამ ორის შედარებით მონაცემების წაშლის გარეშე. აი, როგორ უყურებს LineageOS გუნდი A/B დანაყოფის მხარდაჭერას:

„ანდროიდის საზოგადოებაში ბევრმა უწოდა A/B-ს, როგორც „რთულად მხარდაჭერისთვის“ და „არა დეველოპერებისთვის მეგობრული“, მაშინ როცა ის სწორად არის დანერგილი. უფრო ადვილია მხარდაჭერა და ისევე როგორც დეველოპერებისთვის." - jrizzoli, LineageOS Changelog 19

დეველოპერებისთვის A/B მხარდაჭერის საწყისი სირთულე წარმოიშვა მათი არსებული ხელსაწყოების შეცვლით ამ მოწყობილობების მხარდასაჭერად. Magisk-ის შემქმნელმა, topjohnwu-მ დაამატა Google Pixel-ის ოფიციალური მხარდაჭერა ერთი წლის შემდეგ გაათავისუფლეს - არა იმიტომ, რომ ეს რთული იყო, არამედ იმიტომ, რომ მას ერთი წელი დასჭირდა მოწყობილობის რეალურად მოსაპოვებლად მუშაობა. TWRP მხარდაჭერა საკმაოდ სწრაფად მოვიდა A/B მოწყობილობებზე მას შემდეგ, რაც მთავარმა დეველოპერმა, Dees_Troy-მა აიღო ბზარი. LineageOS 15.1 ახლა მხარს უჭერს A/B მოწყობილობები მას შემდეგ, რაც მოხალისეებმა გამონახეს დრო მათი addon.d სკრიპტის გამოსასწორებლად.

როგორ განაახლოთ A/B მოწყობილობა, რომელსაც აქვს მორგებული აღდგენა, ბირთვი ან სხვა მოდიფიკაციები

მორგებული რომები

განახლებების ციმციმა მოწყობილობაზე მორგებული ROM-ით ნიშნავს იმას, რომ ფრთხილად უნდა იყოთ, რომელ სლოტსაც ანათებთ, არა? Მთლად ასე არა. TWRP ფაქტობრივად გაუმკლავდება ბევრს თქვენთვის, და ის ნაგულისხმევია უმოქმედო სლოტზე ჩვეული ROM-ის გასანათებლად. თუ თქვენი აქტიური სლოტი არის A და ჩართავთ საბაჟო ROM-ს, თქვენ რეალურად ციმციმებთ B სლოტზე. როდესაც გადატვირთავთ, აქტიური სლოტი არის B. დეველოპერებს შეუძლიათ შეცვალონ ინსტალაციის სკრიპტი და ფლეში ორივე სლოტზე, რათა გაუადვილონ საბოლოო მომხმარებელს, თუმცა ჩვეული ROM-ის ინსტალაციის სკრიპტების უმეტესობა ამჟამად მხოლოდ ერთ სლოტზე ანათებს. დაბოლოს, საბაჟო ROM-ებს შეუძლიათ A/B განახლების დანერგვა თავიანთ ROM-ში ისე, რომ მომხმარებლებს არც კი დასჭირდეთ არეულობა. ხელით მოციმციმე განახლებები — უახლესი LineageOS 15.1 მოიცავს Lineage Updater ინსტრუმენტს და XDA Senior Member აშშ-წითელი დრაკონი გააკეთა ა ზოგადი A/B განახლება რომელიც სხვა დეველოპერებს შეუძლიათ გამოიყენონ.

საფონდო ROM-ები

მაგრამ არ არის პრობლემური, თუ თქვენს მოწყობილობას აქვს საფონდო ROM სხვადასხვა მოდიფიკაციებით და გსურთ განახლების დაყენება ყველა ამ რეჟიმის დაკარგვის გარეშე? ეს შეიძლება იყოს, თუ არ იცით განახლების ინსტალაციის სწორი ნაბიჯები. მაგალითად, OnePlus 6-ზე, თქვენ არ შეგიძლიათ აანთოთ დამატებითი OTA თქვენს შეცვლილ მოწყობილობაზე, რადგან დამატებითი OTA შეეცდება თქვენი შეცვლილი ჩატვირთვის სურათის დაყენებას. ამდენად, თქვენ სავარაუდოდ დასრულდებით bootloop-ით და სწორედ ამიტომ უნდა დააფიქსიროთ ROM-ის სრული განახლება, რომ მთლიანად გადაწეროთ თქვენი შეცვლილი ჩატვირთვის სურათი. აქ მოცემულია ზოგადი ნაბიჯები, რომლებიც უნდა გადადგათ OxygenOS-ის განახლების დასაყენებლად თქვენს OnePlus 6-ზე, ხოლო კვლავ შეინარჩუნოთ TWRP, Magisk და სურვილისამებრ მორგებული ბირთვი.

  1. ჩამოტვირთულია უახლესი სრული ROM zip
  2. გამორთეთ სრული ROM-ის zip აღდგენის პროცესში
  3. (სურვილისამებრ) Flash მორგებული ბირთვი
  4. Flash TWRP ინსტალერი
  5. გადატვირთეთ პირდაპირ აღდგენაზე
  6. ფლეშ მაგისკი

Google Pixel მოწყობილობებზე შეგიძლიათ აანთეთ ქარხნული სურათი მონაცემების წაშლის გარეშე, შემდეგ ჩატვირთეთ TWRP, დააინსტალირეთ TWRP ინსტალაციის სკრიპტის საშუალებით, შემდეგ დააინსტალირეთ Magisk.

განახლების ამოღება ცალკეული დანაყოფის სურათების გასანათებლად

მრავალი A/B მოწყობილობის განახლების ფაილები ოდნავ განსხვავდება მხოლოდ A- მოწყობილობებისგან. ისინი აღარ არის მხოლოდ zip ფაილი, რომელიც შეიცავს უამრავ სურათს (გარდა Google-ისა და Razer-ის ქარხნული სურათებისა), სამაგიეროდ, ისინი payload.bin ფაილის სახით არიან. თქვენ შეგიძლიათ ამ ფაილის ამოღება და თითოეული ნაწილის ხელით ფლეში, მაგრამ ამისათვის საჭიროა სპეციალური ინსტრუმენტი. თუ გაინტერესებთ როგორ გააკეთოთ ეს OnePlus 6-ზე, Xiaomi Mi A1-ზე და ბევრ სხვა A/B მოწყობილობაზე, წაიკითხეთ.

დაყენება payload.bin-ის ამოსაღებად

  1. დარწმუნდით, რომ გაქვთ Python 3.6 დაყენებული.
  2. ჩამოტვირთეთ payload_dumper.py და update_metadata_pb2.py აქ.
  3. ამოიღეთ თქვენი OTA zip და მოათავსეთ payload.bin იმავე საქაღალდეში, სადაც ეს ფაილებია.
  4. გახსენით PowerShell, Command Prompt ან Terminal თქვენი OS-ის მიხედვით.
  5. შეიყვანეთ შემდეგი ბრძანება: python -m pip install protobuf
  6. როდესაც ეს დასრულდება, შეიყვანეთ ეს ბრძანება: python payload_dumper.py payload.bin
  7. ეს დაიწყებს payload.bin ფაილში არსებული სურათების ამოღებას მიმდინარე საქაღალდეში, რომელშიც იმყოფებით.

სურვილის შემთხვევაში, ახლა შეგიძლიათ ცალ-ცალკე გაანათოთ თითოეული ეს სურათი fastboot-ის საშუალებით. შემდეგი განყოფილება გაჩვენებთ, თუ როგორ უნდა გააკეთოთ ეს.

Fastboot-ის გამოყენება სურათების გასანათებლად მოწყობილობაზე, რომელიც მხარს უჭერს უწყვეტ განახლებებს

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

Fastboot ბრძანებები

ბრძანება

მიიღეთ მიმდინარე აქტიური სლოტი

fastboot getvar ყველა | grep "current-slot"თუ Windows კომპიუტერზე მუშაობთ, ბრძანება "grep" არ იმუშავებს.

დააყენეთ სხვა სლოტი, როგორც აქტიური

fastboot set_active სხვა

დააყენეთ მითითებული სლოტი, როგორც აქტიური

fastboot set_active $ORfastboot --set-active=_$სლოტი სადაც $ არის a ან b

გამოანათეთ სურათი მითითებულ დანაყოფზე მიმდინარე სლოტში

fastboot flash partition partition.img

გამოანათეთ სურათი მითითებულ დანაყოფზე მითითებულ სლოტში

fastboot flash partition_a partition.imgfastboot flash partition_b partition.img

(შენიშვნა: A/B მოწყობილობებზე შეგიძლიათ მიუთითოთ დანაყოფი კონკრეტულ სლოტში, რომელზედაც უნდა აანთოს, ან შეგიძლიათ გამოტოვოთ სლოტის სუფიქსი და ის განათდება მიმდინარე აქტიურ სლოტზე. მაგალითად, შეგიძლიათ შეცვალოთ "პარტიცია" ფლეშ ბრძანებაში "system", "system_a" ან "system_b.")

ვინდოუს კომპიუტერებზე არ შეგიძლიათ გამოიყენოთ grep, ასე რომ უბრალოდ ამოიღეთ ეს ნაწილი და მოძებნეთ "current-slot".

სიტყვა Project Treble-ისა და უწყვეტი განახლებების შესახებ

გავრცელებული მცდარი მოსაზრებაა, რომ Project Treble-ის მხარდაჭერა და A/B დანაყოფის მხარდაჭერა დაკავშირებულია ერთმანეთთან, მაგრამ ეს სინამდვილეში ასე არ არის. ერთის ქონა არ ნიშნავს მეორეს. Motorola Moto Z2 Force იყენებს A/B დანაყოფის სქემას, მაგრამ არ აქვს Treble-ის მხარდაჭერა. მეორეს მხრივ, Honor 9 Lite მხარს უჭერს Project Treble-ს, თუმცა არის მხოლოდ A- მოწყობილობა.

Honor 9 Lite მხარს უჭერს Project Treble-ს, მაგრამ არ უჭერს მხარს უპრობლემო განახლებებს

ხშირად დასმული კითხვები/რეზიუმე

  • რა სარგებელი მოაქვს A/B დანაყოფს?
    • A/B დანაყოფი საშუალებას გაძლევთ განაახლოთ თქვენი Android სმარტფონი მისი გამოყენებისას, უბრალოდ გადატვირთოთ, როდესაც მზად იქნებით ჩატვირთვის ახალ ვერსიაში. ის ასევე მოქმედებს როგორც აგურისგან დაცვა - თუ განახლება არასწორედ წარიმართება, თქვენ დაუბრუნდებით სამუშაო ინსტალაციას.
  • აფერხებს თუ არა A/B დანაყოფი განვითარებას?
    • მიუხედავად იმისა, რომ დეველოპერებს ადაპტაციისთვის ცოტა დრო დასჭირდათ, პასუხი თითქმის არაა. სინამდვილეში, მას შეუძლია დაეხმაროს დეველოპერებს, რადგან მათ შეუძლიათ ორმაგად ჩატვირთონ თავიანთი Custom ROM ძველი ვერსიით და ახალი ტესტირების ვერსიით, რათა შეამოწმონ რეგრესიები.
  • როგორ მოქმედებს A/B დანაყოფები მოდებზე, როგორიცაა მორგებული ბირთვები, Magisk ან Xposed?
    • მათი დაყენებისას ფრთხილად უნდა იყოთ, მაგრამ ამჟამად არანაირი პრობლემა არ არის. Magisk ოფიციალურად მხარს უჭერს მოწყობილობებს უწყვეტი განახლებებით და მანამ, სანამ ნივთებს სწორი თანმიმდევრობით აანთებთ, პრობლემები არ შეგექმნებათ. დარწმუნდით, რომ გამორთეთ მორგებული ბირთვი, სანამ სხვა მოდიფიკაციებს აანთებთ და კარგად უნდა წახვიდეთ.
  • შემიძლია ორი განსხვავებული ROM-ის გამორთვა თითოეულ დანაყოფზე და ორმაგ ჩატვირთვაზე?
    • თეორიულად კი. პრობლემები წარმოიქმნება მონაცემთა გაზიარებული დანაყოფის გამო, ამიტომ არ არის რეკომენდებული.
  • ნიშნავს თუ არა A/B დანაყოფის სქემის არსებობა, რომ მე შემცირებული მაქვს მეხსიერება?
    • არა! Google ამბობს, რომ მოწყობილობები, რომლებიც მხარს უჭერენ უწყვეტ განახლებებს, მხოლოდ რამდენიმე ასეულ მეგაბაიტს სწირავენ მის მხარდასაჭერად. სარგებელი აღემატება ამ ხარჯს.
  • ჩემს მოწყობილობას აქვს A/B ტიხრების მხარდაჭერა, ნიშნავს თუ არა ეს, რომ შემიძლია გამოვიყენო Project Treble ზოგადი სისტემის სურათი?
    • Არ არის აუცილებელი. Project Treble და A/B მხარდაჭერა არ არის დაკავშირებული. Motorola Moto Z2 Force არ უჭერს მხარს Project Treble-ს, მაგრამ მხარს უჭერს A/B დანაყოფის სქემას.
  • ჩემი მოწყობილობა მხარს უჭერს Project Treble-ს, ეს ნიშნავს, რომ მე მაქვს A/B დანაყოფის სქემა?
    • ეს ყოველთვის ასე არ არის. Honor 9 Lite არის მთავარი მაგალითი, რადგან ის მხარს უჭერს Project Treble-ს, მაგრამ არ აქვს A/B დანაყოფის სქემა.
  • რატომ მჭირდება TWRP ჯერ fastboot-ით ჩატვირთვა და მერე გამორთვა?
    • ეს არის იმის გამო, თუ როგორ მუშაობს fastboot და ის ფაქტი, რომ აღდგენის დანაყოფი აღარ არსებობს. აღდგენა მოთავსებულია ჩატვირთვის დანაყოფის შიგნით, ამიტომ ჩვენ უნდა შევცვალოთ boot_a და boot_b. თქვენ არ შეგიძლიათ დანაყოფის დაყენება fastboot-ში, მხოლოდ აანთეთ მასზე. თქვენ, თეორიულად, შეგიძლიათ გააკეთოთ წინასწარ დაყენებული ჩატვირთვის სურათი და ამის ნაცვლად გაანათოთ.
  • არის თუ არა რაიმე საფრთხე A/B დანაყოფებთან დაკავშირებით? როგორ მოქმედებს უკან დაბრუნების დაცვა საკითხებზე?
    • Google-მა ყველანაირად სცადა, რომ ეს პრობლემა არ ყოფილიყო, მაგრამ Motorola Moto Z2-ის შემთხვევაში იძულებით, იყო ცნობილი შემთხვევები, როდესაც მოწყობილობამ განაახლა ძველი სლოტი Android-ზე განახლების შემდეგ ორეო. ეს ნიშნავდა, რომ უკან დაბრუნების დაცვა დაიწყო და მოწყობილობის მფლობელებს შეეძლოთ სმარტფონის გადარჩენა მხოლოდ EDL აღდგენით. Google ამბობს, რომ უკან დაბრუნების დაცვა მოქმედებს მხოლოდ პირველი ჩატვირთვის შემდეგ, ასე რომ, სლოტი სრულად უნდა ფუნქციონირებდეს განახლების შემდეგ, სანამ აღარ შეძლებთ დაქვეითებას.