Aplicación que sobrevive a un restablecimiento de fábrica

Mi problema es teórico en este momento. Estoy investigando si es posible o no, antes de dedicarle horas.

  • Tengo un teléfono rooteado.
  • Quiero agregar una entrada a IPTABLES al inicio.
  • Si el teléfono se restableció de fábrica, todavía quiero que la entrada se agregue a IPTABLES.

Mis pensamientos hasta ahora son:

  1. Alterar la imagen de arranque y hacer que init.rc sea permanente, pero creo que eso es aterrador y arriesgado.
  2. Cree una aplicación (apk) que esté instalada y /system/appejecute el comando ITPABLES.

¿Cuáles son mis posibilidades de tener éxito con el número 2?

Para ejecutar IPTABLES, el apk necesita root, el teléfono está rooteado, pero ¿la aplicación tiene acceso de root solo porque está en /system/app? Las aplicaciones normales activan SuperSU para otorgar la raíz de la aplicación, pero quiero que haga lo de IPTABLES sin ventanas emergentes. Todo desatendido.

Respuestas (2)

Sus posibilidades de obtener el n. ° 2 son bastante buenas, aunque puede haber algunas advertencias. Para averiguar cuáles son, echemos un vistazo a lo que hace un . Él...

  • toallitas/data
  • toallitas/cache
  • borra el caché (generalmente implícitamente, ya que en la mayoría de los casos esto reside en /data; supongo que con Lollipop hará lo mismo con ART).

Así que ya ves, /systempermanece intacto. Con su aplicación instalada en /system/app, se restablecerá la configuración de fábrica. Pero es posible que sus datos no, ya que /datase borran. Lo que significa que todas las configuraciones requeridas deben ser parte de la propia aplicación o de sus "configuraciones predeterminadas" que se implementan en la primera inicialización.

Para la segunda parte: es mejor preguntar en un sitio de desarrollo (que no lo somos). Básicamente, ninguna aplicación obtiene acceso de root por defecto AFAIK. Obtienen acceso a todo lo que permiten sus permisos (y sí, hay permisos que se pueden otorgar a las aplicaciones del sistema que no están disponibles para las "aplicaciones de espacio de usuario"), pero para el acceso de root, debe preguntar, lo que debería sudesencadenar la aplicación de superusuario correspondiente.

PD: En cuanto a la ventana emergente SuperSU, me temo que tendrá que vivir con eso para la primera llamada .

Gracias. Supongo que tienes razón. Lea más sobre SU y parece que todo el diseño es para prevenir a menos que el usuario diga lo contrario. Probé una cosa que podría ser prometedora. Inhabilité SU, inicié una ventana de terminal, probé para hacer algo que requiere root, me negaron. Pero podría iniciar telnetd a través de busybox. La sesión de telnet era usuario root... extraño. Pero en la sesión de telnet puedo hacer lo que quiera.
Exactamente. De lo contrario, las aplicaciones maliciosas podrían abusar de eso, por lo que se requiere la interacción del usuario. ¡Me alegro de haber podido ayudar!

Hay aplicaciones que sobreviven a un restablecimiento de fábrica, la más conocida es Cerberus. Lo instala como una aplicación del sistema a través de la recuperación y luego sobrevive básicamente a cualquier cosa. Después de un restablecimiento de fábrica, aún puede hacer cosas como hacer fotos, rastrear la ubicación, etc. Entonces, diría que lo que está tratando de lograr debe ser posible. Sin embargo, no soy un desarrollador, así que no puedo mostrarte exactamente cómo hacerlo.

Sí, es verdad, pero Cerberus y AndroidLost tienen un servidor del que pueden obtener su configuración usando el IMEI del teléfono como clave, y también funcionan en teléfonos no rooteados. Las aplicaciones como los cortafuegos, etc. también me ayudarían, pero desafortunadamente pierden su configuración en el restablecimiento de fábrica y comienzan como deshabilitadas Y solicitan activamente el acceso a la raíz.