12 min read

How I Turned a Piece-of-Crap Tablet into a Plane

Well, I was never much of a tablet person.

I’ve owned a couple of iPads before, and the main thing they did was collect dust on my shelf, which tells you exactly how important they were to me. But then the day came: I needed to sign some company documents quickly, and I was not happy with my drawing tablet anymore. I probably should have bought a newer one with a screen, but I’m a terrible enough artist that owning something that “advanced” felt almost insulting. Also, I wanted something portable.

That was it, I thought. I’m buying a tablet.

I walked into the store already sulking because I didn’t want to be there, saw the first one on the shelf for R$1,400, and without thinking too much, threw it into the cart.

I knew I was being robbed, in a way. I knew it cost more than it was worth. I knew our taxes are murderous. I also knew I didn’t even like tablets.

But I needed one.

All I needed was for Noteshelf to work.

In practice, the tablet quickly showed me the cruel reality of entry-level devices: a heavy system, bloatware, background services, unnecessary animations, built-in ads, duplicate apps, and an interface trying very hard to look premium on hardware that has absolutely no breathing room for that kind of nonsense.

The device in question is a Redmi Pad SE, running Android 15 / HyperOS. It has 4 GB of RAM, and it comes with that lovely marketing phrase: “4 GB + 2 GB,” meaning memory extension. It looks nice on the box, but in reality those extra 2 GB use internal storage as virtual memory. On a tablet with slower storage, that can become micro-stuttering.

And micro-stuttering is exactly what destroys the experience of writing with a stylus.

My disappointment had proven itself correct: I had bought a piece of crap. I had thrown money away, and I was pissed.

I tested the pen and noticed the delay. That killed me. So I went back to using the drawing tablet.

But this thing kept staring at me from the table, looking pathetic and saying: use me.

I had to do something.

The goal, then, was not to turn this tablet into an iPad or a top-of-the-line Galaxy Tab. That would be fantasy. The goal was more realistic: remove the system’s dead weight, reduce interference, cut useless processes, and make the tablet as fluid as possible for handwriting.

This article is the record of that process.


The Real Problem

The problem was not simply “the tablet is weak.”

That would be a lazy explanation.

The problem was the sum of several things:

  • 4 GB of RAM for a heavy modern system;
  • HyperOS packed with Xiaomi services;
  • duplicate apps for video, music, browser, notes, weather, scanner, and so on;
  • telemetry and advertising;
  • useless notifications;
  • battery saving interfering with writing apps;
  • system animations;
  • memory extension using internal storage;
  • the natural limitations of the Redmi Pad SE screen and pen.

In other words: the tablet does not have much muscle to begin with, and the system still wastes part of it on useless junk.

The idea was simple: if the hardware is limited, the system needs to be leaner.


Before Even Thinking About a Custom ROM

My first idea was: “Can I install a lighter operating system on this thing?”

Yes, technically. The Redmi Pad SE uses the codename xun, and there are custom ROMs for it, including LineageOS and other unofficial builds.

But that comes with risks: unlocking the bootloader, wiping data, relying on a compatible recovery, and accepting possible bugs with touch, pen input, audio, camera, rotation, or battery.

And here is the important part: switching ROMs can make the system lighter, but it can also make the pen experience worse. On Android tablets, stylus performance depends a lot on the kernel, firmware, drivers, and manufacturer-specific tweaks.

So the decision was sensible: before going down the custom ROM route, I would debloat the system through ADB and tune what could be tuned.

No root.
No bootloader unlocking.
No irreversible hackery.


Confirming the Model with ADB

First, I connected the tablet to Windows using ADB. Since I was using WSL, ADB inside Debian could not see the USB device directly. The simplest solution was to use PowerShell on Windows.

With USB debugging enabled on the tablet, I ran:

adb devices

At first, it showed up as unauthorized. That is normal. The tablet displays a window asking you to authorize the computer’s RSA key. After accepting it, the result looked like this:

List of devices attached
1c5e93eb        device

Now ADB was working.

Then I confirmed the model:

adb shell getprop ro.product.device
adb shell getprop ro.product.model
adb shell getprop ro.product.name
adb shell getprop ro.build.version.release
adb shell getprop ro.miui.ui.version.name

Result:

xun
23073RPBFL
xun_global
15
V816

So:

  • device: Redmi Pad SE;
  • codename: xun;
  • variant: global;
  • Android: 15;
  • interface: HyperOS/MIUI V816.

This confirmation is essential. Debloating or looking for ROMs without knowing the device codename is asking to do something stupid.


Saving the Package List Before Touching Anything

Before removing anything, I saved the complete list of installed packages:

adb shell pm list packages > "$env:USERPROFILE\Desktop\pacotes-redmi-pad-se.txt"

That creates a file on the Desktop with all packages. It is not exactly a system backup, but it helps a lot if I need to remember what was there before.

I also listed packages related to Xiaomi, MIUI, video, music, browser, games, ads, and similar junk:

adb shell pm list packages | findstr /i "miui xiaomi msa analytics browser video music game getapps yellowpage"

That is when the trash collection showed up.


What I Decided NOT to Remove

This part matters.

Good debloating does not mean deleting everything like an animal.

Some packages look useless, but they control critical parts of the system. Remove the wrong thing and you can break permissions, battery management, the launcher, touch behavior, system features, or even the pen experience.

I decided not to remove these packages:

com.miui.powerkeeper
com.xiaomi.touchservice
com.miui.securitycenter
com.miui.securitycore
com.lbe.security.miui
com.miui.securityadd
com.miui.core
com.miui.core.internal.services
com.miui.system
com.miui.home
miui.systemui.plugin
com.miui.notification
com.miui.permissioncontroller.overlay
com.xiaomi.account
com.xiaomi.finddevice
com.xiaomi.xmsf
com.xiaomi.xmsfkeeper
com.xiaomi.bluetooth
com.miui.misound
com.miui.daemon
com.miui.misightservice
com.android.systemui.overlay.miui
com.android.settings.overlay.miui
com.android.networkstack.overlay.miui
com.android.wifi.resources.xiaomi
com.google.android.wifi.resources.xiaomi
com.android.inputsettings.overlay.miui
com.miui.settings.rro.device.systemui.overlay
com.miui.system.overlay
com.miui.systemui.devices.overlay
com.miui.systemui.overlay.devices.android

The most important one in that list is this:

com.xiaomi.touchservice

If the goal is to improve handwriting, messing with something called touchservice would be idiotic. Maybe it is not directly responsible for the pen, but it is too close to the critical area to play games with it.

I also chose not to remove the wallpaper components:

com.miui.miwallpaper
com.miui.miwallpaper.overlay
com.miui.miwallpaper.overlay.customize
com.miui.miwallpaper.config.overlay
com.miui.wallpaper.overlay
com.miui.wallpaper.overlay.customize
com.miui.aod

Could I have been more aggressive? Yes.

But the likely gain is small, and the chance of creating some annoying system behavior is not worth it.


The Main Debloat

The removal was done with:

adb shell pm uninstall --user 0 package.name

This method removes the app only for the current user. It does not physically delete the app from the system partition. That is good, because it usually allows restoration later.

The main block was this:

adb shell pm uninstall --user 0 com.miui.analytics
adb shell pm uninstall --user 0 com.miui.msa.global
adb shell pm uninstall --user 0 com.miui.miservice
adb shell pm uninstall --user 0 com.mi.globalbrowser
adb shell pm uninstall --user 0 com.miui.videoplayer
adb shell pm uninstall --user 0 com.miui.player
adb shell pm uninstall --user 0 com.miui.yellowpage
adb shell pm uninstall --user 0 com.xiaomi.payment
adb shell pm uninstall --user 0 com.xiaomi.barrage
adb shell pm uninstall --user 0 com.xiaomi.ugd
adb shell pm uninstall --user 0 com.xiaomi.discover
adb shell pm uninstall --user 0 com.miui.thirdappassistant
adb shell pm uninstall --user 0 com.miui.bugreport
adb shell pm uninstall --user 0 com.xiaomi.mtb
adb shell pm uninstall --user 0 com.xiaomi.miralink
adb shell pm uninstall --user 0 com.xiaomi.smarthome
adb shell pm uninstall --user 0 cn.wps.xiaomi.abroad.lite
adb shell pm uninstall --user 0 com.miui.fm
adb shell pm uninstall --user 0 com.miui.fmservice
adb shell pm uninstall --user 0 com.miui.screenrecorder
adb shell pm uninstall --user 0 com.miui.weather2
adb shell pm uninstall --user 0 com.miui.notes
adb shell pm uninstall --user 0 com.miui.qr
adb shell pm uninstall --user 0 com.xiaomi.scanner
adb shell pm uninstall --user 0 com.google.android.apps.youtube.music
adb shell pm uninstall --user 0 com.google.android.videos

Not everything was removed. Some packages returned this error:

Failure [-1000]

That happened with a few apps like screen recorder, weather, notes, and scanner. It is not the end of the world. It just means the system blocked the removal of those packages for the current user.

The important stuff did come out:

  • analytics;
  • MSA/advertising;
  • Mi Browser;
  • Mi Video;
  • Mi Music;
  • Xiaomi payments;
  • extra services;
  • bug report tools;
  • preinstalled WPS;
  • FM;
  • YouTube Music;
  • Google TV.

That already clears out a decent amount of garbage.


What to Do When Failure [-1000] Shows Up

My decision was not to push too hard.

You can try disabling instead of uninstalling:

adb shell pm disable-user --user 0 com.miui.screenrecorder
adb shell pm disable-user --user 0 com.miui.weather2
adb shell pm disable-user --user 0 com.miui.notes
adb shell pm disable-user --user 0 com.xiaomi.scanner

But if the system refuses, fine. The performance gain from those idle apps is small. Fighting protected system apps can quickly become a waste of time.

Debloating needs a goal. The goal here is handwriting fluidity, not winning a holy war against every Xiaomi package.


Rebooting the Tablet

After removing the packages, I rebooted:

adb reboot

This is mandatory. Testing after debloating without rebooting is a bad test.


Settings That Actually Matter

Removing bloat helps, but it does not solve everything.

For stylus writing, some system settings are just as important as debloating.

1. Set the Refresh Rate to 90 Hz

On the tablet:

Settings → Display → Refresh rate

Select:

90 Hz

or:

High

If the tablet is running at 60 Hz or using a conservative automatic mode, handwriting can feel more delayed. For pen input, predictability matters.


2. Disable or Reduce Animations

First, enable Developer Options:

Settings → About tablet → tap "OS version" several times

Then go to:

Settings → Additional settings → Developer options

Change:

Window animation scale: 0.5x
Transition animation scale: 0.5x
Animator duration scale: 0.5x

If the system still feels heavy:

Off

This does not directly change pen latency, but it removes that dragged-through-mud feeling from the system.


3. Turn Off Memory Extension

On the tablet:

Settings → Additional settings → Memory extension

or:

Settings → About tablet → RAM → Memory extension

Disable:

Memory extension

Then reboot.

This part is counterintuitive, because marketing sells “more RAM” as a good thing. But on a device with slower storage, virtual memory can create micro-stutters.

For handwriting, micro-stutters are worse than an app reloading.

Better to have less multitasking and more immediate response.


4. Remove Battery Restrictions from the Writing App

For Noteshelf:

Settings → Apps → Manage apps → Noteshelf → Battery saver

Select:

No restrictions

This also applies to Squid, JNotes, Nebo, OneNote, or Xodo.

If the system tries to save battery while you write, the experience can become bad. Fluid handwriting needs fast response, not aggressive power saving.


5. Disable Battery Saver While Writing

On the tablet:

Settings → Battery

Disable:

Battery saver
Ultra battery saver

If there is a performance mode, use it while writing.

You cannot demand low latency while the system is trying to cut processing.


6. Reduce Useless Notifications

On the tablet:

Settings → Notifications & status bar → App notifications

Disable notifications from apps that do not need to wake the system:

  • Themes;
  • Weather;
  • Xiaomi Notes, if you do not use it;
  • Scanner;
  • Gallery, if you do not need it;
  • Security, except important alerts;
  • any useless preinstalled app.

A notification is an interruption.
An interruption wakes an app.
A woken app competes for resources.
On a weak tablet, that matters.


7. Clean Up the Home Screen

I removed unnecessary widgets and avoided live wallpapers.

Recommended setup:

  • static wallpaper;
  • no weather widget;
  • no side feed;
  • no news cards;
  • no visual nonsense.

The tablet does not need to look like a carrier store demo unit. It needs to open the notes app and respond to the pen.


Tuning Noteshelf

The original idea was to use Noteshelf. It is beautiful, organized, and good for digital notebooks.

But beautiful usually costs resources.

So the configuration needs to be conservative:

  • use simple pages;
  • avoid heavy templates;
  • avoid too many huge notebooks;
  • avoid massive PDFs;
  • split large PDFs by chapter;
  • avoid constant syncing;
  • avoid recording audio while taking notes;
  • avoid real-time handwriting recognition if it feels heavy;
  • avoid AI features or extras that process things in the background.

The rule is simple: fluidity first, decoration later.


Alternative Apps Worth Testing

Noteshelf may work well, but I would not treat it as the only option.

For fluid writing on limited hardware, I would test in this order:

  1. Squid;
  2. JNotes;
  3. Noteshelf;
  4. Nebo;
  5. OneNote;
  6. Xodo, mainly for PDFs.

The correct test always starts on a blank white page.

If a blank page stutters, the problem is the system, screen, pen, app, or hardware. If the blank page works fine but PDFs stutter, the problem is probably the PDF or the way the app renders the document.


Final Test After Debloating

After everything, the test needs to be clean:

  1. reboot the tablet;
  2. wait about two minutes;
  3. close recent apps;
  4. open only the notes app;
  5. create a simple blank page;
  6. write quickly for five minutes;
  7. repeat in Squid, JNotes, and Noteshelf;
  8. only then test PDFs.

If Noteshelf stutters but Squid and JNotes behave well, the problem is the weight of Noteshelf on this hardware.

If all of them stutter, the limitation is deeper: screen, pen, touch layer, hardware, or HyperOS.


How to Restore a Removed Package

If something breaks, you can try restoring a package with:

adb shell cmd package install-existing package.name

Example:

adb shell cmd package install-existing com.mi.globalbrowser

That is why I used pm uninstall --user 0. It is much less dangerous than deleting system partition files with root.


Automated Script

After the manual process, I also created a PowerShell script to automate this debloat on Windows.

The idea of the script is to:

  • check whether ADB exists;
  • try to install Platform Tools through winget, if needed;
  • confirm that the tablet is connected;
  • check whether the codename is xun;
  • export the package list;
  • apply the recommended debloat;
  • offer extra options;
  • generate a log;
  • allow package restoration.

This makes it easier to save as a Gist and repeat the process without relying on memory or copying loose commands around.


Expected Result

This process does not perform miracles.

The Redmi Pad SE remains an entry-level tablet. It does not become an iPad Pro. It does not become a Galaxy Tab S with an S Pen. It does not gain a premium digitizer, and it does not suddenly have RAM to spare.

But the process removes a lot of junk, reduces useless services, cuts ads, removes duplicate apps, and leaves the system less burdened.

The goal is simple:

less bloat,
fewer useless processes,
fewer interruptions,
less micro-stuttering,
more focus on writing.

If, after all this, the tablet still cannot deliver acceptable handwriting, then the conclusion is harsh but honest: the limit was not only software. The hardware and pen experience of the Redmi Pad SE may simply not be good enough for heavy handwriting use.

In that case, the next options would be:

  1. test a lightweight custom ROM, such as LineageOS, accepting the risk;
  2. change the writing app;
  3. use lighter PDFs;
  4. or accept that, for serious handwriting, the right path is a tablet with a proper active pen and better hardware support.

The good part is that ADB debloating is the best first step: it improves what can be improved without unlocking the bootloader, without root, and without turning the tablet into a paperweight.


Summary of the Main Commands

Confirm device:

adb devices

Confirm model:

adb shell getprop ro.product.device
adb shell getprop ro.product.model
adb shell getprop ro.product.name
adb shell getprop ro.build.version.release
adb shell getprop ro.miui.ui.version.name

Save package list:

adb shell pm list packages > "$env:USERPROFILE\Desktop\pacotes-redmi-pad-se.txt"

Main debloat:

adb shell pm uninstall --user 0 com.miui.analytics
adb shell pm uninstall --user 0 com.miui.msa.global
adb shell pm uninstall --user 0 com.miui.miservice
adb shell pm uninstall --user 0 com.mi.globalbrowser
adb shell pm uninstall --user 0 com.miui.videoplayer
adb shell pm uninstall --user 0 com.miui.player
adb shell pm uninstall --user 0 com.miui.yellowpage
adb shell pm uninstall --user 0 com.xiaomi.payment
adb shell pm uninstall --user 0 com.xiaomi.barrage
adb shell pm uninstall --user 0 com.xiaomi.ugd
adb shell pm uninstall --user 0 com.xiaomi.discover
adb shell pm uninstall --user 0 com.miui.thirdappassistant
adb shell pm uninstall --user 0 com.miui.bugreport
adb shell pm uninstall --user 0 com.xiaomi.mtb
adb shell pm uninstall --user 0 com.xiaomi.miralink
adb shell pm uninstall --user 0 com.xiaomi.smarthome
adb shell pm uninstall --user 0 cn.wps.xiaomi.abroad.lite
adb shell pm uninstall --user 0 com.miui.fm
adb shell pm uninstall --user 0 com.miui.fmservice
adb shell pm uninstall --user 0 com.miui.qr
adb shell pm uninstall --user 0 com.google.android.apps.youtube.music
adb shell pm uninstall --user 0 com.google.android.videos

Reboot:

adb reboot

Restore package:

adb shell cmd package install-existing package.name

The Redmi Pad SE is not absolute garbage, but it comes loaded with too much crap for what it offers. HyperOS tries to sell a feature-rich experience, but on a device with 4 GB of RAM, that has a price.

For anyone who wants to use a pen and write smoothly, the smartest path is to cut weight:

  • debloat through ADB;
  • enable 90 Hz;
  • turn off memory extension;
  • reduce animations;
  • remove battery restrictions from the writing app;
  • disable useless notifications;
  • use lighter writing apps;
  • use smaller PDFs.

This does not turn the tablet into another device. But it removes a lot of the dirt that was in the way.

And sometimes optimizing a cheap tablet is exactly that: stop expecting miracles and start removing everything that gets in the way.

And that was it. I had a little Cessna-style jet in my hands. It was not the most powerful thing in the sky, but it flew.

Script link: https://gist.murad.host/pablo/568220483839436d99c97861ad2d5a03