A year and a half after Google announced that its stripped down, IoT-oriented Brillo version of Android was being recast as Android Things, the platform has emerged from Developer Preview as Android Things 1.0. The good news is that Google is offering customers free automated updates for three years, which should save money while improving security and reliability. The bad news is that Android Things is more proprietary than the mostly open source Android.
Google will continue to support the Raspberry Pi 3 and Technexion’s i.MX7-based Pico i.MX7D module as official Android Things development platforms. However, you can’t use them for production, as they “do not meet Google’s security requirements for key and ID attestation and verified boot, and may not receive stability and security updates,” says Google.
Significantly, Google dropped support for NXP’s low-power i.MX6 UL SoC, and has chosen higher end, quad-core, Cortex-A7, -A35, and -A64 SoCs, and an octa-core -A53 SoC for its newly announced production platforms. Customers are required to choose from NXP’s i.MX8M, MediaTek’s MT8516, and Qualcomm’s Snapdragon 212 and Snapdragon 624. (In January, Google had mentioned the Rockchip RK3229 as a platform, but it’s not included here.) Four tiny new compute modules based on these chips are “coming soon” from InnoComm (i.MX8M), Intrinsyc (Snapdragon), and MediaTek.
Android Things consumer devices should start arriving this summer with a focus on home automation and consumer devices rather than industrial IoT. Most are smart speakers that mix Android Things with Google Cast and the Google Assistant voice agent, with potential links to other Google cloud services. Unlike Android phones, Android Things devices are not likely to drive nearly as much revenues from advertising or apps, but Google may be able to profit by driving customers to its cloud services — and perhaps by selling user behavior data.
At this January’s CES show, Google previewed several of the Android Things devices that Google now says will ship this summer. These include the LG ThinQ WK7 and iHome iGV1 smart speakers, as well as the Lenovo Smart Display with Google Assistant. Two more unnamed Android Things/Assistant driven smart displays are also still on the way from JBL and LG.
Google also announced two new Android Things products due this summer. Byteflies is a docking station that securely transmits wearable health data to the cloud, and Mirego is developing a “network of large photo displays driven by public photo booths in downtown Montreal,” says Google. There was no mention of the previously announced InstaView ThinQ smart fridge.
Version 1.0 Improves Android Things Console
Android Things continues to be a stripped-down version of Android based on a Linux kernel that can run on as little as 32MB RAM. Wireless savvy and cloud connected, the platform is streamlined for single application use. Displays are optional, full-screen, and developed with standard Android UI tools. Audio is increasingly emphasized, with a focus on Google Assistant.
New Android Things features added since the latest preview include an updated Android Things Console that lets you build factory images and enable OTA updates, including OEM app updates. Analytics are available, but so far there’s no IoT aggregation platform as there is with Amazon’s more industrial focused AWS IOT and related AWS Greengrass platforms.
Other new Android Things features include the ability to automatically launch a selected application on boot. Google has added new Bluetooth device state management features and has improved support for LoWPAN networks such as Thread. Peripheral I/O APIs have been developed for GPIO, PWM, I2C, SPI, and UART, and there are new user-space drivers for location, input, sensors, and LoWPAN.
Three free years of OTA — With restrictions
Weirdly enough, Google’s Android Things could end up being less open source than Microsoft’s upcoming, Linux-based Azure Sphere IoT ecosystem. Android Things is open source to the extent that it’s posted on GitHub, and as of today, is freely downloadable for anyone. Version 1.0 has evolved with the help of feedback from 10,000 developers who have used the Developer Previews, which have been downloaded more than 100,000 times.
Yet, Google clearly states this is a “managed OS.” You need to sign a license agreement to use the Android Things SDK if you plan to deploy more than 100 devices commercially. If you have 100+ devices and want the long-term support version with the updates enabled by the cloud-connected Android Things Console software, you must sign a distribution agreement.
There will also be “additional options for extended support” after three years, and OEMs can “push OEM apps/APK updates at any time, even after updates for Android Things ends,” says Google. In addition, the Alphabet subsidiary is launching a “special limited program to partner with the Android Things team for technical guidance and support.”
With so many other IoT development platforms to choose from, it’s hard to imagine vendors investing in Android Things without licensing the long-term version. In an age of increasing IoT malware attacks, the free three-year update deal is very compelling. But you’re also giving up control and flexibility.
Like Microsoft with Azure Sphere, Google is limiting the authorized hardware platforms, but it also limits the types of devices that can run it. Google’s Android Things Program Policies page states that Android CDD Device Types “such as handhelds, watches, televisions, automotives, and any other device categories defined in the future” are prohibited. “If interested in these categories, please see Android, Wear OS, Android TV, and Android Auto.”
Ars Technica interpreted the licensing info this way: “Android Things is closed source and has a centralized update system. Google controls the operating system, and device makers can only make apps.”
A May 7 Solutions Review blog post by Nathaniel Lewis calls Android Wear a “proprietary platform” with “undocumented distribution terms,” and recommends “backing away slowly from the whole area.” Of particular concern to Lewis is a clause in the SDK agreement that states: “Except to the extent required by applicable third party licenses, you may not… combine any part of the Android Things SDK with other software.”
Lewis argues that it would be very difficult for a developer to determine whether a compileOnly dependency results in a violation of terms. A confidentiality requirement in the Android Things Console agreement is similarly problematic.
A Wear OS for IoT
Despite Google’s pivot away from open source, the response from the mainstream tech media has been enthusiastic. Indeed, with its free updates, Google has taken a welcome step toward assuming responsibility for IoT’s security vulnerabilities. The increased vigilance could also reduce fragmentation and improve software compatibility. This is less critical in the IoT world, but is growing more important in the consumer realm targeted by Android Things.
A positive report on Android Things from The Next Web argues that IoT development is increasingly driven by smaller software-driven firms that lack the skill or the money to hassle with the details of embedded development and security. Android Things solves those problems while providing a familiar app development environment closely based on the Android SDK.
Android Things does not appear to be much more restrictive than Wear OS, the new name for Google’s Android Wear smartwatch distribution. Yet Wear OS is targeted at a smaller number of mostly large vendors working with a fairly standard form factor. Android Things is designed for a far more diverse set of devices that are likely to developed by many smaller vendors.
The restrictions imposed on Wear OS vendors may be one reason the platform is lagging behind Apple Watch and Samsung’s second-place, Tizen-based Gear watches. (Blocks recently launched Project OpenWatch as a more open source alternative to Wear OS.)
Google may have been better served by either building a single Google Watch or else creating a more open platform that could evolve spontaneously like Android. In the IoT world, Google experimented with the Google Watch strategy by buying Nest, but that did not work out as planned.
There are less restrictive ways Google could encourage secure updates. In the Android world, Google’s Project Treble, which requires vendors to use modern Linux kernels, will likely help improve security and reduce fragmentation while still retaining open source flexibility.
Canonical’s Ubuntu Core and its snap mechanism for enabling securely updated IoT applications offers a more open source alternative to Android Things. Ubuntu Core enables secure, transactional updates while also offering access to a large application library. Whereas Google’s approach ensures secure updates by doing them itself, Canonical is providing a platform with the update paradigm built in, essentially accomplishing the same goal.
Join us at Open Source Summit + Embedded Linux Conference Europe in Edinburgh, UK on October 22-24, 2018, for 100+ sessions on Linux, Cloud, Containers, AI, Community, and more.