You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写内核模块的Android.bp配置并保留安装后的.ko后缀

问题原因

你当前使用的cc_prebuilt_library_shared是专门用于预编译共享库的模块类型,默认会强制给输出文件添加lib前缀和.so后缀,所以按你现有配置确实会生成libwlan.so文件,不符合内核模块的命名要求。

解决方案

方案1:使用prebuilt_file模块类型(推荐,适配Android 10及以上版本)

直接用通用预编译文件规则,完全保留原文件名,配置示例如下:

prebuilt_file {
    name: "wlan.ko",
    src: "lib/wlan.ko",
    relative_install_path: "modules",
    vendor: true,
    // 不需要编译/剥离处理,内核模块strip后会无法加载
    strip: {
        none: true
    }
}

该配置会直接把文件安装到/vendor/lib/modules/wlan.ko,完全保留后缀。

方案2:沿用cc_prebuilt_library_shared,修改默认命名规则

如果必须使用cc类预编译配置,可以添加三个属性禁用前缀、自定义后缀,修改后的配置如下:

cc_prebuilt_library_shared {
    name: "wlan",
    relative_install_path: "modules",
    // 禁用默认的lib前缀
    no_lib_prefix: true,
    // 自定义后缀为.ko,替换默认的.so
    suffix: ".ko",
    // 禁用strip,避免内核模块损坏
    strip: {
        none: true
    },
    target: {
        android_arm: {
            srcs: "lib/wlan.ko"
        }
    },
    vendor: true
}

注意事项

内核模块禁止执行strip操作,两种方案都必须配置strip: none,否则模块加载时会出现invalid module format错误。

内容的提问来源于stack exchange,提问作者Bret Joseph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 06:45:04