Чтение wpa_supplicant.conf

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
Аватара пользователя
petrovichtim
Сообщения: 77
Зарегистрирован: 11 фев 2014, 22:53
Откуда: Москва
Контактная информация:

Чтение wpa_supplicant.conf

Сообщение petrovichtim » 24 апр 2014, 16:01

Добрый день, дорогие товарищи!
Хочу прочитать файл wpa_supplicant.conf из папки /data/misc/wifi/
Если кто не знает, в нём сохраняются пароли от вайфая.
На устройстве файл есть.
Дал такие разрешения:

Код: Выделить всё

<uses-permission android:name="android.permission.ACCESS_SUPERUSER" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
Но не могу никак прочитать файл, логкат пишет:
java.io.FileNotFoundException: /data/misc/wifi/wpa_supplicant.conf: open failed: EACCES (Permission denied)
Вот пример кода, как читаю:

Код: Выделить всё

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		TextView textview = (TextView) findViewById(R.id.textView1);
		try {
			Process psProc = Runtime.getRuntime().exec("su");

			FileInputStream fin;
			fin = openFileInput("/data/misc/wifi/wpa_supplicant.conf");

			int c;
			String temp = "";
			while ((c = fin.read()) != -1) {
				temp += temp + Character.toString((char) c);
			}
			textview.setText(temp);

			fin.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
Подскажите пожалуйста, что у меня не правильно в коде.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Чтение wpa_supplicant.conf

Сообщение altwin » 26 апр 2014, 15:11

у вас нет прав на чтение этого файла.
Изображение

Аватара пользователя
petrovichtim
Сообщения: 77
Зарегистрирован: 11 фев 2014, 22:53
Откуда: Москва
Контактная информация:

Re: Чтение wpa_supplicant.conf

Сообщение petrovichtim » 26 апр 2014, 15:21

altwin писал(а):у вас нет прав на чтение этого файла.
Как получить?
Разве SuperUser не дает их ?

Код: Выделить всё

 Process psProc = Runtime.getRuntime().exec("su"); 

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Чтение wpa_supplicant.conf

Сообщение altwin » 26 апр 2014, 16:36

petrovichtim писал(а):
altwin писал(а):у вас нет прав на чтение этого файла.
Как получить?
Разве SuperUser не дает их ?

Код: Выделить всё

 Process psProc = Runtime.getRuntime().exec("su"); 
В ошибке четко сказанно - "отказанно в доступе" и это либо значит, что это не root либо то, что да -не дает :) Попробуйте из терминала просмотреть этот файл руками выполнив вход. Если получается, то проблема в коде, иначе в другом месте. т.е. что то вроде -
cat /data/misc/wifi/wpa_supplicant.conf Ну и еще как варриант попробывать его скопировать на sd карту перед тем, как читать.
Изображение

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Чтение wpa_supplicant.conf

Сообщение altwin » 26 апр 2014, 16:48

Кстати вот это - fin.read(), работать поидее не должно. Вам нужно создать объект InputStreamReader, которому и передать свой FileInputStream. Далее создать BufferedReader, которому уже передать свой теперь уже InputStreamReader, и только потом с помощью StringBuilder().append() формировать строку... это как бы стандартный путь, а то что там у вас получится при такой попытке считать массив байт я честно никогда даже не пробывал проверять :)
Изображение

Аватара пользователя
petrovichtim
Сообщения: 77
Зарегистрирован: 11 фев 2014, 22:53
Откуда: Москва
Контактная информация:

Re: Чтение wpa_supplicant.conf

Сообщение petrovichtim » 28 апр 2014, 08:04

altwin писал(а): fin.read()
Сюда код не доходит.
Файл в DDMS вижу, путь правильный.
Может кто уже решал задачу чтения файла настроек?
Поделитесь пожалуйста кодом.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Чтение wpa_supplicant.conf

Сообщение altwin » 28 апр 2014, 08:27

petrovichtim писал(а):
altwin писал(а): fin.read()
Сюда код не доходит.
Файл в DDMS вижу, путь правильный.
Может кто уже решал задачу чтения файла настроек?
Поделитесь пожалуйста кодом.
Вы через adb shell то пробывали его получить файл этот и вывести? выполните внутри shell >> ls -l /data/misc/wifi/wpa_supplicant.conf чтобы посмотреть права на файл.
Изображение

Аватара пользователя
petrovichtim
Сообщения: 77
Зарегистрирован: 11 фев 2014, 22:53
Откуда: Москва
Контактная информация:

Re: Чтение wpa_supplicant.conf

Сообщение petrovichtim » 28 апр 2014, 10:03

Говорит сходи в лес
C:\Android\sdk\platform-tools>adb shell
$ ls -l /data/misc/wifi/wpa_supplicant.conf
ls -l /data/misc/wifi/wpa_supplicant.conf
/data/misc/wifi/wpa_supplicant.conf: Permission denied
А какие должны быть разрешения на этот файл и почему su не дает мне их?
Вот ответ другого устройства
C:\Android\sdk\platform-tools>adb shell
root@android:/ # ls -l /data/misc/wifi/wpa_supplicant.conf
ls -l /data/misc/wifi/wpa_supplicant.conf
-rw-rw---- system wifi 266 2014-04-28 10:16 wpa_supplicant.conf
root@android:/ #
Но на обоих одна ошибка
Последний раз редактировалось petrovichtim 28 апр 2014, 10:11, всего редактировалось 1 раз.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Чтение wpa_supplicant.conf

Сообщение altwin » 28 апр 2014, 10:07

petrovichtim писал(а):Говорит сходи в лес
C:\Android\sdk\platform-tools>adb shell
$ ls -l /data/misc/wifi/wpa_supplicant.conf
ls -l /data/misc/wifi/wpa_supplicant.conf
/data/misc/wifi/wpa_supplicant.conf: Permission denied
А какие должны быть разрешения на этот файл и почему su не дает мне их?
это зашифрованный файл и просто так доступа к нему быть и не должно, рут тут врятли поможет хотя бы потому, что файл создается не android -ом, скопируйте файл на sd карту и выведите содержимое cat -ом. В любом случае он вам нужен, только если вы делаете собственную прошивку и пытаетесь его скопировать, как то использовать содержимое вам всеравно не удастся, алгоритм шифрования ключей всеравно односторонний.
Изображение

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Чтение wpa_supplicant.conf

Сообщение altwin » 28 апр 2014, 10:19

Для того, чтобы прочитать файл созданный демоном, вы можете использовать только его в большинстве случаев, т.е. вам нужно использовать утилиту wpa_cli, что то вроде:
[syntax=bash]
>> wpa_cli get_network <id> ssid
>> wpa_cli get_network <id> psk
[/syntax]
Но для этого у вас должна быть подпись сертивиката с которой создавался apk, как это может работать в debug режиме с дефолтным ключем и может ли работать вообще я понятия не имею. Вы можете почитать как работает сам демон и что он там делает с конфигом тут: http://hostap.epitest.fi/wpa_supplicant/

P.S. но вообще это вопрос к производителю устройства, т.к. под рутом файл всеравно должен открываться. хотя бы потому, что рут не может получить permission denied. Можно попробывать убить демона или выключить службу, но поидее достаточно просто скопировать файл в другое место и он откроется.
Изображение

NickName
Сообщения: 6
Зарегистрирован: 17 май 2017, 09:58

Re: Чтение wpa_supplicant.conf

Сообщение NickName » 20 май 2017, 16:55

altwin писал(а):
petrovichtim писал(а):Говорит сходи в лес
C:\Android\sdk\platform-tools>adb shell
$ ls -l /data/misc/wifi/wpa_supplicant.conf
ls -l /data/misc/wifi/wpa_supplicant.conf
/data/misc/wifi/wpa_supplicant.conf: Permission denied
А какие должны быть разрешения на этот файл и почему su не дает мне их?
это зашифрованный файл и просто так доступа к нему быть и не должно, рут тут врятли поможет хотя бы потому, что файл создается не android -ом, скопируйте файл на sd карту и выведите содержимое cat -ом. В любом случае он вам нужен, только если вы делаете собственную прошивку и пытаетесь его скопировать, как то использовать содержимое вам всеравно не удастся, алгоритм шифрования ключей всеравно односторонний.
Вы ошибаетесь)
Если телефон рутованый,тогда получить доступ к файлу можно,но перед этим файл надо скопировать ,и открыть с помощью файлового менеджера,и можно делать с файлом всё что угодно)
Правда в файле данные могут быть зашифрованы,придётся знать алгоритм шифрование файла.
P.S не вводите людей в заблуждения!

Ответить