Vat*_*rma 5 linux android android-kernel ubuntu-18.04
我正在尝试学习内核定制,为此我的目标是 OnePlus 6T 设备。我可以通过以下步骤在 Ubuntu 18 上编译内核源代码:
\n\n以下是编译的最后几行:
\n\nCC drivers/media/platform/msm/broadcast/tspp.mod.o\nCC drivers/media/platform/msm/dvb/adapter/mpq-adapter.mod.o\nCC drivers/media/platform/msm/dvb/demux/mpq-dmx-hw-plugin.mod.o\nGZIP arch/arm64/boot/Image.gz\nCC drivers/soc/qcom/llcc_perfmon.mod.o\nCC drivers/video/backlight/lcd.mod.o\nCC net/bridge/br_netfilter.mod.o\nLD [M] drivers/char/rdbg.ko\nLD [M] drivers/media/platform/msm/broadcast/tspp.ko\nLD [M] drivers/media/platform/msm/dvb/adapter/mpq-adapter.ko\nLD [M] drivers/media/platform/msm/dvb/demux/mpq-dmx-hw-plugin.ko\nLD [M] drivers/soc/qcom/llcc_perfmon.ko\nLD [M] drivers/video/backlight/lcd.ko\nLD [M] net/bridge/br_netfilter.ko\nCAT arch/arm64/boot/Image.gz-dtb\nmake[1]: Leaving directory \'/home/.../KernelCustomization/android_kernel_oneplus_sdm845/Out\'\nRun Code Online (Sandbox Code Playgroud)\n\n现在,下一步是刷新图像。我已经root了OnePlus 6T设备,我对成功编译后生成的三个图像文件感到困惑,即
\n\n我需要帮忙:
\n\n找到谷歌文档
\n\nhttps://source.android.com/devices/bootloader/partitions-images
\n\n根据谷歌文档中的以下几行:
\n\nboot:启动分区包含通过 mkbootimg 组合的内核映像和 RAM 磁盘。为了直接刷新内核而不刷新新的引导分区,可以使用虚拟分区:
\n\nkernel:虚拟内核分区通过将新映像写入旧映像来仅覆盖内核(zImage、zImage-dtb、Image.gz-dtb)。为此,它确定 eMMC 中现有内核映像的起始位置并复制到该位置,请记住新内核映像可能比现有内核映像大。引导加载程序可以通过移动其后面的任何数据来腾出空间,也可以因错误而放弃操作。如果提供的开发内核不兼容,您可能需要更新 dtb 分区(如果存在),或者具有关联内核模块的供应商或系统分区。
\n\n我想我必须用来arch/arm64/boot/Image.gz-dtb刷新内核。我的理解是 Image.gz-dtb 是一个虚拟映像,可用于在 android 上仅刷新内核。
尽管如此,我还是无法找出刷新它的正确步骤。我想知道我是否会做错什么,然后我会损坏我的设备,所以我想在闪烁之前确定它是否可以工作。
\n\n此时任何帮助或指导都会非常有帮助。
\n\n我找到了在 Android 设备上刷新自定义内核所需的步骤,即
\n\n我需要有关缺失步骤的更多信息。实际上,上面写的过程适用于只有一个启动分区的设备。有谁知道如何在具有 a/b 分区的设备上刷新我的单个内核映像?
\n\n更新:
\n\n我在互联网上搜索了 A/B 分区,发现它们用于无缝更新,即一个分区一次处于活动状态,另一个不活动的分区可用于刷新更新。重新启动时,另一个分区将变为活动状态,而一个分区将变为非活动状态。更多信息: https: //www.xda-developers.com/how-a...opment-on-xda/
\n\n如果我的理解是正确的,那么我只需要按照以下步骤找到要在刷新内核的第一步中使用的正确映像:
\n\n有这方面知识的朋友请确认一下。我将非常感谢你。
\n小智 4
刷写 fastboot flash boot boot.img 这适用于 A/B 和非 A/B 系统,因为映像将刷写到默认活动分区(如果您没有 OTA 或使用“fastboot set_active”更改 boot_a 则默认为 boot_a) ) 在 A/B 系统上,您还可以使用 'fastboot getvar current-slot' 获取活动插槽和特定闪存分区 'fastboot flash boot_a boot.img' 或 'fastboot flash boot_b boot.img' XDA 提供脚本来刷新内核映像(Image.gz-dtb) 具有以下步骤:从手机中转储 boot.img b.从 boot.img 中提取 ramdisk.img c. 将 Image.gz-dtb 与 ramdisk.img 合并为新的 boot.img d. 刷写新的 boot.img 到启动分区
https://forum.xda-developers.com/oneplus-6t/development/kernel-holydragon-t3878107 提供定制的内核和刷新脚本,您应该检查并找到合适的方式来刷新内核映像。
| 归档时间: |
|
| 查看次数: |
12216 次 |
| 最近记录: |