Domanda

Vorrei scrivere su /etc /host nella mia app kivy e ho sicuramente un dispositivo radicato da testare. Ho provato in diversi modi, ma mi esca sempre la mia app senza alcun avviso o errore.

Ho provato:

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"])

e diverse combinazioni di esse. Ogni volta che riesco a ottenere la casella di messaggi dell'app SU che mi chiede il permesso e ho premuto "Consenti", ma la mia app esce dopo.

MODIFICARE: output di logcat è a http://pastebin.com/ymt5vxra

Molte grazie se qualcuno può dare un suggerimento!

È stato utile?

Soluzione

Il tuo errore indica che String-Escape non è una codifica nota. Kivy sta spedendo una versione Lite di Python con le loro librerie, non tutte le codifiche, ad esempio. Quello che puoi provare è:

  • Prendi Python-for-Android Project
  • Entra in private/lib/codifica
  • Copia il file dal tuo computer in questa directory (/usr/lib/python2.7/encodings/string_escape.pyo)
  • Ricostruisci la tua applicazione

Allora dovrebbe funzionare.

Il progetto PGS4A-Kivy non è buono non appena Kivy non spedisce i file desiderati. Questo è il motivo per cui ho iniziato Python-for-Android progetto. Avrai il potere di ciò che vuoi o no nella tua distribuzione finale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top