Android 16KB page-size warning on Google Play: PT_LOAD aligned but GNU_RELRO not 16KB-aligned in generated .so

Describe the bug (REQUIRED)

Google Play Console reports:

“Release may not support 16 KB memory page size”
Crashes detected on 16 KB page-size devices in pre-launch report

I checked the generated AAB and found that PT_LOAD alignment is 16KB, but GNU_RELRO end alignment is not 16KB-aligned for generated native libs.

So this looks like a RELRO alignment issue, not only ZIP/PT_LOAD alignment.

To Reproduce (REQUIRED)

  1. Defold project with Android target settings:
    • target_sdk_version = 36
    • minimum_sdk_version = 24
    • extract_native_libs = 0
  2. Build arm64-only Android AAB (arm64-android, release, AAB).
  3. Upload to Google Play Console.
  4. Play Console reports 16KB page-size compatibility warning and pre-launch crash on 16KB devices.

Project details

  • Defold versions tested:
    • 1.13.2-beta (sha: b8744400ed1bc199d30b73013ecb3bbb16e29ec4)
  • Extensions:
    • extension-admob 4.2.2
    • defold-ads-wrapper 1.5.1
    • extension-safearea 1.5.2

Verification performed

I extracted the AAB and inspected ELF program headers for .so files.

Example result (arm64 AAB):

  • libHindiLetterQuiz.so
    • PT_LOAD min align = 0x4000 (OK)
    • GNU_RELRO end mod 0x4000 = 0x1000 (NOT OK)

In earlier builds, libvkquality.so also showed non-zero RELRO mod.

Expected behavior (REQUIRED)

Generated arm64 Android native libraries should pass 16KB requirements fully, including RELRO-related alignment checks used by Play Console pre-launch tests.

Actual behavior

AAB builds successfully, but Play Console still flags 16KB compatibility and reports crashes on 16KB devices.

Additional context

If needed, I can attach:

  • AAB sample
  • exact verification script/output
  • Play Console warning screenshot