Modify System Partition

If an adversary can escalate privileges, he or she may be able to use those privileges to place malicious code in the device system partition, where it may persist after device resets and may not be easily removed by the device user.

Many Android devices provide the ability to unlock the bootloader for development purposes. An unlocked bootloader may provide the ability for an adversary to modify the system partition. Even if the bootloader is locked, it may be possible for an adversary to escalate privileges and then modify the system partition.

ID: T1400
Sub-techniques:  No sub-techniques
Tactic Type: Post-Adversary Device Access
Tactics: Defense Evasion, Persistence, Impact
Platforms: Android, iOS
Version: 1.2
Created: 25 October 2017
Last Modified: 04 September 2019

Procedure Examples

Name Description

BrainTest uses root privileges (if available) to copy an additional Android app package (APK) to /system/priv-app to maintain persistence even after a factory reset.[1]


Dvmap replaces /system/bin/ip with a malicious version. Dvmap can inject code by patching or, depending on the Android OS version. Both libraries are related to the Dalvik and ART runtime environments. The patched functions can only call /system/bin/ip, which was replaced with the malicious version.[2]


FlexiSpy installs boot hooks into /system/su.d.[3]


Monokle can remount the system partition as read/write to install attacker-specified certificates.[4]

Pegasus for Android

Pegasus for Android attempts to modify the device's system partition.[5]

Pegasus for iOS

Pegasus for iOS modifies the system partition to maintain persistence.[6]


ShiftyBug is auto-rooting adware that embeds itself as a system application, making it nearly impossible to remove.[7]


SpyDealer maintains persistence by installing an Android application package (APK) on the system partition.[8]


Zen can install itself on the system partition to achieve persistence. Zen can also replace framework.jar, which allows it to intercept and modify the behavior of the standard Android API.[9]


Mitigation Description
Lock Bootloader
Security Updates
System Partition Integrity


Android devices with the Verified Boot capability [10] perform cryptographic checks of the integrity of the system partition.

The Android SafetyNet API's remote attestation capability could potentially be used to identify and respond to compromised devices.

Samsung KNOX also provides a remote attestation capability on supported Samsung Android devices.

iOS devices will fail to boot or fail to allow device activation if unauthorized modifications are detected.[11]