0 votos

Se niega el permiso del emulador de terminal en comandos complejos

Estoy portando un script que funciona bien en Android 4.0.4 a Android 4.4.2

Simplificado hace esto:

ls *.a | ./busybox xargs ./busybox rm -f

Estoy usando un binario de busybox en la carpeta de mi aplicación.

El error que estoy recibiendo es:

ocupado: Permiso denegado

Sin embargo, si corro ./busybox rm -f x.a funciona.

Estoy rooteado y puedo ejecutar comandos simples como root, el problema es cuando un comando tiene un comando anidado dentro.

Lo mismo sucede con el rsync -e.

Lo he probado en el Android 10.1 de edición de la Samsung Galaxy 4.0.4, donde funciona bien, y en el Android 10.1 de edición de la Samsung Galaxy 4.4.2, donde falla.

Siento que esto tiene algo que ver con el problema: Artículo del emulador de terminales sobre su y ping pero no ayuda en la solución.

0voto

Rombus Puntos 1

He confirmado que fue culpa de SELinux. Ejecutar la aplicación como usuario de Linux en lugar de Root me llevó más lejos, pero "rsync -e ./ssh" aún no funcionó.

Hizo brillar un kernel personalizado sin SELinux (getenforce devuelve "Deshabilitado") y ahora funciona bien.

Para ello hay que saber descomprimir una imagen oficial de Android y cambiar el archivo boot.img por el de un kernel personalizado, luego volver a comprimir y flashear con odin.

Cualquier intento de deshabilitar el selinux no me llevó a ninguna parte, sólo cambiar el núcleo funcionó.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X