1 votos

Error: "Operación no permitida", al intentar eliminar el binario su colocado por KingoRoot

He rooteado mi P8-Lite ALE-L21 (Android 5.0.1) con supersu.zip a través de TWRP recovery. Después de eso he instalado KingoRoot y KingoRoot reemplazado. su binario con algún otro su binario que es obsoleto para mi versión de Android y no funciona. Así que he modificado supersu.zip y he colocado su binario en otro directorio en /data/local . Ahora mi trabajo su binario está en /data/local y funciona bien con adb, pero no funciona con SuperSU y otras aplicaciones que utilizan el privilegio de Root.

Para solucionar este problema, intenté eliminar estos antiguos su binarios: /system/bin/su y /system/xbin/su con los siguientes comandos sin éxito:

$ adb shell
shell@hwALE-H:/ $ /data/local/su
root@hwALE-H:/ # mount -o remount,rw /system
root@hwALE-H:/ # rm /system/xbin/su
rm: /system/xbin/su: Operation not permitted
1|root@hwALE-H:/ # rm -rf /system/xbin/su
rm: /system/xbin/su: Operation not permitted
  • ¿Qué es este error? Operación no permitida ?
  • ¿Cómo puedo eliminar esos archivos su?

3voto

Firelord Puntos 161

Dado este enlace sobre mount al menos se confirma que la partición del sistema está montada en modo de lectura-escritura, por lo que podemos excluirla de la lista de posibilidades que pueden estar restringiendo rm de la eliminación. Además, el error también sería diferente.

Como estás ejecutando el comando con privilegio de superusuario, el propietario del archivo o el propietario del grupo de ese su archivo no debería ser la causa aquí. Lo más probable es que tenga algo que ver con los atributos del archivo.

Para comprobar los atributos de los archivos necesitamos lsattr herramienta. Android no viene con esa herramienta, así que no te queda más remedio que instalar busybox o toybox. Dado que tu Root estándar está estropeado, no puedes instalar el binario busybox usando una aplicación. Fallaría. En ese caso, descarga el binario de busybox o caja de juguetes apropiado para su dispositivo, cambie el nombre del binario a busybox o toybox, póngalo en /data/local/tmp/ y establecer el permiso de ejecución en ese archivo. El permiso puede establecerse utilizando chmod . Hazlo:

adb shell /data/local/su -c chmod 755 /data/local/tmp/<FILE>  # replace <FILE> with toybox or busybox

Pruebe el binario utilizando

adb shell /data/local/tmp/<FILE>   # replace <FILE> with toybox or busybox

Si funciona, ejecute

adb shell /data/local/tmp/<FILE> lsattr /system/xbin/su       

Según la salida en el chat los atributos del archivo son

-----a-A----- /system/xbin/su

Según manual de chattr ,

Cuando se accede a un archivo con el atributo "A" establecido, su registro atime no se modifica. Esto evita una cierta cantidad de E/S de disco para los sistemas portátiles.

Un archivo con el atributo 'a' establecido sólo puede ser abierto en modo append para escribir. Sólo el superusuario o un proceso que posea la capacidad CAP_LINUX_IMMUTABLE puede establecer o borrar este atributo.

a hora de último acceso.

Un archivo con el atributo 'a' no puede ser renombrado, borrado o sobrescrito, sino que sólo puede ser añadido. Así que esa es la razón rm arrojaba el error operation not permitted . (Me sorprende que KingoRoot no haya colocado i atributo).

En cualquier caso, primero debemos eliminar ese atributo. Hazlo:

adb shell /data/local/su -c /data/local/tmp/<FILE> chattr -a /system/xbin/su

Es posible que no dé ninguna salida a menos que se produzca un error. Ahora, compruebe de nuevo los atributos del archivo utilizando lsattr :

adb shell /data/local/tmp/<FILE> lsattr /system/xbin/su

Es debe ahora sea

-------A----- /system/xbin/su 

Ese atributo ha sido eliminado y eres libre de renombrar, borrar y sobrescribir ese archivo. Para eliminar el archivo, basta con hacer

adb shell /data/local/su -c rm -f /system/xbin/su    

Siga el proceso para cualquier otro archivo, si no puede ser eliminado por rm a la vez. Si lsattr informa i también, y luego quitarlo usando -i en chattr .

0 votos

Funciona como un encanto, realmente gracias por ayudarme

1 votos

Claro, no hay problema.

0 votos

Hola, necesito contactar contigo, es urgente @firelord

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