从未经修改的官方源代码编译 android 内核会给出损坏的结果
Compiling android kernel from official unmodified source gives corrupted result
我已经从三星开源网站下载了我的三星 Galaxy Tab A 2018 (SM-T590) 的内核源代码。
我正在尝试使用存档中内核给出的说明编译未修改的源代码,但是生成的内核文件约为 28MB,而可以从 stock ROM 中提取的 boot.img 是 ~13MB。
当然,28MB的大编译内核不会启动系统,当我select在recovery中重启到系统时,它又回到下载模式。
我遵循的步骤:
1. How to Build
- get Toolchain
From android git serveru, codesourcery and etc ..
- gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-
- make output folder
EX) OUTPUT_DIR=out
$ mkdir out
- edit Makefile
edit "CROSS_COMPILE" to right toolchain path(You downloaded).
EX) CROSS_COMPILE=<android platform directory you download>/android/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-
Ex) CROSS_COMPILE=/usr/local/toolchain/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android- // check the location of toolchain
- to Build
$ export ARCH=arm64
$ make -C $(pwd) O=$(pwd)/out KCFLAGS=-mno-android gta2xlwifi_eur_open_defconfig
$ make -C $(pwd) O=$(pwd)/out KCFLAGS=-mno-android
2. Output files
- Kernel : arch/arm64/boot/Image
- module : drivers/*/*.ko
来自编译器的日志: https://pastebin.com/Fv96iAmP
已解决。
基本上 boot.img 中的库存内核是一个包含内核本身的压缩存档,这就是它大小不同的原因。
我已经从三星开源网站下载了我的三星 Galaxy Tab A 2018 (SM-T590) 的内核源代码。
我正在尝试使用存档中内核给出的说明编译未修改的源代码,但是生成的内核文件约为 28MB,而可以从 stock ROM 中提取的 boot.img 是 ~13MB。
当然,28MB的大编译内核不会启动系统,当我select在recovery中重启到系统时,它又回到下载模式。
我遵循的步骤:
1. How to Build
- get Toolchain
From android git serveru, codesourcery and etc ..
- gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-
- make output folder
EX) OUTPUT_DIR=out
$ mkdir out
- edit Makefile
edit "CROSS_COMPILE" to right toolchain path(You downloaded).
EX) CROSS_COMPILE=<android platform directory you download>/android/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-
Ex) CROSS_COMPILE=/usr/local/toolchain/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android- // check the location of toolchain
- to Build
$ export ARCH=arm64
$ make -C $(pwd) O=$(pwd)/out KCFLAGS=-mno-android gta2xlwifi_eur_open_defconfig
$ make -C $(pwd) O=$(pwd)/out KCFLAGS=-mno-android
2. Output files
- Kernel : arch/arm64/boot/Image
- module : drivers/*/*.ko
来自编译器的日志: https://pastebin.com/Fv96iAmP
已解决。
基本上 boot.img 中的库存内核是一个包含内核本身的压缩存档,这就是它大小不同的原因。