• WSL2编译安卓11源码,,刷入pixel设备,并使用asfp查看源码


    WSL2编译安卓11源码,,刷入pixel设备

    aosp编译完成后,刷入手机其实非常简单,但是使用wsl有一个问题,就是Android设备没法直接链接到wsl进行adb调试。下面我会介绍我刷机碰到一些问题,以及google官方发布的asfp版本来进行源码查看。

    源码下载

    源码使用repo的清华源进行同步,这个可以看这里。推荐使用初始包进行同步,60G大小的zip,解压后再进行sync会快很多。
    参考链接: 清华源
    本博客使用的版本事Android-11.0.0_R1,也就是init的使用如下命令。

    repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-11.0.0_r1
    
    • 1

    驱动下载

    源码下载完成后需要下载对应手机的驱动,
    驱动下载: 驱动
    本博客使用的pixel3的手机,使用的是Android11下面的第一个驱动,下载的两个文件后放到源码根目录,执行解压即可。

    ./extract-qcom-blueline.sh(自行修改为手机对应驱动编译脚本文件)
    ./extract-google_devices-blueline.sh(自行修改为手机对应驱动编译脚本文件)
    
    • 1
    • 2

    编译

    编译这里看这一篇文章,之前编译的Android8,大同小异,注意lunch的时候要选择对应的版本。
    手机版本号查询
    Wsl编译安卓8.1

    刷机

    刷机前手机需要解锁oem和BL,解锁参考这里
    解锁
    解锁后我们进入fastboot界面,连接手机。由于wsl没法直接连接安卓手机进行调试,所以现在我们先配置环境变量。ANDROID_PRODUCT_OUT,这个变量在源码目录的out下面对应的产品目录,编译的镜像都在里头。
    请添加图片描述
    最后执行下面命令即可

    fastboot flashall -w 
    
    • 1

    少许等等,刷机即可成功。
    在这里插入图片描述

    源码导入Android Studio for platform

    之前我们都是Android Studio来进行java代码导入查看,java代码跳转基本正常,且可以断点。但是native代码在AS中完全无法查看,然后就使用了vscode等勉强能用的辅助工具,现在终于退出native代码查看的神兵利器了。
    asfp下载与使用
    使用起来是很简单的,但是只有Linux可以使用,然后我这边实测,如果要同步成功需要Android 11以及以上版本,Android10按照官方视频去导入,无法正确链接跳转native代码,缺少了一个go文件,但是我目前也不清楚要如何解决。
    记得把UI调成经典模式,导入你自己AS的配置,这样基本无缝使用。
    在这里插入图片描述
    可以看到c代码完全无爆红,跳转丝滑。

    ADB调试

    WSL2使用官方的usb方案也无法链接Android手机,只要开启usb调试就无法连接上了。目前如果要adb调试的话,只能用adb connect的形式。这里也给出方法把。
    连接上手机
    windows下执行

    adb tcpip 5555
    
    • 1

    wsl2下执行

    adb connect 192.*.*.*:5555
    
    • 1

    相当于用无线adb的形式进行调试了,不过问题也不大。略微麻烦几步,总体wsl2使用还是不错的目前。

  • 相关阅读:
    Ubuntu22.04 搭建 OpenHarmony 命令行开发环境
    NFV概述
    DBeaver 连接Hive-3.1.2
    为什么手机和电视ip地址不一样
    【顺序表和链表】
    pb:常用函数和语句清单
    七月集训(21)
    【MySQL】MySQL索引的定义、分类、Explain、索引失效和优化
    pytorch中常用损失函数总结
    Shiro高级及SaaS-HRM的认证授权
  • 原文地址:https://blog.csdn.net/a568478312/article/details/133323486