Lenovo ThinkSmart View ROM/OS Development

Yeah, I’m guessing that may have been the issue. Also, the solder on that board only melts at very high temperatures, it seems.

My next attempt is going to be preheating the board to 200°C on the hotplate (150 wasn’t enough it seems).
The copper layer looks so thin on this board that I don’t trust it to stay in place with anything but the chip falling off by itself.

I’ll also get some more ThinkSmarts to play with, I’m guessing (given that at some point I do actually want to use them for our intended purpose of Home Asssistant Dashboardery)
Amazon doesn’t ship them to Canada anymore, but nothing a quick trip to Niagara Falls, NY can’t fix :stuck_out_tongue: I’ll have family over soon and they’re going to want to see them anyways.

1 Like

Also, it feels time I update the initial post with some better structure, given what I know now :stuck_out_tongue:

6 Likes

Following this with interest… I’m playing with the Google Home variant (Smart Display 8) which appears to have pretty much the same hardware but a different emmc layout.
It uses A & B slots with smaller partitions than the think view - seems like you are pretty up to speed on partitioning these devices, do you have any thoughts on the best approach to try and increase the space? - I was thinking of switching boot to Slot A and then attempting to erase the Slot B partitions one by one to see if it still boots.
If it does, I’m unsure if the Slot B space could then be reallocated to expand Slot A partitions if that makes sense?

Yeah makes sense, I haven’t used a device with those slots yeah but “theoretically” I think it could work. (counterpoint: @chillman’s partitioning experience :sweat_smile:)

Some helpful links:

The default for postmarketOS and what we’ve been doing uses userdata for the root partition, so it wouldn’t really use slot A or B. Assuming that works out, you could remove system_*, vendor_*, probably boot_*, then resize userdata to use most of the space.

1 Like

Hey any luck getting it back up and running? I may have good news for you. On one of mine I restored with RSA, took a backup, then flashed Android 10. Ran into the same issue where it flashes the splash screen before going into 900E mode. sus

Went back to deadman’s A11 files to compare files to stock and found the culprit, the aboot partitions corresponding to the emmc_appsboot.mbn file. This is part of the boot process from ROM → SBL → aboot → boot.img. Boot.img usually has the kernel directly, however with pmos it now loads lk2nd which in turn gets the kernel from the boot subpartition in userdata.

The aboot file from the A11 package comes from an older debug ROM, so it must have the typical boot verification disabled. That could explain why things went awry when you deleted the “unnecessary” system partition if that caused the stock aboot to fail.

So all that said, here’s an updated package to repartition for pmos. It’s the same partition scheme as before but now includes emmc_appsboot.mbn. Similar instructions:

  1. Extract the tarball
  2. Copy lk2nd-lenovo-cd-18781y-latest.img and pmos-lenovo-cd-18781y-testing-latest-rootfs.img into the same dir
  3. edl qfil rawprogram0.xml patch0.xml .
  4. Cross those fingers!

But wait, there’s more! Here’s what I’ve been using to generate the partitions:

GPTAnalyzer output includes firstlba for each partition. When removing partitions like system, remove that setting from all the following ones to reclaim the space. It also sets filename for known partitions, but update any empty ("") ones that you want to flash or relocate with qfil.

Update the generated partition.xml’s <parser_instructions>:

ALIGN_BOUNDARY_IN_KB = 1024
GROW_LAST_PARTITION_TO_FILL_DISK = true

I suggest adding align="true" for at least the main partitions like userdata. I also align recovery, cache, and persist.

Running ptool creates a bunch of files like rawprogram0_WIPE_PARTITIONS.xml. Unless you want to do some clean testing you really only need:

  • rawprogram0.xml
  • patch0.xml
  • gpt_main0.bin
  • gpt_backup0.bin
2 Likes

Thanks for the tips, I’m out of the country for a week but will be checking this out when I get back to see if any progress can be made with the SD8

HI all,
yesterday I saw this thread and inevitably today I bough an almost new Thinksmart View for around 50 Euros, now it came the difficult part.
I’m trying to read the whole thread, but it’s interminably long :slight_smile:

OK, I’m editing this post because in the meantime I pushed away my lazyness for some minutes and got the answer I missed just few lines above this post…

ATM I’ll follow @mattmon guide on how to flash the custom 8.1 ROM.

What are the pros of switching to PMOS?

Thank you all in advance for the great work (and for giving me inspirations to hack something…)

where can i find pmos-lenovo-cd-18781y-testing-latest-rootfs.img the link is broken

Does this work for you? https://felix.kaechele.ca/projects/thinksmart/pmos-lenovo-cd-18781y-testing-latest.img.xz

yes it did thank you… i flashed it and i have the screen size issue so i have to read throw the post and find the fix… how do we install the .apk’s

Can we ssh in too it without getting past the startup screen to install the kernel? I don’t have a bluetooth keyboard and mouse

I am in a positon that I could purchase a Lenovo Thinksmart with Google Assistant pretty cheap (not interested in Google but very much interested in this project)
Was wondering if anyone had any luck with this unit:
Lenovo Smart Display 10" with Google Assistant

I did read from one post that there are differences, but also saw that some were minor and another may have had a solution all along for the touchscreen display.

So, would it be worth purchasing or it’s outside the scope of this project?

I am in the same boat. Did you get this figured out? Can someone help out?

Yes I did you have to change the screen zoom to 125% and then change it back to 100% it might take a few trys for it to stick

i cant get this to work at all echo '/home/pmos/wyoming-satellite/script/run \ --name 'thinkSmart Satellite 2' \ --uri 'tcp://0.0.0.0:10700' \ --awake-wav ~/wyoming-satellite/sounds/awake.wav \ --done-wav ~/wyoming-satellite/sounds/done.wav \ --mic-command 'arecord -r 16000 -c 1 -f S16_LE -t raw' \ --snd-command 'aplay -r 22050 -c 1 -f S16_LE -t raw' > /dev/null 2>&1 &' >> ~/.profile

Android ↔ Linux is the comparison you’re looking for.

Android for now is still the most stable one, especially 8.1 seems to work very well.

PMOS == Linux, and even though I’m a back fan of linux, it is in a much rougher state.

But biggest question is “it depends”, what do you want to do with it? Why did you buy it? If it’s just to have a HA dash on a very nice screen - stick to A8.1. If you want some more to tinker with, try A11, PMOS, figure out how to install the rescue images and start the circle all over again :wink:

1 Like

Having tried them all out over the last couple of months and having just finally got A11 working, A11 is edging slightly ahead of 8.1 for me - MUCH better (working) audio and A11 fixes an issue I have on all four devices I have running 8.1 where the touchscreen stops responding after some time - well, more like it goes into sleep mode and takes a couple of seconds to respond. Could be any one of many components I guess but it’s one of those little annoyances.

A11 has it’s issues though and still struggling with something crashing it on boot if WiFi enabled.

1 Like

I think you can reduce that from happening if you disable auto connect for your WiFi, granted I still have had it happen. The only problem I have on A11 is wake from sleep. I know you can flip the camera slider to turn it back on, but if you are using the camera is not a great solution. I did fix it (sort of) with browser mod on homeassistant and an automation to turn the screen “off” after a minute.

Yeah, in my testing I have WiFi auto connect disabled and that does let it boot - OR block the device temporarily in my access point. What I’m trying to get to is reliable startup after power cut or a device reboot. I also looked into the Automate app to just connect to WiFi after boot up but very annoyingly, that feature was trashed in android 10+ so even with the app devs workaround, it still doesn’t work to connect to an SSID within an automation.

I HAVE had it booting ok with WiFi enabled but something in Fully Kiosk or elsewhere causes it to crash. Certainly setting Fully Kiosk into kiosk mode and auto start causes the problem but other things do too. Maybe some kind of call to the internet as it’s starting up causes the problem?

1 Like