I have two executables, both of which are compiled to run on Android. I put both on the device in the same directory. I put all the shared libraries in which they are in the same directory, including ld-linux.so.3. I run executables using:
ld-linux.so.3 --library-path / path / to / libraries executable_name
both work on older versions of Android at startup like any user. Both are working on the latest version of Android if they are running as root. Only one works with the latest version of Android at startup like any user. Instead, it gives:
could not display segment from shared object: operation executable_name not allowed
How can I find out what is different from an executable that will not work?
I read a lot online and most people who get this error:
A) do not have permission to execute for one of the libraries on which they depend, or the executable file itself.
or
B) try to run from a directory installed as NOEXEC.
both of them do not look so. He can find all the libraries, and I can download any library myself and see what other things it depends on permission. In addition, I can run basic scripts from directories of interest.
The new version of Android, Jelly Bean, is another version of the Linux kernel, and I wonder if this is related to this.
What do they give? How do I debug?
source share