Название: Запуск нескольких команд с помощью QProcess Отправлено: Goshman от Февраль 18, 2016, 20:12 Добрый день!
Из приложения под Android необходимо изменить системную дату и время. В терминалке все просто Код: su А вот в программе следующий код не работает: Код: QProcess::execute("/system/bin/sh", QStringList() << "/system/xbin/su"); Надо обе команды выполнять в рамках 1 процесса. А вот как это сделать, я не могу придумать. Помогите, плис. Название: Re: Запуск нескольких команд с помощью QProcess Отправлено: kambala от Февраль 18, 2016, 23:34 su && date -s YYYYMMDD.hhmmss :)
Название: Re: Запуск нескольких команд с помощью QProcess Отправлено: Goshman от Февраль 19, 2016, 18:16 su && date -s YYYYMMDD.hhmmss :) Не работает, к сожалению. Даже в терминалке. Видимо у андроида shell урезанный.Придется в делать скрипт, параметры даты в него передавать и его же запускать. А не хотелось бы скрипты плодить под разные команды... Может еще способы есть как без скриптов обойтись? Название: Re: Запуск нескольких команд с помощью QProcess Отправлено: kambala от Февраль 19, 2016, 18:35 а у приложения вообще есть рут доступ и доступ к шеллу? в иос подобное невозможно без взлома устройства например.
Название: Re: Запуск нескольких команд с помощью QProcess Отправлено: Goshman от Февраль 19, 2016, 19:23 а у приложения вообще есть рут доступ и доступ к шеллу? в иос подобное невозможно без взлома устройства например. Ну сам планшет рутованый. Из терминала su доступна и работает. Значит можно утверждать, что и приложение имеет доступ к su.Или я не прав? Название: Re: Запуск нескольких команд с помощью QProcess Отправлено: kambala от Февраль 20, 2016, 19:08 нужно узнать с какими правами запускается приложение
Название: Re: Запуск нескольких команд с помощью QProcess Отправлено: Bepec от Февраль 20, 2016, 21:34 а вы наберите эту команду в терминале. Если выполнится - значит что то у вас с правами. Если не выполнится - не поддерживает.
Название: Re: Запуск нескольких команд с помощью QProcess Отправлено: Alex Custov от Февраль 22, 2016, 00:17 Вообще GNU su поддерживает ключ -c для выполнения команд от рута, не знаю как с этим в Андроид. Проблемы тут две - как программно вводить пароль, и то что это неправильный способ, т.к. правильный - использовать Android API.
Название: Re: Запуск нескольких команд с помощью QProcess Отправлено: ssoft от Февраль 22, 2016, 20:34 Можно любую программу запустить на исполнение, поместив ее в файл скрипта или в виде текста содержимого скрипта, но... как уже писали программно нельзя ввести пароль.
Можно использовать доступ через sudo или ssh, однако в любом случае заранее необходимо будет зарегистрировать доступ к su. А так правильный способ - - использовать Android API. Название: Re: Запуск нескольких команд с помощью QProcess Отправлено: Goshman от Февраль 23, 2016, 18:55 Вообще GNU su поддерживает ключ -c для выполнения команд от рута, не знаю как с этим в Андроид. Проблемы тут две - как программно вводить пароль, и то что это неправильный способ, т.к. правильный - использовать Android API. Спасибо, именно -с мне и не хватало для полного счастья.В итоге рабочий код Код: QProcess::execute("su", QStringList() << "-c" << "date" << "-s" << str); Что касается API. Видимо для смены времени андроиду рут все равно нужен. По крайней мере у меня не получилось в эмуляторе поменять время с помощью setCurrentTimeMillis(long millis) с разрешением SET_TIME. |