[Thinkpad Tablet General] SomeoneNormal07:
---

DISCLAIMER

The code published here is in a very early stage of development, and was published with the intention of receiving comments that allow me to improve it and develop a more stable version, it is not a software created with the intention that you install it on your device, much less on a different device, therefore, I am not responsible of dead or unusable devices.

I will not mention other users directly until I have finished this project, they will all appear in a list at the beginning of the publication where the final version will be

---

Project status: Starting over from 0.​

I apologize for the delay, the protests in my country caused a compression of the university calendar to compensate for the lost time, the holidays officially began on December 17.

Here's a long and unnecessary context where I explain why I am doing this, you can skip it:

I recently changed the motherboard of my 5-year-old Yoga Tab 3, because it's still a good tablet, at least for seeing Netflix with a great audio quality, after replacing the old damaged card for a new one and flashing a clean version of android L with QFIL, I opened the task manager and saw [500MB of 1GB memory available], so I said “Wow, this is still great! If only I could have these numbers in a more modern version of android...”.

Android M is no longer usable in this tablet, the 32-bit processor equipped with 4 cores at 1.3ghz has aged very badly and the Android M experience has become terribly slow, so, updating the tablet is not an option.

But at that point, I remembered that for a while I used a phone with Android Oreo (Go Edition) out of the box, and personally I must say that I really enjoyed the experience. So, I looked at the little APQ8009 chip on my old and damaged motherboard, reasoned for a moment, and I said to myself: Why not?

I took my cell phone and searched "MSM8909 android oreo go" to see if anyone on XDA or another site had tried to develop something similar, but what I found was even more surprising:

The Lenovo Tab E10 (tb-x104f), a 10.1-inch tablet equipped with an MSM8909 processor, 1GB of RAM and 16GB of ROM and a screen resolution of 1280x800 (exactly the same specifications than the YOGA Tab 3!), and most importantly, Android Oreo (Go Edition) out of the box.

I never thought Lenovo would recycle their old plattforms to make new products, but they did it, and obviously this was an opportunity that I couldn't pass up.

This is my first post here, I hope to be welcome.

1) Original process, you might want to skip this point, I basically tried to port the ROM directly from the TB-X104F model (bad idea!):

- I downloaded two versions of the YT3-850F_S000025_151016 compilation of the YOGA Tab 3 from firmware247, one of them is OTA and the other is for flashing with QFIL.

- I downloaded the TB-X104F_S100050_200813 compilation of the E10 Tab from lolinet mirrors (QPST version)

This is because only QPST versions have been released for TB-X104F and not OTA versions, so I decided that I would get the system folder from the QPST files from both ROMs and not from the OTA files, but also, I needed the 850F OTA ROM to get an idea of what an X104F OTA ROM would look like, since I could try to rebuild it using files from the QPST version (which worked out very well).

To do that, I used two tools called packsparseimg and Imgextractor, developed by the members kidd (or kiddlu) and and_pDA, then published by Innfinite4evr and finally republished by the member zround, apparently this tool is no longer available on XDA, but I found it on a page called CaraRoot.

Here is a list with all the changes applied following the guide of The Hard Gamer and mshoaib7, I will highlight the important points.

(This guide was intended for porting Nougat roms, but I suppose it should work just as well for Oreo roms.)

- The META-INF folder did not exist in the rebuilt target rom so it was just copied from the base rom as the guide indicates.

- There is also no recovery folder, it was skipped.

- BIN, ETC, TTS, USR, XBIN and recovery-from-boot.p of the system folder were replaced by those of the base rom (ADDON.D does not exist in any of the 2).

- DRM, HW and SOUNDFX folders were replaced in the lib folder, inside system.

- All files named with LIBGLES*, LIBMM*, LIBHARDWARELEGACY, LIBRIL, LIBRILUTILS and LIBCAMERA* were replaced in the lib folder (there is no file named libwcnss_qmi, it was skipped).

- All files named with libactuator*, libchromatix*, libmmcamera*, libril*, liboemcamera and libimscamera were replaced in lib folder, inside vendor.

- The build.prop file of the target rom was replaced by the base rom file.

The following lines were modified:

ro.build.display.id=YT3-850F_OREO

ro.build.version.incremental=YT3-850F_OREO

ro.build.version.sdk=27

ro.build.version.preview_sdk=0

ro.build.version.codename=REL

ro.build.version.all_codenames=REL

ro.build.version.release=8.1.0

ro.build.version.security_patch=2020-08-05

ro.build.version.base_os=

(...)

ro.build.date=Thu Aug 13 16:55:25 CST 2020

ro.build.date.utc=1597308925

(...)

ro.build.flavor=hq_msm8909go-user

(...)

ro.product.ota.model=

(...)

#

# from device/huaqin/hq_msm8909go/system.prop

#

#

# system.prop for msm8909go

#

The following lines were not modified due to the paragraph that precedes them, I'm sure that not changing this will cause problems, but I don't know what else to do:

# Do not try to parse description, fingerprint, or thumbprint

ro.build.description=msm8909-user 5.1.1 LMY47V 387 release-keys

ro.build.fingerprint=Lenovo/YT3-850F/YT3-850F:5.1.1/LMY47V/YT3-850F_USR_S025_151016_Q1241_ROW:user/release-keys

ro.build.characteristics=tablet

ro.build.phonenumber.minmatch=

ro.build.network.type=wcdma_gsm

ro.build.water.mark=

ro.build.dulemode=

ro.hardware.version=60

ro.build.custom.swversion=YT3-850F_151016

ro.build.custom.hwversion=LenovoPad YT3-850F

and the following lines were not copied, but I'm curious to know what will happen if I do, comment below...

#

# ADDITIONAL_BUILD_PROPERTIES

#

ro.treble.enabled=true

- The boot.img was also modified, the changes were applied.

Additional changes that were not in the guide:

The splash.img, emmc_appsboot, rpm, sbl1 and tz files of the target rom were copied from the QPST folder to the rebuilt OTA folder.

¿Why? Because this is how they appear in the base ROM, I assumed they are necessary files, and the target ROM should have them too.

Also here are some files that the base rom has and the target rom doesn't:

file_contexts

NON-HLOS

data.new.dat

data.patch.dat

system.patch.dat

data.transfer.list

I also thought to include the recovery.img, but that would remove TWRP.

2) The current process:

- Install Ubuntu

- Create a working directory

- Download the Android Oreo source code and if possible Oreo Go directly and combine it with the Lenovo source code (which contains everything related to hardware).

- Compile and test.

3) The files.

Here you will find a direct access to my drive, where you will find everything related to the project.

Project Yoga Tab 3 Oreo

That way and if you are interested in collaborating, you can do more things with them and post your recommendations in this thread. Also don't forget that below you can let me know if I forgot to do something, or if there is anything else I need to do before trying to flash this on my new motherboard.

I hope you liked this work.

With the college exams so close, I hope it won't be long until I post an update at least.

See you soon!