[Android]从零开始的内核编译 您所在的位置:网站首页 mac编译android源码 [Android]从零开始的内核编译

[Android]从零开始的内核编译

2023-03-23 13:40| 来源: 网络整理| 查看: 265

从零开始的内核编译

本教程将基于小米 10S 的内核源码进行实例,其他型号的手机请自行寻找内核源码。具体内容可以参考我的内核编译项目。

手机型号查询 1. 获取设备(手机)代号

在安卓设备终端(adb shell)上执行:

getprop | grep device

并寻找带有 ro.xx.device 这一行,里面的内容即为你的手机代号,例如:

# 手机代号为 thyme [ro.product.device]: [thyme] 2. 获取设备架构

在安卓设备终端(adb shell)上执行:

uname -m

我的设备显示为 aarch64, 即可判断我的设备架构为 aarch64。

3. 获取设备内核版本

在安卓设备终端(adb shell)上执行:

uname -r

输出内容的格式为:

[版本].[补丁版本].[子版本号]-[内核标识]-[提交记录]

例如我的设备显示为 4.19.157-Margatroid-gb1b98c3d4fd0

内核源码获取

内核源码的一般格式为 [android_]kernel_设备厂商_cpu/代号,例如,小米 10S(thyme)的代号为 thyme, CPU 型号为 sm8250,生产厂商为 xiaomi,则搜索格式应为下面几种:

kernel_xiaomi_thyme kernel_xiaomi_sm8250 android_kernel_xiaomi_thyme android_kernel_xiaomi_sm8250

以下是我收集的一些小米 10S(thyme)的源码仓库:

Lynnrin-Studio/android_kernel_xiaomi_thyme: 这是我目前编译内核所使用的内核源码。UtsavBalar1231/kernel_xiaomi_sm8250: CLO 内核升级为 CAF 标签 LA.UM.9.12.r1-14700-SMxx50,AOSP 源码同步上游 android-4.19-stable。WeeAris/RK-KSU-mi-kernel-SM8250: 支持 KernelSU 的 Rohail33/RealKing-kernel-SM8250 分支。Rohail33/RealKing-kernel-SM8250: 基于 LA.UM.9.12.r1-08000-SMxx50.0 标签的内核。

当然除此之外还有很多源码,但这些源码对于我来说是我前期学习的一个途径,因此在这里列出给大家。

途径具体介绍各厂商开源小米内核开源华为开源代码去手机社区找源码XDA 论坛 获取编译工具链

强烈推荐您学习[内核向] 交叉编译器的选择以及[白话文版] ClangBuiltLinux Clang 的使用来学习工具链的配置。

同时可以配合 Neutron-Clang 的说明文档来进行编译参数配置。

目前比较推荐的几个预编译工具链如下:

工具名称简介Neutron-Clang这是为内核开发构建的 LLVM 和 Clang 编译器工具链。构建始终是从最新的 LLVM 源代码而不是稳定版本构建的,因此无法保证完全的稳定性。阿菌•未霜 Clang/LLVM Toolchain with Binutils这是一个预构建的工具链,构建始终来自最新的 LLVM 和 Binutils 源而不是稳定版本,因此无法保证完全的稳定性。它是用 Full LTO、PGO 和 BOLT 构建的,以尽可能减少编译时间。ClangBuiltLinux/tc-build类似前两个工具,但是这个工具需要自己在本地从 LLVM 的源码进行构建,但编译时间较长。

除此之外,一个比较保险的方法是从预编译内核机器的 /proc/config.gz 提取`,需要对应版本的交叉编译器以及 Clang,自行选择合适版本下载即可,通过这种方式编译出来的内核一般是不会存在错误的。

1. Neutron-Clang 使用介绍

这是为内核开发构建的 LLVM 和 Clang 编译器工具链。构建始终是从最新的 LLVM 源代码而不是稳定版本构建的,因此不能保证完全的稳定性。目前该编译链工具使用 AntMan 来同步工具,具体使用方法如下:

mkdir -p "$HOME/toolchains/neutron-clang" cd "$HOME/toolchains/neutron-clang" bash


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有