Android搞机之编译LineageOS内核

编译环境

  • VMware 虚拟机 + Kali 2022.3
  • 32GB 内存
  • 400GB 硬盘
  • 乐视 Max2 手机
  • lineageOS 18.1

源码下载

  1. 从 lineageOS 官网上找到 LeMax2。在 Build for x2 章节找到 kernel 的 Github 地址

  2. 下载 kernel 源码

    bash 复制代码
    git clone --depth=1 https://github.com/LineageOS/android_kernel_leeco_msm8996.git

编译

  1. 安装编译工具链。lineageOS Github 提供了预编译的工具链,根据手机架构,手机中安装的 lineageOS 版本,选择合适的预编译版本进行下载

    bash 复制代码
    git clone --depth=1 -b lineage-18.1 https://github.com/LineageOS/android_prebuilts_gcc_linux-x86_aarch64_aarch64-linux-android-4.9.git
  2. 设置环境变量。将下载的编译工具链配置到环境变量中

    bash 复制代码
    export PATH=$PATH:/Documents/android_prebuilts_gcc_linux-x86_aarch64_aarch64-linux-android-4.9/bin
  3. 进入到源码目录,执行下面命令开始编译。编译过程中,可能会因为编译环境缺少特定命令而报错。根据报错信息,用 apt install安装缺少的命令即可。

    bash 复制代码
    export ARCH=arm64
    export CROSS_COMPILE=aarch64-linux-android-
    make O=out mrproper
    make O=out lineage_x2_defconfig # 去arch/arm64/configs 选一个你的机型对应的配置文件
    make O=out -j8  # 开始编译
  4. 等待编译成功。编译成功后,产物会在out/arch/<目标架构>/boot 目录下,如:/root/Documents/android_kernel_leeco_msm8996/out/arch/arm64/boot

替换内核

下载 AnyKernel3

bash 复制代码
git clone --depth=1 https://github.com/osm0sis/AnyKernel3.git

使用 AnyKernel3

  • 编辑 anykernel.sh 文件

    • 设置 do.devicecheck=0
    • 设置 block=/dev/block/bootdevice/by-name/boot
  • 将编译成功的内核 Image 文件复制到 AnyKernel3 根目录下

  • 将 Anykernel3 根目录下的所有文件打包成 zip 压缩包

    bash 复制代码
    zip -r9 Anykernel.zip *
  • Anykernel.zip 包推送到手机中

    bash 复制代码
    adb push Anykernel.zip /sdcard

刷机

  • 进入 LineageOS recovery 模式

    bash 复制代码
    adb reboot recovery
  • 选择 Apply update

  • 选择 Choose from internal storage

  • 选择 Anykernel.zip

  • 等待刷机完成。通过 adb shell查看内核版本是否为刚刚刷入的版本

    bash 复制代码
    le_x2:/ $ cat /proc/version                              
    Linux version 3.18.140-lineage-g4b91b133 (root@icarus) (gcc version 4.9.x 20150123 (prerelease) (GCC)) #1 SMP PREEMPT Thu Oct 19 23:39:33 CST 2023
相关推荐
诸神黄昏EX33 分钟前
Android Build系列专题【篇四:编译相关语法】
android
雨白3 小时前
优雅地处理协程:取消机制深度剖析
android·kotlin
leon_zeng03 小时前
更改 Android 应用 ID (ApplicationId) 后遭遇记
android·发布
2501_916007475 小时前
iOS 混淆工具链实战,多工具组合完成 IPA 混淆与加固(iOS混淆|IPA加固|无源码混淆|App 防反编译)
android·ios·小程序·https·uni-app·iphone·webview
Jeled6 小时前
Retrofit 与 OkHttp 全面解析与实战使用(含封装示例)
android·okhttp·android studio·retrofit
ii_best9 小时前
IOS/ 安卓开发工具按键精灵Sys.GetAppList 函数使用指南:轻松获取设备已安装 APP 列表
android·开发语言·ios·编辑器
2501_915909069 小时前
iOS 26 文件管理实战,多工具组合下的 App 数据访问与系统日志调试方案
android·ios·小程序·https·uni-app·iphone·webview
limingade10 小时前
手机转SIP-手机做中继网关-落地线路对接软交换呼叫中心
android·智能手机·手机转sip·手机做sip中继网关·sip中继
RainbowC011 小时前
GapBuffer高效标记管理算法
android·算法
程序员码歌11 小时前
豆包Seedream4.0深度体验:p图美化与文生图创作
android·前端·后端