< the skull

HOW I TURNED A PIECE-OF-CRAP TABLET INTO A PLANE
================================================
2026-06-18

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 [1] 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:

  * Squid;
  * JNotes;
  * Noteshelf;
  * Nebo;
  * OneNote;
  * 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:

  * reboot the tablet;
  * wait about two minutes;
  * close recent apps;
  * open only the notes app;
  * create a simple blank page;
  * write quickly for five minutes;
  * repeat in Squid, JNotes, and Noteshelf;
  * 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:

  * test a lightweight custom ROM, such as LineageOS, accepting the risk;
  * change the writing app;
  * use lighter PDFs;
  * 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 [2]

Links:
  [1] https://www.noteshelf.net/index.html
  [2] https://gist.murad.host/pablo/568220483839436d99c97861ad2d5a03


< the skull