Comment lire le fichier / écriture en tant que root en utilisant Kivy pour Android?
Question
Je voudrais écrire à / etc / hosts dans mon application Kivy, et je l'ai sûrement un appareil ancré à tester. J'ai essayé plusieurs façons, mais toujours obtenir ma sortie de l'application sans avertissement ou erreur.
J'ai essayé:
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"])
et plusieurs combinaisons d'entre eux. Chaque fois que je peux obtenir la boîte de message d'application su me demander la permission et j'appuyé sur « Autoriser », mais mes sorties app après.
modifier : puissance du logcat est à http://pastebin.com/YMT5Vxra
Un grand merci si quelqu'un peut donner toute suggestion!
La solution
Votre erreur indique que la chaîne-fuite est pas un codage connu. Kivy expédie une version allégée de Python avec leurs libs, pas tous les encodages par exemple. Ce que vous pouvez essayer est à:
- Grab projet python-for-android
- Allez dans / private lib / encodages
- Copiez le fichier de votre ordinateur à ce répertoire (/usr/lib/python2.7/encodings/string_escape.pyo)
- Reconstruire votre application
Ensuite, cela devrait fonctionner.
Le projet pgs4a-Kivy est pas bon, dès que Kivy n'expédie les fichiers que vous souhaitez. Voilà pourquoi j'ai commencé python-for-android projet . Vous avez le pouvoir de ce que vous voulez ou non dans votre distribution finale.