Application security feature

OS integrity signals

Otukan reports root, jailbreak and system modification as separate named signals from inside your app, so your backend can weigh OS integrity per flow.

  • Android
  • iOS
  • Flutter
  • React Native
Rooted or jailbroken OS is met at the os integrity signals boundary before it reaches the appRooted or jailbroken OSOS integrity signalsYour app
  • Named, not blended

    Each finding arrives as its own labelled signal, such as privilege tools or a writable system area, so your team can weigh them one by one.

  • Two platforms, two designs

    Android and iOS break in different ways. Otukan designs and tests its OS signals for each platform separately.

  • Ready for your risk engine

    Signals travel with sensitive requests, so your backend can combine them with attestation verdicts and account history.

OS conditions Otukan reports

Choose a condition to see how Otukan spots it, how the app reacts and what your backend receives.

Privilege escalation tools

  1. Detect

    Otukan looks for the binaries, managers and services that grant apps superuser rights on Android or unrestricted access on iOS.

  2. Respond

    High-risk flows are stepped up or restricted, per your policy.

  3. Report

    A privilege signal names the kind of tool found.

Modified system areas

  1. Detect

    Otukan checks whether normally read-only system locations have been changed or made writable.

  2. Respond

    Stored secrets stay locked and sensitive screens stay closed if you choose.

  3. Report

    Your backend receives a system-modification signal with the request.

Weakened security settings

  1. Detect

    On Android, Otukan reads security settings such as the enforcement mode of the platform's mandatory access control.

  2. Respond

    The app records the setting or restricts payment flows, as you decide.

  3. Report

    The specific setting is reported, not only a pass or fail.

Sandbox escape traces

  1. Detect

    On iOS, Otukan tests whether the app can reach locations or actions its sandbox should deny.

  2. Respond

    Sign-in, stored credentials or payments follow the response you assigned to them.

  3. Report

    A sandbox signal reaches your backend for the risk decision.

Root and jailbreak concealment

  1. Detect

    Otukan looks for tools that hide a modified system from apps, and for the hooks they rely on.

  2. Respond

    Concealment raises the response level for sensitive flows.

  3. Report

    A concealment signal is reported separately from the condition it hides.

Where OS integrity signals come from

OS signals draw on platform-specific controls and pair with verdicts your server verifies itself.

  • Android root detection

    Finds superuser tools, altered system partitions and root managers with checks written for Android.

  • iOS jailbreak detection

    Finds jailbreak tooling, package managers and sandbox gaps with checks written for iOS.

  • App and device attestation

    Lets your server verify platform verdicts and combine them with Otukan's on-device OS findings.

  • Emulator detection

    Separates physical handsets from virtual devices, many of which ship with privileged access switched on.

You choose the response

Set a response for each user flow. Start by observing, then tighten flow by flow as the signals prove themselves.

Observe

Signal sent to your backend

Rolling out a new policy and measuring real-world signals.

Warn

This device looks modified. Continue with care.

Conditions some genuine users create, such as developer settings.

Restrict

Payments are unavailable on this device.

Payments, stored data and account changes.

Terminate

Session closed for your security.

Clear tampering on a high-risk flow.

How it works

  1. Choose the flows

    Decide where OS integrity changes the outcome: sign-in, stored credentials, payments or key use.

  2. Collect on device

    Otukan gathers OS findings at launch and refreshes them before the flows you choose.

  3. Label each finding

    Each condition is reported as its own named signal with its platform.

  4. Decide on the server

    Your backend weighs the signals with attestation verdicts and account context.

  5. Tune with real data

    Observe how often each signal fires across your users before enforcing.

Free for app publishers

Check your app's exposure

A passive review of your published app by an Otukan engineer. No files, no access to your systems. Findings go by email to the verified publisher.

You finish the request on the next page.

Evaluate OS integrity signals by how clearly they tell you what is wrong with the operating system beneath your app, and whether your backend can use them. Otukan inspects the device from inside your app for privilege escalation tools, modified system areas, weakened security settings, sandbox gaps and tools that hide these conditions. Each finding is reported as its own named signal with its platform, not folded into a single verdict. Your app responds per flow, and your server weighs the signals together with attestation verdicts it verifies itself. Android and iOS signals are designed separately. They inform your risk decision; they do not replace it.

Sibling integrity controls are listed on application integrity.

What a compromised OS puts at risk

Your app relies on the operating system to keep other apps out of its storage, to protect its keys and to run only signed code. OS integrity signals tell you whether that reliance still holds on a given device.

Affected flows

The flows that suffer are the ones that lean on platform protection. Credentials cached for quick sign-in can be read by another process with superuser rights. Keys the app expects to be hardware-backed can be used by code the app did not approve. Payment confirmations can be driven by tools that the platform would normally block. The same device may be harmless for reading news and unacceptable for moving money.

The trust boundary

The boundary sits between your app and the platform. When it holds, the operating system enforces the sandbox, the keystore or keychain, and code signing on your behalf. When it breaks, those enforcements become optional for anyone with control of the device, and your app has to rely on what it can observe for itself.

Signal familyAndroidiOSLegitimate cases to allow for
Privilege toolsSuperuser binaries and managersJailbreak tooling and package managersEnthusiasts and security researchers
System modificationChanged or writable system partitionsChanged or writable system locationsSome custom system images
Security settingsMandatory access control enforcement modeNot applicable in the same formDeveloper and test devices
Sandbox reachReported through privilege and system signalsAccess or actions the sandbox should denyNone expected on an unmodified device
ConcealmentTools hiding root from appsTools hiding a jailbreak from appsNone expected

Who is responsible for what

OS integrity is a shared job. Each layer contributes evidence the others cannot collect.

The operating system

The platform offers its own evidence. On Android, Play Integrity gives your server a verdict on device integrity, and hardware-backed key attestation can report the device’s verified boot state. On iOS, App Attest lets your server confirm that requests come from a genuine instance of your app. These verdicts are verified by your server, not by the app.

The app

Otukan’s checks run inside your app and look at the operating system from the app’s point of view, at the moment of the request. They find conditions the platform verdict may not describe, and they let the app respond in the flow, before a sensitive step completes.

The backend

Your server brings the pieces together. It receives Otukan’s named signals with each sensitive request, adds the attestation verdicts it verified and the account’s history, and makes the call: allow, step up, restrict or refuse.

How to evaluate OS integrity signals

Supported platforms

Ask for a per-signal matrix: which signals exist on Android, which on iOS, and on which OS versions. A signal that only makes sense on one platform should be listed only there.

Evidence to ask for

In an authorised lab, prepare a rooted Android device and a jailbroken iPhone, then add a concealment tool to each. Confirm that every expected signal fires, with the right label, and that concealment is reported on its own. Confirm what your backend receives with a sign-in and a payment request.

User-impact checks

Measure before you enforce. Run in observe mode across your real users and see how often each signal appears, including developer settings and custom system images. Set proportionate responses per flow, then repeat install, update, sign-in and your most sensitive flow on clean devices to confirm they stay quiet.

Platform-specific detail is covered on Android root detection and iOS jailbreak detection.

Common questions

  • Why separate signals instead of one rooted or jailbroken flag?

    Because they mean different things. A writable system area, an active privilege tool and a concealment tool describe different levels of risk, and some legitimate users trigger one of them without malice. Separate signals let your backend treat a developer setting lightly and a concealed privilege tool seriously, instead of making one blunt decision for every user.

  • How do these signals relate to Play Integrity and App Attest?

    They answer different questions. Play Integrity returns a signed verdict about the app, the device and the installation that your server decrypts and verifies. App Attest lets your server confirm a genuine app instance on genuine Apple hardware. Otukan's signals describe the operating system's state as seen from inside your app, at the moment of the request. Your server can weigh all of them.

  • Can users hide root or a jailbreak from these checks?

    Concealment tools exist and they are good at hiding single traces. Otukan checks many independent traces and looks for the concealment tools themselves, so hiding becomes slower and less reliable. When concealment is found, it is reported as its own signal, which is often more telling than the condition it was meant to hide.

  • Will legitimate users be affected?

    Only as far as your policy decides. Start with observe on every flow and see how often each signal fires across your real audience. A proportionate policy leaves browsing untouched, steps up sign-in and restricts payments on the strongest signals. Otukan lets you set that response per flow and adjust it as your observations grow.

On the mobile engineering team?

How protection fits your build, signing and release, platform by platform.

See the OS behind every request

Tell us the platforms you ship, your app framework and how your backend makes risk decisions today. Binaries, signing keys and production credentials are never part of the conversation.

Or request a technical demo