Application security feature

Mobile security index analysis for code protection

How to turn industry mobile security index findings into a code and binary protection test of your own app, with Otukan on Android and iOS.

  • Android
  • iOS
  • Flutter
  • React Native
Readable app binaries is met at the protected build output boundary before it reaches the appReadable app binariesProtected build outputYour app
  • From survey to binary

    Industry indices describe what organisations report. Otukan turns those themes into questions you can answer about your own compiled app.

  • Every layer in scope

    Bytecode, native code, framework bundles and metadata are assessed separately, because each language leaves different clues behind.

  • Measured, not assumed

    Protection is judged by comparing analysis results and release impact on your build, with a baseline beside it.

Binary exposures behind the headlines

Pick an exposure to see how Otukan counters it in your release.

Metadata that maps the app

  1. Detect

    Otukan reviews manifest entries, Info.plist keys, exported components and class metadata that describe your app's structure.

  2. Respond

    Names and descriptors that are not needed at run time are protected or removed from the release.

  3. Report

    Your team receives a list of what remains readable and why it has to stay.

Hard-coded endpoints and keys

  1. Detect

    Otukan locates endpoints, configuration values and key-like strings stored in clear form in code and resources.

  2. Respond

    Strings that must ship are protected; credentials are flagged for your team to move server-side.

  3. Report

    A per-release string inventory shows what is protected.

Plugin and bridge exposure

  1. Detect

    Otukan examines the channels between Flutter or React Native code and native plugins, where method names reveal capabilities.

  2. Respond

    Bridge names are kept where the framework needs them and the code behind them is protected.

  3. Report

    The keep decisions for each bridge are recorded with the build.

Symbol-rich native code

  1. Detect

    Otukan checks compiled C, C++, Swift and Objective-C code for exported symbols and debug information left in the release.

  2. Respond

    Symbols are stripped or transformed, and native logic loses the structure that guides an analyst.

  3. Report

    Debug symbols stay in your private archive for crash analysis.

Readable framework bundles

  1. Detect

    Otukan inspects Dart ahead-of-time code and JavaScript or Hermes bytecode bundles that platform tools leave readable.

  2. Respond

    Framework code is protected directly, not only the native shell around it.

  3. Report

    Results are reported separately for the framework layer and the native layer.

How Otukan turns findings into protection

Four steps from a published trend to a release you can defend.

  • Exposure baseline

    A structured review of what your current release reveals, per language and per platform, before anything changes.

  • Layered code protection

    Obfuscation, string protection and native hardening applied to the layers the baseline shows are most readable.

  • Tamper resistance

    Integrity checks that notice when a protected binary has been altered and raise a signal your backend can use.

  • Release impact measurement

    Size, start-up and key journeys compared between baseline and protected builds on physical devices.

From index finding to protected release

  1. Pick the themes

    Choose the report findings that match your app's risks, such as exposed secrets or modified copies.

  2. Baseline the binary

    Analyse your current release to see which of those exposures it actually has.

  3. Protect and test

    Apply protection in your pipeline and run compatibility checks on the protected build.

  4. Compare and decide

    Set the analysis results and release impact side by side and approve the release.

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.

Treat a published mobile security index as a list of questions, then answer each one against your own compiled app. Surveys describe what organisations report across an industry; they cannot tell you whether your release exposes secrets, readable logic or native symbols. Otukan closes that gap for Android and iOS apps built natively or with Flutter or React Native. It baselines what your current binary reveals, applies code and binary protection to the layers that need it inside your existing pipeline, and compares analysis results and release impact before you ship. This page quotes no figures from any report; the numbers that decide come from your build.

Code scope

Industry reports speak about apps in general. An attacker works on one binary, and what they can read depends on the language each part was written in.

LayerWhere it livesWhat it leaks without protectionOtukan’s treatment
Kotlin or JavaDEX bytecode in the Android packageNear-source logic and descriptive namesRenaming, string protection, control-flow transforms
Swift and Objective-CMach-O executable in the iOS bundleClass and selector names, Swift type metadataRenaming where the runtime allows, symbol and string protection
C and C++Native libraries per architectureExported symbols and algorithm structureSymbol stripping and native transforms
DartAhead-of-time compiled library in Flutter appsFunction names and embedded stringsFramework-level protection
JavaScriptPlain or Hermes bytecode bundle in React Native appsReadable app logic and API pathsBundle protection
Metadata and resourcesManifest, Info.plist, assets and configurationComponents, permissions, endpoints and keysResource protection and review of what must stay readable

Android and iOS are assessed separately. The Android manifest and the iOS Info.plist expose different things, and Objective-C keeps method names for its runtime in a way DEX bytecode does not, so the scope of each release is written per platform.

Choosing which themes to test

Not every trend in a report applies to every app. A payments app cares most about exposed endpoints and altered copies that bypass checks; a media app cares about unlocked paid features; an app with proprietary scoring cares about readable logic. Pick the three or four themes that match what an attacker would gain from your app, then turn each into a question the baseline analysis can answer with evidence.

For iOS specifics, see iOS code obfuscation.

Compatibility

A protection result means nothing if the app stops working. Otukan tests the places where transforms most often clash with how apps behave at run time.

Reflection and serialisation

Code that looks up a class or field by name, and libraries that map JSON keys to fields, need those names intact. Otukan keeps them and protects the code around them.

Selectors and dynamic dispatch

On iOS, Objective-C selectors, key-value coding and classes referenced from storyboards are resolved by name. Otukan leaves those names in place so dispatch keeps working.

Plugins and bridges

Flutter platform channels and React Native native modules connect framework code to native code by name. Otukan records each bridge that must keep its name and protects what sits behind it.

Crash symbolication

Each protected release keeps its mapping and debug symbols in your private archive, R8 mapping files on Android and dSYM files on iOS, so stack traces from users’ devices translate back to your source.

Validation

Compare approved analysis results

Analyse the baseline and protected builds with the same public tools and the same questions: which strings appear in clear form, which names explain the logic, which native symbols remain. Your security owner signs off the comparison, including the reasons anything still visible has to stay.

Measure release impact

Set the protected build against its baseline for download and installed size, cold start and your most sensitive journey, on physical devices that match your users. Run install, update and sign-in as regression checks. The method is described on mobile app protection performance.

For the full set of obfuscation techniques, see mobile code obfuscation. If your app is already in a store, start with a free App Exposure Check of the public release. For every protection layer Otukan offers, return to mobile app security.

Common questions

  • Why not base the decision on index figures alone?

    Because a survey describes what organisations across an industry report, while an attacker works on one binary: yours. Published indices change each edition and their figures belong to their publishers. Use the themes such a report raises, for example exposed secrets or modified app copies, to decide what to test, then let the analysis of your own release decide what to protect.

  • Which parts of an app does code protection reach?

    Otukan assesses and protects each compiled layer separately: Kotlin or Java bytecode on Android, Swift and Objective-C on iOS, native C and C++ libraries, Dart code in Flutter apps and JavaScript or Hermes bytecode in React Native apps, plus resources and metadata. Each layer leaves different clues, so each gets its own technique.

  • How do we know protection has not broken anything?

    The protected build goes through compatibility tests that target the usual failure points: reflection, serialisation, Objective-C selectors, framework plugins and crash symbolication. Your regression suite runs on physical devices, and a test crash confirms stack traces still map back to your source before the release is approved.

  • What counts as an approved analysis result?

    One your security owner signs off after comparing baseline and protected builds with the same public analysis tools and the same questions. The record states what was readable before, what is readable after, and why anything that remains visible has to stay that way. That comparison, not a single score, is what supports the release decision.

On the mobile engineering team?

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

Test your app against the trends

Tell us the platform, the framework, the languages your app is written in and which findings from industry reports worry you most. We never ask for source code, binaries, analysis output from your app, signing keys or production credentials.

Or request a technical demo