拿到原厂的驱动包,编译会生成两个驱动dhd_static_buf.ko、bcmdhd.ko.
vi frameworks/opt/net/wifi/libwifi_hal/wifi_hal_common.cpp
static int insmod(const char *filename, const char *args) {
int ret;
int fd;
+int fp;
+fp = TEMP_FAILURE_RETRY(open("/vendor/lib/modules/dhd_static_buf.ko", O_RDONLY | O_CLOEXEC | O_NOFOLLOW));
+ret = syscall(__NR_finit_module, fp, args, 0);
fd = TEMP_FAILURE_RETRY(open(filename, O_RDONLY | O_CLOEXEC | O_NOFOLLOW));
if (fd < 0) {
PLOG(ERROR)
@@ -259,6 +262,7 @@ static int insmod(const char *filename, const char *args) {
ret = syscall(__NR_finit_module, fd, args, 0);
+close(fp);
close(fd);
if (ret < 0) {
PLOG(ERROR)