{"id":471899,"date":"2025-08-23T15:18:40","date_gmt":"2025-08-23T15:18:40","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=471899"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=471899","title":{"rendered":"<span>Mibro Watch Lite3 \u2014 \u0442\u044e\u043d\u0438\u043c \u043a\u0440\u0443\u0442\u043e\u0439 .elf \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043b\u0435\u043a\u0441\u0435\u0439. \u042f \u043c\u043d\u043e\u0433\u043e \u043b\u0435\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0442\u044e\u043d\u0438\u043d\u0433\u043e\u043c \u0447\u0430\u0441\u043e\u0432 Xiaomi. \u041c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u044d\u0442\u0438 \u0433\u0430\u0434\u0436\u0435\u0442\u044b \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u0442\u0435\u043c, \u0447\u0442\u043e \u043e\u043d\u0438 \u043f\u043e\u0434\u0432\u043b\u0430\u0441\u0442\u043d\u044b \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0439 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439 \u0438 \u043f\u0440\u043e\u0447\u0438\u0445 \u0437\u0430\u0449\u0438\u0442, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0438\u043b\u0438 \u043d\u0435 \u0445\u043e\u0442\u044f\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u0421\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043a\u043e \u043c\u043d\u0435 \u043f\u043e\u043f\u0430\u043b \u043d\u0430 \u0441\u0442\u043e\u043b \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0438\u0439 \u043f\u0430\u0446\u0438\u0435\u043d\u0442 Mibro Watch Lite3, \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u0438\u043c\u043f\u0430\u0442\u0438\u0448\u043d\u044b\u0435 \u0447\u0430\u0441\u044b, \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u044e\u0442 \u0441\u0435\u0431\u044f \u043a\u0430\u043a \u0441\u0443\u0431\u0431\u0440\u0435\u043d\u0434 \u0421\u044f\u043e\u043c\u0438, \u043d\u043e \u043f\u043e \u0444\u0430\u043a\u0442\u0443 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0447\u0442\u043e \u044d\u0442\u043e. Mibro, Haylou \u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435, \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c &#8212; \u043f\u043b\u043e\u0445\u043e \u043f\u0440\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u043c \u0438 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0441\u043e\u0444\u0442\u0435 \u043a\u0430\u043a \u0432 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430\u0445, \u0442\u0430\u043a \u0438 \u0432 \u0447\u0430\u0441\u0430\u0445, \u043f\u043b\u044e\u0441 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u043b\u0438\u0431\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u044b.<\/p>\n<p>\u041c\u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 Mibro Watch GS Pro \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b \u043f\u043e\u043c\u043e\u0447\u044c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430\u043c\u0438 \u044d\u0442\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438, \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u043c .zip \u0430\u0440\u0445\u0438\u0432\u043e\u043c \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0438 \u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415! .elf \u0444\u0430\u0439\u043b\u043e\u043c \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430.<br \/>\u041d\u0435 \u043b\u044e\u0431\u043b\u044e \u0442\u0430\u043a\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438, \u0438\u0431\u043e \u0442\u0430\u043c \u0432\u0441\u0435 \u0433\u0440\u0443\u0441\u0442\u043d\u043e \u0438 \u043d\u0435\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u043d\u043e \u0442\u0443\u0442 \u044f \u0433\u043b\u044f\u043d\u0443\u043b, \u0447\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438,<br \/>\u0438 \u043e \u043c\u0430\u0439\u043d \u0433\u0430\u0434, \u0442\u0430\u043c \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 UI lvgl \u043a\u043e\u0434, \u0431\u0435\u0433\u043e\u043c \u0432 \u043c\u0430\u0433\u0430\u0437 &#8212; \u0437\u0430 \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u0443\u044e Amoled \u0432\u0435\u0440\u0441\u0438\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0431\u0440\u0435\u043d\u0434\u0430 \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043a\u043e\u0432\u044b\u0440\u044f\u0442\u044c \u044d\u0442\u043e \u0447\u0443\u0434\u043e!<\/p>\n<h2>\u041e\u0431\u0437\u043e\u0440 \u043a\u0443\u0445\u043d\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432<\/h2>\n<p>\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0447\u0430\u0441\u043e\u0432 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f Mibro Fit, \u0432 \u043e\u0431\u0449\u0435\u043c \u043d\u0438\u0447\u0435\u0433\u043e \u0432\u044b\u0434\u0430\u044e\u0449\u0435\u0433\u043e\u0441\u044f, \u043d\u043e \u043f\u043e\u0436\u0430\u043b\u0443\u0439 \u0438 \u043e\u0442\u043a\u0440\u043e\u0432\u0435\u043d\u043d\u043e \u043f\u043b\u043e\u0445\u043e\u0433\u043e. \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u0447\u0442\u043e \u043d\u0430\u043c \u0434\u0430\u043b\u0435\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f &#8212; \u043e\u043d\u043e \u043a\u0435\u0448\u0438\u0440\u0443\u0435\u0442 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u044b \u0441 \u043e\u043d\u043b\u0430\u0439\u043d \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 \u0432 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435 \u0438 \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0445\u0435\u0448, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0442\u043e\u043c \u043f\u043b\u044e\u043d\u0443\u0442\u044c \u0438\u0445 \u0432 \u0447\u0430\u0441\u044b \ud83d\ude09<\/p>\n<details class=\"spoiler\">\n<summary>\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 Mibro Fit<\/summary>\n<div class=\"spoiler__content\">\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4d4\/d54\/1c8\/4d4d541c82a316c925ddb7b04f627827.jpg\" alt=\"Mibrofit UI\" title=\"Mibrofit UI\" width=\"1280\" height=\"948\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/4d4\/d54\/1c8\/4d4d541c82a316c925ddb7b04f627827.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4d4\/d54\/1c8\/4d4d541c82a316c925ddb7b04f627827.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Mibrofit UI<\/figcaption><\/div>\n<\/figure>\n<\/div>\n<\/details>\n<p>System-On-Chip (SoC), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0442\u0443\u0442 &#8212; SF32LB551, \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f  Sifli Technology,<br \/>ARM Cortex-M33 240Mhz, 2.5 GPU, BLE 5.3<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043e\u0441\u0442\u0430\u0432 SoC SF32LB55x<\/summary>\n<div class=\"spoiler__content\">\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/958\/e2e\/00b\/958e2e00b32e5ae0ec1ba2ba9ba89bfe.png\" alt=\"\u0421\u0445\u0435\u043c\u0430 SoC SiFli SF32LB55x\" title=\"\u0421\u0445\u0435\u043c\u0430 SoC SiFli SF32LB55x\" width=\"907\" height=\"710\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/958\/e2e\/00b\/958e2e00b32e5ae0ec1ba2ba9ba89bfe.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/958\/e2e\/00b\/958e2e00b32e5ae0ec1ba2ba9ba89bfe.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0421\u0445\u0435\u043c\u0430 SoC SiFli SF32LB55x<\/figcaption><\/div>\n<\/figure>\n<\/div>\n<\/details>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u0438 \u0433\u0440\u0430\u0444 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0435\u043b\u044c, \u0435\u0449\u0435 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 \u0431\u043b\u043e\u043a ezip, \u0444\u043e\u0440\u043c\u0430\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0447\u0430\u0441\u043e\u0432.<\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 SoC \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u0438\u043c\u0438 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u043c\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f\u043c\u0438 \u0447\u0430\u0441\u043e\u0432 (\u0443 Xiaomi \u044d\u0442\u043e \u0434\u0435\u0448\u0435\u0432\u044b\u0435, \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0435 \u043d\u0430\u043c Redmi Watch 5 Active\/Lite \u0438 Redmi Watch 4 Move), \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u043e \u0441\u0443\u0442\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0435\u0431\u044f \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 \u0441 \u0433\u043e\u0442\u043e\u0432\u044b\u043c\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438. \u0418 \u0447\u0442\u043e \u0432\u044b\u0433\u043e\u0434\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439, \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043d\u0435\u043f\u043b\u043e\u0445\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u0438 SDK \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u0430 github <a href=\"https:\/\/github.com\/OpenSiFli\" rel=\"noopener noreferrer nofollow\">SiFli Documentation<\/a><\/p>\n<p>\u0421\u0438\u0441\u0442\u0435\u043c\u0430, RTOS RT-Thread, \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0430\u044f\u0441\u044f \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u043c\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f\u043c\u0438, \u043f\u043e\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435 FreeRTOS, \u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0449\u0435 \u0447\u0435\u043c NuttX, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044e\u0437\u0430\u0435\u0442 Xiaomi.<\/p>\n<p>\u0413\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0430 lvgl, \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f \u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f, \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438. \u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 Watch Lite3 &#8212; 360&#215;360, \u0432 \u043c\u043e\u0434\u0435\u043b\u0438 Watch GS Pro 466&#215;466.<\/p>\n<h2>\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430<\/h2>\n<p>\u041a\u0430\u043a \u044f \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b \u0440\u0430\u043d\u0435\u0435, \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 zip \u0430\u0440\u0445\u0438\u0432, \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b16\/61d\/3b8\/b1661d3b845a05078f2e67cea6efaeb8.png\" alt=\"\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430\" title=\"\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430\" width=\"600\" height=\"234\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b16\/61d\/3b8\/b1661d3b845a05078f2e67cea6efaeb8.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b16\/61d\/3b8\/b1661d3b845a05078f2e67cea6efaeb8.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430<\/figcaption><\/div>\n<\/figure>\n<div class=\"floating-image\">\n<p>\u041e\u0441\u043e\u0431\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u0442\u0443\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0444\u0430\u0439\u043b\u044b \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0432 \u043f\u0430\u043f\u043a\u0435 ezip, \u0430 \u0442\u0430\u043a\u0436\u0435 *.so &#8212; \u044d\u0442\u043e \u0442\u0435 \u0441\u0430\u043c\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0435 .elf \u0444\u0430\u0439\u043b\u044b \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430, wf_50231.so &#8212; \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0438 _res.so &#8212; \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f,<br \/>wf_50231_tn.bin &#8212; ezip \u043f\u0440\u0435\u0432\u044c\u044e \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430<\/p>\n<\/div>\n<h3>\u041c\u0435\u043d\u044f\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0443<\/h3>\n<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f SiFli \u0432 \u0441\u0432\u043e\u0435\u043c SDK \u0438\u043c\u0435\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u0443 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0439, \u044d\u0442\u043e ezip.exe.<br \/>\u0414\u0430\u043d\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u044f \u0443\u0436\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043b \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u044d\u0442\u043e DEFLATE, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0434 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 \u0434\u0435\u043a\u043e\u0434\u0435\u0440, \u0435\u0441\u043b\u0438 \u0437\u043d\u0430\u043a\u043e\u043c\u044b \u0441 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c \u0441\u0436\u0430\u0442\u0438\u044f DEFLATE, \u0442\u043e \u0442\u0443\u0442 \u0434\u0435\u0440\u0435\u0432\u043e \u0425\u0430\u0444\u0444\u043c\u0430\u043d\u0430 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043e \u0432 \u043e\u0431\u0449\u0443\u044e \u0447\u0430\u0441\u0442\u044c, \u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u0431\u0438\u0442\u044b \u043d\u0430 \u0431\u043b\u043e\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0440\u0430\u0437\u043c\u0435\u0440 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u0430.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0431\u0435\u0440\u0435\u043c SDK \u0443\u0442\u0438\u043b\u0438\u0442\u0443 ezip \u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0444\u0430\u0439\u043b .ezip \u0432 .png<\/p>\n<pre><code class=\"powershell\">ezip -convert wf_50231_dynamic_energy_bg.bin -spt 1 -dpt 0 -outdir .<\/code><\/pre>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/be5\/bed\/6b2\/be5bed6b201f61dbe9ddf5b92962f232.png\" alt=\"\u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0432 \u0442\u0430\u043a\u043e\u0435 \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0435\" title=\"\u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0432 \u0442\u0430\u043a\u043e\u0435 \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0435\" width=\"360\" height=\"360\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/be5\/bed\/6b2\/be5bed6b201f61dbe9ddf5b92962f232.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/be5\/bed\/6b2\/be5bed6b201f61dbe9ddf5b92962f232.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0432 \u0442\u0430\u043a\u043e\u0435 \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0435<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 .ezip<\/p>\n<pre><code class=\"powershell\">ezip -convert wf_50231_dynamic_energy_bg_ru.png -binfile 2 -outdir .<\/code><\/pre>\n<p>\u0423\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u0430\u0440\u0445\u0438\u0432, \u043f\u043e\u0434\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u043c \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435,<br \/>\u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u0432 \u0447\u0430\u0441\u044b, \u0438.. \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439.<\/p>\n<p>\u0412\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438, \u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0442\u0430\u043c magic number.<\/p>\n<div class=\"floating-image\">\n<figure class=\"float full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8f0\/027\/28c\/8f002728c56e94c1be6fe797c818fee1.png\" alt=\"\u0420\u0430\u0437\u043c\u0435\u0440 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438\" title=\"\u0420\u0430\u0437\u043c\u0435\u0440 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438\" width=\"820\" height=\"175\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/8f0\/027\/28c\/8f002728c56e94c1be6fe797c818fee1.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8f0\/027\/28c\/8f002728c56e94c1be6fe797c818fee1.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0420\u0430\u0437\u043c\u0435\u0440 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0440\u0430\u0441\u043d\u044b\u043c \u0432\u044b\u0434\u0435\u043b\u0435\u043d \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438, \u043e\u043d \u0432 big-endian, a \u043f\u0435\u0440\u0435\u0434 \u043d\u0438\u043c \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a lvgl image.<\/p>\n<\/div>\n<div class=\"floating-image\">\n<figure class=\"float full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/afc\/1ac\/829\/afc1ac829b61b53dae3b1f100004f0be.png\" alt=\"\u0441hecksum\" title=\"\u0441hecksum\" width=\"780\" height=\"126\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/afc\/1ac\/829\/afc1ac829b61b53dae3b1f100004f0be.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/afc\/1ac\/829\/afc1ac829b61b53dae3b1f100004f0be.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0441hecksum<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u043c \u043b\u0438\u0448\u043d\u0438\u0435 4\u0440\u0435 \u0431\u0430\u0439\u0442\u0430, \u044d\u0442\u043e \u044f\u0432\u043d\u043e \u0447\u0435\u043a\u0441\u0443\u043c\u043c\u0430,<br \/>\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438, \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435.<\/p>\n<\/div>\n<p>\u0421\u043f\u0443\u0441\u0442\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u043f\u043e\u0434\u0431\u043e\u0440\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 crc32, \u0432\u044b\u044f\u0441\u043d\u044f\u044e,<br \/>\u0447\u0442\u043e \u0447\u0435\u043a-\u0441\u0443\u043c\u043c\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 CRC-32\/MPEG-2<\/p>\n<p>\u041e\u043a, \u043f\u0438\u0448\u0443 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043a\u043e\u0434 \u0434\u043b\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\/\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0447\u0435\u043a\u0441\u0443\u043c\u043c\u044b (\u0432 \u0440\u0435\u043f\u043e \u0432 \u043b\u0438\u043d\u043a\u0430\u0445) \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u044e \u0433\u043e\u0442\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c crc.<\/p>\n<p>\u0413\u0440\u0443\u0436\u0443 \u043d\u043e\u0432\u044b\u0439 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442 &#8212; \u0432\u0441\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0441\u0442\u0430\u043b\u043e \u0432 \u0447\u0430\u0441\u0430\u0445.  <\/p>\n<div class=\"floating-image\">\n<figure class=\"float bordered full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1f4\/86a\/e3b\/1f486ae3b05a5823b9489553040cb3be.png\" alt=\"\u0426\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442 \u0441 \u043d\u043e\u0432\u044b\u043c \u0444\u043e\u043d\u043e\u043c\" title=\"\u0426\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442 \u0441 \u043d\u043e\u0432\u044b\u043c \u0444\u043e\u043d\u043e\u043c\" width=\"1206\" height=\"1280\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/1f4\/86a\/e3b\/1f486ae3b05a5823b9489553040cb3be.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1f4\/86a\/e3b\/1f486ae3b05a5823b9489553040cb3be.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0426\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442 \u0441 \u043d\u043e\u0432\u044b\u043c \u0444\u043e\u043d\u043e\u043c<\/figcaption><\/div>\n<\/figure>\n<\/div>\n<h2>\u041c\u0435\u043d\u044f\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430<\/h2>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043a \u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438. \u041a\u043e\u0434 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430.<br \/>\u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 RT-Thread, \u0434\u0430\u043d\u043d\u0430\u044f \u043e\u0441\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 <a href=\"https:\/\/www.rt-thread.io\/document\/site\/programming-manual\/dlmodule\/dlmodule\/\" rel=\"noopener noreferrer nofollow\">\u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c<\/a><br \/>\u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 &#8212; \u044d\u0442\u043e .so &#8212; \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430.<br \/>\u0417\u0430\u0433\u043b\u044f\u043d\u0435\u043c \u0432\u043d\u0443\u0442\u0440\u044c \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430.<\/p>\n<details class=\"spoiler\">\n<summary>entry point \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430 &#8212; module_init &#8212; module_cleanup<\/summary>\n<div class=\"spoiler__content\">\n<figure class=\"bordered full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e20\/066\/b9b\/e20066b9b8e9fc67e72013c49c843387.png\" alt=\"s \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438\/\u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044f\" title=\"s \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438\/\u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044f\" width=\"1608\" height=\"467\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/e20\/066\/b9b\/e20066b9b8e9fc67e72013c49c843387.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e20\/066\/b9b\/e20066b9b8e9fc67e72013c49c843387.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>s \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438\/\u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044f<\/figcaption><\/div>\n<\/figure>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430<\/summary>\n<div class=\"spoiler__content\">\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a09\/f7a\/13c\/a09f7a13c773260252ce1549efe2adba.png\" alt=\"\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430\" title=\"\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430\" width=\"1044\" height=\"375\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/a09\/f7a\/13c\/a09f7a13c773260252ce1549efe2adba.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a09\/f7a\/13c\/a09f7a13c773260252ce1549efe2adba.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430<\/figcaption><\/div>\n<\/figure>\n<div class=\"floating-image\">\n<figure class=\"float full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1e3\/4e5\/62e\/1e34e562e47500ca430bcaca80f5de15.png\" width=\"593\" height=\"189\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/1e3\/4e5\/62e\/1e34e562e47500ca430bcaca80f5de15.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1e3\/4e5\/62e\/1e34e562e47500ca430bcaca80f5de15.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430<br \/>\u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 4 \u043c\u0435\u0442\u043e\u0434\u043e\u0432<\/p>\n<\/div>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u0424\u0443\u043d\u043a\u0446\u0438\u044f face_create()<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">int __fastcall face_create(int *root, int prm2, int prm3) {   int user_data; \/\/ r0   const char *week_style_convert_str; \/\/ r0   _BYTE *current_time; \/\/ [sp+1Ch] [bp-54h]   unsigned __int8 *rt_data; \/\/ [sp+3Ch] [bp-34h]    dlmodule_get_user_data(\"wf_50231\", 64);   user_data = dlmodule_get_user_data(\"wf_50231\", 64);   memset(user_data, 0, 64);   current_time = (_BYTE *)service_get_current_time(0);   *(_BYTE *)dlmodule_get_user_data(\"wf_50231\", 64) = current_time[4];   *(_BYTE *)(dlmodule_get_user_data(\"wf_50231\", 64) + 1) = current_time[5];   *(_BYTE *)(dlmodule_get_user_data(\"wf_50231\", 64) + 3) = current_time[3];   *(_BYTE *)(dlmodule_get_user_data(\"wf_50231\", 64) + 2) = current_time[10];   v5 = dlmodule_get_user_data(\"wf_50231\", 64);   *(_BYTE *)(v5 + 4) = mbr_config_get_time_format();   parent = *root;      \/\/ background image   v7 = dlmodule_get_user_data(\"wf_50231\", 64);   *(_DWORD *)(v7 + 8) = lv_img_create(parent, 0);   lv_img_set_auto_size(*(_DWORD *)(v8 + 8), 1);   lv_img_set_src(*(_DWORD *)(v9 + 8), \"\/dyn\/dynamic_app\/watchface\/wf_50231\/ezip\/wf_50231_dynamic_energy_bg.bin\");   lv_obj_align(*(_DWORD *)(v10 + 8), parent, 0, 0, 0);   lv_obj_set_click(*(_DWORD *)(v11 + 8), 1);   lv_page_glue_obj(*(_DWORD *)(v12 + 8), 1);   lv_obj_set_parent_event(*(_DWORD *)(v13 + 8), 1);      \/\/ label \u0412\u0440\u0435\u043c\u044f   v14 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 8);   v15 = dlmodule_get_user_data(\"wf_50231\", 64);   *(_DWORD *)(v15 + 12) = lv_label_create(v14, 0);   lv_obj_set_style_local_color(*(_DWORD *)(v16 + 12), 0, 0x8089, 0xFFFF);   lv_obj_set_click(*(_DWORD *)(v17 + 12), 0);   lv_obj_set_style_local_ptr(*(_DWORD *)(v18 + 12), 0, 0x808E);   v19 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 12);   v20 = mbr_utils_convert_time_hour_format((unsigned __int8)current_time[4]);   lv_label_set_text_fmt(v19, \"%02d:%02d\", v20, (unsigned __int8)current_time[5]);   lv_obj_set_auto_realign(*(_DWORD *)(v21 + 12), 1);   v22 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 12);   v23 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_align(v22, *(_DWORD *)(v23 + 8), 0, 0, 80);         v136 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 8);   v24 = dlmodule_get_user_data(\"wf_50231\", 64);   *(_DWORD *)(v24 + 16) = lv_label_create(v136, 0);   v25 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_set_style_local_color(*(_DWORD *)(v25 + 16), 0, 0x8089, 0xFFFF);   v26 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_set_click(*(_DWORD *)(v26 + 16), 0);   v27 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_set_style_local_ptr(*(_DWORD *)(v27 + 16), 0, 0x808E);   v28 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 16);   v29 = dlmodule_get_user_data(\"wf_50231\", 64);   week_style_convert_str = (const char *)mbr_gui_utils_get_week_style_convert_str(*(unsigned __int8 *)(v29 + 2), 1);   lv_label_set_text_fmt(v28, \"%s\", week_style_convert_str);   v31 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_set_auto_realign(*(_DWORD *)(v31 + 16), 1);   v32 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 16);   v33 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_align(v32, *(_DWORD *)(v33 + 8), 0, 0, 120);         v137 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 8);   v34 = dlmodule_get_user_data(\"wf_50231\", 64);   *(_DWORD *)(v34 + 20) = lv_label_create(v137, 0);   v35 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_set_style_local_color(*(_DWORD *)(v35 + 20), 0, 0x8089, 0xFFFF);   v36 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_set_click(*(_DWORD *)(v36 + 20), 0);   v37 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_set_style_local_ptr(*(_DWORD *)(v37 + 20), 0, 0x808E);   v38 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_label_set_text_fmt(*(_DWORD *)(v38 + 20), \"%d\", (unsigned __int8)current_time[3]);   v39 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_set_auto_realign(*(_DWORD *)(v39 + 20), 1);   v40 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 20);   v41 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_align(v40, *(_DWORD *)(v41 + 8), 0, 0, 160);         rt_data = (unsigned __int8 *)app_db_get_rt_data(1);   v138 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 8);   v135 = dlmodule_get_user_data(\"wf_50231\", 64);   *(_DWORD *)(v135 + 24) = lv_label_create(v138, 0);   lv_obj_set_style_local_ptr(*(_DWORD *)(v42 + 24), 0, 0x808E);   lv_obj_set_style_local_color(*(_DWORD *)(v43 + 24), 0, 0x8089, 0xFFFF);   lv_obj_set_click(*(_DWORD *)(v44 + 24), 0);   lv_label_set_long_mode(*(_DWORD *)(v45 + 24), 3);   lv_label_set_align(*(_DWORD *)(v46 + 24), 1);   lv_obj_set_width(*(_DWORD *)(v47 + 24), 55);   if ( *rt_data )   {     v48 = dlmodule_get_user_data(\"wf_50231\", 64);     lv_label_set_text_fmt(*(_DWORD *)(v48 + 24), \"%d\", *rt_data);   }   else   {     v132 = dlmodule_get_user_data(\"wf_50231\", 64);     lv_label_set_text_fmt(*(_DWORD *)(v132 + 24), \"- -\");   }      v49 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_set_auto_realign(*(_DWORD *)(v49 + 24), 1);   v50 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 24);   v51 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_align(v50, *(_DWORD *)(v51 + 8), 0, 0, 20);   v52 = (_DWORD *)app_db_get_rt_data(0);   v53 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 8);   v54 = dlmodule_get_user_data(\"wf_50231\", 64);   *(_DWORD *)(v54 + 28) = lv_label_create(v53, 0);   v55 = dlmodule_get_user_data(\"wf_50231\", 64);   ((void (__fastcall *)(_DWORD, _DWORD, int, void **))lv_obj_set_style_local_ptr)(     *(_DWORD *)(v55 + 28),     0,     0x808E,     &amp;dynamic_energy_font_misc);   v56 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_set_style_local_color(*(_DWORD *)(v56 + 28), 0, 0x8089, 0xFFFF);   lv_obj_set_click(*(_DWORD *)(v57 + 28), 0);   lv_label_set_long_mode(*(_DWORD *)(v58 + 28), 3);   lv_label_set_text_fmt(*(_DWORD *)(v59 + 28), \"%d\", *v52);   lv_label_set_align(*(_DWORD *)(v60 + 28), 1);   lv_obj_set_width(*(_DWORD *)(v61 + 28), 98);   lv_obj_set_auto_realign(*(_DWORD *)(v62 + 28), 1);   v63 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 28);   lv_obj_align(v63, *(_DWORD *)(v64 + 8), 0, 0, -66);   v141 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 8);      ...      \/\/ \u043a\u043d\u043e\u043f\u043a\u0430 Music   parent = dlmodule_get_user_data(\"wf_50231\", 64);   *(_DWORD *)(userData + 32) = lv_obj_create(parent, 0);   lv_obj_set_size(*(_DWORD *)(userData + 32), 60, 60);   lv_obj_set_style_local_color(*(_DWORD *)(userData + 32), 0, 41, 0);   lv_obj_set_style_local_opa(*(_DWORD *)(userData + 32), 0, 44);   lv_obj_set_parent_event(*(_DWORD *)(userData + 32), 1);   lv_obj_set_drag_parent(*(_DWORD *)(userData + 32), 1);   lv_obj_set_click(*(_DWORD *)(userData + 32), 1);   lv_obj_align(v96, *(_DWORD *)(v97 + 8), 0, -96, -90);   lv_obj_set_event_cb(*(_DWORD *)(userData + 32), run_app_music_cb);   v99 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 8);      \/\/ \u043a\u043d\u043e\u043f\u043a\u0430 Settings   parent = dlmodule_get_user_data(\"wf_50231\", 64);   *(_DWORD *)(userData + 36) = lv_obj_create(parent, 0);   lv_obj_set_size(*(_DWORD *)(userData + 36), 60, 60);   lv_obj_set_style_local_color(*(_DWORD *)(userData + 36), 0, 41, 0);   lv_obj_set_style_local_opa(*(_DWORD *)(userData + 36), 0, 44);   lv_obj_set_parent_event(*(_DWORD *)(userData + 36), 1);   lv_obj_set_drag_parent(*(_DWORD *)(userData + 36), 1);   lv_obj_set_click(*(_DWORD *)(userData + 36), 1);   lv_obj_align(v107, *(_DWORD *)(v108 + 8), 0, 96, -90);   lv_obj_set_event_cb(*(_DWORD *)(userData + 36), run_app_settings_cb);      ...      v12     8 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_data_subscribe(*(_DWORD *)(v128 + 8), 0xA203, data_update_cb);   lv_obj_data_subscribe(*(_DWORD *)(v129 + 8), 0xA202, data_update_cb);   lv_obj_data_subscribe(*(_DWORD *)(v130 + 8), 0xA201, data_update_cb);   return 0; }<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0412 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 face_create() \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u043b\u043d\u043e\u0439 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e lvgl \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u043d\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0417\u0430\u043c\u0435\u0442\u044c\u0442\u0435 \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0432\u0440\u0435\u043c\u044f, \u0434\u043d\u0438 \u043d\u0435\u0434\u0435\u043b\u0438 \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0448\u0440\u0438\u0444\u0442\u043e\u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 lvgl, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u044f\u043c\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u0432 \u0434\u0430\u0442\u0430 \u0441\u0435\u043a\u0446\u0438\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u0441\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0434\u043d\u0435\u0439 \u043d\u0435\u0434\u0435\u043b\u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e, \u043d\u0443\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u044d\u0442\u043e\u0442 \u043a\u043e\u0434.<\/p>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0435 \u043c\u043d\u0435 \u043f\u0440\u0438\u0433\u043b\u044f\u043d\u0443\u043b\u0430\u0441\u044c \u043a\u043d\u043e\u043f\u043a\u0430 Settings &#8212; \u043f\u043e \u0435\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u044e \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u043d\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u043d\u0430 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0435 \u043d\u0435 \u0441\u0430\u043c\u0430\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0432\u0435\u0449\u044c, \u0430 \u043d\u0435 \u0441\u043c\u0435\u043d\u0438\u0442\u044c \u043b\u0438 \u0435\u0435 \u043d\u0430 \u0447\u0442\u043e \u043d\u0438\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435.<br \/>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0435\u0449\u0435 \u0440\u0430\u0437 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043a\u0443\u0441\u043e\u043a \u043a\u043e\u0434\u0430 \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0438\u0439 \u043d\u0430 \u044d\u0442\u043e.<\/p>\n<pre><code class=\"cpp\">  *(_DWORD *)(userData + 36) = lv_obj_create(parent, 0);   lv_obj_set_size(*(_DWORD *)(userData + 36), 60, 60);   lv_obj_set_style_local_color(*(_DWORD *)(userData + 36), 0, 41, 0);   lv_obj_set_style_local_opa(*(_DWORD *)(userData + 36), 0, 44);   lv_obj_set_parent_event(*(_DWORD *)(userData + 36), 1);   lv_obj_set_drag_parent(*(_DWORD *)(userData + 36), 1);   lv_obj_set_click(*(_DWORD *)(userData + 36), 1);   lv_obj_set_event_cb(*(_DWORD *)(userData + 36), run_app_settings_cb);<\/code><\/pre>\n<p>\u0442\u0443\u0442 \u0438\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 callback \u0444\u0443\u043d\u043a\u0446\u0438\u0438 run_app_settings_cb &#8212; \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438, \u0433\u043b\u044f\u043d\u0435\u043c \u0447\u0442\u043e \u0442\u0430\u043c<\/p>\n<pre><code class=\"cpp\">int __fastcall run_app_settings_cb(int obj, int event) {   int result; \/\/ r0    if (event == 6)    \/\/ LV_EVENT_SINGLE_CLICKED     return gui_app_run(\"Setting\");   return result; }<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u043f\u0435\u0446 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u044f\u0434\u0440\u0430  gui_app_run(app_id), \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u043e\u0439\u0434\u0435\u043c\u0441\u044f \u043f\u043e \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0435 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0435\u0449\u0435 \u043d\u0430\u0439\u0434\u0435\u0442\u0441\u044f.<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043f\u0438\u0441\u043e\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c<\/summary>\n<div class=\"spoiler__content\">\n<div class=\"floating-image\">\n<figure class=\"float full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/93c\/5c0\/426\/93c5c0426d28d143ee24591afb2bf8a5.png\" width=\"786\" height=\"1126\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/93c\/5c0\/426\/93c5c0426d28d143ee24591afb2bf8a5.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/93c\/5c0\/426\/93c5c0426d28d143ee24591afb2bf8a5.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<\/div>\n<\/div>\n<\/details>\n<p>\u041e\u043a, Weather &#8212; \u043f\u043e\u0433\u043e\u0434\u0430, \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 \u043d\u0435\u0433\u043e.<\/p>\n<figure class=\"bordered full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d34\/498\/7b4\/d344987b419b9ce9d735d0456923f62d.png\" width=\"1491\" height=\"300\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/d34\/498\/7b4\/d344987b419b9ce9d735d0456923f62d.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d34\/498\/7b4\/d344987b419b9ce9d735d0456923f62d.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<div class=\"floating-image\">\n<p>\u0414\u0435\u043b\u0430\u0435\u043c \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e, \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u043c\u0435\u0441\u0442\u043e, \u043a\u0443\u0434\u0430 \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u043a\u043e\u0434 \u043c\u0435\u0442\u043e\u0434\u0430, \u0433\u0434\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430, \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c hex \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0438 \u0438\u0449\u0435\u043c \u0442\u0435\u043a\u0441\u0442\u044b.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/376\/84f\/30f\/37684f30f25a495190b9238642c1bbf8.png\" width=\"1462\" height=\"284\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/376\/84f\/30f\/37684f30f25a495190b9238642c1bbf8.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/376\/84f\/30f\/37684f30f25a495190b9238642c1bbf8.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<\/div>\n<p>\u041f\u0435\u0440\u0435\u0431\u0438\u0432\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 Weather &#8212; \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u0432\u043c\u0435\u0441\u0442\u043e Setting, \u044f \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0435\u043b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c Countdown &#8212; \u044d\u0442\u043e \u0442\u0430\u0439\u043c\u0435\u0440, \u0442\u0430\u043a \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0441\u044c \u0438\u043c, \u043d\u043e \u0442\u0435\u043a\u0441\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u0438\u043d\u043d\u044b\u043c, \u0430 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043b\u0438\u0431\u043e \u0440\u0435\u043b\u043e\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0434\u0440\u0443\u0433\u043e\u0435 \u043c\u0435\u0441\u0442\u043e, \u0447\u0442\u043e \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0430 \u0431\u043e\u043b\u0435\u0435 \u0435\u043c\u043a\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430, \u0438 \u043f\u043e\u043a\u0430 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e\u0435 \u043b\u0438\u0448\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f.<\/p>\n<p>\u041d\u0443 \u0438 \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0441 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u043c\u0438 \u0443\u0436\u0435 \u043f\u043e\u0439\u043c\u0430\u043b\u0438 \u0433\u0440\u0430\u0431\u043b\u0438, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0435\u0441\u0442\u044c \u043b\u0438 \u0443 \u043d\u0430\u0448\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430 \u0447\u0435\u043a\u0441\u0443\u043c\u043c\u0430.<\/p>\n<figure class=\"bordered full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/00b\/069\/ac5\/00b069ac502535e4e50129dc74d71be5.png\" alt=\"\u0447\u0435\u043a\u0441\u0443\u043c\u043c\u0430 .so \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430\" title=\"\u0447\u0435\u043a\u0441\u0443\u043c\u043c\u0430 .so \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430\" width=\"1492\" height=\"415\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/00b\/069\/ac5\/00b069ac502535e4e50129dc74d71be5.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/00b\/069\/ac5\/00b069ac502535e4e50129dc74d71be5.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0447\u0435\u043a\u0441\u0443\u043c\u043c\u0430 .so \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430<\/figcaption><\/div>\n<\/figure>\n<div class=\"floating-image\">\n<p>\u0414\u0430, \u0435\u0441\u0442\u044c \u0440\u043e\u0434\u043d\u0430\u044f \u0438 \u0432 \u0442\u043e\u043c \u0436\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u043e\u0442\u043b\u0438\u0447\u043d\u043e, \u043f\u0440\u0430\u0432\u0438\u043c \u0438 \u043f\u0440\u043e\u0431\u0443\u0435\u043c..<\/p>\n<\/div>\n<div class=\"floating-image\">\n<figure class=\"float\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ff6\/5df\/a77\/ff65dfa77200a143410005227c174816.gif\" alt=\"\u041c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435\" title=\"\u041c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435\" width=\"480\" height=\"544\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ff6\/5df\/a77\/ff65dfa77200a143410005227c174816.gif 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ff6\/5df\/a77\/ff65dfa77200a143410005227c174816.gif 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435<\/figcaption><\/div>\n<\/figure>\n<\/div>\n<h2>\u0418\u0442\u0430\u043a, \u0447\u0442\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c:<\/h2>\n<p>\u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a\u0443 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u043e\u0432 \u0447\u0430\u0441\u043e\u0432 Mibro,<br \/>\u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u043d\u044f\u0442\u044c \u043a\u043e\u0434 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0447\u0442\u043e \u0434\u0430\u0435\u0442 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438, \u0434\u0430 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f .elf \u043d\u0435 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u0430, \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u044f \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b, \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u0443\u0442\u043b\u0443\u043f &#8212; \u0442\u0443\u0442 \u0443\u0436\u0435 \u043d\u0430 \u0441\u043e\u0432\u0435\u0441\u0442\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 &#8212; \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0435\u0448\u0442\u0430\u0442\u043d\u044b\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0439.<\/p>\n<p>\u041d\u043e \u0435\u0441\u043b\u0438 \u043e\u0437\u0430\u0434\u0430\u0447\u0438\u0442\u0441\u044f, \u043f\u043e\u043a\u043e\u043f\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u043e\u043a\u0430\u0445 RT-Thread<br \/>\u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u044b \u0438\u0433\u0440\u044b, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u043c\u043d\u043e\u0433\u043e \u0447\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e,<br \/>\u0438 \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043c\u043e\u0434\u043d\u044b\u0445 \u043d\u044b\u043d\u0447\u0435 js, lua, micropython \u0438 \u043f\u0440\u043e\u0447\u0435\u0433\u043e &#8212; \u044d\u0442\u043e \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043e\u0434,<br \/>\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0448\u0443\u0441\u0442\u0440\u043e.<\/p>\n<p>\u041e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u044f \u0432 \u0432\u043e\u0441\u0442\u043e\u0440\u0433\u0435, \u0431\u044b\u043b\u0438 \u0431\u044b \u0435\u0449\u0435 SDK \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043e\u0442 \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f Mibr\u043e, \u0434\u0443\u043c\u0430\u044e \u0431\u044b\u043b\u043e \u0431\u044b \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043c\u043d\u043e\u0433\u0438\u043c \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\u0430\u043c.<\/p>\n<p>\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u043f\u043e \u0442\u0435\u043c\u0435<br \/>SiFli Documentation &#8212; <a href=\"https:\/\/wiki.sifli.com\/en\/docs\/index.html\" rel=\"noopener noreferrer nofollow\">https:\/\/wiki.sifli.com\/en\/docs\/index.html<\/a><br \/>SiFli SDK &#8212; <a href=\"https:\/\/docs.sifli.com\/projects\/sdk\/latest\/en\/sf32lb52x\/index.html\" rel=\"noopener noreferrer nofollow\">https:\/\/docs.sifli.com\/projects\/sdk\/latest\/en\/sf32lb52x\/index.html<\/a> <br \/>RT-Thread &#8212; <a href=\"https:\/\/www.rt-thread.io\/\" rel=\"noopener noreferrer nofollow\">https:\/\/www.rt-thread.io\/<\/a> <br \/>RT-Thread dlmodule &#8212; <a href=\"https:\/\/www.rt-thread.io\/document\/site\/programming-manual\/dlmodule\/dlmodule\/\" rel=\"noopener noreferrer nofollow\">https:\/\/www.rt-thread.io\/document\/site\/programming-manual\/dlmodule\/dlmodule\/<\/a>RT-Thread dynamic apps &#8212; <a href=\"https:\/\/github.com\/RT-Thread\/rtthread-apps\/\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/RT-Thread\/rtthread-apps\/<\/a><br \/>LVGL &#8212; <a href=\"https:\/\/lvgl.io\/\" rel=\"noopener noreferrer nofollow\">https:\/\/lvgl.io\/<\/a><br \/>\u0426\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 &#8212; <a href=\"https:\/\/github.com\/m0tral\/MibroWatchFace\/\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/m0tral\/MibroWatchFace\/<\/a><\/p>\n<p>\u043d\u0443 \u0438 \u0432 \u0442\u0435\u043b\u0435\u0433\u0435 <a href=\"https:\/\/t.me\/mi_watch_news\" rel=\"noopener noreferrer nofollow\">\u043c\u043e\u0439 \u043a\u0430\u043d\u0430\u043b<\/a>, \u0442\u0430\u043c \u044f \u0434\u0435\u043b\u0430\u044e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0448\u0442\u0443\u043a\u0438 \u0441 \u0447\u0430\u0441\u0430\u043c\u0438 \u0421\u044f\u043e\u043c\u0438<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/938024\/\"> https:\/\/habr.com\/ru\/articles\/938024\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043b\u0435\u043a\u0441\u0435\u0439. \u042f \u043c\u043d\u043e\u0433\u043e \u043b\u0435\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0442\u044e\u043d\u0438\u043d\u0433\u043e\u043c \u0447\u0430\u0441\u043e\u0432 Xiaomi. \u041c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u044d\u0442\u0438 \u0433\u0430\u0434\u0436\u0435\u0442\u044b \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u0442\u0435\u043c, \u0447\u0442\u043e \u043e\u043d\u0438 \u043f\u043e\u0434\u0432\u043b\u0430\u0441\u0442\u043d\u044b \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0439 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439 \u0438 \u043f\u0440\u043e\u0447\u0438\u0445 \u0437\u0430\u0449\u0438\u0442, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0438\u043b\u0438 \u043d\u0435 \u0445\u043e\u0442\u044f\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u0421\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043a\u043e \u043c\u043d\u0435 \u043f\u043e\u043f\u0430\u043b \u043d\u0430 \u0441\u0442\u043e\u043b \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0438\u0439 \u043f\u0430\u0446\u0438\u0435\u043d\u0442 Mibro Watch Lite3, \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u0438\u043c\u043f\u0430\u0442\u0438\u0448\u043d\u044b\u0435 \u0447\u0430\u0441\u044b, \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u044e\u0442 \u0441\u0435\u0431\u044f \u043a\u0430\u043a \u0441\u0443\u0431\u0431\u0440\u0435\u043d\u0434 \u0421\u044f\u043e\u043c\u0438, \u043d\u043e \u043f\u043e \u0444\u0430\u043a\u0442\u0443 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0447\u0442\u043e \u044d\u0442\u043e. Mibro, Haylou \u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435, \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c &#8212; \u043f\u043b\u043e\u0445\u043e \u043f\u0440\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u043c \u0438 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0441\u043e\u0444\u0442\u0435 \u043a\u0430\u043a \u0432 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430\u0445, \u0442\u0430\u043a \u0438 \u0432 \u0447\u0430\u0441\u0430\u0445, \u043f\u043b\u044e\u0441 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u043b\u0438\u0431\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u044b.<\/p>\n<p>\u041c\u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 Mibro Watch GS Pro \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b \u043f\u043e\u043c\u043e\u0447\u044c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430\u043c\u0438 \u044d\u0442\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438, \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u043c .zip \u0430\u0440\u0445\u0438\u0432\u043e\u043c \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0438 \u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415! .elf \u0444\u0430\u0439\u043b\u043e\u043c \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430.<br \/>\u041d\u0435 \u043b\u044e\u0431\u043b\u044e \u0442\u0430\u043a\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438, \u0438\u0431\u043e \u0442\u0430\u043c \u0432\u0441\u0435 \u0433\u0440\u0443\u0441\u0442\u043d\u043e \u0438 \u043d\u0435\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u043d\u043e \u0442\u0443\u0442 \u044f \u0433\u043b\u044f\u043d\u0443\u043b, \u0447\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438,<br \/>\u0438 \u043e \u043c\u0430\u0439\u043d \u0433\u0430\u0434, \u0442\u0430\u043c \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 UI lvgl \u043a\u043e\u0434, \u0431\u0435\u0433\u043e\u043c \u0432 \u043c\u0430\u0433\u0430\u0437 &#8212; \u0437\u0430 \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u0443\u044e Amoled \u0432\u0435\u0440\u0441\u0438\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0431\u0440\u0435\u043d\u0434\u0430 \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043a\u043e\u0432\u044b\u0440\u044f\u0442\u044c \u044d\u0442\u043e \u0447\u0443\u0434\u043e!<\/p>\n<h2>\u041e\u0431\u0437\u043e\u0440 \u043a\u0443\u0445\u043d\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432<\/h2>\n<p>\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0447\u0430\u0441\u043e\u0432 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f Mibro Fit, \u0432 \u043e\u0431\u0449\u0435\u043c \u043d\u0438\u0447\u0435\u0433\u043e \u0432\u044b\u0434\u0430\u044e\u0449\u0435\u0433\u043e\u0441\u044f, \u043d\u043e \u043f\u043e\u0436\u0430\u043b\u0443\u0439 \u0438 \u043e\u0442\u043a\u0440\u043e\u0432\u0435\u043d\u043d\u043e \u043f\u043b\u043e\u0445\u043e\u0433\u043e. \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u0447\u0442\u043e \u043d\u0430\u043c \u0434\u0430\u043b\u0435\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f &#8212; \u043e\u043d\u043e \u043a\u0435\u0448\u0438\u0440\u0443\u0435\u0442 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u044b \u0441 \u043e\u043d\u043b\u0430\u0439\u043d \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 \u0432 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435 \u0438 \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0445\u0435\u0448, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0442\u043e\u043c \u043f\u043b\u044e\u043d\u0443\u0442\u044c \u0438\u0445 \u0432 \u0447\u0430\u0441\u044b \ud83d\ude09<\/p>\n<details class=\"spoiler\">\n<summary>\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 Mibro Fit<\/summary>\n<div class=\"spoiler__content\">\n<figure class=\"full-width\">\n<div><figcaption>Mibrofit UI<\/figcaption><\/div>\n<\/figure>\n<\/div>\n<\/details>\n<p>System-On-Chip (SoC), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0442\u0443\u0442 &#8212; SF32LB551, \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f  Sifli Technology,<br \/>ARM Cortex-M33 240Mhz, 2.5 GPU, BLE 5.3<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043e\u0441\u0442\u0430\u0432 SoC SF32LB55x<\/summary>\n<div class=\"spoiler__content\">\n<figure class=\"full-width\">\n<div><figcaption>\u0421\u0445\u0435\u043c\u0430 SoC SiFli SF32LB55x<\/figcaption><\/div>\n<\/figure>\n<\/div>\n<\/details>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u0438 \u0433\u0440\u0430\u0444 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0435\u043b\u044c, \u0435\u0449\u0435 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 \u0431\u043b\u043e\u043a ezip, \u0444\u043e\u0440\u043c\u0430\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0447\u0430\u0441\u043e\u0432.<\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 SoC \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u0438\u043c\u0438 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u043c\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f\u043c\u0438 \u0447\u0430\u0441\u043e\u0432 (\u0443 Xiaomi \u044d\u0442\u043e \u0434\u0435\u0448\u0435\u0432\u044b\u0435, \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0435 \u043d\u0430\u043c Redmi Watch 5 Active\/Lite \u0438 Redmi Watch 4 Move), \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u043e \u0441\u0443\u0442\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0435\u0431\u044f \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 \u0441 \u0433\u043e\u0442\u043e\u0432\u044b\u043c\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438. \u0418 \u0447\u0442\u043e \u0432\u044b\u0433\u043e\u0434\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439, \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043d\u0435\u043f\u043b\u043e\u0445\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u0438 SDK \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u0430 github <a href=\"https:\/\/github.com\/OpenSiFli\" rel=\"noopener noreferrer nofollow\">SiFli Documentation<\/a><\/p>\n<p>\u0421\u0438\u0441\u0442\u0435\u043c\u0430, RTOS RT-Thread, \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0430\u044f\u0441\u044f \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u043c\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f\u043c\u0438, \u043f\u043e\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435 FreeRTOS, \u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0449\u0435 \u0447\u0435\u043c NuttX, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044e\u0437\u0430\u0435\u0442 Xiaomi.<\/p>\n<p>\u0413\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0430 lvgl, \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f \u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f, \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438. \u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 Watch Lite3 &#8212; 360&#215;360, \u0432 \u043c\u043e\u0434\u0435\u043b\u0438 Watch GS Pro 466&#215;466.<\/p>\n<h2>\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430<\/h2>\n<p>\u041a\u0430\u043a \u044f \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b \u0440\u0430\u043d\u0435\u0435, \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 zip \u0430\u0440\u0445\u0438\u0432, \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430<\/figcaption><\/div>\n<\/figure>\n<div class=\"floating-image\">\n<p>\u041e\u0441\u043e\u0431\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u0442\u0443\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0444\u0430\u0439\u043b\u044b \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0432 \u043f\u0430\u043f\u043a\u0435 ezip, \u0430 \u0442\u0430\u043a\u0436\u0435 *.so &#8212; \u044d\u0442\u043e \u0442\u0435 \u0441\u0430\u043c\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0435 .elf \u0444\u0430\u0439\u043b\u044b \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430, wf_50231.so &#8212; \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0438 _res.so &#8212; \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f,<br \/>wf_50231_tn.bin &#8212; ezip \u043f\u0440\u0435\u0432\u044c\u044e \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430<\/p>\n<\/div>\n<h3>\u041c\u0435\u043d\u044f\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0443<\/h3>\n<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f SiFli \u0432 \u0441\u0432\u043e\u0435\u043c SDK \u0438\u043c\u0435\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u0443 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0439, \u044d\u0442\u043e ezip.exe.<br \/>\u0414\u0430\u043d\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u044f \u0443\u0436\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043b \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u044d\u0442\u043e DEFLATE, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0434 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 \u0434\u0435\u043a\u043e\u0434\u0435\u0440, \u0435\u0441\u043b\u0438 \u0437\u043d\u0430\u043a\u043e\u043c\u044b \u0441 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c \u0441\u0436\u0430\u0442\u0438\u044f DEFLATE, \u0442\u043e \u0442\u0443\u0442 \u0434\u0435\u0440\u0435\u0432\u043e \u0425\u0430\u0444\u0444\u043c\u0430\u043d\u0430 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043e \u0432 \u043e\u0431\u0449\u0443\u044e \u0447\u0430\u0441\u0442\u044c, \u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u0431\u0438\u0442\u044b \u043d\u0430 \u0431\u043b\u043e\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0440\u0430\u0437\u043c\u0435\u0440 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u0430.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0431\u0435\u0440\u0435\u043c SDK \u0443\u0442\u0438\u043b\u0438\u0442\u0443 ezip \u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0444\u0430\u0439\u043b .ezip \u0432 .png<\/p>\n<pre><code class=\"powershell\">ezip -convert wf_50231_dynamic_energy_bg.bin -spt 1 -dpt 0 -outdir .<\/code><\/pre>\n<figure class=\"\">\n<div><figcaption>\u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0432 \u0442\u0430\u043a\u043e\u0435 \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0435<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 .ezip<\/p>\n<pre><code class=\"powershell\">ezip -convert wf_50231_dynamic_energy_bg_ru.png -binfile 2 -outdir .<\/code><\/pre>\n<p>\u0423\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u0430\u0440\u0445\u0438\u0432, \u043f\u043e\u0434\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u043c \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435,<br \/>\u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u0432 \u0447\u0430\u0441\u044b, \u0438.. \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439.<\/p>\n<p>\u0412\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438, \u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0442\u0430\u043c magic number.<\/p>\n<div class=\"floating-image\">\n<figure class=\"float full-width\">\n<div><figcaption>\u0420\u0430\u0437\u043c\u0435\u0440 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0440\u0430\u0441\u043d\u044b\u043c \u0432\u044b\u0434\u0435\u043b\u0435\u043d \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438, \u043e\u043d \u0432 big-endian, a \u043f\u0435\u0440\u0435\u0434 \u043d\u0438\u043c \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a lvgl image.<\/p>\n<\/div>\n<div class=\"floating-image\">\n<figure class=\"float full-width\">\n<div><figcaption>\u0441hecksum<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u043c \u043b\u0438\u0448\u043d\u0438\u0435 4\u0440\u0435 \u0431\u0430\u0439\u0442\u0430, \u044d\u0442\u043e \u044f\u0432\u043d\u043e \u0447\u0435\u043a\u0441\u0443\u043c\u043c\u0430,<br \/>\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438, \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435.<\/p>\n<\/div>\n<p>\u0421\u043f\u0443\u0441\u0442\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u043f\u043e\u0434\u0431\u043e\u0440\u0430 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 crc32, \u0432\u044b\u044f\u0441\u043d\u044f\u044e,<br \/>\u0447\u0442\u043e \u0447\u0435\u043a-\u0441\u0443\u043c\u043c\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 CRC-32\/MPEG-2<\/p>\n<p>\u041e\u043a, \u043f\u0438\u0448\u0443 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043a\u043e\u0434 \u0434\u043b\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\/\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0447\u0435\u043a\u0441\u0443\u043c\u043c\u044b (\u0432 \u0440\u0435\u043f\u043e \u0432 \u043b\u0438\u043d\u043a\u0430\u0445) \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u044e \u0433\u043e\u0442\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c crc.<\/p>\n<p>\u0413\u0440\u0443\u0436\u0443 \u043d\u043e\u0432\u044b\u0439 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442 &#8212; \u0432\u0441\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0441\u0442\u0430\u043b\u043e \u0432 \u0447\u0430\u0441\u0430\u0445.  <\/p>\n<div class=\"floating-image\">\n<figure class=\"float bordered full-width\">\n<div><figcaption>\u0426\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442 \u0441 \u043d\u043e\u0432\u044b\u043c \u0444\u043e\u043d\u043e\u043c<\/figcaption><\/div>\n<\/figure>\n<\/div>\n<h2>\u041c\u0435\u043d\u044f\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430<\/h2>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043a \u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438. \u041a\u043e\u0434 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430.<br \/>\u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 RT-Thread, \u0434\u0430\u043d\u043d\u0430\u044f \u043e\u0441\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 <a href=\"https:\/\/www.rt-thread.io\/document\/site\/programming-manual\/dlmodule\/dlmodule\/\" rel=\"noopener noreferrer nofollow\">\u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c<\/a><br \/>\u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 &#8212; \u044d\u0442\u043e .so &#8212; \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430.<br \/>\u0417\u0430\u0433\u043b\u044f\u043d\u0435\u043c \u0432\u043d\u0443\u0442\u0440\u044c \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430.<\/p>\n<details class=\"spoiler\">\n<summary>entry point \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430 &#8212; module_init &#8212; module_cleanup<\/summary>\n<div class=\"spoiler__content\">\n<figure class=\"bordered full-width\">\n<div><figcaption>s \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438\/\u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044f<\/figcaption><\/div>\n<\/figure>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430<\/summary>\n<div class=\"spoiler__content\">\n<figure class=\"full-width\">\n<div><figcaption>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430<\/figcaption><\/div>\n<\/figure>\n<div class=\"floating-image\">\n<figure class=\"float full-width\"><\/figure>\n<p>\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442\u0430<br \/>\u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 4 \u043c\u0435\u0442\u043e\u0434\u043e\u0432<\/p>\n<\/div>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u0424\u0443\u043d\u043a\u0446\u0438\u044f face_create()<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cpp\">int __fastcall face_create(int *root, int prm2, int prm3) {   int user_data; \/\/ r0   const char *week_style_convert_str; \/\/ r0   _BYTE *current_time; \/\/ [sp+1Ch] [bp-54h]   unsigned __int8 *rt_data; \/\/ [sp+3Ch] [bp-34h]    dlmodule_get_user_data(\"wf_50231\", 64);   user_data = dlmodule_get_user_data(\"wf_50231\", 64);   memset(user_data, 0, 64);   current_time = (_BYTE *)service_get_current_time(0);   *(_BYTE *)dlmodule_get_user_data(\"wf_50231\", 64) = current_time[4];   *(_BYTE *)(dlmodule_get_user_data(\"wf_50231\", 64) + 1) = current_time[5];   *(_BYTE *)(dlmodule_get_user_data(\"wf_50231\", 64) + 3) = current_time[3];   *(_BYTE *)(dlmodule_get_user_data(\"wf_50231\", 64) + 2) = current_time[10];   v5 = dlmodule_get_user_data(\"wf_50231\", 64);   *(_BYTE *)(v5 + 4) = mbr_config_get_time_format();   parent = *root;      \/\/ background image   v7 = dlmodule_get_user_data(\"wf_50231\", 64);   *(_DWORD *)(v7 + 8) = lv_img_create(parent, 0);   lv_img_set_auto_size(*(_DWORD *)(v8 + 8), 1);   lv_img_set_src(*(_DWORD *)(v9 + 8), \"\/dyn\/dynamic_app\/watchface\/wf_50231\/ezip\/wf_50231_dynamic_energy_bg.bin\");   lv_obj_align(*(_DWORD *)(v10 + 8), parent, 0, 0, 0);   lv_obj_set_click(*(_DWORD *)(v11 + 8), 1);   lv_page_glue_obj(*(_DWORD *)(v12 + 8), 1);   lv_obj_set_parent_event(*(_DWORD *)(v13 + 8), 1);      \/\/ label \u0412\u0440\u0435\u043c\u044f   v14 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 8);   v15 = dlmodule_get_user_data(\"wf_50231\", 64);   *(_DWORD *)(v15 + 12) = lv_label_create(v14, 0);   lv_obj_set_style_local_color(*(_DWORD *)(v16 + 12), 0, 0x8089, 0xFFFF);   lv_obj_set_click(*(_DWORD *)(v17 + 12), 0);   lv_obj_set_style_local_ptr(*(_DWORD *)(v18 + 12), 0, 0x808E);   v19 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 12);   v20 = mbr_utils_convert_time_hour_format((unsigned __int8)current_time[4]);   lv_label_set_text_fmt(v19, \"%02d:%02d\", v20, (unsigned __int8)current_time[5]);   lv_obj_set_auto_realign(*(_DWORD *)(v21 + 12), 1);   v22 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 12);   v23 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_align(v22, *(_DWORD *)(v23 + 8), 0, 0, 80);         v136 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 8);   v24 = dlmodule_get_user_data(\"wf_50231\", 64);   *(_DWORD *)(v24 + 16) = lv_label_create(v136, 0);   v25 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_set_style_local_color(*(_DWORD *)(v25 + 16), 0, 0x8089, 0xFFFF);   v26 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_set_click(*(_DWORD *)(v26 + 16), 0);   v27 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_set_style_local_ptr(*(_DWORD *)(v27 + 16), 0, 0x808E);   v28 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 16);   v29 = dlmodule_get_user_data(\"wf_50231\", 64);   week_style_convert_str = (const char *)mbr_gui_utils_get_week_style_convert_str(*(unsigned __int8 *)(v29 + 2), 1);   lv_label_set_text_fmt(v28, \"%s\", week_style_convert_str);   v31 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_set_auto_realign(*(_DWORD *)(v31 + 16), 1);   v32 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 16);   v33 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_align(v32, *(_DWORD *)(v33 + 8), 0, 0, 120);         v137 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 8);   v34 = dlmodule_get_user_data(\"wf_50231\", 64);   *(_DWORD *)(v34 + 20) = lv_label_create(v137, 0);   v35 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_set_style_local_color(*(_DWORD *)(v35 + 20), 0, 0x8089, 0xFFFF);   v36 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_set_click(*(_DWORD *)(v36 + 20), 0);   v37 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_set_style_local_ptr(*(_DWORD *)(v37 + 20), 0, 0x808E);   v38 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_label_set_text_fmt(*(_DWORD *)(v38 + 20), \"%d\", (unsigned __int8)current_time[3]);   v39 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_set_auto_realign(*(_DWORD *)(v39 + 20), 1);   v40 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 20);   v41 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_align(v40, *(_DWORD *)(v41 + 8), 0, 0, 160);         rt_data = (unsigned __int8 *)app_db_get_rt_data(1);   v138 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 8);   v135 = dlmodule_get_user_data(\"wf_50231\", 64);   *(_DWORD *)(v135 + 24) = lv_label_create(v138, 0);   lv_obj_set_style_local_ptr(*(_DWORD *)(v42 + 24), 0, 0x808E);   lv_obj_set_style_local_color(*(_DWORD *)(v43 + 24), 0, 0x8089, 0xFFFF);   lv_obj_set_click(*(_DWORD *)(v44 + 24), 0);   lv_label_set_long_mode(*(_DWORD *)(v45 + 24), 3);   lv_label_set_align(*(_DWORD *)(v46 + 24), 1);   lv_obj_set_width(*(_DWORD *)(v47 + 24), 55);   if ( *rt_data )   {     v48 = dlmodule_get_user_data(\"wf_50231\", 64);     lv_label_set_text_fmt(*(_DWORD *)(v48 + 24), \"%d\", *rt_data);   }   else   {     v132 = dlmodule_get_user_data(\"wf_50231\", 64);     lv_label_set_text_fmt(*(_DWORD *)(v132 + 24), \"- -\");   }      v49 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_set_auto_realign(*(_DWORD *)(v49 + 24), 1);   v50 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 24);   v51 = dlmodule_get_user_data(\"wf_50231\", 64);   lv_obj_align(v50, *(_DWORD *)(v51 + 8), 0, 0, 20);   v52 = (_DWORD *)app_db_get_rt_data(0);   v53 = *(_DWORD *)(dlmodule_get_user_data(\"wf_50231\", 64) + 8);   v54 = dlmodule_get_user_data(\"wf_50231\", 64);   *(_DWORD <\/code><\/pre>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-471899","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/471899","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=471899"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/471899\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=471899"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=471899"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=471899"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}