Documentation

Go to Portal Website

Include x86 Architectures

PlanPlatformsMASVS
EnterpriseAndroidNot mapped

Overview

IncludeX86Architectures is a build-time control that determines whether x86 and x86_64 native libraries are included in the final Android application package (APK/AAB). When enabled, the MobileDefender security module and all obfuscation runtime components are compiled and packaged for x86-based Android devices in addition to the default ARM architectures.

How It Works

By default, Android builds include native libraries (.so files) only for ARM-based architectures (armeabi-v7a and arm64-v8a), which represent the vast majority of consumer mobile devices. When IncludeX86Architectures is enabled:

  1. Native Library Compilation: The MobileDefender security module (libmobiledefender.so) is built for x86 and x86_64 ABIs in addition to ARM variants
  2. CodeGuard Runtime Inclusion: If EncryptAllCode is enabled, the CodeGuard decryption runtime (libcodeguard.so) is compiled for x86/x86_64 architectures
  3. ABI Directory Retention: During APK assembly, the build pipeline preserves lib/x86/ and lib/x86_64/ directories instead of stripping them
  4. Universal Compatibility: The resulting application can run natively on x86-based Android devices without falling back to ARM translation layers

When disabled (default), all x86/x86_64 ABI directories are removed from the final package to minimize APK size, since these architectures are rarely needed for consumer mobile devices.

When To Enable

Enable IncludeX86Architectures for applications that need to run on x86-based Android platforms:

Chromebook Support

Android Emulator Testing

x86 Enterprise Devices

When To Leave Disabled (Default)

Keep IncludeX86Architectures disabled for applications that:

Tradeoffs

AspectEnabledDisabled (Default)
APK Size+2-12 MB (native libs for 2 additional ABIs)Smaller package, faster downloads
Device CompatibilityNative support for x86 Chromebooks, emulators, enterprise devicesARM-only; x86 devices use translation or fail
Build Time+30-60 seconds (NDK compilation for x86/x86_64)Faster builds
Play Store DeliveryPlay Store's APK splits minimize per-device impactAlready optimized for ARM-only
Performance on x86Native execution, full security control supportTranslation layer overhead (if supported)

How to Enable the Control

Navigate to Settings from the AppTego portal, and open the Build Settings panel. Under this panel you will find the Include x86 Architectures setting. Click Enable to apply it to the next protected build.

API Configuration Example

{
  "IncludeX86Architectures": {
    "protection": true
  }
}
FieldPurpose
protectionEnables include x86 architectures for protected builds.

Configuration & Defaults

This control is configured at build submission time as part of the tenant build request payload:

{
  "include_x86": "true"
}
SettingDefaultDescription
include_x86"false"When "true", includes x86/x86_64 ABIs in the build; when "false", strips them

Recommended Configuration:

Caveats & Limitations

Android Only

Google Play Store Optimization

Emulator Considerations

Build Time Impact

Platform Support

PlatformSupported VersionsNotes
AndroidAll (API 26+)Controlled at build time; affects APK/AAB structure
iOSNot ApplicableiOS devices are ARM-only; this control is ignored

Technical Details

Supported ABIs

Default (IncludeX86Architectures disabled):

With IncludeX86Architectures enabled:

Build Pipeline Behavior

  1. Module Compilation: The MobileDefender module is always built with all ABIs (build.gradle.kts specifies ndk.abiFilters for all four)
  2. Selective Copying: During APK assembly, the build pipeline copies native libraries based on the include_x86 flag
  3. Directory Stripping: If include_x86 == false, any existing lib/x86/ and lib/x86_64/ directories in the customer APK are deleted to prevent ABI mismatches (which would cause UnsatisfiedLinkError at runtime)

Last Updated: 2026-04-22 Version: 1.0