2. 编译安卓内核(pixel 2,Android 10)

本文是在上文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内核层相关

参考

[原创]编译内核(Pixel 2)-Android安全-看雪论坛-安全社区|安全招聘|bbs.pediy.com

[原创]实操篇- pixel 2 刷8.0.0/8.1.0 AOSP +4.4 Kernel (重点解决刷完触屏失灵问题)-Android安全-看雪论坛-安全社区|安全招聘|bbs.pediy.com

《来自高纬的对抗:定制安卓内核过反调试》

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 可以通过以下步骤在Ubuntu22.04上编译内核: 1. 首先,下载Linux内核源代码。可以从https://www.kernel.org/ 上下载最新版本的内核源代码。 2. 安装所需的编译工具。在终端中运行以下命令: ``` sudo apt-get update sudo apt-get install build-essential libncurses-dev bison flex libssl-dev libelf-dev ``` 3. 解压内核源代码,进入源代码目录。在终端中运行以下命令: ``` tar xvf linux-x.y.z.tar.gz cd linux-x.y.z ``` 其中,"x.y.z"是内核版本号。 4. 配置内核。可以使用默认配置或自定义配置。运行以下命令启动配置: ``` make menuconfig ``` 在此过程中,您可以选择需要的内核选项。完成后保存配置并退出。 5. 编译内核。在终端中运行以下命令: ``` make -j $(nproc) ``` "nproc"将使用所有可用的CPU核心进行编译编译时间可能会很长。 6. 安装内核。在终端中运行以下命令: ``` sudo make modules_install install ``` 此命令将安装内核及其模块。 7. 重启计算机以使用新内核。在终端中运行以下命令: ``` sudo reboot ``` 注意:编译和安装内核是一个高级任务,需要一定的Linux和编译知识。请确保您了解您正在进行的操作,并备份您的数据。 ### 回答2: Ubuntu 22.04 是一个基于Linux内核的操作系统,要编译内核,需要进行以下步骤: 1. 准备编译环境:安装必要的软件包和工具,包括gcc、make、libncurses-dev和git等。通过终端输入命令`sudo apt-get install build-essential libncurses-dev bison flex libssl-dev libelf-dev`来安装这些软件包。 2. 下载内核源代码:从官方网站或镜像网站上下载最新的Ubuntu内核源代码。通过终端进入下载目录,输入命令`git clone git://kernel.ubuntu.com/ubuntu/ubuntu-<version>.git`来下载源代码(`<version>`是对应的Ubuntu版本号)。 3. 配置内核:进入源代码目录,通过命令`make menuconfig`来打开配置界面。在这里可以根据需要进行内核功能的添加、删除或修改,然后保存退出。 4. 编译内核:通过命令`make -jX`进行内核编译,其中X表示并行编译的线程数,可以根据机器的配置来设定。编译时间可能较长,请耐心等待。 5. 安装内核编译完成后,可以通过命令`sudo make modules_install install`来安装编译好的内核到系统中。然后重启计算机,选择新编译内核启动。 6. 验证内核:启动后,在终端输入命令`uname -sr`来查看当前正在使用的内核版本号,确认是否成功安装了自己编译内核编译内核需要一定的技术和时间投入,如果没有特殊需求或专业知识,建议使用官方发布的Ubuntu内核,以确保系统的稳定性和兼容性。 ### 回答3: 编译Ubuntu 22.04内核需要以下步骤: 1. 下载源代码:首先,从Ubuntu的官方网站或GitHub上下载Ubuntu 22.04的内核源代码。可以使用wget命令或者浏览器下载源代码压缩包。 2. 解压源代码:将下载的源代码压缩包解压到一个指定的目录下,可以使用tar命令解压压缩包。 3. 安装必要的编译工具:在编译内核之前,需要先安装一些必要的工具和依赖项。可以使用以下命令安装: ``` sudo apt update sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev ``` 4. 配置内核:进入源代码目录,使用make命令生成Makefile,并使用make menuconfig命令来配置内核。在配置界面中,根据需求选择所需的内核选项和驱动程序,并保存配置。 5. 编译内核:使用make命令开始编译内核。这个过程可能需要一些时间,取决于计算机的性能和编译选项。 6. 安装编译好的内核编译完成后,使用sudo make install命令将编译好的内核安装到系统中。 7. 更新GRUB引导:更新GRUB引导以添加新安装的内核。使用sudo update-grub命令更新引导。 8. 重启系统:完成以上步骤后,可以重新启动计算机并选择新编译内核进行启动。 请注意,在编译内核之前,确保了解正在进行的操作,备份重要文件,并且具备一定的Linux系统和编译知识。编译内核可能会对系统产生一些影响,如果遇到任何问题,可以通过恢复备份或者重新安装系统来解决。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值