这个平台的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问题相关推荐

  1. android流量控制的实现,Android系统中P2P应用数据包捕获及流量控制研究

    摘要: P2P应用产生的流量正大肆吞噬着网络带宽,增加了网络运营商的管理压力.同时随着以Android为主的移动设备用户群变得越来越庞大,相应的流量吸费问题也随之产生,特别是Android手机上的P2 ...

  2. 深入浅出 - Android系统移植与平台开发(十三)- Android的对象管理

    第六章.Android的对象管理 在Java中,不再使用的对象会通过gc机制来自己主动回收.而Android系统执行时库层代码是由C++编写的,在C++中创建的对象通常使用指针来操作,一旦使用不当.轻 ...

  3. 深入理解Android系统多用户

    一.引言 这篇文章以Android v28的源码为参考,介绍Android多用户的特性.使用方式和系统原理. 二.初识Android多用户 2.1 Android多用户简介 从Android 4.0开 ...

  4. Android系统分区介绍

    Android系统分区介绍 hboot--系统开机引导类似电脑BIOS,这块刷错手机就会变成砖 radio--通讯模块.基带.WIFI.Bluetooth等衔接硬件的驱动软件 model分区 reco ...

  5. android五层系统架构,Android系统的五层架构、Dalvik与ART、最后有个奇怪的问题请教orz...

    Android系统的五层架构 最开始的Android系统框架分为5层(内核层.硬件抽象层.系统运行库层.应用程序框架层.应用程序层) 后来维基百科上搜索到的Android系统框架图为上图,少了一个硬件 ...

  6. 深入理解Android系统多用户机制

    一.引言 这篇文章以Android v28的源码为参考,介绍Android多用户的特性.使用方式和系统原理. 二.初识Android多用户 2.1 Android多用户简介 从Android 4.0开 ...

  7. Android 系统的分区

    1.modem分区,主要是手机短信的通讯模块: 2.bootloader分区,主要用于线刷: 3.recovery分区,只有用于普通刷机: 4.boot分区,用于启动: 5.system分区,系统分区 ...

  8. Android官方开发文档Training系列课程中文版:连接无线设备之通过WIFI创建P2P连接

    原文地址:http://android.xsoftlab.net/training/connect-devices-wirelessly/wifi-direct.html#permissions Wi ...

  9. android wifi布局,Android使用 WiFi 建立 P2P 连接

    Wi-Fi 点对点(P2P)API 允许应用程序在无需连接到网络和热点的情况下连接到附近的设备.(Android Wi-Fi P2P 使用 Wi-Fi Direct™ 验证程序进行编译).Wi-Fi ...

最新文章

  1. 2022-2028年中国钢丸行业市场行情监测及未来前景规划报告
  2. 条件随机场CRF 无向图/有向图模型
  3. 意外终止_美国留学本科意外终止怎么办?
  4. Java中的条件编译
  5. 创新实训个人记录:P versus NP
  6. python发送cookie请求_Python中实现带Cookie的Http的Post请求
  7. 早上起床后喝的第一杯水最好选择白开水
  8. win11无法下载steam怎么办 Windows11无法下载steam的解决教程
  9. C++ STL 程序员必须会之学会删除容器中的元素 带详细注释实例版本
  10. python学习笔记 day33 ftp大作业(未完成)
  11. Impala 的特点
  12. 12款黑科技神器,务必低调使用
  13. 计算机图形学--方法篇(凹多边形的识别与判定方法)
  14. 数据同步:(开源)基于Flink的数据同步工具Chunjun
  15. 寻找春天amp;nbsp;九宫格日记-2014.04.26
  16. 无线AP配服务器,cisco思科无线ap设置步骤
  17. 近期部分航院部分消息(主要是长长见识摘录的)
  18. Blackberry上网问题解决方案
  19. 【摘抄】领导力21法则-约翰·C·马克斯韦尔
  20. 百度网盘ubuntu版deb包安装

热门文章

  1. 10.25黄金原油投资行情资讯及走势操作分析及最新操作思路
  2. 【深度分解网络:显著性分析:IVIF】
  3. jQuery事件与特效
  4. mysql语句 execute、executeQuery和executeUpdate之间的区别
  5. 计算机3200到3400基本配置,R3 3200G和R5 3400G性能差距大吗?R5-3400G和R3-3200G对比评测...
  6. 花钱如流水的6位女星:有钱也养不起,她们的高消费你想都想不到
  7. linux的文件隐藏属性
  8. 菏泽技术学院计算机系,山东省菏泽市技术学院
  9. Android清空画布
  10. Java实现 LeetCode 495 提莫攻击