Is this the perfect standalone tablet for HA?

I may have created the perfect home assistant tablet, for anywhere but a wall.

Actually, Lenovo created it, I just fixed their software, haha!

This post details a Home Assistant themed custom ROM for the ThinkSmart View 8" CD-18781Y. Installation info is below!

The device was intended for enterprise video conferencing; the Qualcomm SoC is much more powerful than chips usually found in smart displays. It’s perfect for HA dashboards! (Or as an octoprint server, etc, etc)

The form factor is great for a counter or side table:

  • Looks and feels high quality
  • Heavy, doesn’t move around when touched.
  • Comfortable to pick up and hold.
  • Angled for counter height viewing
  • Stands in both portrait and landscape modes
  • There’s no battery to worry about

Lenovo’s product flopped; so these are cheap and plentiful. A lot of bang for your buck here.

Hardware specs
  • 8" 1280 x 800 IPS Display
  • Snapdragon 624 , Octa core A53 @ 1.8GHz
  • Adreno 506 GPU @ 650Mhz
  • 2GB DDR3, 8GB eMMC
  • 802.11AC 2x2, BT 4.2
  • 5MP camera with physical shutter
  • Microphones with physical mute switch
  • Surprisingly good speakers
Details about this ROM
  • Android 8.1 Oreo
  • sdk27 armeabi-v7a
  • userdebug build with unrestricted root and ADB
  • SELinux permissive, enforcement disabled
  • frameworks patched for signature spoofing

Preinstalled system apps:

  • Chromium Webview v116
  • Ultra Small Launcher
  • MicroG (core, ulp, fakestore)
  • Aurora Store + Services (Play store alternative)
  • F-Droid + Privileged extension
How is this different from what’s posted over on XDA?

Aside from the HA themed bits, it’s not, they are the same.

However, everything is already done for you, no need for complicated and lengthy instructions to get the device liberated.

Just flash and dash!

Installation

Prerequisites

  • CD-18781Y with any software revision
  • a flash tool that supports qualcomm’s firehose/sahara protocols, like bkerler’s edl
  • android SDK tools

Procedure

  1. Download the files, extract in the the EDL flash/ directory, create it if necessary.

  2. start the flash tool with the provided xml files. Using edl, the flash command would be:
    ./edl qfil bin/rawprogram.xml bin/patch0.xml flash/ --loader=bin/prog_emmc_firehose_8953_ddr.mbn

  3. Remove the rubber plug on bottom of unit and connect via usb c.

  4. Boot into EDL mode by simultaneously pressing both volume buttons while powering on.

  5. Power off when flashing is complete.

  6. Boot into recovery mode by holding volume up while powering on. Perform a factory reset and reboot.

  7. Once you can see the Lock Screen, Finish up user provisioning:
    adb shell settings put secure user_setup_complete 1
    adb shell settings put global device_provisioned 1

Now just configure your wifi, install the HA app and enjoy :slight_smile:

Consider installing the navbar in extras, unless you plan to navigate the UI with ADB commands.

Extras & Notes
  • Install a navigation bar:
    adb install extras/virtualsoftkeys.apk
  • In Aurora setup, choose ‘Aurora Services’ whan asked for an installer.
  • Transfer over the included wallpaper and install a gallery app, so you can set it:
    adb push extras/wallpaper.png /sdcard/Download/
    adb install extras/gallery.apk
  • The boot splash and animation are vertical by default. Horizontal versions are also included, to use them:
    Before you flash
    cd kingston-ha-rom/dump
    mv splash.bin splash.bin.vert && mv splash.bin.horiz splash.bin
    Then after the first boot (and provisioning)
    adb root && adb remount adb shell mv /system/media/bootanimation.zip /system/media/bootanimation.zip.vert
    adb shell mv /system/media/bootanimation.zip.horiz /system/media/bootanimation.zip
Troubleshooting
  • duplicate MAC addresses on wifi
    See this post by @Endlessvoid
  • Unable to build edl
    Review procedure for your platform.
  • EDL can’t find flash files
    All paths are relative to the directory from which edl is being run. Check the paths in your command arguments.
  • No ADB access
    Check user/device permissions or run ADB as privileged user. Try different cable.
    Apple users, use a usb-c dock as an intermediary or try @adamsguitar’s adb script
  • Prompted for password repeatedly
    Use fastboot to erase userdata. Hold volume down while powering on, then:
    fastboot erase userdata
    fastboot reboot
  • Windows users
    Please see @Nerwyn’s post
  • New to Linux?
    Check out @stevemann’s notes.
  • Mac instructions
    See @staceydoddspost.

Development of a fully open source ROM is happening here. We welcome your contribution.

Credits:

90 Likes

Following. Looks very nice.

1 Like

How do you connect to it to flash it?

The device has a usb c port. Make sure to use a high quality cable.

First off, awesome project. I picked up one for 20 bucks. Can’t beat that!

I’m nearly finished with the flashing and installing. It loads up after a power off / on with the HA logo. I got to step 5 and I’m stuck at the android start screen where it’s asking for a password. Do I now need to connect and run adb commands in step 6 to get that to disappear?

Thanks again and any light someone could shed would be awesome.

1 Like

Edit: after thinking about it… I realized that what @ndizzlecfizzle experienced was the user data partition being wiped.

This is normal. After the user data reset you’ll be up and running.

So technically, it’s two reboots after the flash command (only one of them is user initiated).

I edited my post above to reflect this.

1 Like

I like this. Following for updates.

1 Like

Thanks for this; Just ordered one as well. This seems like the perfect lil form factor to setup for my mother. I’ll try to report back eventually when it’s all setup.

1 Like

For 30 bucks brand new shipped. I’ll give it a try! Thanks for your work on this!

1 Like

Supply and demand? I can’t find it for less than $35.

A step-by-step tutorial would be appreciated.

1 Like

Still not bad, considering the original msrp was $349 :open_mouth:

In the first post.

2 Likes
Summary

This text will be hidden

Cool. I never knew this option was in the forum to hide text like this.

1 Like

This looks awesome @mattmon! Nice work!

That display looks similar to the Android Things running Lenovo Smart Displays that can have their boot loaders unlocked. Do you know if there’s a way to run your Rom or something similar on that hardware or is it too different?

1 Like

The Lenovo smart displays are based on a mediatek SoC, so this rom isn’t compatible.

I do have a few of the displays you linked. The android things builds are somewhat less feature complete, making ROM hacking a little tedious.

I may have something for you soon, but first working to liberate the T6E.

1 Like

Thanks! I’ll wait to see what you have in the works before buying any of these (I have 4 or 5 of the Smart Displays already).

Thanks for the correction!

Was able to connect and run the adb commands and I eventually got it working. Still was getting the password error, so I just entered the incorrect password until the system “wiped itself” and then was able to set it up with HA companion app and some other goodies.

The tablet OS takes some getting used to, I was stuck in an app for way longer than I care to admit :slight_smile:

Thanks again, now to add some additional apps and set this system set up in tablet / kiosk mode!

3 Likes

Interesting. Every unit I’ve flashed doesn’t ask for a password, but just informs it’s incorrect and proceeds with the wipe.

Not a big issue, glad you figured it out, thanks for posting your findings!

Adding some zeros to the user data partition during flashing will probably avoid this.

Also, I edited the install procedure to more prominently suggest installing the included nav bar… I left it out of the default rom as I figured most people would deploy these as a kiosk.

1 Like

Wow this is amazing! I was able to secure an Avaya Vantage 3 K175 some time ago, but they are incredibly hard to find (so I only have one). These are amazingly cheap by comparison. No PoE or fully-functional Play Services Android out-of-the-box by comparison, but I’ll take it for the price!

Definitely no need for a full guide, but may you roughly outline how you build these ROMs from scratch–particularly things specific to this device? I can’t find that info easily on XDA. I’m a bit paranoid downloading Android ROMs. I would love to do it myself and them put it into a GitHub Action for both transparency and easy forking/modification/building for anyone!

2 Likes

I pinky swear that I didn’t put anything nefarious in the rom, :joy:

If you care to investigate, you will see that all the critical system apks have their factory signatures intact.

As far as what I did, not really a whole lot.

  • Anything Microsoft or Lenovo got removed.
  • HA themed bits and app stores got added.
  • Chromium webview was built with “com.google.android” package name
  • spoofing applied via haystack

The link to @deadman96385’s thread on XDA in credits contains full instructions to do this yourself (more or less).

The only way this rom differs from those instructions is that it doesn’t use a systemless root solution. It being a user debug rom variant, this wasn’t required.

It should be fully possible to get modern AOSP running on this device, it seems any further development effort would be better spent on that.