[INFO] Unity Engine support for 16 KB memory page sizes (Android 15+)

Hello folks,

We are excited to bring support for future 16 KB compatible devices to the Unity Engine!

With Android 15, Google introduced support for 16 KB memory page sizes in the OS. It is expected that device manufacturers will start bringing out devices with these capabilities to the market. Google’s testing suggests that there are noticeable performance gains on apps and games launching on 16 KB capable devices, with up to 10% improvement.

Support for 16 KB sizes is available from the following Unity versions:

  • Unity 6000.1+ released February 9, 2025
  • Unity 6000.0.38f1+ released February 14, 2025
  • Unity 2022.3.56f1+ released January 15, 2025
  • Unity 2021.3.48f1+ released January 22, 2025 accessible under extended LTS support for Enterprise/Industry customers

What do I need to do?

Apps that depend on native code, like Unity apps, will need to be rebuilt to include 16 KB support. At minimum you will need to:

  • Update to an Engine-compatible patch and above.
  • Update any native plugins that need updating.
  • Target Android 15+
  • Rebuild and resubmit your application to the Store.

16 KB support is in addition to 4 KB. The same executable will be able to support both memory page sizes.

Is this a requirement to target Android 15?

[Updated May 2025] Yes. Google announced on May 8th “Starting November 1st, 2025, all new apps and updates to existing apps submitted to Google Play and targeting Android 15+ devices must support 16 KB page sizes.

Currently (Jan 2025), it is not a hard requirement for targeting Android 15 in August 2025. However, this may change, and we will update this post if it does.

Can my existing app (4 KB) run on a 16 KB page size device?

No. Our tests indicate that Unity apps compiled for 4 KB memory page size will not work on 16 KB devices.

I am using an older/unsupported version of Unity

The 16 KB feature will be available for supported versions of Unity (2021 Extended Support/2022 LTS/Unity 6). To benefit from this feature, please update to one of these versions.

How do I know if my project is affected?

Unity Editor versions compatible with 16 KB will help you understand how your project complies with the requirement. The Unity Editor will warn you during a build, and on the plugin’s properties if your project contains a plugin with .so filetype that is not 16 KB aligned.

I am using the Burst package, and Google is flagging lib_burst_generated.so as not 16 KB aligned

Update the Burst package in your project to version 1.8.21+.

I depend on 3rd-party plugins/SDKs that link to native libraries. What do I need to do?

Reach out to the plugin creators to ensure that their native libraries are 16 KB compatible. You will need to update any related SDKs and resubmit your application.

I am a plugin developer with native libraries. What do I need to do?

Follow Google’s guidance to rebuild your libraries with 16 KB support. If your plugin relies on a third party native library, contact the original developer to provide 16 KB support.

How do I test 16 KB memory page sizes?

Please follow the official Android testing guidelines. You will need to make sure that your app does not make assumptions about 4 KB size across its whole functionality. You can test this via certain Pixel hardware or official Android emulators that can switch between the different memory sizes.
Currently (Jan 2025), these are available through developer options on the following devices:

  • Pixel 8 and 8 Pro (with Android 15 QPR1 or higher)
  • Pixel 8a (with Android 15 QPR1 or higher)
  • Pixel 9, 9 Pro, and 9 Pro XL (with Android 15 QPR2 Beta 2 or higher)

Thank you,

Platform Android team


Official Google Docs

21 Likes

How can we check if our plugins are supported when using the gradle injection method (default) for AdMob, Firebase etc (thus only gradle would probably detect unsupported native code right?)

2 Likes

16 kb pages on android 15?? :anguished: Nice Unity Nice!

1 Like

wait? so all unity apps and games previously build will not work on these devices? I know is out of your control what google and hardware manufacture decides to do but they didn’t planned a compatibility chip or something? they just don’t work anymore if not rebuilt?

what about the older editor licenses? now one is forced to update to the latest version with the newer license to keep the app running?

what about the endless assets used in these older projects that will not work on the supported versions?

oh my god

7 Likes

Hello,

Last week with Android 16 Beta 2 drop Google announced a compatibility mode. We (Unity Android Platform) are currently trying this out and we will update this post accordingly when we know more.

If you have a game in an unsupported Unity version might be worth trying this option out as well.

2 Likes

I am not following, we will have to have 3 version now to publish on play store?
32bit, 64bit 4K page and 64bit 16K page?

16-KB libraries are compatible with 4-KB devices, so submitting your 16 KB aligned app to the PlayStore will be enough.

3 Likes

Hey folks,

Google announced on May 8th “Starting November 1st, 2025, all new apps and updates to existing apps submitted to Google Play and targeting Android 15+ devices must support 16 KB page sizes.

We have updated the original post to reflect this change.

5 Likes

I’ve just read new guidelines on Play Console.
I use Unity 2021.3.32f1 (Personal Plan - Free).
When and how can I update to meet new requirements for 16 KB?

Thanks, bye.

1 Like

hi @its_neil as mentioned, the 16kb page size support is already available for Unity 6000.0.38

However, when we built with Unity 6000.0.44 and uploaded the build to Google Play Console, we got the warning of not supporting 16KB for this libraries:

  • base/lib/arm64-v8a/libUnityARCore.so
  • base/lib/arm64-v8a/lib_burst_generated

We rebuilt the app with Unity 6000.0.49 and the warning for lib_burst_generated is gone
but warning for libUnityARCore.so from com.unity.xr.arcore package is still there

We are using com.unity.xr.arcore v6.0, do we need to update it to 6.1? Because I don’t see 16KB support in the package changelog

Hi, @nhannguyen2gl
The libEasyAR.so library is part of EasyAR Sense from easyar.com.
As a representative of EasyAR, I’d like to share that EasyAR Sense 4.7 is scheduled for public release in Q3 2025 and will fully comply with Google’s 16 KB page size requirement.
EasyAR Sense is continuously evolving, with pre-release versions available for EasyAR Mega users. Other users may need to wait for the final 4.7 release to fully address the 16 KB page size issue.

[UPDATE 10/22] If you are looking for 16 KB page size compatible version of EasyAR, please use EasyAR Sense Unity Plugin 4000.0 or later. In the future, all users will be able to receive updates at the same time as EasyAR Mega users.

2 Likes

hi @Kenn_EasyAR sorry, I made a typo, actually it’s libUnityARCore.so instead of libEasyAR (edited in the message), thanks a lot for noticing :slight_smile:

I am using Unity 6000.1.3f1, which should support 16KB page size, if I am correct.
AppBundleExplorer is reporting however that base/lib/arm64-v8a/libquack.so does not support 16 KB.
Does anyone know what libquack.so is?

1 Like

Same issue with SO. But how do you have the SO concerned ? I have only a line sayoing it is not 16k complant

I do not have the SO, it looks like it’s a part of Unity engine and I’m trying to figure out what it actually is.

we still have the same warning when building with 6000.0.49 for these 2 files:

  • base/lib/arm64-v8a/libUnityARCore.so
  • base/lib/arm64-v8a/lib_burst_generated.so

Could this issue been solved in the future?

Hey @nhannguyen2gl - thanks for flagging this. Our ARCore team is working on this and will release an update very soon.

2 Likes

@pixelsprite_unity

Any chance you could also check this please. Thank you!

1 Like

Make sure you update the Burst package in your project to version 1.8.21+, which includes 16 KB support.

libquack.so seems to be generated from koush/quack, maybe a dependency you are including in your game uses this library. Try to search for libquack in your repo, see which package might be adding it and make sure you report it to the developer.