Configuration audio modem (ADSSS)
Encoder path
Decompiled from the Android client: AdsssJni.encodeFromMemory(byte[], float[]) accepts JSON bytes and a reference float-PCM buffer. It builds a ReferenceSource at the expected sample rate, an Encoder, serializes the payload, and calls Encoder::Go.
The app loads reference4_10sec.pcm from assets and returns a new float array. A wrapper adds a WAV header before playback.
WAV format
The produced file is:
| Property | Value |
|---|---|
| Container | RIFF/WAVE |
| Encoding | IEEE float, format tag 3 |
| Channels | 1 |
| Sample rate | 16,000 Hz |
| Bits per sample | 32 |
| Reference payload | 161,600 samples / 646,400 bytes |
| Duration | 10.1 seconds |
The reference PCM is normalized and preprocessed by the native library. The encoded output is not a generic beep pattern: it is an ADSSS-modulated data stream.
Native implementation
libADSSS.so includes the JNI entry point plus ADSSS::Encoder, ReferenceSource, FFT/FIR helpers, randomization, and Reed–Solomon support. An x86-64 build is included in the APK, so exact app-compatible audio can be generated off-device.
The modulation is independent of VK login. It transports env, Wi-Fi country/SSID/PSK, xToken, and optional account ID.
Validation
A local shim reproduced the JNI call with the original reference PCM and generated a valid 16 kHz mono IEEE-float WAV. Playback through ordinary audio hardware works; speakers must be close enough for the Mini's microphone to decode it. Headphones placed directly on the Mini also work.