Have you ever wondered why some applications on Android cannot be deleted or disabled? These system applicationsare integrated into the device firmware at the operating system level. They receive enhanced rights, are automatically updated via OTA and are not affected by factory resets. But what if you want to make a system application - be it a messenger, a launcher or an automation utility? your own application - be it a messenger, launcher or automation utility?
In this article we will analyze all working methods for converting a regular APK into a system applicationincluding manual file transfer, use ADB, firmware modification and even bypassing restrictions on new versions of Android. You will learn not only โhow,โ but also โwhyโ to do it, what risks exist, and what alternatives should be considered if systemic status is unjustified. The material is relevant for devices from Samsung, Xiaomi, Google Pixel and other brands - taking into account their features.
What is a system application and why do you need it
A system application (system app) is a app that installed in partition /system or /priv-app Android devices. Unlike custom applications (installed in /data/app), it:
- ๐ Not removed by standard means (rights required root)
- ๐ Automatically restored after resetting
- ๐ก๏ธ Receives extended permissions (for example, access k
android:sharedUserId) - ๐ฑ Can work in the background without restrictions Doze Mode
- ๐ง Updated only via OTA or manually (not through Google Play)
The main reasons why users want to make the application system:
| Purpose | Example | Risks |
|---|---|---|
| Deletion protection | Corporate applications, parental controls | Complexity of updates |
| Advanced rights | Automation (Tasker), modified services | Security violation |
| Saving space | Moving frequently used applications to the system partition | Errors when updating the OS |
| Bypassing restrictions | Working in the background (for example, for VPN) | Blocking Google Play Protect |
However, system status is not a panacea. For example, Google Pay banking applications may stop working due to a change in the APK signature. on devices with Dynamic System Updates (for example, Pixel), system applications may be reset after updates.
โ ๏ธ Attention: On devices with Lock Bootloader (for example, most Samsung or Huawei) modification of the system partition will cause operationKNOXorDM-VerityThis may void the warranty or block the device.
Preparing the device: root, unlocking the bootloader and ADB
Before making the application system, you must meet three key conditions:
- Unlock bootloader (bootloader). On most devices, this will erase all data and may require an official key (for example, Xiaomi or OnePlus).
- Get root access. Suitable Magisk (recommended) or SuperSU (obsolete).
- Install ADB and Fastboot. Tools from Android SDK Platform-Tools will be required to execute commands.
Instructions for unlocking the bootloader for popular brands:
- ๐ฑ Samsung: Enable
OEM UnlockinSettings โ Developer, then use the commandfastboot oem unlock. - ๐ฑ Xiaomi: Get permission via Mi Unlock Tool (may need to wait 7-30 days).
- ๐ฑ Google Pixel: Unlocking occurs with the command
fastboot flashing unlock. - ๐ฑ Huawei/Honor: An official unlock code is required (since 2018 the procedure has become more complicated).
After unlocking, install Magisk via TWRP or patch boot.img. Check superuser rights with the command:
adb shell
su
If you see a prompt in response # - root is available. Now you can start modifying the system partition.
Method 1: Manually transfer APK to the system partition (for experienced)
This method is suitable for users who are ready to work with the Android file system manually. You will need:
- ๐ ๏ธ Root access and a file manager with root support (for example, Solid Explorer or FX File Explorer)
- ๐ Backup copy of the original APK (in case of errors)
- ๐ง Knowledge of the paths of system partitions (
/system/priv-appor/system/app)
Steps for transfer:
- Copy the APK file of the application from
/data/appto a folder on the device (for example,/sdcard/Download). - Open a file manager with root access and go in
/system/priv-app(for applications with extended rights) or/system/app. - Create a folder with the name of the application (for example,
com.example.myapp) and place there:
/โโโ com.example.myapp/
โ โโโ base.apk (or app.apk)
โ โโโ oat/
โ โ โโโ arm/
โ โ โโโ libbase.odex (if any)
โ โโโ lib/
โ โโโ arm/
โ โโโ (.so libraries)
Important: The rights to the folder and files must be correct 0755 for folders and 0644 for files. Install them with the command:
adb shellsu
chmod 0755 /system/priv-app/com.example.myapp
chmod 0644 /system/priv-app/com.example.myapp/base.apk
After rebooting, the application will become a system one. However, there are nuances:
- โ ๏ธ On Android 10+ you may need to sign with the system key (otherwise the application will not start).
- โ ๏ธ Some applications (for example, Google Play Services) check integrity and may stop working.
Make a backup of the original APK
Check free space in /system
Install a file manager with root
Download original APK (not modified)-->
Method 2: Using ADB to convert to system one
A safer method is to use ADB to move the application without manually editing the system partition. Suitable for devices with root, but without. unlocked bootloader (on some firmware).
Commands for conversion:
adb shellsu
mount -o rw,remount /system
cp -r /data/app/com.example.myapp /system/priv-app/
chmod 0755 /system/priv-app/com.example.myapp
chmod 0644 /system/priv-app/com.example.myapp/base.apk
rm -rf /data/app/com.example.myapp
reboot
An alternative method is to use the utility app2system (available in repositories Magisk):
- Install the module App Systemizer via Magisk Manager.
- Launch the module and select the application from the list.
- Confirm the transfer and reboot the device.
Advantages of this method:
- โ Does not require unlocking the bootloader (on some devices)
- โ Automatically configures file permissions and ownership
- โ Supports rolling back changes
โ ๏ธ Attention: On devices with SAR (System-as-Root) (Android 9+), modification/systemcan lead to bootloop (loop loading). Before experiments, check whether your device supports Method 3: Modifying the firmware (for advanced)mount -o rw,remount /system.
Method 3: Firmware modification (for advanced)
If you want the application to be a system application out of the box - for example, for unpacking on several devices - you can modify the firmware. This method requires:
- ๐ฅ๏ธ Computer with Linux or Windows (WSL)
- ๐ฆ Complete firmware dump (for example, via TWRP or DD)
- ๐ง Tools: 7-Zip, Android Image Kitchen, MagiskBoot
Steps for modification:
- Download the firmware for your device (official or custom, for example, LineageOS).
- Unpack
system.imgusing Android Image Kitchen:
./unpackimg.sh system.img
- Add APK to folder
system/priv-appin the unpacked image. - Assemble the image back:
./repackimg.sh
- Flash the modified
system.imgvia fastboot or TWRP.
This method ensures that The application will be system even after a full reset, but requires deep knowledge and may break the operation of OTA updates.
What is SAR (System-as-Root)?
Starting with Android 9, Google has implemented the SAR architecture, where the /system partition is mounted on top of the rootfs. This makes modification difficult, since traditional remount methods do not work for such. devices require special tools like Magisk or patches for initramfs.
Method 4: Using Magisk and modules
If you have it installed Magisk, you can use ready-made modules to convert applications into system ones without manually editing the section /system. Popular solutions:
- ๐ฆ App Systemizer โ allows you to select any user application and make it a system one.
- ๐ฆ Systemizer โ supports batch processing of several APKs.
- ๐ฆ MagiskHide Props Config โ to bypass checks (for example, SafetyNet).
How to install the module:
- Download the module ZIP file (for example, from GitHub or XDA Developers).
- Open Magisk Manager โ
ModulesโInstall from storage. - Select the file and confirm installation.
- Reboot the device.
After activating the module:
- Run App Systemizer from the menu Magisk.
- Select the application from the list.
- Confirm the transfer c
/system.
Advantages of this method:
- โ Does not require unlocking the bootloader (on most devices)
- โ
Maintains integrity
/system(modules are mounted on top) - โ Easy to roll back changes (delete module)
โ ๏ธ Attention: Some modules may conflict with MagiskHide or other modifications. If after installation the device does not boot, remove the module via TWRP or fastboot.
Method 5: Bypassing restrictions on new versions of Android (10+)
Starting with Android 10, Google has tightened the rules for modifying the system partition:
- ๐ Dynamic Partitions โ system images now change dynamically, which complicates their modification.
- ๐ Read-only /system โeven with root you canโt just write files to
/system. - ๐ Signature Verification โ applications in
/systemmust be signed with the firmware key.
Bypass solutions:
- Use
/productor/vendor: On some devices (for example, Pixel) you can place APKs in these sections, which are not checked as strictly. - Magisk Bind Mounts: Redirecting paths using modules (for example, Bind Mount Systemizer).
- Custom firmware: LineageOS or Pixel Experience often allow modification
/systemwithout restrictions.
Example command for mounting an application in /product:
adb shellsu
mount -o rw,remount /product
mkdir /product/app/MyApp
cp /data/app/com.example.myapp/base.apk /product/app/MyApp/
chmod 0644 /product/app/MyApp/base.apk
reboot
On Android 12+ even these methods may not work due to AVB 2.0 (Android Verified Boot). In such cases, all that remains is:
- ๐ง Use Magisk with the module Zygisk to inject code into processes.
- ๐ง Disable signature verification via patches
vbmeta(risky!).
If you just need to protect the application from being uninstalled, consider alternatives: installing via Work Profile (Android for Work) or using Island to create an isolated environment.
Risks and alternatives: when the system status is not needed
Before making the application system, assess the risks:
| Risk | Consequences | How to minimize |
|---|---|---|
| Violation of OTA updates | The device will not receive official updates | Use Magisk modules instead of direct modification |
| SafetyNet triggered | Google Pay, banking applications will not work | Use MagiskHide or alternative methods |
| Bootloop | The device will not boot | Make a backup /system before changes |
| Loss of warranty | Manufacturer will refuse service | Use methods without unlocking the bootloader |
In most cases, the system status is not needed. Consider alternatives:
- ๐ Deletion protection: Install the application via ADB with the flag
--user 0(will be visible only to you). - ๐ Autostart: Use Tasker or MacroDroid to automatically start after a reboot.
- ๐ Backup: Set up automatic backup of APK and data via Swift Backup or Titanium Backup.
- ๐ก๏ธ Isolation: Install the application in Work Profile (via Island or Shelter).
If the goal is extended rights, check if they can be obtained by others ways:
- ๐ง ADB commands: Some permissions (for example,
WRITE_SECURE_SETTINGS) can be obtained throughadb shell pm grant. - ๐ง Shizuku: A tool for executing commands with rights
adbwithout USB debugging. - ๐ง Xposed/EdXposed: Modules for modifying the behavior of applications without changing
/system.
System status is needed only in 5% of cases. In the rest, root, ADB or isolation via Work Profile is enough.
FAQ: Frequently asked questions about system applications
Is it possible to make an application system without root?
No, modifying the partition /system requires root access. However, on some devices with an unlocked bootloader, you can flash the modified firmware via fastboot, but this still requires unlocking and erases the data.
Why is my system application not updated via Google? Play?
Google Play only updates applications in /data/app. For system APKs you need to:
- Manually download updates (for example, from APKMirror).
- Use modules like App Systemizerthat support updates.
- Roll back the application to the user section (remove from
/systemand install again).
How to remove a system application if it interferes?
Removal methods:
- Via ADB:
adb shell pm uninstall --user 0 com.example.app(hides, but does not physically delete). - Via Magisk: Install the module Universal SystemApp Remover.
- Via TWRP: Delete the application folder from
/system/priv-app.
โ ๏ธ Removing system applications can disrupt the operation of the OS (for example, deleting Google Services Framework will lead to system crash).
Will Google Pay work if I make it system?
Most likely not. Google Pay and banking applications check the integrity of the system through SafetyNet i Play Integrity API. Modification /system or being root will lead to blocking. Alternatives:
- Use MagiskHide or Universal SafetyNet Fix.
- Install the application into an isolated profile (Island).
- Return to standard firmware before using payment services.
Can it be made systemic? app on Android Go?
Technically yes, but with reservations:
- ๐ The Android Go section
/systemis greatly reduced (usually ~4-6 GB). - ๐ Many system functions have been optimized for weak devices - adding applications can cause lags.
- ๐ It is recommended to use Magisk modules rather than direct modification.