← Back to Field Notes & Guides
May 18, 2026 • 7 min read

Dynamic Network Telemetry Interception on Physical Android Hardware

Setting up dedicated hardware testbeds, configuring Network Security Config overrides, and extracting obfuscated telemetry calls.

By Tanakorn Ruangrit, Senior Mobile Telemetry Practice
Dynamic Network Telemetry Interception on Physical Android Hardware

While static code analysis flags known symbol names, commercial mobile SDKs often employ reflection, dynamic class loading, and JNI binary calls to disguise background telemetry collection. To observe real-world data transmissions, dynamic Man-in-the-Middle (MITM) network interception on physical devices is essential.


Step 1: Configuring Android Network Security for Audit Builds

Modern Android releases (Android 7.0+) enforce strict certificate validation, ignoring user-installed CA certificates by default. To allow an interception proxy (such as mitmproxy) to inspect encrypted TLS traffic on an audit build without rooting the production device, declare a dedicated network_security_config.xml:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <certificates src="user" />
            <certificates src="system" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>

Reference this configuration inside your application’s AndroidManifest.xml under the <application> tag:

android:networkSecurityConfig="@xml/network_security_config"

Step 2: Setting Up the MITM Interception Bridge

On our physical hardware testbed in Chiang Rai, we route Android Wi-Fi traffic through an isolated wireless access point with transparent proxying enabled via iptables:

# Redirect HTTP and HTTPS traffic to mitmproxy listening on port 8080
iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 443 -j REDIRECT --to-port 8080

Step 3: Flagging High-Risk Telemetry Vectors

During dynamic test execution, our automated parser monitors outbound HTTP headers and JSON bodies for telltale tracking parameters:

  • bssid / ssid / mac: Wi-Fi hardware signatures.
  • battery_level / is_charging: Battery status frequently used for cross-app device correlation.
  • screen_density + font_scale + uptime_millis: Combined entropy vectors for fingerprinting.
  • clipboard_hash: Periodic background checks of system clipboard changes.

When any of these vectors are detected, our audit team traces the initiating stack trace back to the offending library to provide an immediate remediation patch.

Have questions regarding this telemetry pattern?

We assist mobile development teams in conducting code reviews and restructuring live event pipelines.

Consult with an Auditor