Is this the perfect standalone tablet for HA?

Revisit step 7 in OP

Anybody come up with something yet?

Steps to enable adb over the network that survives reboots

I’m new to android, so this took me a while to figure it out and may not be the best solution but it works for me. I’ve tried other options including the persist.adb.tcp.port but for some reason did not work.
My solution is to set the property service.adb.tcp.port 5555 and restart the adbd daemon by modifing the vendor init /vendor/etc/init/hw/init.qcom.usb.rc file.

Details:
These instructions are for a Linux machine where you have downloaded the files from the original post.

  1. Take the original vendor.bin and mount it to be able to modify the init.qcom.usb.rc file:
$ mkdir my_vendor
$ sudo mount flash/vendor.bin my_vendor/ -t ext4 -o rw,loop
  1. Modify the init.qcom.usb.rc and add the stop... and setprop.. lines as shown below:
$ sudo vi my_vendor/etc/init/hw/init.qcom.usb.rc

From line 175, make changes to look like:

on property:sys.usb.config=diag,adb && property:sys.usb.configfs=0
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
    write /sys/class/android_usb/android0/idVendor 05C6
    write /sys/class/android_usb/android0/idProduct 901D
    write /sys/class/android_usb/android0/f_diag/clients diag
    write /sys/class/android_usb/android0/functions diag,adb
    write /sys/class/android_usb/android0/enable 1
    stop adbd
    setprop service.adb.tcp.port 5555
    start adbd
    setprop sys.usb.state ${sys.usb.config}
  1. Unmount the partition to get the modified vendor.bin
$ sudo umount my_vendor
  1. Place the new vendor.bin in its original position if needed, and then flash the device with the edl command as per the original post.
4 Likes

ok done

Ran through these steps and it worked, but I couldn’t for the life of me unlock the right navigation button. I was able to install Virtual Softkeys, but this just added a second navbar and the right button wasn’t working on it, either. For now I’ve gone into developer options and throttled down the number of applications running at once. It’s a hack-y fix, but it’s a temporary solution that works for now. Currently experiencing issues with Home Assistant causing a crash to the Lenovo logo that a power-cycle fixes, it’s entirely possible I’ve throttled too aggressively.

On my next weekend off I might run through the flashing steps again with the post from the OP; I have years of Linux experience from running my own DVR with MythTV a lifetime ago, and the PC in the basement running Home Asistant in a VM is running Xubuntu as a host OS. I opted for the Windows route for flashing this device as the laptop in my office was running Win10 and I didn’t want to trek downstairs for this project. I know, first world problems. Not looking for troubleshooting assistance just yet as there are steps for me to try before I hit the “help plz” point (play with settings, re-flash if nothing works, etc), I just wanted to document my experience so far.

Also, is there any significance to the startup logo for this Android 11 version? Not the “more orange than the stock red Lenovo logo” one, but the “four Disney ducks in a car” one from the screen that follows. If it’s meant to be a reference, it’s lost on me.

summary
In my opinion this device Lenovo ThinkSmart View is no good for Home Assistant. After go to unlock Android it has some issue… with wifi, also with performance and unlock screen/wake up by touch. When i open app HA with my dashboard it work very slow… Android should be more better adjust to this device…
Also no many Android for this device.

Didn’t you use the EXPERIMENTAL android 11 version ?? Instead of the tried and tested android 8 version from the first post in this thread??
The android 8 version is absolutely fine and working stable here.
Maybe you should have used that :wink:

But i can not or i dont know how flash ANdroid 8…
WHen i flash Android 11 with no problem , that Android 8 i can not flash.
Can you give me step by step how ? Please

On 2 step from first post i get this:
C:\edl\edl>edl qfil bin/rawprogram.xml bin/patch0.xml flash/ --loader=bin/prog_emmc_firehose_8953_ddr.mbn
‘edl’ is not recognized as an internal or external command,
operable program or batch file.

Next try and get:
C:\edl\edl>python edl qfil bin/rawprogram.xml bin/patch0.xml flash/ --loader=bin/prog_emmc_firehose_8953_ddr.mbn
Capstone library is missing (optional).
Qualcomm Sahara / Firehose Client V3.62 (c) B.Kerler 2018-2023.
main
main - [LIB]: ←[33mPlease first install libusb_win32 driver from Zadig←[0m
main - Using loader bin/prog_emmc_firehose_8953_ddr.mbn …
main - Waiting for the device
Traceback (most recent call last):
File “C:\edl\edl\edl”, line 386, in
base.run()
File “C:\edl\edl\edl”, line 289, in run
conninfo = self.doconnect(loop)
^^^^^^^^^^^^^^^^^^^^
File “C:\edl\edl\edl”, line 199, in doconnect
self.cdc.connected = self.cdc.connect(portname=self.portname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\edl\edl\edlclient\Library\Connection\usblib.py”, line 240, in connect
self.configuration = self.device.get_active_configuration()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\Piotrek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\usb\core.py”, line 921, in get_active_configuration
return self._ctx.get_active_configuration(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\Piotrek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\usb\core.py”, line 113, in wrapper
return f(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\Piotrek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\usb\core.py”, line 249, in get_active_configuration
self.managed_open()
File “C:\Users\Piotrek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\usb\core.py”, line 113, in wrapper
return f(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\Piotrek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\usb\core.py”, line 131, in managed_open
self.handle = self.backend.open_device(self.dev)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\Piotrek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\usb\backend\libusb1.py”, line 804, in open_device
return _DeviceHandle(dev)
^^^^^^^^^^^^^^^^^^
File “C:\Users\Piotrek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\usb\backend\libusb1.py”, line 652, in init
_check(_lib.libusb_open(self.devid, byref(self.handle)))
File “C:\Users\Piotrek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\usb\backend\libusb1.py”, line 600, in _check
raise NotImplementedError(_strerror(ret))
NotImplementedError: Operation not supported or unimplemented on this platform

Did you follow this?

I took a shot at it:

I opted to make remove a view of the fadeouts since they made the animation a bit too busy for a bootscreen. Also, my first time extensively animating vectors in illustrator, so I hope it’s looking a bit alright.

7 Likes

yes done and the same

C:\edl\edl>python edl qfil bin/rawprogram.xml bin/patch0.xml flash/ --loader=bin/prog_emmc_firehose_8953_ddr.mbn
Capstone library is missing (optional).
Qualcomm Sahara / Firehose Client V3.62 (c) B.Kerler 2018-2023.
main
main - [LIB]: ←[33mPlease first install libusb_win32 driver from Zadig←[0m
main - Using loader bin/prog_emmc_firehose_8953_ddr.mbn …
main - Waiting for the device
Traceback (most recent call last):
File “C:\edl\edl\edl”, line 386, in
base.run()
File “C:\edl\edl\edl”, line 289, in run
conninfo = self.doconnect(loop)
^^^^^^^^^^^^^^^^^^^^
File “C:\edl\edl\edl”, line 199, in doconnect
self.cdc.connected = self.cdc.connect(portname=self.portname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\edl\edl\edlclient\Library\Connection\usblib.py”, line 240, in connect
self.configuration = self.device.get_active_configuration()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\Piotrek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\usb\core.py”, line 921, in get_active_configuration
return self._ctx.get_active_configuration(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\Piotrek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\usb\core.py”, line 113, in wrapper
return f(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\Piotrek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\usb\core.py”, line 249, in get_active_configuration
self.managed_open()
File “C:\Users\Piotrek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\usb\core.py”, line 113, in wrapper
return f(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\Piotrek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\usb\core.py”, line 131, in managed_open
self.handle = self.backend.open_device(self.dev)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:\Users\Piotrek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\usb\backend\libusb1.py”, line 804, in open_device
return _DeviceHandle(dev)
^^^^^^^^^^^^^^^^^^
File “C:\Users\Piotrek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\usb\backend\libusb1.py”, line 652, in init
_check(_lib.libusb_open(self.devid, byref(self.handle)))
File “C:\Users\Piotrek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\usb\backend\libusb1.py”, line 600, in _check
raise NotImplementedError(_strerror(ret))
NotImplementedError: Operation not supported or unimplemented on this platform

ok run succesfull
Uninstall qualcomm driver and then run…

But after wipe data and reboot i still see only image with logo Home Assistant… No run android.

EDIT
I flashed it again , and no when try reset after flash by hold Volume UP and POWER ON , now i see TWRP but nothing i can not do in this TWRP… no slider, no reaction on button volume… why no i have TWRP but on first time i have other menu ?

I got really excited when I stumbled on this thread earlier this afternoon! However, after several hours (in between social coffee and cake) of browsing it appears as if there’s a thiving market for these in the UK.

There don’t appear to many around and they seem to be exchanging hands in the region of GBP100 which is way more than an Amazon Fire tablet. So my excitment has been dashed as this looks like a really good dashboard display! So unless someone can point out a sensible alternative supply I’m going to drown my sorrows in my homebrew…

1 Like

Ok now device boot, but i can not do factory reset from 6 point manual…
And now i can connect also to hidden wifi and also with WPA2/WPA3 with no problem…
But when device boot i dont have see button on bootm bar…

EDIT
Ok installed VirtualSoftKey…
But also add google account but how install HomeAssistant app if i dont have Google Play ?

from the included f-droid store

can the device be used as a bluetooth proxy? (It doesn’t show up in the bluetooth integration)

So I successfully flashed this on Windows and my first impressions were positive, it runs great! My only issue was that the Squeezeplayer app kept trying to phone home to Google for license verification. After reading into the Android 11 and learning that Google Apps were included, I downloaded the new ROM that @yabdali linked above. After flashing these new files I got as far as the “duck boot” screen, but never booted successfully.

At this point I reflashed the original image hoping to get back to a bootable state, and am still able to successfully flash. The issue now is that when I attempt to factory reset, I receive this message:

– Wiping data…
Formatting /data…
E: format_volume: failed to open /dev/block/bootdevice/by-name/userdata: No such file or directory
Data wipe failed.

When I attempt to boot after this, I am stuck on the Home Assistant logo boot screen.

It seems I made a big mistake here, can anyone let me know if this is recoverable?

1 Like

You could use termux + squeezelite.

I actually wrote to the developer of the squeeze player app and he just sent me an older version of the app which does not contain the license verification. Now if only I hadn’t potentially bricked my Thinksmart!

That’s a new issue, try asking for help in the discord channel linked below, there’s a couple devs there working on this rom.

2 Likes

Hi all. I tested this tablet and in my opinion it is too slow for use to Home Assistant. I test also Android 8.1 and also test Android 11. On android 8.1 all works ok, wifi and other but when open app HA it show very very slow… lags and lags…,…
On ANdroid 11 i have a problem with wifi to connect to hide SSID and SSID with WPA2/WPA3 security. Can not connect. Wake up screen no working on ANdroid 11 and wake up we should do by slider camera. But works app HA looks better. Faster… In my opinion now this android is no adjust to this device.