1. BaordConfig.mk添加如下内容
BOARD_WIFI_VENDOR := realtek
ifeq ( $(BOARD_WIFI_VENDOR), realtek)
WPA_SUPPLICANT_VERSION := VER_0_8_X
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_rtl
#BOARD_HOSTAPD_DRIVER := NL80211
#BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_rtl
#BOARD_WLAN_DEVICE := rtl8188eu
BOARD_WLAN_DEVICE := rtl8723BU
WIFI_DRIVER_MODULE_NAME := "8723bu"
WIFI_DRIVER_MODULE_PATH := "/system/lib/modules/8723bu.ko"
WIFI_DRIVER_MODULE_ARG := "ifname=wlan0 if2name=p2p0"
WIFI_FIRMWARE_LOADER := "rtw"
WIFI_DRIVER_FW_PATH_STA := "STA"
WIFI_DRIVER_FW_PATH_AP := "AP"
WIFI_DRIVER_FW_PATH_P2P := "P2P"
WIFI_DRIVER_FW_PATH_PARAM := "/dev/null"
endif
2.device.mk中添加如下内容
# wifi
PRODUCT_PACKAGES += \
libwpa_client \
hostapd \
wpa_supplicant \
wpa_supplicant.conf
PRODUCT_PACKAGES += \
rtw_fwloader
PRODUCT_COPY_FILES += \
device/nexell/kernel/kernel-4.4.x/drivers/net/wireless/rtl8723BU/8723bu.ko:system/lib/modules/8723bu.ko
PRODUCT_PROPERTY_OVERRIDES += \
wifi.interface=wlan0
$(call inherit-product-if-exists, hardware/realtek/wlan/config/p2p_supplicant.mk)
3在xxx.rc 中添加如下内容,然后将xxx.rc拷贝到rootdir目录下(在系统的根目录下和其他的xxx.rc放一起)。
on post-fs-data
mkdir /data/misc/wifi 0770 wifi wifi
mkdir /data/misc/wifi/sockets 0770 wifi wifi
mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi
mkdir /data/misc/dhcp 0770 dhcp dhcp
chown dhcp dhcp /data/misc/dhcp
chmod 0666 /data/misc/wifi/wpa_supplicant.conf
chmod 0666 /data/misc/wifi/p2p_supplicant.conf
chmod 0666 /dev/rfkill
chmod 0666 /system/etc/wifi/wpa_supplicant.conf
setprop wifi.interface "wlan0"
setprop wlan.interface "wlan0"
setprop wifi.direct.multicast 1
#add for rtl8723bu
service rtw_suppl_con /system/bin/wpa_supplicant \
-ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \
-e/data/misc/wifi/entropy.bin -N \
-iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
-O/data/misc/wifi/sockets \
-g@android:wpa_wlan0
class main
socket wpa_wlan0 dgram 660 wifi wifi
disabled
oneshot
service rtw_suppl /system/bin/wpa_supplicant \
-iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
-O/data/misc/wifi/sockets \
-e/data/misc/wifi/entroy.bin
-g@android:wpa_wlan0
class main
socket wpa_wlan0 dgram 660 wifi wifi
disabled
oneshot
# Realtek Firmware Loader
service rtw /system/bin/rtw_fwloader
class main
disabled
oneshot
service dhcpcd_wlan0 /system/bin/dhcpcd -aABDKL
class main
disabled
oneshot
service dhcpcd_p2p /system/bin/dhcpcd -aABKL
class main
disabled
oneshot
service iprenew_wlan0 /system/bin/dhcpcd -n
class main
disabled
oneshot
service iprenew_p2p /system/bin/dhcpcd -n
class main
disabled
oneshot
5将hal文件realtek放到halware目录下
6.将压缩文件wpa_supplicant_8_realtek.tar.bz2解压到external目录下
7.将wifi.c和Android.mk放到目录hardware/libhardware_legacy/wifi/下,将原来的覆盖
8.设置seLinux服务
./sepolicy/service.te:type rtw_fwloader_service, service_manager_type;
./sepolicy/file_contexts:/system/bin/rtw_fwloader u:object_r:rtw_exec:s0
./sepolicy/rtw.te:type rtw, domain;
./sepolicy/rtw.te:type rtw_exec, exec_type, file_type;
./sepolicy/rtw.te:init_daemon_domain(rtw)
./sepolicy/rtw.te:allow rtw rootfs:lnk_file getattr;
./sepolicy/rtw.te:allow rtw proc_net:file { read open getattr };
./sepolicy/rtw.te:allow rtw property_socket:sock_file write;
./sepolicy/rtw.te:allow rtw init:unix_stream_socket connectto;
./sepolicy/rtw.te:allow rtw system_prop:property_service set;
9.将驱动包rtl8723BU放到目录下kernel/drivers/net/wireless,并且在Makefile中添加
obj-$(CONFIG_RTL8723BU) += rtl8723BU/
在Kconfig中添加
source "drivers/net/wireless/rtl8723BU/Kconfig
10. 在配置文件xxx_deconfig中或者.config中加入
CONFIG_RTL8723BU=m
生成的.ko文件安装到system/lib/module/下