解决了!
解决办法还是将模块编译进内核……
Pixel3 按照 LibXZR 大佬所说的方法做完之后
还需要将将下面几个配置添加进 b1c1_defconfig
CONFIG_QCA_CLD_WLAN=y
CONFIG_QCACLD_WLAN_LFR3=y
CONFIG_PRIMA_WLAN_OKC=y
CONFIG_PRIMA_WLAN_11AC_HIGH_TP=y
CONFIG_WLAN_FEATURE_11W=y
CONFIG_WLAN_FEATURE_LPSS=y
CONFIG_QCOM_VOWIFI_11R=y
CONFIG_HELIUMPLUS=y
CONFIG_QCOM_TDLS=y
CONFIG_QCOM_LTE_COEX=y
CONFIG_MPC_UT_FRAMEWORK=y
CONFIG_WLAN_OFFLOAD_PACKETS=y
CONFIG_WLAN_FASTPATH=y
CONFIG_WLAN_NAPI=y
CONFIG_WLAN_TX_FLOW_CONTROL_V2=y
CONFIG_WLAN_SYNC_TSF=y
CONFIG_LFR_SUBNET_DETECTION=y
CONFIG_MCC_TO_SCC_SWITCH=y
CONFIG_QCACLD_WLAN_LFR2=y
CONFIG_WLAN_FEATURE_DISA=y
CONFIG_WLAN_SPECTRAL_SCAN=y
↓ tips: 下面操作部分可以不看 直接复制配置进 b1c1_defconfig 中就可以了
主要是 CONFIG_QCA_CLD_WLAN=y
如果只添加CONFIG_QCA_CLD_WLAN=y
后编译会有很多报错,大体上是有些CONFIG
没有指定,如有你有耐心的话可以按照报错在源码中找相应需要添加的配置一项项添加CONFIG
我比较没有耐心,也不是很懂这些配置有什么用,设置好CONFIG_QCA_CLD_WLAN=y
, 运行 build/build.sh
报错后,我直接复制了生成在 /out/android-msm-pixel-4.9/dist/.config
中的 Qualcomm Athros CLD WLAN module
下的
CONFIG_QCA_CLD_WLAN=y
CONFIG*** is not set
CONFIG*** is not set
CONFIG*** is not set
CONFIG*** is not set
CONFIG*** is not set
将这些 is not set
复制进 b1c1_defcofnig
然后将 is not set 全部改为 =y
再运行 build/build.sh
根据脚本提示,-
就是我们需要删除的CONFIG
删除以后再运行 build/build.sh
↑ Tips: 这些操作可以不做,直接复制我上面的CONFIG项 进 b1c1_defconfig 也是可以的,这里只是陈述了一下我操作的步骤
—
还有一个问题
private/msm-google/techpack/audio/config/b1c1auto.conf
中有很多 CONFIG 配置 =m
,将这些项设置为 =y
这里不清楚是否有效 但是 还是将他改了 保险点。。。(我是真的菜啥都不懂,基本摸着黑改,哈哈哈哈)
最后一步 将自编译内核合入 aosp
cd pixel3_android10_kernel/
build/build.sh
# 等待内核编译完成 然后启动另一个terminal
cd pixel3_android10_aosp/
source build/envsetup.sh
lunch aosp_blueline-userdebug
# 内核指定为我们自编译内核
export TARGET_PREBUILT_KERNEL=/home/luo/pixel3_android10_kernel/out/android-msm-pixel-4.9/dist/Image.lz4
# 开始编译
m
# 等待编译完成.... 将pixel3设备重启至bootloader 并刷入带有自编译内核的aosp
adb reboot bootloader
# 因为已经将wifi触控声音等模块编译进了内核 这里就不再依赖.ko了 直接刷入aosp就能正常使用了
fastboot flashall -w
全部操作完成 手机重启 无须复制 .ko 也可以使用了。。。 爽!
关于Magisk 修补
直接adb上传aosp编译出来的 boot.img 到设备 使用magisk修补 然后fastboot flash boot magisk_******.img
就可以了。
重启测试 magisk 成功启动 并且wifi正常使用 设备占时没发现啥问题
不过magisk提示了一个异常状态 检测到不属于Magisk的su文件,请删除其他超级用户程序。
这里还是有个小问题,是直接删掉su文件就可以了吗?
小结尾
我是用的是谷歌官方的启动脚本 按照官方教程 构建内核 使用repo下载就可以了。
还有就是,最好保证内核版本与原先aosp一致,刷入原版aosp打开 设置>关于手机>Android版本>内核版本
可以看到 4.9.165_g***********_-****
g
后面的字符就是 git的commit
比如我这里就是 fff483291c07
cd private/msm-google/
git checkout fff483291c07
切换完以后,也将wlan模块分支切换为对应的内核版本的commit
比如我这里使用的 android-10.0.0_r1 的aosp 所以我要去下面这里找内核源码
https://android.googlesource.com/kernel/msm/+log/refs/heads/android-msm-crosshatch-4.9-android10-qpr1
fff483291c07 对应的就是
fff4832
input: touchscreen: stm: Remove input_event calls for MSC_TIMESTAMP by Atif Niyaz · 2 years, 1 month ago android-msm-crosshatch-4.9-q-preview-6 android-10.0.0_r0.3 android-q-preview-6_r0.4
开始切换
cd private/msm-google-modules/wlan/qcacld-3.0
git checkout android-msm-crosshatch-4.9-q-preview-6
cd private/msm-google-modules/wlan/fw-api
git checkout android-msm-crosshatch-4.9-q-preview-6
cd private/msm-google-modules/wlan/qca-wifi-host-cmn
git checkout android-msm-crosshatch-4.9-q-preview-6
切换完之后 如果要编译进内核 就直接复制到 private/msm-google/drivers/staging
里就好了,具体操作看 LibXZR 大佬的评论。
主要环境
aosp: android-10.0.0_r1
kernel: android-msm-crosshatch-4.9-android10-qpr1
msm 版本: android-msm-crosshatch-4.9-q-preview-6
msm-module 版本: android-msm-crosshatch-4.9-q-preview-6
你也遇到了相同问题吗? 可以看看这个 yueliangwan
—