This is how I updated from /e/ Nougat to Pi/e/. The only tools needed are fastboot and adb. Well, and TWRP.
New official Pie build is now available.
If I’m not mistaken, stock images after August or September 2018 would result in a TWRP without working touch. The patched image below 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:
Mirrored here just in case.
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
Additional selections and info…
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 ).
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…
[Guide] How to Install TWRP & Root Essential Phone (Method 2) - https://forum.xda-developers.com/essential-phone/how-to/guide-how-to-install-twrp-root-t3841922
How to install TWRP (simplified):
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 TWRP-SEP.img
fastboot flash boot_a TWRP-SEP.img
Now if you 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. 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 will 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 from the Wipe menu/section. 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. If you plan to use TWRP (some people don’t use it) then immediately flash its zip after flashing ROM.
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. After first boot Android will essentially wipe out anything in /sdcard/ and create a number of standard directories (Download, Documents, Music, Pictures, etc.). Whatever was pushed previously will be gone.
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 or will be documented in the eWiki.