Converting a regular application into system on Android opens up new opportunities for the user: automatic updating without superuser rights, protection against deletion and even saving battery power. However, this process is fraught with technical nuances and potential risks to the stability of the device. Depending on the version Android (from Lollipop 5.0 to Android 14) and smartphone model (Samsung, Xiaomi, Google Pixel etc.), the methods for integrating applications into the system partition may differ radically.

B In this article we will look at three main ways to make an application a system: through ADB (without root), using superuser rights and alternative methods for devices with a locked bootloader. We will pay special attention to safety - incorrect actions can lead to "briku" the device (complete inoperability), so each step requires careful implementation. If you are a beginner, we recommend that you first read the section on risks and preparation.

What are system applications and why create them

System applications (system apps) are apps that installed in a protected partition /system or /priv-app on an Android device. They have a number of advantages over regular ones:

  • ๐Ÿ”’ Deletion protection: cannot be deleted without special rights, even through ADB.
  • ๐Ÿ”„ Automatic update: some system applications (for example, Google Play Services) are updated via Play Market without a root request.
  • ๐Ÿ“ฑ Working in the background: fewer restrictions from the system on the use of resources.
  • ๐Ÿ›ก๏ธ Security: more difficult to replace by attackers (if the partition /system is not remounted for writing).

However there is also a downside: system applications take up space in the protected partition (usually 1-2 GB), they are more difficult to roll back or modify, and errors in them can lead to failures of the entire system. For example, an incorrectly integrated application can cause "bootloop" (loop reboot) or conflicts with services Google Mobile Services (GMS).

โš ๏ธ Attention: On devices with Android 10+ and dynamic partitions (Dynamic Partitions) manually adding applications to /system may disrupt the operation of OTA updates. Before experiments, check support for your model on the forums XDA Developers or 4PDA.

Preparation of the device: what needs to be done before integration

Before you start transferring the application to the system partition, complete the required preparatory steps:

Disable OEM locking (in Settings โ†’ For developers)

Enable USB debugging (Settings โ†’ System โ†’ About phone โ†’ Build number (7 taps))

Install ADB drivers and Platform Tools on PC

Create a backup copy of your data (via TWRP or adb backup)

Check the free space in the partition /system (command df -h /system in ADB Shell)|-->

Pay special attention unlock the bootloader (bootloader). On most devices (except Google Pixel and some models OnePlus) this leads to full data reset. For example, on Xiaomi you need to link your account Mi to the device, and on Samsung you need to use the utility Odin to unlock.

Also check the version Android:

Android version Integration features Recommended method
5.0โ€“7.1 (Lollipopโ€“Nougat) Simple transfer to /system/priv-app ADB or manual copying via Root Explorer
8.0โ€“9.0 (Oreoโ€“Pie) Signature required platform or shared Modification build.prop or Magisk
10โ€“14 Dynamic partitions, read-only file system Use Magisk or ADB bypassing restrictions
โš ๏ธ Attention: On devices with Samsung Knox (for example, Galaxy S22 or Note 20) unlocking the bootloader triggers the flag Knox 0x1, which voids the warranty and blocks access to Samsung Pay, Secure Folder and other services.

Never used

I know the basic commands

I use it regularly

I develop custom firmware-->

Method 1: Transferring the application to the system partition via ADB (without root)

This method is suitable for devices with unlocked bootloader and works on most versions Android to 11 inclusive. The essence of the method is to temporarily remount the partition /system in recording mode and copy the APK file of the application there.

Steps:

  1. Connect the device to the PC and check the connection:

    adb devices

    The serial number of your device should be displayed.

  2. Remount the partition /system to entry:

    adb shell
    

    su

    mount -o rw,remount /system

    If the command su does not work, use an alternative for your version Android (see spoiler below).

  3. Alternative command for Android 10+

    For devices with Android 10+ and dynamic partitions use:

    adb shell
    

    mount -o rw,remount /

    Then find the current path to the system partition via df -h.

  4. Copy the APK file to /system/priv-app (for applications with extended rights) or /system/app:

    adb push your_app.apk /system/priv-app/

    Make sure the file name matches the application package (for example, com.example.app.apk).

  5. Assign the correct permissions:

    adb shell chmod 644 /system/priv-app/your_app.apk

  6. Reboot device:

    adb reboot

After rebooting, the application should appear in the list of system apps. Check this through Settings โ†’ Applications โ€”system apps do not have a button "Delete", and the package information says "System application".

๐Ÿ’ก

If the application does not appear after a reboot, check the system log using the command adb logcat | grep -i "package". A common mistake is that the APK signature does not match the platform key.

Method 2: Using superuser rights (root)

If your device has Magisk or another root access manager, the process of integrating the application into the system partition is simplified. The main advantage of this method is the ability to work with Android 12+where standard methods through ADB often. are blocked.

Instructions:

  • ๐Ÿ“ฑ Install a file manager with root support (for example, Root Explorer or Mixplorer).
  • ๐Ÿ” Find the application APK file in /data/app (usually in the folder with the package name, for example com.whatsapp-1).
  • ๐Ÿ“ Copy the APK to /system/priv-app or /system/app.
  • ๐Ÿ”ง Assign rights 644 (so that the file is readable by everyone, but can only be changed by root).
  • ๐Ÿ”„ Reboot the device.

For devices with Magisk there is an alternative way - using modules. Create a folder with the name of the module in /data/adb/modules, add there system.prop indicating the path to the APK and reboot. data-i="174">/data/adb/modules/your_module/

/data/adb/modules/your_module/

โ”œโ”€โ”€ system.prop

โ””โ”€โ”€ system/

โ””โ”€โ”€ priv-app/

โ””โ”€โ”€ your_application.apk

โš ๏ธ Attention: On some firmware (for example, MIUI or ColorOS) system applications may conflict with built-in services. For example, replacing Google Camera with a modified version may lead to errors in the camera.
๐Ÿ’ก

Using Magisk modules is the safest method for modern versions of Android, since it does not affect the original /system partition.

Method 3: Alternative methods (without unlocking the bootloader)

If unlocking the bootloader is not possible (for example, on devices with Samsung Knox or corporate smartphones), you can use workarounds:

  1. Using Work Profile: Some applications (for example, Island or Shelter) allow you to create isolated profiles with rights close to system ones. Suitable for Android for Work.

  2. ADB commands for privileged status: On some firmware (for example, LineageOS) you can assign an application status "privileged" via:

    adb shell pm grant com.your.app android.permission.INSTALL_PACKAGES

  3. Modification build.prop: Adding a string ro.config.ringtone= or other parameters can force the system to perceive the application as a system one (does not work on all devices).

These methods do not provide full system status, but they allow you to bypass some restrictions. For example, the application will not be deleted when resetting the settings or will receive extended rights to work in the background.

Risks and how to avoid them

Incorrect integration of the application into the system partition can lead to serious problems:

  • ๐Ÿšจ Bootloop: Endless reboot due to a conflict with system services.
  • ๐Ÿ”ด Loss of OTA updates: Modification /system blocks the installation of updates over the air.
  • ๐Ÿ›ก๏ธ Security breach: Incorrect access rights can open vulnerabilities.
  • ๐Ÿ“ต Function failure: For example, Google Pay will stop working when system files are changed.

To minimize risks:

  • ๐Ÿ“Œ Always create full backup via TWRP or adb backup.
  • ๐Ÿ” Check the compatibility of the application with your version Android on the forums.
  • ๐Ÿ› ๏ธ Use Magisk instead of direct change /system on new devices.
  • ๐Ÿ“ฑ Test changes on a secondary device or in an emulator (Android Studio).

If the device does not boot after integration, try:

  1. Boot into Safe Mode (hold the power button โ†’ "Restart in safe mode").
  2. Delete the problematic application via ADB:
    adb shell
    

    mount -o rw,remount /system

    rm /system/priv-app/your_application.apk

  3. Restore backup via TWRP.

FAQ: Frequently asked questions about system applications

Can any application be made system?

Technically, yes, but not all applications will work correctly. System applications must be signed with a platform key or have a compatible signature. For example, Google Apps (GApps) require a special signature. for integration into /system.

Will the system application be updated via the Play Market?

Yes, but only if it initially supports updates for system versions. Some applications (for example, YouTube or Chrome) are updated even in /system, while others (for example, Xposed modules) are not.

How to remove a system application?

To remove, you need root or ADB. Command: adb shell pm uninstall -k --user 0 package name data-i="243">Yes, but only on devices with root access. Use a file manager (for example

adb shell pm uninstall -k --user 0 package name

Complete removal from /system This is only possible by remounting the partition for recording.

Is it possible to make a system application without a computer?

Yes, but only on rooted devices. Use a file manager (for example, FX File Explorer) to copy the APK to /system/priv-app and assign rights 644.

Why does the application not start after integration?

Possible reasons:

  • Incompatible version Android (check minSdkVersion in AndroidManifest.xml).
  • Lack of dependencies (for example Google Play Services for some applications).
  • Incorrect permissions (should be 644 for APK and 755 for the folder).
  • Conflict with an existing system application (for example, two versions Galaxy Store on Samsung).

Check the logs through adb logcat.