1. 程式人生 > >Android系統wifi之p2p(wifi直連)配置檔案許可權導致應用不能使用wifi問題

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!
[email protected]
:/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系統wifip2pwifi配置檔案許可權導致應用不能使用wifi問題

這個平臺的wifip2p也就是wifi Direct(wifi直連)其實是走的hostap功能。 一、問題描述 1.設定-》網路-》無線網路-》,開啟wifi開關。 2.在開啟無線直連,修改密碼以後。 3.不用進入“無線互聯”應用,就會出現描述現象;另外,步驟2中如果不修改

Android控制元件SlidingDrawer滑動式抽屜詳解與例項

SlidingDrawer效果想必大家也見到過,它就是1.5模擬器上進入應用程式列表的效果。下面是截圖  一、簡介    SlidingDrawer隱藏屏外的內容,並允許使用者通過handle以顯示隱藏內容。它可以垂直或水平滑動,它有倆個View組成,其

Android設計模式模板抽象類abstract

知識點補充:介面和抽象類區別 (1)介面是公開的,裡面不能有私有的方法或變數,是用於讓別人使用的; 抽象類是可以有私有方法或私有變數的 (2)實現介面的一定要實現接口裡定義的所有方法; 實現抽象類可以有選擇地重寫需要用到的方法

Android效能優化ListviewViewHolder重用機制

好久沒發部落格了,因為發部落格太耗時間了,而且參考的比較多,也不想一直帶著轉載兩個字。都一直放在筆記裡。不過只能自己看不能和大家分享了,看到這篇文章令我恍然大悟,很有幫助,所以還是決定寫下來。 相信大家在很多時候都會用到ListView這個控制元件,因為確實是用的很多

Android系統CPU使用率獲取附java程式碼

若想直接看有效方法,請閱讀方法二,第一條。 最近因為一個需求,需要記錄下當前的CPU使用率,在翻遍了API後,發現系統並沒有給予一個方法,能夠簡單的獲取相關CPU資訊,沒辦法,只能自己寫一個了。 在網上查閱了相關方法後,獲取CPU使用率主要有兩種方法。一個是利用adb t

Android 折線圖hellocharts 餅狀圖餅圖

color佈局檔案<color name="cash">#C0FF8C</color> <color name="wechat">#FFF78C</color> <color name="alipay">#FFD08

Android填坑第十三篇教你一招搞定專案混淆配置

# Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in D:\Androi

Android Studio中創建或添加第一個Hello World應用程序

創建過程 eight 過程 使用真機 項目路徑 應用程序 設備 ext 直接 下面我們將使用Android Studio創建第第一個簡單的Hello World應用程序。 1、打開Android Studio,加載畫面如下圖所示: 2、選擇”Start a new A

springAOP操作基於aspectJ實現--配置檔案和註解兩種方式實現

AOP概念   1 aop:面向切面(方面)程式設計,擴充套件功能不修改原始碼實現     2  AOP採取橫向抽取機制,取代了傳統縱向繼承體系重複性程式碼     3 aop底層使用動態代理實現     (1)第一種情況,有介面情況,使用動態代理建立介面實現類代理物

使用nginx反向代理到不同伺服器共享同一埠配置檔案

nginx配置檔案: #執行使用者 user nobody; #啟動程序,通常設定成和cpu的數量相等 worker_processes 1; #全域性錯誤日誌及PID檔案 #error_log logs/error.log; #error_log

Android 多個應用之間聲音競爭Android 系統處理音訊焦點AudioFocus

問題發現 最近在專案中發現我們的自己的apk和第三方的媒體apk會出現串音問題。即兩者之間的聲音會重疊在一起。 解決問題 1. 使用多媒體按鍵去控制第三方應用的聲音播放(無效果) 通過觸發媒體的按鈕來操作播放器狀態:KeyEvent.KEYCODE_MEDIA

Android WiFi 架構總覽模組及介面

Android WiFi 架構總覽 本文介紹Android原始碼專案(AOSP)中WiFi功能的軟體架構及各個模組(可執行檔案、動態連結庫)間的介面。 SDK API Android SDK為開發者提供了WiFi程式設計介面,使用起來非常方便。 相關包:

android執行緒實現:實時顯示所連線的wifi訊號強度程式碼帶註釋

首先:AndroidManifest.xml檔案中加一行:獲取許可權 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> layout.xml檔案中的程式碼: <Li

Android系統程序Activity管理——ActivityManagerServiceAMS

一. 為什麼會有AMS 對於Android app開發人員來說,Activity是其打交道最多的元件了:App的每一個介面都對應於一個Activity。每個Activity都有他的生命週期(那幾個生命週期應該已經爛熟於心了吧),所以我們應該有一種機制來記錄並管理這些Acti

Android Api Demos登頂四十五Loader--&gt;Cursor

adapt lists 清空 function icon 創建 nal pat lines 這個demo演示了類載入器的用法。關於類載入器的使用我們在前面的demo中已經介紹過了 在此再小小的復習一下。類載入器的使用步驟: * 1.獲取類載入

Android的DatePicker和TimePicker-android學習三十八

cursor ini lis drawable textview @+ type pin view DatePicker和TimePicker簡單介紹 DatePicker和TimePicker是從FrameLayout繼承而來。他們都是比較簡單的組件

linux系統管理綜合實驗翻江倒海http,dhcp,dns崩潰

linux作業要求第一步:搭建DHCP服務器,服務器IP為172.16.30.10,給客戶端分配的地址範圍是172.16.30.100-172.16.30.150,DNS地址是172.16.30.10第二步:搭建dns服務器 增加兩條解析記錄 www.example.com對應IP 172.16.30.10

Spark學習二十八分布式圖計算系統

尺度 內存 底層 mapr 分區 ces 兩個 傳遞方式 cat 一、引言   在了解GraphX之前,需要先了解關於通用的分布式圖計算框架的兩個常見問題:圖存儲模式和圖計算模式。 二、圖存儲模式   巨型圖的存儲總體上有邊分割和點分割兩種存儲方式。2013年,Gra

Linux系統TroubleShooting啟動故障排除

class stage2 重新啟動 直接 bash損壞 啟用 修改 補充 init 盡管Linux系統非常強大,穩定,但是我們在使用過程當中,如果人為操作不當,仍然會影響系統,甚至可能使得系統無法開機,無法運行服務等等各種問題。那麽這篇博文就總結一下一些常見的故障排除方法

Android破解學習十二—— GP錄影漢化過程及添加布局

## 前言 最近閒著發慌,想起了很久之前就想漢化的一款錄影APP,APP大小不到1MB,但是好用,本期就給大家帶來漢化的基本步驟以及如何在APP中新增我們漢化的資訊 ## 漢化思路 1. **查詢關鍵字** 關鍵字挺好找的,由於APP本身就是英文,我們找到某個英文單詞進行搜尋即可 2. **找到string.