How to install Android 11 Developer Preview on the Essential Phone

Last month, Google pulled the trigger and released the first Developer Preview build of Android 11 a little bit earlier than much of us anticipated. While it was an exciting prospect to be on the very bleeding edge, it was a bit of a mixed bag more than anything. Shortly after, Google released another Developer Preview build, ironing out some of the bugs reported in the initial release. This indeed is the ultimate gift to entertain all of the geeky owners of the Pixel 4, 3a, 3 and 2 devices during their quarantine (may the Pixel 1 rest in peace). And despite Essential pulling the plug on the PH-1, declaring no further support beyond the February security update, it’s fair to say Essential’s engineers were a bit too stubborn to let it go, treating their geeky users with the biggest surprise yet: Android 11 support. Here is a simple procedure to install the latest Developer Preview build of Android 11 on the legendary Essential PH-1

Prerequisites

Instructions

  1. Back up all your data since this procedure will involve wiping out all your user data and applications. For rooted phones, you can back up your apps as well via Swift Backup, though with the absence of Magisk support for Android 11, it might not be that useful. Hopefully, it is only a matter of time before Magisk is updated to support Android 11. Fingers crossed. 
  2. Connect the Essential phone to your PC via USB. Make sure that USB debugging is turned on in the Developer Options.
  3. Press the Windows and R keys simultaneously. A small pop-up window should appear afterward. Type “cmd” in the text field (without quotes) and hit OK. 
  4. A terminal command window should appear at this stage. To verify your phone is connected properly, type in the command “adb devices” (without quotes) and then press Enter.
  5. Your Essential phone should show up as device alongside your serial number. In case your device doesn’t show up, type in the following command “cd C:\Program Files (x86)\Essential\ADB” which essentially navigates to the directory the ADB drivers have been installed. Afterward, type in the previous “adb devices” command. By this stage, your device will be recognized.
  6. Afterward, type “adb reboot bootloader” and hit Enter. Your phone should reboot into bootloader mode now.
  7. To verify your phone is properly connected, type the command “fastboot devices”. Your phone should be recognized as fastboot with your serial number showing up alongside.
  8. To determine which slot is active, type in the command “fastboot getvar current-slot”. In my case, the current-slot was “_b”. In case it didn’t return a proper value, check your phone connection (use another cable/port). 
  9. Extract the “vendor-QQ1A.200105.088” zip file and copy the vendor-QQ1A.200105.088.img file to the ADB directory.
  10. Extract the “gsi_gms_arm64-exp-RPP2.200227.009-6291673” zip file and copy the system.img file to the ADB directory.
  11. Copy the unsigned-new.img file to the ADB directory.
    Note: In the next commands, the subscript _a represents the inactive slot. In my case, the current-slot was identified as _b, therefore I typed the _a subscript in the following commands. In case the identified current-slot was _a, you should replace it with _b in the following commands.
  12. Afterward, in the command window, type “fastboot flash vendor_a vendor-QQ1A.200105.088.img” and then hit Enter.
  13. After the vendor image is flashed successfully, type “fastboot erase system_a” and then hit Enter.
  14. After the system_a is wiped successfully, type “fastboot flash system_a system.img” and then hit Enter. 
  15. To fix the current issue with the WiFi, you need to flash the modified boot file I linked earlier. Type “fastboot flash boot_a unsigned-new.img” and then hit Enter.
  16. After flashing the boot file, type “fastboot set_active a”
    Note: In case current-slot was previously identified as _a, replace “a” with “b” in the command.
  17. Finally, you need to format and rebuild the userdata partition by typing the last command “fastboot -w”.
  18. Reboot your phone by selecting the “start” option on your phone using the power button.

A few more tweaks

Voila! You have now successfully installed Android R DP2! Now you can use your Essential phone as your daily driver …sort of. Unfortunately, there are a few quirks to be wary of. For starters, the in-built phone app is a bit buggy. The modem works just fine, but because of the buggy default Dialer app, you won’t be able to answer or reject phone calls — the in-call UI will not show up, neither in an unintrusive notification or in the usual fullscreen layout. Here is what to do to fix that. 

  1. Download and install the APK file linked here on your Essential phone. This is an APK file of the Google Dialer beta which I have personally tried. You can download any other dialer app via the Play Store and follow the same procedure below.
  2. Afterward, go to Settings > Apps & notifications > Default apps > Phone and select the new Dialer app you just installed. 
  3. Next, tap home and open your app drawer. Locate the newly installed dialer app and long-press the app icon to reveal the pop-up shortcuts. Tap on the App info shortcut in the top right corner. 
  4. After you open the Dialer’s app info, tap on the Permissions menu. 
  5. Grant the app all the necessary permissions (Call logs, Contacts, Microphone, Phone).
  6. Voila! Now you are all set to accept calls and reject them once you receive a call.

So far, this was the only major issue I had that stood in the way of using my Essential phone as my daily driver. Once that was sorted, I was back in business and cracked on restoring my stuff. Until I noticed these ugly square-shaped icons in my app drawer. Fortunately, there is a way to change the icon shape via adb to either squircle, teardrop or rounded rectangle (square icons with rounded corners instead of the default sharp-edged square shape). Here’s how to save your eyes from the ugly sight of these square icons.

  1. Connect your phone to your PC via USB and verify your phone is detectable via adb.
  2. Afterward, type one of the following commands based on the icon shape of your choice:
    • For the squircle icon shape, type the following command
      adb shell cmd overlay enable —-user 0 com.android.theme.icon.squircle
    • For the teardrop icon shape, type the following command
      adb shell cmd overlay enable —-user 0 com.android.theme.icon.teardrop
    • For the rounded rectangle icon shape, type the following command
      adb shell cmd overlay enable —-user 0 com.android.theme.icon.roundedrect
  3. You should notice the shape of your icons will change instantly. Mercifully, these changes also survive a system reboot. 
  4. To switch between icon shapes, you have to disable the applied icon shape first by writing the same command and replacing “enable” with “disable”. Afterward, you can type the command corresponding to the icon shape you want to switch to. 
  5. Unfortunately, you cannot switch to the circle icon shape on this GSI using the same commands. For those who don’t mind a bit of tinkering, check out this thread on XDA to see how to switch to the circle icon shape.

Not only could you switch icon shapes via ADB on Android 11, but you could switch the accent colors too! Instead of the lame green accent color that is set by default, here is how to change the accent colors to orchid, black, green, ocean, purple and space. 

  1. Connect your phone to your PC via USB and verify your phone is detectable via adb.
  2. Afterward, type in the command “adb shell cmd overlay enable —-user 0 com.android.theme.color.orchid”.
  3. The accent colors should instantly switch to the new color selected. You can replace orchid with black, green, ocean, purple or space. 
  4. To switch between the accent colors, you have to disable the applied accent color first by writing the same command and replacing “enable” with “disable”. Afterward, you can type the command corresponding to the accent color you want to switch to.

Another feature that is missing from the Android 11 DP2 GSI we have just flashed is the new gestural navigation introduced in Android 10. Fortunately, with the help of some adb commands, you can enable and disable the navigation gestures at will.

  1. Connect your phone to your PC via USB and verify your phone is detectable via adb.
  2. To enable the navigation gestures, type in the command “adb shell cmd overlay enable com.android.internal.systemui.navbar.gestural”.
  3. To revert to the classic navigation bar, type in the command “adb shell cmd overlay disable com.android.internal.systemui.navbar.gestural”. 

Unfortunately, you cannot customize the back gesture’s sensitivity as far as I am concerned. Also, it appears that the two-button navigation option is no longer supported. Perhaps Google will drop it with Android 11 onwards?

While these mods might look a bit trivial to most people, they were more of a necessity to me, especially the ability to switch to gestural navigation. Only then did it feel more of a complete experience to use my Essential phone as my daily driver while running Android 11 …somewhat.  While the overall experience looks unscathed at first, a few niggles here and there are worth mentioning, which could potentially be a deal-breaker to some.

To begin with, there are no signs of any automatic brightness control, meaning that the brightness level can only be changed manually by adjusting the brightness slider yourself in the Quick Settings menu. Speaking of which, there seems to be no support for Night Light as well, though there is a Grayscale tile in the Quick Settings menu. Also, it seems that the default shape of the notch is not supported, which means the notch will be cutting through the contents of the app itself up top, instead of cutting through a slightly taller status bar. To mitigate this issue, you need to go to the Developer Options in the Settings app, search for the Display cutout menu and select the “Tall cutout” option. This will extend the status bar vertically to the same vertical distance of the front camera notch, though it will add two slanted black bars next to the front-facing camera, resembling the same shape roughly as the Pixel 3 XL’s infamous bathtub notch, which might be a bit too hideous to bear for some. 

Enabling the Tall cutout option will introduce black bars beside the front camera notch, making it look unbearably hideous to some.

On the topic of missing features, you cannot swipe on the fingerprint sensor on the back to slide down the notifications panel as well. Fortunately, you can swipe down on your home screen with your thumb to access the notifications panel — a sigh of relief. You can’t, however, swipe left to access your Google News Feed. Moving on, photos taken with the default camera app are not saved on your phone’s storage. This issue can be mitigated by installing any other camera apps — I sideloaded an APK file of the latest Gcam 7.3, works just fine with no major issues. Last but not least, there seems to be no Ambient Display support, which means you will have to rely on the tiny LED indicator at the top to know whether there are any new notifications. 

If you can make peace with the mentioned quirks, then you will enjoy running Android 11 on your Essential phone as your daily driver. Performance is great for the most part, with only a couple of stutters every now and then, as with the case of basically any GSI from my experience. The same can be said about the battery life. I have been getting around 5-6 hours of screen-on time every charge cycle for the past couple of days. Of my usual suite of social media apps, there are no compatibility issues so far. And of course, you get to use that nifty screen recorder option present in the Quick Settings tiles that Google has teased us every since the Android 10 Developer Preview builds! It’s nothing fancy, with options only to show touches and enable recording audio from the microphone. But hey, it works just fine! Neat!

Hopefully, Google will surprise us with another early release of the next Developer Preview build and maybe fix some of the reported bugs. That will be the ultimate treat to all of the tech-enthusiasts in self-isolation out there. Are there any other bugs you have come across after installing Android 11 on your phone? What is your most favorite feature of Android 11 so far? Let us know in the comments section down below!

Via: Reddit, XDA-Developers Forums