Overview
Over the past month I have been daily driving my new phone, the Nothing CMF 1 flashed with /e/OS after I unlocked its bootloader. It’s a very pleasant experience except for the default Bliss launcher (home app).
Reasons I do not prefer it:
- iOS like feel
- Icons can’t be rearranged
- Pull down from top opens search instead of notification shade
- Consumes a lot of RAM
I started using Lawnchair as my default launcher but this did not change the recents provider (quickstep) from BlissLauncher to Lawnchair.
Two problems with this:
- Bliss has to keep running in the background to act as the recents provider.
- When the screen is horizontally oriented and gesture navigation is used to go to the home screen, Bliss keeps crashing.
Note for Bliss devs: This behavior only occurs when using a different launcher as default.
I read a post on the forums about replacing Bliss completely but there was no step by step guide. Here, I document the steps I took to get Lawnchair as my default launcher and recents provider.
Guide
This guide assumes you have a basic understanding of adb
and fastboot
. Ensure that USB debugging is enabled and your device is visible in the output of adb devices
.
Apatch
Extracting boot.img
Assuming you have the image used to flash /e/OS on your phone, extract the boot.img
from it. This can be done with the 7zip
command
7z e IMG-e-3.0.4-a14-20250708507308-official-tetris.zip -o. boot.img
Here IMG-e-3.0.4-a14-20250708507308-official-tetris.zip
is the image for my phone. Replace this with the appropriate image name.This extract the boot.img
to the current directory.
Push this image to your device with
adb push boot.img /storage/emulated/0/Download/
NOTE: You could also push the image over MTP (file transfer) but it may corrupt files and is hence discouraged.
Installing APatch
These instructions are also available in the APatch Docs.
- Download the latest version of APatch Manager from GitHub.
- Click on the patch button at the top right corner, and click
Select a boot image to patch
. - Select the
boot.img
we pushed to theDownload
directory. - Set a SuperKey at “SuperKey” card. The SuperKey should be 8-63 characters long and include numbers and letters, but no special characters. It will be used later to unlock root privileges.
- Click on “Start” and wait for a minute. After the patch is successful, the patched
boot.img
path will be displayed. For example:/storage/emulated/0/Download/apatch_version_version_randomletter.img
.
Flashing
- Pull the patched
boot.img
with the command. Replaceapatch_version_version_randomletter.img
with the appropriate filename.
adb pull /storage/emulated/0/Download/apatch_version_version_randomletter.img
- Reboot into fastboot mode.
adb reboot bootloader
- Flash the patched
boot.img
.
fastboot flash boot apatch_version_version_randomletter.img
- Reboot the device
fastboot reboot
QuickSwitch
Installation
- Download the latest
zip
of QuickSwitch-fork to your phone from GitHub. - Open the APatch app.
- Authenticate with the SuperKey you had set earlier.
- Enable
APModule
. - Under the
APModule
tab click on the install button in the bottom right corner. - Select the
QuickSwitch-fork.zip
you downloaded. - Reboot your device for the changes to take effect.
Switching the Recents Provider
In this step I am assuming you are using a launcher that supports QuickStep, as in, it can act as a recents provider.
I have tested this on Lawnchair 14.3 beta. DO NOT USE Lawnchair 15.1 beta, it’s QuickStep provider is a bit buggy.
Get a shell on the phone with
adb shell
Inside adb shell
- Change the recents provider. Replace
app.lawnchair
with your launcher’s package name.
su -c /data/adb/modules/quickswitch/quickswitch --ch=app.lawnchair
- (Optional) Remove Bliss launcher.
for pkg in $(pm list packages | grep bliss | cut -d: -f 2); do pm uninstall --user 0 $pkg; done
- Reboot the device.
reboot
Profit!
That’s all there is to it. Now you should see you preferred app as the recents provider. Goodbye!