Pregunta

Me gustaría escribir a /etc /hosts en mi aplicación Kivy, y seguramente tengo un dispositivo enraizado para probar. Intenté varias maneras, pero siempre obtuve la salida de mi aplicación sin ninguna advertencia o error.

He intentado:

subprocess.Popen("su -c touch /etc/hosts", shell = True)

subprocess.Popen("su -c bash -c touch /etc/hosts", shell = True)

subprocess.Popen(["su", "-c", "bash -c touch /etc/hosts"])

y varias combinaciones de ellos. Cada vez que puedo obtener el cuadro de mensaje de la aplicación SU, pidiéndome permiso y presioné "Permitir", pero mi aplicación sale después de eso.

EDITAR: la salida de logCat está en http://pastebin.com/ymt5vxra

¡Muchas gracias si alguien puede dar alguna sugerencia!

¿Fue útil?

Solución

Su error indica que String-Escape no es una codificación conocida. Kivy está enviando una versión lite de Python con sus libs, no todas las codificaciones, por ejemplo. Lo que puedes probar es:

  • Agarra el proyecto Python-for Android
  • Entrar en codificaciones privadas/lib/
  • Copie el archivo de su computadora a este directorio (/usr/lib/python2.7/encodings/string_escape.pyo)
  • Reconstruya su aplicación

Entonces eso debería funcionar.

El proyecto PGS4A-Kivy no es bueno tan pronto como Kivy no envía los archivos que desea. Por eso he empezado Python-for android proyecto. Tendrás el poder de lo que quieres o no en tu distribución final.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top