0 votos

¿Puede un usuario de Android convertirse en un superusuario de Android?

¿Es posible cambiar los derechos del usuario normal en Android a superusuario?

Mi requisito es ejecutar el código de superusuario (quiero leer los datos de un archivo del directorio del sistema) en un dispositivo que ha rooteado el shell pero no podemos instalar ningún gestor de superusuario (SuperSu, Magisk etc.) en ese dispositivo.

He pensado en una solución como la siguiente:

  1. Instala un apk en tu dispositivo que tenga UI para llamar a la función requerida en el lado JNI para comenzar a leer los datos del archivo.
  2. Encuentre la identificación del usuario de la aplicación instalada. Lo encontré en el archivo data/system/packages.list.
  3. Haz que el propietario del archivo sea este nuevo usuario con su shell.
  4. Llama a la función requerida en la aplicación que intenta abrir el archivo.

pero esta solución no funciona. El archivo no se abre por código y devuelve -8002. El errno es 13.

fd = open("/system/file.txt", O_RDWR | O_LARGEFILE | O_NONBLOCK);
    if (fd < 0) {
        return -8002;
    }

Esto es muy importante para nosotros. Estaré muy agradecido a todos los que me ayuden en esto.

2 votos

Si el teléfono no está rooteado con SuperSU/Magisk, de dónde viene el su ¿binario? ¿Qué archivo quiere leer de /system? Puede que la información requerida esté disponible a través de alguna API de Android.

1 votos

El fabricante me ha dado el shell y quiero leer los datos de un puerto de Android para registrar el uso de la red. La lectura del archivo es sólo un ejemplo para demostrar el concepto de que podemos leer los datos privilegiados con la ayuda de shell rooteado. Lo siento mucho si no logro explicar el requisito, pero no hay tal cosa como el malware oculto.

0 votos

No hay ninguna API que pueda exponer los datos del puerto de Android. El puerto de Android es en realidad un archivo por lo que he utilizado la palabra archivo aquí para simplificar el requisito.

1voto

Gogu CelMare Puntos 31

Depende de lo que quieras hacer. Con su (si está instalado) se convirtió en un superusuario ... Pero si quieres acceder a algunos archivos necesitas ser el usuario sistema . Este parece ser su caso. Las credenciales del sistema de usuario pueden ser dadas a una aplicación (apk) si usted es el propietario de la Android os o tiene acceso a las claves privadas el os fue construido con... Si lo haces entonces necesitas firmar tu aplicación con esas claves y marcarla en el manifiesto como sistema de usuario...

0 votos

Gracias Gogu. Sé que puedo hacerlo haciendo mi aplicación como aplicación del sistema. Pero esto requiere la firma de la plataforma para firmar el apk. El fabricante nunca compartirá esta credencial con nosotros por lo que estamos buscando hacerlo sin la necesidad de la aplicación del sistema y las firmas de la plataforma. Por eso estoy explorando los permisos en Android.

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