Skip to content

[Android] libOpacityCore.so not 16 KB page size aligned — blocks Google Play submissions #19

@zakarya526

Description

@zakarya526

Summary

libOpacityCore.so (and the bundled libc++_shared.so) in the published AAR are aligned to 4 KB pages instead of the 16 KB page size now required by Google Play. This blocks production releases of any app that depends on opacity-android / @opacity-labs/react-native-opacity from being accepted for new uploads on Android 15+.

Reproduction

# Download the published AAR from JitPack
curl -sLO https://jitpack.io/com/github/OpacityLabs/opacity-android/6.21.0/opacity-android-6.21.0.aar
unzip -o opacity-android-6.21.0.aar -d opacity-extract

# Inspect LOAD segment alignment with NDK's llvm-readelf
$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/<host>/bin/llvm-readelf -l \
  opacity-extract/jni/arm64-v8a/libOpacityCore.so | grep LOAD

Evidence

Tested on 6.5.0 and 6.21.0 (latest). Same result on every ABI:

Library ABI LOAD alignment 16 KB compliant?
libsdk.so all 4 0x4000
libOpacityCore.so arm64-v8a 0x1000
libOpacityCore.so armeabi-v7a 0x1000
libOpacityCore.so x86 0x1000
libOpacityCore.so x86_64 0x1000
libc++_shared.so all 4 0x1000

libsdk.so is correctly 16 KB aligned, so the migration appears partially done — only libOpacityCore.so and the bundled C++ runtime are missing the alignment fix.

Impact

  • Google Play has required 16 KB page size support for new uploads of apps targeting Android 15+ since November 1, 2025 (reference).
  • Apps depending on this SDK currently cannot publish updates to the Play Store.
  • This is a release blocker for our production app and likely for every other consumer of opacity-android.

Request

Could you publish a release of opacity-android (and bump @opacity-labs/react-native-opacity accordingly) where libOpacityCore.so is built with -Wl,-z,max-page-size=16384 and the bundled libc++_shared.so is taken from a recent NDK (r27+) so it ships with the same alignment? That should be the only build-flag change needed.

If there's a timeline you can share, that would help us plan our short-term mitigation.

Environment

  • Affected versions: 6.5.0 through 6.21.0 (latest at time of filing)
  • Verified with: NDK r27.1.12297006, llvm-readelf from same NDK
  • App: React Native (Expo SDK 54, RN 0.81.5, new architecture enabled)

Happy to test a pre-release if you'd like to share a candidate AAR before publishing. Thanks!

@ospfranco

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions