<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                本實例的背景情況如下: 筆者有一臺三星Galaxy Note2手機,其OS為Android 4.1.2。現在,筆者打算編譯一個AOSP(Android Open Source Project)的wpa_supplicant程序以替換Note2中原有的wpa_supplicant。 **提示**:AOSP即Google公版Android源碼。幾乎所有手機廠商都會根據芯片、硬件以及廠商自定義的特性去修改它。由于Note 2源碼不公開,所以筆者只能編譯AOSP版的wpa_supplicant。 假設讀者已經按第1章要求部署完畢Android 4.1源碼和開發環境,那么接下來要做的是: ~~~ cd 4.1source #首先進入4.1源碼根目錄 source build/envsetup #建立Android源碼編譯環境 lunch #選擇要編譯的設備和版本,筆者選擇了1,代表full-eng。eng代表工程版,該選項對應的目標設備類型 #(TARGET_PRODUCT)為generic,其編譯出來的鏡像文件可由模擬器加載并運行 ~~~ 由上述配置可知,筆者將使用generic的版本來編譯一個wpa_supplicant以運行在真實的機器上。 **提醒**:通過執行lunch命令可知,不同的設備應有對應的編譯配置項。由于筆者沒有Note 2的源碼,所以只能嘗試編譯generic版本。 接下來要為generic平臺定制所使用的wpa_supplicant版本,這是通過修改BoardConfig.mk來完成的。 **BoardConfig.mk** ~~~ #在此文件最后添加如下內容: WPA_SUPPLICANT_VERSION := VER_0_8_X #表明使用wpa_supplicant_8 BOARD_WPA_SUPPLICANT_DRIVER := NL80211 #表明驅動使用Nl80211 BOARD_WLAN_DEVICE := bcmdhd #表明kernel中的wifi設備為博通公司的bcmdhd #編譯博通公司驅動相關的靜態庫,該庫對應的代碼也在AOSP源碼中,位置是, #hardware/broadcom/wlan/bcmdhd/wpa_supplicant_8_lib/ BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_bcmdhd ~~~ 巧合的是,Note 2使用的wlan芯片剛好為bcmdhd。 除了修改BoardConfig.mk外,WPAS也定義了自己的編譯配置文件android.config,其內容如下: ~~~ ......#該文件主要定義了編譯時生成的宏,各平臺根據自己的硬件情況去設置需要編譯的內容 # Driver interface for generic Linux wireless extensions CONFIG_DRIVER_WEXT=y #可注釋這一條以取消編譯WEXT相關代碼 # Driver interface for Linux drivers using the nl80211 kernel interface CONFIG_DRIVER_NL80211=y #可去掉此行的注釋符號以增加對Nl80211的支持 CONFIG_LIBNL20=y ......#其他很多編譯配置項都可在此文件中修改 #注意,此文件中對CONFIG_DRIVER_NL80211的修改和BoardConfig.mk中的BOARD_WPA_SUPPLICANT_DRIVER #相重合。BoardConfig.mk的優先級較高,所以請讀者先修改它 ~~~。 配置完畢后,開始編譯: ~~~ #首先要編譯wpa_supplicant依賴的靜態庫lib_driver_cmd_bcmdhd mmm hardware/broadcom/wlan/bcmdhd/wpa_supplicant_8_lib/ mmm external/wpa_supplicant_8 #生成wpa_supplicant,同時也會生成wpa_cli ~~~ 然后將編譯后wpa_supplicant替換Note 2的/system/bin/wpa_supplicant并設置其為可運行(通過chmod命令設置其權限位0755)。同時,筆者也把wpa_cli push到/system/bin下為后續測試做準備。 經過測試,筆者發現AOSP的wpa_supplicant以及wpa_cli均能正常工作在Note 2上。這也間接表明Note 2并未對wpa_supplicant以及博通芯片相關的代碼做較大改動。 **注意**:嚴格來說,android.cfg應該是唯一的編譯控制文件。但由于底層wlan芯片不同,WPAS可能還依賴其他模塊。所以,在具體實施時,BoardConfig.mk(或其他文件,視具體情況而定)也需要做修改。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看