{"id":57053,"date":"2021-11-26T17:57:06","date_gmt":"2021-11-26T09:57:06","guid":{"rendered":"https:\/\/www.seeedstudio.com\/blog\/?p=57053"},"modified":"2021-11-27T14:08:29","modified_gmt":"2021-11-27T06:08:29","slug":"importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems","status":"publish","type":"post","link":"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/","title":{"rendered":"Importance of Secure and Robust OTA Updates for Embedded Linux Systems"},"content":{"rendered":"\n<p>Do you have a fleet of IoT devices deployed in different locations and want to update their system\/ software, debug for issues, and monitor their system status? Well\u2026This is where OTA updates come in action!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is an OTA Update?<\/h2>\n\n\n\n<p>Over-the-air update is an update where there is a central server and this server is pushing software or system updates to other devices which are located remotely.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/OTA-1030x579.jpg\" alt=\"\" class=\"wp-image-57054\" width=\"777\" height=\"437\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/OTA-1030x579.jpg 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/OTA-300x169.jpg 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/OTA-768x432.jpg 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/OTA-1536x864.jpg 1536w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/OTA-2048x1152.jpg 2048w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/OTA-1024x576.jpg 1024w\" sizes=\"(max-width: 777px) 100vw, 777px\" \/><\/figure><\/div>\n\n\n\n<p>The remote devices report to the server periodically to check for updates. If there is a software update available for a particular device, the remote device downloads the update and installs it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why do we need an OTA update service?<\/h2>\n\n\n\n<p><strong>Update devices remotely:<\/strong><\/p>\n\n\n\n<p>If you have many devices located at different locations, and you want to update them, it would be a very troublesome process to visit each device physically and update them. Updating the devices over-the-air can solve this.<\/p>\n\n\n\n<p><strong>Configure device remotely:<\/strong><\/p>\n\n\n\n<p>The same applies if you want to do some device configuration. By having an OTA update service, you can easily configure them remotely.<\/p>\n\n\n\n<p><strong>Troubleshoot devices remotely:<\/strong><\/p>\n\n\n\n<p>If you need to access the devices via a terminal or transfer files to remote devices, you can also do that by using an OTA update service.<\/p>\n\n\n\n<p><strong>Monitor devices remotely:<\/strong><\/p>\n\n\n\n<p>Finally, you can easily monitor remote devices for their working status by using an OTA update service.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What we need to consider when choosing an OTA update service?<\/h2>\n\n\n\n<p>We mainly need to consider two important aspects when choosing an OTA update service and they are:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Security<\/li><li>Robustness<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Security<\/h3>\n\n\n\n<p>We really need to be careful about security when performing OTA updates to remote devices. If proper security measure is not taking when performing the update, it is probable for the remote device to get exposed to vulnerability such as hacker attacks. Most of the OTA update services provide secure OTA updates by using HTTPS protocol to perform the updates. This means the certificates on the remote device should match with the certificates on the update server in order to establish the connection. Also, some OTA update servers support code signing, which means, after we specify that the server is a trusted party, only after that the remote device will accept the update.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Robustness<\/h3>\n\n\n\n<p>On the other hand, it is very important to make sure that the update system is robust because the devices are deployed remotely, and it will be a troublesome process in the event that the device stops working and need to physically be present at the device to fix it. This could happen when you update a device over-the-air and the device power gets cut off in the middle of the update or else, the update failed for some other reason. To avoid this kind of breakdowns, proper measures should be set on the update system so that in the event of a breakdown during an update, the remote devices can restore the system to a previous working state.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Using Mender as an OTA Update Service<\/h2>\n\n\n\n<p><a href=\"https:\/\/mender.io\/?utm_source=seeed&amp;utm_medium=blog\" target=\"_blank\" rel=\"noreferrer noopener\">Mender<\/a> is a secure and robust software update system designed to handle large number of devices. It has a simple client and server architecture allowing central management of deployments to all devices.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1030\" height=\"579\" src=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/mender-world-1-1030x579.jpg\" alt=\"\" class=\"wp-image-57056\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/mender-world-1-1030x579.jpg 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/mender-world-1-300x169.jpg 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/mender-world-1-768x432.jpg 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/mender-world-1-1536x864.jpg 1536w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/mender-world-1-2048x1152.jpg 2048w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/mender-world-1-1024x576.jpg 1024w\" sizes=\"(max-width: 1030px) 100vw, 1030px\" \/><\/figure>\n\n\n\n<p><a href=\"https:\/\/hosted.mender.io\/ui\/#\/signup\/seeed\" target=\"_blank\" rel=\"noreferrer noopener\">Click here<\/a> to sign up and connect up to 10 devices free for 12 months!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Security and Robustness of Mender<\/h2>\n\n\n\n<p>As I have explained previously, on the security side, Mender push OTA updates by using HTTPS to make the update process more secure. Also, Mender support code signage when pushing updates to remote devices.<\/p>\n\n\n\n<p>On the robustness side, Mender stands out because of its dual A\/B rootfs partition layout. Basically, when you generate a system image for the very first time with Mender client integration, the system partition layout will be as follows.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/part-2-3-1024x1030.png\" alt=\"\" class=\"wp-image-57061\" width=\"271\" height=\"271\"\/><\/figure><\/div>\n\n\n\n<p>As you can see, it creates two rootfs+kernel partitions which are duplicates of each other. Active partition is the partition that it uses when you boot the system for the very first time.<\/p>\n\n\n\n<p>When you push an update from the Mender server to the remote device, mender client on the device will download the image and write the image to the rootfs partition that is not running. Then it will configure U-Boot to boot from the updated rootfs partition.<\/p>\n\n\n\n<p>vAfter that the device will reboot and try to boot from the updated partition. If the update gets corrupted due to power loss during the process or due to any other reason, the device will boot from the original partition that was running before. This will ensure that the device will be booted exactly the way it booted in the original working state.<\/p>\n\n\n\n<p>If the update succeeds, the update partition will be set to boot permanently when mender starts as part of the boot process. Now the previous passive partition has become the active partition.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"892\" height=\"474\" src=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/device-partitioning.png\" alt=\"\" class=\"wp-image-57062\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/device-partitioning.png 892w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/device-partitioning-300x159.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/device-partitioning-768x408.png 768w\" sizes=\"(max-width: 892px) 100vw, 892px\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Seeed SBCs supporting Mender<\/h2>\n\n\n\n<p>Mender.io has established a new partnership with Seeed to provide their community of makers and professional embedded developers with an integrated OTA software updates capability solution for 4 of its hardware boards.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><a href=\"https:\/\/www.seeedstudio.com\/ODYSSEY-X86J4125800-p-4915.html\" target=\"_blank\" rel=\"noreferrer noopener\">ODYSSEY \u2013 X86J4125<\/a><\/li><li><a href=\"https:\/\/www.seeedstudio.com\/ReTerminal-with-CM4-p-4904.html\" target=\"_blank\" rel=\"noreferrer noopener\">reTerminal<\/a><\/li><li><a href=\"https:\/\/www.seeedstudio.com\/Dual-GbE-Carrier-Board-with-4GB-RAM-32GB-eMMC-RPi-CM-4-p-4898.html\" target=\"_blank\" rel=\"noreferrer noopener\">Dual Gigabit Ethernet Carrier Board for RPi CM4<\/a><\/li><li><a href=\"https:\/\/www.seeedstudio.com\/ODYSSEY-STM32MP157C-p-4464.html\" target=\"_blank\" rel=\"noreferrer noopener\">ODYSSEY &#8211; STM32MP157C<\/a><\/li><\/ol>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/boards-pics-1-1030x793.png\" alt=\"\" class=\"wp-image-57065\" width=\"763\" height=\"587\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/boards-pics-1-1030x793.png 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/boards-pics-1-300x231.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/boards-pics-1-768x591.png 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/boards-pics-1-1024x788.png 1024w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/boards-pics-1.png 1403w\" sizes=\"(max-width: 763px) 100vw, 763px\" \/><\/figure><\/div>\n\n\n\n<p>We integrate mender client to these boards along with their existing image compilations using the Yocto Project.<\/p>\n\n\n\n<p>We have already finished Mender Client and Self-Hosted Mender Server integration for the ODYSSEY \u2013 X86 board. You can learn more about them below:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Mender Client on ODYSSEY \u2013 X86<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/hub.mender.io\/t\/integration-of-mender-to-odyssey-x86\/4170?utm_source=Seeed&amp;utm_medium=YouTube\" target=\"_blank\" rel=\"noreferrer noopener\">Mender Hub Guide<\/a><\/li><li><a href=\"https:\/\/wiki.seeedstudio.com\/Mender-Client-ODYSSEY-X86\/?utm_source=Seeed&amp;utm_medium=Youtube\" target=\"_blank\" rel=\"noreferrer noopener\">Seeed Wiki Guide<\/a><\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/X86-client-1030x579.jpg\" alt=\"\" class=\"wp-image-57066\" width=\"786\" height=\"442\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/X86-client-1030x579.jpg 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/X86-client-300x169.jpg 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/X86-client-768x432.jpg 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/X86-client-1024x576.jpg 1024w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/X86-client.jpg 1280w\" sizes=\"(max-width: 786px) 100vw, 786px\" \/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Self-Hosted Mender Server on ODYSSEY \u2013 X86<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/hub.mender.io\/t\/installation-of-self-hosted-mender-server-on-odyssey-x86\/4290?utm_source=Seeed&amp;utm_medium=YouTube\" target=\"_blank\" rel=\"noreferrer noopener\">Mender Hub Guide<\/a><\/li><li><a href=\"https:\/\/wiki.seeedstudio.com\/Mender-Server-ODYSSEY-X86\/?utm_source=Seeed&amp;utm_medium=Youtube\" target=\"_blank\" rel=\"noreferrer noopener\">Seeed Wiki Guide<\/a><\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/x86-server-1030x579.jpg\" alt=\"\" class=\"wp-image-57067\" width=\"811\" height=\"456\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/x86-server-1030x579.jpg 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/x86-server-300x169.jpg 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/x86-server-768x432.jpg 768w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/x86-server-1024x576.jpg 1024w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/x86-server.jpg 1280w\" sizes=\"(max-width: 811px) 100vw, 811px\" \/><\/figure><\/div>\n\n\n\n<p>We have also prepared a video. Please check below:<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Secure and Robust OTA Updates for Seeed SBCs using Mender\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/XYdNiEltD2c?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">OTA Updates for Azure IoT Hub with Mender.io<\/h2>\n\n\n\n<p>You can also use Mender to update Embedded Linux Systems which are connected with Azure IoT Hub. The below video explains about this and also demonstrates the use of Mender with Azure IoT Hub by showcasing a demo.<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Over-the-air software updates for Azure IoT Hub with Mender.io\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/4NQu5yuzMgQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">OTA Integrations for reTerminal, ODYSSEY &#8211; STM32MP157C and Dual Gigabit Ethernet Carrier Board for RPi CM4<\/h2>\n\n\n\n<p>In the coming weeks, 3 further board integrations from Seeed with Mender OTA will be launched with accompanying tutorials published on the Mender Hub and the Seeed Wiki. These boards are the reTerminal, the ODYSSEY &#8211; STM32MP157C, and Dual Gigabit Ethernet Carrier Board for Raspberry Pi Compute Module 4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Do you have a fleet of IoT devices deployed in different locations and want to<\/p>\n","protected":false},"author":141,"featured_media":57077,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","_price":"","_stock":"","_tribe_ticket_header":"","_tribe_default_ticket_provider":"","_tribe_ticket_capacity":"0","_ticket_start_date":"","_ticket_end_date":"","_tribe_ticket_show_description":"","_tribe_ticket_show_not_going":false,"_tribe_ticket_use_global_stock":"","_tribe_ticket_global_stock_level":"","_global_stock_mode":"","_global_stock_cap":"","_tribe_rsvp_for_event":"","_tribe_ticket_going_count":"","_tribe_ticket_not_going_count":"","_tribe_tickets_list":"[]","_tribe_ticket_has_attendee_info_fields":false,"iawp_total_views":0,"footnotes":""},"categories":[1],"tags":[142,4111,247,3776],"class_list":["post-57053","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","tag-open-hardware","tag-ota","tag-raspberry-pi","tag-secure-iot"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Importance of Secure and Robust OTA Updates for Embedded Linux Systems - Latest News from Seeed Studio<\/title>\n<meta name=\"description\" content=\"Do you have a fleet of IoT devices deployed in different locations and want to update their system\/ software, debug for issues, and monitor their system status? Well\u2026This is where OTA updates come in action!\" \/>\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.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Importance of Secure and Robust OTA Updates for Embedded Linux Systems - Latest News from Seeed Studio\" \/>\n<meta property=\"og:description\" content=\"Do you have a fleet of IoT devices deployed in different locations and want to update their system\/ software, debug for issues, and monitor their system status? Well\u2026This is where OTA updates come in action!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/\" \/>\n<meta property=\"og:site_name\" content=\"Latest News from Seeed Studio\" \/>\n<meta property=\"article:published_time\" content=\"2021-11-26T09:57:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-11-27T06:08:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lakshan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lakshan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/\",\"name\":\"Importance of Secure and Robust OTA Updates for Embedded Linux Systems - Latest News from Seeed Studio\",\"isPartOf\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb.png\",\"datePublished\":\"2021-11-26T09:57:06+00:00\",\"dateModified\":\"2021-11-27T06:08:29+00:00\",\"author\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/75eb10f611f7c10a195a98452628bba5\"},\"description\":\"Do you have a fleet of IoT devices deployed in different locations and want to update their system\/ software, debug for issues, and monitor their system status? Well\u2026This is where OTA updates come in action!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/#primaryimage\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb.png\",\"contentUrl\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb.png\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.seeedstudio.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Importance of Secure and Robust OTA Updates for Embedded Linux Systems\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#website\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/\",\"name\":\"Latest News from Seeed Studio\",\"description\":\"Emerging IoT, AI and Autonomous Applications on the Edge\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.seeedstudio.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/75eb10f611f7c10a195a98452628bba5\",\"name\":\"Lakshan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c1688294d55a746c8c80f4b85eb94989?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c1688294d55a746c8c80f4b85eb94989?s=96&r=g\",\"caption\":\"Lakshan\"},\"url\":\"https:\/\/www.seeedstudio.com\/blog\/author\/lakshan\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Importance of Secure and Robust OTA Updates for Embedded Linux Systems - Latest News from Seeed Studio","description":"Do you have a fleet of IoT devices deployed in different locations and want to update their system\/ software, debug for issues, and monitor their system status? Well\u2026This is where OTA updates come in action!","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.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/","og_locale":"en_US","og_type":"article","og_title":"Importance of Secure and Robust OTA Updates for Embedded Linux Systems - Latest News from Seeed Studio","og_description":"Do you have a fleet of IoT devices deployed in different locations and want to update their system\/ software, debug for issues, and monitor their system status? Well\u2026This is where OTA updates come in action!","og_url":"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/","og_site_name":"Latest News from Seeed Studio","article_published_time":"2021-11-26T09:57:06+00:00","article_modified_time":"2021-11-27T06:08:29+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb.png","type":"image\/png"}],"author":"Lakshan","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lakshan","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/","url":"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/","name":"Importance of Secure and Robust OTA Updates for Embedded Linux Systems - Latest News from Seeed Studio","isPartOf":{"@id":"https:\/\/www.seeedstudio.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/#primaryimage"},"image":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/#primaryimage"},"thumbnailUrl":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb.png","datePublished":"2021-11-26T09:57:06+00:00","dateModified":"2021-11-27T06:08:29+00:00","author":{"@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/75eb10f611f7c10a195a98452628bba5"},"description":"Do you have a fleet of IoT devices deployed in different locations and want to update their system\/ software, debug for issues, and monitor their system status? Well\u2026This is where OTA updates come in action!","breadcrumb":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/#primaryimage","url":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb.png","contentUrl":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb.png","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/www.seeedstudio.com\/blog\/2021\/11\/26\/importance-of-secure-and-robust-ota-updates-for-embedded-linux-systems\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.seeedstudio.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Importance of Secure and Robust OTA Updates for Embedded Linux Systems"}]},{"@type":"WebSite","@id":"https:\/\/www.seeedstudio.com\/blog\/#website","url":"https:\/\/www.seeedstudio.com\/blog\/","name":"Latest News from Seeed Studio","description":"Emerging IoT, AI and Autonomous Applications on the Edge","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.seeedstudio.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/75eb10f611f7c10a195a98452628bba5","name":"Lakshan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c1688294d55a746c8c80f4b85eb94989?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c1688294d55a746c8c80f4b85eb94989?s=96&r=g","caption":"Lakshan"},"url":"https:\/\/www.seeedstudio.com\/blog\/author\/lakshan\/"}]}},"modified_by":"Lakshan","views":7785,"featured_image_urls":{"full":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb.png",1920,1080,false],"thumbnail":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb-80x80.png",80,80,true],"medium":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb-300x169.png",300,169,true],"medium_large":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb-768x432.png",640,360,true],"large":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb-1030x579.png",640,360,true],"1536x1536":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb-1536x864.png",1536,864,true],"2048x2048":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb.png",1920,1080,false],"visody_icon":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb.png",32,18,false],"magazine-7-slider-full":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb-1536x1020.png",1536,1020,true],"magazine-7-slider-center":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb-936x897.png",936,897,true],"magazine-7-featured":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb-1024x576.png",1024,576,true],"magazine-7-medium":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb-720x380.png",720,380,true],"magazine-7-medium-square":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2021\/11\/thumb-675x450.png",675,450,true]},"author_info":{"display_name":"Lakshan","author_link":"https:\/\/www.seeedstudio.com\/blog\/author\/lakshan\/"},"category_info":"<a href=\"https:\/\/www.seeedstudio.com\/blog\/category\/news\/\" rel=\"category tag\">News<\/a>","tag_info":"News","comment_count":"0","_links":{"self":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/57053","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/users\/141"}],"replies":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/comments?post=57053"}],"version-history":[{"count":19,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/57053\/revisions"}],"predecessor-version":[{"id":57101,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/57053\/revisions\/57101"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/media\/57077"}],"wp:attachment":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/media?parent=57053"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/categories?post=57053"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/tags?post=57053"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}