명령 설정 와 이 파이 국가 코드

4731 단어 상용 명령&도구
1. wpa_cli -i wlan0 set country [country_code]

2. service call wifi [setCountryCode_CODE] s16 [country_code]
setCountryCode_CODE       IWifiManager.aidl interface IWifiManager setCountryCode       ( 1  )。

3. iw reg set [country_code]

 
와 이 파이 신호 테스트 를 할 때 채널 연결 fail 문 제 를 자주 보고 합 니 다.
일반적으로 국가 코드 로 인해 발생 하 는데, 현재 테스트 채널 은 이 국가 코드 가 지원 되 지 않 기 때문이다.
 
안 드 로 이 드 폰 에서 country code 는 sim 카드 에 따라 설정 되 어 있 으 며, sim 카드 를 사용 하지 않 았 다 면 소프트웨어 의 기본 국가 코드 는 US, 즉 1 ~ 11 채널 만 지원 합 니 다.
이 럴 때 는 해당 국가 코드 를 설정 할 수 있 는 소프트웨어 지원 이 필요 하 다.물론 소프트웨어 를 쉽게 수정 하고 코드 를 컴 파일 해 국가 코드 를 지원 하 는 버 전 을 제시 할 수 있다.그러나 이런 방식 은 융통성 이 없다.
명령 을 통 해 수정 하면 매우 편리 하 다.
 
A. 현재 국가 번 호 를 어떻게 확인 합 니까?
1. dmesg | grep country. 예 를 들 어 Qcom 플랫폼 에는 다음 과 같은 log 가 있 습 니 다.
wlan: [591:I :HDD] hdd_reg_notifier: 722: country: US, initiator 2, dfs_region: 1
cfg80211: Regulatory domain changed to country: US

2. wpa_cli - i wlan 0 get country. 이런 방식 으로 검색 에 실패 할 수도 있 습 니 다.
# wpa_cli -i wlan0 get country
FAIL  //    
# wpa_cli -i wlan0 get country
US  //    

3. wlan 드라이버 country 보기코드 노드
cat /sys/module/wlan/parameters/country_code
설정 되 지 않 았 을 때 이 값 은 null 입 니 다.
4. 서비스 호출 명령
4.1 와 이 파이 관련 서비스 보기
# service list | grep wifi                                                                                                                                                                           
66	wifip2p: [android.net.wifi.p2p.IWifiP2pManager]
67	rttmanager: [android.net.wifi.IRttManager]
68	wifiscanner: [android.net.wifi.IWifiScanner]
69	wifi: [android.net.wifi.IWifiManager]
133	wificond: [android.net.wifi.IWificond]

4.2 와 이 파이 서비스 에 대응 하 는 인터페이스 설명 보기
   IWifiManager.aidl 
./frameworks/base/wifi/java/android/net/wifi/IWifiManager.aidl
interface IWifiManager
{
    int getSupportedFeatures(); //     
    ... ...
    boolean setWifiEnabled(String packageName, boolean enable);
    int getWifiEnabledState();
    void setCountryCode(String country, boolean persist);
    String getCountryCode();  // 27   
    boolean isDualBandSupported();
    ... ...
}

     IWifiManager.java 
./out/soong/.intermediates/frameworks/base/framework/android_common/gen/aidl/frameworks/base/wifi/java/android/net/wifi/IWifiManager.java
static final int TRANSACTION_getSupportedFeatures = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0);
... ...
static final int TRANSACTION_setCountryCode = (android.os.IBinder.FIRST_CALL_TRANSACTION + 25);
static final int TRANSACTION_getCountryCode = (android.os.IBinder.FIRST_CALL_TRANSACTION + 26);
... ...

getCountry Code 는 27 번 째 방법 으로 services call 을 사용 하여 국가 코드 를 가 져 옵 니 다.
# service call wifi 27                                                                                                                                                                               
Result: Parcel(00000000 00000002 004e0043 00000000 '........U.S.....')

국가 번 호 를 가 져 오 는 것 은 US 입 니 다. 
B. 어떻게 명령 을 통 해 국가 코드 를 수정 합 니까?예 를 들 어 국가 코드 를 CN (중국) 으로 설정 합 니 다.
1. wpa_cli
wpa_cli -i wlan0 set country CN

2. service call
setCountry Code 는 와 이 파이 서비스 27 번 째 방법 입 니 다.
# service call wifi 27                                                                                                                                                                               
Result: Parcel(00000000 00000002 00530055 00000000 '........U.S.....')
# service call wifi 26 s16 CN                                                                                                                                   
Result: Parcel(00000000    '....')
# service call wifi 27                                                                                                                                                                               
Result: Parcel(00000000 00000002 00530055 00000000 '........C.N.....')

3. 
wpa_cli Driver country [CountryCode]

4.
iw reg set [CountryCode]
C. 수정 성공 여 부 를 어떻게 확인 합 니까?
1. dmesg | grep country. 예 를 들 어 Qcom 플랫폼 에는 다음 과 같은 log 가 있 습 니 다.
wlan: [42:I :HDD] hdd_reg_notifier: 722:      country: CN, initiator 1, dfs_region: 1
cfg80211: Regulatory domain changed to country: CN

2. wpa_cli - i wlan 0 get country. 이런 방식 으로 검색 에 실패 할 수도 있 습 니 다.
# wpa_cli -i wlan0 get country
CN

3. iw reg get
장치 에서 국가 코드 가 지원 하 는 채널 목록 입 니 다. 코드 에서: kernel / msm - 4.4 / net / wireless / db. txt

좋은 웹페이지 즐겨찾기