一種安卓系統中實現WIFI探針的方法和終端與流程
2023-05-29 04:35:26 3

本發明涉及無線通信領域,尤其涉及一種安卓系統中實現wifi探針的方法和終端。
背景技術:
wifi探針的工作原理是獲取無線客戶端發送的proberequest探測請求幀,分析所述幀裡面的數據獲取無線客戶端的mac地址、信號強度等信息,基於所述信息實現定位、距離探測、流量分析、用戶數統計等功能。由於wifi探針實現的簡易性以及功能的多樣性,正被越來越多的領域所應用。
但是由於wifi探針獲取的是無線客戶端發送的proberequest幀,而要獲取proberequest幀,需要wifi模塊工作在ap模式下。處於sta模式的wifi模塊只能探測ap發送的beacon幀,所以並不能實現wifi探針功能。
目前,安卓手機的wifi工作狀態支持3種模式:sta模式、ap模式和p2p模式。sta模式與ap模式不能兼容,因此,如果想要在安卓手機上實現wifi探針功能,則wifi模塊將不能工作在sta模式;而雖然p2p模式與sta模式能夠兼容,但是在p2p模式下,其接收的proberequest幀會被丟棄,並不會被安卓系統的底層識別並上傳至服務層,同樣無法實現wifi探針功能。
技術實現要素:
本發明所要解決的技術問題是:提供一種安卓系統中實現wifi探針的方法和終端,以解決現有技術中在不影響安卓平臺wifi模塊工作在sta模式的情況下無法實現wifi探針功能的問題。
為了解決上述技術問題,本發明採用的一種技術方案為:
一種安卓系統中實現wifi探針的方法,包括步驟:
s1、在wlan驅動中創建幀探測節點;
s2、在安卓架構層添加wifi探針開關;
s3、開啟wifi探針開關;
s4、重啟wifi模塊;
s5、更新wifi固件配置;
s6、開啟wifip2p模式,並啟動群組go模式;
s7、wlan驅動中的幀探測節點探測到wifi模塊獲取的探測請求幀後,將獲取的探測請求幀上傳。
為了解決上述技術問題,本發明採用的另一種技術方案為:
一種安卓系統中實現wifi探針的終端,包括存儲器、處理器及存儲在存儲器上並可在處理器上運行的電腦程式,所述處理器執行所述程序時實現以下步驟:
s1、在wlan驅動中創建幀探測節點;
s2、在安卓架構層添加wifi探針開關;
s3、開啟wifi探針開關;
s4、重啟wifi模塊;
s5、更新wifi固件配置;
s6、開啟wifip2p模式,並啟動群組go模式;
s7、wlan驅動中的幀探測節點探測到wifi模塊獲取的探測請求幀後,將獲取的探測請求幀上傳。
本發明的有益效果在於:通過在安卓架構層添加wifi探針開關,並修改wlan驅動和更新wifi固件配置,在安卓平臺wifi模塊工作在sta模式下開啟與sta模式兼容的p2p模式,使得安卓平臺的wifi模塊工作在sta模式下能夠捕獲探測請求幀,在不影響安卓平臺wifi模塊工作在sta模式的情況下實現wifi探針功能。
附圖說明
圖1為根據本發明實施例的一種安卓系統中實現wifi探針的方法流程圖;
圖2為根據本發明實施例的一種安卓系統中實現wifi探針的終端結構示意圖;
標號說明:
1、安卓系統中實現wifi探針的終端;2、存儲器;3、處理器。
具體實施方式
為詳細說明本發明的技術內容、所實現目的及效果,以下結合實施方式並配合附圖予以說明。
本發明最關鍵的構思在於:在安卓架構層添加wifi探針開關,在wlan驅動中創建幀探測節點和更新wifi固件配置,並開啟與sta模式兼容的p2p模式,實現對探測請求幀的捕獲。
請參照圖1,本發明提供了一種安卓系統中實現wifi探針的方法,包括步驟:
s1、在wlan驅動中創建幀探測節點;
s2、在安卓架構層添加wifi探針開關;
s3、開啟wifi探針開關;
s4、重啟wifi模塊;
s5、更新wifi固件配置;
s6、開啟wifip2p模式,並啟動群組go模式;
s7、wlan驅動中的幀探測節點探測到wifi模塊獲取的探測請求幀後,將獲取的探測請求幀上傳。
從上述描述可知,本發明通過在安卓架構層添加wifi探針開關,並修改wlan驅動和更新wifi固件配置,在安卓平臺wifi模塊工作在sta模式下開啟與sta模式兼容的p2p模式,使得安卓平臺的wifi模塊工作在sta模式下能夠捕獲探測請求幀,在不影響安卓平臺wifi模塊工作在sta模式的情況下實現wifi探針功能。
進一步的,所述步驟s2具體包括:
在安卓架構層的wifi管理器中添加一接口,作為wifi探針開關。
通過上述描述可知,現有技術中安卓架構層並沒有提供實現wifi探針功能的接口,本發明通過在wifi管理器中添加一接口,作為wifi探針開關,以實現是否執行wifi探針功能。
進一步的,所述步驟s3具體包括:
判斷wifi正常模式下的狀態是否開啟,如果是開啟狀態,先關閉,再開啟wifi探針開關;如果是關閉狀態,直接開啟wifi探針開關。
由上述描述可知,由於更新wifi固件配置時,只有wifi重啟後才有效,因此,在開啟wifi探針開關之前,先判斷wifi是否開啟,如果開啟,則先關閉,再開啟wifi探針開關,這樣可以避免在開啟wifi探針開關後,如果wifi還開著,還要再關閉wifi,再重開,有利於減少重啟wifi所需的時間。
進一步的,所述步驟s6還包括:
在安卓架構層中調用creatgroup接口創建群組。
進一步的,所述步驟s7具體包括:
更新配置後的wifi固件識別到探測請求幀後,將所述探測請求幀從固件上傳到安卓內核,wlan驅動中的幀探測節點探測到所述探測請求幀後,通過uevent機制將獲取的探測請求幀從內核傳給服務層。
由上述描述可知,通過uevent機制實現探測請求幀從內核到服務層的傳遞,簡單易行,對系統改動小。
請參照圖2,本發明提供了一種安卓系統中實現wifi探針終端1,包括存儲器2、處理器3及存儲在存儲器上並可在處理器上運行的電腦程式,所述處理器執行所述程序時實現以下步驟:
s1、在wlan驅動中創建幀探測節點;
s2、在安卓架構層添加wifi探針開關;
s3、開啟wifi探針開關;
s4、重啟wifi模塊;
s5、更新wifi固件配置;
s6、開啟wifip2p模式,並啟動群組go模式;
s7、wlan驅動中的幀探測節點探測到wifi模塊獲取的探測請求幀後,將獲取的探測請求幀上傳。
從上述描述可知,本發明通過在安卓架構層添加wifi探針開關,並修改wlan驅動和更新wifi固件配置,在安卓平臺wifi模塊工作在sta模式下開啟與sta模式兼容的p2p模式,使得安卓平臺的wifi模塊工作在sta模式下能夠捕獲探測請求幀,在不影響安卓平臺wifi模塊工作在sta模式的情況下實現wifi探針功能。
進一步的,所述步驟s2具體包括:
在安卓架構層的wifi管理器中添加一接口,作為wifi探針開關。
通過上述描述可知,現有技術中安卓架構層並沒有提供實現wifi探針功能的接口,本發明通過在wifi管理器中添加一接口,作為wifi探針開關,以實現是否執行wifi探針功能。
進一步的,所述步驟s3具體包括:
判斷wifi正常模式下的狀態是否開啟,如果是開啟狀態,先關閉,再開啟wifi探針開關;如果是關閉狀態,直接開啟wifi探針開關。
由上述描述可知,由於更新wifi固件配置時,只有wifi重啟後才有效,因此,在開啟wifi探針開關之前,先判斷wifi是否開啟,如果開啟,則先關閉,再開啟wifi探針開關,這樣可以避免在開啟wifi探針開關後,如果wifi還開著,還要再關閉wifi,再重開,有利於減少重啟wifi所需的時間。
進一步的,所述步驟s6還包括:
在安卓架構層中調用creatgroup接口創建群組。
進一步的,所述步驟s7具體包括:
更新配置後的wifi固件識別到探測請求幀後,將所述探測請求幀從固件上傳到安卓內核,wlan驅動中的幀探測節點探測到所述探測請求幀後,通過uevent機制將獲取的探測請求幀從內核傳給服務層。
由上述描述可知,通過uevent機制實現探測請求幀從內核到服務層的傳遞,簡單易行,對系統改動小。
實施例一
本發明提供了一種安卓系統中實現wifi探針的方法,包括步驟:
s1、在wlan驅動中創建幀探測節點;
s2、在安卓架構層的wifi管理器wifimanager中添加一接口setwifistaprobeenabled,作為wifi探針開關;
s3、判斷wifi正常模式下的狀態是否開啟,如果是開啟狀態,先關閉,再開啟wifi探針開關;如果是關閉狀態,直接開啟wifi探針開關;
s4、重啟wifi模塊;
s5、更新wifi固件配置;
s6、開啟wifip2p模式,並啟動群組go模式,在安卓架構層中調用creatgroup接口創建群組;
wifi模塊只有在ap模式和p2p模式下,才會去接收探測請求幀,而ap模式和sta模式不兼容,p2p模式和sta模式能夠同時工作而不互相影響,因此,可以在不影響wifi模塊正常使用情況下,選擇p2p模式;
其中,p2p模式有兩種模型:go(groupowner)和gc(groupclient)。在go模式下,安卓手機作為groupowner創建群組,會隨機生成pin碼,廣播類似ssid的以direc-開頭的群組名。一個小組由一部wi-fidirect設備創建,這部創建小組的設備類似傳統的無線接入點,在與傳統設備連接時或者在創建提供某種具體服務的小組時都可以採用這種方式,所以它能夠接收其他無線終端設備發送的探測請求幀。
s7、更新配置後的wifi固件識別到探測請求幀後,將所述探測請求幀從固件上傳到安卓內核,wlan驅動中的幀探測節點探測到所述探測請求幀後,通過uevent機制將獲取的探測請求幀從內核傳給服務層;
s8、服務層監聽到所述探測請求幀後,分析所述探測請求幀,獲取mac地址、信號強度、時間等信息,並將所述信息提供給應用層;
s9、應用層對接收的信息進行處理,包括相同的mac地址進行過濾,根據提供的信號強度,對目標mac地址進行距離計算,統計搜素的mac地址的時間段等。
實施例二
本發明提供了一種安卓系統中實現wifi探針的終端1,包括存儲器、處理器及存儲在存儲器上並可在處理器上運行的電腦程式,所述處理器執行所述程序時實現實施例一中所述的各個步驟。
綜上所述,本發明提供的一種安卓系統中實現wifi探針的方法和終端,通過在安卓架構層添加wifi探針開關,並修改wlan驅動和更新wifi固件配置,在安卓平臺wifi模塊工作在sta模式下開啟與sta模式兼容的p2p模式,並啟動群組go模式,使得安卓平臺的wifi模塊工作在sta模式下能夠捕獲探測請求幀,在不影響安卓平臺wifi模塊工作在sta模式的情況下實現wifi探針功能,基於wifi探針功能獲取探測請求幀中的相關信息,使得應用層能夠基於所述信息實現多種擴展的功能。
以上所述僅為本發明的實施例,並非因此限制本發明的專利範圍,凡是利用本發明說明書及附圖內容所作的等同變換,或直接或間接運用在相關的技術領域,均同理包括在本發明的專利保護範圍內。