我是靠谱客的博主 欢呼可乐,最近开发中收集的这篇文章主要介绍Kernel 开启 KAsan 实录,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本文是基于 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博客

最后

以上就是欢呼可乐为你收集整理的Kernel 开启 KAsan 实录的全部内容,希望文章能够帮你解决Kernel 开启 KAsan 实录所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部