A supplementary question:
https://source.android.com/devices/tech/debug/execute-only-memory says:
> You can manually verify binaries using readelf and checking the segment flags.
I'm failing to figure out just how to do that. If I use "readelf --segments myLib.so", my segment zero contains .hash .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .plt .text .rodata .eh_frame_hdr .eh_frame .note.android.ident and is marked R E which I presume means Read and Execute. That's fair enough, but when I look at the sections, the only two executable ones are:
[ 9] .plt PROGBITS 0000000000116620 00116620
0000000000000530 0000000000000010 AX 0 0 16
[10] .text PROGBITS 0000000000116b50 00116b50
0000000002d9114c 0000000000000000 AX 0 0 4
Those are both Allocate and eXecute, but I'm not seeing how I can tell if they're readable? The sections output doesn't seem to have a flag for that.
Thanks,
John