【问题标题】:Android device vendor flashing 32-bit kernels on 64-bit SOCs?Android 设备供应商在 64 位 SOC 上闪烁 32 位内核?
【发布时间】:2022-03-07 18:13:34
【问题描述】:

我正在尝试为 Android 设备重新编译内核。该设备是小米红米7A。它有一个64位处理器Qualcomm Snapdragon 439。我编译内核没有错误,得到arch/arm64/boot/下的Image文件,到目前为止一切顺利。

我已尝试将其刷入设备。首先,我下载了股票boot 图像。然后,我使用Android Image Kitchen 解压它:

./unpackimg original-boot

所以现在,根据那里的所有教程,应该用新编译的引导映像替换旧的引导映像,重新打包映像并将其闪存到设备上。

# replace the boot-img in the split-img folder
./repackimg
# now I get a fresh image-new.img, so I flash it
fastboot flash boot image-new.img

我试过了,但是设备又回到了快速启动模式。

所以我开始搜索论坛。我在 stackoverflow 上找到了this question。这家伙基本上注意到他从编译器获得的图像与原始启动图像的格式不同。我检查了一下,得到了这个:

原始启动映像:

file boot-kernel
boot-kernel: Linux kernel ARM boot executable zImage (little-endian)

编译后的:

file Image
Image: Linux kernel ARM64 boot executable Image, little-endian, 4K pages

我看到两个主要区别:

  1. 显然,我为ARM64 编译,因为该设备具有64 位处理器。但由于某种原因,原始图像似乎是ARM
  2. 我的图片没有压缩,原图是zImage

This stackoverflow question 建议只有32 bit ARM 处理器支持zImage 图像。好的,这很酷,但请稍等... 这是否意味着我的 64 位 arm 设备运行 32 位 arm 启动映像?

为了确保不是Android-Image-Kitchen错误,脚本是好的,我解压了原始图像,然后重新打包并在未修改的情况下将其刷到设备上:

./unpackimg original-img
./repackimg
fastboot flash boot image-new.img

它启动了!所以,Android-Image-Kitchen 肯定是不可能的。

我是否遗漏了什么或这是否意味着该设备确实在 32 位系统下工作,即使处理器支持 64 位? Proof that it's 64-bit on qualcomm official website

有没有办法确定呢?我怎样才能找到它?因为如果它是真的,我必须用 32 位的 arm 工具链而不是 64 位的工具链来编译它。帮忙?

UPD:我在设备上输入了getconf LONG_BIT。愚蠢的是,它返回了32。所以,是的,小米只是将 32 位内核闪存到 64 位 SOC 上。哈哈。如果成功,我将尝试将内核编译为 32 位并回答我自己的问题。

【问题讨论】:

    标签: android linux-kernel kernel android-kernel


    【解决方案1】:

    您好,Redmi 8A 具有相同的 SoC,但它具有 64 位内核和操作系统……有些人成功地将 8A 内核移植到 7A,当然不是没有问题。在您的情况下,您可以将 8A 图像与 7A 结合起来...希望这些信息对您有所帮助。

    【讨论】:

    • 您好,感谢您的意见。无论如何,即使使用谷歌交叉编译器,我实际上也无法编译一个工作内核。由于某种原因,它比原来的少了约 5mb。反正我会努力的。也许如果你有一些论坛帖子或有人成功编译内核的一些信息,如果你分享我会很高兴。
    • 在 XDA 论坛上有关于将 8A 内核移植到 7A 的帖子,也许这些人可以帮助你。 forum.xda-developers.com/t/redmi-7a-arm64-kernel.4134381.
    猜你喜欢
    • 2014-12-11
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2012-08-01
    • 2017-06-29
    • 2016-02-28
    • 1970-01-01
    相关资源
    最近更新 更多