Android RK SDK只编译和烧录kernel(boot.img)

Android RK SDK只编译和烧录kernel(boot.img)

  • 作者:吴思含(Witheart)
  • 更新时间:20250919

在Android开发时,编译Android层耗时很长。而有时一些改动只涉及内核,能否只编译更新内核,而不编译Android部分?例如设备树的修改、内核的驱动适配。

注意:不同SDK有时候该boot.img可以生效,有时候无法生效,比较坑,推荐还是编译烧录完整的镜像。

Android下 boot.img 与 kernel 下 boot.img 的差异

  • Android 下的 boot.img 包含:

    • ramdisk
    • kernel
    • DTB
    • resource.img

    这个 boot.img 才是最终烧录到 boot 分区的镜像。

  • 而 kernel/boot.img 是不完整的,仅包含:

    • kernel
    • resource.img
  • -K 选项并不能编译出最终的 boot.img,因为 ramdisk 是依赖 Android 编译的。

如何只编译kernel得到最终要烧录的boot.img

  • 上文得知,最终的boot.img中应该包含ramdisk,所以前提是编译过一次完整的镜像,以便生成这个ramdisk。
  • 使用下面的命令只编译kernel,得到最终烧录的boot.img
bash 复制代码
source build/envsetup.sh

lunch

./build.sh -CK

编译产物位置

  • 最终要烧录的boot.img位于

    out\target\product\<具体版型>\

    或者

    rockdev\

  • 使用md5校验,使用./build.sh脚本编译后,这两个boot.img是一样的。而如果使用make编译,则这两个文件不一定一样,可能只有out中的更新了。

  • 而kernel\下的boot.img不是完整的,不能用于烧录

烧录方式

相关推荐
Starry-sky(jing)8 小时前
Vidda ADB 开启:R Pro 65 找不到开发者选项的处理与连接验收
android·adb·远程控制·电视·vidda
雨白8 小时前
从原理到实践:使用 Kotlin KSP 仿写 ButterKnifeLite
android·kotlin
疯华整猫10 小时前
把二十七个 init 从首帧前面搬走:用 Trae 把启动优化钉进 CI
android·性能优化·ai编程
传奇开心果10 小时前
【探秘 Jetpack Compose 框架深水区】 第8课:rememberSaveable 的边界在哪里?——Bundle、Saver 与什么值得跨进程存活
android·kotlin
Frankie_stand11 小时前
测试自动化实战指南:从脚本化、自动判据到 CI 集成的完整落地路径
android·ci/cd·自动化
恋猫de小郭12 小时前
Flutter 大小核优化又被回滚,然后又开新提案?
android·前端·flutter
Kapaseker12 小时前
领导问我 Kotlin 的 Nothing 是什么?
android·kotlin
韩曙亮13 小时前
【错误记录】安卓 adb 调试 5037 端口占用排查 ( adb 的三层结构 | 找出本机占用 5037 的进程 )
android·数据库·adb·安卓·错误记录
三少爷的鞋14 小时前
不改变异步本质,只改变代码组织:Telegram 项目的 Kotlin 协程实践
android