LD_LIBRARY_PATH ignorado no Android algumas vezes

Eu tenho um aplicativo Android que gera muitos executáveis ​​nativos dinamicamente vinculados com bibliotecas que eu distribuo com o pacote. Para iniciar esses binários, eu uso a variável de ambiente LD_LIBRARY_PATH para torná-los cientes do local para carregar as bibliotecas, mas em alguns dispositivos isso não funciona, o LD_LIBRARY_PATH é atualizado corretamente, mas o binário não consegue encontrar a biblioteca de qualquer maneira . Isso não é algo que eu possa reproduzir porque nos meus dois dispositivos (Galaxy Nexus e Nexus 7 com roms de estoque) ele simplesmente funciona bem.

Eu tentei muitas maneiras, por exemplo eu desovar:

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

E:

    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();

Mas nesses dispositivos nada parecia funcionar ... então eu estou começando a pensar que este é um problema relacionado ao kernel, alguns kernels (como o meu) usam o LD_LIBRARY_PATH, outros kernels não (simplesmente ignorá-lo, ou eles são usando apenas o LD_LIBRARY_PATH que foi definido na inicialização do aplicativo, portanto não há como alterá-lo em tempo de execução).

Eu também tentei usar System.load, mas não funcionou, provavelmente porque essas bibliotecas não são JNI ... existe algo que eu poderia tentar antes de começar a pensar em usar binários vinculados estaticamente?