Можда сте раније чули за беспрекорна ажурирања. То укључује нешто што се зове „А/Б партиције“. Шта је то и како утиче на прилагођени развој на КСДА?
Када је Андроид Ноугат изашао, причали смо о томе све врсте нових функција. Добили смо ново ажурирани кориснички интерфејс за почетак заједно са дуго очекиваним могућностима за више прозора и Вулкан Грапхицс АПИ подршком. Али један додатак испод хаубе прелетео је изнад глава већине корисника. Андроид Ноугат је представио „Беспрекорна ажурирања“ на уређајима који подржавају А/Б партиције. Огромна већина постојећих Андроид уређаја (осим нових Гоогле Пикел-а и Гоогле Пикел КСЛ) у то време није имала А/Б партиције и стога није могла да искористи предности беспрекорних ажурирања. Основна премиса ове функције је да уређај има други сет партиција система, покретања, добављача и других важних партиција, а када добијете ОТА ажурирање ажурирање се дешава у позадини док је други сет партиција закрпљен што вам омогућава да се поново покренете у ажурирану верзију софтвера без проблема. Ако ажурирање не успе, бићете враћени на радну верзију, што значи да ће компаније имати мање главобоља са којима се суочавају, а потрошачи су боље заштићени.
Подршка беспрекорних ажурирања није услов за било који нови Андроид уређај, за разлику од Пројецт Требле. Као таква, велика већина нових Андроид уређаја не подржава ову функцију. До сада смо водили листу свих подржаних уређаја, и јасно је да ова функција није широко подржана. То је штета јер А/Б партиције доносе много предности и за обичне кориснике и за напредне кориснике. Међутим, ова функција има помало лошу репутацију у заједници ентузијаста јер се сматра да отежава развој Андроида и флешовање прилагођених модификација. Ово заправо није случај, па смо желели да демистификујемо беспрекорна ажурирања и објаснимо како А/Б партиције утичу на прилагођени развој на КСДА.
Велико хвала КСДА Сениор Мембер нпјохнсон, а сарадник на ЛинеагеОС и одржавалац на Моторола Мото З2 Форце, који нам је помогао да проверимо овај чланак.
Партиције на Андроид уређају
Партиција је једноставно дискретни део интерне меморије телефона где се чувају подаци. Какви се подаци чувају на свакој партицији зависи од хардвера, оперативног система и многих других фактора. Боотлоадер ће имати један, систем (Андроид ОС) ће имати један, кориснички подаци ће имати један... и тако даље и тако даље. Када видите да људи говоре о „/систем“ и „/цацхе“, они се позивају на дата имена за те партиције. ОнеПлус 6, на пример, има 72 партиције. То звучи пуно, али ОнеПлус 6 је један од уређаја који подржава беспрекорна ажурирања, што значи да су многе од ових партиција једноставно дупликати једне друге.
Делимичан излаз партиција на ОнеПлус 6. Неке А/Б партиције су подвучене у сврху демонстрације.
Постоји много партиција на уређају о којима никада нећете морати да бринете као корисник. Многе од ових партиција се никада не мењају приликом флешовања прилагођених РОМ-ова, кернела, опоравка или модификација као што су Магиск или Кспосед. Многе од ових партиција ће или бити неискоришћене за наше сврхе или су превише опасне за додир осим ако не знате шта радите (КСЛОАДЕР и ОЕМИНФО на Хуавеи/Хонор-у уређаји падају на памет.) За огромну већину Андроид корисника, партиције са којима се углавном бавимо су систем, покретање, опоравак, кориснички подаци и од недавно добављач и вбмета. Ево кратког објашњења сврхе сваке партиције:
- систем - садржи Андроид ОС, системске библиотеке, системске апликације и друге системске медије као што су анимације за покретање, позадине за рад, мелодије звона итд.
- боот - држи кернел, рамдиск, а на А/Б уређајима такође и опоравак
- опоравак - задржава опоравак, при чему се ТВРП најчешће флешује на уређајима само за А (А/Б уређаји немају наменску партицију за опоравак)
- кориснички подаци – садржи све податке о апликацији, систему и интерном складиштењу
- добављач - садржи ХАЛ-ове специфичне за платформу и уређај, датотеке неопходне да Андроид ОС комуницира са основним хардвером
- вбмета - партиција за Андроид Верифиед Боот 2.0 која проверава интегритет процеса покретања
Произвођачи оригиналне опреме уређаја могу да промене своје шеме партиција да би користили било који распоред који желе. На пример, Хуавеи дели партицију за покретање на рамдиск_рецовери и кернел. Такође постоји много додатних партиција које могу да садрже друге системске апликације као што су цуст, продуцт и оем, и вхиле ово је безбедно за мењање, генерално се не препоручује ако желите да себи олакшате повратак на залихе. Дакле, где А/Б партиције играју улогу?
А/Б партициона шема
Како ажурирања функционишу на уређајима са беспрекорним ажурирањима
Веома једноставна слика коју сам направио у наставку илуструје како се обрађује ажурирање на уређају са подршком за А/Б партицију. Партиција која је илустрована је системска партиција, мада се и друге партиције као што су боот и вендор могу ажурирати било којим ОТА ажурирањем од ОЕМ-а. Овај процес ажурирања се дешава не само са главним ажурирањима верзије Андроид-а, већ и са ажурирањима безбедносних закрпа.
- Почињемо са две системске партиције, систем_а и систем_б, обе на истој верзији Андроид-а.
- Под претпоставком да је систем_а активан, ОТА ажурирање ће закрпити систем_б, неактивну партицију, у позадини.
- систем_а је подешен на неактиван и систем_б тада постаје активан када се корисник поново покрене.
- Сада неактивна партиција, систем_а, биће ажурирана када се појави следеће ОТА ажурирање.
Које су предности овог процеса ажурирања?
- Ако ажурирање не успе, уређај ће се вратити на радну верзију на другом слоту.
- Ваши подаци се чувају савршено нетакнутим, чак и ако је ажурирање забрањено, јер постоји само једна партиција (кориснички подаци) у којој се налазе ваши подаци.
- Стримовање ажурирања: Ако је ваша партиција података пуна, ажурирање се може преузети и стримовати у неактивни слот. То је прилично згодна функција и значи да не морате да трошите никакав привремени складишни простор на ажурирања. Зато на А/Б уређајима нема партиције кеша јер више нису потребни.
Какав утицај има А/Б шема партиционирања на складиштење уређаја?
Да ли чињеница да беспрекорна ажурирања резултирају гомилом дуплираних партиција значи да губите гомилу простора за складиштење? Нимало. Гоогле каже да би уређаји са беспрекорном подршком за ажурирање требало да буду смањени за само неколико стотина мегабајта захваљујући уклањању партиција /цацхе и /рецовери. Уклањање оба балансира трошак додавања другог сета партиција. Према Гоогле-у, слика А/Б система Пикел-а је упола мања од слике система само за А. Већина додатног коришћења простора за складиштење заправо долази од додавања друге партиције добављача. То има смисла јер партиција произвођача садржи све власничке бинарне датотеке које користе ОЕМ-ови (део Пројецт Требле), тако да се очекује да ће заузети доста простора. Иако Гоогле не препоручује А/Б партиционисање на уређајима са 4 ГБ складишног простора (пошто је то скоро 10% укупног расположивог простора за складиштење), они га препоручују на уређајима са 8 ГБ и више.
Ево анализе простора за складиштење који се користи на Гоогле Пикел-у са и без А/Б партиција.
Величине партиција |
А/Б |
А-онли |
---|---|---|
Боотлоадер |
50МБ*2 |
50МБ |
Боот |
32МБ*2 |
32МБ |
Опоравак |
32МБ |
|
Цацхе |
100МБ |
|
Радио |
70МБ*2 |
70МБ |
Вендор |
300МБ*2 |
300МБ |
Систем |
2048МБ*2 |
4096МБ |
Укупно |
5000МБ |
4680МБ |
Шта се догодило са партицијом за опоравак?
Основни Линук кернел на Андроид уређајима је оно што Андроиду омогућава да препозна и правилно користи хардвер на паметном телефону. На Андроид уређајима само за А, генерално имате две верзије језгра: једна је спакована унутар партиције за опоравак, док је друга у партицији за покретање. На А/Б уређајима који подржавају беспрекорна ажурирања, опоравак је сада унутар слике за покретање заједно са кернелом. Главна функција опоравка била је инсталирање ажурирања, али пошто то решава сам систем (упдате_енгине) док се Андроид покрене, наменска партиција за опоравак више није потребна.
Да бисмо инсталирали прилагођени опоравак на А/Б уређајима, стога морамо да изменимо партицију за покретање и заменимо основни опоравак нашим сопственим. Ово је разлог зашто да бисте инсталирали ТВРП морате да користите команду за брзо покретање да прво покренете прилагођену слику за покретање и онда флешујте ТВРП скрипту за инсталацију, пошто фастбоот не може да закрпи партиције – само их у потпуности пребаците преко њих. Технички бисте могли унапред да закрпите постојећу слику за покретање са ТВРП-ом, а затим је флешујете путем брзог покретања, али то је више проблема него што вреди. Скрипта за инсталацију ТВРП-а закрпи и боот_а и боот_б партиције да би инсталирала ТВРП.
Забавна чињеница: Андроид упдате_енгине који рукује беспрекорним ажурирањима је у основи преузет директно из Цхроме ОС-а. Тек недавно су стрингови који садрже „Цхроме ОС“ уклоњени из дневника упдате_енгине да би се избегла забуна за свакога ко случајно провери логцат.
Да ли мој Андроид паметни телефон подржава А/Б партиције за беспрекорна ажурирања?
Док смо ми водите листу свих уређаја који то подржавају, можете и сами лако да проверите.
Како беспрекорна ажурирања утичу на прилагођени развој?
Корисничка перцепција А/Б партиција
Многи корисници сматрају сметњом развоју прилагођеног софтвера, беспрекорна ажурирања су заправо благодат за програмере. Разлог због којег се сматра да А/Б уређаји имају лошу развојну подршку своди се на цену првих А/Б уређаја. На крају крајева, Гоогле Пикел уређаји су били једни од првих који су подржавали беспрекорна ажурирања и у поређењу са прошлим Некус паметним телефонима били су релативно скупи. Штавише, захваљујући бројним побољшањима која је Гоогле направио на Андроид ОС-у који је направио прилагођене РОМ-ове и модификације које су мање популарне на Гоогле уређајима, паметни телефони Гоогле Пикел нису се ни приближно појавили на нашим форумима као Некус паметних телефона. Комбинација спољних фактора довела је до смањења прилагођеног развоја на Гоогле Пикел паметним телефонима, иако је већина корисника уместо тога окривила подршку за А/Б партицију. Упоредите доступност прилагођеног развоја на уређајима као што је Гоогле Пикел са уређајима као што је Ксиаоми Ми А1 на нашим форумима.
Поред тога, недостатак разумевања како су А/Б партиције промениле начин на који корисници морају да инсталирају прилагођене РОМ-ове, језгра, опоравак и модификације довели су до тога да подршка за А/Б партиције није била популарна. Са опоравком који сада живи унутар слике за покретање, модификације треперења у погрешном редоследу, као што су Магиск или Кспосед, могу изазвати конфликте и довести до петље покретања. Који редослед флешујете ове модове може бити важан, мада у случају прилагођених РОМ-ова не би требало да бринете о томе на који слот флешујете. Супротно уобичајеном веровању, инсталациона скрипта за већину прилагођених РОМ-ова не трепери на оба слота. Углавном не морате да бринете о томе јер не бисте требали ручно да мењате слотове.
Како програмери виде А/Б партиције
Када праве РОМ, програмери могу да искористе обе партиције за тестирање одвојених верзија. Ако један не ради, могу једноставно да се врате на радну партицију и поново направе свој РОМ. Програмери такође могу тестирати регресије једноставним инсталирањем ажурирања, пребацивањем активне партиције и упоређивањем две без потребе за брисањем података. Ево како ЛинеагеОС тим гледа на подршку за А/Б партиције:
„Многи у Андроид заједници су критиковали А/Б као „тешко за подршку“ и „није погодно за програмере“, иако је у ствари правилно примењен лакше подржати и једнако пријатељски за програмере." - јриззоли, Дневник промена ЛинеагеОС 19
Почетна потешкоћа са А/Б подршком за програмере долазила је од модификовања њихових постојећих алата да подрже ове уређаје. Програмер Магиск-а, топјохнву, додао је званичну подршку за Гоогле Пикел годину дана након што је пуштен — не зато што је било тешко, већ зато што му је требало годину дана да заиста набави уређај радити на. ТВРП подршка дошао прилично брзо на А/Б уређајима након што је водећи програмер, Деес_Трои, провалио. ЛинеагеОС 15.1 сада подржава А/Б уређаји након што су волонтери нашли времена да поправе своју аддон.д скрипту.
Како ажурирати А/Б уређај који има прилагођени опоравак, кернел или друге модове
Прилагођени РОМ-ови
Треперење ажурирања на уређају са прилагођеним РОМ-ом значи да ћете морати да водите рачуна о томе који слот такође флешујете, зар не? Не баш. ТВРП ће у ствари решити много тога уместо вас, а подразумевано је неактиван слот за флешовање прилагођеног РОМ-а. Ако је ваш активни слот А и флешујете прилагођени РОМ, ви заправо треперите у слот Б. Када поново покренете, активни слот је сада Б. Програмери могу да модификују инсталациону скрипту и флешују на оба слота да би олакшали крајњем кориснику, иако већина прилагођених скрипти за инсталацију РОМ-а тренутно флешује само на један слот. На крају, прилагођени РОМ-ови могу имплементирати А/Б ажурирање у свој РОМ тако да корисници не морају ни да се петљају са ручно флешовање ажурирања — најновији ЛинеагеОС 15.1 укључује алатку Линеаге Упдатер и КСДА Сениор Мембер САД-РедДрагон направио а генеричко А/Б ажурирање које други програмери могу да користе.
Стоцк РОМ-ови
Али зар није проблематично ако ваш уређај користи стандардни РОМ са разним модификацијама и желите да инсталирате ажурирање без губитка свих ових модова? Може бити ако не знате праве кораке за инсталирање ажурирања. На ОнеПлус 6, на пример, не можете да флешујете инкрементални ОТА на свом модификованом уређају јер ће инкрементални ОТА покушати да закрпи вашу модификовану слику за покретање. Стога ћете вероватно завршити са петљу за покретање и зато морате да флешујете комплетно ажурирање РОМ-а да бисте потпуно преписали своју модификовану слику за покретање. Ево општих корака које треба да предузмете да бисте инсталирали ажурирање ОкигенОС-а на свој ОнеПлус 6 док и даље задржавате ТВРП, Магиск и опционо прилагођено језгро.
- Преузето најновије пун РОМ зип
- Флешите цео РОМ зип у опоравак
- (Опционо) Фласх прилагођено језгро
- Фласх ТВРП инсталатер
- Поново покрените право назад на опоравак
- Фласх Магиск
На Гоогле Пикел уређајима можете флешујте фабричку слику без брисања података, затим покрените ТВРП, инсталирајте ТВРП преко инсталационе скрипте, а затим инсталирајте Магиск.
Екстраховање ажурирања за флешовање појединачних слика партиција
Датотеке за ажурирање за многе А/Б уређаје се мало разликују у поређењу са уређајима само за А. Они више нису само зип датотека која садржи много слика (искључујући фабричке слике Гугла и Разер-а), већ су у облику паилоад.бин датотеке. Можете извући ову датотеку и ручно флешовати сваки део, али за то је потребан посебан алат. Ако сте заинтересовани да научите како то да урадите на ОнеПлус 6, Ксиаоми Ми А1 и многим другим А/Б уређајима, читајте даље.
Подешавање за издвајање паилоад.бин
- Проверите да ли имате Питхон 3.6 инсталиран.
- Преузмите паилоад_думпер.пи и упдате_метадата_пб2.пи овде.
- Извуците свој ОТА зип и ставите паилоад.бин у исти фолдер као и ове датотеке.
- Отворите ПоверСхелл, командну линију или терминал у зависности од вашег ОС.
- Унесите следећу команду:
python -m pip install protobuf
- Када се то заврши, унесите ову команду:
python payload_dumper.py payload.bin
- Ово ће почети да издваја слике унутар паилоад.бин датотеке у тренутну фасциклу у којој се налазите.
Сада можете флешовати сваку од ових слика засебно путем брзог покретања ако желите. Следећи одељак вам показује како то да урадите.
Коришћење брзог покретања за флешовање слика на уређају који подржава беспрекорна ажурирања
Постоји велики број команди које су ексклузивне за уређаје система А/Б партиција. Можете променити свој активни слот и флеш на одређене слотове. Ако имате пројекат Требле-компатибилан уређај и желите да научите како да фласх Генеричке системске слике, требало би да сте упознати са овим командама. Погледајте табелу испод.
Команде за брзо покретање |
Цомманд |
---|---|
Набавите тренутни активни слот |
фастбоот гетвар алл | греп "цуррент-слот"Ако сте на Виндовс рачунару, команда "греп" неће радити. |
Поставите други слот као активан |
фастбоот сет_ацтиве отхер |
Поставите наведени слот као активан |
фастбоот сет_ацтиве $ОРфастбоот --сет-ацтиве=_$слот где је $ или а или б |
Фласх слику на наведену партицију у тренутном слоту |
фастбоот флеш партиција партиција.имг |
Фласх слику на наведену партицију у наведеном слоту |
фастбоот фласх партитион_а партитион.имгфастбоот фласх партитион_б партитион.имг |
(Напомена: На А/Б уређајима, можете или одредити партицију у одређеном слоту за флешовање или можете изоставити суфикс слота и он ће трептати на тренутно активни слот. На пример, можете заменити "партицију" у флеш команди са "систем", "систем_а" или "систем_б.")
Реч о Пројецт Требле и беспрекорним ажурирањима
Уобичајена заблуда је да су подршка за Пројецт Требле и подршка за А/Б партицију међусобно повезане, али то заправо није случај. Имати једно не значи и друго. Моторола Мото З2 Форце користи А/Б шему партиционирања, али не подржава Требле. С друге стране, Хонор 9 Лите подржава Пројецт Требле, али је уређај само за А.
Често постављана питања/сажетак
-
Које су предности А/Б партиције?
- А/Б партиционисање вам омогућава да ажурирате свој Андроид паметни телефон док га користите, једноставним поновним покретањем када будете спремни да покренете нову верзију. Такође делује као заштита од цигли — ако ажурирање пође по злу, вратићете се на радну инсталацију.
-
Да ли А/Б партиционисање омета развој?
- Иако је програмерима требало мало времена да се прилагоде, одговор је углавном не. У ствари, може помоћи програмерима јер могу двоструко покренути свој прилагођени РОМ са старом верзијом и новом верзијом за тестирање да би проверили да ли постоје регресије.
-
Како А/Б партиције утичу на модове као што су прилагођена језгра, Магиск или Кспосед?
- Морате бити пажљиви када их инсталирате, али тренутно нема проблема. Магиск званично подржава уређаје са беспрекорним ажурирањима и све док флешујете ствари у правом редоследу, не би требало да имате проблема. Обавезно флешујте прилагођено језгро пре флешовања других модова и требало би да будете спремни.
-
Могу ли да флешујем два различита РОМ-а на свакој партицији и дуал боот?
- У теорији, да. Проблеми настају због дељене партиције података, па се то не препоручује.
-
Да ли то што имам А/Б партициону шему значи да имам смањен простор за складиштење?
- Јок! Гоогле каже да уређаји који подржавају беспрекорна ажурирања жртвују само неколико стотина мегабајта складишног простора да би га подржали. Предности надмашују тај трошак.
-
Мој уређај подржава А/Б партиције, да ли то значи да могу да користим генеричку слику система Пројецт Требле?
- Не нужно. Пројекат Требле и А/Б подршка нису повезани. Моторола Мото З2 Форце не подржава Пројецт Требле, али подржава А/Б партициону шему.
-
Мој уређај подржава Пројецт Требле, да ли то значи да имам А/Б партициону шему?
- Ово није увек случај. Хонор 9 Лите је одличан пример јер подржава Пројецт Требле, али нема А/Б партициону шему.
-
Зашто прво морам да покренем ТВРП са брзим покретањем, а затим да га флешујем?
- То је због начина на који фастбоот функционише и чињенице да партиција за опоравак више не постоји. Опоравак је смештен унутар партиције за покретање, тако да морамо да изменимо и боот_а и боот_б. Не можете закрпити партицију у брзом покретању, само флешујте преко ње. У теорији можете направити унапред закрпљену слику за покретање и затим је уместо тога флешовати.
-
Постоје ли опасности са А/Б партицијама? Како заштита од враћања утиче на ствари?
- Гоогле се потрудио да ово не буде проблем, али у случају Моторола Мото З2 Присилно, били су познати случајеви да је уређај поново активирао старији слот након надоградње на Андроид Орео. То је значило да је покренута заштита од поништавања, а власници уређаја су могли да спасу свој паметни телефон само уз ЕДЛ опоравак. Гоогле каже да заштита од враћања почиње тек након првог покретања, тако да слот мора у потпуности да функционише након ажурирања пре него што више не можете да пређете на старију верзију.