Is this the perfect standalone tablet for HA?

I received my device a few days ago and finally had time to flash it yesterday. Although I read a lot in this thread, I managed to get the paths wrong twice…

I ran into the same screen off problems as discussed with the Wallpanel App and switched to Fully Kiosk Browser.
For now I have a working setup with

motion detection by camera to brighten the screen
timeout to start screensaver with brightness = 0

I had issues with screen off/wake there, too. Also I noticed the media_player entity got no working volume control. Whatever the settings its always super loud…

1 Like

Whatever the settings its always super loud…

I got blasted with audio volume as well. Media player entity in HA is in an ‘unknown’ state and volume buttons on device don’t change it.

However, I found that if I make a service call from HA to set the volume like any other media player it worked the same. Haven’t tested if it ever changes on its own, but likely needed anytime it restarts.

Hi everyone !

I’m in Europe and Finally just received my unit. I must admit, as others have pointed out, that instructions are not perfectly clear.

Do we agree that the only thing to dowload is kingston-ha-rom.7z off Google Drive ?

EDL is installed on computer by command line through bkerler’s edl . Ok.

What about those ADB tools / Android SDK tools ? Is there something to DL ?

As I understand, the only thing to do on computer would then to install EDL, download kingston-ha-rom, extract it, point terminal to the extracted folder, then type the edl command.

After that, just plug the device, boot it in EDL mode, and continue on tablet. Right ?

How to know the edl command had been succesfull and it’s then listening for the tablet to connect with it ? Is everything processed from the tablet after I typed the command ?

Finally, is there a risk of bricking the device during the process ? I must admit I’m pretty used to flashing devices as i’ve been doing this from time to time since many years now but this one is way less detailled than what i’m used to and i’ve got absolutely no idea what’s going on by reading the tutorial (sorry for being honest) and i’m a bit afraid of f*ing up. So i would like to know if there are steps that would require special care or extra attention.

Still, thank you very much to OP and everyone contributing here, it’s just that some people may need more details about what’s happening during the process and what to expect when actions are executed.

There is a post from stevemann with a link to more detailled instructions (20-30 posts above). Might happen that you need to install additional modules, your machine will let you know. I saw that post and thought it was very helpful.

1 Like

Hi @DonTomato. Thank you for your help. The post you are mentionning is this one :

by @jakhei

Indeed very useful, and blindly copy pasting everything made the command line from first post worked.

My device booted to the HA blue screen, I then rebooted it with up button, factory reset, normal reboot to blue screen, but the last commands give me this error :

user@pop-os:~/edl$  adb shell settings put secure user_setup_complete 1
error: no devices/emulators found

As the device doesn’t seem to be connected to my computer anymore and I can’t make it recognized by unplugging/replugging. Also, even after few wipe/factory reset, the lenovo always start on blue HA logo while, if I understood correctly, I should land on a stock working android with store. How come my device won’t reset ? Any idea ?

I run linux on a dedicated machine. No VM, and tried different cables.

I think something has gone wrong, if you dont see the lock screen. I meant this link by @stevemann

http://mann.ws/mediawiki/index.php/Lenovo_ThinkSmart#Problems_I_encountered%3A

You dont see the lock screen after the HA logo boot animation? Id write the image again and check out the wiki page as for when to reboot/wipe etc.

Thanks. I don’t see a HA boot animation, i just see a blue HA logo as soon as the device is rebooted after wipe/factory reset, then a quick black screen, then blue HA logo again. And stuck on it.

I can boot in recovery mode again, but won’t have the device recognized by my computer in any mode (normal boot, blue logo, or recovery). So, no way to flash the image again.

I’ve been able to try to flash it again even without seeing the device mounted and noticed some errors in the log while flashing :

firehose_client - [LIB]: /home/user/edl/kingston/flash/NON-HLOS.bin doesn't exist!
firehose_client
firehose_client - [LIB]: /home/user/edl/kingston/flash/sbl1.bin doesn't exist!
firehose_client
firehose_client - [LIB]: /home/user/edl/kingston/flash/sbl1.bin doesn't exist!
firehose_client
firehose_client - [LIB]: /home/user/edl/kingston/flash/rpm.bin doesn't exist!
firehose_client
firehose_client - [LIB]: /home/user/edl/kingston/flash/rpm.bin doesn't exist!
firehose_client
firehose_client - [LIB]: /home/user/edl/kingston/flash/tz.bin doesn't exist!
firehose_client
firehose_client - [LIB]: /home/user/edl/kingston/flash/tz.bin doesn't exist!
firehose_client
firehose_client - [LIB]: /home/user/edl/kingston/flash/devcfg.bin doesn't exist!
firehose_client
firehose_client - [LIB]: /home/user/edl/kingston/flash/devcfg.bin doesn't exist!
firehose_client
firehose_client - [LIB]: /home/user/edl/kingston/flash/adspso.bin doesn't exist!
firehose_client
firehose_client - [LIB]: /home/user/edl/kingston/flash/sec.dat doesn't exist!

My path is correct (anonymized the quote) but I can’t find those files in the mentionned folder downloaded.

Hey Halouno, just wanted to write that you can boot to edl mode and should be able to flash again. You can ignore the errors, wait until the flash is complete and follow the guide. It must work, fingers crossed!

Thank you mate. IT WORKED. And I found the issue.

While launching edl and booting the device with up and down buttons, i kept them pressed as the process seemed to go very fast. In fact, too fast, as, in 30seconds the flashing was finished, but still by displaying progress bar making me thinks it was working out.

I rebooted with the two button pressed then released them as soon as the device got booted and the process began, and it took 10min, to success.

1 Like

I’m having an issue where after flashing & doing a factory reset the device briefly shows the HA logo & then just stays on a black screen (no backlight). I am still able to access the recovery menu & edl, tried flashing again but same results.

Everything that did flash, flashed ok, but I noticed towards the end of the cli output that I was getting some i/o errors, could that be what’s causing this?

I copied what it would let me here, apologies if formatting is wrong.

DeviceClass - USBError(5, 'Input/Output Error')
firehose_client - [qfil] patching DISK sector(NUM_DISK_SECTORS-1), size=8
<?xml version="1.0" ?><data>
 <patch SECTOR_SIZE_IN_BYTES="512" byte_offset="72" filename="DISK" physical_partition_number="0" size_in_bytes="8" start_sector="NUM_DISK_SECTORS-1" value="NUM_DISK_SECTORS-33." what="Update Backup Header with Partition Array Location." />
   </data>
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
firehose_client - [qfil] patching DISK sector(1), size=4
<?xml version="1.0" ?><data>
 <patch SECTOR_SIZE_IN_BYTES="512" byte_offset="88" filename="DISK" physical_partition_number="0" size_in_bytes="4" start_sector="1" value="CRC32(2,6656)" what="Update Primary Header with CRC of Partition Array." />
   </data>
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
firehose_client - [qfil] patching DISK sector(NUM_DISK_SECTORS-1.), size=4
<?xml version="1.0" ?><data>
 <patch SECTOR_SIZE_IN_BYTES="512" byte_offset="88" filename="DISK" physical_partition_number="0" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-33.,6656)" what="Update Backup Header with CRC of Partition Array." />
   </data>
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
firehose_client - [qfil] patching DISK sector(1), size=4
<?xml version="1.0" ?><data>
 <patch SECTOR_SIZE_IN_BYTES="512" byte_offset="16" filename="DISK" physical_partition_number="0" size_in_bytes="4" start_sector="1" value="0" what="Zero Out Header CRC in Primary Header." />
   </data>
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
firehose_client - [qfil] patching DISK sector(1), size=4
<?xml version="1.0" ?><data>
 <patch SECTOR_SIZE_IN_BYTES="512" byte_offset="16" filename="DISK" physical_partition_number="0" size_in_bytes="4" start_sector="1" value="CRC32(1,92)" what="Update Primary Header with CRC of Primary Header." />
   </data>
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
firehose_client - [qfil] patching DISK sector(NUM_DISK_SECTORS-1.), size=4
<?xml version="1.0" ?><data>
 <patch SECTOR_SIZE_IN_BYTES="512" byte_offset="16" filename="DISK" physical_partition_number="0" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="0" what="Zero Out Header CRC in Backup Header." />
   </data>
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
firehose_client - [qfil] patching DISK sector(NUM_DISK_SECTORS-1.), size=4
<?xml version="1.0" ?><data>
 <patch SECTOR_SIZE_IN_BYTES="512" byte_offset="16" filename="DISK" physical_partition_number="0" size_in_bytes="4" start_sector="NUM_DISK_SECTORS-1." value="CRC32(NUM_DISK_SECTORS-1.,92)" what="Update Backup Header with CRC of Backup Header." />
 </data>
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
firehose_client - [qfil] patching ok
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
DeviceClass - USBError(5, 'Input/Output Error')
firehose - Setbootablestoragedrive succeeded.
firehose_client - [qfil] partition(0) is now bootable
 
user@livedvd:/opt/edl$

Looks like there’s a fresh supply of these on eBay now @ $30 shipped.

Figure out what’s causing the USB errors.

Check your physical layer. Look at dmesg.

Or use another host machine.

Added to troubleshooting section in OP.
Thanks @stevemann

Thanks for the sanity check, swapping usb cables did it (despite the same cable flashing a different device just fine last week).

For some reason I’m unable to enable root in zarchiver & magisk is reporting no root. Unable to mount filesystem as rw via adb as well. I need to copy android.hardware.usb.host.xml to /system/etc/permissions/ to see if usb host works. If it does it would be great if that could be included in the future.

The USB-C cable you used on another device is probably OK for that device.
USB-C has 24 wires in the cable. In those 24 wires there are two low-speed (USB 2.0) and two high-speed channels. There are also four ground wires and four power wires. This is why the recommendation to use a high-quality USB-C cable.

You only have root in the shell; I didn’t include root for app permissions because I greatly under estimated what you all were going to do with this thing.

I’ll post an updated system.bin asap with SuperSU built in. If you don’t want to wait for me:

  • loop mount system.bin rw on your host
  • mv existing su binary out of the way
  • cp the su binary provided by your chosen root app in its place
  • cp the APK to apps/
  • unmount and flash

Recommend against magisk. While it’s a good tool and can work in this scenario, by default it is a systemless root app, which works a lot differently than system root. This means that most advice you’ll find online about magisk just doesn’t apply to this rom and will only serve as a source of confusion.

I guess I was pretty ambiguous about this. You need a cable that is both fully wired for data and has the otg resistor.

Without the resistor, edl can flash it, but adb can’t find it.

1 Like

I installed home assistant companion app from the Aurora store. Made a specific account in HA for just this device. Log in to HA and all works.

If I reboot device and open HA app, it gets banned and adds 127.0.0.1 to ip bans.

This locks all devices using HA out.

Anyone know why?

Can you add this file to /system/etc/permissions while you’re at it please?

Seems like the usb port may be unpowered but we’ll still need that in place to make usb host work with powered hubs.

Anybody else want something changed or included?

I probably won’t do this again :slightly_smiling_face:

Hey adding to the screen sleeping issues, I found on mine both the Fully Kiosk & Wallpanel API’s are still reporting screenOn=true after it’s turned off. Both through the system sleep config or with Fully’s Screen Off Timer option (which requires a license). Fully Kiosk is then unable to turn the screen back on for motion detection. Wallpanel does for a little while until I assume it then goes into a deeper sleep (and doesn’t have similar wakelock options).

I emailed with Alexey some and he’s very responsive. Sounds like Fully is checking the current screenOn setting before attempting to turn it on again, while Wallpanel sends the command regardless. He’s not keen on adding a workaround for the old Android version and first report of the issue, but thought I’d give it a shot.

So heads up for anyone who’s looking to use the motion detection option with these. Works great for me on Fire tablets without leaving the screen on all the time. I’m guessing we’ll have more luck on a newer Android (or linux!) version so I’ll keep tabs in the other thread. But also… just in case you have an idea before the new build :wink:

2 Likes

Anyway to surface the mic drivers?

Been playing with assist / Wyoming since my previous post.

Is this a 32bit or 64bit ROM?

Wyoming-satellite can run on a pi zero w 2 (x64) with local wakeword (or pi zero w 1.1 (x86) with remote wake word).

If there was a way to install openwakeword then that uses the Wyoming protocol and HA would detect it automatically and use it as a satellite.

Not sure how to achieve that in the ROM though.