Search code examples
androidiototaandroid-thingsandroid-things-console

How to create Android Things' bundle and push it over OTA?


Anyone succeeded creating Android Things Bundle and pushing it over OTA?

On the Android Things' Console, there's a page to Create a Bundle for the OTA.

I'm trying to figure out how to do that. I've adding just a single APK file main.apk to a ZIP file. Then I've tried to push it to a RPi which is sitting nearby. But the main.apk would not be launched on the device.

Things I've tried/done:

  • Download Empty bundle with Things Build ID=NIH40K
  • Creating a Bundle and pushing it to devices through OTA UPDATES
  • Creating a new FACTORY IMAGE with that newly created bundle
  • Still my app would not be started
  • I've checked, my app's MainActivity has action=MAIN and category=IOT_CATEGORY
  • Tried running app from my laptop via adb connect Andorid.local and it works as designed

But I couldn't make an OTA update. Anyone succeeded doing so?

Here's my project on Github: https://github.com/ViliusKraujutis/Android-Things-Demo

Thanks


Solution

  • Here are all the steps necessary to make OTA update possible after creating a new product in your android things console :

    1 - Create your first build configuration, either from the empty bundle in the console or from a personnal bundle you added.

    2 - Download build of this build configuration. You will get an Android Things image. Flash it to your RPi as you did when you flashed the Android Things regular image. https://developer.android.com/things/hardware/raspberrypi.html#flashing_the_image

    From now on, your RPi will check if a different version of your product has been pushed from the console. The check happens every 5 or 6 hours so you might have to be patient. Also your RPi needs to have internet access.

    3 - Upload another bundle to your console, create a build configuration for it and then push it to your devices via the OTA updates panel of your console.

    4 - You will need to manually reboot the RPi to apply the update.

    This article from Dave McKelvie is a good example in my opinion : http://android.geek.nz/hello-android-things-developer-console/