Ejecutar el archivo de secuencia de comandos de Shell en el dispositivo Android incorporado usando la función del sistema en Android NDK

Todo

Aquí quiero ejecutar el archivo .sh a través de una llamada al sistema en Android NDK.

Puedo ejecutarcp,rm comando a través de la llamada al sistema. pero el comando sh no funciona a través de la llamada al sistema.

También instalé busy-box en Android. Estoy usando el siguiente código. Configuré todos los permisos entest.sh.

Code:

#include <stdlib.h>
#include <stdio.h>
#include <android/log.h>
#include <jni.h>

#define LOG_TAG "Demo"

#define LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)


void Java_com_ndkdemo_NDKdemoActivity_systemcall(JNIEnv * env, jobject obj) {

    int result;

    result = system("cp /mnt/sdcard/test /Download");

    LOGD("result is cp %d", result);

    result = system("sh ./test.sh");

    LOGD("result of test.sh is %d", result);

}

Salida:

 result is cp 0.
 result of test.sh is 0.

Aquí estoy obteniendo 0 ensystem("sh ./test.sh"); pero no comenzó eltest.sh script.

cant obtener salida"Hi" en la consola.

test.sh contiene

#!/system/bin/
echo "Hi"

Si estoy ejecutando un comando directo en el indicador que funciona bien y su salida dada"Hi" en la consola.

Por favor, ayúdame a resolver este problema.

Gracia

Respuestas a la pregunta(4)

Su respuesta a la pregunta