Kernel 开启 KAsan 实录

1 篇文章 0 订阅
1 篇文章 0 订阅

本文是基于 Android 使用的 Kernel 4.19 进行的实验。

1. 修改 deconfig 文件

(1)CD 到 kernel 的根目录:

        cd xxx(kernel 根目录)

(2)复制平台的 deconfig 文件到当前目录:

        cp linux/arch/arm64/configs/xxx_defconfig .config

(2)执行 Shell 指令:

        make menuconfig

(3)进入 Kernel hacking 选中:

        Code coverage for fuzzing

        然后进入Memory Debugging,选中如下两项:

        SLUB debugging on by default

        KASAN: runtime memory debugger

(4)保存退出

(5)检查是否成功: grep -rin -E "kasan|slub|kcov" .config

        CONFIG_KASAN=y
        CONFIG_KASAN_INLINE=y #要求GCC >= 5.0,否则是 CONFIG_KASAN_OUTLINE=y
        CONFIG_KCOV=y
        CONFIG_SLUB=y
        CONFIG_SLUB_DEBUG=y

(6)替换平台的 deconfig 文件:

        mv .config linux/arch/arm64/configs/xxx_defconfig

(7)执行 Shell 命令:

        make mrproper

2. 编译

(1)执行 Shell 命令:

        source build/envsetup.sh
        lunch xxx
        make -j4

(2)编译完成后,检查 Image Size 是否变大:

        ls -l arch/arm/boot/compressed/vmlinux 

        ls -l release_img/boot.img

3. 调整 Partition

        对于 Android,修改文件:

        /device/厂商/平台/BoardConfig.mk

        确保配置 Boot 和 Recovery Size 大于等于实际 Size:

        BOARD_BOOTIMAGE_PARTITION_SIZE := 34035744
        BOARD_RECOVERYIMAGE_PARTITION_SIZE := 41787424

4.重新编译

        对于 Android,需要重新编译打包成最终的 Image。

参考:

编译内核  |  Android 开源项目  |  Android Open Source Project

Linux内核4.4打开kasan功能并替换内核编译器_bin_linux96的专栏-CSDN博客

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值