Android (AAOS) 13 编译中间产物(Wifi Jar)

Android 13 framework-wifi 编译产物

在 Android 13 (API 33) 及更高版本中,Wi-Fi 框架已完全模块化(Mainline Module)。其源码位于 packages/modules/Wifi,编译产物主要分布在 Soong 中间目录、APEX 软件包和系统镜像中。

1. 编译产物核心路径总览

产物类别 物理路径 (相对于 out/ 目录) 主要用途
Soong 中间产物 soong/.intermediates/packages/modules/Wifi/framework/framework-wifi/ 包含编译过程中的 .class.dex 及未签名的 JAR。
模块 SDK 产物 soong/.intermediates/packages/modules/Wifi/framework/framework-wifi-module-sdk/ 供其他模块依赖的存根 (Stub) 库。
Target 预置产物 target/product/[device]/obj/JAVA_LIBRARIES/framework-wifi_intermediates/ 链接后的目标文件,用于最终镜像合成。
APEX 镜像文件 target/product/[device]/system/apex/com.android.wifi.apex Wi-Fi 模块的最终发布格式(压缩包)。

2. 详细产物结构解析

A. Soong 编译中间层 (Intermediates)

当你执行 m framework-wifi 时,这是最关键的目录:

out/soong/.intermediates/packages/modules/Wifi/framework/framework-wifi/android_common/

  1. javac/ :

    • framework-wifi.jar: 包含标准 Java 字节码 (.class 文件)。
    • 用于静态扫描或简单的代码逻辑分析。
  2. dex/ :

    • framework-wifi.jar: 包含经过 D8 转换后的 Dalvik 字节码 (classes.dex)。
    • 注意:这是真正运行在 Android 虚拟机上的代码格式。
  3. combined/ :

    • framework-wifi.jar: 整合后的 JAR 包,通常包含资源和代码,用于最终链接。

B. APEX 模块内路径

由于 Wi-Fi 是一个 Mainline 模块,它最终被封装在 com.android.wifi.apex 中。在设备运行或镜像挂载后,其路径如下:

  • 运行时路径 : /apex/com.android.wifi/javalib/framework-wifi.jar
  • 镜像构建路径 : out/target/product/[product]/system/apex/com.android.wifi/javalib/framework-wifi.jar

3. 关键文件作用说明

  • framework-wifi.jar: Wi-Fi 框架的核心实现。

  • framework-wifi.res.jar: (如果存在) 包含 Wi-Fi 相关的资源文件(如定义的 Overlay 属性)。

  • API 签名文件:

    • 位于 prebuilts/sdk/current/public/api/framework-wifi.txt
    • 如果你修改了 framework-wifipublicsystem 接口,编译会报错,提示你运行 m update-api 更新此处的文件。

4. 常用调试操作

如何快速查找刚编译出的 JAR 包?

如果你不确定具体目录名(有时会有变动),可以在根目录执行:

Bash

arduino 复制代码
find out/soong/.intermediates/packages/modules/Wifi -name "framework-wifi.jar"

如何确认我的改动已进入 DEX?

你可以使用 Android SDK 自带的 dexdump 工具查看编译产物:

Bash

bash 复制代码
dexdump -d out/soong/.intermediates/packages/modules/Wifi/framework/framework-wifi/android_common/dex/framework-wifi.jar | grep "你的类名或方法名"

5. 编译小贴士 (Tips)

  • 全量与模块编译 :使用 m framework-wifi 只会编译该库,但不会重新打包 APEX。若需更新镜像,建议执行 m com.android.wifi
  • Symbols :如果你在进行本地调试或需要符号表,请关注 out/target/product/[device]/symbols/apex/com.android.wifi/... 路径下的文件。

适用版本: Android 13 (Tiramisu) / AAOS 13

相关推荐
weixin_403810131 天前
AI智能体写安卓自动化脚本教程:Cursor/Trae+CLI 实战,自然语言生成代码
android·人工智能·自动化·跨境电商·安卓自动化脚本·多账户运营
呆呆小孩1 天前
零基础学 MySQL(上):从建库建表到增删改查,一篇搭好 SQL 基础
android·sql·mysql
catchadmin1 天前
NativePHP v4 让 Blade 构建原生 iOS 与 Android 界面
android·ios·ai·php
FfHUCisI1 天前
Golang 数据库连接池深度调优
android·数据库·golang
古法安卓1 天前
Android-epoll原理详解
android·java·android studio
字节暗面1 天前
四款 APP 加固强度测评:让 AI 拆了四个包,结果有点出乎意料
android·逆向工程·加固
网安蟹佬霸1 天前
蓝队防御实战:SIEM与SOAR构建安全运营中心(万字详解+实战配置)
android·安全·web安全·网络安全·网安
敢敢のwings1 天前
世界模型与FlashWorld:从“在梦中学习“到秒级3D场景生成
android·学习·3d
Dovis(誓平步青云)1 天前
牛奶不能减成负数:冰箱库存的筛选、去重与不可变更新
android·java·开发语言
Awna1 天前
MySQL 存储空间与索引运维实战:从空间排查到在线扩容
android·运维·mysql