Agora RTM sdk 16 KB page-size fix: upgrade to 2.2.2
Artifact io.agora.rtm:rtm-sdk · measured 2026-10-01 · all libraries
fixed
Agora RTM sdk versions up to and including 2.2.1 that we measured ship 4 KB-aligned native libraries (offending for Google Play's 16 KB page-size requirement). The first measured aligned stable version is 2.2.2; the newest measured, 2.3.0, is no-native-64bit.
- NATIVES MOVED (latest has no 64-bit .so). Successor artifacts measured 2026-10-01 (data/successors-2026-10-01.json): rtm-sdk-lite:2.3.0 aligned; aosl:1.3.5 aligned. Only these versions were measured; any other successor version is UNVERIFIED
- Sampled, not exhaustive: 23 of 26 published versions were measured with native code; unmeasured versions in between are unknown.
Measured evidence
| Version | Library file | p_align | File date | Source | |
|---|---|---|---|---|---|
| Last offending | 2.2.1 | jni/arm64-v8a/libagora-rtm-sdk.so | 4 KB (2^12) | Fri, 09 Aug 2024 08:58:51 GMT | artifact |
| First aligned | 2.2.2 | jni/arm64-v8a/libagora-rtm-sdk.so | 16 KB (2^14) | Thu, 12 Dec 2024 06:54:36 GMT | artifact |
p_align is the smallest PT_LOAD segment alignment of the ELF. 16 KB-compatible needs at least 16384 (2^14). Method: min PT_LOAD p_align of arm64-v8a/x86_64 .so inside the published AAR/JAR; aligned = >=16384 for every lib. Dates are repository file times, not official release dates.
Offending versions measured (20)
1.4.4, 1.4.5, 1.4.5.0, 1.4.6, 1.4.7, 1.4.8, 1.4.9, 1.4.10, 1.4.10.208, 1.4.10.209, 1.5.0, 1.5.1, 1.5.2, 1.5.3, 2.1.7, 2.1.9, 2.1.10, 2.1.11, 2.1.12, 2.2.1
Native libraries seen: libagora-rtm-sdk-jni.so, libagora-rtm-sdk.so, libaosl.so.
The Gradle change
implementation("io.agora.rtm:rtm-sdk:2.2.2")an aligned version, lowest measured above the last offending one; newer measured versions are aligned too (latest 2.3.0, which ships no 64-bit .so: natives removed or moved, measure the separate artifact). Check: ./gradlew :app:dependencyInsight --dependency rtm-sdk --configuration releaseRuntimeClasspath // NATIVES MOVED (latest has no 64-bit .so). Successor artifacts measured 2026-10-01 (data/successors-2026-10-01.json): rtm-sdk-lite:2.3.0 aligned; aosl:1.3.5 aligned. Only these versions were measured; any other successor version is UNVERIFIED
Confirm what Gradle actually resolves, since another dependency may pull an older version:
./gradlew :app:dependencyInsight --dependency rtm-sdk --configuration releaseRuntimeClasspathRe-verify it yourself
Download the artifact and run the free checker (check16k.py, Python 3, no dependencies):
curl -LO https://repo1.maven.org/maven2/io/agora/rtm/rtm-sdk/2.2.2/rtm-sdk-2.2.2.aar
python3 check16k.py rtm-sdk-2.2.2.aarExit 0 = aligned, 1 = an unaligned library found. Better still, run it on your final .aab/.apk.
The paid kit ($12, v2) contains the complete measured fix map for all 80+ libraries as JSON and a table, every raw per-version measurement, the spot-check evidence, and the step-by-step guide for Play's 16 KB requirement. This page and the checker script stay free.
Get the kit ($12)Related artifacts
- Agora RTC voice-sdk (io.agora.rtc:voice-sdk)
- Agora special full (io.agora.rtc:agora-special-full)
- Agora full-rtc-basic (io.agora.rtc:full-rtc-basic)
- Agora RTC full-sdk (io.agora.rtc:full-sdk)
- Agora RTM (io.agora:agora-rtm)