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

相关推荐
Android小码家2 分钟前
Xposed之雷电5+Android 7.1.2 Xposed 89(古早安装)
android·xposed
ooseabiscuit8 分钟前
Laravel2.x核心特性全解析
android
UXbot10 分钟前
AI一次生成iOS和Android双端原型功能详解
android·前端·ios·kotlin·交互·swift
YF021114 分钟前
基于 CRNN 与 ML Kit 的高性能移动端扫描技术方案
android·aigc
LuDvei18 分钟前
Ubuntu 20.04 安装 Android Studio 详细指南
linux·ubuntu·android studio
耿公子和编程23 分钟前
Android 指纹浏览器开发教程一:先把整体架构拆清楚
android·架构
问心无愧051333 分钟前
ctf show web入门48
android·前端·笔记
JohnnyDeng9442 分钟前
Android 渲染机制深度解析:Choreographer 与 VSYNC 如何驱动每一帧
android
赏金术士44 分钟前
Kotlin 习题集 · 基础篇
android·开发语言·kotlin
问心无愧05131 小时前
CTF show web入门45
android·前端·笔记