Android系统wifi之p2p(wifi直连)配置文件权限导致应用不能使用wifi问题
这个平台的wifip2p也就是wifi Direct(wifi直连)其实是走的hostap功能。
一、问题描述
1.设置-》网络-》无线网络-》,打开wifi开关。
2.在开启无线直连,修改密码以后。
3.不用进入“无线互联”应用,就会出现描述现象;另外,步骤2中如果不修改密码、则不出现"设置-》网络-》无线网络,wifi开关无效"。
4.这种情况出现以后“设置-》网络-》无线网络,wifi开关无效”。
其实为wifip2p设置密码以后Settings应用死掉;后边第一次打开时还可以操作“wifi开关”、但timeout ,再之后“wifi开关无效”。
二、问题分析
echo 0 0 0 0 > /proc/sys/kernel/printk
logcat -s WifiEnabler Wifimultisupport WifiPowerSetting WifiStateMachine wpa_supplicant ConnectivityService NetworkSettingsActivity WifiController WifiHW CommandListener WifiP2pService wifi wpa_supplicant WifiMonitor SupplicantStateTracker WifiP2pSettings WifiMonitor WifiNative-HAL
关键log
D/WifiP2pSettings( 4253): btn2.setOnClickListener
D/WifiP2pService( 2010): ---Mod Group info, pw: "qqqqqqqq"
I/wpa_supplicant(26602): [CTRL_IFACE_G]SET_NETWORK 0 psk "qqqqqqqq"
D/WifiP2pService( 2010): ---set pw error
D/WifiP2pService( 2010): ---saveConfig
E/wifi ( 2010): Open file /data/misc/wifi/p2p_supplicant.conf :
......
D/WifiHW ( 2010): enter func wifi_start_supplicant p2p_supported = 1
E/WifiHW ( 2010): /data/misc/wifi/p2p_supplicant.conf is all right
E/WifiHW ( 2010): /data/misc/wifi/wpa_supplicant.conf is all right
I/wpa_supplicant(31183): wpa_supplicant v2.0-devel-4.4.2_rtw_r10999.20140528_debugmsg
I/wpa_supplicant(31183): define REALTEK_WIFI_VENDOR
I/wpa_supplicant(31183): supp-global-ctrl-iface-init(/data/system/wpa_supplicant/wlan0) (will try fixup): bind(PF_UNIX): Address already in u
se
I/wpa_supplicant(31183): Successfully initialized wpa_supplicant
E/wpa_supplicant(31183): Failed to open config file '/data/misc/wifi/p2p_supplicant.conf', error: Permission denied
E/wpa_supplicant(31183): Failed to read or parse configuration '/data/misc/wifi/p2p_supplicant.conf'.
E/WifiStateMachine( 2010): Failed to start supplicant!
shell@coconut:/data/misc/wifi # ll
-rw-rw---- system wifi 21 2015-03-30 13:46 entropy.bin
srwxrwx--- wifi wifi 2015-03-30 13:34 p2p0
-rw------- system system 473 2015-03-30 13:38 p2p_supplicant.conf
drwxrwx--- wifi wifi 2015-03-30 13:39 sockets
-rw------- system system 33 2007-01-01 20:01 softap.conf
drwxrwx--- wifi wifi 2007-01-01 20:00 wpa_supplicant
-rw-rw---- system wifi 315 2015-03-30 13:16 wpa_supplicant.conf
三、问题解决
修改/data/misc/wifi/p2p_supplicant.conf创建时权限
hardware/libhardware_legacy/wifi/wifi.c
int ensure_config_file_exists(const char *config_file)
{int ret = 0;if (is_config_p2p(config_file)) {ret = ensure_config_file(config_file, P2P_CONFIG_TEMPLATE);} else {ret = ensure_config_file(config_file, SUPP_CONFIG_TEMPLATE);}//add by tank always make sure config_file has access right. begin/* chmod is needed because open() didn't set permisions properly */if (chmod(config_file, 0660) < 0) {ALOGE("Error changing permissions of %s to 0660: %s",config_file, strerror(errno));unlink(config_file);//return -1;}if (chown(config_file, AID_SYSTEM, AID_WIFI) < 0) {ALOGE("Error changing group ownership of %s to %d: %s",config_file, AID_WIFI, strerror(errno));unlink(config_file);//return -1;}return ret;//end tank always make sure config_file has access right. end
}
补充:
wifip2p的默认SSID等参数设置
system/etc/wifi/p2p_supplicant.conf
三、问题扩展wifip2p与Miracast(Wifi Display)
Android系统wifi之p2p(wifi直连)配置文件权限导致应用不能使用wifi问题相关推荐
- android流量控制的实现,Android系统中P2P应用数据包捕获及流量控制研究
摘要: P2P应用产生的流量正大肆吞噬着网络带宽,增加了网络运营商的管理压力.同时随着以Android为主的移动设备用户群变得越来越庞大,相应的流量吸费问题也随之产生,特别是Android手机上的P2 ...
- 深入浅出 - Android系统移植与平台开发(十三)- Android的对象管理
第六章.Android的对象管理 在Java中,不再使用的对象会通过gc机制来自己主动回收.而Android系统执行时库层代码是由C++编写的,在C++中创建的对象通常使用指针来操作,一旦使用不当.轻 ...
- 深入理解Android系统多用户
一.引言 这篇文章以Android v28的源码为参考,介绍Android多用户的特性.使用方式和系统原理. 二.初识Android多用户 2.1 Android多用户简介 从Android 4.0开 ...
- Android系统分区介绍
Android系统分区介绍 hboot--系统开机引导类似电脑BIOS,这块刷错手机就会变成砖 radio--通讯模块.基带.WIFI.Bluetooth等衔接硬件的驱动软件 model分区 reco ...
- android五层系统架构,Android系统的五层架构、Dalvik与ART、最后有个奇怪的问题请教orz...
Android系统的五层架构 最开始的Android系统框架分为5层(内核层.硬件抽象层.系统运行库层.应用程序框架层.应用程序层) 后来维基百科上搜索到的Android系统框架图为上图,少了一个硬件 ...
- 深入理解Android系统多用户机制
一.引言 这篇文章以Android v28的源码为参考,介绍Android多用户的特性.使用方式和系统原理. 二.初识Android多用户 2.1 Android多用户简介 从Android 4.0开 ...
- Android 系统的分区
1.modem分区,主要是手机短信的通讯模块: 2.bootloader分区,主要用于线刷: 3.recovery分区,只有用于普通刷机: 4.boot分区,用于启动: 5.system分区,系统分区 ...
- Android官方开发文档Training系列课程中文版:连接无线设备之通过WIFI创建P2P连接
原文地址:http://android.xsoftlab.net/training/connect-devices-wirelessly/wifi-direct.html#permissions Wi ...
- android wifi布局,Android使用 WiFi 建立 P2P 连接
Wi-Fi 点对点(P2P)API 允许应用程序在无需连接到网络和热点的情况下连接到附近的设备.(Android Wi-Fi P2P 使用 Wi-Fi Direct™ 验证程序进行编译).Wi-Fi ...
最新文章
- 2022-2028年中国钢丸行业市场行情监测及未来前景规划报告
- 条件随机场CRF 无向图/有向图模型
- 意外终止_美国留学本科意外终止怎么办?
- Java中的条件编译
- 创新实训个人记录:P versus NP
- python发送cookie请求_Python中实现带Cookie的Http的Post请求
- 早上起床后喝的第一杯水最好选择白开水
- win11无法下载steam怎么办 Windows11无法下载steam的解决教程
- C++ STL 程序员必须会之学会删除容器中的元素 带详细注释实例版本
- python学习笔记 day33 ftp大作业(未完成)
- Impala 的特点
- 12款黑科技神器,务必低调使用
- 计算机图形学--方法篇(凹多边形的识别与判定方法)
- 数据同步:(开源)基于Flink的数据同步工具Chunjun
- 寻找春天amp;nbsp;九宫格日记-2014.04.26
- 无线AP配服务器,cisco思科无线ap设置步骤
- 近期部分航院部分消息(主要是长长见识摘录的)
- Blackberry上网问题解决方案
- 【摘抄】领导力21法则-约翰·C·马克斯韦尔
- 百度网盘ubuntu版deb包安装
热门文章
- 10.25黄金原油投资行情资讯及走势操作分析及最新操作思路
- 【深度分解网络:显著性分析:IVIF】
- jQuery事件与特效
- mysql语句 execute、executeQuery和executeUpdate之间的区别
- 计算机3200到3400基本配置,R3 3200G和R5 3400G性能差距大吗?R5-3400G和R3-3200G对比评测...
- 花钱如流水的6位女星:有钱也养不起,她们的高消费你想都想不到
- linux的文件隐藏属性
- 菏泽技术学院计算机系,山东省菏泽市技术学院
- Android清空画布
- Java实现 LeetCode 495 提莫攻击