Engineering

Compatibility and performance

How a mobile security team should evaluate compatibility and performance: criteria you set, re-checked on every change, per platform, on real devices.

  • Android
  • iOS
  • Flutter
  • React Native
  • Your acceptance criteria

    Your team decides what a protected build must meet on start-up, stability and key flows. Otukan works to those criteria, per platform.

  • Re-checked on change

    OS releases, framework upgrades, new SDKs and profile changes each trigger the same checks again, before users see the result.

  • Fair to real users

    Legitimate set-ups, such as accessibility services, managed devices and older phones, are part of the test, not an afterthought.

How Otukan supports the evaluation

Compatibility and performance are treated as release criteria, with evidence for each.

  • Per-control scope

    Supported OS versions are stated for each control and each platform, so you can check them against your own user base.

  • Change-triggered re-runs

    When an OS, framework or profile changes, Otukan's engineers repeat the agreed checks with you before the change ships.

  • Legitimate set-ups covered

    Test plans include accessibility services, work profiles, managed devices and the manufacturers your users actually carry.

  • Signals per version

    Otukan reports per app version, so a staged rollout shows whether a new protected build treats real users as expected.

How to run the evaluation

  1. Write the criteria

    Agree limits for start-up, stability, size and your key flows, separately for Android and iOS.

  2. Build the device list

    Choose physical devices and OS versions that reflect your users, including older and managed ones.

  3. Run both builds

    Test the unprotected baseline and the protected build from the same commit on that list.

  4. Gate the release

    A protected build that misses a criterion stops in the pipeline until the cause is fixed.

  5. Watch the rollout

    Read stability and Otukan's signals per version during the staged rollout before widening it.

A mobile security team should evaluate compatibility and performance as release criteria that are checked again whenever something changes, not as a single benchmark at purchase. Write down what a protected build must meet on start-up, stability, size and your key flows. Test it on the physical devices and OS versions your users have, including legitimate set-ups that can look unusual. Then repeat those checks for every OS release, framework upgrade and protection change. Otukan supports that loop for Android and iOS apps, including Flutter and React Native, with each platform judged on its own. For the measurement method in detail, see mobile app protection performance.

Where compatibility and performance meet risk

The flows users notice most are often the flows protection guards most closely. That is where the evaluation should concentrate.

FlowWhat users noticeWhat a protection check can affectWhat to watch
Cold start to first screenTime before the app is usableChecks placed at launchStart-up time per device
Sign-inDelay or unexpected promptsDevice and integrity checks before credentials are sentFlow latency and completion rate
Payment or transferFriction at the moment of valueChecks before a sensitive requestLatency and abandonment
Background workBattery drain or missed syncsChecks that run while the app is not in frontBattery and background limits
Update and installFailed updates, crashes after updateChanges in the protected artefactInstall success and crash rate per version

The boundary is the legitimate user’s device

Otukan is built to react to devices and tools you do not control. The compatibility question is the mirror image: a legitimate user on an unusual but honest set-up. Older phones, manufacturer-customised Android builds, accessibility services, work profiles and managed iPhones all belong in the test, because those users are customers, not attackers.

Who is responsible for what

Compatibility is shared work between the app, the operating system and your backend. Knowing which layer owns a problem shortens every investigation.

LayerIts part in compatibility and performance
Otukan in your appPlaces each check at the moment you choose per flow, and reports what it sees per app version
Operating systemChanges APIs, background limits, permissions and platform services with each release, differently on Android and iOS
Your backendHandles a missing or late signal sensibly, and decides responses without blocking on a single check
Your team and Otukan’s engineersOwn the criteria, the device list and the re-checks, per platform

Changes that trigger a re-check

  • a new major Android or iOS release, or its developer preview ahead of public release
  • a new Flutter or React Native version, or a toolchain upgrade
  • a new third-party SDK in the app, especially one that inspects or hooks the app
  • a new device family that appears in your user base
  • a change to the protection profile, such as a new control or a moved check

Each change runs the same agreed checks. The result is a short record your release owner can read before approving. Testing symbols, start-up and dependencies across each layer of a release is covered on the SDK protection solution guide.

Evaluation criteria

Supported platforms

Ask for the supported versions of each control, per platform, and compare them with your own analytics. A control that applies on Android says nothing about iOS until it is shown there. For how environments are scoped, see supported environments.

Evidence

CriterionQuestion to askAcceptable evidence
Version scopeWhich OS versions does each control support?A per-control matrix for each platform
Device spreadDoes the build install, update and run on your device list?Results per device from your protected build
Framework layerIs the Dart or JavaScript layer tested as well as the native shell?Framework-specific test runs
Third-party SDKsDo analytics, payment or fraud SDKs still work?Functional results with each SDK in place
Change handlingWhat happens on the next OS release?A re-check record from a previous change

User-impact checks

Measure what legitimate users experience, not only whether attacks are caught. Count legitimate sessions that received a warning or restriction during testing and the staged rollout. Review each one: either the signal was right, or the response for that flow should move to observe. Otukan lets you choose the response per signal and flow, so a correction is a profile change, not a rebuild of your logic.

Set the gate in your pipeline

Put the criteria in the release pipeline. A protected build that misses one stops there until the cause is found. To see how these gates sit among the other release stages, return to mobile DevSecOps.

Common questions

  • Which OS versions does Otukan support?

    Otukan states supported versions per control and per platform, because a runtime check and a code-protection control do not depend on the same parts of the system. Send us the Android and iOS versions your users run, and Otukan's engineers map each control against that list, so you see exactly where each one applies.

  • What happens when a new major OS version is released?

    Otukan follows Android and iOS releases, including their developer previews, and validates its controls against them. Your team should do the same with your protected app: run the agreed checks on the new version before your users upgrade in numbers, and ship an updated protected build if anything needs to change.

  • Will protection flag users who rely on accessibility services or developer options?

    Not by default. Otukan's runtime controls are designed to tell a legitimate set-up from an attack, and your evaluation proves it on your own devices. Include devices with accessibility services, developer options, work profiles and management enabled in the test list. Otukan lets you choose the response for each signal and flow, so a legitimate set-up can be observed rather than blocked.

Related

Hold every protected release to your bar

Tell us your platforms, frameworks, the OS versions and devices your users have and the flows where speed matters most. We do not ask for app builds, keys or user data.

Or request a technical demo