I’m currently testing my Unity project for Android 15 compliance (Google Play requirement for 16 KB memory page sizes).
After upgrading to Unity 6.2 (which claims to support 16 KB page size by default), I verified my generated .so libraries. For arm64-v8a everything looks fine — all LOAD segments are aligned at 0x4000.
However, when checking the armeabi-v7a libraries, I found that two Unity-bundled .so files are still aligned at 4 KB instead of 16 KB.
Observed Behavior
armeabi-v7a/libc++_shared.so → aligned to 0x1000 (4 KB)
armeabi-v7a/libswappywrapper.so → aligned to 0x1000 (4 KB)
arm64-v8a equivalents → aligned correctly at 0x4000 (16 KB).
Question: Will Unity release updated armeabi-v7a libraries aligned for 16 KB? Or is the recommendation to officially drop ARMv7 support moving forward?
Pretty sure 32 bit libraries like armeabi-v7a don’t need to be 16 KB aligned. You can continue to include armeabi-v7a libraries, but you don’t need to align them.
The aab with non-16KB-aligned native libraries is accepted by the Play store:
The problem wasn’t with the native libraries, but with the bundletool version. I upgraded the Unity package com.google.android.appbundle from 1.9.0 to 1.10.0. That includes a bundletool update from 1.14.0 to 1.18.1 (release notes). Bundletool version 1.17.0 sets the default page size to 16KB (release notes). I guess that solved it for me.
The error messages shown in the Play console and the instructions given to act on it didn’t lead me to the right direction.