{"id":7753,"date":"2025-11-29T05:30:40","date_gmt":"2025-11-29T04:30:40","guid":{"rendered":"https:\/\/web-dev-weissblau.de\/microconsult\/?p=7753"},"modified":"2026-02-13T19:22:54","modified_gmt":"2026-02-13T18:22:54","slug":"automatic-firmware-update-for-embedded-linux","status":"publish","type":"post","link":"https:\/\/www.microconsult.de\/en\/automatisches-firmware-update-fuer-embedded-linux\/","title":{"rendered":"Automatic firmware update for embedded Linux"},"content":{"rendered":"<h2>Step by step to a finished solution<\/h2>\n<p style=\"text-align: left;\" align=\"center\">Author: Willi Fl\u00fchmann, Noser Engineering AG<\/p>\n<h3>Contribution \u2013 Embedded Software Engineering Congress 2018<\/h3>\n<p><strong>Networking is becoming increasingly important for embedded systems to further enhance their usability and open up new application areas. This often means connecting to the cloud, which, in addition to increased complexity, necessitates support for common communication protocols. The simplest way to achieve this is by using a platform like Linux with its rich ecosystem of ready-made, standardized software components.<\/strong><\/p>\n<p>In such an environment, the possibility of an update has become very important:<\/p>\n<ul>\n<li>Complexity makes systems prone to errors: Regular improvements become necessary.<\/li>\n<li>Networking makes systems directly vulnerable: security gaps must be able to be fixed quickly.<\/li>\n<li>Standardized software components enable large-scale attacks: components must be regularly updated to newer versions.<\/li>\n<li>Fast-moving protocols and services: To maintain compatibility, adjustments to communication are sometimes necessary.<\/li>\n<\/ul>\n<p>Experience has shown that cooperating with users during updates is not easy. If an update involves many manual steps, extended downtime, or even requires technical expertise, then the willingness to update decreases, and many systems remain in an outdated version.<\/p>\n<p>Promising to deliver new, useful features from time to time can improve user motivation, but then it becomes a long-term commitment with additional effort.<\/p>\n<p>Furthermore, some embedded systems are installed in inaccessible locations without their own user interface, making ongoing maintenance more difficult. Therefore, an update mechanism that is as convenient and automatic as possible is essential.<\/p>\n<h2>Update in parts or as a whole?<\/h2>\n<p>Embedded systems, unlike desktop systems, often have higher demands on reliability and stability. A robust and comprehensive update mechanism is expected. A package manager that updates software components individually typically does not meet these expectations. In particular, it lacks a way to perform fundamental updates (e.g., major changes to the directory structure, significant jumps in the Linux version) and execute them atomically.<\/p>\n<p>Furthermore, it is important that the versions of the software components are well-matched and that only a few, thoroughly tested combinations are used. Ideally, the file system should contain no remnants of the previous installation, thus eliminating uncertainties. This keeps the number of configurations in the field manageable and limits the potential for errors.<\/p>\n<p>All of this suggests that the entire system (complete image) should be updated.<\/p>\n<h2>Concept for flash partitioning<\/h2>\n<p>For a robust update process, a crucial decision must be made regarding the allocation of the flash memory. Several concepts are conceivable for this; see Table 1 in the [document\/section].\u00a0<a title=\"Technical information_ESE_firmware-update_noser-engineering_fluehmann\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/fachinfo_ese_angepasstes_android_fraunhofer-iese_becker-1.pdf\">PDF<\/a>.<\/p>\n<p>In our project, we opted for the A\/B approach because sufficient flash memory is available. This approach is now recommended for modern devices (e.g., &quot;Seamless Update&quot; from Android version 7.0 onwards).<\/p>\n<h2>Components of an update solution<\/h2>\n<p>The implementation of an automatic software update must take place at different levels, see Fig. 1 in the\u00a0<a title=\"Technical information_ESE_firmware-update_noser-engineering_fluehmann\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/fachinfo_ese_angepasstes_android_fraunhofer-iese_becker-1.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>.<\/p>\n<p>The architecture of embedded systems (bootloader, partitioning, existing services and software components, cloud connectivity, etc.) is usually tailored to the specific application, even when Linux is used. It seems difficult to offer an all-in-one solution for software updates in such an environment, which is why there are hardly any.<\/p>\n<h2>Comparison of existing solutions<\/h2>\n<p>Nevertheless, there are ready-made software components for the update that have covered at least some of our requirements:<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"93\">\n<p align=\"center\"><strong>\u00a0<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"132\">\n<p align=\"center\"><strong>Mender<\/strong><\/p>\n<p align=\"center\"><a href=\"https:\/\/mender.io\/\" target=\"_blank\" rel=\"noopener\">https:\/\/mender.io\/<\/a><\/p>\n<\/td>\n<td valign=\"top\" width=\"173\">\n<p align=\"center\"><strong>SWUpdate<\/strong><\/p>\n<p align=\"center\"><a href=\"https:\/\/sbabic.github.io\/swupdate\" target=\"_blank\" rel=\"noopener\">https:\/\/sbabic.github.io\/<br \/>\nswupdate<\/a><\/p>\n<\/td>\n<td valign=\"top\" width=\"170\">\n<p align=\"center\"><strong>RAUC<\/strong><\/p>\n<p align=\"center\"><a href=\"https:\/\/www.rauc.io\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.rauc.io\/<\/a><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"93\">developer<\/td>\n<td valign=\"top\" width=\"132\">Northern.tech<\/td>\n<td valign=\"top\" width=\"173\">Stefano Babic (DENX), among others.<\/p>\n<p>&nbsp;<\/td>\n<td valign=\"top\" width=\"170\">Pengutronix, among others.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"93\">First release (GitHub)<\/td>\n<td valign=\"top\" width=\"132\">2017<\/td>\n<td valign=\"top\" width=\"173\">2014<\/td>\n<td valign=\"top\" width=\"170\">2015<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"93\">License<\/td>\n<td valign=\"top\" width=\"132\">Apache<\/td>\n<td valign=\"top\" width=\"173\">GPL<\/td>\n<td valign=\"top\" width=\"170\">LGPL<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"93\">Language<\/td>\n<td valign=\"top\" width=\"132\">Golang<\/td>\n<td valign=\"top\" width=\"173\">C<\/td>\n<td valign=\"top\" width=\"170\">C<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"93\">cover<\/td>\n<td valign=\"top\" width=\"132\">Complete solution from bootloader integration to cloud server<\/td>\n<td valign=\"top\" width=\"173\">Core component in Linux for executing the update based on a flexible definition and scripts in the update image<\/td>\n<td valign=\"top\" width=\"170\">Core component in Linux for executing the update, flexibly configurable, supports multiple concepts; command-line tools for image generation and debugging\/intervention of the system.<\/p>\n<p>&nbsp;<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"93\">Evaluation<\/td>\n<td valign=\"top\" width=\"132\">Complete solution, but less flexible as certain components are predetermined (U-Boot bootloader, Mender server); less widely used language Golang<\/td>\n<td valign=\"top\" width=\"173\">It&#039;s better understood as a modular system for integrating various bootloaders or cloud connections around the core component; it requires significantly more effort on your part, but can be well tailored to your own environment.<\/td>\n<td valign=\"top\" width=\"170\">Similar to SWUpdate, but offers more tools and a stronger focus on security; somewhat more predefined (more abstract model, less scripting), but compensated for with more configuration options.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><em>Table 2: Comparison of existing solutions<\/em><\/p>\n<p>All three solutions are under active development (as of autumn 2018) and offer Yocto integration and commercial support. In our project, we opted for SWUpdate. RAUC would also have been a viable option.<\/p>\n<p>Due to the requirements of our project, a custom implementation based on MQTT and HTTP was chosen for the provision and control of updates on the server side.<\/p>\n<p>A server component often chosen in similar projects is Eclipse hawkBit. Both SWUpdate and RAUC offer integration with hawkBit.<\/p>\n<h2>Step-by-step to a complete solution (with SWUpdate)<\/h2>\n<p>With the chosen A\/B approach, two complete software copies would need to fit in the flash memory. To simplify matters, the kernel and the device tree are no longer kept in separate partitions, but are integrated as files into the root file system, so that now exactly one partition is needed per software copy (see Fig. 2).\u00a0<a title=\"Technical information_ESE_firmware-update_noser-engineering_fluehmann\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/fachinfo_ese_angepasstes_android_fraunhofer-iese_becker-1.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>.<\/p>\n<p>The application data is stored in a separate partition so that it is preserved during an update.<\/p>\n<p>Since we used raw NAND flash in our project, the partitions were mapped to UBI volumes (except for the bootloader) and the UBIFS file system was used within them.<\/p>\n<p>The update is delivered as an image file, e.g., with the extension &quot;.swu&quot;. It contains, as a compressed archive in cpio format, all necessary files such as scripts and an image of the partition to be updated.<\/p>\n<p>Furthermore, it contains a file called &quot;sw-description&quot; which describes the actions to be performed for SWUpdate. It might look something like this:<\/p>\n<p><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAW4AAAEaCAYAAAAxEb1YAAAgAElEQVR4Xu2dCbiVUxv3b0V5ZagMkYh8mkSDFBUpQzKlQqEiKUPGVIbeBmQqIRJCg4QylMocSigapZkUaU6mMr2Gr9\/9fetcu+MM++wz2PvZ\/3Vd5zp19vOsZ63fevZ\/3etea91rp7+3J1MSAREQARFIGQI7BeH++eef7aeffkqZgqugIiACIpBOBPbYYw\/bbbfdvMou3Nu2bbMmJ55om7\/91orttFM6sVBdRUAERCAlCJQpU8amTptmpUqV+n\/CvXbtWqt79NH29pQpVrZs2ZSohAopAiIgAulE4OjtGj179mwrX778\/xPudevW2fGNGtncefNszz33TCcWqqsIiIAIpASB\/\/N\/\/o9Nnz7dDjjggB2Fe+bHH9s+++yTEpVQIUVABEQgnQhIuNOptVVXERCBSBCQcEeiGVUJERCBdCIg4U6n1lZdRUAEIkFAwh2JZlQlREAE0omAhDudWlt1FQERiAQBCXckmlGVEAERSCcC\/5pw\/\/jjj\/bnn3\/6zp8SJUqkE3PVVQREQATyRaDIhfv777+3Hj162DPPPGO\/\/vqrPfXUU3bppZd6bJSpU6faoYceajVq1MhXpXSzCIiACESZQJEL9+OPP25XXHGFdejQwQ455BBr0aKF1alTx7dvHnPMMTZ69Ghr165dlJmrbiIgAiKQLwIJC\/c333xj48ePt\/Xr11vNmjXtrLPOsv\/85z9emJkzZ9qbb77pLpBzzjnHqlWrZv\/73\/+MAFZY26NGjbI1a9bYvvvu69cj1q+99po9\/\/zzdsYZZ3h+DRo08M8\/+OADu\/rqqzPcKV988YU\/99prr7WNGzf6fV9\/\/bUdeOCB1qpVK9t\/\/\/1tw4YN9vTTT1uzZs3s4+07QDdv3mwdO3b0z0ifffaZTZgwwfNs27atVaxYMUeIv\/\/+u5c9Nu2yyy62++675wu+bhYBERCBRAgkJNyI9imnnGJfffWV\/fHHH\/bXX3\/Z66+\/7n8bMWKEderUyUJob7bNv\/fee\/bt9miDTZo0yfg7hd11113tk08+sV69etmkSZN2KD9iXb9+fWvfvr13DsRNQSxHjhxpPXv2dOHv1q2bYcHvtD2KIWWoVauWC\/2XX35pRx11lG\/ZR7RJjRs39nK888471rJlS9u6dav\/HdcMZa9SpUq2\/IYPH+51ik2nn366TZ482Z+tJAIiIAJFSSAh4f7oo4+sYcOGbmUjnoh09erVjRixlSpVsqpVq7rArl692po3b24XXXSR3XLLLfbEE0+42C1atMiuueYav75r164+QfnWW29Z69at7aGHHvLrEXWu436sd64799xzrVixYm4tI8LLli0zYodz\/+DBg13Ely5d6mJ6xBFHeJnGjBljCC8W+Oeff24XXHCBX\/Pcc895+dq0aWP9+vWzvn37ZsudclCG2EQ9cfNIuIvyddWzREAEIJCQcHPjkCFD\/AdLGhEfMGCAlStXzkqXLu3\/xiVCOuGEE6x48eIutCQEGCH95ZdfdmiBd99910466SQXVNwXJCIVEr6QzoE8EeLKlSu72wJBfuGFF7yD4DoEHCGeO3euiykW9O233269e\/f2UQGrWHCN1K1b1\/9doUIFX9WyadMmd7t07949R+F+++23\/yHcdFwSbn2RREAEippAQsKNTxlXBbFgX331VRfjiy++2C1e\/MhMNmLhrly50sW4c+fOLvIkXA6ILmJLMPCQ3n\/\/fXdnILa4SUqWLOmiePzxx7t\/nN+zZs0yVqUweck1xAvHYr755pvtzjvvtFdeecUWLlzoWSLcffr0sdtuuy3jGQg4nQydzWOPPeZ+8eXLl\/u1jBKyS6x8ueyyy3b4mJEAdZdwF\/Urq+eJgAgkJNxYnwgXLhIEFkFECFnWd88997hbJKTDDjvMJxCxlEnnn3++W8qIZ+xBDcG65jcJsR82bJidfPLJ7pfmmQg+FjY\/uFWOPPJIW7VqlU+K4uP+7bffbPHixX4\/1jmW+qBBg3ZoZZ6N8DPhiM8cK3zixInWtGnTbN8G8s1qchJXj5IIiIAIFDWBhIQbN8eU7SfksHoE8UP0cImE9MYbb9i07cfqsCoEocYtERJW8YIFC9w1EVahhM9wc2DF4vaoV6+eTyIiqvwdq3r+\/Pk+kchSQjoE8nnxxRfdcm+0\/fAH1oGzegQrGF85FnxWgky5KSMdD0sQGRVkLktRN4SeJwIiIALxEkhIuOPNXNeJgAiIgAgUPAEJd8EzVY4iIAIiUKgEJNyFileZi4AIiEDBE5BwFzxT5SgCIiAChUqgQIT7u+++8+3fTFQqiYAIiIAIFC6BfAk3cUOuuuoqX2HCzkK2vCuJgAiIgAgULoF8CTfb1ocOHerifd111\/k2TCUREAEREIHCJZAv4SaSH5tQiOqnJAIiIAIiUDQE8iXcbLo5+OCD\/VAEJREQAREQgaIhkJBw49tmZ+Kzzz7rW9wzx\/EomqLrKSIgAiKQngQSEm7ihpx66qkeCZD414RQVRIBERABESgaAgkJN9H6OESBVSQcKPDII48UTWn1FBEQAREQgcTjccMOq5swroRwVRIBERABESgaAglZ3BSNyHqsKtlrr7388AMlERABERCBoiGQsHBTvLCOm0MNOEWGUKtKIiACIiAChUsgX8LNGY6xOydxnSiJgAiIgAgULoF8CXco2pYtW3wjjmKVFG5jKXcREAERgECBCLdQioAIiIAIFB0BCXfRsdaTREAERKBACKSlcIfDjffbbz8777zzkuqk9vXr19uTTz5pp512mp9AT1nbt2+fNGVM9vIVyLdCmYhAkhNIS+H+888\/rVatWlalShUPkLXzzjsnTTOtWLHC\/VejR4\/2ZZYczMwp9xyATJo8ebLNmDHDY8S0adPGd6\/mltgsxSHNzEEQniCeuYhNmzbZuHHjbO3atX4QdLNmzfwxuZUvt7LocxEQgfwT+NeF+6+\/\/rIwuVmyZEmvEWvEv\/\/+e+P\/u+22m\/\/txx9\/dPFiEjSkn376yXbddVcXIg5z4LT32ITo\/frrr77WvFixYv4R\/+dn27ZtfrJ72bJl\/0GRvMg3nPz+22+\/GT977rmn8Uyex+eFkb799lsrV66cn2Y\/fPhwL+v48eP9UTfeeKPdf\/\/9\/m\/q07BhQxdyypVVgmPv3r3tvvvu8\/Ij9kuWLMlgml35EWss\/s8++8wvKVGihPXv39969OjhbcVIJavyhfy2bt3qB2soiYAIFA6Bf1242T5\/5plnuhhOmjTJxRkrmLXh7733nlWsWNF69uxpI0aMcLHs1q2b9erVy63kc889110J\/CAk\/H\/YsGEuZAMHDvSt+F9\/\/bXVqVPHxowZY1WrVrW+ffva7bff7iLPc0eNGpVhzX700Ud288032\/Tp013k\/vvf\/1rnzp09+uGtt95qrVu39vwPOugge+qpp1w4s0t0GoMGDXKLOSTqyPJJhC+79PPPP9uQIUPchbNgwQJjdNCqVSv79NNPfZTQtWtXu\/fee11ICfCFZd6uXbtshZu60tksW7bMreU5c+ZkdEjZlYG63n333X44xpFHHukbrVauXOn305ESYCxz+UJecKaNBgwYYBdffHHhvLXKVQTSnMC\/Ltzwf\/DBB+2GG25wn+7hhx9uZ599tn3zzTc2d+5cF0yECrFet26d+38RdtwEWIWIS7169VxMX3rpJXcvVKtWzUWuSZMmdtJJJ7nleOWVV1rjxo3d7UCQLMSY69566y0X7g0bNrjA8++LLrrIr5k3b54LJj8dOnRwtwTijVg2b97cLeHgwsj8HmG1Uxd+h4TozZw5M6GgXNQb0cdNQpkRbqxohHzw4MG5vsZdunSxqVOnel3CSCI7K50YNIyE6JzCfVw7bdo0a9CgQY7PQrhpS4T7kksuybVcukAERCDvBJJCuDdu3OjWcJ8+fezSSy91EUbMO3bsaDVr1rQffvjBhRMRxBrFosOaRTznz59vS5cudWscC\/Sss86yAw44wEWbITtCi8CzOah48eIZhLC2Eb4g3HQAXIfrAQsTSx1rH8s9+JMRe0Q9CBtHtmUn3AgfeWAxh4R748ADD3TXQ17TE0884aOQChUq2Jo1a+y2226zhx9+2MvCaCS3BEtGFPDKTbjhsGjRIuceOlI6T\/zk2mSVG2l9LgKFTyAphJtqMqxGkBj24xphaI+ftEaNGu4KwQ3C\/xHfY4891po2bepCi2WOZZx5wo3VD4gxFji\/H3jgAbv++ut3EG7+g1CTcLUg2K+++qp3CLgGKlWq5NYsPue2bdu6xRkm6vAfk29OFnflypWztLirV6+e55YdO3asl4FRwcsvv+yuIkT8rrvusltuucXzoyNhIpJOLjMPRhyUf\/HixTs8G+bk3bJlSzv00EN9foHOjtEEPm0sZ0QbFxJx2HMLa8CkJvnRNjrKLs\/NrBtEIC4CSSPciAohYok2iChjYSIil19+uU\/SMfwuX768uz1wGdStW9fdIKtWrbKFCxfuYEXiEsAiR2SZaMN6ZzUFeU6YMME++eQTd3eQWGqHv3bffff1VSY8HzfMa6+95hN5CB0+byxWhBqLE2ue9O6772Yr3Pi2sdYz+7hxbdAR5DVRj9q1azsDykv5qTvuJFw+TLYivAgn7iAYkqjvrFmz\/Pfq1avtiiuucFENn4cJT+oHZ9LIkSO9vjCjs4QfIxnEPHbUklUdwr10BC+88EKu1+eVg64XARFIop2TWNUM+2fPnu3+ZaxqEpZz9+7dfWka1+Bjxd+LawUrHDFC9GNXeSC4TCp++OGHvjIF0UFEDznkEOvUqZMLVKlSpTx\/BA9fLi4axI0JSdwE5H\/HHXf4M3CREEQLS\/fEE0\/0yUISPvXsLO7CeLnokBBaxBoXEu6SFi1a+KOY5MXSpmPDpREs41Bf3CNY6UxU4pLiXhIjkptuusnrjT+bRIeJ2wlrm9U8WOCsZsHCzy3RcTDnwOof2jIRt1Buz9DnIpDuBJLG4qYhWPrGqoqsluixPJAUu24ZEcKXzCqSrAQUnzh+ZZYDhoRQ49uOTYh4WIqIAJIvlmYQHa7nvhCPhc9JsUsTi+pFwmeO75k6ZbZ++Yzyx3ZiWdUXEY\/1c1OfrOrC38kznrXi1J9nMfmJtc1IiRUtSiIgAgVPIKmEu+CrpxyLkgAulccee8xHAf369ct12WFRlk3PEoEoEZBwR6k1\/+W65NVC\/5eLq8eLQMoSkHCnbNOp4CIgAulKQMKdri2veouACKQsAQl3yjadCi4CIpCuBCTc6dryqrcIiEDKEpBwp2zTqeAiIALpSkDCna4tr3qLgAikLAEJd8o2nQouAiKQrgQk3Ona8qq3CIhAyhKQcKds06ngIiAC6UpAwp2uLa96i4AIpCwBCXfKNp0KLgIikK4EJNzp2vKqtwiIQMoSkHCnbNOp4CIgAulKQMKdri2veouACKQsAQl3yjadCi4CIpCuBCTc6dryqrcIiEDKEpBwp2zTqeAiIALpSiCphJvDcDmBnQNu995770i1yfvvv2+VK1f2U+SVREAERCA\/BJJKuDlVnTMLOeW9evXq+alXUt3LKfFXXnmlTZ482Ro3bpxUZVNhREAEUo9AUgg3J4lzXuHvv\/\/uJ7AfeOCBfjo7f+fU9912283\/zu8ff\/zRT3UPib9zDSebx55czuec8s6p57vssov98ccfVqZMGdt55539VvLhZPisTjfnPk5953mxiTz4iT1FPbcmX7x4sdWrV8\/olG644YbcLtfnIiACIpArgaQQ7oULF1rdunVdSA844AB7\/fXXrUqVKrZkyRJr2bKllS5d2rZs2WInnniivfjii9a3b1+77rrrbNiwYda\/f39bvXq1VaxY0a6\/\/nr\/QVzvueceGzVqlP3yyy8u7LgoJk6caPvtt5\/17NnTRowY4QLcrVs369Wrlws67ozevXv7b1w1d955p11++eUOkTwvvPBCmz9\/vuHSKV++fK5wuaBjx462bNky++ijj+K6XheJgAiIQG4EkkK4N2zYYI888oj7t3GTII5HHnmkIej8rlWrlq1YscJKlCjh1nipUqVs+vTpLs5r1661ww47zMaOHev3r1mzxlauXOkuiddee807goYNG\/q1iDAiPXDgQP+9bt06e\/LJJ+3555+3Nm3a+HPoBK666iq3yLHQ+\/XrlyHcbdu2tU8\/\/dSFm3Lklr799lurWrWqPxu\/vZIIiIAIFASBpBDuUJFx48ZZ+\/btbc6cOVajRg377LPPXIAnTJhg11xzjVvfu+++u\/vBcUH8+uuv9uabb7plPmPGDHvnnXf8nh9++MFOPfVUe+mll6xcuXJWp04dGz16tItzzZo1\/fMOHTq4K2XIkCFudQ8aNMiuvvpqF\/IzzjjDmjdvbmeddZbfH9Lff\/\/t7pvgbsmtARYsWOCdxiuvvGJNmzbN7XJ9LgIiIAJxEUhK4cZixhWBCJ9yyiluObdr184uueQS++uvv9zNgevh3HPPdfHmmg8++MDFG2sdi7xRo0bu7ihevLiL\/+233+7\/xoLH7cG9dAL8rX79+i6s+NinTZtmkyZNsuHDh7vgMwKI9Wkj3NwTTwrCTcdz0kknxXOLrhEBERCBXAkkhXB\/8cUX7o+ePXu2vfHGG3bZZZe5Pxuru0mTJu7zRrgvvvhir9DIkSPdiuXzE044wa1j\/N0IPnnNmzfPfcunnXaauzsQ6\/POO8\/93F26dHFRZqIwdA5du3Z1S\/yiiy6ySpUq+eQnVv369ett48aNttdeeyXk4968ebMB+O677\/ZVJUoiIAIiUBAEkkK4sWpxbeCCwAr+\/vvv7eyzz\/bJQSzjMWPGGOKKq4PE\/5lAxIp+6KGHfDUJ93\/88cf21ltv+QqVBg0a+EoUJjyx0rGescpxk3Tv3t1wy2B5cx3uESZDEXNEnftr165tt956q7Vu3drz4Nq8+rgpK2Vevny5zZ071\/NREgEREIH8EkgK4WbJHmIZm5iIRJD5O2K+bds2n5wkIcisNCHFLt1DlLm2R48extppJjdZRdK5c2cXZyYLy5Yt6\/fROZBCPuHZW7dudZcJVndmXzblRMAzLzvMqRFw99BpsBzw5ptvzm976X4REAER8JE8CzRYfLHT9sm3v1lpcfx2\/\/DM7dbrPvvsk5KIWC541113uXuFddqvvvqqNWvWzB5++OG4\/dMFWfGnn37aV6pQDm3AKUiyyksE0pNAJIUbqxi\/+JQpU4yVIEwMtmjR4l9tYSY92fJOD6kkAiIgAvkhEEnhzg8Q3SsCIiACyU5Awp3sLaTyiYAIiEAmAmkh3ExgMmlJzBIlERABEUh1ApEWbtZ0MymIr5sdlmzUURIBERCBVCcQaeFmm\/zQoUNdvAlKRWWVREAERCDVCURauIk5wnJAgkgpiYAIiEBUCERauNkOf\/DBB\/tmHCUREAERiAqBSAo3vm22wj\/77LMeUpXYJ0oiIAIiEBUCkRTuEPuE7ezEJzniiCOi0l6qhwiIgAhEc8s7MUW++uorX0Vy+umn+yENSiIgAiIQFQKRtLhD4xAxkFCuxApREgEREIGoEIiscBOjhFUlxNJ+7rnnotJeqocIiIAIRNNVEto1rOPmSLJrr73Wz6ZUEgEREIFUJxBZi5uG+fzzz3fYOYnrREkEREAEUp1ApIU7NM6WLVt8I45ilaT666ryi4AIQCAthFtNLQIiIAJRIiDhzmNrcn4lR6RxfiQTn+EcyV9++cVP1wnHq5Htzz\/\/7MeskTjuLPa0+Dw+NiUup65wKFWqlHEEHPXNyzFvBV1JjrvjGLqSJUvabrvtVqDZM\/nNe0B7Z5c3y1JhQmTKrFJeyscRfrxrjBphTJ6Zj9Yr0Aoqs6QmIOHOQ\/N88sknPsnJocS4XlgrzinyCDTnSlatWtVefPHFjC8UOzafeuopv4bzJnv27JmHp6XepexUpY4vvfSSnX\/++T6\/cNNNNxVKRRCyqVOn2qGHHmo1atTY4RmI6oMPPmj33nuvbdiwwTp16uRnjhZk4szSatWq2Xnnnee7dLNKvXv3tscee8zLGbsJLK\/l43p40hGedtppzvjdd9\/1A66V0pOAhDsP7U7sk8WLF7sQYG1zKnywKAlkxU5NzrYMVvjLL7\/sp9EPHjzYevXqZf3798\/D01Lv0kmTJlnbtm39kGaOi7v++uu9oyuMNHv2bDvmmGNs9OjRfrZobOKA5qOOOsrP9+SHTrWgj65j3mTvvfe2Sy65xEaMGJFlFeFAJ9+6desdDqVOpHytWrVy4W7fvr3xb4wGDsJWSk8CEu442h2LmhPia9as6WvDEYuQsHz42XfffX3CgM8zJ4bTWNy33357xkdYjKwv5wvYtGlTFzoSeWPNc8r8e++95581adLEP\/v666\/9LE1+H3jggS4I5cqVs7Fjx1qxYsVs5cqVxsqZOXPm+FC6TZs2fh9CMWHCBB\/WI6wVK1bMsda4FxjGxyaG6NkN+WNZXHnllW5h8pxLL73ULr74Ytu4caONGjXKOzWEbPPmzS544fzNmTNnerx0ynfOOee4JRsSnQGfU1\/yLFu2rG+oggOdJbxpF0Qccf7xxx\/d4qdznTx58g7tgeuCvyH6HISNAObEAkuXUQTWNfXiHXj88cftzDPP9LZGuLt27WrHHnusLV++3HkffvjhXl\/CCSO0jLawyil3cK\/Qoee1fFdccYW7fM4991y\/F47kTeJdovOoXbu2HX\/88XG80bok1QlIuONoweDyiL2UrfSc2t6vXz+77bbb\/CO+NBwKHCxu\/sbpO4hrrHDjGz377LPdGidx\/ZAhQ9y10KhRIxfeP\/\/80xAaLPrp06fb0UcfbV26dPEhP9fja+eL+s477\/iXmc6DhOjzRUZo6RSWLl3qz8LnTMK1gOjlNMwePny4i0Pm+iJ6sXXLjI7yIvh0OpQB4UJsPv30U6tVq5aLJaJNOvHEE\/2ACyI3duzY0UWNxDWIOFYyYoVQhtSgQQMXXqxO2Memzp0726BBg+yggw5y33Nsoj48A+t\/2LBh3snhJ6Zdn3jiiWzfAMrEM7\/88ktbs2aNj7boJB599FHvlLB4qR\/Pw5fNl+mjjz7yOlJfOkDS\/Pnz\/T7ehUMOOcQ7l7yWL3SkdG78O3Z+5cMPP\/T3hk4epjm1UbaV1QcpRUDCHUdzYSEhng8\/\/LD7KhFt\/NlYkwgAFjniiVgiOrkJdxBGYqhgrXXo0ME4mZ4vOL7M1157LcPyPuuss1xsECaG3r\/++qtP\/uF+QdQWLFjgnQIig7WHEJHvjTfe6JYnYsZ9WPerV692q5DOpm\/fvtnWfNGiRV6P2FSpUiW3aBMRBfJDyKpXr25jxowx6s\/IgvrWq1fPyz1y5EgvX\/Pmzd31QSeG2HXr1s1uueUWe+GFF\/xvWJawfuutt3zEgX\/5oosucgFFkAcOHOjWKAypKx0VFi+dHO6TtWvXejvydzoW\/p5dginloQNk1MK+AOoB9wsuuMBHWXTK48aNM+pIh0JHxGeIOXXs0aOHd8T44XlXCrJ8odx0koxCKFvDhg3jeKN1SaoTkHDnoQWxfrG0sgpahZhjBb\/xxhs75Ih1xJAWH3cQS4SIcLOIFlYqwo+l+Morr7goYeFhKfMbtwHDbixgxAuBW7dund+DFYiFh0jjakG4+BwXAhYtIs5oYNOmTVahQgW34vk3lmf37t1zFG4iLGYWbjqRRIUb4cJVxIQdnRRWJ7wQvwEDBrjAkZhHwCWDawIWWJN169bN6LCY7Lzrrrt8hEGd6ZBwocQmONEBIuAwDgkXCRN7dGTEsKHDQ2RDnSgP7UEnQEK4ce\/AGWEO7RGEm5EFVjvvA22C24VJUToYEp0U7wuda+wIJ9Hy5eFV1aURJyDhjrOBGebik8W6Y6VISAgoVjDWHwkrF+FhSIs44RflS8tE3a233uqfIcQcpfbAAw+4MCCmDLURIny2WHh82fGbYhFicfN3RA4rEsG58847Df8vYoRVilAjQFh5wZ+M9cfKCoSH1Q34icmT8jBiyC5Rv8wxzLE8cU\/kR7j79OmT4Vbi2ViKdFi4gbAY8dHDAL8xnBFshBqxRaAJXYB1iwWNm4mJRzoD\/h675C+MaLDKwzmjuC1mzJjhHRiWPSMY4rbTrkwqI9j43bGsx48f7+EREO6WLVu6xYzfHncWwgxf2gG3FGXh71jxdMx0vnTiuKZoCzpI5iqw9sMcQSLly+k1ZRTBe4TFTd7aaBbnlzqFL5Nwx9l4YRUBX1TEI6Ss\/N8M5xEBvqwIQUiIHj5IXAAnn3yyuwpY+80P\/mu+\/PhUV6xY8Q+fKu6DI4880latWuV+b6xDxH7u3Ll2+eWXu0BhcWNlIzzkg3AxPKfMCBdfaDqUiRMnuj80u0S+WU1OIlSJpODjpoPBdRObGHkwAgkJwWTUgisD0aRzComlcCy3xFWEhYvg85sUu+SPjhHxj52cpIM97rjjvD1gAD+Y4QZD9BFa3EF0oswbBD64NsIyTrjDk06Q9sXHHeuvZkSCNY1bjUni4LenfIh5mCNIpHw5cacjQrR5R3l3qIdStAlIuONsX76w9913n4tx7NIyvvizZs3KsHKw3BBKJtfwvyIsCAVuCr7ITJIBnZUHdABYw3zRECWsT6w0\/KMMt7HWmQhjFQP5YYUjXLhemIxiIhRBR6CZ9KJjQCQRPPKhHAghqzIQQ57P6gus2qLcGENdcSdgIWfVYVA26sKIAhcHVjGJkQwrZnAbMUrgs9jNLnRajAIQZerFKhHSvHnzfBUNcwchsBh1R7R5FlY2cxVwohMICY6s2OG+sJGKMsASq5ZJXkQZ9oyE6IQZ8SDevBc8n04ASz4sEWSTDO8E5Sdf2ijR8uX0qjKCwDXDaA2OStEmIOGOdvuqdhEnQKd29913eyfCPErwr0e82mlfPQl32r8CApDKBJYsWeIjAkZluMeU0oOAhDs92lm1FAERiBABCXeEGlNVEQERSA8CEu70aGfVUgREIEIEJNyF2JisbDFJ1oMAACAASURBVGDFCSsUWGfNqopUSKzAwG\/KiojKlSv7SgyWPbJppbASKy94XjzrxP+N8hVWvZWvCCRCQMKdCLU472FtMRsiSOwMZIdgKiSEMSwZZGchW7lZ4lZYZ3YSf4XlcyzHi12ex7I9NrSw1ZzldizfoxMs6vKlQpupjOlFQMKdS3uzUSMcfRa7FZqIcbG79Vh7zQaY2E0qbGIhHjS7FGODTIXoe1yLlRkCQLG2mjXJrFVmEwy\/WSPM1urYhKDxWShPYbyyiCSxPNiyza5J6kE0PNazsyadXYCUjTJn3qlH+bI6RIF7WRcdotqRD7sn6eBYD8+Wcj4jbyxv1qGzmSgkdiHS+fFZduUL18KRssVjwRcGP+UpAoVJQMKdC12G8Cy1QpzYxYcQEAuEbdZsgyZcJzsC2eqOWLERglga4bSbEKskVrjZKEG8EMQK9wnb5cmfOB7E5yDyG50F7hU23LBVnC3zy5Yt863yBIDC+iW+d+Y4HbHVwTJl2ztrfWMTG0XYdZhTomzs6MTSZTcg9aWzoG5sP2cTCqMJPsetQudE3BTqySaVgw8+2P773\/86D9L999\/vuybZyEKYWnYfkrg\/nBLE\/+FL\/dhZyg5GOi3yogMhXggMYJtd+ciD69gCTj0JxiXxLkwJUd7\/BgEJdxzUiU\/BoQnE+SCSHTvo2PHIiTgILYLOtnNECb82OyavueYazzmrsK5sS2eLOwLF1miEDOFmZyZbl9kSz9Zl3ALEF8ECJegT137zzTe+yYLQrAgluwHxQ2eVEG52eWYOgUosErZsJ5LoXOgw2OXJbk\/qgqiyNRwRJhFnhPKyQ5CdnHDDeuZ6dhCy5ZvgT+wcRcBxhyC2MKNzCLtLY8tHJ0ZwKjrL3I7sIi9YIdy0hYQ7kZbWPclMQMIdR+uwZRuLEssXkUK0sOTw\/zIcD0N4skJ4CUZFWFEEIyvhDkGcEDcsS+JYcC3WLL5lrElEDHcAoo0PmK3fWMnE2+AetloT+4K4I8TIyC6tX7\/+H3FHiLGRaNwRAikR2Cls\/UYYsYgpJ7E\/QnwQto4TLY9YJASPovNgOzbuJHb6EXAL1wgxSYgrgvWOKyWrREcBe3zg1F1JBNKdgIQ7zjeA2NtY2cQGIegQViRiS2Q5\/k8UPhIxMBAjBCwkLGfEDjcCKUSHI4YIlidxL+gMECj8ydzLc7CK8bETOY+IdIg2u+MIfRoCTdF50IjZWdycKJPZ4qYjSNTiRkDvuOMOd1nEWvqMAIhgyLOoA2JNDBbcI1zLyhSEm0Q9sdy5hhgrdIa4jxBuhD020ZnR0WGl4\/6IJ+Hewp1FzJNwelA89+kaEUgVAhLuOFuKIEhYxiyJI1ASLgImGREGlvzhvkCYcJUgsqzEILASViXhWzkwAWuRiTisUXzbWMpMTBL2k38j7ljcWOsIN50FCeEitCjuAiZFccvgf8ZNQmzo7I4Uw1WC6Gf2ceNTJ2RqIol4GIgpz449pJeohXRa8CHkKXXgucS+Jo4G8bVx29CpEQaVeiLy1IPQrUw6hiWHuEqw1vGPs9qEjoADAvCFE6gpu44q1IeOghESIwtOrWFSVUkEokRAwh1na+JfxRWAiwIXB0JMQhiYOORvHLsVTmxBZBBHhAurnFUOCD0ihtWMgOP+wIpGeMNhC\/jMsT5xH4QzI5lgpHPAX8yziEWNLxgLl06iKCP9Idr44vGvZ47pTafFhCQ+Zj7DMqc+WNKcuoPVTEeFgBPCllEGiXgb+Pw\/+OAD\/z+TknDBGocj94djwGJjbOfUdDwDN5LCnMb5guuylCIg4c5Dc7GUDQFmJUnmxCoQlueFdchYuyyXY8lbbMK3HJbPcU84RJZlcdzLb4Sc1SghtCiixeqKMMnGfeSRqJ86D1X+x6WIKD+sfMFazpxwU4Q6hPKHawKPsBww9l44hbMiwzJJRhexMa25PpZfVvWAFWJNx8jzEfrM5chP\/XWvCCQDAQl3MrSCylBgBLDasd45dAL\/eojtXWAPUEYikAQEJNxJ0AgqQsERwLWCO0Z+7YJjqpySj4CEO\/naRCUSAREQgRwJSLj1goiACIhAihGIpHAzocUEGRN4RbniIsXaXsUVARFIUQKRFG5WPXB4LOLNGupwiGyKtpGKLQIiIAI7EIikcLMkjdPR+WEJGhsystukovdBBERABFKNQCSFOzQCW8cvvPBC39GY1drhVGsslVcEREAEIBBp4Wbzxfnnn+\/bzrPaNKNXQAREQARSkUCkhZtTW9imzmYMAhkRcElJBERABFKdQKSFm23jTExieSPcBGtSEgEREIFUJxBp4SYYEwH1Of6KUKix5xmmesOp\/CIgAulLINLCjaVNeFV83BLt9H3JVXMRiBqBSAt3WFVCwH7Frojaq6v6iED6EoikcLOOmwMGCNjPOm5Oq9E67vR9yVVzEYgagUgKd9g5iWhzujjB\/JVEQAREICoEIinc4RADYpVwUoySCIiACESJQCSFO0oNpLqIgAiIQGYCEm69EyIgAiKQYgSSRrg5dJfTS2rXrp1iCFVcERABEShaAkkj3Ewi9u7d26ZPn2516tQpWgp6mgiIgAikEIGkEW5O5yaWCJH8Zs6c+Y8TzDldnUMRwknnKcRYRRUBERCBAiWQNMJNrRDtKlWq2IABA+zaa6\/NqOiiRYusWbNmHndk8ODBEu8CfQWUmQiIQKoRSCrhBl6bNm1s06ZNNmXKFCtWrJjzRLiJOYJwP\/TQQxLuVHvLVF4REIECJZB0wo2f+9lnn7WFCxfqvMgCbWplJgIiEBUCSSfcffr0sWeeecat7HDQL1vYn3\/+eatQoYI1adIkKuxVDxEQARFIiEDSCTfR\/NavX29vvvlmhquEMyOrVq1q++23n7FsUAGjEmpr3SQCIhARAkkl3OvWrbNq1ar5yewdO3bcAXGLFi1s4sSJtmLFCqtUqVJE8KsaIiACIpB3Akkj3H\/88YddcMEFfiI7ywFDjBGWCSLWnTp1shIlSvhpNvxWEgEREIF0JZA0ws0GnIEDB7owc0ZkSB988IF16dLF\/zZo0CD3cyuJgAiIQDoTSBrhZhUJqUaNGju0B9vgt27dKr92Or+lqrsIiMAOBJJGuNUuIiACIiAC8RGQcMfHSVeJgAiIQNIQkHAnTVOoICIgAiIQHwEJd3ycdJUIiIAIJA0BCXfSNIUKIgIiIALxEZBwx8dJV4mACIhA0hCQcCdNU6ggIiACIhAfAQl3fJx0lQiIgAgkDQEJd9I0hQoiAiIgAvERkHDHx0lXiYAIiEDSEJBwJ01TqCAiIAIiEB8BCXd8nHSVCIiACCQNAQl30jSFCiICIiAC8RGQcMfHSVeJgAiIQNIQkHAnTVOoICIgAiIQHwEJd3ycdJUIiIAIJA2BSAs3p8NzEMPuu++eNMBVEBEQARHIL4FIC3fv3r3tscces6lTp9oRRxyRK6u\/\/\/7b5syZYxs3brRmzZpZ8eLFc70nvxdMnjzZRo8ebSNGjMg4ZzO\/eep+ERCBaBOItHBzHNrHH39srVu3ttKlS8fVkkcddZSVK1fO3n777biuz89Fc+fOtcaNG9sNN9xgffr0sZ133jk\/2eleERCBNCGQNML9zTff2Pjx4239+vVWs2ZNO+uss+w\/\/\/mPN8PmzZttwoQJtnLlSjv66KOtRYsWbg1jqe61117+M2XKFGvatKk1adLELeahQ4farrvuamXKlLHzzjvPypYta1jUzzzzjO25555+UvyHH35op5xyiosnIvr888\/bE0884fdw4jzPv\/HGG\/13TuX76aef3GKuXbu2HX\/88XG9On\/99ZeddNJJVqpUKcPqVhIBERCBeAkkhXAjigjoV199ZX\/88Ychaq+\/\/rr\/bdWqVXbmmWfaokWLvE4lS5Z0ka1evbo1bNjQPv30U78HX3axYsVs1qxZ7tPmVPjff\/\/d75k\/f753Bgg3woo7hHv4oQN4\/\/337csvv7T27dvvwG2PPfZwwd62bZt3ClmVjxvoABo1auTX0IHstNNOufKfMWOGC\/f06dO9M1ISAREQgXgJJIVwf\/TRRy7CWNndunVzga1WrZrtv\/\/+\/v8hQ4bYmDFjXOhwf\/DZPvvs49e\/8cYbNmrUKDvggAOsVatWNnjwYBfgH374wS3yHj16uFBzejz50gm888479uyzzxqV57kXXnihPfzww\/btt9+69X3QQQfZuHHjvCPAxYLIZlc+QGNxDx8+3C3uE044IS72d955pw0bNsyWLVvmIwMlERABEYiXQFIIN4VFnPlBPBHJe++916pUqWInn3yyW9NYprEJEW7evLlb5EuXLvWPvvvuO3drBCFE7C+99FJbsGCB58U9p512mlvRwYKvWrWq1alTx4UcSx9LvnLlyjZx4sQdnpe5fPfcc49xb6KJDmXSpEk+YmAUoSQCIiAC8RJICuH++uuvbc2aNVa+fHl79dVXrWvXrm41P\/3009a5c2e3nPlBxLG4EUwsboSbe7Gogz+ciuMC2bp1q9\/TvXt3e++994xJR\/zJp59+ui1fvtxmzpzpljT+cqz6QYMGuWulXr16PkmIqJIn\/vPVq1dnW75gcefVx92\/f39f8fL555\/vUPZ4G07XiYAIpC+BpBBuVnAgwljEWJ8I76OPPmqdOnVyfzZiu2HDBm8lrOnZs2f78r7jjjvOfdNMWu62224ZrUh+LOcjv5BwkTDBiTsl1prGumZy8PDDD\/dLr7zyShdUEpOYa9eu9ZUpp556apbl47pEfNzTpk1z1w\/+9QYNGqTvG6iai4AI5JlAUgj3L7\/84pN6WMG77LKLT\/LF+ooR5pdeesndKPXr13ffdlhVgi\/78ssv9\/tC+uKLL3yVBwnrmY04WOnt2rXzexHiSy65xA455BBfccLyv5C2bNliY8eOdUsei7tnz57+EZ1BduVLxMdNmZgoZRSAz11JBERABOIlkBTCHW9h83sdFjjuFnzcTAr+24mRA+LNOu7bb79d67j\/7QbR80UgRQiknXBjYeOzxlWRDKs58KWztlw7J1PkG6NiikASEEgr4YY3bg1Wj+C\/jme9dRK0kYogAiIgAjsQSDvhVvuLgAiIQKoTkHCneguq\/CIgAmlHIPLCzdZ5dmZefPHFvlNSSQREQARSnUCkhZsJP3ZOkt566y2PfaIkAiIgAqlOINLCzQoSNui8\/PLLviszdq13qjecyi8CIpC+BCIt3OyeRLDDZpz0bWbVXAREIEoEIincbJkn9gmuEbaVs31eSQREQASiQiCSws32dGKLcHhCCDAVlQZTPURABEQgksJNrBKi\/T333HP24IMPelwSJREQARGICoFICndoHOKAcCgCsbaVREAERCAqBCIt3ASUIgLgk08+GZX2Uj1EQAREwPekcLgMJ3\/ttD163t\/r1q2z47efnzhze+hTDitI5cRyQELChuWAOkU9lVtTZRcBEQgEIi3cnAPJYQwkbcDRSy8CIhAVApEWbhqJo9A4oaZjx44Zp9xEpfFUDxEQgfQkEHnhTs9mVa1FQASiTEDCHeXWVd1EQAQiSUDCncdm5RAGzrnkEAZOgA+HMXBuJudglihRIiPHn3\/+2X777Tf\/P+dXJsOJO3msbp4up65w4BzNrVu3en2pd2zKC788Pfz\/X\/z777\/btm3b\/H\/Eptl9993\/kQ2HaVDGYsWKJfKIIrknsNxjjz38vfq3E8f+8d7zfscezB3KBVO+CzDnHYC7FgMUXqtJuPPA9pNPPrFrr73WDxvmC\/XVV19ZmTJlDIGuU6eOH0j84osvZrywl112mT311FN+zc0335xx8HAeHplSl7JensOVOdj5\/PPPt6uuuspuuummjDrklV8ilQ8T0ggHB0OPGTNmh5OO5s6da40bN7Y+ffpYjx49EnlEkdzDcXbdu3f3nb\/VqlXL8ZkEUuOdPOecc\/7RURZUYb\/\/\/nsvByu1HnrooR2yRdRpbzrq0047zd+Bd99916pUqVJQj1c+mQhIuPPwSnDy\/OLFi32lCtY2h\/wGi\/L555+30qVLG4GtghXOMsT333\/fBg8ebL169bL+\/fvn4WmpdynnZ7Zt29YWLlzoMWKuv\/567+hCyiu\/RAhwADOdJ8KH0LCaKPaIOiz+YcOGWYMGDeyoo45K5BFFcg+7fi+88EJbsGCBHXnkkTk+E8YPP\/ywIaCFlbZs2WJ7772370LOKmhbq1atXLjbt29v\/BujZr\/99ius4qR9vhLuOF4BLOpvv\/3WatasaWeccYaNHj064y4sC3723XdfXxTP55kTw0ssbk5yD4mhJV9OXvCmTZu60JHIG2ueMzGxtvisSZMm\/tnXX39tHAzB7wMPPNBat25t5cqVs7Fjx\/qwnzXrxGiZM2eOD1XbtGnj93322Wc2YcIEH+YirBUrVsyx1rHuhnBhdm6H2IzgcOWVV9rUqVP9OcRC5wCLRPgx3EaMGm3fUwCjzz\/\/3IUMxggUh2PQKeIWqVevnnOPdSmceeaZ7qYKws09iDnhEBCUY445xu8j8bdRo0b5WaQM72FZo0YN55sIv3nz5tnEiRNdxCpVquTPJVF+RiW0L23BaicCoTECCGny5Mk2c+ZMW7Rokb355ps2a9Ysq169+j\/qy2hi8+bN9sgjj\/gIh+sxJHBjxB4aMmXKFH+P2IjG83ER5ZbY2ME9dHjNmze3unXr2nfffWf777+\/XX311Va\/fn1bunRpRnuQ3xVXXGElS5a0c8891w0bRgCMNEm864h97dq1jd3MSvknIOGOg2FwecReevrpp\/tSw379+tltt93mH\/FScnp8rIXHC4+4xgo3vsKzzz7bhYfE9UOGDHHXAkKF8P7555\/2v\/\/9zy16vkhHH320denSxXeBcj0iwxfhnXfe8S8LoklCFPiiILQIHl8wnoXPmXTooYe6+Oc0jI1d\/x7qTH0RlZwOWKa8CCmdDmXAAuPLnAg\/Oko2gFEfyo7wIqYzZszwulMPhu\/8m0Q79O3b1\/\/NtYx8SIgfZeZviDt1J+EmGTBggP87BCWLbV\/a6+677\/bPsCDzwm\/o0KHWtWtXfz\/gRgdBZ4BQn3jiicaogAiW\/NDZ8Aw6Zzq9xx57LKMYiDDvQoUKFbyzja3vXXfd5R0L1jgdbWwKexaoH66qUH92Eo8fPz5Lv3+4H8Ohc+fO\/v7QloxKEOFff\/3Vy0B78k7T1rTHBx984KPPMK9Ah8S\/Y+d\/qDfvNUYIHYkO6d6huRL6j4Q7Dmy4PBBPLMAjjjjCv4z4s7FssAyxKBFPXvYgFCHbrIQ7CCPW0rHHHmsdOnTwL\/H8+fPdV\/jaa69lWN5YVgzt+TLhguALhNWE++Xxxx\/3oTQigzAdfvjh9sQTT7gVduONN7olRrAt7sO6X716tVvhsSKXVfWDtRf7GZZjixYtEvrSJcIPbggF7idcH4ggIxZGD1igtAfCjqBecMEFLuRBFLISbupCZ7Jp0yZvu9iONHQ4WOhY6nQ8WMx0mnQAWPtZ8Yu11MkfgaeDDe2LICOWoROhXfFD83csb758DRs29PcIixURpp3vuOMOb3\/ca\/jkcflkVV\/eNep0zTXXOCPcePCis4PfYYcd5mKJiw5f\/7333uuWNJ1Hdil0HgMHDjRcW7xviO6PP\/5oBx98sFvRL7zwwg7tgYDnlCjj008\/bbVq1fL6KuWfgIQ7Dwz5IjP8RxgzJ8Qc6++NN97Y4SOsD152voTBIrzlllvsnnvucUsM0UD4CYb1yiuveAfAZBOWMr\/50mLBMfzkCzNy5EgjLAH3EHMclwEijasFq47P8bfz5UTEGQ0gVlhtWPH8G58oE1\/ZJYQbccks3HQi+bGW8sIP4SEOA50aHRfCA3vcELiJ7rvvPh9t0OHhIoJl7IiASTJS5vaANx1fbHuEeuJqQPwZCcVOOiNaWfHLbKkzGqKd4M7oiNEX4of7Cm4INx0Dri4Yk+hE8LfTocIXC5a6jBs3ztq1a+edeVb1xdVDfiRGNPChEwvuok8\/\/dQ7EcQbtxmc+JzJ8iDcvK\/wwIoOaePGjT4awWrn7\/Cnk+M6Ro6Z24PRQ24++Dx8xXRpnAQk3HGCCkJy0UUX+csfEgKKVRL8oVi5fFEYMvKFZ8iPW4KJultvvdU\/Q4ivu+46e+CBB9waQ0yx9hBfhvO4OLCkly9f7u4QhIu\/40fnC84X6c477zQmA\/nidOvWzb+MiAOWGv5a8sW3ipWFwDMERwDIk\/IgGNkl6ocYxCZ8nVi9iQp3XvnBFZ8q4oUgYsViDdKhIVj4WhErLExEkiE95WMElLk9cDngtsmqPcJyOzpjBIs88OGSGEFhbdKGWfFDzLAmQ6JDQOyYc8DHH8rHiAA3Gh0z4rxs2TL3Y+P2YRRDe7Zs2dKfi6XLu4SrhU6E9qJM2dWX9rj88su9s0DksYp5x+jc+XLzHrCChrrQWYQRBWVnopERDO4TBJ6ET50OFlHnPsqMlU5nQnz7zO2BKyc3i3vt2rVeDixu2lFHCMYpOjlcJuGOk2GYVWc5FNZQSFn5b5mI4UuBmPDFCIkvGV9GJjkZQvNFw0LiB\/HBFYP1tWLFChdbhr5cywk+fGGwbFatWpXxxULsGUrzxWWSC4ubLzBfRPLBakLIKDN+UL4wdCi4ARhCZ5fIN\/gswzXci8glmvLCj1EDHRQCEngHvzHCDRfcEvAMa8YRWNwJcIRBbAquocztgcjSQWKJYp2SmJzEOsVypsPABUFnnRd+CDMTeuQb\/MsINwJIueEfUuXKlb0jolOl42YERaJstENO9WVkQP7wIqQDif\/jQuF9CCM7\/k67I7xLlizxzo6y4f7CaGDkEt4HXDXUm\/YmL1xQvEfcg986c3swAkKQc0q46LiGd4B3m+cq5Y+AhDtOfgggw3O+\/FhJIeG\/xUoJVgSWDC8367pZ74rlw5cGNwW+V75gQGdISgeAQPMiM7THXYLFzOQlE5VYeog2VhL5ITIICcN4hIqhOILOF4tVA3zRGCJjvZEP5cCSwrrDZcDzGWIjEJk3xsSJIeHL8sqPDosJuMAbgWCEgS+YVSGwo+PDEqTjQxTwFdNpsV48tj0QMYQpc3vQ0THyYdKPUQr8wkQfnBBZUiL8aBva5bjjjnPujDhoKyxuJvvo2Gkz2ggXBGn9+vUuwowO6HgRet6X7OqL2yJMVDPSgxEJlxLvGIlOAssevz2rVyhPGDVRPtw25BM2jiGyWPiM+nBV8S7xXmZuv8ztkduLQYfACIR8GTkq5Y+AhDt\/\/HS3CMRNAAFnpPXNN9+4uyQdEiMGVucw0mReAYNEKf8EJNz5Z6gcRCAuAgg3FjZWLRZ51EMgAAXXDKM\/Ro2MIpQKhoCEu2A4KhcRiIsAk5lM\/OG6SHSiN64H6aJIE5BwR7p5VTkREIEoEpBwR7FVVScREIFIE5Bw57F5WTWSSutQWanA8i5WrbAmmKVuxNAozGF6WDqX+RnEMGHFB0vtCFhUECkv7UG8FlYAsYKCde8hRggrJthhyvI71nyzxDOsfPg3+BUEF+URbQIS7jjbF9FjUwTL0cJmmzhv\/VcvY90sjcwEEdu2ESnW7RaWcLPRiA0wsTE3AgC2cvN3dhyybT0\/KZH2oMNgAwgpNlZJ2F4fNtOwzJDliKSi5pcfJro3fQhIuONoazYrsEmCTSEPPvigr3sNKwIQKTYnBCHEauN6\/oYQ8Dtsa2cDQ2ziWnYIhihqcRQlz5ewFpx1wgRXQrQoL2udQ2D8nMoXdiFmVT52IZKYZCNhZROtLmyzZs01TKgzk3Gw4BrqzGaTcIhBCEbFKAYBzepZ\/J0NKSGAf1btEfs5dWNtNptpYjcNsalow4YN\/4hVEq6nc0PQY3cDZscvtiEoT1YHNuS5sXSDCMRJQMKdCyi+1CxlCnEhwuVsv8YCZ7jNxhw2VJDYsMBmG3ZPEkCKjTLshmOjDTFFiFeCaBF0h3+zE5L86RDCtuOsihSG8\/wOCbFjXWxOcY\/pGIg8yDI0NvBQNjaWIGzs7mNHX2z52GWI4N5\/\/\/3uPmC7MpHr2BJO3BQ2bCBubOxAkLFi2dVIfdn4EZsQderN8je27pMvmzpCdMKwPA4xx4WDJc5ohuBZdCjsDOzdu7f\/xrXCemA2crD9P3N7hJ2ORKKDCXXl+YQy5T7yI4XYMZnD7PIZm3DYeRkr3NnxC\/VkUwkhB4jExwYgJREoCgIS7jiEG5FFbIhBQTApdvMRV4Jwqeyww0pkgwFR5NjCjPBglSM2fPGJW4Glx044drFhHXIfOzDZEUk8EcSRXZjZHVOF1Un0P36HhAXKrj4iFuY1sdOQHXGZy4cPGnEm2BV+ceKaIMyIPAGQ2GlIR8BvhJFr2WLO1n4i3rHzj78T5ZDyIZDsBGU7P3kjzrgi2L6PcBMDhS3a7IAsX768xw0nmBbPZ5s0oo8QY+GzZZvOjvZAuGPbI+x05F7ywPLHn03ALa6jPKSsojUGdsRo4VnxxN+IFW6CUyHcofPOa1voehHIKwEJd5zEEB3EOohK7JedAEDshsMVwRcYAceqxkWBdcg2dSL9IYIIGxNeROfDuuMaBAPrFX9qVuf58Sw+RySxmEPiGbgdYs+5jLM6LmAIZebyEdCKzgBhZHsyz8BiJUAWz8f6ZfIOYaTjQXhjgwzxb0YOBCfKnNimzsRoEEaEm44QIYcZnQkvJNY9ljVcmViljDyH7eJhe3h27YFbis0tfA5zRgL41cmvMIQ7Xt66TgQKkoCEO06aIYQnEfcIOhQSPlBcCOGsRSxHYmWHE0MIAEWMDKw\/PmOCkDjOuAAQwCC8DOVDAPusikR+WPNZWdyJTPRlVz46Fixr4lgg3CTiOVNewqcSX4OIhAg7oopQMtlJGXDjMILgmnBgQWxdgnCTD51GsLjp9IgZzi47rOwQxhYXCiKMv5xOkbxpB+YXsmoP8qNDxIfPKAdrnVEAI4JYNw4dHbG9GQ3kVL54Xg2CNGHRMzoJ8UHiuU\/XiEB+mdIPoAAACFFJREFUCEi446SHz5SVBljdBGliaE5QfBL+bobkTL7hL+a6sFIBEcNS5HOEhNCaBJ7CN45vm7wQLgScIXd2CVEk5GdmHzd+9mCFxlmVDMuTgwoyl4\/Ie7h9qBMWNdHhcI0QY4N41\/jAGTEweuD\/CCvL\/KgPowJcPiFiIZ0RJ7BQbyxfBJ9gV3RYXI\/\/mVjVCDmxO\/jBYkdo8VkjvgTgwvWC1cxzCc7FhGfm9gjHl8Ee1wyrW0L5GNEg3NQDK5xwusw\/UCeeQ+Ka2PKRD51ubks\/Q2Q+5jYYjSXDiex5eQ90bWoSkHDH2W5Yf1hzTGCxEgIhCHG5iciHpRiOMyPLcAJJsJCZnCO+cRB7fL64VRBtBBRXBK6Toko5lY\/OAYHG8mXFBAKO6HGYAKLKsj7EGB85PmEmXYPA4afHksX1wYoOxBbXCx0UqzxYfcHEKO4P3CmIMy4YJhVxFXHwAJOiRNJDfLG04Q0\/GDF5ySRn5vYIk5NMFtJOWMKwRuDxizNKwq+OZU+Hgm+fjpaOh0RHEls+OhDcLblFUeQ5dBrUFeFPxG1VVG2u50SHgIQ7j22JNYefmQlGhuyICu4Tjo8KZ\/0F4cYdwCQbrhOsxMzWGALJTzh4IY9FydflwcedU\/mYEKSumZfohXjd1D8rn3yoFwKLSLJiJPbAAQqOwFHvELsDPjwLvuFAAq6j40BgsboR1swptj3CQbixebKKhPtor3BtbB5hOWNY3hg+o61yiydC3iGMLtZ57GHQ+Woc3SwCuRCQcOfjFcF6Y5IOYWFjDrGzQwoHB7D2GzdJsqVkL1+y8cqqPCzhxIXDiIQRSm7WeSrUSWVMDQIS7ny0E0v8cCEwMceQP3Y3YnYHB+TjcQV6a7KXr0ArW0iZYdkzSghrxAvpMcpWBP5BQMKtl0IEREAEUoyAhDvFGkzFFQEREIFICjfreRnGstJBfke95CIgAlEjEEnhxn\/LOmvEmzW74dDXqDWe6iMCIpCeBCIp3OzmY4UHPyzzYmOHorel5wuuWotAFAlEUrhDQ7Fzjt15bN0uzNCpUXwxVCcREIHkJRBp4WZDDFHh2OZMZDklERABEYgCgUgLN8GcTjnlFN\/qzBb1sN08Cg2nOoiACKQvgUgLN1uSmZjE8o6NLZK+za2ai4AIRIFApIWb2NFEnyPMJ8GLQiyLKDSc6iACIpC+BCIt3FjaBO7Hxy3RTt+XXDUXgagRiLRwh1UlxHvmGDElERABEYgCgUgKN+u4OfeRAFCs416+fLnWcUfhbVUdREAEnEAkhTvsnES0Oa2cmNNKIiACIhAVApEUbmKVINrEKsnu8N2oNKDqIQIikH4EIinc6deMqrEIiEA6EZBwp1Nrq64iIAKRIJA0ws1k4qxZs\/woqKzOFowEbVVCBERABAqAQNII9\/Tp0\/0k8J49e1r\/\/v0LoGrKQgREQASiSSBphBu8I0eOtI4dO9rMmTOtfv36GcSJqz1ixAirXbu2HX\/88dFsCdVKBERABOIkkFTCzWqQo446yg9BGD58eEYVPvzwQ2vUqJE1bdrUpkyZssOhvHHWU5eJgAiIQGQIJJVwQ\/XGG2+0t99+22bPnm0lSpRw0FjcTz\/9tNWqVcsaNmwYGfiqiAiIgAgkQiDphLtfv37uMlm8eLHWYCfSorpHBEQg8gSSTriZnHz99ddtzpw5GRb32rVrrVmzZm5x40JhY42SCIiACKQrgaQTbvzbTEwSZySk1atXu2hv2bLFVqxYYZUqVUrX9lK9RUAERCC5YpW88MIL1q5dO\/dvc2pNbOrcubONGTPGz4\/cd9991XQiIAIikLYEksbiZuXImWeeadddd53h5w5p6dKldvfdd\/tqkl69etlVV12Vto2liouACIgABJJGuIcOHerhVx988MEdWmbJkiU2evRoF\/UGDRqo1URABEQg7QkkjXCnfUsIgAiIgAjESUDCHScoXSYCIiACyUJAwp0sLaFyiIAIiECcBBISbo4Ge\/TRR6148eK+CmSvvfaK83G6TAREQAREIL8EEhJujgarV6+eLVy40M4\/\/3xfpqdQrPltCt0vAiIgAvERSEi4CQZF\/JCBAwfafffdZ+xsLFOmTHxP1FUiIAIiIAL5IpCQcIcnvvfee25xr1q1ykqVKpWvguhmERABERCB+AjkS7jff\/99O+WUU+zll1+2Jk2aKChUfMx1lQiIgAjki0C+hHvbtm3WsmVLD8PaqVMne\/LJJ\/NVGN0sAiIgAiKQO4F8CfcXX3xhp556qh9+0KFDB2vVqlXuT9QVIiACIiAC+SKQL+Em\/Grbtm3dx63JyXy1g24WAREQgbgJ5Eu4p02bZuedd54tW7ZMwh03cl0oAiIgAvkjkJBwsxxw69atds8999j9999va9assbJly+avJLpbBERABEQgLgIJCTcbcDjs4LPPPnOL+9lnn9UGnLhw6yIREAERyD+BhISbLe+PPPKIb3lv3769lS5dOv8lUQ4iIAIiIAJxEUhIuOPKWReJgAiIgAgUCgEJd6FgVaYiIAIiUHgEJNyFx1Y5i4AIiEChEJBwFwpWZSoCIiAChUdAwl14bJWzCIiACBQKAQl3oWBVpiIgAiJQeAQk3IXHVjmLgAiIQKEQkHAXClZlKgIiIAKFRyBb4Z47b57tueeehfdk5SwCIiACIpAQgX8IN8eQHVO3rr09ZYrtvffeCWWqm0RABERABAqPQJ06dWzWrFlWvnx522l78Ki\/ORyhcePGtmXLFiu2006F92TlLAIiIAIikBABwoxM234CGUdGunCTC+LNYcD\/\/78JZaybREAEREAECocAbuxwzm+GcBfOo5SrCIiACIhAQRP4v7raKqGf5wB+AAAAAElFTkSuQmCC\" alt=\"\" \/><\/p>\n<p>After the affected partition is updated, a post-install script is executed that swaps the roles of the active and inactive partitions. In the case of UBI volumes, this can be done simply by renaming them:<\/p>\n<p><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAyCAYAAAAtDQLUAAAYVklEQVR4Xu3dBXQkNxIGYIWZmbNhZmbOhpmZmZmZmZmZmZmZGTfMzHw3n3Ll15l4Zr327jmxpffy4p3pbkl\/Vf1VpVZp+vtPraXSCgIFgYJAN0SgvyDAX3\/9Nf3www+p8GE31IIy5YJAN0Ggv\/76S4MPPngaaKCB8owzAf7yyy+p58ILp15vvZX6r11QWkGgIFAQ6IoI\/FFLeHuMO266+ZZb0sADD\/wnAX7xxRdp8skmSxdeeGEae5xxuuK8y5wKAgWBgkB65+2306qrrppeePHFNPzww\/9JgF9++WWaYfrp03333ZdGH2OMAlNBoCBQEOiSCHzw\/vtpzjnnTI8\/8UQabrjh\/kqAt99+e+ox3nhdcuJlUgWBgkBBoNebb6YFFligEGBRhYJAQaD7IVAIsPvJvMy4IFAQ+B8ChQCLKhQECgLdFoFCgN1W9GXiBYGCQCHAogMFgYJAt0WgEGC3FX2ZeEGgIFAIsOhAQaAg0G0R6CcEeMUVV6RTTjklHXHEEWnKKadsFdzddtstvfTSS+ncc89NQw45ZJcTwE477ZT++OOPdNhhh\/1lbr\/\/\/ntaf\/3101hjjZX23XffvjLvs88+O1177bXpggsuSIMNNljDZ+61117phRdeSK5vDfNvv\/02rbnmmmmyWhXQfvvtl\/rvv\/++Mr6++RBVSt99910ae+yx++Zj++qz3nvvvTTIIIOkkUYaqa8+t289TKnr+7UNwKOMMkqug\/0ntm+++SaRNTn3Sz3sJwR40EEHpV133TXdddddaZ555mkV3z333DM999xzmQCHGmqof6IM2j2md999NwvuyCOPTNtss83fnjP66KOnSSaZJN15553t7iNu\/O2339KEE06Ypq9V7lx22WVJcXejtuCCC+Y+VfoMPfTQf7vMwRfLLrtsmnTSSdP+++\/fonifffZZOuqoo3Jl0EQTTZS22267fM3\/u3EeM844Y5pqqqkyiUfz+auvvpodwFNPPZX22GOPNMsss\/y\/h5f7e+yxx9LSSy+dHZ8Sq2iffPJJOuuss9INN9yQiWfTTTdN8847b6eM8eCDD07HHntsevzxxxNdjPb888+nk08+OT377LNp2mmnTdtvv3121J3R6KoDCm688caW7unnm7WNy5dcckl64IEH0hZbbJF69uzZoeG1mwB54ZdffjmNOeaYadRRR80ehZAp5zHHHJNEQI888kgacMAB0xBDDJHGH3\/8PFDG98Ybb6RBBx00e0nGG61Xr16JQffo0SM988wz2YNWPf3nn3+eXDPCCCPkazSe4rXXXsv9vvPOOzk6mHrqqVue6d+vv\/56y3Pd+\/3336e3agc9DDvssEnUM\/HEE2ehe2YQw88\/\/5wJWkQ1+eST9xHIe++9d8ZAH8MMM0zLvaIv41lhhRXSdNNNl66++ur8HQM2X1iZh2ZOMZfwgO6nBFNMMUXLM2+++ea0yCKLZMObYYYZ0kcffZREIAhWlPfKK6\/ka81xySWXzDJ78MEH89jGrRWBjzjiiPl7pP3pp59mucCAXLWffvopK9k999yTZfXVV1\/l5yLDMZqUSZILOcsA3q7VW9bLRRRiPpr5xGkc\/h1y1o95aPTL9ebKqR5yyCH5HrK+7rrr8tyicQTLL798b2VmznQBqcNfKRRMosHD2Dlo+FUbPTTO0UYbrQUH2JLpLrvskjj4JZZYIteXjlerpkI4CIU+mwucH3300b\/of\/2Aydqc2QEb8nwyqOoUjNkUWRhLtdFfehy68OOPP+ZnyL5uuummPFb30XtzX2qppdK9996bdQLRzDfffOnWW29NAwwwQEMsnRjlmWyE\/fsPeYbOyoIQK3m7ppqh0BGOCxah0+6n+4svvnjG6swzz8xOfZpppsl8wmmYk3bcccelzTffvLdybnZBuwnw\/vvvzzV0Bx54YBa4iE\/EYwLnn39+2nHHHdNMM82Uo0CTlhKvscYa+Tv\/14DOEIN0pIYMmhJieIInpNlmmy1dc801ebKRXkjRdthhh\/x8glpooYWysLR99tknKyAymHXWWXMfGkU89dRT8\/MRkNMfEODss8+eI6N11103nXHGGTk1X3311dOTTz6Z71tvvfWyArclXaBkjIXyn3DCCfl+hrTxxhunK6+8skUWK6+8crrooouygUk7KZ620korpXPOOSeddtpp2cPx0qK7jz\/+OI\/bWI4\/\/viW5zD8Dz\/8MBsTRUEMO++8c34e+Zgbgn344Ycz8SJKRilSoviXX355xmLDDTfMfWpKg2677bb8N\/yXWWaZ\/B35iGiPPvrodOKJJ6ZNNtmkoW4po1xsscXSwrVThRCUJgXnHBj1Ouusk8eizT\/\/\/HnOjBF56QNJaPrQlzmZW7UxMgTNiC6++OIs3w022CBdeumlOZLtXUNIMhAkarwcontFH6JJ39MhTdQbyxmcu4iYs4YlZ0dfGHGQevSNsEUxdEBKRzeCsOl0lbjrx+v5Il5Ejyw4M7pw\/fXXp5FHHjltu+22WS8RJVuBE+KHHT25pXbCicYJkTO8qgFH9BeyFSggWkS69tprZ5not1mGxnHQMU4Jhshps802yzoqICHnyHQ4aPYPA7YqCkbgGr2HOZvZaqut\/iY6+u+IPs8lr7XWWivLwDM60tpNgKIIExdOU4jdd989G8YHH3yQlXGjjTbKrA2MQw89NBMNZuetGCdw77777iS9CgI0cQL13FVWWSUTHmCkDuPUTqXhqfUj\/REGIzZemFLwir5zgg1BUtyvv\/46SccpNEESKsOQ3hEC5eSdNKDymBSYJ\/Q30kZArj\/vvPOykveuUWopkPvDq8W8EDZl3HrrrbMno5TmiWTMSUTimpNOOimnT1Il15qD\/hHl008\/3RLhIs8JJpggk5O5aYyU8xGhzTHHHGmuuebKBMihrLbaahkfRjL33HNngl1uueXyOJA94mf0nul+zTqlZ1Ju8oW7yJ2zCIJvDROyNUcGxSFRbsbCQeqfNz\/88MOz\/DirLbfcMkcmSIyRGgcDNm9rylJuz0REZEU3RA5kJXLWzNGcXd8WAtQvR8oBmI9nIiREAgP9wIhMETNDFvGITsiC0yUbevhi7TQRRCzFhROHAntOiz5Xm6DBXN3TbCkBASIW80IkMi39sS+kSHb6MWcYsyWRGx0SObmW06Z\/dJ2ckS+9Jl92iUgFGJFRxTh9xmY5ysC3NTnTcyQtwoMlGdEVgQo9pG\/0B\/mSnTEbm2jQczlENobY6JNxyjbcK1tj0yJQcokABM5wEwF2GgGGsgER4EjC3yZO2Q0s1gAJBzjShlhTMEHAIKkgQAoIBEIkEBGSVIywRXLWdRAXTyiieeihhzIoFFV04Jn+o8CUUiiPbCkvYRK+aIPiU05pAIKmyMjKmBE7w5V+iaAoFaUmKBFM75roSRQIn2gIGml4tuYlg3lcddVVLekTkjZGUSLnYS0GCVIOAmd00k+RdzTzoASIMDAMAtQ\/JTYeUZL7EA\/PK2JETDCluE\/UTsKIBgceH7YaIyI\/ykohkZbIA47Vdbh6XCIyR6DW5BiKZQZjorywljFoDBhmdGjRRRfNBuT5yEY0wgmK3BG5iEtE2lrfd9xxR55vWwkQCSEj80eCXiSZO5wRaETRdNTczcV3MEZODFN0J9IlS47P2MkS2TD2+qYPpE12cG3W9DHzzDPnoIFNiPRErAiVrYlWfSfyp+MrrrhigoHoD8axfkafItuQdbGz008\/PQcJot76FlE+MuMomzVytWwTOmuccBP5i\/jIltPUyJEeGrfPyVAkp3EUdE90q3GEnFBkddUxcKTk1akEiIAYEG\/Hw0ivDFYUI8xFLKIpxi7yAEK8eTIZUSMhVk+cDgIURVbXM3heBkFxKBsyQRb6RKqIkVfjDUVMgJVyiB4oA8VFlEgSuTFIz6MgPKvnAtu9iIPQEa+UDxEyTuk80Ju18Ez6rS6AUwQkjlREoiJZCsBIeGDkJdIQxQrzrdkgX\/O2\/gY7Cmb8xqshtVjXowjRkApPK1L0HJ6W00FIjJrnh41mXVbqRJbRKCFj54U1uErfETByNkfXIEL9NGpBgPXrNBwK2YqmRfYaHYEDQhDxMFZLBGRrDuRi7u415sCkvm\/OQjQifUeEvWuWbRB86Glcb57IS2RON0TGxsg5080DDjggL0kYM2ImG7KiW5EBtJYxiIYsF5G1CLd3DQHSOzYiEqs2eoBI2BQSkw5yTDBANKLFcJZkZ7lBukmfjRf2UlTXReNgBDPmb6ycVe9aEKB5cSbR6DG9kwVa1tLIlvMVwbKl0CEOBgGybdzBKZM7G4yloeo4OHwEaQ4i8Y60dqfAIj2GbKHSRHk+3lnkZWBIkaKKNHhkZMWQkSQACEeqiih4TCkcQ2NwJlh9+cHriqKQnusphP4JiffmEa3DSKMQr3U80QOF8DmBA573FQUhQARkLDwQJUcm+rdOg0iNEXlSLn0gFou7zRpSJ0Dzqi72GlOszzA2BmUcvLZISMqLECgjhaKECJoSIXd4wBGp8eAaQxMJub76kibWlyib6IC3jDU984SBNVjGICIN3Bg34zFvDsaz4WDpgbJKxxkEWTJMmNSnTVVsIhoTLVWNnZHRC\/oiYkFqyENahHSkv9aR9M9h0CekjdiQvrHAA36w4IDhyZkiA+QnuoebKAtujRqcGWF1WcG1ophwWiJSzkDqTnaWceirqMdYkDVjhSUnCxf3+swY\/Ef\/4MvBkzFHZC4CCE62UYOz7Mb\/vWiovuGn+wILfSFnhKsvY+WYOB7EJ3JH5GQQa5ixTmwe1l3poOcgTjppXHSd47em6t+NGv1CcpwUEq42Oi0bpHfmIJNCkiJM93BwloDosCUYGVm81eVMzIUjFJWTM9vkJEWu9JxOmLPMjNNuT2s3AeqM0gGTkSAUpEaZKSQyMClpAkEZuGjDRCxoU0wkYQ2IN0MQiAl5WtCvvp7XFw8Yi\/siJcJCSj6XevDKyAwYPCNjFukgVs8DLCEwZMrA+KxD+psiMGYpEYF6Y8k4YuEYgVijaPbW0z2eYS5wqTbRAnK1psWwGT3vhqiRlH4RJ3IQ+VkH5Vw0qTBcvAyo7hv04gdBxlpd9CfC5Ah4ceOOt3HmYq2QITImOLiOMrqGIkrjkAoHw+m4HlkybkYFa8ZgOYO8mzX3wNjSQb2RIzCyZJicpjF4PgM3H+s+1gilcebshVI0BuqZCNwcPEuqRr6ibLoBA\/iK5sNhtDZW69fkiozjbXNch8DJBTkiO3OW1mkcFjIRDerXftfY5SB6oYMIXWTDgGUk9JD8yZgjhzGCkIo2I0AkRm8Re5UAvV2lJwicPsHI32yRTRkDW4IJ3eEMwinL0pAxW6VDSNwam3mSu+AB+WnmUc1m6sdKl+iZPuBVr\/c+83x9u4Yue\/nIzuiATEH0R+bVNXbz9b11Umu95Czo4YThITBhc3iEo2zvvtAOEaDJAiqA5dVEDyEo3zEun0UzeKBXGy9FUD73vQk32s\/mmXG9Z1AoSud+n3uGz+rHUR0jAbjH\/12PpPXnb58FabQ2\/kbKypCkNtYng7zqr61iJcqp4gI7zdyb3ee7WH4QrXEErbV6ucRz6\/GKe+Hhu2qDRXULRPWZDa32f18wUHMMuTQaY1WW1Wv01UgPQofIzDXRV\/V+Msy\/8dBkX2Q8hxwabbZtNOe4t9HGc3M3rphfa\/g2mnt1HrHlo6or1e\/DZlobB50y\/0b3BsmFnF1f\/yNo9TpQL8fAvtlc9EOPPKs13W6Efzy7Ogd4VMcY3zWTczNd7TAB9s4Qusv3UkuhubSxXzeRNe8tdWnL1px+PZ7y\/ILAvxWBQoD\/VsmVcRcECgIdRqAQYIchLA8oCBQE\/q0IFAL8t0qujLsgUBDoMAL\/WAK00Nnehc0+RaW+L28wvY20sGtbRrNypT7tq\/562wQsZHvb2qzmsj39WETulydptGdM5Z6CwD8JgX8cAdr2YT+QHe\/Vou9+AZrX87Z6eJtqU2s0r+Rtq9GqdbH9Ygw2YHud7zV\/o7d1fdqvbUi28dh+YotQaQWBgkDrCPQVAqxGGv62RaD+lbctFr6rnvpRvU8U5j97rURfNrXmHyquvcav3\/9UjWraGuW01peoy4ZSO+Lt8Yu+7N+yH8omSxtRYyd7MyUydn1EFNdoXPWf2+CtX\/sW23pPdRz19\/i3vXL2n6lSsJm7HsNiDAWBgsCfCHSIAG3FECnZIGszo6oCu7PV1opsbKLUVC3Y7GqjrV3rNmzaAGoTsI2kojBRi79tYkWgysMYrs2yStNsfBWZISOVD0qYbBqOzct2lat+sClUJYaNv3GslhpTG1uRnDEpxTJOO8vtzxJp6st3NipHU+FivHGqRjOlsSHUjndF9Xap22xqjLGJFNHCylYZGz5t5kXwxoE07YxXZaF\/m2yNSeWBDaxwNhflRipqNJvObRJW4mQDq75sErUh1uZSxzzZIsMR2YhePUGmKH9BoCDQQQJUZWH3PCNTScHgERBCsj9NSZvyM6mlqA7BKTGSboq8kKRd6\/a0IQfrbWozGbZnOxWC8SIAdX+e7X4EgBCQl2ciRX1Zq1OmhHiRIVJVLqWaQCUGcrJzX2SkYsQYbSj2TLvtbSRF0tWyH9UEyLYtBBg1kWBF2E6ZsSPfrvo4x8yclUJJ7+3EV66kogNhGafKBlUNKgvsJ0RsSrCUYxmrecCLc3CqjDFzAsZnQ7B+lERxEtYxkSvHBLuOnppRDKYg0BURaHcEKHpjfIgPcai\/ZHDq9kQuDFQqpqbVqSyiPvWCUcOqlEq0JPJxbaSOKhsQAsOPFpUP1rN87xADhq4ERgmZ6Eu9rUhHCY3aS0XSymOUeLkeoWrW2+I4eJUbIiMk1dpO+j4hQIRnHnHOn7pHY0TEyu1EvIhN6RccEKEyHxiKWN2vnpHDUAepTK16tJPvpePK7ESOUlu4OC0kDkVVWgfTqMNt68GgXVGxy5wKAm1BoN0E6OHSTS8tEIxUzAEIDNQaHeOVcjJmdcFOERHhaE54EAV52WHtDImJhDSRmhpOBBhrfQ4tEEU6GUNaiqx8p65QPaf1RamjeksRlBpUBGG9UY2p9Ll60m8A4yUB0oiawnrAEKgoLI7oaQZoEKA0VyRbbaJWaXHUqyJg5XJSWnOShqs51RAjUlQ3yXnESc+iSXP3bASIREW6SJrDcUILMucILDUouG9WKtcW5SjXFAS6OgLtJkBvLR1ggOhEUMhEymqNC\/E4aIAxMnYpZhR9O6hAxOMFgyJ0a1fO8IvTfuMkWkX71uqQgedLt51YIcVGms6WEyVJFS38S3fdKz0W9flb1OdUC2ktcvayQ9qNIDWnxTjBwpqbYnZkhLSlj9JNJIoEFZaL7qTXjVoQYGvnvCHFeLNsLCJWUXEcjS81V2Av\/XfAgwMjpL1IEgnCUTTnrbWoz\/qez60vmre1V04lToZxioa0VzRqrnGiS1dX5jK\/gkCfItBuAmS0orI4URlZWdiPWlhGav0MUTqNRXqsifxcE0XeCAE5etmgSR2lr9b4tEhfXSOV9IZWc18cYy8CZOhSYCTiWCUkKDp0ogRCif68GXXEj+Za91mrjLFZn5RWGnO1xTH7jQBGyFJUEVpsoYlrjRkhx2+AWO80NtGpuUqVoxm3uVpb9RwvOkSI7hHxIlgviaTvom\/NsgMHEkfUW54QScdJMaLj6nH8faok5fqCQFdFoN0ECBCG7UWEjbzeUsYP6fjO21znpYmg6n\/9zBlv1g7te4vF\/CrAXkwgWJGe7+PUWhEcQkUOzu+LH\/3xBtf6mZcgUkEnsvh3pL0iTiRn\/Q3RVrfVGIdn6suLCJGZlBIBx3W+8yKm2XFYolQvKMy30dE8zopznaO+4vik+PEgabg3v\/GjSIGHOYmqpcb1v+fA+SA7\/Ynyqs3zkDLnYOmh0Qk1XVWxy7wKAm1BoEME2FoH0lGpo4V5BGk9r3cHibZloOWagkBBoCDQtxHoJwQoFRW1WDtr9LvAfXsi5XkFgYJAQaBPEejrBNinAyjXFwQKAgWBzkKgEGBnIV\/6LQgUBDodgUKAnS6CMoCCQEGgsxAoBNhZyJd+CwIFgU5HoBBgp4ugDKAgUBDoLAQKAXYW8qXfgkBBoNMRaEqAKglGr5WGlVYQKAgUBLoiAh\/Uzh1Vbvt4rUghnz9aq3r4jyqIyWsVE46pGruuwqArglDmVBAoCHRPBN6pVYGpqX+hdjKTSrFMgGpPe9bqfHvVStb6b\/LD0t0TsjLrgkBBoKsg8EetzLVH7czMm2tnajrMJROgyanvVbda\/0vxXWXiZR4FgYJAQUC9v7MF4qc6WgiwQFMQKAgUBLobAv8F\/YHqasGgDUoAAAAASUVORK5CYII=\" alt=\"\" \/><\/p>\n<p>All the files mentioned above (sw-description, partition image, post-install script) are packed into an image update using the following lines:<\/p>\n<p><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY4AAABBCAYAAADGzUOpAAAgAElEQVR4Xu3dB5RkRfUG8AJzxoAZFUXFLCoqBoxgzpgDJlTMOeeEWREVA+aACQNiFrOomHNGzDmjIoo6vzr\/b\/+17fTr7umeZXe76pw5Ozvd772qW\/d+3723qu7b5j8rrfTWJdAl0CXQJdAlMKUEtglxHPePf5Rj\/vrXKS\/rX+sS6BLoEugSWBYJnOhEJyqnO93pNgy3Esc\/\/\/nPssc1r1mO\/tGPyrbbbLMssujj7BLoEugS6BKYQgLHrgQWz33uc8stb3nL+u1KHH\/84x\/Lzhe8YDn4jW8sO+644xS36V\/pEugS6BLoElgWCey7777lEpe4RHna0572\/8Txpz\/9qexyyUuWj33sY2WHc51rWWTRx9kl0CXQJdAlMIUEbne725VzrXDDU5\/61P8ljg984ANlp\/Off4rb9K90CXQJdAl0CSyLBG5961uX8573vOUpT3lKJ45lmfQ+zi6BLoEugXkk0IljHun1a7sEugS6BJZQAp04lnDS+5C7BLoEugTmkUAnjnmk16\/tEugS6BJYQgl04ljCSe9D7hLoEugSmEcCnTjmkV6\/tkugS6BLYAkl0IljCSe9D7lLoEugS2AeCWz1xPHFL36x\/OUvfykXXDkJ\/7nPfa7ssssu5ZznPOc8Mpvq2p\/85CflK1\/5SrnSla5Utttuu6muWeSXjj322PKJT3yinPvc5y4XuMAFFnLrr3\/96+U3v\/lNHdNJTnKShdxz6CY\/+MEPyje\/+c36lStf+cob5Pj973+\/HHXUUWX33XcvJz\/5yefqx9e+9rVy9NFHl21WSuuQ1cUudrGN7vfrX\/+6fOELXyiXucxlyvbbbz\/Xs9b7Yrqu6sNVrnKVopbQ5tC+973vle985zvlile8Yjn96U+\/OXRpsA8w4pe\/\/GU55SlPWa5+9atXvVhk+\/GPf1y++tWvlste9rLlzGc+86q3pvM\/\/\/nP6zyuZmef\/OQnyx\/+8IdyhjOcocp1kg1961vfKpe\/\/OXLZz7zmVV1fC3jm4s4jjzyyPK73\/2upKDuaU972goq\/vbZz362Ct2Pzwnp0pe+dPnb3\/5WPv7xj1cwc4CkbSbsy1\/+cv1+7nnRi160nlDUGDihnvSkJy2XutSlquAmNQNkUC960YvKNVfqb73pTW8qt7jFLSZdNvfnL3vZy8rd7na38qlPfapc4QpXmPt+s97gu9\/9biXLvffeu7zqVa+a6nKgo4TARS5ykXL729\/+f6652c1uVt7xjncU9z7f+c431T3X+qW3v\/3t5S53uUs1EO2II44ou+22W\/39fve7X3n+859f55UjME8zzte97nX1Fne84x3LK1\/5yo1u99rXvrbc4Q53KK94xSvKne50p3kete7X3vjGN6769sMf\/rCc+tSnHnye7xnbAx\/4wIU5Fqs98DGPeUx58pOfXKtQIPoTsv3qV78qz3zmM6s93vSmN92oK\/\/+97\/Lox\/96LLffvvVv5\/mNKepJLztttsutMsvfOELy73vfe9Cv83Xas2p7Ne\/\/vWFg9Ta2T9W6kPd4x732GDPF77whcs3vvGNwf6xE\/YCq41bqRB\/m7fNRRyXu9zlaofSzn72s5ef\/exn5X3ve1+5znWus1HfKA3lCaA98YlPLJSqbQcffHC5zW1us9Hf9t9\/\/3Lf+963DvYJT3hC+f3vf18\/BxiefeITn3hQBve6173Kpz\/96fKWt7yl7LTTTuXDH\/5wudrVrjav3CZen7FgeXI6IRql4iWP82xG+8QzoYyPfOQjN5wIbb\/D++YUIKRFG9RoX6561auWb3\/72+XNb35zNWJz51+NQf\/0pz8tF7rQheb2rBknh+S6171uJcuXv\/zlG3VFwU9yYcCnOtWpTohpnPqZCE6UKYqaRBwPfvCDy7Of\/ew6tp133nnqZ8z6xSc96UnlsY99bPWyR6O5We817\/eRJcfWuBFm2+jUmc50pnK9612vPP7xj6+ePgdq0RHHS1\/60nL3u999kEhF9X7od\/v82KfrEcDJTnayiXPHUaYXdNzY73znO5dHPepR84qyzEUcwvc\/\/\/nPBUhqBiJC4CV+6UtfqhP0nve8p3o2CmJRnBDH05\/+9PLQhz50owEAd9EA7+7iF794\/Uy0wRvwL4\/zWc96Vr0\/MnjYwx5WBev3448\/fqN7iW6U\/T3wwANrqOxZBO6IfO79tre9rQKFSIdQKbnvIjQRSiIik8jbJPB4vatJ3n2MGTlJj\/H8hJWIA+g+4xnPKB\/5yEfKJVfqgLlX7v+hD32oPu9HK9WIRVKPe9zjNqTTKMsLXvCCGmaK0txjhx12KK9+9asrQfNaeDH+5rNznOMcVS76cLazna0SOCXTAApS2GuvvYqxH3PMMdXLQqT6wwvyvLOe9ayFE4BEzJ1nI2ApN383xpARYH3JS15SPSTpEXISKWg8p6TJ6IG55QQMkT39kIZyH2Myf9IGjAiRUHwRp74873nPK+c5z3nqs8jsF7\/4RZW1\/vCuzCeykTL0XeB1xjOesUZht7rVrTYiHSkvf0t0Rq\/1H1Ei3\/vf\/\/4FmWlk+5CHPKT+fopTnKKCjM\/0QfvoRz9a9ZSHyxG65z3vWW1jXPMM0c6uu+5aQRb4u5d5P8tZzlKNlOzojhSoZ9\/gBjeotxPZc67orTSIOZduOe644wobe\/\/7319t5PrXv34dA69VRVORu\/6RqzEgEs\/xOZmLwsyxZ03jaLF3\/ZDORPL0ChaYA148T58TIE2sX5PSxcYuRShL4Hcg7j7mgi3RQXZDR\/QxKRtz7DP9gAGPeMQjaqFWesdepM4829joCrv7\/Oc\/X6NX+CAaMBdsgC39deXVEgcccEC1jVa\/hxwnOiwyoGd+4CO9euNK0dh3vvOd1R7VeGIT9FhEllS6z2RupPXMg36yMU4yvSJX37\/2ta9dMZE8fvvb39ZKteaavrNVNq7J7vjsoIMOqriwxx57bKhoO1Yhp\/hgLuKg6AyMQmgGm7SS\/xuAiaGgARoKzsMZIo7XvOY1G8CdEjICJAWMAf+NbnSjDfeTCzTBo42Q5QjHNcZ\/jWtcoxoOT0O\/KAdg0T\/GCyQRkvQasEcC43KKCkPKiVJAxGQyjduE+z8DoKCIwXcovH8Zu889y9\/k9RHAbW972xqqAiRRnO8wGHLjQYjYgAsQBZ6UFSBQTob03ve+t4axwA\/4a8aUdMH5V2qQuS8vGrCaJ94JwzJXDIexvuENb6jEzBAQm3EC9lRNpoz6iyAQkflAxgBev1xDvgxN\/yn3nnvuOXZeGJr5b5s5Qcqeazzu6V7AyrxoDOWQQw6phkMPyRV4P+hBD6oeJKKNfPWxjTytBzFgxpBUFb1GJMiKA5Axedbhhx9ePVayJy8yYZyAmawALTtwTyCOlBn7uCZ60jfg\/q53vavOg2fTN84F3dD8zon517\/+VfuljxwZ9kFnycd3zCdCYSfmWf84DeQgbeHvHAT3Mm9I0zwiOUArXem+9IMO0xu2Pq75DpAGcADQeMw\/kKOvnBXEaRz0e7WU4Oi9yRIR6RvZkPN97nOfSgpsQuqSTdB73yFn86Ef9NC4kAh7gwXmAFB7vn7QSc4FvRdNmuO2IWrzQH+e85znVMcSqXJiEXii39VkwuaR0sMf\/vBKdjIlZM+xca3IlrNhrhC4PhuP\/t71rnetuss5jp3RdTIwz20zZ+ZKCpkjqI8wku0a63pmBeYiDsDLANMAtUlK22effSrTtbm6IeJ461vfWm5+85tvJBw5dYpOMRgrY6IglMiE8F4BiAltm+hmaHKTTgPo7sULAZRZSH\/xi19cAYzx8JYIirF5jomnnNq1rnWtGqEcdthh1QsMgPDAgRzwpnAUmDxcSybujTgoPc8eMQJ8ygQEpBoQA4JQbJKnAAAYJ6VnkBQzYTdD1URrmn4iVCANNDXKifiALLKnbIk+bnKTm1Ty9Gxy5fmONqTNABgxUtAfHg\/Acy\/emRSitScAipSlFnmOlN8YeVFIaFxjSEDR+hBj8UyyYOSJVMgOwbTpD7Lm2SFM3wXc8thkDWCRjXSEdKn5aolgNeJI\/4AwckIoAK9t7mu8gCwpLt\/hrZM5AuYAID66Q17mP+lWC\/6ABaCQFV0CVrxSkSQZImhAIHL0d\/rPQfE94ycfQAXYPcsckyHvWHoiaT36oZ\/sSQOkvF5znqhQ\/8gc+NMvY2dz5jzR1GrzxkZEF+zN99geh48eGB\/ioKdIiw7QeWMbanRbH7K2BBeQIE8bzoiyRXKiYSQH3DX9RZoWn7OewDaloPJdEYTIQrOWqi\/wBVmJdNkE\/TEmuiqCFZGxbxEgeQ2lsLKZInKDH3SODnI6zJNIDLGGqNt5gCHGYf5s2EAY0mwiLHOGMDiA5gnpkQmHjN3CZHafSHxQyHN8OBdxYFVeC89Ao+CtZ2JiAQXD8JkWcJI6oEhtS6oqoanPpLja3Rg8DN4bLxo488x4SsC5bZiYYIca7w5BMDzG7XfGzJMxMYAdQSAXBul7vCsKBDQ0pMbj5ukTJqJABCEOgEFhTC6Q4eEzHCDoOkaWcJLCI0WyARwiC0AIdEcVlQIx\/tbrHh2rtAWDAZ5acrzWi5AlEDJefRet2Jigj+S7Wh4UCAAGHjvyMvfAkVEgOM04KbxUAQNDLMbl\/8Yqx4tAJzWGi8iNf7RFtrzHpPt4iB\/84Acr0ZMtwDVP5hRQAHIpGXoCJJBPuwHAnJC3\/rUt\/UZKdC2NMSNzabS2j+aNEdvFgrw9EykAA16kPpGbRq+Amz77zg1veMNKOnGgWuLImiBS9V1ERj\/1K\/djB8CRjdBVYJc+GLNnJ62cNY7WqWOnAR2OFDn6QYZZexR9s2Fz2aYc6T2gp1OcL44HHUNsABIJsSugL2Kii0ONEyVibKNb3w9GkA0ZmwepnaQO6a4sAW\/bmBGIuTe3vH2kG9Jpnx+5xjbaeTZ3nus7okk6wrY0xIPA6WEc1TyXvSBAJKFfIgk6Su+y2YOtP+ABD6gRIaLS4CkSk7WAS2lxdg899NANqUqfkTfZ+zt5iUCMcdI61yQbHPp8LuIAMiYIw7YNqAbgeUlSQITCC\/F3ii+NZTI1axG8iRiMScpuGcAErHl0QBAQ+RxYMR6epu9S6DQg295jNQEIvxkNxcLk8TZ4OAyYYgJTSihdw+MDsOMaheDdU2CAIsSlDIBHmG58gMdaCw8X4MtnUjrAyksGBDxpniElR7rIl\/cNbJEQGfKwQhztbqMoMsMGJkDMd3k+IgnG7f\/uJyTmCeq3FJpwOXMjgiBfJGeuKDAyYDBkLroA6rwv\/QGO\/i6dZIy8W\/PFWzJf7h9SmoY4kLX+erb+pfGezRmvGSABQdGA75orgI1M9Icnxkvl7XE86Ii0BCJJNMmAeefuS+Y8fsQYECAv\/eaF+rsIhlMAjM0HvaDbQJYOI6ukNnipgM1c6A+ZjmvGS46uN1e8Tf2iF2TI6eKl0lHOBt0GTtIR+kUv6RSg5mnSKUTqe\/QImNAj+hAdjv4AGDaAqM238SFDsgJaiAhY0l8tHnK7wMwxAlqcLWswQEUqRmSViCObRKRTNAQz1EIcccTyXXbJVugZWcOMrOUgPiRHhlnkfve7371hAwA95NjCDE4rwkm0FbBvU+hIAZGTAz32mXRoC9xxGGFZInsROd3VRzrD1mQK6CbwZ+MIQxbC78FLz5Mycx\/Os+fQ7cjes0VDrRODOH2fztIzcoMJMNn916vNRRyUnRFRzLbxwOxSaVvSWIQ6eq5A5EKxktttr+MtU1wK3UYVPH0LTms9IyFVk9ceeh5PC2kA\/4SngIFXxQgDhuMm4u9\/\/3tVFJOtAQFKEGDndaV2vc8pFnBAYLwgXphGSSmNe0kd8PQARBrQllbi0fFkRCuihjT3EaXl\/EP+jhx5SZQpcjQ299E3ZAt83JtyZwzmNiF\/O3ZyAtTmzGK4NJUGhBizlAfDBHoIKeF7myYYJ0selL5yNuhFWrzN9rpsSaQPZI8wGZCIyPwiNP+6VkN2HJGknswTUmwbQ0T+WVvIZ8BQ9AdkRtdpgDISAV5+b3cbkrE0wlDjRCA0DfjrE91gK2SY7ek+B3qABylxaOiZuWQLwN+csY1sUkBqHCvRYPSTXrJROqYhEqQAnIBvUrFkCeQDQulnOyY2Dcw5GJp555RIqWQ7btYHszEFuQ21rI+O7sai36KlZDncg20iamPkLEjtamTCcUC4mrEas7FrnAnOmhZCGk3TkkUIwfdgEbLImm223Wd9yneAOR1IJMoW6AWCRV7IJJt5zI2+01H\/jqZxyTXRWXZqJoLyLHrB4YmDJUUp4oCbQ6n6QeFP8eFcxAE4NB1vG8+Tp5NzHMiFVwbgKKTrMHCMAUjw+CyqEVK7XgGIeI\/YmpfuOiDvXvNslfMM4bPwEyAgLxOs8ewpLHCgfICbh51QcpxcgSfQZThCeYZP0YCYBkyMw+c8\/AACkPc80Zu\/I+Q0MrKOlAUyiuR7rhHRyGnm\/lEkeVQAGvm4h7QIMOIF81ootjHFkPM86RTrAIhQjtrcAqL2XA7ZkVW8xxAD0EKCCZGlAkVb5MirN+9y3JPOgAAHMien7GTSPykdRKmRgX7wBI2N4TNOnqY5k9cG\/DxMROTZjCqRHU8OaZgvY3a\/nB+yDgQYeKtAIM8Cou6fBeOcUdIf9yJbDYCZA7qOBADUpIOK5K2PUpV0PkBLp5J2Y6yIhI6kSX+wGY4IWdMv4KjP9EZf9QuocwxaJ4M3HwBHDEntIgIAxy7oR+vo0SvAS6\/NTxrdQqjmDplzXjTPEHWbI04RuWj0dqiJ9EKM7XNyjTEbOyxoz4fAB88wp20\/cp3+s0vOEyeCvmqiI+Cr3+32ZLpD913HHjjA7VySqetGDxbnfmyc\/OgnWyJTskUi5gjuZD2CA8BRanGTDmeTT\/BR1qDdhGRXHmxhY7CUPNZzYZy85iKOwZnvH252EgC6lND6D2+wt81fAsm9ZwfN5t\/j3sNlkEAnjmWY5f8bo4jNhAvdh3Y2LZFINvuh8kx5qtJOWQDe7DvdO7jVS6ATx1Y\/xX2AXQJdAl0Ci5VAJ47FyrPfrUugS6BLYKuXwMKIwzY8i4sWwNarpo\/7W+yz+DrLHmULWBaQLFQtqmqoFIJtobY5bopKseuhiXaZ+LEAN6nm13o8v9+zS6BLYMuUwNzEgTDUeMnWs3ar2KJFYhdFzkO0W+QmPSfb3IYqUk66R\/u5nSPu6UyCbaYBXTsp7I5J83c7N2y9syuq3S2GwBCZv9kNhAhtzWubnR\/Z4pi\/22HSbrNzrXsA\/1l3maWOkAXYdpfGLLLo3+0S6BJYPgnMTRw5EOTQki2aFvJsDVyv5vyFwy62dU7bbKWz1dGWwJxgn\/ba0e\/ZvuncQw49Oo3rkBBAt+fb2Q9bAjXysMUOadiCilRs5UuJC0Rjy6atn06P2kvfNtspbf\/0\/bSUKrCN0qnUEHZOgI+ePRgap91V5k8f17tEwVrl3a\/rEugS2PwksGbiAIL2ODu4Yq+2sw\/t8XhnOZSGsPfYvnMH2njgTv4qF+IQjLMeQF3EMsnjdWDLfnAg67Tw6NmR1UTrRKayBSIEp4edXcgpTASQcxAOsTln4kT1pCqmrgeyogMRgX3k6uQgCSfO7b+3dVJE4ZkOJ9mL76CQ8xFO0jvUZ\/+2k772XtsfjjhSbydjcZDJOJ1KTUlqBGGfv\/MN9oYjGxGH35WlyPdEZ05vOxjXniB1xsBBIrK0795ZFnIwJn0xN85tOLPiZLVzBb11CXQJdAm0Elgzcax2ytEBKQSSMtMOEqU5caqMQarSAssUe3OQDEi6flxDNFJNWipXTppKaRwkw+PX2pc4paqrtA8C1CYVc0OGCAZwIwVlIJCAtZeUrkaMDuetdgAnp9Xbyr3WXhzgcxrWKde2hTiQDVJKQxT64OCddZYcYmqvTd3\/9sS79QwnwxF2mmcjEUTntLSDV2nIHpH09Y9JmtY\/7xJYLgmsmTicfgRa1hqc0rRILF3jjID6ObxnaRQApxIlL5cXDHz9TRTi6L7yGiITqZcUDlttCnjtgM\/JXyd7XTOpAVipIJ4+4FUKw3F8LcXXlG\/wA3yRglOlQ8147acXKTlhql6OWjQaYbb1rKTTePVpIgDfbYlgiDiUCQHmbQPkau04YWpvP5KyjqIf5BzyVYhQX5SZcIJWE7UhElGK+ZL2UtTNhgNF\/8wdchXlKBmB6FNMbpKs++ddAl0CyyOBNRNHRCRlwvMFVGnqtkjZSH1oykfI1fsbYEMaqY5rPUBKiQc\/zTF55TiUUMjrPqeZqtShSYl216RGft6AhsykqSYRh2tFUsBV2kw5glRaRUqiCeBsLArUAeg09YMUzFPKIrW8QhyKHyqi1rYUTlR\/J+Ug\/J4yIYhRWQ\/RBRln\/WOcTPIOD\/IWaYlwrHEgDkSKFBFiClcivtGqsNPIu3+nS6BLYOuWwNzEwftXH0eKJltkecIKBgJR+XVrB7xfAGUhFvDnJTvTijdrKgDej\/unPPm4ewBW1+kHMkM2UjWqf4Y4pGbUp0FmthGnFtJq9wSqIi1pHSCfl+KIQFQtRY5q9oy+B1gqy9oCYFa8jVfvu56XN8x5Q1le9uP+CDapKqTQvooX8CM4BGJtBXmRqdRZCFU\/pfRS+994UucfcYmWpNmsb1iHUmBPlCEaEn1J5Yk4FvFe72nnuH+vS6BLYMuQwNzEoVCeiMN6RVuPnkdtK2kKxOUtaEm\/jHtZ0DixiWyAegojuq9KsRZ\/xzULvxaTs4bhewqOAUsgzUOXSuJZ26mF+Iaqdtq2imRSyda6hsVxKTnpIM9SmE301a4LSNEhO8SZBvDzRr28byQRFzI21kQcrslnUoCIGfAr+hf5uocKsCkel7pUeRuesZkntaqkCy16541i1oLs3PJcfc89bVpIxdYtQ517L7sEugQ2hQTmJg45cgSBGNodSVJA8vHSVbbBWtzWRCY8WdtYp3mXcYQAMF3rGSIJKS7AliqcqwmLJ51dVQFKO7+UerbuwfO2NgD8vV\/AvfNmsNXul6qtSkrz+qWh7CpLVV07p8iCt96m3ZCqra+iHxsH8vIZ6SE7s6SQrMWEkGzd1S+RnJLmvp8zICIm6x7SfgjL+pK1IX8frd6LyER47pO5sY1YyszuMGSHyKXJbFawmyrpKhsW8vKeTaGI\/RldAl0CW44E5iaOLWeoi+uprbPSXe37NRZ39\/nvpOS0VJ41HWtJ7Zvu5r97v0OXQJfAskugE8caNMBahwhm9KT3Gm61LpcgDNGUlFbeEbEuD+o37RLoElhKCXTiWMpp74PuEugS6BJYuwQ6caxddv3KLoEugS6BpZRAJ46lnPbxg7bzyhZcmxfWq8pxF3mXQJfAli2BrZo4bC21eyrvLV\/kVCnTsf\/++9cque0OKqfbnb9Q6iR1sWZ5rv46Je\/E9zQHIme59zTfzVkP51EcYFzPZreZXV3O0Ex6D\/l69qPfezYJOHDq\/JHDo6NNtWxbwZ0xSt202e6+dX\/bzkl18rS8G35LHPFWTRwWiW1TtWVYQcFFNWU+bCkGeqrutgCbw3gO061l15UtyrbP+jkh3vNx4IEH1u3EDjFmm\/Gi5DZ6HyTpfM6sZ3rWqz+LuO\/hhx9et4qrLOCcj4OYztsAiRNiPhcxptzDGSoHT21Ht4Wd09S+F8cZKAdtkUfObTnDpHIDWfixrZyT4OyUc0q2o7vGdnTby1V3dp5Ic74ICTmLtOeee240FGei3Nf1zpLZiq5\/7ukIQM572X7vQOs4JyzXcPgcss1ZLo6TqFufzZ\/t720\/OHc2oLCR3XbbrZZTYvu77LJLUd0iBVzTD9G7+9MNVSB83+ub4cisr0NY5Jyu9V5bNXEcdthhdfIXWTZDnaf99tuvKrrm4OARRxxR60WlSfco365216zNgUak4f3gJwTQbEriYFRkBSzad4zMKrO1fj\/FKdd6\/eh17udsDBByhghYObmvaoLzPTnouajnrfU++ulMFACfNqp1bmnvvfeuW7zTFMFkW2lswxkpxTydA2ITKbPT9tXZJzLx+gWHap1FQkjqyYm086oAh3Tdz2Fa58IAsnbIIYcURVPtbtSMAYgja2NydikNSCO0cVWeRQA5xKxunsoOznI5k6XagyoOeXUEe2SbeV0C2\/fjb6pHODPmvJnt+jIODiCn0W9ksd1229UxqzThzBSCWm8Hba16MnTdFkMcTn+bGIoKlHk0Ka1u8imoIoJCaEUAeUVCQp6eoosU0wE8B\/EcjNOU\/qAsqucqAUJJh4yb56EQIgWnCEqeOICotAcjUatKNKJ\/6lWNnp9wIPKggw6q5UrabbL6KUXkAB5PiiLzcBiEtIAfHo7JclhPORKHH3lvlI5MeGQiHB4TI6eYDFh\/RT8OYU7T1kIcKh6ToxP50k4OLfL0yIMhM0CeuP57hwgDJDNRTWRlztJEIuaagSlqaV4CGtOMYfQ7gIk8AI75BQzmhuHqt3eoSCsCVAdVHajkCc7aXK9cPl0FdBqv0jyYW6AxrrmWDjt\/42Q\/UKa3vFGyMX4HQdUmIztzCgzpLrBSOZpO0vu2kvJqz2MjPP5dd9212sw0pK2UDZnp06GHHloPvpKlckJpDsSKwAFpmmf5v3k3r6L0HXfcsc47WQFOIM1u1E5DHOaJbvPk2ZVzSZw1z\/J9aTB14owb+bAVduiHviFvaWTNwVc2Ms6rhx10TAUJOkDn6Bs7ZYv6Qae99sFzPBOBcuzIGabQf+TiX7atfBDicO9U9EZ++pGKEiIpTi1SmyYlzP5lTti6Kg90Agaq6E0msCUNrvk54IADasbFj\/4pXeT7dGz0sPCsur5FEAejYoAAFMBTRIZoIik\/T4cQGRdFE76qHqtGlVPWABgYAyqKxhNQrkTBQB6D0uJHHnlkNQYgMs4L40lSCJNIcQGQfqVRbLWvKKGJGn0xE4UymSmK6DqhNQJkhProepMqinF4j9e\/doUAAAtnSURBVPfi7xROv1MMcffdd69kCKD1BVCRzz777FMr8AIEsuLRSx0I6\/V9UpuVOPRBKgCZub8yKgBZCgpAUGrv+mDAyrGo0OuFV+TmFLtUDkN1el4zD8YGzMyV+wv\/GdosrwvOOKUGzLMaXIBIJEAe1qHMPZ3h2dIf8jWGFOCcJKvRz+mpVCNZu7eGBMytDQdDxIEoea1kBWCQPyByot9agTU1kZmDp6IF4A14yBkgswN6rzYcGQ81\/QQiiABY8v7N1VCTejHPwBmBsR9lb9rmfTf6qX+jjW0hBPMBxI3PfAB6usOZ8DfrXuyarph3ThWyov9sBdFLO9Mb+uFf9up3OqNPgFj6U9t+++0HXywH3K2Buta9ALBn0wHEgdB8LgpCfu4n6qKPbJPc9N+Y4JLvcgLNA4eJTWrubzxpsImuGGtSc0PyR5ycBfNNB6TxzLu\/czjYGb2jK5wkBM7JoEve58MmU5172mcO9WeLIA7GJ+QEoN6+x8AJMWGhyTQpBAWgeDmMlfBEHABdPta\/lFfkIN+oyq0fEy9CIFxh7tBLpTybAlFoz9prr70qGSRSQS4UVyhtUtsmvWXBHliFnJT1YIQUFNhIVVECSuz\/wELuVFOHCvklZ86YeT48ZIRJNsCHkvKiyMi1jCiymgSGsxKH\/jMqz1EHzBgBkz7oP8MkM9EZuQIf3pAGJJCefvOENKkC3n5SKVmsF7Gs9t6RjAdoSgsxeo2uAETzq1\/mzHxIbwAZBqjMPtIGEAibnAAGp2RSWklJGOSjIW9zCOTdF\/mlFI57MXTzNI44AAz9BkL0yvfpcCIBnjmyM\/eAl656f4vnIQxRtHUpzfjYwzRNtMIbpXvsYki+7gdU1XcjU8\/wTHKgr6JL3jo9Ew2PNp8jb3MuhetffVcolNPg2eYMIXIoRK0cL7rOi0fu+svJUD8NyZhfc67lXTsAm6zT1GYD0uMa\/eSo6Z\/701VzKMJiq8ZDB8mffoiK9J2+GztCZHPGYH4cCtY\/z20LpgJwqao0UTDZI1oE7hlDzXM5jSIN0SjbosdIg+3or0wK+xX50x8y5BQH\/7yKwvWLeFXCFkEcFBWT8saAjxDdD4FgbaDk1bXqTbUtaxx5h4X3TQj1eMVYPqDmmkwMI5r06lvgyCumHIBGighIaxRaH3kjPKW2ATeRgVA6OVfhrnCV8WmIjsJSTKAqYgJwGjLSf0RqQZHS+Z2SIBhpCkbLqHlelBW58eacIheBTGqzEgcZyN+PVgT2HGkyshA95f\/AIuE749FXoADYNd6RqC91u1IhGDAztHGNF6xkvQhLI2OOABnRHQYmxaABaX1DRsAsnrJnS0vESxySlf66XkMc+gzIeZz0gx5p0jcAbihVhbh43vrH2NsmLSGtxLlp3+3iO\/Ran0Vl1hRmbUBZao7uSaeZy0kNQANT+iVyNk6ESIb0GAC2UXjuB+zoceYVwbNBuiBK9mPBnQ4jIA4Zz55DCNBFioDYZ4ns2akohC2EOJCvKCqvKOAADL0WOWsc5ECW9FMaLesq7NP6iX7w8v0AXjaHOOgV0uOk6gN7NE7fZ+95b5DFcQ5MmuvJjF4A8\/aVCpwmzkRen5BrzDeC8Hzy9xz9ISvpS+TvGhkRqXBZD86HzAjnVvqNnJeGOHjxjF+qAlBTBoOnMMCRAmJZSsubp8DSQkJ9HqUcqvSNENfk8h4ALGDxGdDlxbkvz3Pc62NFIyIXHhPPyGRRHp6RSQL2vAqpGEpBwSlQFskpB8Bp35sBWIA1pQAgCAh4CScZMrDQT6Ew717UQUkRFyNCMjwgQMhz1w\/GA8QQKQ+IrEQy07xXfFbi0F+ePHkDdikZZGe+eEUWF8kYAfieHzIgK\/LkMfK4yB\/oyuPyZHmWDNJ3eYGMCbDM2hLhMTTOQZtGJCtGJj0FuM09IJNCWUvLGgfnIW+BZKgMeog4jj\/++OotilToMNnpJ\/1h+MCAo0G2bYsTwmNGvkjGeMhyqMnbA2V6KjLijNCfoQY89YnTZdcSedEvkTF91cw\/22vXOIA+WSAEaxXsJgDKbjkVoihgTfY8d+sgvP6sIxo7HSAPXjc9RhoiLTKXsgPQ7IPuwwDpGk305nlDaxycDGsrdA9RyFyQqUgaabMlmKAfdITN01Uyly7iNNEhjp15lgnwf85MiMO1HJasceRNqOzAvdLI1vwjIJFT1iIQhrEiRWQFh\/wNvolIOStsBb7pDzsmD5hmfuCM6C5OafvMtej6FhFxGBjjozh53SxPlfAJ1r+MACFojMEEm3gePC+O4BgxgBbOA2lMnZ0PPGOfAeRxjdFgcpOahiBMJMWQMkJybWu9QXll3zfReWGUSaasFA4xMhaTzVO2TmPyE40AkOxGEZIjDiDFe2F4FFqunKyMlUevkRUiaj2ecWOclTgoIuA3BxqiAID6l9x8ngVYeKmAi7xHZWXOGL01ieysQbrmr108n1XRpQ6kdoCqZt4tECYVhKSAAKJm9GvdHsmw6aNx0RWy0G\/GDECH0l+8aYAf0AWM5MhTRcCixkRT7fg5LRwRpKHFuxySEX0BHNKZAAi4TmrGIGpIo6sIHlgFDOkc+bVrHHnrZHt\/kZWIHKCJPHKGx\/qF8cgMuHcb\/dvcwQGi0wDTfEa\/RTwiUmRDx9vn+z9bGrdDUcQhtYw4rAEE0OkhRxPYJm1qDJwZ9gg4efzsN+OXtmLHeVWDlFuaeeRUIiEN4cAC+NOmxo0JkcEYnyXqkL3IOqDr4RTCl6LmPIs8YBodQvJJ7cYxdQ3nCWYszRpHhE\/wIgtKQLitlyRdwvsBStheFMFY\/Q2AEa5JJmDeHQ\/C7hceD+URokoNTWpCZgQGHOzc4JFovCYTIsQEPNnqyTiT205KAskxkjQpA6BpYl3n\/xTDfZAcAKGcPOFEL4wIEIpAPJuiAJi8KRBwMRiERlbTeuuzEocx8Jh5k0gMCCTVl4iDF428EKbGE\/P9VlbWfMhKhOR+ZGl+9D0LzZPmZuhz6U7Aay5GFyM5I+QJLCK\/tT7LuOhT5o++AgGgNml7NdDggboe8dJh+uyedGFcOgr4AjfghBAmEQEdox\/TRKCtHIyFhyulI4If3enGcckrogOmHAuRUs5xeLbnGhu9ZovpL8fPPAFX5EZmyFczRp9JTRsnO4zTR+diO\/SGHub8hHvRq6EGxK0FWGMhbxGP1CBd0X87FuNMAF7kDns8x5zkM9EWnaVfnD5jaM9x+G50APlJH7PR0YPCIkm2HWwJvrg\/\/OLwmOe8JtqYYQDZ6B\/y8ixYwdas8ZAZHCRzhD1pDW+S\/m8xEcekgWzKz6WcKNVqi4Dj+mFhTR4cCEo9TUNSm3JMeZZwnccnjTTNNsGhPjJahAVwets6JGARWYpotaoIomGAguylTf2+OTRAKnqwdXa02SRjcXtTNeseohiRt2gBGUyzHXpT9W\/a53TimFZSc35PCExxpc7WmgqZswtTXS78Fkn5tz3UONXFI18yVuQxy\/vh1\/Kcfs2mkcCkA5PSZaJL6SngaIfc5tCy2J5UZdsn65TtwvR695eMLMTry+h5rvV+9iLv34ljkdLs9+oS6BLoElgCCXTiWIJJ7kPsEugS6BJYpAQ6cSxSmv1eXQJdAl0CSyCBThxLMMl9iF0CXQJdAouUQCeORUqz36tLoEugS2AJJNCJYwkmuQ+xS6BLoEtgkRIYJA4HY3ZYOeHbW5dAl0CXQJdAl0AkoCKCE++pAL7Nyl7t\/6iXsvNKXRUH1iaVW+6i7BLoEugS6BJYLgnsu1LCSYUOh0G1Shz11Zcrx+yPWjk9PO0bwpZLbH20XQJdAl0CyysBJ+Ad9nSAcgNx+EWNE7WEUmtleUXUR94l0CXQJdAl0EpADbH21dg14ugi6hLoEugS6BLoEphWAv8FVcL1D5Sdo7sAAAAASUVORK5CYII=\" alt=\"\" \/><\/p>\n<p>The next important point is the distribution of updates. For this, the device establishes a connection to the server to determine if an update is available:<\/p>\n<p>In our project, the target version (defined on the server for each registered device) is compared with the current version (stored as information somewhere in the root file system). If there is a discrepancy, the update process is initiated.<\/p>\n<p>The following commands are executed during the update process, as shown in the figure.\u00a0<a title=\"Technical information_ESE_firmware-update_noser-engineering_fluehmann\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/fachinfo_ese_angepasstes_android_fraunhofer-iese_becker-1.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>.<\/p>\n<p>There are many more points that could be written about here, but they would go beyond the scope of this article:<\/p>\n<ul>\n<li>Bootloader configuration<\/li>\n<li>Security<\/li>\n<li>Rollback to a previous software copy in case of late-onset errors<\/li>\n<li>Read-only file system<\/li>\n<li>Integration of SWUpdate into the Yocto build<\/li>\n<li>Data migration<\/li>\n<\/ul>\n<p>Check out our blog:\u00a0<a href=\"https:\/\/blog.noser.com\/\" target=\"_blank\" rel=\"noopener\">https:\/\/blog.noser.com\/<\/a><\/p>\n<h2>Total expenditure<\/h2>\n<p>Implementing the discussed solution with SWUpdate requires a total effort of between 1 and 3 person-months across all levels, depending on the expansion stage.<\/p>\n<h2>author<\/h2>\n<p>Willi Fl\u00fchmann works as a software developer and architect at Noser Engineering. An electrical engineer with 16 years of experience in software development, he has worked on numerous projects in both embedded and desktop applications. He is currently working on IoT projects and is also interested in security-related topics.<\/p>\n<p><a title=\"Technical information_ESE_adapted-android_fraunhofer-iese_becker\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/fachinfo_ese_angepasstes_android_fraunhofer-iese_becker-1.pdf\" target=\"_blank\" rel=\"noopener\"><strong>Download the article as a PDF<\/strong><\/a><\/p>\n<hr \/>\n<h2>Open Source \u2013 our training &amp; coaching<\/h2>\n<p><strong>Do you want to bring yourself up to date with the latest technology?<\/strong><\/p>\n<p>Then find out more\u00a0<a title=\"MicroConsult Training\" href=\"https:\/\/www.microconsult.de\/en\/all-training-dates-complete-overview\/\" target=\"_blank\" rel=\"noopener\"><strong>here<\/strong>\u00a0<\/a>MircoConsult offers training courses\/seminars\/workshops and individual coaching on the topic of Open Source \/ Embedded Software Engineering.<\/p>\n<p><strong>Training &amp; coaching on the other topics in our portfolio can be found here.\u00a0<a title=\"Training &amp; Consulting - all topics\" href=\"https:\/\/www.microconsult.de\/en\/training-beratung\/\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/strong><\/p>\n<hr \/>\n<h2>Open Source \u2013 Expertise<\/h2>\n<p>Valuable expertise in the field of Open Source \/ Embedded Software Engineering is available.\u00a0<a href=\"https:\/\/www.microconsult.de\/en\/embedded-and-real-time-software-development\/\" target=\"_blank\" rel=\"noopener\"><strong>here\u00a0<\/strong><\/a>Available for you to download free of charge.<\/p>\n<p><a title=\"Embedded and Real-Time Software Engineering\" href=\"https:\/\/www.microconsult.de\/en\/embedded-and-real-time-software-development\/\" target=\"_blank\" rel=\"noopener\"><strong>To the specialist information<\/strong><\/a><\/p>\n<p><strong>You can find expertise on other topics in our portfolio here. <a title=\"MicroConsult Expertise\" href=\"https:\/\/www.microconsult.de\/en\/specialist-knowledge\/\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/strong><\/p>","protected":false},"excerpt":{"rendered":"<p>Schritt f\u00fcr Schritt zu einer fertigen L\u00f6sung Autor: Willi Fl\u00fchmann, Noser Engineering AG Beitrag &#8211; Embedded Software Engineering Kongress 2018 Bei Embedded-Systemen wird Vernetzung zunehmend wichtiger, um deren Nutzen weiter zu steigern und neue Anwendungsgebiete zu erschlie\u00dfen. Oft bedeutet dies eine Anbindung an die Cloud und damit neben h\u00f6herer Komplexit\u00e4t eine zwingende Unterst\u00fctzung g\u00e4ngiger Kommunikationsprotokolle. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[],"tags":[],"class_list":["post-7753","post","type-post","status-publish","format-standard","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Automatisches Firmware-Update f\u00fcr Embedded-Linux - MicroConsult Academy GmbH<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.microconsult.de\/en\/automatic-firmware-update-for-embedded-linux\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Automatisches Firmware-Update f\u00fcr Embedded-Linux - MicroConsult Academy GmbH\" \/>\n<meta property=\"og:description\" content=\"Schritt f\u00fcr Schritt zu einer fertigen L\u00f6sung Autor: Willi Fl\u00fchmann, Noser Engineering AG Beitrag &#8211; Embedded Software Engineering Kongress 2018 Bei Embedded-Systemen wird Vernetzung zunehmend wichtiger, um deren Nutzen weiter zu steigern und neue Anwendungsgebiete zu erschlie\u00dfen. Oft bedeutet dies eine Anbindung an die Cloud und damit neben h\u00f6herer Komplexit\u00e4t eine zwingende Unterst\u00fctzung g\u00e4ngiger Kommunikationsprotokolle. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microconsult.de\/en\/automatic-firmware-update-for-embedded-linux\/\" \/>\n<meta property=\"og:site_name\" content=\"MicroConsult Academy GmbH\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-29T04:30:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-13T18:22:54+00:00\" \/>\n<meta name=\"author\" content=\"weissblau media\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"weissblau media\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/automatisches-firmware-update-fuer-embedded-linux\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/automatisches-firmware-update-fuer-embedded-linux\\\/\"},\"author\":{\"name\":\"weissblau media\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"headline\":\"Automatisches Firmware-Update f\u00fcr Embedded-Linux\",\"datePublished\":\"2025-11-29T04:30:40+00:00\",\"dateModified\":\"2026-02-13T18:22:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/automatisches-firmware-update-fuer-embedded-linux\\\/\"},\"wordCount\":1330,\"commentCount\":0,\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/automatisches-firmware-update-fuer-embedded-linux\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/automatisches-firmware-update-fuer-embedded-linux\\\/\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/automatisches-firmware-update-fuer-embedded-linux\\\/\",\"name\":\"Automatisches Firmware-Update f\u00fcr Embedded-Linux - MicroConsult Academy GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\"},\"datePublished\":\"2025-11-29T04:30:40+00:00\",\"dateModified\":\"2026-02-13T18:22:54+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/automatisches-firmware-update-fuer-embedded-linux\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/automatisches-firmware-update-fuer-embedded-linux\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/automatisches-firmware-update-fuer-embedded-linux\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.microconsult.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Automatisches Firmware-Update f\u00fcr Embedded-Linux\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/\",\"name\":\"MicroConsult Academy GmbH\",\"description\":\"Professionelle Schulungen, Beratung und Projektunterst\u00fctzung\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.microconsult.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\",\"name\":\"weissblau media\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"caption\":\"weissblau media\"},\"sameAs\":[\"https:\\\/\\\/www.microconsult.de\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Automatic firmware update for embedded Linux - MicroConsult Academy GmbH","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.microconsult.de\/en\/automatic-firmware-update-for-embedded-linux\/","og_locale":"en_GB","og_type":"article","og_title":"Automatisches Firmware-Update f\u00fcr Embedded-Linux - MicroConsult Academy GmbH","og_description":"Schritt f\u00fcr Schritt zu einer fertigen L\u00f6sung Autor: Willi Fl\u00fchmann, Noser Engineering AG Beitrag &#8211; Embedded Software Engineering Kongress 2018 Bei Embedded-Systemen wird Vernetzung zunehmend wichtiger, um deren Nutzen weiter zu steigern und neue Anwendungsgebiete zu erschlie\u00dfen. Oft bedeutet dies eine Anbindung an die Cloud und damit neben h\u00f6herer Komplexit\u00e4t eine zwingende Unterst\u00fctzung g\u00e4ngiger Kommunikationsprotokolle. [&hellip;]","og_url":"https:\/\/www.microconsult.de\/en\/automatic-firmware-update-for-embedded-linux\/","og_site_name":"MicroConsult Academy GmbH","article_published_time":"2025-11-29T04:30:40+00:00","article_modified_time":"2026-02-13T18:22:54+00:00","author":"weissblau media","twitter_card":"summary_large_image","twitter_misc":{"Written by":"weissblau media","Estimated reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.microconsult.de\/automatisches-firmware-update-fuer-embedded-linux\/#article","isPartOf":{"@id":"https:\/\/www.microconsult.de\/automatisches-firmware-update-fuer-embedded-linux\/"},"author":{"name":"weissblau media","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"headline":"Automatisches Firmware-Update f\u00fcr Embedded-Linux","datePublished":"2025-11-29T04:30:40+00:00","dateModified":"2026-02-13T18:22:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.microconsult.de\/automatisches-firmware-update-fuer-embedded-linux\/"},"wordCount":1330,"commentCount":0,"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.microconsult.de\/automatisches-firmware-update-fuer-embedded-linux\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.microconsult.de\/automatisches-firmware-update-fuer-embedded-linux\/","url":"https:\/\/www.microconsult.de\/automatisches-firmware-update-fuer-embedded-linux\/","name":"Automatic firmware update for embedded Linux - MicroConsult Academy GmbH","isPartOf":{"@id":"https:\/\/www.microconsult.de\/#website"},"datePublished":"2025-11-29T04:30:40+00:00","dateModified":"2026-02-13T18:22:54+00:00","author":{"@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"breadcrumb":{"@id":"https:\/\/www.microconsult.de\/automatisches-firmware-update-fuer-embedded-linux\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microconsult.de\/automatisches-firmware-update-fuer-embedded-linux\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.microconsult.de\/automatisches-firmware-update-fuer-embedded-linux\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microconsult.de\/"},{"@type":"ListItem","position":2,"name":"Automatisches Firmware-Update f\u00fcr Embedded-Linux"}]},{"@type":"WebSite","@id":"https:\/\/www.microconsult.de\/#website","url":"https:\/\/www.microconsult.de\/","name":"MicroConsult Academy GmbH","description":"Professional training, consulting and project support","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.microconsult.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a","name":"weissblau media","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","caption":"weissblau media"},"sameAs":["https:\/\/www.microconsult.de"]}]}},"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/7753","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/comments?post=7753"}],"version-history":[{"count":7,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/7753\/revisions"}],"predecessor-version":[{"id":11791,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/7753\/revisions\/11791"}],"wp:attachment":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/media?parent=7753"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/categories?post=7753"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/tags?post=7753"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}