赞
踩
首先需要看一下内核的版本,可以在手机中看到内核版本
cd ~/mount/project/androidq
git clone https://aosp.tuna.tsinghua.edu.cn/android/kernel/msm.git
cd msm
git checkout 4fecde07e68d
执行结果如下:
longzhiye@longzhiye-laptop:~/mount/project/androidq$ git clone https://aosp.tuna.tsinghua.edu.cn/android/kernel/msm.git 正克隆到 'msm'... warning: 重定向到 https://aosp.tuna.tsinghua.edu.cn/kernel/msm.git/ remote: Enumerating objects: 2324949, done. remote: Counting objects: 100% (2324949/2324949), done. remote: Compressing objects: 100% (521905/521905), done. remote: Total 11825131 (delta 1865339), reused 2217253 (delta 1796210), pack-reused 9500182 接收对象中: 100% (11825131/11825131), 2.98 GiB | 16.48 MiB/s, 完成. 处理 delta 中: 100% (9920545/9920545), 完成. longzhiye@longzhiye-laptop:~/mount/project/androidq$ cd msm/ longzhiye@longzhiye-laptop:~/mount/project/androidq/msm$ git checkout 4fecde07e68d 正在检出文件: 100% (56480/56480), 完成. 注意:正在检出 '4fecde07e68d'。 您正处于分离头指针状态。您可以查看、做试验性的修改及提交,并且您可以通过另外 的检出分支操作丢弃在这个状态下所做的任何提交。 如果您想要通过创建分支来保留在此状态下所做的提交,您可以通过在检出命令添加 参数 -b 来实现(现在或稍后)。例如: git checkout -b <新分支名> HEAD 目前位于 4fecde07e68d Merge android-msm-wahoo-4.4-qt-qpr2 into android-msm-wahoo-4.4-qt-qpr3
这里的分支"4fecde07e68d"就是上面的手机截图中内核版本里g后面的数字
sudo apt install libssl-dev
执行结果如下:
longzhiye@longzhiye-laptop:~/mount/project/androidq/msm$ sudo apt install libssl-dev [sudo] longzhiye 的密码: 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 下列软件包是自动安装的并且现在不需要了: gir1.2-goa-1.0 gir1.2-snapd-1 使用'sudo apt autoremove'来卸载它(它们)。 将会同时安装下列软件: libssl1.1 建议安装: libssl-doc 下列【新】软件包将被安装: libssl-dev 下列软件包将被升级: libssl1.1 升级了 1 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 71 个软件包未被升级。 需要下载 2,870 kB 的归档。 解压缩后会消耗 7,850 kB 的额外空间。 您希望继续执行吗? [Y/n] y 获取:1 http://security.ubuntu.com/ubuntu bionic-security/main amd64 libssl1.1 amd64 1.1.1-1ubuntu2.1~18.04.23 [1,303 kB] 获取:2 http://security.ubuntu.com/ubuntu bionic-security/main amd64 libssl-dev amd64 1.1.1-1ubuntu2.1~18.04.23 [1,568 kB] 已下载 2,870 kB,耗时 5秒 (553 kB/s) 正在预设定软件包 ... (正在读取数据库 ... 系统当前共安装有 204375 个文件和目录。) 正准备解包 .../libssl1.1_1.1.1-1ubuntu2.1~18.04.23_amd64.deb ... 正在将 libssl1.1:amd64 (1.1.1-1ubuntu2.1~18.04.23) 解包到 (1.1.1-1ubuntu2.1~18.04.22) 上 ... 正在选中未选择的软件包 libssl-dev:amd64。 正准备解包 .../libssl-dev_1.1.1-1ubuntu2.1~18.04.23_amd64.deb ... 正在解包 libssl-dev:amd64 (1.1.1-1ubuntu2.1~18.04.23) ... 正在设置 libssl1.1:amd64 (1.1.1-1ubuntu2.1~18.04.23) ... 正在设置 libssl-dev:amd64 (1.1.1-1ubuntu2.1~18.04.23) ... 正在处理用于 libc-bin (2.27-3ubuntu1.6) 的触发器 ...
$aosp\msm\arch\arm64\configs\wahoo_defconfig
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
修改为
# CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL=y
$aosp\msm\kernel\module.c
return -ENOEXEC;
修改为
// return -ENOEXEC;
cd msm
export PATH=$PATH:/home/longzhiye/mount/project/androidq/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin
export PATH=$PATH:/home/longzhiye/mount/project/androidq/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin
export PATH=$PATH:/home/longzhiye/mount/project/androidq/prebuilts/misc/linux-x86/dtc
export PATH=$PATH:/home/longzhiye/mount/project/androidq/prebuilts/misc/linux-x86/libufdt
export PATH=$PATH:/home/longzhiye/mount/project/androidq/prebuilts/misc/linux-x86/lz4
export ARCH=arm64
export CROSS_COMPILE=/home/longzhiye/mount/project/androidq/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-
export CROSS_COMPILE_ARM32=/home/longzhiye/mount/project/androidq/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi-
export CC=/home/longzhiye/mount/project/androidq/prebuilts/clang/host/linux-x86/clang-3289846/bin/clang
make wahoo_defconfig
make -j4
运行结果如下:
longzhiye@longzhiye-laptop:~/mount/project/androidq$ cd msm/ longzhiye@longzhiye-laptop:~/mount/project/androidq/msm$ export PATH=$PATH:/home/longzhiye/mount/project/androidq/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin longzhiye@longzhiye-laptop:~/mount/project/androidq/msm$ export PATH=$PATH:/home/longzhiye/mount/project/androidq/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin longzhiye@longzhiye-laptop:~/mount/project/androidq/msm$ export PATH=$PATH:/home/longzhiye/mount/project/androidq/prebuilts/misc/linux-x86/dtc longzhiye@longzhiye-laptop:~/mount/project/androidq/msm$ export PATH=$PATH:/home/longzhiye/mount/project/androidq/prebuilts/misc/linux-x86/libufdt longzhiye@longzhiye-laptop:~/mount/project/androidq/msm$ export PATH=$PATH:/home/longzhiye/mount/project/androidq/prebuilts/misc/linux-x86/lz4 longzhiye@longzhiye-laptop:~/mount/project/androidq/msm$ export ARCH=arm64 longzhiye@longzhiye-laptop:~/mount/project/androidq/msm$ export CROSS_COMPILE=/home/longzhiye/mount/project/androidq/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android- longzhiye@longzhiye-laptop:~/mount/project/androidq/msm$ export CROSS_COMPILE_ARM32=/home/longzhiye/mount/project/androidq/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi- longzhiye@longzhiye-laptop:~/mount/project/androidq/msm$ export CC=/home/longzhiye/mount/project/androidq/prebuilts/clang/host/linux-x86/clang-3289846/bin/clang longzhiye@longzhiye-laptop:~/mount/project/androidq/msm$ make wahoo_defconfig # # configuration written to .config # #### build completed successfully (2 seconds) #### longzhiye@longzhiye-laptop:~/mount/project/androidq/msm$ make -j4 Android GCC has been deprecated in favor of Clang, and will be removed from Android in 2020-01 as per the deprecation plan in: https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+/master/GCC_4_9_DEPRECATION.md ...... drivers/thermal/thermal_core.c:43:26: fatal error: ../base/base.h: No such file or directory #include <../base/base.h> ^ compilation terminated. scripts/Makefile.build:276: recipe for target 'drivers/thermal/thermal_core.o' failed make[2]: *** [drivers/thermal/thermal_core.o] Error 1 scripts/Makefile.build:483: recipe for target 'drivers/thermal' failed make[1]: *** [drivers/thermal] Error 2 make[1]: *** 正在等待未完成的任务.... CC drivers/soc/qcom/wlan_firmware_service_v01.o Android GCC has been deprecated in favor of Clang, and will be removed from Android in 2020-01 as per the deprecation plan in: https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+/master/GCC_4_9_DEPRECATION.md
报错信息
drivers/thermal/thermal_core.c:43:26: fatal error: ../base/base.h: No such file or directory
#include <../base/base.h>
修改"drivers/thermal/thermal_core.c"文件
$aosp\msm\drivers\thermal\thermal_core.c
#include "<../base/base.h>"
修改为
#include "../base/base.h"
继续编译
make -j4
编译成功会有如下提示:
Building modules, stage 2.
DTC arch/arm64/boot/dts/qcom/msm8998-v2.1-soc.dtb
MODPOST 9 modules
Android GCC has been deprecated in favor of Clang, and will be removed from
Android in 2020-01 as per the deprecation plan in:
https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+/master/GCC_4_9_DEPRECATION.md
CAT arch/arm64/boot/Image.lz4-dtb
#### build completed successfully (9 seconds) ####
cd ..
export TARGET_PREBUILT_KERNEL=/home/longzhiye/mount/project/androidq/msm/arch/arm64/boot/Image.lz4-dtb
source build/envsetup.sh
lunch aosp_walleye-userdebug
time make bootimage
运行结果如下:
longzhiye@longzhiye-laptop:~/mount/project/androidq/msm$ cd .. longzhiye@longzhiye-laptop:~/mount/project/androidq$ export TARGET_PREBUILT_KERNEL=/home/longzhiye/mount/project/androidq/msm/arch/arm64/boot/Image.lz4-dtb longzhiye@longzhiye-laptop:~/mount/project/androidq$ source build/envsetup.sh longzhiye@longzhiye-laptop:~/mount/project/androidq$ lunch aosp_walleye-userdebug ============================================ PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=10 TARGET_PRODUCT=aosp_walleye TARGET_BUILD_VARIANT=userdebug ...... OUT_DIR=out PRODUCT_SOONG_NAMESPACES=device/google/wahoo vendor/google/camera hardware/google/pixel ============================================ 20:31:39 Disallowed PATH tool "locale" used: []string{"locale", "-a"} 20:31:39 See https://android.googlesource.com/platform/build/+/master/Changes.md#PATH_Tools for more information. 20:31:43 Disallowed PATH tool "locale" used: []string{"locale", "-a"} 20:31:43 See https://android.googlesource.com/platform/build/+/master/Changes.md#PATH_Tools for more information. [100% 2/2] Target boot image from recovery: out/target/product/walleye/boot.img #### build completed successfully (18 seconds) #### real 0m18.171s user 0m21.882s sys 0m7.009s
手机进入fastboot模式
cd ~/mount/project/androidq
source build/envsetup.sh
lunch aosp_walleye-userdebug
adb reboot bootloader
cd out/target/product/walleye/
fastboot flash boot boot.img
fastboot reboot
成功刷入手机,开机后进入查看内核界面,"Kernel verion"已经发生变化
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。