Lenovo ThinkSmart View ROM/OS Development

Dang, alright I have a new plan if you’re feeling motivated. Starting from your working pmos install, I propose individually erasing each of the paritions 24-25 (system, vendor) then 29-50 (but not userdata) to see which one breaks it.

  • edl e system
  • reboot & check…
  • edl e vendor
  • check again…
  • etc!

If/when it won’t boot anymore than we may have found our culprit. To be sure you could restore the backup yet again and nuke just that one partition. Curious what you find…

Okay - I had to completely reset using the rescue tool to see the partitions correctly again using sudo gdisk -l /dev/mmcblk0.

sudo apk update
sudo apk upgrade
sudo apk add gptfdisk

sudo gdisk -l /dev/mmcblk0

So let’s delete partitions 1-by-1 (after each that I have found not to be booting after deletion I started completely over):

edl e systemnot running! Restart!

edl e vendor → still booting!
edl e keystore → still booting!

Starting with batches… Batch 1:
edl e config
edl e oem
edl e limits
edl e mota
edl e dip
→ still booting!

Batch 2:
edl e mdtp
edl e syscfg
edl e mcfg
edl e lksecapp
edl e lksecappbak
→ still booting!

Batch 3:
edl e cmnlib
edl e cmnlibbak
edl e cmnlib64
edl e cmnlib64bak
edl e keymaster
edl e keymasterbak
not running! Restart!

This is as far as I’m getting today. I’m neither able to get into edl-mode anymore :frowning: nor is lenovo’s rescue tool finding the device. Deleting at least one of the partitions of batch 3 killed it. From 3mins of research I might need a deep flash cable now (?) but that tale is not one for today.

image

Open: Update on 2024-05-24: Still booting after deletion of batch 4!
Batch 4:
edl e apdp
edl e msadp
edl e dpo
edl e logdump
edl e resource

3 Likes

Tried my hand at replacing the eMMC on one of my devices tonight.
Unfortunately I must have done something wrong as I lifted some pads when the eMMC chip came off.
So I’m down one ThinkSmart :sweat_smile: Luckily I used one of my Focaltech ones and didn’t kill my only Himax one.

I will have to practice some more on some old RAM sticks :stuck_out_tongue:

4 Likes

Well that’s maybe interesting. When you can get it back up with default pmos, which partitions are mounted? Here are mine, mostly curious what you have for /dev/mmcblk0p*

# df -h
Filesystem                Size      Used Available Use% Mounted on
dev                      10.0M         0     10.0M   0% /dev
run                     916.6M      1.4M    915.2M   0% /run
/dev/mapper/userdata2
                          6.3G      5.0G   1009.6M  83% /
/dev/mapper/userdata1
                        225.7M     46.2M    167.4M  22% /boot
shm                     916.6M    324.0K    916.3M   0% /dev/shm
none                    916.6M         0    916.6M   0% /lib/firmware/msm-firmware-loader
/dev/mmcblk0p1           84.0M     24.6M     59.4M  29% /lib/firmware/msm-firmware-loader/mnt/modem
/dev/mmcblk0p25          27.5M     76.0K     26.7M   0% /lib/firmware/msm-firmware-loader/mnt/persist
tmpfs                   183.3M     20.0K    183.3M   0% /run/user/10000

Uh oh! Now we’re getting serious :see_no_evil: I have an EDL cable and the button is convenient, but all it’s doing is shorting D+ to ground. If you’re feeling handy you could splice a cable and DIY.

3 Likes

I’d bet that wafer thin PCB is making it difficult to maintain reflow temp across the part.

Maybe try having a steady handed friend manipulate the pickup tool while you keep blasting it with hot air.

Followed the instructions for installing PMOS, all went well according to the output but now the device just boots to the bootloader. Did i miss a step ?

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?