Как читать / записывать файлы с правами суперпользователя, используя Kivy для Android? - PullRequest
2 голосов
/ 05 декабря 2011

Я хотел бы написать в / etc / hosts в своем приложении Kivy, и у меня наверняка есть рутованное устройство для тестирования.Я пробовал несколько способов, но всегда получал выход из моего приложения без каких-либо предупреждений или ошибок.

Я пробовал:

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

и несколько их комбинаций.Каждый раз, когда я могу получить окно сообщения su app, запрашивающее у меня разрешение, я нажимаю «Allow», но после этого мое приложение закрывается.

EDIT : выход logcat равен http://pastebin.com/YMT5Vxra

Большое спасибо, если кто-нибудь может дать любое предложение!

1 Ответ

2 голосов
/ 05 декабря 2011

Ваша ошибка указывает на то, что экранирование строки не является известной кодировкой.Kivy выпускает облегченную версию Python со своими библиотеками, а не все кодировки, например.Вы можете попробовать:

  • Захватить проект python-for-android
  • Перейти в приватную / lib / encodings
  • Скопировать файл с этого компьютера на этоткаталог (/usr/lib/python2.7/encodings/string_escape.pyo)
  • Перестройте ваше приложение

Тогда это должно работать.

The pgs4a-kivyПроект не хорош, как только kivy не отправляет нужные вам файлы.Вот почему я начал проект python-for-android .У вас будет сила того, что вы хотите или нет, в вашем окончательном распределении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...