Android Question 16KB Page - help is needed

Zeev Goldstein

Well-Known Member
Licensed User
Longtime User
hello

we all got the notice from google about their new requirement for apps that support 16kb pages
honestly - i don't even know where to start
checking the app page in google provided me with the libs that have issues with that requirement
as i use only libs i got from this great environment (see attached screenshot for details) i am feeling a bit lost

is that because i use sdk 35?
is the b4a ide fixed with sdk 36? or should i wait for an update?

i will appreciate any help & guidance

b4a_ProblematicLibs16KB.png

Zeev
 

Zeev Goldstein

Well-Known Member
Licensed User
Longtime User
hi

ran the tool provided to check 16kb compatibility (https://www.b4x.com/android/forum/threads/android-16kb-page-size-compatibility-checker.168942/) that was just posted

got the following results
looks (to me) it is all in internal libs - am i wrong?
who should i go on?
i can't understand what am i supposed to do now?



Extracting archive...
Found 5 .so file(s) in arm64-v8a folder

Checking: libcardioDecider.so
WARNING: No .note.gnu.property section found (may indicate old NDK)
FAIL - See details below:
- p_vaddr (0x11D18) not aligned to p_align (65536)
- p_offset (0x1D18) not aligned to p_align (65536)

Checking: libcardioRecognizer.so
WARNING: No .note.gnu.property section found (may indicate old NDK)
FAIL - See details below:
- p_vaddr (0xBFAE0) not aligned to p_align (65536)
- p_offset (0xAFAE0) not aligned to p_align (65536)

Checking: libcardioRecognizer_tegra2.so
WARNING: No .note.gnu.property section found (may indicate old NDK)
FAIL - See details below:
- p_vaddr (0xB3BE0) not aligned to p_align (65536)
- p_offset (0xA3BE0) not aligned to p_align (65536)

Checking: libopencv_core.so
WARNING: No .note.gnu.property section found (may indicate old NDK)
FAIL - See details below:
- p_vaddr (0x2EC9F0) not aligned to p_align (65536)
- p_offset (0x2DC9F0) not aligned to p_align (65536)

Checking: libopencv_imgproc.so
WARNING: No .note.gnu.property section found (may indicate old NDK)
FAIL - See details below:
- p_vaddr (0x24FAC0) not aligned to p_align (65536)
- p_offset (0x23FAC0) not aligned to p_align (65536)


= * 80
FINAL RESULT
= * 80
FAILED: 5 non-compliant file(s):
- libcardioDecider.so
- libcardioRecognizer.so
- libcardioRecognizer_tegra2.so
- libopencv_core.so
- libopencv_imgproc.so

Required fixes:
1. Update to NDK 27+ which has proper 16KB alignment support
2. Add -Wl,-z,max-page-size=16384 to your linker flags
3. Recompile all native libraries
4. Contact third-party library vendors for 16KB-compatible versions

For gradle builds, add to build.gradle:
android.defaultConfig.ndk.abiFilters 'arm64-v8a'
android.defaultConfig.externalNativeBuild.cmake.arguments '-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON'
 
Upvote 0

Zeev Goldstein

Well-Known Member
Licensed User
Longtime User
I don´t think it is any of the internal libraries.
thanks for the quick reply
so how do i know what or where is the problem?

another idea i just got -
what will happen if i take out the app from play store and hold it on my private server?
will then i be able to keep on with my app without google hitting me?
and of course to keep update it from my server?

i will put the same app minimized in play store that will only download and install the full app (both with same signature so it should run as update
and then after first setup it will go on directly from my server
the play store will be only for new users

if that so this can be a way to escape from that headache

thanks
 
Upvote 0

Zeev Goldstein

Well-Known Member
Licensed User
Longtime User
I don´t think it is any of the internal libraries.
these are the libraries i use in my project
LibsUsed.png

and these are the libs that google pay complains about

b4a_ProblematicLibs16KB.png


the results of the checking tool are in a previous post
so what are these libs if not internal?

i think that may help resolve my problem

thanks
 
Upvote 0

Zeev Goldstein

Well-Known Member
Licensed User
Longtime User
look at this "strange" thing
this is the library list i use
look at those on red and the one in yellow
the red - are internal - as i'm on the latest b4a version - why didn't they update along the tiome?
how do i update these libraries?

the one in yellow is external (in my additional libraries folder) - how do i update it?

clicking on the online version brings me to a page with no update or explanation

any ideas? help?

thanks
LibsUsed - Copy.png
 
Upvote 0

Zeev Goldstein

Well-Known Member
Licensed User
Longtime User
Those with V10 was made to be the same version as the new release of B4i V10.

Since they all use the same Google docs index file, it's reflecting everywhere including b4a
thanks
that's odd as it shouldn't mislead - if i see ver 1 and then ver 10 how shell i know?
i hope this is not what disturbs google on my 16KB issue

still i have found no solution as per what libs are causing the problem
 
Upvote 0

Zeev Goldstein

Well-Known Member
Licensed User
Longtime User
what are these libraries:

- libcardioDecider.so
- libcardioRecognizer.so
- libcardioRecognizer_tegra2.so
- libopencv_core.so
- libopencv_imgproc.so

i don't use them
i don't use any .so lib
i can even find them on my entire disk

so how are they effecting my app ?
 
Upvote 0

Zeev Goldstein

Well-Known Member
Licensed User
Longtime User
guys
seems i managed to solve my problem with 16KB
it was an external old library i used and it was with a name misleading me
at this point the check went smooth

thank you all for trying to help and of course your patience and good will
 
Upvote 0

DonManfred

Expert
Licensed User
Longtime User
Last edited:
Upvote 0

Zeev Goldstein

Well-Known Member
Licensed User
Longtime User
probably cardiowrapper (an EXTERNAL library)

i can´t see OpenCV in your librarylist. But openCV is an EXTERNAL library.

See here: https://www.b4x.com/android/forum/pages/results/?query=opencv
Yes
As i posted earlier i did find the library that included internally those .so libs
I removed it and magic - the 16kb check passed clean
The app is now checked by google after i uploaded an update without that library that was anyway not in use

Thanks a lot for all the help and good will
 
Upvote 0

Peter Simpson

Expert
Licensed User
Longtime User
Yes
As i posted earlier i did find the library that included internally those .so libs
I removed it and magic - the 16kb check passed clean
The app is now checked by google after i uploaded an update without that library that was anyway not in use

Thanks a lot for all the help and good will
What was the library name, as reference for other B4A developers that might come across this issue using the same library that you removed from your project?
 
Upvote 0

Zeev Goldstein

Well-Known Member
Licensed User
Longtime User
What was the library name, as reference for other B4A developers that might come across this issue using the same library that you removed from your project?
It was a very old lib called cardiowrapper
It was used to scan credit card using the camera and return the card info

I wish there was an updated lib or an alternative to do that task - call the camera to scan credit card and return its info (mainly card number and expiry)
 
Upvote 0
Top