android内核编译

type
status
date
slug
tags
summary
category
icon
password
pixel 6是一个比较特殊的手机,因为刷入GKI内核需要额外需要从出厂镜像提取供应商镜像。(pixe 7不需要)。
选择根据官网介绍 pixel6 支持GKI内核版本。
本文使用android14-gs-pixel-6.1 作为内核版本(刚好这个手机本来就android 14免得降级)
下载出厂镜像
我们根据文档需要先下载AP1A.240505.004 (11583682)这个版本出厂完整镜像。https://developers.google.com/android/images
下载后解压后如下文件树。你可以注意到里面有一个flash-all.sh。这个脚本用于刷一个完整出厂镜像到手机上。
notion image
手机重启bootloader后执行./flash-all.sh,把底包刷一下
 
下载分支源码
 
  1. 解压缩 vendor_boot.img
      • 下述命令以 Pixel 6 Pro AP1A.240505.004 为例。将 zip 文件名替换为所下载出厂映像的文件名。
  1. 解压缩 vendor_boot.img 以获取供应商 ramdisk(前面git拉的源码里面有tools)
    1. 将解压缩的 vendor-ramdisk-by-name/ramdisk_ 文件复制到 Pixel 内核仓库。
      1. 设备
        DEVICE_RAMDISK_PATH
        Pixel 6 (oriole)Pixel 6 Pro (raven)
        prebuilts/boot-artifacts/ramdisks/vendor_ramdisk-oriole.img
        Pixel 6a (bluejay)
        private/devices/google/bluejay/vendor_ramdisk-bluejay.img
     
     
    修改源码,找到exit_group的syscall实现给他拿下:
    notion image
    对于搭载 android14 及更高版本内核的 Pixel 6 和 Pixel 6 Pro,请运行 Kleaf 构建命令:
    正准备大干一场,bl版本又太高,只能刷回来

    使用 flash.android.com 刷写设备

    注意:您需要先解锁引导加载程序,然后才能刷写设备。请参阅锁定和解锁引导加载程序部分。
    1. 前往 flash.android.com
    1. 根据支持的 Android 平台和内核组合选择 Android build。
    1. 选择以下选项:
        • 擦除设备
        • 强制刷写所有分区
        • 停用验证
    1. 按 Install build(安装 build)按钮刷写设备。
    notion image
     
     

    刷入内核

    观察前面printk的内容:
    上一篇
    ida环境配置总集篇
    下一篇
    pixel环境记录
    Loading...
    文章列表
    Hi~, I ‘m moyao
    reverse
    pwn
    pentest
    iot
    android
    others
    ctf
    iOS