
Let me be upfront: if you want your smartphone to feel genuinely fast, you’ll need to reflash it. There’s no real alternative—stock firmware is typically bloated, stuffed with the manufacturer’s own apps and a pile of Google services you probably don’t need. Manually stripping all that out is a hassle and risks causing problems with the phone.
I also recommend not installing the GApps package on top of the ROM. It includes the Play Store and Google services, which are mainly needed for push notifications and contact sync. We’ll go into more detail in the section “Do you need GApps?”, but for now, note that you can replace the Play Store with an alternative app store, and you can back up and restore your contacts on the phone without GApps.
Our test device
As our test subject, we’ll use the 4Good Light B100, a Chinese phone with abysmal specs:
- Processor: MediaTek MT6737M; quad‑core Cortex‑A53 at 1.1 GHz; GPU Mali‑T720 (single core, 550 MHz)
- RAM: 1 GB (907 MB usable, excluding memory reserved by the kernel); RAM throughput (read/write): 1,922 Mbit/s
- Storage: 8 GB (data partition 3.59 GB, system partition 2.91 GB); read speed 123 Mbit/s, write speed 35 Mbit/s
- Battery: 1500 mAh
Note that the RAM usage figures in the article were measured on this specific device. Phones with a different amount of RAM will show different numbers, because Android adjusts how much memory apps can use based on the device’s total RAM.
Back up your contacts and calendar events
So, if you’ve chosen to go without GApps, make sure to back up your contacts and calendar events. How to export your contacts:
- Open https://contacts.google.com/.
- In the main menu, click Export.
- Select the vCard format and click Export.
Here’s how to retrieve calendar events:
- Open calendar.google.com.
- Click the gear icon in the top-right, then go to Settings.
- In the left menu, click Import & export.
- Click Export and download the archive.
To restore your contacts after installing the firmware, just open the Contacts app, go to Settings, tap Import, and select the file you saved earlier. To restore calendar events, you’ll need to install a third-party calendar app (more on that later).
Install a custom ROM
Let’s choose a ROM to install. The best options are AOSP or LineageOS. More often than not, the latter ends up being the only custom ROM available for lesser-known phones. Installation procedure:
- Unlock the bootloader. There’s no one-size-fits-all method: some phones can be unlocked officially, some only by hacking the bootloader, others can’t be unlocked at all (looking at you, BlackBerry), and many Chinese no-name models often aren’t locked in the first place.
- Install TWRP. For your specific device, you can find instructions on XDA and 4PDA.
- Find a ROM on those same XDA/4PDA threads, copy it to an SD card, and flash it. The instructions are there as well.
If you’ve decided to install GApps, the best choice is GApps Pico. It’s the minimal Google package that includes only Google services and the Play Store. Install it the same way you flash the ROM, and download it from Open GApps.
Do You Need GApps?
GApps refers to the Play Store and Google services that let the Play Store, Google apps, and third‑party apps interact with various Google APIs. These APIs enable things like determining location from cell towers and Wi‑Fi, automated sign‑in across services, malware protection with a signature database and automatic scans, speech recognition, syncing contacts and calendars with Google’s servers, instant push‑notification delivery, and more.
Manufacturers of Google-certified devices preinstall GApps by default. That’s why almost every Android phone ships with a bunch of Google software—YouTube, Gmail, Google Books, and much more. We, however, installed a clean, vanilla firmware, so those apps aren’t there—and neither is Google Play Services. Is that good or bad?
It’s a trade‑off. On the one hand, Google services tend to chew through battery and keep themselves resident in RAM. On the other hand, you’ll lose the Play Store, and many modern apps (messengers, email clients, social‑network clients) may suddenly stop delivering push notifications or start draining the battery.
This happens because push notifications are routed through Google’s servers, and the phone connects to them via Google’s own services. As a result, apps are left with two choices: either skip notifications altogether or maintain a persistent connection to their own servers (as Telegram does), which leads to increased battery drain.
So if you plan to run lots of messaging apps, email clients, news apps with push notifications, and the like, you should definitely install GApps. But if Telegram is the only social app you use, skipping GApps will save both battery and RAM. As a bonus, Google won’t be tracking your phone anymore.
Choosing an App Store
If you’ve flashed a ROM without GApps, you’ll need an alternative app store. Just go with F-Droid. It’s a fairly large app repository that hosts only free, open‑source software.
Most of the apps here are lightweight and easy on both RAM and battery. They’re ad-free and don’t rely on Google services. That said, the store has some serious drawbacks: there are no ratings or reviews, and you’ll often encounter builds that are older than what’s in the mainstream stores. And the biggest difference: software developed by enthusiasts is often short on features and not particularly polished.
As a precaution, install Yalp Store. The app lets you download, install, and update any apps from the Play Store. Just don’t add your primary Google account to Yalp Store—downloading apps from the store via an unofficial client can lead to an account ban.
![]() |
![]() |
Приложение в F-Droid и Yalp Store |
Choose lightweight apps
In an era of bloatware and feature creep, it’s hard to find apps that are simple, fast, and uncluttered. Still, if you put in the effort and look in the right places, you can uncover some genuinely solid software.
Launcher
- No Launcher — the name says it all. A vertically scrolling app list with name search. Long‑press brings up an uninstall dialog. Once installed, it takes just over 15 KB (!).
- KISS launcher — this one’s larger (676 KB), but it shows frequently used apps on the home screen, supports changing wallpapers, and—most importantly—offers lots of settings. The lack of animations isn’t jarring thanks to its distinctive interaction model.
- Emerald Launcher — a classic-style launcher with multiple horizontally scrolling screens. Each screen holds apps from a specific category. Plenty of settings. Installed size: 348 KB.
- Lawnchair — based on Pixel Launcher. Supports widgets, folders, and shortcuts, with smooth animations. Offers extensive customization options. Doesn’t lag even on low-end devices; uses about 3 MB of flash storage and a mere 33 MB of RAM (vs. 20 MB for KISS).
![]() |
![]() |
No Launcher и Lawnchair |
Browser
Opera Mini. Almost everyone knows this browser, but there’s a small yet important nuance worth mentioning. Modern Opera Mini can run in several modes. By default, it uses WebView—the standard Chrome engine preinstalled on any Android—but if you enable the “Extreme” data saving mode in settings, the browser switches to a server-side mode (pages are processed via Opera’s servers).
Here’s how it works: web pages are routed through one of Opera’s servers. The server converts the page into a compact format, downscales images, strips ads, lowers video bitrate, and then sends the optimized page to your device. The result is significant savings in data usage and CPU cycles, which reduces battery drain and noticeably speeds up loading and rendering. The trade-off is that many sites may not function correctly.
![]() |
![]() |
Keyboard
The choice is straightforward: either the stock keyboard or Simple Keyboard. On average it uses about 18 MB of RAM and takes up 1.2 MB on NAND storage. The trade-off for its compact size is the lack of spell check and predictive text.
![]() |
![]() |
Simple Keyboard и AnySoftKeyboard |
YouTube
As a YouTube alternative, go with the lightweight (13 MB installed) NewPipe. It’s more than adequate for watching videos. It lets you download videos and supports picture-in-picture. The downside: you can’t sign in with a Google account, so you won’t get personalized recommendations or be able to comment.

Gallery
- Simple Gallery — a lightweight gallery app that takes only about 9 MB once installed. Supports folder-based sorting. You can customize the color theme. Runs very fast even on low-end devices.
- Focus Go — a minimalist gallery by well-known developer Francisco Franco. Installed size is about 5 MB.
![]() |
![]() |
Simple Gallery и Focus Go |
Maps
Maps.me — uses OpenStreetMap data, pulls map tiles quickly, and runs smoothly. In terms of data/POI richness, it’s only slightly behind Yandex’s crowdsourced maps (which are available only in the official app and are very resource‑hungry) and 2GIS (whose detailed coverage is mostly limited to major cities).
OsmAnd — a very feature‑rich map app: highly customizable map and terrain styles, various satellite layers, and Mapillary street‑level photos. However, it can be sluggish and stutter when zooming or panning, and it requires downloading a world basemap that takes up more than 271 MB after installation.
Note that if you haven’t installed GApps on your smartphone, location services will be GPS-only. In other words, you won’t get indoor positioning. To fix this, install UnifiedNlp and two backends for it:
The first one determines your location via Wi‑Fi access points (using Apple’s database—ironically), and the second relies on cell towers. After installation, enable “Use all location sources” in your phone’s settings, and you may need to reboot your smartphone.
![]() |
![]() |
Maps Me и OsmAnd |
Email client
- Music Player GO — a very simple music player. It scans your device storage and organizes your music by artist.
- Folder Player — a 5.4 MB player that plays audio files organized in folders.
![]() |
![]() |
Music Player GO и Folder Player |
K-9 Mail takes up just 10.4 MB on your device. It’s fast, and in terms of features it not only matches bulkier email clients, it often surpasses them. PGP encryption is supported.
![]() |
![]() |
Reading email and setting up K-9 Mail |
info
If you have Google 2-Step Verification enabled, you’ll need to create an app password to connect a third-party email client to Gmail. Detailed steps are in Google’s official instructions.
Notes
- Omni Notes. A full-featured note-taking app. Sync and backup are done by exporting its database to the SD card. You can attach a hand-drawn sketch, location, audio recording, or image to a note. Very fast.
- uNote. The simplest note-taking app. Installed size is 156 KB. Lets you create a note and its title. No support for lists, voice notes, reminders, or sync.
![]() |
![]() |
Omni Notes и uNote |
Calendar
Simple Calendar. The name says it all. It’s fast and smooth, taking up about 10 MB of storage. Feature-wise, it’s on par with Google Calendar.
To import your saved calendar events, tap the three dots at the top, then select “Import events from an ICS file.”
![]() |
![]() |
Annual calendar and monthly calendar |
Simple Apps
Let’s move from complex to simple. The shorter the path, the fewer resources it consumes. What does the user want? Software that works correctly and reliably. Fancy animations and visual effects can be skipped. With that goal in mind, developer Tibor Kaputa created the Simple Apps suite—simple, fast, and efficient applications.
Track down battery-hogging apps
The stock battery usage manager won’t help in this case. You’ll need Wakelock Detector. We’ve already covered how to use this app effectively, but we’ll recap.
In Wakelock Detector, focus on two screens: “Wakeups” and “CPU Wakelock.” The first shows how many times an app woke the device from sleep, and the second shows how long an app kept the CPU running in the background (tap an entry to see the process name). Apps that are causing rapid battery drain will sit at the top of the list by a wide margin. The stats are counted since the last boot.
To reduce excessive battery drain, open the app’s settings and look for options like “Usage statistics/telemetry” and “Sync frequency.” Disable telemetry where possible, or set a longer sync interval. If that still doesn’t help, the most effective solution is to uninstall the app.
If uninstalling isn’t an option, you can put apps into hibernation using specialized tools. One of the best is Greenify. It prevents apps from waking from sleep even on common triggers (scheduled timers, network connectivity, device unlock, or app install/uninstall). After installing and completing the initial setup, open Settings and enable “Wake-up tracking & blocking → Advanced wake-up blocking.”
Using Greenify is easy: after launching the app, tap the + in the top right and select the apps that wake your device. When you’ve selected everything, tap the round button at the bottom. You can also send individual apps directly from Wakelock Detector to Greenify to hibernate them.
![]() |
![]() |
Finding wake-up apps in Wakelock Detector and freezing them in Greenify |
Enable aggressive power saving
Doze is a power-saving system introduced in Android 6.0. By default, it kicks in after about an hour of inactivity and works by preventing apps from waking up and draining the battery (we’ve covered Doze in more detail in a separate article).
In most cases, tweaking Doze isn’t worth it, but if you want your phone to really maximize battery life, you can make Doze kick in not after an hour, but just a few minutes after the screen turns off. You can do this with Naptime (enable Aggressive Doze) or with Greenify (enable its “Aggressive Doze” option).
However, there are side effects: notifications from some apps may stop coming through. To fix this, add those apps to the whitelist. Go to «Settings → Apps → Gear icon → Special access → Battery optimization». Tap «Optimizing battery use», switch to «All apps», and turn off optimization for the apps you need.
![]() |
![]() |
Main screen in Naptime and Doze settings in Greenify |
Tuning Android’s Memory Management
Android uses a dynamic system for managing running apps. This means you don’t need to close apps manually—Android will do it automatically whenever it decides it’s necessary.
The subsystem responsible for terminating apps when memory runs low is called Low Memory Killer. You can tune it to your liking either by editing the /
file, or by using Kernel Adiutor or specialized tools like AutoKiller. We’ll be using Kernel Adiutor.
Install and launch Kernel Adiutor, then switch to the Low Memory Killer tab. All apps are divided into six groups:
- Foreground apps (FOREGROUND_APP) — apps currently in use.
- Visible apps (VISIBLE_APP) — processes that aren’t in the foreground but still display something on screen (e.g., a slide-out panel or a widget).
- Secondary apps (SECONDARY_SERVER) — background services such as a music player or internet radio.
- Hidden apps (HIDDEN_APP) — perform background work without showing a notification.
- Content providers (CONTENT_PROVIDER) — background components that store data and quickly serve it when other apps request it.
- Empty apps (EMPTY_APP) — background apps that are idle and not doing any work.
Scroll down to the Profiles section. Here, Kernel Adiutor provides several presets that control how aggressive the Low Memory Killer is.
![]() |
![]() |
Настройка Low Memory Killer в Kernel Adiutor и стандартные профили |
The numbers to the right of the group names indicate the amount of free RAM; when available memory drops below that threshold, apps in the corresponding groups will be killed.
Based on the screenshot, the system will behave as follows:
- If there’s more than 81 MB of free RAM, nothing gets killed.
- Once free RAM drops into the 81–63 MB range, the Low Memory Killer (LMK) will kill only apps in the EMPTY_APP category.
- When free RAM is in the 62–55 MB range, LMK will kill apps in the EMPTY_APP category (most are usually gone by then) and CONTENT_PROVIDER.
- If free RAM falls below 27 MB, the foreground app (FOREGROUND_APP) the user is interacting with will be killed (a very unlikely scenario).
Within a given group, the processes consuming the most memory are terminated first. After each termination, the Low Memory Killer checks the available RAM against the thresholds in its configuration file and decides whether it should keep killing.
Many users habitually open the recent apps screen and swipe apps away. In doing so, they typically terminate EMPTY_APP and CONTENT_PROVIDER processes (which don’t consume resources and quietly sit idle, waiting either for the Low Memory Killer to evict them or for the user to bring them back so they can serve content almost instantly). Processes in the HIDDEN_APP–FOREGROUND_APP range are usually already closed. What the user gets in return is that, when those “swiped away” apps are opened again, the phone has to load the app from storage and at least re-render all UI elements. As a result, battery usage goes up and app launch times increase.
Accordingly, try to dial these values down as far as possible so the smartphone keeps open apps in RAM for as long as it can. Just don’t overdo it. Ideally, aim for the smallest values at which the system won’t kill processes when you open your most frequently used apps.
I recommend skipping the tests and just setting the “Very Light” profile in Kernel Adiutor.
Questionable advice
The internet is full of tips on Android optimization and power saving. Unfortunately, many of them aren’t helpful—and some are downright harmful.
Automatic (or manual) switching to 2G. This actually increases battery drain because the phone has to keep scanning for base stations and reattaching.
Wi‑Fi setting “Always turn off.” Pointless. A connected Wi‑Fi radio draws about 30 mW whether or not data is flowing, while cellular data uses 50–500 mW depending on signal quality.
Turning off Bluetooth. Bluetooth uses virtually no power when it isn’t connected to anything, so disabling it is unnecessary. Even with an active connection it draws around 2.5 mW.
“Switching to F2FS improves read/write speed.” Myth. Sequential I/O is on par with ext4, and the big random‑write gains seen in early tests were a bug that was later fixed.
Power consumption data for the wireless modules is sourced from a publication by an Apple employee.
Get rid of bloatware
Android includes lots of preinstalled apps and services. The system automatically starts some of them at boot or in response to certain events. We don’t always need that, so it’s best to get rid of this kind of software.
- Install and open Taskmanager: https://play.google.com/store/apps/details?id=de.hp.taskmanager
- In Settings, turn off “Hide system apps” and turn on “Root access.”
- Reboot your phone to help identify apps that auto-start.
- Open Taskmanager and review the app list. You’ll likely find some you don’t need or have alternatives for.

In my case (LineageOS 14.1), uninstalling the following apps helped free up system resources (you can uninstall them using any file manager with root access):
- Email app:
/
system/ app/ Email - Exchange support:
/
system/ app/ Exchange2 - Weather services:
/
,system/ app/ YahooWeatherProvider /
, andsystem/ priv-app/ WeatherManagerService /
(Warning: the built‑in weather widget will stop working)system/ priv-app/ WeatherProvider - Emergency alerts (cell broadcast):
/
system/ priv-app/ CellBroadcastReceiver - Calendar app:
/
system/ app/ Calendar - Keyboard:
/
(remove if you’ve installed a third‑party keyboard)system/ app/ LatinIME - OTA update checker:
/
system/ priv-app/ Updater
That was the mild version. Here’s a more extreme one:
- Boot animation:
/
. If you delete it, you’ll get the stock Android boot animation or just a black screen.system/ media/ bootanimation. zip - Preinstalled ringtones, notification, and alarm tones:
/
in thesystem/ media/ audio ringtones
,notifications
, andalarms
folders. You can also clear out theui
folder if you don’t want system UI sounds. - Pico TTS language files:
/
. This does not affect Google Text-to-Speech.system/ tts/ lang_pico - Offline speech-recognition languages:
/
. You can re-download them later if needed.system/ usr/ srec/ config/
Other LineageOS system apps that can be safely removed:
- Default web browser:
/
system/ app/ Jelly - Calculator:
/
system/ app/ ExactCalculator - Terminal emulator:
/
system/ app/ Terminal - Music player:
/
system/ priv-app/ Eleven - Default Gallery app:
/
system/ priv-app/ Gallery2 - Setup Wizard (first-time setup):
/
system/ priv-app/ LinageSetupWizard - SIM Toolkit menu (that annoying SIM menu):
/
system/ app/ Stk - Voice recorder and screen recorder:
/
system/ priv-app/ Recorder - Clock widget:
/
system/ app/ LockClock - Default launcher:
/
system/ priv-app/ Trebuchet - GPS test (engineering mode):
/
system/ app/ YGPS - Messaging app (SMS/MMS):
/
system/ app/ messaging - Google text-to-speech engine:
/
system/ app/ PicoTts - Clock app (timer, stopwatch, etc.):
/
system/ app/ LockClock - Easter egg:
/
system/ app/ EasterEgg - Photo frame:
/
system/ app/ PhotoTable - Live wallpapers picker:
/
system/ app/ LiveWallpapersPicker
Build.prop Tweaks and Forum How‑Tos
The /
file is present in every Android firmware and contains numerous low-level settings, as well as information about the device and the firmware itself. The build.prop file is often tweaked for device optimization; there are plenty of online guides explaining which changes to make.
But don’t rush to apply them. An xda-developers forum user conducted a study and uncovered some surprising information. It turned out that about twenty of the settings recommended on forums don’t appear anywhere in the Android source code, which means they were simply made up.
Do you think it’s wise to trust recommendations when many of them are just made up?
Conclusion
Even a relatively modest smartphone, with the right apps and settings, can hold its own against pricier devices. To prove it, we’ll compare the performance of our tuned 4Good Light B100 against the 2016 flagship Samsung Galaxy S7 (G930F), which is running a mix of stock and Google apps. All apps were launched from a cold start—that is, immediately after the device was rebooted.

Used storage is the size of the installed app plus its data (for Maps.me, this also includes maps for two regions). Cache size is not counted. We did not report RAM usage because it depends heavily on the device’s RAM capacity (specifically, the configured maximum heap size) and many other parameters and external factors.
In terms of battery life, the 4Good can definitely hold its own against Samsung. Both devices last about a day to a day and a half. To be fair, the Samsung had roughly a dozen apps running in the background, Google services installed, and Always On Display turned on.

2022.06.03 — Challenge the Keemaker! How to bypass antiviruses and inject shellcode into KeePass memory
Recently, I was involved with a challenging pentesting project. Using the KeeThief utility from GhostPack, I tried to extract the master password for the open-source KeePass database…
Full article →
2022.02.15 — First contact: How hackers steal money from bank cards
Network fraudsters and carders continuously invent new ways to steal money from cardholders and card accounts. This article discusses techniques used by criminals to bypass security…
Full article →
2022.02.09 — First contact: An introduction to credit card security
I bet you have several cards issued by international payment systems (e.g. Visa or MasterCard) in your wallet. Do you know what algorithms are…
Full article →
2023.04.20 — Sad Guard. Identifying and exploiting vulnerability in AdGuard driver for Windows
Last year, I discovered a binary bug in the AdGuard driver. Its ID in the National Vulnerability Database is CVE-2022-45770. I was disassembling the ad blocker and found…
Full article →
2023.06.08 — Croc-in-the-middle. Using crocodile clips do dump traffic from twisted pair cable
Some people say that eavesdropping is bad. But for many security specialists, traffic sniffing is a profession, not a hobby. For some reason, it's believed…
Full article →
2023.07.29 — Invisible device. Penetrating into a local network with an 'undetectable' hacker gadget
Unauthorized access to someone else's device can be gained not only through a USB port, but also via an Ethernet connection - after all, Ethernet sockets…
Full article →
2022.06.02 — Climb the heap! Exploiting heap allocation problems
Some vulnerabilities originate from errors in the management of memory allocated on a heap. Exploitation of such weak spots is more complicated compared to 'regular' stack overflow; so,…
Full article →
2023.02.21 — Herpaderping and Ghosting. Two new ways to hide processes from antiviruses
The primary objective of virus writers (as well as pentesters and Red Team members) is to hide their payloads from antiviruses and avoid their detection. Various…
Full article →
2022.06.01 — WinAFL in practice. Using fuzzer to identify security holes in software
WinAFL is a fork of the renowned AFL fuzzer developed to fuzz closed-source programs on Windows systems. All aspects of WinAFL operation are described in the official documentation,…
Full article →
2023.02.21 — SIGMAlarity jump. How to use Sigma rules in Timesketch
Information security specialists use multiple tools to detect and track system events. In 2016, a new utility called Sigma appeared in their arsenal. Its numerous functions will…
Full article →