This is how I updated from /e/ Nougat to Pi/e/. A back to stock clean method. The only tools needed are fastboot and adb. Well, and TWRP.
New official Pie build is now available.
If I’m not mistaken, Pie stock images after August or September 2018 would result in a TWRP without working touch. In some cases that also means a ROM without touch if one is able to boot into it.
The patched image below apparently allows for touch and is only used until official TWRP zip can be flashed. Due to its age I’m not sure if it would work to boot an OS directly from it.
September 2018 pre-patched TWRP image with touch ( Google Drive ).
Mirrored here just in case.
In the article Installing LineageOS and Magisk on Essential Phone PH-1 using Windows it implies that the official TWRP image is no longer supported. In that article another TWRP image is used. Touch works, when on Pie firmware. This will be the image used in this article.
The previous patched TWRP image remains linked above as it works on Nougat firmware and Pie (though maybe not on recent firmware).
I use the Back-To-Stock zip packages instead of those available from Essential. Same images but these include wipe and nowipe batch/shell scripts, includes a cmd-here.exe for Windows, and reboots back into bootloader when finished. Preferable since there is no reason (for me) to boot into the stock ROM.
I used this last Pie build from August 2019: PQ1A.190105.112-BACK-TO-STOCk.zip
Back To Stock Essential Firmware - https://forum.xda-developers.com/essential-phone/development/stock-7-1-1-nmj20d-t3701681
Official TWRP 3.2.3-0 flashable zip is included in the above zips for convenience. Otherwise can be obtained from the TWRP site here
Steps I used. Make sure you have backed up all files and other items you want to save. Everything will be wiped.
Boot into bootloader mode.
1a. From /e/ Nougat with advanced power menu enabled, reboot into bootloader.
1b: Without advanced power menu, reboot and keep VolumeDown button pressed.
1c: From powered off device, hold Power+VolDn.
Once in bootloader mode, plug phone into PC. Since we’re talking update/upgrade it’s assumed adb/fastboot and/or Essential drivers are installed.
Unpack stock image. Open a command prompt in the unpacked directory. If adb/fastboot are not in your path then copy the needed platform tools to the unpacked directory.
See if device is recognized…
- Flash stock ROM…
flashallwipe.bat ( ./flashallwipe.sh on Linux. Script must be executable. Can also do
bash flashallwipe.sh ).
That will take awhile.
In another directory with adb and fastboot I keep all the other items to be installed or pushed.
The following steps are mostly taken from the Essential rooting guide below but with some changes…
- How to install TWRP (simplified)
Determine current slot:
fastboot getvar current-slot
say you get “a”
Here I install TWRP image to both slots to guarantee working touch environment regardless of slot.
fastboot flash boot_b Dec_boot_patched_TWRP.img
fastboot flash boot_a Dec_boot_patched_TWRP.img
Now use volume rockers to go to RECOVERY and then press power button to select, you should boot into TWRP.
Now push the TWRP zip file to the phone…
adb push twrp-installer-mata-3.2.3-0.zip /sdcard/
Flash the TWRP zip file. INSTALL -> Select zip file -> Swipe to flash. It will install to both slots.
Then go to TWRP’s Reboot menu and change slot to “a”.
Now reboot back to recovery (not to system unless you want to boot stock ROM).
You may notice errors in red at the terminal or output screen regarding /data. Items written or pushed will be lost after rebooting into TWRP. Not sure if it has to do with encryption or what. So after flashing and rebooting back into TWRP you’ll want to format /data. After doing so, reboot back into recovery again. You should not see any errors/notices regarding /data from this point on.
- Via adb, push new Pi/e/ ROM and TWRP zip to /sdcard/. Flash ROM, immediately followed by TWRP zip.
Now you can choose to either…
Reboot back into Recovery if you have other items to flash such as root/Magisk/etc.
Reboot into System (eOS Pie). Setup and test.
All has worked fine on my end. Other than once just to look around, I do not boot into stock ROM. Not necessary and don’t need extra cruft automatically created by Google apps under Android/data/.
Given that I installed the TWRP image to both slots it’s probably not necessary to set the other slot (“b” in the example) as active before flashing the TWRP zip. Didn’t want to take any chances plus didn’t have the chance to check.
I invite any corrections, unnecessary steps, etc. TWRP is a must for me as I don’t do OTAs on any devices plus I usually have other items to flash after updating a ROM. Updating to Pi/e/ without TWRP is documented in the eWiki.