Repository navigation
v7.1.7 LTS Android (Free)
Free tier of the 7.1 LTS line. Nine artifacts, arm64-v8a + x86_64, built from FFmpeg n7.1.5 with the two CVE backports applied.
Seven of the nine tiers could not be loaded before this release
On 7.1.6, dlopen failed before a single function was called:
dlopen failed: can't enable GNU RELRO protection for
".../jni/x86_64/libswresample.so": Out of memory
It was not a memory shortage. PT_GNU_RELRO, rounded up to the 16 KB page size, extended past the last PT_LOAD; the loader's mprotect covered unmapped memory and answered ENOMEM. The cause was NDK r26c, whose lld rounds RELRO up to max-page-size without padding the final LOAD. It only affected small libraries, so full and full-gpl worked and it looked intermittent.
free, min, min-gpl, https, https-gpl, audio and video were affected. All nine tiers load in 7.1.7.
The same NDK shipped libc++_shared.so aligned on 4 KB, which would have failed on 16 KB-page devices — Google Play stops accepting updates without 16 KB support on 2027-02-01. And free, https and min shipped no libc++_shared.so at all, while libffmpegkit.so links against it unconditionally.
Also in this release
drawtextis present infull,full-gplandvideo. Since FFmpeg 6.1 it depends on libharfbuzz, andconfiguredrops a filter silently when its flag is absent; harfbuzz was built and linked all along but--enable-libharfbuzzwas never passed.- A filtergraph parse error no longer kills the process.
init_complex_filtergraph()left anAVFilterInOut *uninitialised and freed it on the error path. - CVE-2026-64830 (vobsub) and CVE-2026-64835 (adx), backported to
n7.1.5.
Toolchain
NDK r27c (27.2.12479018), as on the 8.1 line. Do not go back: r26c produces libraries that cannot be loaded.
Verification
Read from these artifacts, not from the build:
- every
.so:p_align16 KB andPT_GNU_RELROinside the lastPT_LOAD libc++_shared.sopresent in both ABIs of all nine- the pin, per ABI:
libavutil n7.1.5 - 18 capability lists compared against 7.1.6 for the two tiers that could be loaded before: one difference,
drawtextadded; nothing removed - 189 acceptance checks (21 × 9 tiers) on a device: 0 failures. The 41 skipped are tiers genuinely without the encoder or filter involved, cross-checked against each artifact's own capability tables.