How to get ‘kernel config‘ when CONFIG_IKCONFIG is not set ? (Preliminary)

当Linux kernel编译安装时,.config配置文件没有设置CONFIG_IKCONFIG=y,此时无法通过Linux给出的脚本./scripts/extract-ikconfig去获取Linux内核配置文件。如果你尝试使用该脚本去获取Linux内核配置文件不出意外一定会报错:

extract-ikconfig: Cannot find kernel config.

我的目的就是想要在这种情况下,获取Linux内核配置文件。

在Stack Overflow中,有一条类似的post,询问了同样的问题
在这里插入图片描述
5年间,只有一条回复如下图。
在这里插入图片描述
根据这条回答,我们来看一下相应的位置有没有configs.ko文件。
选取小米Pad3的内核,小米Mi 10S内核进行查看,在这两种内核版本的lib文件夹中不存在这条回答中的内容。看来这条回答只针对于完全开源的Linux系统。

对于怎么获取Android内核配置文件,现在没有什么头绪。
在CSDN也有一篇关于Android内核提取的博客大家可以先看看.

小米ROM文件

在上面提到的博客中说,可以通过解析boot.img来获取kernel文件。
在这里插入图片描述
我们先下载一个小米线刷版本的ROM压缩包
我下载的是小米5的线刷包,
在这里插入图片描述
解压后可以在其目录下找到boot.img
在这里插入图片描述
有个名叫abootimg的软件可以分析.img软件
在这里插入图片描述
我在YouTube看了一个视频关于extract config from Android kernel。
在这里插入图片描述
重命名boot.img.kernel.gz 为 Image,然后使用Linux内核脚本文件提供的extract_ikconfig处理Image就提取到了config文件。
我下载了小米ROM先刷版压缩文件,其中并不存在boot.img.kernel.gz

对比Linux-5.0.5 内核配置文件

首先我们要弄清楚一个事情,Linux内核提供的脚本extract-ikconfig是从哪里抽取了信息,形成了配置文件。
答案是 Linux内核目录下的.config。通过对比可以发现,抽取出来的配置文件与。config文件一致。
在这里插入图片描述
在之前的博客中也有提到在 Android Kernel Configs

安卓系统必须具备的内核配置设置位于基础配置片段android-base.config中。以某种方式增强安卓功能的配置设置,但不是安卓运行的必要条件,则位于推荐配置片段android-recommended.config中.
在这里插入图片描述
我现在想知道,.config是否全部包含了android-base.config
首先找到android-base.config
在这里插入图片描述
diff过后发现不同的地方太多,好像无法下手。

Related work

How to extract kernel configuration from android kernel or boot.img and build related kernel for the device

Novafusion

从zImage中提取出Image的方法

vmlinuz 文件解压缩(zImage|bzImage)

android 提取内核指南

小米ROM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值