// tier: helix-primary · order 9
HelixOTA in-developmentlicense: Apache-2.0
Source
Жалпыға ортақ, тәуелсіз әуе арқылы жаңарту жүйесі — жобалануы бойынша "кірпіш" болмайды.
Helix OTA — жалпыға ортақ, терең тәуелсіз әуе арқылы жаңарту жүйесі: Go басқару жазықтығы мен әрбір операциялық жүйеге арналған клиент агенттері. Ол бір тақшадан бастап миллиондаған құрылғыларға дейінгі парктерге қауіпсіз, кезең-кезеңмен прошивка/қосымша жаңартуларын жеткізуге арналған. Алғашқы нысанасы — Orange Pi 5 Max-тағы Android 15.
Helix OTA — жалпыға ортақ әуе арқылы жаңарту жүйесі: Go басқару жазықтығы мен әрбір операциялық жүйеге арналған клиент агенттері. Ол жүйенің бұзылуын мүлдем болдырмайтын, жүктемелерді тексеріп растайтын және кезең-кезеңмен дәл реттелген жаңартуларды қамтамасыз ететіндей етіп жасалған. Алғашқы нысанасы — Orange Pi 5 Max-тағы Android 15, ал Linux пен Windows үшін адаптерлер жоспарлануда.
Helix OTA — жалпыға ортақ, әмбебап, терең тәуелсіз әуе арқылы (OTA) жаңарту жүйесі. Оның жалғыз қатаң уәдесі бар: жаңарту ешқашан жұмыс істейтін құрылғыны "кірпішке" айналдырмауы керек. Жүйе Go серверлік басқару жазықтығынан, әрбір операциялық жүйеге арналған клиенттік SDK/агенттерден және басқару тақтасынан тұрады. Ол әрбір платформаға арнайы қайта жасаудың орнына, ауыстырылатын ОЖ адаптерлері арқылы *кез келген* операциялық жүйеге кіріктірілетіндей етіп түпкілікті жобаланған. Алғашқы жеткізу нысанасы — Orange Pi 5 Max-тағы Android 15 (барлық нұсқалары). Мұнда құрастыру конвейері прошивкалық бейнелермен қатар тексерілген OTA .zip файлын және міндетті хеш-файлдарын шығарады. Сондықтан құрылғыға ешқандай артефакт тексерілетін қолтаңбасыз жетпейді. Linux, Windows және басқа ОЖ-лер бірдей адаптерлік тігістің артында жоспарда тұр, оларға тек адаптері ғана қажет — қайта жазу емес.
Жобалау оператордың қатаң кепілдіктеріне негізделген, олар архитектуралық тұрақты шарттар ретінде қарастырылады: жүйенің бұзылуы мүлдем болмайды, әрбір артефакт орналастырылмастан бұрын міндетті түрде тексеріледі, дәл реттелген жаңартулар (бірден не 5/10/30…100% кезеңдермен, тоқтату және жалғастыру бақылауымен), парк туралы толық бақылау және бір тақшадан бастап өрістегі миллиондаған құрылғыларға дейінгі сызықтық масштабтау. Жабық архитектура құрылғы жағындағы Android A/B жаңартуларын — AOSP update_engine AVB/dm-verity және автоматты жүктеме сәтсіздігі кезіндегі кері қайтарумен — арнайы тәуелсіз Go басқару жазықтығымен біріктіреді. Сондықтан қауіпсіздік процессорға жақын жүктеме жолында да, серверде де орналасқан, бір ғана нәзік қабатта емес. Екі тігіс әдейі бөлініп алынады: ОЖ адаптерінің тігісі, ол шын мәнінде жалпыға ортақтықтың уәдесін алып жүреді, және жаңарту механизмінің тігісі, ол кезеңдік науқандарды ОЖ-ден тәуелсіз етеді. Бүкіл жүйе алты ашық, дербес нұсқаланатын ota-* субмодульдерге бөлінген — ол біртұтас блок емес, қайта пайдаланылатын құрылыстық блоктар.
Helix OTA қазіргі уақытта техникалық сипаттамалар/зерттеулер және сынақ жабу кезеңінде. Репозиторийде ресми жобалау корпусы, құжаттама шығару конвейері және субмодульдердің құрылымы сақталған. Жүйенің "алдауға қарсы басқару" қағидасына сәйкес, дайын өндірістік сервер мен агент әлі жасалмағандығы ашық айтылған. Бүгін жеткізіліп жатқан нәрсе — бұл жобаның жоспары мен оның құрылымы, шын мәнінде осылай аталып отыр.
Мазмұны
OTA әдетте әр құрылғы мен әр ОЖ үшін қайта ойластырылады, ал жаңартудың сәтсіз болуы бүкіл құрылғылар паркін істен шығара алады. Helix OTA – бұл әр ОЖ-ның адаптер арқылы қабылдай алатын, архитектураға қайтару мен тексеру кепілдіктері енгізілген біртұтас, қауіпсіздікке басымдық беретін жаңарту жүйесі.
Ол "құрылғыны ешқашан істен шығармау" және "жаңартуды біртіндеп, бақылаулы түрде енгізу" сияқты ең жақсы әрекеттерді жүктеме астында сақталатынын үміттенетін мүмкіндіктер ретінде қарамайды – бұл бастапқы жол мен басқару жазықтығындағы архитектуралық тұрақтылықтар. Және жаңарту механизмі мен ОЖ қабатының ауыстырылатын тігістері қатты байланысқан болжамдар емес болғандықтан, бір басқару жазықтығы бүгін Android-ті басқара алады да, кейін басқа операциялық жүйелерді басқаруға дайын тұрады – тек адаптер қосу арқылы, бұтақсыз, қайта жазусыз, сенімді қауіпсіздік кепілдіктерін қайта ойластырмай-ақ.
- Екі бөлінетін тігіс – ОЖ-адаптер тігісі және ОЖ-дан тәуелсіз жаңарту механизмі – "универсалды" деген сөзді маркетингтік ұғым емес, код базасының құрылымдық қасиетіне айналдырады.
- Қабаттасқан қорғаныс: құрылғы жағындағы туынды A/B (
update_engine) + AVB/dm-verity + автоматты жүктеу сәтсіздігі кезінде қайтару, бұған қоса сервер жағындағы артефакт тексеруі – жаңарту бірнеше тәуелсіз қақпадан өткеннен кейін ғана сақталады. - Каталогқа басымдық беретін, бөлінген құрылым – алты қайта пайдаланылатын, жеке нұсқаланатын
ota-*субмодульдерге бөліну, оларды біртұтас блок ретінде емес, жеке-жеке тұтынуға болады. - HTTP/3 (QUIC) негізгі тасымалдау жүйесі HTTP/2 автоматты ауыстыру және келісілген Brotli/gzip сығу әдістерімен – заманауи, төмен кешігулі жеткізу, сәтсіздікке ұшыраған жағдайда жұмыс істеуін тоқтатпайды.
- Алдауға қарсы инженерлік шешім: жобалау мен жағдай анық түрде спецификациялық кезеңге жатқызылады, ал әлі жасалмаған нәрсе ешқашан жеткізілген деп айтылмайды – ақиқаттылық бірінші дәрежелі инженерлік құндылық ретінде, ескертпелердегі ескерту емес.
- Жаңартудың сәтсіз болуы құрылғыны ешқашан істен шығармауына кепілдік беру – бұл OTA-дағы ең қиын уәде. Құрылғы жағындағы туынды Android A/B-ді міндетті түрде қолдану арқылы шешілді:
update_engineбелсенді емес ұяшыққа жазады, ал жұмыс істеп тұрған ұяшық жұмысын жалғастыра береді, AVB/dm-verity жүктеу тізбегін криптографиялық түрде тексереді, ал жаңа ұяшық жүктеуді сәтсіз аяқтаса, құрылғы автоматты түрде қайтарылады – бұл барлығы серверден жіберілгенге дейін артефакт тексеруімен қамтамасыз етіледі, сондықтан бұзылған деректер пакеті серверден шықпай тұрып-ақ анықталады. - Бір жүйе, көптеген операциялық жүйелер – бұл мәселе Android-тің болжамдарын ядроға енгізуден бас тарту арқылы шешілді. Ауыстырылатын ОЖ-адаптер тігісі платформаға тән ерекшеліктерді оқшаулайды, ал ОЖ-дан тәуелсіз жаңарту механизмінің тігісі науқан логикасын тасымалдауға мүмкіндік береді, әрқайсысы жеке субмодуль ретінде сақталады, сондықтан жаңа ОЖ қосу бүкіл жүйені қайта жазуды емес, тек қосымша қосуды талап етеді.
- Біртіндеп, тоқтатылатын жаңартулар – бұл арнайы жаңарту механизмі арқылы шешілді, ол пайыздық топтармен жұмыс істейді, сәттілік/қате шегі бар және тоқтату/алға жылжытуды анық басқарады, HTTP-мен байланысты емес болғандықтан, бір механизм тасымалдау тәуелсіз науқандарды басқара алады.
Мазмұны
- Go + Gin — бәсекелестік модель мен жеңіл орналастыру мүмкіндігі үшін таңдалды; басқару жазықтығын, жаңарту қозғалтқышы мен артефакт тексерушілерін қуаттандырады, REST
/api/v1негізгі интерфейсін ашады. - Kotlin/KMP — құрылғыдағы Android OTA агенті логиканы әртүрлі нысандарға ортақтастыру үшін таңдалды; құрылғыдағы толық циклді: сұрау / жүктеу / тексеру / қолдану / есеп беруді басқарады.
- HTTP/3 (QUIC) → HTTP/2 — QUIC төмен кешігу мен үзілмелі мобильді байланыстарда төзімді жеткізу үшін негізгі тасымалдаушы ретінде таңдалды, HTTP/2 автоматты түрде резервтік ретінде қолданылады, сондықтан ешбір құрылғы шетте қалмайды; Brotli/gzip әр сұраныс бойынша келісіледі, жүктемелерді кішірейтеді.
- PostgreSQL — құрылғылар тізімі, науқандар мен телеметрия арасындағы реляциялық тұтастық үшін таңдалды, мұнда парктің дұрыс күйі жазу жылдамдығынан маңыздырақ.
- MinIO / S3 — артефакт блобтарының қоймасы ретінде таңдалды, үлкен прошивкалық бейнелер тауарлық объектілік сақтауға орналасады, реляциялық қабаттан бөлініп тұрады.
- AOSP
update_engine+ AVB/dm-verity +boot_control— Android-тың өзіндік сынақтан өткен Virtual A/B және тексерілген жүктеу механизмін қайта қолдану өзіндік жаңартушы жасауға қарағанда қауіпсіздеу; құрылғыдағы слот алмастыру мен криптографиялық жүктеу тексеруін басқарады. - React — операторлардың кіру, артефакт жүктеу, жаңартуларды басқару және парктің жағдайын бір жерден бақылау үшін басқару тақтасы ретінде таңдалды.
- OpenTelemetry + Prometheus/Grafana — бейтарап өндірушілерге арналған аспаптық құралдар ретінде таңдалды; жаңартудың әр кезеңін метрикалар мен тақталарда бақылауға мүмкіндік береді, емес болжауға негізделген.
- Жағдайы: әзірленіп жатыр. Жобаның өзінің алдауға қарсы басқару жүйесіне сәйкес, іс-жүзінде жұмыс істейтін өндірістік сервер немесе агент әлі жоқ — бұл спецификация/зерттеу және сынақ қамту кезеңі. Репозиторийде жобаның ресми жобалау корпусы, құжаттама экспорттау конвейері және субмодульдердің құрылымы сақталады.
- Алты қайта пайдаланылатын жалпыға қолжетімді субмодульдер (
ota-protocol,ota-artifact-validator,ota-rollout-engine,ota-update-engine-bridge,ota-android-agent,ota-telemetry-schema)github.com/HelixDevelopment/деректер базасында орналасқан. - Репозиторийдегі сынақ қамту көрсеткіштері мен кешігу деректері жобаның өзіндік әзірленіп жатқан есептемесі болып табылады, тәуелсіз растау жүргізілмеген. README-де келтірілген HelixConstitution тармақ нөмірлері ТЕКСЕРІЛМЕГЕН.
- Лицензиясы: Apache-2.0.
Басымдық деңгейі: Helix-басты.