Extract past & present FireOS Cloud Front links for misc Fire devices: - Fire TV General

This thread is note to self. Feel free to follow, but it's not meant for beginners.
The idea is to change build.prop to older build #s (on a rooted device with TWRP !), and force Amazon to provide some earlier versions as well which are otherwise obfuscated. On existing not freshly reset devices, Amazon seems to do updates in sequence in order to avoid unhappy users if jumpy updates disable the apps, thus providing older versions as well in the sequence. This approach was tested on Fire stick 2, and the links to 2 very old versions were recovered as a proof of concept:
Fire TV Stick 2 Firmware and apps. Official Cloud Front direct links
@rbox, @0815hoffi, @Sus_i, @Kramar111, @k4y0z, @Ighor, @Pretoriano80 and others, Let's do a thread similar to 4k. Please contribute the cloudfront links you have for other versions. Sharing is caring! Let me seed a few links, the 2 very early...
forum.xda-developers.com
But this should work fine for other rooted Fire TV devices with TWRP, such as Fire 4k.
In comparison, another method inflates the version numbers, as to avoid any updates ( @aftvnews ):
How to block updates on a rooted Fire TV or Fire TV Stick by setting a custom Fire OS version number
This is a new method of blocking software updates on a rooted Fire TV or Fire TV Stick. It involves setting a custom software version number in the device's build.prop configuration file. Rbox came up with this idea and asked me to test if it works.
www.aftvnews.com
To simplify things, I assume you have build.prop for the current FireOS and the old one you want to "upgrade":
Code:
grep -v ro.build build.prop.current > build.prop.tmp
grep ro.build build.prop.old >> build.prop.tmp
Once you have the hybrid build.prop.tmp, copy it into /system/build.prop . Reboot. Start logcat watch:
How to grab URL ota update of any android device??
Sent from my AO5510 using XDA Free mobile app
forum.xda-developers.com
Check for updates in the menu. It should start downloading an old version. It may do an incremental one. Wait for it to fail in TWRP. If it fails immediately (without a reboot to TWRP), clear /cache and /dalvik (via a reboot to TWRP), and try again. Once an incremental version fails properly in TWRP, it will try to download the full one. Soon enough, you'll be able to fish out the link to the full old version from logcat (grep cloudfront).
It's possible only 1 line in build.prop needs to be changed, but I have not tested if 1 variable ( ro.build.version.number ?) really works on its own. That's why I was replacing all "ro.build" lines.

Related

[TOOL]Playstore, No ADs, Launcher, BusyBox, Root and more! Noob friendly one-click

-----------PROJECT HAS BEEN ABANDON AND IS OBSOLETE----------
-----------PROJECT HAS BEEN ABANDON AND IS OBSOLETE----------
-----------PROJECT HAS BEEN ABANDON AND IS OBSOLETE----------
WORKS ON 5.1.1 ALSO!
(Link in next reply)
Fully automated and noob friendly. :3
Done:
Root
BusyBox
Disable OTA
Change Launcher
Install full Google Play Functionality
Autoinstall flash player
build.prop optimizations
A few more features...
This may be compatible with other fires, but I have only tested it on the Fire 7" 5th generation.
This is a script I wrote in my spare time.
This script will optimize, root, install google play, and debloat your device.
Enjoy :3 Don't forget to hit thanks.
STEPS
1. In device options, tap on serial number until the developer options appear. If required (which it is likely not, but for some it is. DON'T DO THIS IF IT'S ALREADY WORKING.) install the ADB driver by going into the device manager of windows and rightclick update driver on your device under unkown devices, then point it to the driver folder included in this zip, or, you know, try the driver installer .exe included. Make sure driver signature enforcement is disabled in Windows!
2. Go into the developer options of android and enable Debugging
3. Go to the homescreen on the tablet, EXTRACT the zip on your computer, and run the script 1_ROOT_FIRE.bat in the zip on your computer.
This should only take around five minutes too complete.
YOUR DEVICE WILL REBOOT SEVERAL TIMES.
Easy enough, right? :3
Troubleshooting:
Unless you are running Fire OS 5 or higher, using this script probably won't get you playstore access, but it may root it. This was made primarily for the Amazon Fire 5th Generation 7" Tablet. (The "50 dollar tablet")
Don't run as root or admin.
If your device gets stuck in fastboot:
When the device reboots and goes into fastboot mode the drivers didn't recognise it. Leave the script running and go into Device Manager. Your Kindle will be listed as "Fire" with a yellow icon. Follow same steps to install drivers but instead of directing it to the "usb driver" folder contained in the zip file - select "let me pick from a list of drivers". Then pick adb interface then scroll to the bottom and select the last option.
The script hangs on adb daemon started:
If it hangs there, android debugging on your device isn't communicating with your computer. The fix can range from reconnecting your device, making sure android debugging is enabled in the Device> Developer options, making sure adb drivers are installed, or restarting the script.
Keep in mind, if you give this tablet to a non tech savvy user, open SuperSU, go to options, and click full unroot.
XDA:DevDB Information
AutoRootScript, Tool/Utility for the Amazon Fire
Contributors
glitch3yf0x, JaboJG, KennBr, k4y0z
Version Information
Status: Stable
Current Stable Version: 4.14
Created 2015-12-30
Last Updated 2016-04-08
Secondary Download Mirror
(Recommend) REGULAR VERSION:
https://www.androidfilehost.com/?fid=24352994023705981
NO DEBLOAT version:
https://www.androidfilehost.com/?fid=24391638059059079
Read the post below to choose the version right for you.
Version diffrences
Regular version: Choose this if you want the full android experience to your tablet with the added features of the script. This will remove all the unwanted Amazon bloatware that fills up the internal storage and will make your tablet feel more like an android tablet.
No debloat version: Choose this if you want to keep the Amazon experience with the added features of the script. This will leave Amazon's features and will make your tablet feel more like an Amazon tablet.
Notice: this script will not wipe or touch any of your files on the internal storage or sd card
Fully stable!
Great news! All bugs have been fixed! As of version 4.14 uploaded 1/5/16, all OS versions have been tested and are confirmed working properly. Enjoy!
If anything goes wrong, such as a USB cable being unplugged or the battery dying, pretty much anything can be fixed by booting into recovery and adb sideloading the latest firmware.bin from amazon.
Thanks for Donating:
Lorenzo
@BarbaraaK
So was the Mac OS X issues fixed?
pride0929 said:
So was the Mac OS X issues fixed?
Click to expand...
Click to collapse
I believe so [Old post. Issue fixed with 4.14, if there was one.]
I ran the script using OS X, everything seemed to go well. But the Fire is stuck booting at the "fire" logo.
Mac OS X
jmallow said:
I ran the script using OS X, everything seemed to go well. But the Fire is stuck booting at the "fire" logo.
Click to expand...
Click to collapse
Updated issue. [Issue fixed with 4.14, if there was one.]
glitch3yf0x said:
Give it 10 minutes before force rebooting. It may be rewriting cache. This is very odd. Any error messages on the computer?
Don't worry about your tablet. We can adb sideload if anything wen't wrong.
What OS is your tablet running? Is your tablet the Fire 7? It may be an issue with build.prop. I'm retesting it now using the Mac OS X source files. In the mean time, tell me if your Fire boots.
Click to expand...
Click to collapse
It's a 5th gen Fire 7 (the one that was released in Sept 2015). I side loaded to get back to factory, but mistakenly used the fire hd .bin file...and now it won't turn on at all. Lol. Might be a dead battery though I think, so its plugged in now. Will try again after a bit.
jmallow said:
It's a 5th gen Fire 7 (the one that was released in Sept 2015). I side loaded to get back to factory, but mistakenly used the fire hd .bin file...and now it won't turn on at all. Lol. Might be a dead battery though I think, so its plugged in now. Will try again after a bit.
Click to expand...
Click to collapse
Alright. Best of luck. I tested it on my fire again and there were no problems. If you have problems the second time tell me.
Any results?
glitch3yf0x said:
Any results?
Click to expand...
Click to collapse
I bricked it by installing the wrong version by mistake.
Hopefully Amazon warranty will replace it without question.
I've just run the script for my daughters fire 6 5th gen running 5.1.1 and all went smoothly. Has the look and feel of a great wee device now!
Thanks for your efforts ☺
Thread moved from http://forum.xda-developers.com/amazon-fire/general/root-fire-5th-gen-autoroot-script-noob-t3276923
Just installed this without a hitch. So far so good!! Thank you!!
Worked really well on 5.1.1 Thank you so much!
Now the only issue I have is that I want to use Google Now Launcher in place of Nova. Is there a way to do it?
EDIT: Never mind, it asked me which home to set after a reboot.
thehrushi said:
Worked really well on 5.1.1 Thank you so much!
Now the only issue I have is that I want to use Google Now Launcher in place of Nova. Is there a way to do it?
EDIT: Never mind, it asked me which home to set after a reboot.
Click to expand...
Click to collapse
I should post a poll. Google Now or Nova.
glitch3yf0x said:
I should post a poll. Google Now or Nova.
Click to expand...
Click to collapse
Just add a selector in the script and have it push the appropriate apk
BaT420 said:
Just add a selector in the script and have it push the appropriate apk
Click to expand...
Click to collapse
I was gonna suggest the same. Nova after rooting makes sense, since the widgets work. But I like Google Now on left swipe.
Yeahhh
Very good. Fire 7 2015 5.1.1.
Now I've an Android table not a garbage :good:
thanks a lot.

[UNLOCK][ROOT][TWRP][UNBRICK][DOWNGRADE] Fire 7 (ford and austin).

Read this whole guide before starting.
This is for the 5th gen Fire and 7th gen Fire
Current Version
5th gen: amonet-ford-v1.4.1.zip
7th gen: amonet-austin-v1.4.1.zip
What you need:
A Linux installation or live-system
A micro-USB cable
If your Fire is on a newer preloader-version (or a 7th gen) you may also need:
Something conductive (paperclip, tweezers etc)
Something to open the tablet.
There is an alternative for opening the tablet (only 5th gen), which is described below.
Install python3, PySerial, adb and fastboot. For Debian/Ubuntu something like this should work:
Code:
sudo apt update
sudo add-apt-repository universe
sudo apt install python3 python3-serial adb fastboot
Make sure ModemManager is disabled or uninstalled:
Code:
sudo systemctl stop ModemManager
sudo systemctl disable ModemManager
NOTE: If you have issues running the scripts, you might have to run them using sudo.
Also try using different USB-ports (preferably USB-2.0-ports)
If you're lucky and have an old preloader (Up to FireOS 5.3.2, thanks @MontysEvilTwin), you can just hold the left volume button while plugging the device in.
If you're on a newer preloader, there are two options:
Open the device and short the pin marked in the attached photo to ground while plugging in.
(Only 5th gen) Downgrade to 5.0.1 firmware via adb sideload in Amazon recovery, then proceed to use the left volume button to enter boot-rom.
NOTE: Using option two will brick your device until you have successfully finished the process.
1. Extract the attached zip-file "amonet-ford-v1.4.1.zip" (use "amonet-austin-v1.4.1.zip" for 7th gen) and open a terminal in that directory.
2. start the script:
Code:
sudo ./bootrom-step.sh
It should now say Waiting for bootrom.
3. If you have an old preloader or used option 2 above:
Hold the left volume-button and plug the device in.
If you chose option 1, short the device according to the attached photo and plug it in.
NOTE: Make sure the device is powered off, before plugging it in.
NOTE: If you have issues getting a 7th gen into bootrom, read this post by @hwmod
NOTE: For hints, how to access the pins on a 7th gen without removing the shield, check Post 1075 by @shelleyfrank
NOTE:
In lsusb the boot-rom shows up as:
Code:
Bus 002 Device 013: ID [b]0e8d:0003[/b] MediaTek Inc. MT6227 phone
If it shows up as:
Code:
Bus 002 Device 014: ID [b]0e8d:2000[/b] MediaTek Inc. MT65xx Preloader
instead, you are in preloader-mode, try again.
dmesg lists the correct device as:
Code:
[ 6383.962057] usb 2-2: New USB device found, idVendor=[b]0e8d[/b], idProduct=[b]0003[/b], bcdDevice= 1.00
4. When the script asks you to remove the short, remove the short and press enter.
5. Wait for the script to finish.
If it stalls at some point, stop it and restart the process from step 2.
6. Your device should now reboot into unlocked fastboot state.
7. Run
Code:
sudo ./fastboot-step.sh
8. Wait for the device to reboot into TWRP.
9. Use TWRP to flash custom ROM, Magisk or SuperSU
To return back to stock, Go into hacked fastboot-mode, then run
Code:
sudo ./stock-recovery.sh
Your device should reboot into amazon recovery. Use adb sideload to install stock image from there.
NOTE:
Only ever flash boot/recovery images using TWRP, if you use FlashFire or other methods that are not aware of the exploit,
your device will likely not boot anymore (unless you flashed a signed image).
TWRP will patch recovery/boot-images on the fly.
NOTE:
fastboot-step flashes the 5.6.3 boot.img, if your device hangs at the orange fire logo, try wiping cache first.
If that doesn't help, your system is probably incompatible with that image, just flash the right boot.img via TWRP.
NOTE:
This process does not disable OTA or does any other modifications to your system.
You will have to do that according to the other guides in this forum.
Very special thanks to @xyz` for making all this possible and putting up with the countless questions I have asked, helping me finish this.
Thanks also to @ANDROID2468 and @bibikalka for testing things.
Thanks to @mateo121212 and @hwmod for debugging 7th gen.
Thanks to @MontysEvilTwin for figuring out volume-button access works up to FireOS 5.3.2, and for figuring out that 5.3.2 PL/TZ fix prime video.
Features.
Uses 5.3.2 Preloader/TZ for easy access to bootrom (using left volume button/only 5th gen)
Uses 5.6.3 LK for full compatibility with newer kernels.
Hacked fastboot mode lets you use all fastboot commands (flash etc).
Boots custom/unsigned kernel-images (need to be patched)
Sets androidboot.unlocked_kernel=true (enables adb root-shell)
For the devs: sets printk.disable_uart=0 (enables debug-output over UART).
NOTE: Hacked fastboot can be reached via TWRP.
NOTE: Hacked fastboot won't patch your boot/recovery-images, so you can easily go back to stock.
Use TWRP for autopatching.
Version 1.4 (25.03.2019)
Update TWRP to twrp-9.0 sources
Implement downgrade-protection for LK/PL/TZ
Add scripts to enter fastboot/recovery in case of bootloop
Automatically restore boot-patch when you boot into recovery
Version 1.3 (20.03.2019)
Fix Prime Video for ford (5th gen), thanks @MontysEvilTwin (See Post #537 for more info).
Version 1.2.1 (17.02.2019)
Fix bug in 7th gen.
16.02.2019
Now also unlock for the 7th gen
Version 1.2 (14.02.2019)
Updated TWRP to contain new microloader..
Added TWRP shell command reboot-amonet to reboot into hacked fastboot.
Version 1.1 (14.02.2019):
Fixed bug, caused when flashing large images via hacked fastboot.
Include stock recovery.img and script to flash back.
Source Code:
https://github.com/chaosmaster/amonet
https://github.com/chaosmaster/android_bootable_recovery
Nice job.
Anyone who wants to update to the latest FW without undoing the unlock you can get it here
I'm also releasing a customized fire os that I'm calling "fire os revamped" ( comes with nova launcher and other enhancements) it will be on xda soon
edit: here it is.
Sent from my VS986 using XDA Labs
So I can do this without opening it up if I'm on a newer version?
---------- Post added at 06:44 PM ---------- Previous post was at 06:34 PM ----------
So my 5.1.1 Fire, which I believe was originally on 5.0.1 worked.
---------- Post added at 06:51 PM ---------- Previous post was at 06:44 PM ----------
I mean it worked without having to brick or open it up.
k4y0z said:
Read this whole guide before starting.
...
Click to expand...
Click to collapse
@k4y0z awesome work ! My congratulations again for the great achievement and implementation.
Your solution is letting users revive their "bricks" and make them free to use their gadget as they wishes.
There is still some quirk I have on the 7th Gen tablets with the "microloader" code, though it works well
with the 5th Gen, so I am assuming that something can be improved on the 7th Gen and maybe in general.
Your work opens up to new ROMS and other possible use of the tablet for things I have been dreaming about
for long time, having Linux load from µSDCard, from SSD on OTG or from the network (BOOTP/DHCP/NFS ... ).
I know this will take some time and effort but now more than ever I feel the target objective is on sight.
The first thing would be rebuild a completely modular kernel, maybe a more recent one (4.x).
Make sure ModemManager is disabled or uninstalled:
Code:
sudo systemctl stop ModemManager
sudo systemctl disable ModemManager
NOTE: If you have issues running the scripts, you might have to run them using sudo.
Also try using different USB-ports (preferably USB-2.0-ports)
...
Click to expand...
Click to collapse
In all Linux OS the correct way for a normal user to gain read/write access to the serial ports (UARTs) is to make himself a member of the "dialup" group.
You can do this by issuing once the following command (two alternatives given here, use only one):
Code:
sudo adduser MY_USER_NAME dialout
or
Code:
usermod -a -G dialout MY_USER_NAME
This avoids using "sudo" and having to type password several times to gain permission to access the serial device,
it also solved many issues I was having due to multiple concurrent access to the Serial Ports and/or USB Ports from
various software and devices (Bluetooth, Camera, Phones, Digital Signing, Crypto Cards, Prolific/FTDI serial converters ... ).
And this is another suggestion for those continuously testing phones and tablets ...
To avoid trashing the tablet connectors due to continuous connect/disconnect of the USB cables I highly recommend
using the following type of USB Multiport Hub with power switches or similar (there are both USB 2.0 and USB 3.0 versions)
they are inexpensive and really unique in its type having an on/off switch for every port effectively help to avoid damaging connectors.
Have a good hacking night. :good:
.:HWMOD:.
---------- Post added at 02:34 AM ---------- Previous post was at 02:17 AM ----------
Pix12 said:
So I can do this without opening it up if I'm on a newer version?
---------- Post added at 06:44 PM ---------- Previous post was at 06:34 PM ----------
So my 5.1.1 Fire, which I believe was originally on 5.0.1 worked.
---------- Post added at 06:51 PM ---------- Previous post was at 06:44 PM ----------
I mean it worked without having to brick or open it up.
Click to expand...
Click to collapse
This is the proof that it was possible to make the hack available to a bigger group of users.
Another big achievement obtained by the awesome @k4y0z though in my tests this is not
always possible yet, more testing will probably reveal the reason and let's improve on that.
This is especially annoying on the 7th Gen tablets but I keep hoping a simpler way would help there.
Disconnecting the battery does the difference at times and that means just removing two small screws.
.:HWMOD:.
k4y0z said:
Read this whole guide before starting.
This is for the 5th gen Fire.
It can also be used to root a 7th gen, but there are some differences.
It's best you wait for a separate guide how to use this to root your 7th gen.
:
:
Very special thanks to @xyz' for making all this possible and putting up with the countless questions I have asked, helping me finish this.
Thanks also to @[email protected] and @bibikalka for testing things.
Click to expand...
Click to collapse
Outstanding contribution. Clear, concise and relevant to a broad community with appropriate acknowledgements. This is what XDA is all about.
hwmod said:
@k4y0z
There is still some quirk I have on the 7th Gen tablets with the "microloader" code, though it works well
with the 5th Gen, so I am assuming that something can be improved on the 7th Gen and maybe in general.
Click to expand...
Click to collapse
What quirks other than the non-functional screen?
Have you tested what I suggested in the other thread?
In all Linux OS the correct way for a normal user to gain read/write access to the serial ports (UARTs) is to make himself a member of the "dialup" group.
Click to expand...
Click to collapse
That would be the "correct" way of course, I just assumed people where using live-systems, so sudo seems like the easier solution.
k4y0z said:
What quirks other than the non-functional screen?
Have you tested what I suggested in the other thread?
That would be the "correct" way of course, I just assumed people where using live-systems, so sudo seems like the easier solution.
Click to expand...
Click to collapse
Yes I tried to use the file "boot.7th.patched.img" you shared and the UART but the tablet doesn't boot up,
it crashes as soon as the "microloader.bin" is executed, the logs says something like "undefined, aborting"
instead of printing the heading "microloader by xyz. Copyright 2019" as it does with the 5th Gen.
It doesn't print the message "Something went horribly wrong!" that the code print if an error is detected.
It seems the error has to do with a wrong load address, after the error the processor registers are dumped.
Two things I noticed the first shouldn't be a problem but all the image wrappers contains a residual
from the mt8163 platform, the parameters "bootopt=64S3,32N2,32N2". It is present also in "microloader.bin".
I understand that probably it doesn't do anything bad on our Fire mt8127 platform but removing these would
also ensure that possible behaviours are also removed and we don't have that "cmdline" parameter hanging
around without a precise scope.
The second thing is that it seems to me the "boot.7th.patched.img" you shared and asked me to try doesn't
come from version 5.6.3 of the firmware and that may be another point which might break the loading
process and the version mismatches I am seeing on the 7th Gen.
So we don''t have a native "preloader" for the 7th Gen that allow booting images as we have for the 5th Gen so
we are forced to use the one we have from 5th Gen but the we have no matching secondary loader and that
might be another reason we are having a hard time replicating the process that run smoothly on the 5th Gen.
However, even on the 7th we have gained "root" by using the "SuperSu" and also the TWRP seems to be working
well and following that path also the touch screen problems do not show up and everything run natively correct.
Now, what's happen when we face the update route is still unknown, however we will soon learn that since this
evening my 5th Gen downloaded as much as 18 components that needed to be updated on 5.6.3.
I captured them all and have saved the 18 pieces, all are "apk" files, no ".zip" and no ".bin" files.
I am going to download the update version you released today and the patched TWRP and
tomorrow I will restart testing everything again and will let you know if something changes and if there are
further improvements for the 7th Gen.
One request I have is: where can I put more kernel "cmdline" parameters as you did with "printk_disable_uart=0" ?
That's all for now, thank you again for the nice surprises !
.:HWMOD:.
hwmod said:
Yes I tried to use the file "boot.7th.patched.img" you shared and the UART but the tablet doesn't boot up,
it crashes as soon as the "microloader.bin" is executed, the logs says something like "undefined, aborting"
instead of printing the heading "microloader by xyz. Copyright 2019" as it does with the 5th Gen.
It doesn't print the message "Something went horribly wrong!" that the code print if an error is detected.
It seems the error has to do with a wrong load address, after the error the processor registers are dumped.
Click to expand...
Click to collapse
Ok that shouldn't happen, it should at least get further than that.
You are testing it with the 5th gen preloader/lk correct?
Maybe I messed something up creating the image.
I have attached a new one from the 7th 5.6.3 firmware.
Please use the new version 1.1 of the package I just updated a few minutes ago.
(It uses different addressing).
hwmod said:
Two things I noticed the first shouldn't be a problem but all the image wrappers contains a residual
from the mt8163 platform, the parameters "bootopt=64S3,32N2,32N2". It is present also in "microloader.bin".
I understand that probably it doesn't do anything bad on our Fire mt8127 platform but removing these would
also ensure that possible behaviours are also removed and we don't have that "cmdline" parameter hanging
around without a precise scope.
Click to expand...
Click to collapse
I don't think that will cause any issues, the kernel should at least load and print something to UART.
It's not even loading the microloader correctly. (which should work, since it works for TWRP)
hwmod said:
One request I have is: where can I put more kernel "cmdline" parameters as you did with "printk_disable_uart=0" ?
Click to expand...
Click to collapse
I will have to think about that, the flags would need to be stored somewhere.
Sadly the 5.6.3 bootloader doesn't suppoert "oem append-cmdline" anymore.
k4y0z said:
Ok that shouldn't happen, it should at least get further than that.
You are testing it with the 5th gen preloader/lk correct?
Maybe I messed something up creating the image.
I have attached a new one from the 7th 5.6.3 firmware.
Please use the new version 1.1 of the package I just updated a few minutes ago.
(It uses different addressing).
I don't think that will cause any issues, the kernel should at least load and print something to UART.
It's not even loading the microloader correctly. (which should work, since it works for TWRP)
I will have to think about that, the flags would need to be stored somewhere.
Sadly the 5.6.3 bootloader doesn't suppoert "oem append-cmdline" anymore.
Click to expand...
Click to collapse
What about "fastboot --cmdline" that is in the help of newer version ?
I have never been able to use that. Can that be made to work in some way ?
hwmod said:
What about "fastboot --cmdline" that is in the help of newer version ?
I have never been able to use that. Can that be made to work in some way ?
Click to expand...
Click to collapse
I haven't tried, my fastboot doesn't support this option.
If the 5.6.3 LK supports it, it should work in hacked fastboot mode.
k4y0z said:
I haven't tried, my fastboot doesn't support this option.
If the 5.6.3 LK supports it, it should work in hacked fastboot mode.
Click to expand...
Click to collapse
Here it is !
Taken from Fedora 29 should work on any recent Linux.
See the line I have made in bold in the included help output here.
Seems to indicate that "fastboot" will pass the "cmdline" parameter,
obviously it needs to be implemented in the target platform though.
Code:
# fastboot --help
usage: fastboot [OPTION...] COMMAND...
flashing:
update ZIP Flash all partitions from an update.zip package.
flashall Flash all partitions from $ANDROID_PRODUCT_OUT.
On A/B devices, flashed slot is set as active.
Secondary images may be flashed to inactive slot.
flash PARTITION [FILENAME] Flash given partition, using the image from
$ANDROID_PRODUCT_OUT if no filename is given.
basics:
devices [-l] List devices in bootloader (-l: with device paths).
getvar NAME Display given bootloader variable.
reboot [bootloader] Reboot device.
locking/unlocking:
flashing lock|unlock Lock/unlock partitions for flashing
flashing lock_critical|unlock_critical
Lock/unlock 'critical' bootloader partitions.
flashing get_unlock_ability
Check whether unlocking is allowed (1) or not(0).
advanced:
erase PARTITION Erase a flash partition.
format[:FS_TYPE[:SIZE]] PARTITION
Format a flash partition.
set_active SLOT Set the active slot.
oem [COMMAND...] Execute OEM-specific command.
boot image:
boot KERNEL [RAMDISK [SECOND]]
Download and boot kernel from RAM.
flash:raw PARTITION KERNEL [RAMDISK [SECOND]]
Create boot image and flash it.
[B] --cmdline CMDLINE Override kernel command line.[/B]
--base ADDRESS Set kernel base address (default: 0x10000000).
--kernel-offset Set kernel offset (default: 0x00008000).
--ramdisk-offset Set ramdisk offset (default: 0x01000000).
--tags-offset Set tags offset (default: 0x00000100).
--page-size BYTES Set flash page size (default: 2048).
--header-version VERSION Set boot image header version.
--os-version MAJOR[.MINOR[.PATCH]]
Set boot image OS version (default: 0.0.0).
--os-patch-level YYYY-MM-DD
Set boot image OS security patch level.
Android Things:
stage IN_FILE Sends given file to stage for the next command.
get_staged OUT_FILE Writes data staged by the last command to a file.
options:
-w Wipe userdata.
-s SERIAL Specify a USB device.
-s tcp|udp:HOST[:PORT] Specify a network device.
-S SIZE[K|M|G] Break into sparse files no larger than SIZE.
--slot SLOT Use SLOT; 'all' for both slots, 'other' for
non-current slot (default: current active slot).
--set-active[=SLOT] Sets the active slot before rebooting.
--skip-secondary Don't flash secondary slots in flashall/update.
--skip-reboot Don't reboot device after flashing.
--disable-verity Sets disable-verity when flashing vbmeta.
--disable-verification Sets disable-verification when flashing vbmeta.
--wipe-and-use-fbe Enable file-based encryption, wiping userdata.
--unbuffered Don't buffer input or output.
--verbose, -v Verbose output.
--version Display version.
--help, -h Show this message.
.:HWMOD:.
hwmod said:
Here it is !
Taken from Fedora 29 should work on any recent Linux.
See the line I have made in bold in the included help output here.
Seems to indicate that "fastboot" will pass the "cmdline" parameter,
obviously it needs to be implemented in the target platform though.
Click to expand...
Click to collapse
Just noticed in mine there is
-c <cmdline> Override kernel commandline.
Click to expand...
Click to collapse
I don't think it's supported by LK.
I suppose you could just rebuild a kernel-image with the appropriate cmdline.
k4y0z said:
Just noticed in mine there is
I don't think it's supported by LK.
I suppose you could just rebuild a kernel-image with the appropriate cmdline.
Click to expand...
Click to collapse
Yes that was another form of of passing the same arguments in a previous version of "fastboot".
I am keeping a collection of "fastboot" version and by looking to the "lk" binaries I see there are
still a lot of referrals string related to "cmdline" handling.
If there is a way to still pass some parameter it might be feasible to inject some on the "cmdline".
Another thing I have been exploring is the MISC partition which contains the ENV variable of "lk".
There is a parameter written in the "lk" environment which reside in that MISC partition which is
"off-mode-charge=1", that parameter is followed by a simple CRC sum of the bytes of the string.
I thought that maybe by writing more parameters in MISC it would result to a parameter injection
but I didn't have the success I hoped, maybe I didn't test well enough or failed something, anyway
that MISC partition is almost empty and maybe it can be used too as extra persistent memory should
we need to save something bigger than a couple of kilobytes.
Have fun !
.:HWMOD:.
~
k4y0z said:
If you're on a newer preloader, there are two options:
Open the device and short the pin marked in the attached photo to ground while plugging in.
Downgrade to 5.0.1 firmware via adb sideload in Amazon recovery, then proceed to use the left volume button to enter boot-rom.
Thanks also to @[email protected]
Click to expand...
Click to collapse
Wasn't exactly clear on this, so on the 7th gen we can sideload the 5.0.1 firmware (bricking the device) then we're able to enter boot-rom and are able to continue with the rest of the the steps?
Rortiz2 said:
@hwmod finally I rooted the fire 7 7th gen! Thanks to @mateo121212 !
Click to expand...
Click to collapse
with the new files k4y0z posted i am working on streamlining the process to make a simpler method for the 7th gen. also the SU 2.82 sr5 edits the .sh file that rebuilds the recovery. thats why some people lose there recovery even if they flash both system and boot from same FW.
.
~

Customizing the Fire TV Stick 4K (mantis) - Debloat - Replace launcher and Testing

EDIT (12/08/22): Parts of this guide may be out of date, it hasn't been updated since December 2019.
TL; DR Version in the second post, it's also a short overall summary. Might be best to have a look so you don't get overwhelmed by this first post.
Just thought I would share my experience with the 4K. Just as an FYI this is my first firestick and I've only had it for about a week but I've been playing with it quite a bit.
Personally I'm interested in removing all amazon related products/apps/services etc. With the exception of the store as I would like to get some of my apps through it.
Making it as lean and fast as possible.
Getting as close to AndroidTV as possible without losing any functionally and keeping stability.
I'm primarily interested in Plex and/or Kodi (with no addon apps, just vanilla kodi).
Having root. I like to have the ability to do anything, and I personally found rooting the stick easy so I found no reason not to do it. With that in mind everything I did I had root. I have no idea if any of these steps work without root.
Pre info
I chose to not flash the Prerooted Stock Image due to the comment Sus_i made here. I updated, then rooted.
EDIT (12/08/22): Updating before rooting is no longer recommended.
Step1
Plug it in, run through the setup and let it update. Go to settings -> My Fire TV -> Developer Options and enable ADB Debugging and Apps from Unknown Sources.
Step 2
Root it!
Guide here
This guide/post was helpful also. There is a good video of them opening up the firestick to access the necessary point to short/ground to allow the root script to work. Just be careful with what you use. I just used a small copper wire.
After getting root. Put it back in the case. and plug it in to your tv.
Step 3
Running commands with adb
Get and install adblink, link here
Information on how to use it is on the site. You will need to get the IP address of the firestick. Go to setting -> device -> network -> about
open adblink
click adb shell
type
Code:
reboot recovery
then enter
You'll now be in TWRP
Step 4
Install Magisk
Get the latest stable magisk zip from here
No need for the Magisk Manager apk, that will get installed with the above zip.
Put the zip in the same folder that the adblink.exe is in. (you can find that by clicking adb shell in adb link and then typing exit, then enter. It will show you where you should put the zip file)
Open adblink if you closed it (just leave it open)
click adb shell
which should show the bellow on screen
Code:
mantis:/$
type exit
then paste the following (replace the "Magisk-v20.1.zip" with the correct name of the magisk zip you downloaded)
Code:
adb push Magisk-v20.1.zip /sdcard/
then type
Code:
adb shell
echo "--update_package=/sdcard/Magisk-v20.1.zip" > /cache/recovery/command
echo "--wipe_cache" >> /cache/recovery/command
reboot recovery
It will reboot and install magisk, then reboot to the launcher.
You can now check if you like if magisk is installed correctly and if you have root (you should)
Step 5
Install [Magisk][Module] FireTV 4K Stick Add-Ons
This gets rid of the amazon launcher and does a few other things, including installing xposed framework.
Follow the instructions in that thread. But here's some additional info. Which is just a copy of how we installed magisk.
Download and put the zip in the same folder that the adblink.exe is in.
Open adblink if you closed it (just leave it open)
click adb shell
which should show the bellow on screen
Code:
mantis:/$
type exit
then paste the following (replace the "AFTV-MM-1.9.zip" with the correct name of the AFTV-MM .zip you downloaded)
Code:
adb push AFTV-MM-1.9.zipp /sdcard/
then type
Code:
adb shell
echo "--update_package=/sdcard/AFTV-MM-1.9.zip" > /cache/recovery/command
echo "--wipe_cache" >> /cache/recovery/command
reboot recovery
It will reboot and install AFTV-MM, then reboot to the launcher. It does some things automatically on first boot and may reboot on it's own just let it do it's thing. Some additional commands need to be run via ADB, go to the thread and follow the instructions there: [Magisk][Module] FireTV 4K Stick Add-Ons
Step 6
Remove amazon bloat. *More info below*
Now I've seen a few lists here and there and tried to guess which things to disable on my own until I found these scripts.
Now these scripts weren't made for the 4k (mantis) firestick as you can see from the compatibility list. But I assumed the packages installed would be close so I'm guessing this isn't a bad starting point. But just remember this clearly wasn't meant for this device.
Download the script from here All credit for the original script goes to esc0rtd3w.
and put it in your adblink folder.
Open adblink if you closed it (just leave it open)
click adb shell
which should show the bellow on screen
Code:
mantis:/$
type exit
Code:
adb push bloat-disable.sh /sdcard/
then type
Code:
adb shell
su
cp /sdcard/bloat-disable.sh /data/local/tmp/
chmod 755 /data/local/tmp/bloat-disable.sh
sh /data/local/tmp/bloat-disable.sh
The script will then disable all the bloat. If you would like to enable all the bloat then use this script, download it and follow the same instruction from above. If you just need to enable a single app/service then you can run:
Code:
adb shell
su
pm enable com.amazon.dcp
replacing "com.amazon.dcp" with the app you want to enable.
Step 7
If you want Kodi as the launcher
You can get a modified apk here The thread where this came from originally is here Discussion of an update here
Side load the apk with adblink. Should be self explanatory, click install apk. Once installed open LauncherHijack and select Kodi as the launcher.
Step 8
Setting Kodi (or any other launcher) as the launcher
Install Launcher Hijack (Clone Mod), get the apk here
Follow the instructions here to install it and get it working. By now you should be getting comfortable with abdlink, use it to install the apks and run the adb shell commands.
Other apps to install
Smart Youtube TV (no ads)
OpenVPN install if you want or need it. In my case I need to slightly deviate from the guide. I simply didn't need to create the login.conf file. I Just copied opvn config over and then in settings chose "Certificates" for type and insert the password in "private key password".
That's it for now. I'm curious what other modifications can be done on the 4K (mantis). I'm thinking about/planning on trying a few I've seen around. I think as long as I can get back to TWRP then worse case I should be able to flash the stock ROM to recover. Would be interested to hear what other people may have pulled off.
*Step 6 more info*
This script will remove all packages that esc0rtd3w deemed safe to remove as of Fire OS 5.2.7.2 on the FireStick2. It will leave the amazon launcher enabled and allow use of the amazon app store. The amazon app store can also be disabled but disabling the amazon launcher breaks access to the settings.
My slightly edited version of his script
esc0rtd3w firestick-loader github. All credit for the script goes to him.
List of services/packages that are new for Fire OS 6.2.6.8
If anyone can inform me of the packages/services that can be safely disabled, please let me know and I can include them in the script. For now they are left untouched/enabled.
Info I found and used for this post
[UNLOCK][ROOT][TWRP][UNBRICK] Fire TV Stick 4K (mantis)
[Magisk][Module] FireTV 4K Stick Add-Ons
[FireTVStick4k] Updated Info November 2019
[NEWBIE GUIDE] How to Unlock Bootloader/Root and install Addons FireStick 4k
FireTV4k Stick: Achieving Root With Magisk
[LAUNCHER] XBMC/Kodi for Fire TV (Root)
Updated Kodi 18.5 version by the developer elmerohuesoWhich is posted here
Install OpenVPN on fireTV (no root required)
Running scripts on the Firestick, in this case the disable-bloat.sh script
This assumes you have an understanding of how to use adb and if more detail of any of the following steps is necessary then follow the steps in the first post.
Step 1
Plug it in, run through the setup and let it update. Enable ADB and Unknown Sources.
Step 2
Root it!
Guide here
Step 3
Get adb installed
Step 4
Install Magisk
Step 5
Install [Magisk][Module] FireTV 4K Stick Add-Ons
Step 6
Remove amazon bloat.
Download the script from here
Run on firestick via ADB
Step 7
If you want Kodi as the launcher, See the first post.
Step 8
Setting Kodi (or any other launcher) as the launcher, See the first post.
Step 9
Install other apps
OpenVPN install Seeing first post for more info
Smart Youtube TV (no ads)
Step 10
Other Tweaks
Stop firestick from going to sleep/returning to the home screen.
Things that don't work or I'm interested in trying to get working.
-Can't "install" apps from amazon. The app store is there and can install from "the cloud" but can't search for new apps. Likely due to something being disabled., just not sure what. I assume installing from amazon web into the cloud or something like that could be a work around. Might be that the only way to search for apps is with the default launcher?
-Voice search doesn't work. Looks like some people have kind of gotten it to work but I have not.
-Chromecast support.
Both would likely have a better chance if google play services/store could be installed. I see there was some effort put forth in trying to do that on previous firetvstick models so I may try some of the info that is out there. Seeing as we now have root its a lot more possible.....I assume.
reserved 1
reserved 2
I keep meaning to test nanodroid with microg & the patched play store. I've not done it yet as I was afraid patching the system would screw everything up & I had so much difficulty getting bootloader patched to begin with. It may not be necessary to patch system, I recall using an xposed module for spoofing some time ago on an old phone so that could be a possibility.
It might not work, but there's probably less that can go wrong as there's less "deep" system integration than using official gapps. Just an idea if you fancy trying it.
Booting between FireOS and TWRP
Below are the first steps in rooting the firestick 4k:
Once it reboot’s into TWRP do you now have root privs?
Can you stop here and not install a “pre-rooted image”?
Can I now boot between FireOS and TWRP if so How?
Thank You,
1.Boot the ISO
2.Download and extract the exploit package.
3.Open a terminal in the kamakiri directory
Run
Code:
4. ./bootrom-step.sh
Short one of the points in the attached photo to ground (the cage of the shielding).
Ideally you want to use DAT0, since that is tiny it might be easier to short the point marked CLK instead.
It is very important that you use a piece of soft wire or aluminum foil or something similar for shorting. Don't use tweezers as that makes it incredibly easy to knock of the capacitor off the PCB and kill the board!
5. Connect the stick to your computer (while keeping it shorted)Both USB and HDMI ???
6. The script should tell you to release the short and hit enter
Once finished run
Code:
7. ./fastboot-step.sh
Your device will now reboot into TWRP
RPM99 said:
Below are the first steps in rooting the firestick 4k:
Once it reboot’s into TWRP do you now have root privs? (Yes, but you need to install magisk to manage su)
Can you stop here and not install a “pre-rooted image”? (Yes, you don't need to install the image)
Can I now boot between FireOS and TWRP if so How? (adb commands or the reboot menu if you have the magisk module installed. For adb, insure you have adb debugging turned on, then log into the firestick (that's all in the guide) and run "reboot recovery")
Thank You,
1.Boot the ISO
2.Download and extract the exploit package.
3.Open a terminal in the kamakiri directory
Run
Code:
4. ./bootrom-step.sh
Short one of the points in the attached photo to ground (the cage of the shielding).
Ideally you want to use DAT0, since that is tiny it might be easier to short the point marked CLK instead.
It is very important that you use a piece of soft wire or aluminum foil or something similar for shorting. Don't use tweezers as that makes it incredibly easy to knock of the capacitor off the PCB and kill the board!
5. Connect the stick to your computer (while keeping it shorted)Both USB and HDMI ??? (hdmi isn't needed, just usb)
6. The script should tell you to release the short and hit enter
Once finished run
Code:
7. ./fastboot-step.sh
Your device will now reboot into TWRP
Click to expand...
Click to collapse
I replied inline in brackets. On mobile so a pain to in another way.
Thanks for the clarification
bnevets27 said:
I replied inline in brackets. On mobile so a pain to in another way.
Click to expand...
Click to collapse
Hi,
Inline with great answers is just fine, thank you.
I will investigate magisk, I didn't realize that's what it is for.
And "reboot recovery" at the adb command line will put me back in TWRP mode - This was great info!!
I ordered a new firestick to try this on, it will be here next week so I have some time to read up.
Thanks again,
Steve
More questions if you can please
RPM99 said:
Hi,
Inline with great answers is just fine, thank you.
I will investigate magisk, I didn't realize that's what it is for.
And "reboot recovery" at the adb command line will put me back in TWRP mode - This was great info!!
I ordered a new firestick to try this on, it will be here next week so I have some time to read up.
Thanks again,
Steve
Click to expand...
Click to collapse
When you short to ground and then plug into usb to boot firestick is that considered bootloader mode?
At what point is the greatest risk of bricking the firestick?
Thanks,
Steve
RPM99 said:
When you short to ground and then plug into usb to boot firestick is that considered bootloader mode?
At what point is the greatest risk of bricking the firestick?
Thanks,
Steve
Click to expand...
Click to collapse
I guess that would probably be technically correct.
Only time there's a chance of bricking, usually for flash anything, is during the writing process. Or a corrupt file.
I've done a hand full and haven't had any issues. Just take normal precautions like do what you can to prevent a power outage during the flash and once it's plugged in and flashing don't touch anything till its finished.
Personally I plugged in the mirco USB into the firestick first, then lined up the USB into the computer but didn't push it in. Held a small solid copper wire against the rf shield (the metal that surrounds the chip) and touched the side of what I think is a capacitor (you can't get to clk without taking the surrounding metal piece off). It's the "other" point they mention you can use. While doing that with one hand I plug in the USB to the computer. Remember the script has to be run first, waiting to see the stick before you plug it in.
If you miss time it or don't make the connection, the script just won't tell you to remove the short and press enter, so you'll just have to try again.
bnevets27 said:
...
Both would likely have a better chance if google play services/store could be installed. I see there was some effort put forth in trying to do that on previous firetvstick models so I may try some of the info that is out there. Seeing as we now have root its a lot more possible.....I assume.
Click to expand...
Click to collapse
Did you try https://forum.xda-developers.com/fire-tv/development/magisk-gapps-fireos-6-t4019095 ?
Kramar111 said:
Did you try https://forum.xda-developers.com/fire-tv/development/magisk-gapps-fireos-6-t4019095 ?
Click to expand...
Click to collapse
I haven't no. I might have missed that one. I've been pretty happy the the end result of using his module in this thread. And after updating to the latest version, voice search is working for me.
I have some other projects at the moment so I'm not working on this but I'll come back to later on.
bnevets27 said:
I haven't no. I might have missed that one. I've been pretty happy the the end result of using his module in this thread. And after updating to the latest version, voice search is working for me.
I have some other projects at the moment so I'm not working on this but I'll come back to later on.
Click to expand...
Click to collapse
When you say voice search is working, does that mean you can click the little mic icon at the top left of the Android TV launcher and it will search? Does it work well? Thanks
gogorman said:
When you say voice search is working, does that mean you can click the little mic icon at the top left of the Android TV launcher and it will search? Does it work well? Thanks
Click to expand...
Click to collapse
Yeah you have to click the mic on screen then the mic on the remote. Seems to work pretty well but haven't used it much more then just to see if it worked.
bnevets27 said:
Step 2
Root it!
Guide here
Click to expand...
Click to collapse
This exploit does not give you root. This unlocks the bootloader and then installs TWRP recovery.
.... I just used a small copper wire.
Click to expand...
Click to collapse
I used a Reese's candy wrapper! I just rolled it between my fingers and wedged it under the metal "cover," touching the CLK and DATA points. Then plugged it in to the USB port.
Step 4
Install Magisk
Click to expand...
Click to collapse
This is what gives you ROOT access.
Took me a while, reading through all the threads, to figure out which exploit does what.
Step 5
Install [Magisk][Module] FireTV 4K Stick Add-Ons
Click to expand...
Click to collapse
This module is great. It also disables Amazon firmware updates. There are a bunch of other tips in that thread too.
Thanks for the tips and tricks!
When trying to run the disable script I get i get an error at the last command. /data/local/tmp/bloat-disable.sh[7]: syntax error: 'newline' unexpected.When running command " sh /data/local/tmp/bloat-disable.sh "
Can you create a bloat-disable script dedicated to fire stick 4k (mantis) ? that would be beneficial for everyone.

A comprehensive guide to the Lenovo Yoga Tab 3 Pro (YT3-X90*) and a Cooked ROM

THESE COOKED ROMS ASSUME YOU HAVE ALREADY AN UNLOCKED BOOTLOADER AND TWRP AS RECOVERY SYSTEM. You can flash them using TWRP, after wiping ART, cache, data, boot and system partitions.
FINAL RELEASE: Well... this is the final release from me and it is specifically for the WiFi model. I hope it is worth it for you. It is more stable and somewhat updated, anyway, if you use a X90F (wifi model) you will probably like it. The other versions are still up for whatever reason. Here's the link. Follow this guide by @Quardah if you are coming from a factory ROM. Go to post 46 if you can't get past the setup wizard. A barely tested (by @Nuihc88) version for the 3G (X90L) model can be found here.
NOTICE: If you find this work useful, mirror it. I won't be hosting it for free forever and it is becoming a burden to my Nextcloud installation. One would say this is a pretty much forgotten thread, but I'm seeing almost daily download activity. I'm putting the ROM files offline now and getting away from XDA for a while. Please don't DM me for the files. If you are looking for them, ask others in this thread. Good bye.
||||||||||||||||||| FROM HERE IS JUST INFORMATION YOU PROBABLY DON'T NEED |||||||||||||||||||
Spoiler: NEWS THAT ARE NOT ANYMORE.
APRIL 9, 2021: You can find in these links a new version of the cooked ROM.
The link for the updated cooked ROM is: https://centsoarer.ddns.net/s/Y8o3eoBK4Ryx5RP. This is a version with GAPPS updated: https://centsoarer.ddns.net/s/FPKjgQcmW3CHZCw. Feel free to mirror, unless you are afraid of Lenovo's lawyers, but don't forget to share the link.
My personal version... even more debloated (if you don't need chinese, japanese, korean, or russian input support/apps) and with CPU tweaks for my own usage: https://centsoarer.ddns.net/s/jcCDAgNedryGRjo
KNOWN ISSUES AND SOLUTIONS:
1) One random reboot after the first boot will happen and it is normal.
2) I'd reccommend to stay with Magisk 21.4 for a while, Magisk Manager >21.4 won't manage your extensions.
3) If you can't get past the initial Setup Wizard check post 46. Basically you have to boot into bootloader, erase the config partition and format it again.
4) Needs confirmation, but versions with signature spoofing patches seem to break Lenovo's SmartSide Bar.
JUNE 12: Fast update on the Cooked ROM and TWRP and KERNEL. They are not as universal as I implied before. Proceed carefully since they may not work four your device/firmware. Make a Nandroid backup and only flash with testing purposes.
JUNE 5: So, I know this is not what everybody who owns this tablet wants to have (that is Android 9 or 10 of course) but, in recent weeks Lenovo updated the firmware of this tablets. It still is a Marshmallow one and it still sucks big time but I took it as a base and cooked it to deliver a newer TWRP recovery with compression, a flashable modified kernel and a cooked flashable stock ROM to free the owners of this tablets from the treacherous path of making this hardware to work properly. If you want a better overall experience and are in stock firmware you just need to Unlock your bootloader, flash TWRP, Format data partition (not only wipe), Wipe Cache, Dalvik/ART, System and DATA and flash the Cooked ROM to put this tablet in a sweeter spot. For details go to post #2!
JUNE 3: Been trying to get to know some of the source code available for Cherry Trail devices and I am fairly lost at building TWRP from source. Anyway, I ported a newer TWRP recovery IMG file for the YT3-X90F (maybe L, X, Y and Z) from the TWRP image for the Chuwi Hi10 Pro tablet from here, using AIK-Linux. The result is in the second post labeled as beta, since I only tested in the YT3-X90F model, running lollipop firmware. So far, it works fine flashing ZIP archives, backing up and restoring backups. Advantages? Well, backups are way lighter if you enable compression (like half the size), higher resolution, twrp turns off the screen with a timeout and whatever made them bump from version 2 to 3. While I could port a newer TWRP version, I just wanted to have lighter backups with compression... so maybe it is what it is .
ORIGINAL POST STARTS HERE. This is general information that I collected for geeks or desperate users that bricked their tablets. When I started this post it wasn't intended to produce a cooked ROM that would include most of these hacks. You don't need this if your tablet boots to Android or TWRP. You also don't need this if you are ready to flash the cooked ROM.
(This is a lenghty post. I suggest you to navigate by section header and find the one you might need.)
There are several Lenovo Yoga 3 tablet models out there and, while some of them enjoy of prime community support as the Yoga Tab 3 Plus, this Intel Atom powered tablet is pretty much forgotten and, at the same time, users were recently buying this tablet, which is a great piece of hardware but has the most terrible support by Lenovo.
Spoiler: WHAT LENOVO TABLET(S) IS THIS GUIDE FOR?
Basically, this is that Lenovo tablet with an attached projector and an Intel Atom Cherry Trail x5 Z8500. There are several models, though, to my knowledge they vary in their code names in the last letter, the two most basic ones (2GB RAM, 32 GB ROM) are the YT3-X90F and the YT3-X90L, the former connects to the internet by WiFi and the latter being the one with LTE/Phone capabilities. There are other models, though, and they vary on the amount of RAM and internal storage. Apparently, the YT3-X90[YX] models (the 4/64 GB refresh) have some use for these firmwares we describe, but in a very specific way, if you own a Y or X model, keep reading, especially the next section.
Spoiler: EXPLAINING HOW TO FIND THE RIGHT STOCK FIRMWARE
Lenovo support has been terrible (there are no words to describe it, really), so they launched this tablet with Android 5.1 Lollipop and they maintained it for a while but were very slow to deliver Android 6.0 Marshmallow. In fact, there was already Android Nougat, when they sent the Marshmallow update. Nevertheless, the update was bad. Performance issues were always a thing and some functionality went lost in the update (less intuitive multiple windows, a crippled recents activity/screen, and a laggy overall experience). Bottom line, they launched a curated Android Lollipop 5.1 firmware with security updates until March 2016 (striked because the last lollipop update f*cks up my sensors, except the light one) and a half-assed Android Marshmallow 6.0.1 firmware.
Of course, at the time, I'm guessing most of us upgraded to Android Marshmallow 6.0.1, hoping the upgrade would fix the issues in Lollipop or with security patches in mind. The reality was that Android 6.0.1 wasn't nearly as maintained as 5.1 and security ambitions went nowhere. So, we got the upgrade all right, but at this point, both Android versions can be considered inherently insecure and we really shouldn't be using it for sensitive work.
OK, there are several Android 5.1 and 6.0 firmwares, you can recognize them because they are all over the internet typically in a compressed format. For example, this firmware hosted in androidhost.ru named:
YT3-X90F_ENG_S100265_1601281130_WW24_ROW
Is a firmware for the Lenovo Yoga Tab 3 (YT3) Pro (X90) Wifi Version (F). The ENG part is an indication of the build type, ENG is an engineer build while USR is probably a firmware for the end user (this is common now that I know a bit more about AOSP source code), it is a Lollipop firmware (S1, Marshmallow would be a S2) with update version (00265), date of compilation and a good estimate of its security patch (1601281130), the WW24 is the weekly release version of the Android kernel for Intel devices (the latest, in May 2020, being WW31 which is exactly the same as WW28 and not updated since 2016), the final part means it is the global ROM version (ROW, opossed to the Chinese version CN). This is the latest Lollipop firmware I am aware of, so, as an example, an imaginary Android Marshmallow Chinese firmware for the LTE version of the Yoga Tab 3 would look like:
YT3-X90L_USR_S200013_1610141535_WW24_CN
As an additional note the Chinese ROMS, I presume, are not trusty but they are also Google-free for what it's worth. On the other hand, they ship with a "Lenovo Services Framework" that should be as intrusive as the Google Play Services. Oh, also, baidu and yandex, and, really, any less traditional search engine can help you find a fitting firmware.
Spoiler: EXPLAINING HOW TO FLASH A STOCK FIRMWARE (DOWNGRADE TO LOLLIPOP AND UNBRICK)
I did test several firmwares, chinese and global, lollipop and marshmallow and the safest and easiest way to flash them is by using the Intel Platform Flash Tool Lite . I can't say I trust in this site, but it hosts a handy tutorial on how to use it, though, is pretty intuitive. The software exists for Mac, Windows and Linux, be sure you are in, at least, the 5.8.x version, this is important to avoid the need to install some special drivers separately as a pre-requisite. Grossly, Intel Flash Tool Lite works like this:
0) Turn off your tablet if it is on.
1) Launch Intel Platform Flash Tool Lite.
2) If your downloaded firmware is in zip format load it with the blue "Browse..." button.
2 bis) OR, if your firmware is in other compressed formats, uncompress it first. After this use the "Browse..." button to load the "flash.json" file.
3) In Configuration option select "blank" if it isn't set already. Optionally, un-tick the "On-demand flash" option to have more control of this process. Also, maybe you can use the "erase" configuration here.
4) Start your tablet in DNX mode. To do this, press Vol- and hold it, then Vol+ and keep holding both, then press the Power button until it turns on and you see the Lenovo logo and some text indicating you are in said mode.
5) Connect your Yoga Tablet with a USB cable and your Intel Platform Flash Tool Lite windows should show it as detected. Now you can proceed using the blue "Start to flash" button.
6) Keep an eye on your tablet, since some firmwares will prompt to set some more options. Unless you know what you are doing, answer "Yes" to any question.
7) Reboot and wait.
If a couple hours have passed and the tablet hasn't booted, maybe you should try another firmware.
IMPORTANT NOTE AND INSTRUCTIONS FOR YT3-X90Y AND POTENTIALLY YT3-X90X USERS: I don't know the rules in xda about linking to other forums but in certain forum there is an answered question about the Y model (the 4/64 GB WiFi only refresh) on how to flash a firmware. Instructions are the same as I gave in this section, except, apparently, you need to do it twice, first with the ENG version and the second time with the USR version except you are not using the flash.json file, this time you'll browse for the flash_factory_1st_stage.json one and the factory1st configuration in fastboot. It is not clear what are the consequences of not doing it this way or what if you combine different firmware versions (it would be interesting to have a tester here). Notice please, these firmwares are marked for the YT3-X90F model. So, clarifying:
1) Follow the instructions above to flash the YT3-X90F_ENG firmware.
2) Power off your tablet.
3) Boot into bootloader (not in DNX, you need to boot into bootloader by powering on while holding Vol+).
4) From the YT3-X90F_USR firmware folder use Intel Platform Flashing Tool Lite to load the flash_factory_1st_stage.json and select the factory1st configuration.
5) After flashing the USR firmware, reboot and you should be good to go.
METANOTE: This wasn't tested by me, please do this only when you are hopeless with your hardware. This is just an educated guess but I bet it works the same with the YT3-X90L (the LTE version 2/32 GB Yoga Tab 3 Pro) and the YT3-X90X (the 4/64 GB refresh).
ALTERNATIVE WAY TO FLASH A STOCK FIRMWARE (ADVANCED USERS, requires fastboot)
Well, there is no need, really, to use that Intel tool. In my search for a lollipop firmware (I wanted to downgrade from Marshmallow) I found the firmware YT3-X90F_USR_S100195_1512052308_WW24_ROW in www.firmware247.com or www.androidfilehost.com (IMPORTANT: please read the note on downgrading to Android 5.1 Lollipop in the note at the end of this section). This firmware was special since, if you are in Windows and have fastboot executable ready and in place, you can run a script (run_me.bat) in the Windows terminal (CMD) or Powershell to flash the firmware semi-automatically. I think this firmware was modified, though, since I found differences in the boot.img when compared with stock firmwares. This script is credited to XDA members @ionioni and @joesnose and you can replicate its steps if you:
0) Turn off your tablet if it is on.
1) Start your tablet in DNX mode. To do this, press Vol- and hold it, then Vol+ and keep holding both, then press the Power button until it turns on and you see the Lenovo logo and some text indicating you are in said mode.
2) Connect your tablet to your fastboot enabled PC using a USB cable.
3) Input "fastboot flash osloader loader.efi"
4) Wait 5 seconds to be sure the loader flash finishes.
5) Reboot into Bootloader. If you don't know how, one way is to hold Vol+ and Power on your tablet.
6) Input "fastboot oem unlock" and confirm using Vol keys to select the right option and the Power button to enter it.
7) Input "fastboot flash system system.img"
8) Input "fastboot flash boot boot.img"
9) Input "fastboot flash recovery recovery.img"
10) Input "fastboot flash bootloader bootloader.img"
Follow your instincts, since I don't know if these IMG files are always named the same. You can get these IMG files from downloaded sources or dump them yourself using dd command.
NOTE ON DOWNGRADING TO ANDROID LOLLIPOP 5.1: So, one of my main concerns has been to go back to Android Lollipop. There is a last version of Lollipop from where you can upgrade to Marshmallow with a security patch from March 2016. Nevertheless, you MAY end up loosing other sensors except the light one. If this happens, you need to use a complete firmware flash using Intel Platform Flash Tool Lite. In my experience, some boot images are not compatible with other weird partitions like country or misc.
Spoiler: TWEAKS ALREADY IN THE COOKED ROM
The first boot takes some time even amounting for the time of the setup itself. By the time you are in the launcher tapping on app's icons you think there's nothing wrong with our device, but after some apps are in memory, you notice some lag. You think "OK, it is updating, but soon it'll settle", but it does not. So, you reboot again after updates and fire up a terminal emulator and connect to your tablet using a USB cable with USB debugging turned on and issue a free command to find something like this:
Code:
total used free shared buffers
Mem: 1950372 1820964 129408 0 7756
Swap: 524284 10740 513544
Total: 2474656 1831704 642952
Which means you have a total of ~2.5 GB (this is the 2 GB model). So, did I download that extra half GB of RAM or Lenovo was feeling generous? Well, no. The issue here is Lenovo built the kernel with zRAM support which is a technology included in Linux that reserves space in RAM to quickly compress and uncompress pages of data exceeding our physical amount of RAM installed (2 GB). This is not Virtual Memory as in a swap file/partition or Windows' Page File inside storage media. zRAM literally reserves a fixed amount of physical RAM space (blocks) to expand it by compressing data. The consequence is you loose "fast RAM" (THE RAM) and gain some "slow RAM" (the zRAM). You also sacrifice some CPU power to compress/decompress data and, with this, some battery juice is also lost.
That does not sound like a terrible trade-off for a RAM-limited device, one would think. Another interesting thing would be WHEN to send this piling data in "fast RAM" to the compressed space and WHEN to get it back. Two parameters control the WHENS, one is called "swappiness" (when to send it to the compressed space, the "slow RAM") and the other may be the "vfs_cache_pressure" (when to uncompress it and send it back to the "fast RAM"). And this is where the main problem is, really, because the kernel, Linux, is pressing the RAM constantly to send some less prioritary data to "slow RAM" and, at the same time, is trying constantly to send compressed data back to the "fast RAM". Summarizing, this kernel behavior is practically minimizing the fast RAM amount and usage while maximizing the "slow RAM" usage. This is nuts, by default a swappiness and a vfs_cache_pressure of 100 are not even default for servers, these parameters extremely prioritize that processes can get done no matter how slow they get, and they are even more nuts when Android is designed to work without swap space.
What that free command is telling us is the tablet is using the "slow RAM" even when we only just turned it on. Fortunately there are two ways to fix this problem: one is to completely disable zRAM, the other one is to use ZRAM a whole lot less by tweaking the swappiness and vfs_cache_pressure parameters. This can be easily done with the following sentences in a rooted tablet:
Code:
# echo 5 > /proc/sys/vm/swappiness
# echo 50 > echo 5 > /proc/sys/vm/vfs_cache_pressure
Or, to regain the whole fast RAM:
Code:
# swapoff /dev/block/zram*
One caveat of the first method, reducing swappiness, is there is still a lot of RAM (one quarter of the whole RAM in a 2 GB device) reserved as "slow RAM".
SOME ROMS DID NOT ENABLE KERNEL SAMEPAGE MERGING, UNFORTUNATELY
Additional to the sorry implementation of zRAM, some firmwares support a fabulous Linux tool to reduce RAM usage called Kernel Samepage Merging (KSM) but they don't use it by default. This software runs at kernel level, so, it really is CPU-wise inexpensive and, opposite to zRAM it can actually recover some RAM usage by reducing the amount of data flagged as redundant in physical RAM by merging it. KSM is good for you and you should have it always enabled by issuing the following command as root:
Code:
# echo 1 > /sys/kernel/mm/ksm/run
STOP WRITING AND FIX MY RAM! PLEASE!
Well... are there any people interested on this? With the above information you can write a script to execute at boot. Something like this should work in any version of the firmware:
Code:
#!/system/bin/sh
# Mount system as rw
busybox mount -o remount,rw -t auto /system
# Tweaking swappiness in zram
echo "5" > /proc/sys/vm/swappiness
echo "50" > /proc/sys/vm/vfs_cache_pressure
# Activating Kernel Samepage Merging
echo 1 > /sys/kernel/mm/ksm/run
# Remount system as ro. noatime option for faster and volatile system
# busybox mount -o ro,remount,noatime /system
busybox mount -o ro,remount /system
exit 1
Or, you can unpack the boot.img and modify the init.cht_ffd.rc (lollipop) or the init.r2_cht_ffd.rc (marshmallow) files to write these values as default... or, if there is interest for something easier, I can produce this boot.img files for you to flash using fastboot.
ROOTING THE LENOVO YOGA TAB 3 PRO (YT3-X90[FL])
Here I am not gonna write a lot. Instructions were given in this thread. I'd only recommend to put vm.targetutilization at 0.8 top 0.85 in system/build.prop
After rooting, debloat your firmware. I use the app "/system/app mover" from Fdroid to convert to user apps and uninstall them. Also, if rooting is not your cup of tea, you can install AppOps software to freeze all those apps that you don't use regularly. Also, I couldn't patch my services.jar for Signature Spoofing with Nanodroid patcher in the most recent lollipop firmware, but it did work in Marshmallow... anyway I'll do it manually.
ARE YT3-X90F AND YT3-X90L FIRMWARES INTERCHANGEABLE?
I own a WiFi only device (YT3-X90F) so I can't assert they are interchangeable. If I owned the LTE version and use a WiFi firmware I would expect to loose LTE functionality. Now, on the other direction is more interesting because I've been using a LTE firmware version for weeks (as a matter of fact, the one joesnose linked in his How-To debrick this tablet, flashed with the instructions I posted for advanced users it even updated to recent 2020 firmwares). The only tweak you need for this to work well is to add "ro.ril.disable=1" in the build.prop file. So, yes, firmware for the LTE version work in the WiFi version but kind of not vice versa.
Spoiler: YT3-X90(FL) UN-DEVELOPMENT
No news here. All capable people interested on developing for this device are all done with Lenovo and their attitude against Open Source. Don't expect your situation to change.
I'm happy to know there are still a couple of developers interested on this device. I won't cite them by linking their names but they are OOEvil and alquez, the first guy is trying to make a Generic System Image (GSI) ROM compatible with our tablet, I don't know the details so I wouldn't go further. Alquez has been active in this thread and, while he is trying to figure out how to build a kernel, he believes the best way to start having some alternative to official Lenovo firmware is by using a firmware kernel (a prebuilt kernel) to, first, build a more up-to-date TWRP recovery.img and from there try to build CyanogenMod 13, which was based on Android Marshmallow 6.0.1. My guess is newer Android versions wouldn't work if we can't build the kernel from source.
PHOTO ALBUM OF YT3/X90Y BIOS
This photo album documenting every screen option in the BIOS of the Yoga Tab 3 Pro may or may not help someone, but it contains a lot of useful hardware information and guidance for those attempting to boot something else than the original Android 5 or 6 firmware. Using this options, that are accessible through F2 at boot with an attached USB keyboard, you could try Linux distributions on the tablet or even attempt to run Windows, @alquez informs it works fine with a recent distro but the mainline kernel is lacking touchscreen and battery support. This is absolutely his work and he asked me to share it. I hope it serves someone. It is hosted in a rather obscure website but it was the only reasonable placeholder I could find for the 321 photos.
Hope this helps someone, I just didn't want to keep it to myself. Have a nice day!
Just remember, if your tablet is 3G capable I strongly suggest that you modify the line "ro.lenovo.tablet=wifi" to "ro.lenovo.tablet=3gdata" and remove the line "ro.radio.noril=true" to your build.prop file in /system. To do this you can use the section Build.prop Editor of the Kernel Adiutor app or you can do it manually if you have already a method to modify system files. If you do not use mobile data at all, you may leave the build.prop as it is, you'll save a lot of battery by using only wifi.
Spoiler: Some old info here, but maybe useful
ONLY FOR TESTING: Cooked ROM, newer TWRP and tweaked kernel
ONLY TRY THESE FOR TESTING PURPOSES, THE TWEAKS ARE ALL SAFE TO USE BUT ONLY FLASH FOR TESTING PURPOSES, PLEASE. FIRST, TRY TO USE FASTBOOT TO BOOT THE boot.img FILE WITHOUT FLASHING: IF IT BOOTS GO AHEAD AND TRY THE OTHER FILES (fastboot boot boot.img). THE TWRP IS NOT AS STABLE AS THE OTHER ONE HERE AT XDA BUT ALLOWS TO USE ZIP COMPRESSION IN BACKUPS. I AM NOT GONNA BE AROUND. IF YOU TRY SOMETHING MAKE A BACKUP FIRST. THIS DEVICE IS MESSY AS F*CK.
Spoiler: Some old info here, but maybe useful
I wrote a very detailed guide about these files I uploaded to my Nextcloud that include the newer TWRP-3.0.2, a TWRP flashable Cooked ROM and a separate kernel (boot.img) in case your system is already setup, but the post went to some XDA void and didn't upload. These are based on the YT3-X90L latest firmware, but they work on the X90F model too. The TWRP should work with Lollipop and Marshmallow firmwares.
I can't write everything again, so, the kernel contains better management of RAM and emmc (internal) memory, a 256 MB zRAM space instead of 512 and a more conservative approach to LowMemoryKiller.
The cooked ROM includes the described kernel and debloated apps, it's already rooted with Magisk (you can unroot with Magisk Uninstaller), an updated Busybox build, su.d support (I plan to use it with AFWall+), zipaligned apps, etc. It is for the X90L but possibly works for the other Yoga Tab 3 Pro models. It works for the X90F but it will reboot once after the first boot because the RIL configuration times out. To install the cooked ROM you need to:
0) Know that by doing this you will loose pretty much everything in your tablet. You start from scratch if everything goes smooth, if not you could possibly end up with a system without an OS. The usual stuff when you are customizing your system.
1) Boot into TWRP and make a Nandroid backup. IT IS IMPORTANT because @joesnose had problems with a "random reboot" and lost Bluetooth/WiFi after it. I am trying to look into this. The only difference is his tablet has 4 GB RAM and probably a different firmware.
2) Wipe cache, Dalvik/ART, System and Data in TWRP - Wipe, Advanced Wipe menu. If your tablet is encrypted, or in factory firmware you also need to explicitly use the button "Format Data partition" and confirm writing "yes" in the format procedure prompt. You will loose any configuration made to your tablet.
3) Install the superr_stockMM.zip wich is flashable by selecting the file from your Internal tablet memory, using the Install button in the main TWRP interface.
FOUR IMPORTANT NOTES TO COMMON ISSUES:
If you come from a stock firmware your data partition is encrypted. You need to pass a blank password in TWRP to continue to use the custom recovery. You also need to format data partition before flashing the cooked ROM.
If your tablet is WiFi-only I strongly suggest that you modify the line "ro.lenovo.tablet=3gdata" to "ro.lenovo.tablet=wifi" and add the line "ro.radio.noril=true" to your build.prop file in /system. To do this you can use the section Build.prop Editor of the Kernel Adiutor app or you can do it manually if you have already a method to modify system files. In Lollipop firmware you use "ro.ril.disable=1" instead of "ro.radio.noril=true" to get the same effect: sort of a conversion to WIFI-only tablet from LTE models. I'd argue this is useful to do if you are gonna be without LTE connection/service for long periods of time and I can think a couple of other uses.
Do not use stock Lenovo launcher unless you uninstall Magisk... they are incompatible for reasons I don't care to know and the Launcher will constantly FC (it is a pain in the arse).
If you are still expecting better performance I am sure there are some tweaks left in RAM management but it wont go too much further in 2 GB devices. Instead, you may consider to lower your display resolution and pixel density to something reasonable as 1400x2240 or even 1200x1920 maintaining the same aspect ratio. To do this you do not need to have root but you need to interact with the tablet using ADB. First change the size of your display:
Code:
adb shell wm size 1400x2240
Then adjust your density:
Code:
adb shell wm density 260
If still is not enough you can go even further with 1200x1920 and 224, use the same method to go back to stock with 1600x2560 and 300 to 302. This won't need a reboot but will probably cause an inconsistent UI that will lead to FCs and random reboot. You can just reboot after applying these tweaks. Unless you are really sight-gifted you won't notice a lot has changed but you will be dealing with 2.x Mpixels instead of 4.x Mpixels and that will help with your overall performance as well as your battery life sacrificing a pixel count that most of the people wouldn't even notice. If you did this correctly, in the next boot sequences you'll notice an offset on the Lenovo orange logo.
It is important to say that your display supports 1600x2560 pixels physically, but I'm assuming the GPU has no dedicated RAM and uses the device's, so, by reducing the quantity of pixels the GPU needs to deal with, the pressure on the device's RAM is also reduced.
EXTRA TIP: If boot annoys you just delete /system/media/boot.wav, bootanimation.zip and shutdownanimation.zip and you'll get a silent boot and the generic android boot animation.
Hope you enjoy your tablet!
TWRP-3.0.2.0- BETA: Again, this is not a flashable zip. Uncompress first and test the recovery system using "fastboot boot twrp_yt3-x90f_beta.img". If everything works for you, you may want to flash it permanently rebooting to bootloader and flashing with "fastboot flash recovery twrp_yt3-x90f_beta.img". Remember I did not test this in Marshmallow yet.
FEATURES:
- Fixed RAM issues (swapiness 10, vfs_cache_size 50 and disabled dynamic low memory killer tweaks and minfree values).
- Reduced zRAM size to only 256 MB.
- Tweaked interactive CPU scheduler to use other than min and max frequencies (but still responsive). The tweaks are based on the Advanced Interactive Governor Tweaks Guide. This may save battery life.
- Max frequency capped to 2.08 GHz (this is not great if you are a gamer). This tablet throttles when using max frequency for a long time, so, to save battery and keep it cooler I tweaked the CPU to run slower.
- Tweaked I/O schedulers to use deadline governor and read ahead cache to 640 kb (used benchmarks to get to this value).
- Force encryption disabled (to avoid applying ionioni script after flashing). Still needs to format data partition. You can encrypt your data partition later through Configuration -> Security user interface.
- Implemented native init.d support (not su.d anymore and no need to root the main OS).
- Busybox updated.
- Rooted with Magisk by default ( you can use Magisk uninstaller to unroot).
- Debloated apps. I also deleted Lenovo User Experience Program which was asking for root privileges even when you don't opt in to the Lenovo UE Program at setup wizard. I find this behavior shady.
-Multi-window mode is available in Developer Options and needs to be activated by you. In this mode if an app is compatible with multi-window mode you can double-tap on its title bar to enable Window mode. This function was more transparent in Lollipop firmware but it is still there in Marshmallow firmware if you change the build type to userdebug instead of user in build.prop (that's how I enabled it in the Cooked ROM).
- There are also other tweaks in VM and KSM.
And that's it, I'm not trying to change a lot, only the fundamental issues. But I suggest some other tweaks up there.
Such a shame. I love my Yoga Tab 3 Pro. Great hardware. But the software. Thanx anyway for your work.
Very nice write up. Thanks.
joesnose said:
Very nice write up. Thanks.
Click to expand...
Click to collapse
You're welcome. Thanks to you, while learning about this hardware your username pops everywhere.
jahfaby said:
Such a shame. I love my Yoga Tab 3 Pro. Great hardware. But the software. Thanx anyway for your work.
Click to expand...
Click to collapse
It really, really sucks. Let's hope something interesting happens after these strange and recent updates.
CENTSOARER said:
V1: The zip name boot_mod_mm.zip is based on the latest boot IMG provided by Lenovo. You need to first uncompress and flash it using fastboot (this is not a TWRP flshable zip). If you are uncomfortable flashing, you can test it only by issuing "fastboot boot boot_mm_march20_mod.img" once uncompressed, or, if you feel fine using it you can flash it permanently by using the command "fastboot flash boot boot_mm_march20_mod.img". This boot IMG will only work with Marshmallow firmwares in both YT3-X90(FL).
FEATURES:
- Fixed RAM issues (swapiness, vfs_cache_size and low memory killer tweaks).
- Reduced zRAM size to only 128 MB.
- Tweaked interactive CPU scheduler to use other than min and max frequencies (but still responsive). This saves battery life.
- Max frequency capped to 2.08 GHz (this is not great if you are a gamer). This tablet throttles when using max frequency for a long time, so, to save battery and keep it cooler I tweaked the CPU to run slower.
- Tweaked I/O schedulers to use deadline governor.
- Force encryption disabled (it's unnecesary to apply ionioni script now). Still needs to format data partition. You can encrypt your data partition later through Configuration->Security user interface.
Click to expand...
Click to collapse
Thanks for this. Going to take it for a spin.
joesnose said:
Thanks for this. Going to take it for a spin.
Click to expand...
Click to collapse
Please, please provide feedback and don't forget to wipe caches.
alquez said:
"No news here. All capable people interested on developing for this device are all done with Lenovo and their attitude against Open Source. Don't expect your situation to change."
https://github.com/intel/ProductionKernelQuilts this repository containts patches necessary to create base 3.14.55 and 3.14.64 uefi/cht-m1stable kernel tree. The same tree that was butchered by Lenovo in their OPEN_SOURCE "release".
Check this file https://github.com/intel/ProductionKernelQuilts/blob/master/uefi/cht-m1stable/ChangeReport.md and the WW24 part in the "YT3-X90F_ENG_S100265_1601281130_WW24_ROW" will become more clear
Quilt manual: https://elinux.org/images/7/74/Maintaining_Multiple_Android_Linux_Kernels_at_Intel.pdf
If someone would be looking for a good piece to start: the best would be to recreate 3.14.55 or 3.14.64 from the quilts, use the x86_64 defconfig and build a kernel which can be booted. In order to test this, the best solution is to repack TWRP with the new kernel and do "fastboot boot" without flashing, until it boots and the touch screen is working. There's no other way i'm afraid.
I have prepared complete photo documentation of UEFI Bios, i can share, currently moving to different google photos account. Its over 300 photos.
Please, set up a Discord channel if you want to proceed. The first month will be quite boring and daunting because it's going to be build -> repack -> boot -> rant
Click to expand...
Click to collapse
In my defense, when I wrote that sentence was after taking a peek on your github profile, I figured you were just done with the Yoga Tab 3 Pro. I am really, really glad you're still trying and I recognize you are very capable of changing things for this device. I appreciate the sources you link but I am afraid I am useless as a developer, partly because of a lack of time and partly because of a lack of adequate training. I will try to help as much as I can, though. Thanks for the post.
alquez said:
No worries, however if anyone is interested how to actually crunch this one: we have a working prebuild kernel which can be pulled of boot image, and we have a working TWRP, however it looks like TWRP wasn't actually built from source, but cooked using android kitchen so we're still missing a device tree, which in my opinion is a good place to start, because you can use prebuilt kernel to build recovery and lineageos/aosp (it's deprecated but we're talking about android 6 aka cm-13.0/lineage 13.0). If I can create a most basic device tree which is capable of building recovery from scratch useing binary kernel and modules, i'd say were' good, because the next part would be adding more binary blobs from the official software, and we can skip the kernel source part for now until we have lineageos build 13 working). I started experimenting on xiaomi latte tree because it wasnt split like Z00A. It's not gonna be a proper port but it should work from now (i think)
@joesnose did you cook or compile TWRP? It's important
Ok, I'm at the stage i have two folders. The one is unpacked working TWRP, the other one is unpacked compilation i'm building, which means im able to build TWRP from source with binary kernel, but it's not working yet. The goal is make the left one look like the right one by adjusting various parts in BoardConfig.mk and copying files.. If someone has right partition sizes for BoardConfig.mk that would be really helpful, the values i calculated suck and don'y boot yet
Click to expand...
Click to collapse
Uhmmm, I've been there and took some notes with some "GNU shell Fu". What sizes are you using right now?
And regarding the WW part of the name I've noticed the recent updates are marked as WW17 opposed to WW28 which was the latest stable with any changes. Any idea why Lenovo used WW17 to update the Yoga Tab 3 Pro recently?
alquez said:
update, ive managed to boot vanilla android-x86 x64 6.0.1 build without touching the kernel yet and different TWRP (3.1.1.0) with kernel swap
Click to expand...
Click to collapse
Geez, I was excited because I read Ubuntu booted on this hardware but then I realized it was the Yoga 3 tablet but not the Yoga Tab 3, goddamnit. Keep up the good work!
alquez said:
Um Ubuntu 20.04 boots with working accelerometer so the screen rotation works + wifi, and probably audio i forgot to play youtube video, the stuff missing is battery, touchscreen and projector.
To test it you need to connect a usb hub using usb otg, put ubuntu and a keyboard in the hub, boot, and press f2 really fast if you haven't enabled slow boot yet. You can even boot
Xubuntu to ram and remove flash drive. It's a pc architecture after all and most of the processor related stuff is in the linux mainline since 4.11
Recently i was checking why the Windows 10 installer crashes on ACPI Error.
Click to expand...
Click to collapse
Oh, I will have fun doing this kind of stuff at the end of the year. It must run swiftly with i3, provided you won't get touchscreen support.
alquez said:
Geting TS and a battery running is a mandatory, the next is the projector. The rest is pretty much working. I'm building generic celadon x86 atm and the beast is huge it's like 18% now after two hours on -j8 on i7. Maybe we can give this old monster a new life
edit:
And i need to add 480gb drive ;/
Code:
/dev/sdc1 229G 210G 6,7G 97% /home/android
Click to expand...
Click to collapse
I am afraid those are the peripherals that will keep you in 3.14.55/64 Linux, at least for a while , unless you know something more (wouldn't be surprised).
Are those GB for source code or for cache? Both? Jesus... the thing is huge but reading the unpacked boot.img makes much more sense now.
It was ionioni who made the twrp for the device. I dont have the foggiest how he did it.
---------- Post added at 01:23 AM ---------- Previous post was at 01:18 AM ----------
Wow! I missed lot, looks like you have made some serious progress here. very well done.
alquez said:
I contacted my friend and he told me to compare these two folders:
https://github.com/alquez/lenovo_yt...l/cht/arch/x86/platform/intel-mid/device_libs
https://github.com/torvalds/linux/tree/master/arch/x86/platform/intel-mid/device_libs
the new files in "lenovo tree" are the modules we're after, mostly and it's a place to start
I need to ask inioni about twrp.
Click to expand...
Click to collapse
I will guess it was ported from the Yoga Tab 2. I will edit this post soon.
alquez said:
Nice! There's big chance the modules are reused somewhere. We can compare these. I think the two folders in
https://github.com/alquez/lenovo_yt3_x90_osc/tree/master/kernel/cht/drivers/input/touchscreen
which are missing from vanilla tree are two separate drivers and one is for "any pen" driver. Can you ask someone porting modules recently
to help us refresh my memory
[edit]
I've got in touch with TeamBliss of BlissRoms , they are working on cherrytrail tree
Click to expand...
Click to collapse
Nah, I couldn't confirm it was ported. A lot of posts were removed when XDA enforced the GPL measures to its developers.
About BlissRoms, it just makes sense they are working on Cherry trail. I hope you and those guys can achieve something soon. I mean, it's a 2 GB RAM device but the display, projector and dolby audio system are worth for a better fate than Lenovo's plans.
alquez said:
4GB of ram 4 cpu cores, Hardware virtualization support, fast gpu and fast emmc memory. It's a beast, way ahead of it's time.
Click to expand...
Click to collapse
Well, I have the 2 GB RAM model, so my expectations are conservative. Anyway, don't believe I'm a hardcore user, so it's plenty enough for me, considering I won't even flash Google apps. I am now settled with Lollipop, since I need apps not getting killed by damn Doze. It is a shame how OEMs can limit a device like this one. Crond, init.d, bad zRAM, shell, even busybox... frequently the OS is crippled. I read somewhere Doze can be disabled in build.prop or something but one thing I just hate is the recents screen in Marshmallow firmware (my God, is terrible!) and can't be easily changed for something like OmniSwitch. I mean, for a mobile device you have an unusual architecture, why limit it further? Damn, I wish BlissRoms come up with a working build.
Hey, @alquez, have you tried Linux 5.7 on the tablet? I saw this article and seems like the touchscreen may work with the next mainline kernel release. I mean, right now is on RC7, should be stable enough to compile and try (I'd try it, but can't get to my workstations thanks to the virus).
EDIT: Ah... I was looking into my device and it comes with a HiDeep touchscreen (cat /dev/input/event3), the linked news is for the Goodix driver / devices. At least, I guess, it will attract others to this platform... anyway, I was wondering and also confused, shouldn't touch screen work with the hideep driver using this config already?
Thanks for the new feel.
This is great, glad to see a developer picking up this tablet. It's a fine machine with an unfortunately small user base and has never really seen any development apart from ionioni s efforts and he didn't even own one, lol.
Edit: *Thank for the new twrp * auto correct!
I love this device! For me it's the perfect device for vacation just because of the projector!
I am so happy that you guys are working on it again. the ram and display tweak works like a charme for me. Had to reset my background screen though
thx for all your help. As soon as you guys have light rom, i'll install it on my 2GB device.
hello how to flash your twrp please ?
can someone upload adb drivers for the yt3-x90f please ? because i try to flash in dnx fastboot mode but commands don't work, even "fastboot devices" don't show me the yoga tab 3 pro

Firestick Lite (Sheldon) 7.2.2.3/7.2.2.8 Launcher Replacement and Debloat (No Root)

Delete... Now obsolete on current OS
Hello.
I have a Fire TV Stick Lite running 7.2.2.8.
Gone through the post and applied the "Debloat the Lite of Unnecessary Sh*te", installed all the apks. I went with Wolf 0.1.7 as the launcher.
When running FTVLaunchX I had to run the below two lines first and then perform the permissions.
settings put secure enabled_accessibility_services de.codefaktor.ftvlaunchx/de.codefaktor.ftvlaunchx.HomeService
settings put secure accessibility_enabled 1
The original Amazon launcher still loads first and then Wolf kicks in. I can still access the Amazon launcher by pressing the home key. Also there doesn't seem to be that much change on the main Amazon launcher if any at all.
Am I missing something? Or was I expecting too much?
***** UPDATE
I have tried "Launcher Manager (FireOS 6 & 7)_1.0.2" instead of LaunchX and this seems to work fine for me. Boots straight into Wolf and the Home button also links to Wolf.
Thanks
Deleted Thread, Obsolete tutorial
I now have it running like a dream with Wolf 0.1.7, looks really nice just how I would want it from stock. Thanks for your help.
Delete Thread.... OBSOLETE TUTORIAL ( No good to anyone now running latest firmwares)
Hello.
After the full debloat I noticed that I wasn't able to connect to the fire stick from my phone with app like you tube and prime video. The phone was just hanging on "connecting to fire stick" when clicking on the "cast" button. After a few attempts I found out that the service "com.amazon.avod" was responsable for making the connection possible from phone. When I enabled it back it started working as normal.
OBSOLETE TUTORIAL FOR FIRESTICK SHELDON. MODS/ADMIN PLEASE DELETE THIS THREAD.. THANKS
Still running a version of 7228 but this must have been patched now, just get loads of Java exceptions when trying to do anything
brezzz said:
Still running a version of 7228 but this must have been patched now, just get loads of Java exceptions when trying to do anything
Click to expand...
Click to collapse
Should be working fine ... If you're using remote adb shell try pasting in smaller groups of the disable commands.
I noticed it tends to produce errors and crashes the remote adb app when pasting large clusters or the whole list of commands.
I just used it today on a Lite edition Firestick 2020 running 7.2.2.8 new UI.
I kanged @0815hoffi hardwork as some people I know were asking for a debloat AND Custom Launcher guide.... I just copied and pasted hoffis scripts minus the (adb shell part)
E.G "pm disable-user --user 0 *****"
Regards
Edit : OP updated...double tested again on two different models Lite and Newer FTVS-2021
Anything like this for the latest OS?
Bertonumber1 said:
Delete Thread.... OBSOLETE TUTORIAL ( No good to anyone now running latest firmwares)
Click to expand...
Click to collapse
well you usually don't delete something ! you can just ADD a note " with latest firmware is not working " .. by doing what you did " obsolete .. " " delete " .. you just created more confusion !
EVERYTHING become obsolete.. if you are worried about it just add a note
simika said:
well you usually don't delete something ! you can just ADD a note " with latest firmware is not working " .. by doing what you did " obsolete .. " " delete " .. you just created more confusion !
EVERYTHING become obsolete.. if you are worried about it just add a note
Click to expand...
Click to collapse
Not that i need to explain myself however i will in this case.
Firstly, due to the amount of people notifying me this was not working on newer fota update i had no choice but to remove it and prevent error.
Secondly, i wrote the post and decided it was best to delete it for the time being because... It was my post.
And finally.. The adb commands given in the first post do not work on any newer ota past 7.2.2.8 due to amazon telemetry within the ui/ launcher... so... until i have time to add my new tutorial for debloating/launcher replacement the post remains as is to prevent user error and screwed devices.
"simply adding a note" is a dumb idea as people being people would still attempt the commands on newer fireos... And who gets the stick for that when it goes wrong? Not you... Me.
Regards
Bertonumber1 said:
Not that i need to explain myself however i will in this case.
Firstly, due to the amount of people notifying me this was not working on newer fota update i had no choice but to remove it and prevent error.
Secondly, i wrote the post and decided it was best to delete it for the time being because... It was my post.
And finally.. The adb commands given in the first post do not work on any newer ota past 7.2.2.8 due to amazon telemetry within the ui/ launcher... so... until i have time to add my new tutorial for debloating/launcher replacement the post remains as is to prevent user error and screwed devices.
"simply adding a note" is a dumb idea as people being people would still attempt the commands on newer fireos... And who gets the stick for that when it goes wrong? Not you... Me.
Regards
Click to expand...
Click to collapse
for sure you got your reason ( unless you would have gone out of your mind lol )
i'm just saying that is better to edit the original post and write NOT WORKIN ON LATEST FIRMWARE ( or after 7.2.2.8) than if people are not able to read the post well they should learn !

Categories

Resources