LD_LIBRARY_PATH a veces ignorado en Android

Tengo una aplicación para Android que genera muchos ejecutables nativos dinámicamente vinculados con las bibliotecas que distribuyo con el paquete. Para iniciar esos binarios, uso la variable de entorno LD_LIBRARY_PATH para que conozcan el lugar desde donde se cargan las bibliotecas, pero en algunos dispositivos esto no funciona en absoluto, LD_LIBRARY_PATH se actualiza correctamente pero el binario no encuentra la biblioteca de todos modos. . Esto no es algo que pueda reproducir porque en mis dos dispositivos (Galaxy Nexus y Nexus 7 con stock roms) simplemente funciona bien.

Probé de muchas maneras, por ejemplo engendro:

LD_LIBRARY_PATH=/my/package/custom/libs:$LD_LIBRARY_PATH && cd /binary/directory && ./binary

Y

    String[] envp = { "LD_LIBRARY_PATH=" + libPath + ":$LD_LIBRARY_PATH" };

    Process process = Runtime.getRuntime().exec( "su", envp );

    writer = new DataOutputStream( process.getOutputStream() );
    reader = new BufferedReader( new InputStreamReader( process.getInputStream() ) );

    writer.writeBytes( "export LD_LIBRARY_PATH=" + libPath + ":$LD_LIBRARY_PATH\n" );
    writer.flush();

Pero en esos dispositivos, nada parecía funcionar ... así que estoy empezando a pensar que se trata de un problema relacionado con el kernel, algunos kernels (como el mío) usan LD_LIBRARY_PATH, otros kernels no (simplemente lo ignoran, o están utilizando solo el LD_LIBRARY_PATH que se estableció en el inicio de la aplicación, por lo tanto, no hay manera de cambiarlo en tiempo de ejecución).

También intenté usar System.load pero no funcionó, probablemente porque esas libretas no son JNI ... ¿hay algo que pueda probar antes de empezar a pensar en usar binarios enlazados estáticamente?

Respuestas a la pregunta(4)

Su respuesta a la pregunta