2. 编译安卓内核(pixel 2,Android 10)
下载内核源码cd ~/Documentsmkdir android-kernel && cd android-kernelrepo init -u https://aosp.tuna.tsinghua.edu.cn/kernel/manifest -b android-msm-wahoo-4.4-android10-qpr3repo sync -j4
本文是在上文1. 编译安卓(AOSP)10.0.0的基础上进行的,虚拟机环境就是上文结束时的环境。
上文中编译的安卓源码中并不包含内核的源码,只有一个编译好的内核镜像。因此,要研究安卓内核,首先需要下载和编译安卓内核。
下载内核源码
1)查看内核版本
首先需要看一下内核的版本,在上文编译AOSP10源码并刷入手机后,可以在手机中看到内核版本
2)下载该内核版本对应的源码
cd ~/Documents
git clone https://aosp.tuna.tsinghua.edu.cn/android/kernel/msm.git
cd msm
git checkout 83bee1dc48e8
这里的分支"83bee1dc48e8"就是上面的手机截图中内核版本里g后面的数字
编译
3)安装libssl(不装编译的时候会报错)
sudo apt install libssl-dev
4)去掉内核校验(不然重刷内核后触屏没有反应)
5)将编译工具链加入到环境变量中并编译
cd msm
export PATH=$PATH:/home/test/Documents/aosp10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin
export PATH=$PATH:/home/test/Documents/aosp10/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin
export PATH=$PATH:/home/test/Documents/aosp10/prebuilts/misc/linux-x86/dtc
export PATH=$PATH:/home/test/Documents/aosp10/prebuilts/misc/linux-x86/libufdt
export PATH=$PATH:/home/test/Documents/aosp10/prebuilts/misc/linux-x86/lz4
export ARCH=arm64
export CROSS_COMPILE=/home/test/Documents/aosp10/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-
export CROSS_COMPILE_ARM32=/home/test/Documents/aosp10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi-
export CC=/home/test/Documents/aosp10/prebuilts/clang/host/linux-x86/clang-3289846/bin/clang
make wahoo_defconfig
make -j16
报错
解决:修改"drivers/thermal/thermal_core.c"文件
修改前
修改后
继续编译
make -j16
编译成功
打包并刷入手机
6)打包
cd ~/Documents/aosp10
export TARGET_PREBUILT_KERNEL=/home/test/Documents/msm/arch/arm64/boot/Image.lz4-dtb
source build/envsetup.sh
lunch
aosp_walleye-userdebug
time make bootimage
7)刷入手机
新开一个terminal
cd ~/Documents/aosp10
sudo su
source build/envsetup.sh
lunch
aosp_walleye-userdebug
adb reboot bootloader
cd out/target/product/walleye/
fastboot flash boot boot.img
fastboot reboot
成功刷入手机
本文涉及到的知识主要和Android架构中的linux内核层相关
参考
安全-看雪论坛-安全社区|安全招聘|bbs.pediy.com">[原创]编译内核(Pixel 2)-Android安全-看雪论坛-安全社区|安全招聘|bbs.pediy.com
安全-看雪论坛-安全社区|安全招聘|bbs.pediy.com">[原创]实操篇- pixel 2 刷8.0.0/8.1.0 AOSP +4.4 Kernel (重点解决刷完触屏失灵问题)-Android安全-看雪论坛-安全社区|安全招聘|bbs.pediy.com
更多推荐