Actualmente estoy tratando de ejecutar un simple shell script a través de MacroDroid. dispositivos son Huawei y Samsung (Oreo no rooteado).
en MacroDroid intentó las siguientes ubicaciones:
/data/local/tmp/script.sh
/storage/emulated/0/MacroDroid/script.sh
/storage/emulated/0/Android/data/com.arlosoft.macrodroid/files/script.sh
MacroDroid informa de permiso denegado:
/system/bin/sh: <stdin>[4]: /data/local/tmp/script.sh: can't execute: Permission denied
/system/bin/sh: <stdin>[4]: /storage/emulated/0/MacroDroid/script.sh: can't execute: Permission denied
/system/bin/sh: <stdin>[4]: /storage/emulated/0/Android/data/com.arlosoft.macrodroid/files/script.sh: can't execute: Permission denied
el propio script funciona cuando se ejecuta desde adb shell:
adb shell
$ cd /data/local/tmp
$ chmod 0755 script.sh
$ ls -nZ script.sh
-rwxr-xr-x 1 2000 2000 u:object_r:shell_data_file:s0 ...
$ ./script.sh
En el Emulador de Terminal se puede leer el script (y pasar como argumento a sh
funciona):
$ /data/local/tmp/script.sh
/system/bin/sh: /data/local/tmp/script.sh: not found
$ sh /data/local/tmp/script.sh
$ sh /storage/emulated/0/MacroDroid/script.sh
$ sh /storage/emulated/0/Android/data/com.arlosoft.macrodroid/files/script.sh
MacroDroid tiene todos los permisos concedidos en la configuración. Las macros pueden crear sus propios archivos de registro en /storage/emulated/0
¿Cuál es la ubicación adecuada para los scripts de shell en un dispositivo no rooteado?