Xi Wu

133 papers A* 4A 1B 4C 10Misc 3Journal 63Unranked 48
YearRankTypeTitle / Venue / Authors
2026 J jnl
Int. J. Mach. Learn. Cybern.
Chengang Liu, Ying Chen, Xi Wu
2026 J jnl
Eng. Appl. Artif. Intell.
Tengfang Dong, Jiangpeng Shu, Hongchuan Yu, Han Yang, Yuehai Tu, Jingyu Fang, Xi Wu, Shengliang Xu
2026 J jnl
IEEE Trans. Biomed. Eng.
Xiangcun Wang, Xi Wu, Yuan Li, Xia Wu, Jiacai Zhang
2025 J jnl
BMC Medical Imaging
Weiling He, Feng Huang, Xi Wu, An Xie, Wenjie Sun, Peng Liu, Rui Hu
2025 J jnl
Graph. Model.
Hai Yuan, Xia Yuan, Yanli Liu, Guanyu Xing, Jing Hu, Xi Wu, Zijun Zhou
2025 J jnl
Int. J. Circuit Theory Appl.
Shuming Deng, Changsong Cai, Junhua Wang, Yufeng Jiang, Xian Zhang, Leke Wan, Xi Wu, Yinfeng Du, Ying-Guo Zhou
2025 J jnl
IEEE Trans. Comput. Biol. Bioinform.
Chengang Liu, Ying Chen, Xi Wu
2025 Misc conf
ICASSP
Tingyu Zhao, Bo Peng, Zhenguang Zhang, Daipeng Yang, Xi Wu
2025 J jnl
Neurocomputing
Zhan ao Huang, Wei Xiao, Zhipeng Yang, Xiaojie Li, Xi Wu
2025 conf
ICMEW
Xi Shi, Lingli Chen, Peng Wei, Xi Wu, Tian Jiang, Yonggang Luo, Lecheng Xie
2025 J jnl
SN Comput. Sci.
Kunxiao Liu, Shijin Zhang, Yuqiang Wu, Xi Wu, Lyulog He
2025 J jnl
CoRR
Chenzui Li, Xi Wu, Junjia Liu, Tao Teng, Yiming Chen, Sylvain Calinon, Darwin G. Caldwell, Fei Chen
2025 A conf
IROS
Chenzui Li, Yiming Chen, Xi Wu, Giacinto Barresi, Fei Chen
2025 J jnl
CoRR
Chenzui Li, Yiming Chen, Xi Wu, Giacinto Barresi, Fei Chen
2025 J jnl
CoRR
Chenzui Li, Yiming Chen, Xi Wu, Tao Teng, Sylvain Calinon, Darwin G. Caldwell, Fei Chen
2025 J jnl
Int. J. Circuit Theory Appl.
Xi Wu, Changsong Cai, Jianwei Shao, Junhua Wang, Leke Wan, Yinfeng Du, Qiye Zhang, Yufeng Jiang
2025 B conf
IJCNN
Dufu Liu, Peng Zheng, Hui Deng, Xia Yuan, Xi Wu, Jing Hu
2025 J jnl
CoRR
Xi Wu, Chenzui Li, Kehan Zou, Ning Xi, Fei Chen
2025 J jnl
CoRR
Xia Yuan, Hai Yuan, Wenyi Ge, Ying Fu, Xi Wu, Guanyu Xing
2025 J jnl
J. Supercomput.
Junkun Du, Mingqing Wang, Xin Wang, Zhipeng Yang, Xiaojie Li, Xi Wu
2025 A* conf
IJCAI
Deyin Zhuang, Jian Dai, Xingfeng Li, Xi Wu, Yuan Sun, Zhenwen Ren
2025 J jnl
J. Field Robotics
Tao Teng, Xi Wu, Zhihao Li, Darwin G. Caldwell, Fei Chen
2025 J jnl
IEEE Trans. Comput. Biol. Bioinform.
Jingli Wu, Xiaopeng Wei, Gaoshi Li, Jiafei Liu, Chang He, Xi Wu
2024 conf
i-CREATe
Hongyu Li, Qianqian Sun, Xi Wu, Yan Zhan, Yue Wang
2024 J jnl
Commun. Stat. Simul. Comput.
Xi Wu, Weiyan Mu, Shifeng Xiong, Xinmin Li
2024 J jnl
Int. J. Circuit Theory Appl.
Qiye Zhang, Changsong Cai, Yanpu Zhao, Junhua Wang, Fan Zhang, Yang Luo, Xi Wu
2024 conf
QRS Companion
Changjun Li, Jingyu Yang, Xi Wu, Guangwen Yang
2024 conf
CVPR Workshops
Zhizhao Duan, Hao Cheng, Duo Xu, Xi Wu, Xiangxie Zhang, Xi Ye, Zhen Xie
2024 J jnl
CoRR
Zhizhao Duan, Hao Cheng, Duo Xu, Xi Wu, Xiangxie Zhang, Xi Ye, Zhen Xie
2024 J jnl
Comput. Aided Geom. Des.
Bingwei Zhang, Xi Wu, Jin-San Cheng, Kexin Ding
2024 J jnl
CoRR
Xi Shi, Lingli Chen, Peng Wei, Xi Wu, Tian Jiang, Yonggang Luo, Lecheng Xie
2024 conf
QRS Companion
Kairui Wang, Yawen Wang, Xi Wu, Shoubin Li, Qing Wang
2024 J jnl
CoRR
Jing Hu, Honghu Zhang, Peng Zheng, Jialin Mu, Xiaomeng Huang, Xi Wu
2024 conf
ICIRA (3)
Tao Qin, Hao Chu, Jia Wang, Peng Ren, Min Fu, Xi Wu
2024 A* conf
ACM Multimedia
Xi Wu, Chuang Huang, Xinliu Liu, Fei Zhou, Zhenwen Ren
2024 conf
ROBIO
Xi Wu, Chenzui Li, Kehan Zou, Ning Xi, Fei Chen
2024 J jnl
Sensors
Jiaqi Zheng, Xi Wu, Xiaojie Li, Jing Peng
2024 J jnl
IEEE CAA J. Autom. Sinica
Xi Wu, Zhenwen Ren, F. Richard Yu
2024 J jnl
IEEE Trans. Consumer Electron.
Xi Wu, Hanchen Wang, Shuxiao Li, Jian Dai, Zhenwen Ren
2024 B conf
DCC
Kaiqun Wu, Xiaoling Jiang, Rui Yu, Yonggang Luo, Tian Jiang, Xi Wu, Peng Wei
2024 J jnl
CoRR
Kaiqun Wu, Xiaoling Jiang, Rui Yu, Yonggang Luo, Tian Jiang, Xi Wu, Peng Wei
2024 C conf
CW
Xuan Wang, Zhigeng Pan, Mithun Mukherjee, Jielin Jiang, Xi Wu, Zhibin Liu
2024 conf
ICVISP
Chenchen He, Xia Yuan, Yi Zheng, Xi Wu, Jing Hu, Ting Wang
2024 J jnl
Proc. VLDB Endow.
Jeff Shute, Shannon Bales, Matthew Brown, Jean-Daniel Browne, Brandon Dolphin, Romit Kudtarkar, Andrey Litvinov, Jingchi Ma, John D. Morcos, Michael Shen, David Wilhite, Xi Wu, Lulan Yu
2024 conf
PRCV (2)
Jing Hu, Peng Zheng, Honghu Zhang, Xi Wu
2024 A* conf
ICRA
Chenzui Li, Xi Wu, Tao Teng, Sylvain Calinon, Fei Chen
2024 conf
ECCV (20)
Renjie Li, Zhiwen Fan, Bohua Wang, Peihao Wang, Zhangyang Wang, Xi Wu
2023 J jnl
Symmetry
Jingxian Zhou, Haibin Cui, Xina Li, Wenjin Yang, Xi Wu
2023 J jnl
IET Image Process.
Yuxiang Cai, Yuanlong Yu, Weijie Jiang, Rong Chen, Weitao Zheng, Xi Wu, Renjie Su
2023 J jnl
Quantum Inf. Process.
Xi Wu, Qingyi Li, Zhiqiang Li, Donghan Yang, Hui Yang, Wenjie Pan, Marek A. Perkowski, Xiaoyu Song
2023 J jnl
Cogn. Process.
Xueying Sai, Xi Wu, Xingjia Li, Lei Zhu
2023 A* conf
ICRA
Xi Wu, Gangtie Zheng
2023 J jnl
CoRR
Cheng Zhu, Jiayi Zhu, Lijuan Zhang, Xi Wu, Shuqi Yang, Ping Liang, Honghan Chen, Ying Tan
2023 conf
ISAIMS
Yuxin Zhang, Xi Wu
2023 J jnl
CoRR
Tingyu Zhao, Bo Peng, Yuan Sun, Daipeng Yang, Zhenguang Zhang, Xi Wu
2023 J jnl
Cogn. Process.
Xueying Sai, Xi Wu, Xingjia Li, Lei Zhu
2022 J jnl
CoRR
Yi Song, Xiaoyuan Xie, Quanming Liu, Xihao Zhang, Xi Wu
2022 conf
ChineseCSCW (2)
Yiming Tang, Lei Xi, Wenbin Wu, Xi Wu, Shujie Li, Rui Chen
2022 J jnl
J. Syst. Softw.
Yi Song, Xiaoyuan Xie, Quanming Liu, Xihao Zhang, Xi Wu
2022 conf
ICCT
Xi Wu, Tianhui Fu, Longfei Wang, Yao Kong, Xuebo Zhang, Menglei Xiu
2022 conf
CVPR Workshops
Hui Yao, Zhizhao Duan, Zhen Xie, Jingbo Chen, Xi Wu, Duo Xu, Yutao Gao
2022 J jnl
Int. J. Medical Informatics
Tingting Jiang, Qian Guo, Xi Wu, Yu Chi
2022 J jnl
J. Electronic Imaging
Chuan Tian, Jing Hu, Xi Wu, Wu Wen
2022 J jnl
Sci. Program.
Xi Wu, Shuying Qiao, Qiongqiong Tan
2022 J jnl
Int. J. Sens. Networks
Yongxuan Sun, Bowen Zhang, Zhizhong Ding, Momiao Zhou, Mingxi Geng, Xi Wu, Jie Li, Wei Sun
2022 J jnl
Comput. Methods Programs Biomed.
Xi Wu, Yilin Chen, Xinyu Li, Xueyu Liu, Yifei Liu, Yongfei Wu, Ming Li, Xiaoshuang Zhou, Chen Wang
2022 J jnl
Mob. Networks Appl.
Wenzao Li, Jiali Chen, Yiquan Li, Zhan Wen, Jing Peng, Xi Wu
2022 conf
ICAIS (2)
Changcheng Xiao, Xi Wu
2022 J jnl
IEEE Geosci. Remote. Sens. Lett.
Xi Wu, Zhenwei Shi
2022 conf
HCI (22)
Xi Wu, Zhang Zhang
2022 J jnl
IEEE Trans. Instrum. Meas.
Hao Liang, Xi Wu, Jian Xue, Ke Lu
2022 J jnl
Remote. Sens.
Bing He, Xi Wu, Kang Liu, Yuanzhi Yao, Wenjiang Chen, Wei Zhao
2021 J jnl
Intell. Autom. Soft Comput.
Mengyuan Liao, Jing Duan, Rong Zhang, Xu Zhou, Xi Wu, Xin Wang, Jinrong Hu
2021 J jnl
Intell. Autom. Soft Comput.
Jing Peng, Chaoyang Xia, Yuanwei Xu, Xiaojie Li, Xi Wu, Xiao Han, Xinlai Chen, Yucheng Chen, Zhe Cui
2021 conf
DASC/PiCom/CBDCom/CyberSciTech
Nan Yao, Yuxi Zhao, Xi Wu, Ziquan Liu, Jianhua Qin
2021 conf
ICCSIP
Yuxiang Cai, Xi Wu, Zhiyong Huang, Yuanlong Yu, Weijie Jiang, Weitao Zheng, Renjie Su
2021 conf
DASC/PiCom/CBDCom/CyberSciTech
Ziquan Liu, Nan Yao, Xi Wu, Jinggang Yang, Hai Xue
2021 C conf
ICIS
Xi Wu, Min-Seok Pang
2021 J jnl
Wirel. Commun. Mob. Comput.
Wenzao Li, Lingling Yang, Zhan Wen, Jiali Chen, Xi Wu
2021 J jnl
Int. J. Medical Informatics
Tingting Jiang, Xi Wu, Ye Chen, Ying Wang
2021 J jnl
Comput. Electron. Agric.
Shoujia Ren, Bin Guo, Xi Wu, Liguo Zhang, Min Ji, Juan Wang
2021 conf
RCAR
Xi Wu, Panfeng Huang, Zhengxiong Liu, Zhiqiang Ma
2020 conf
ICAIS (1)
Zhiqiang Li, Jiajia Hu, Xi Wu, Juan Dai, Wei Zhang, Donghan Yang
2020 conf
CACRE
Haoran Wu, Yanan Zhang, Xi Wu, Fan Yang
2020 J jnl
Symmetry
Xi Wu, Mikhail Zubkov
2020 Misc conf
ICASSP
Xi Wu, Zhen Xie, Yutao Gao, Yu Xiao
2020 C conf
ICIS
Xi Wu, Subodha Kumar, Min-Seok Pang
2020 conf
iConference
Tingting Jiang, Xi Wu, Ying Wang, Ye Chen
2020 conf
ECCV Workshops (4)
Heng Fan, Dawei Du, Longyin Wen, Pengfei Zhu, Qinghua Hu, Haibin Ling, Mubarak Shah, Junwen Pan, Arne Schumann, Bin Dong, Daniel Stadler, Duo Xu, Filiz Bunyak, Guna Seetharaman, Guizhong Liu, V. Haritha, Hrishikesh P. S, Jie Han, Kannappan Palaniappan, Kaojin Zhu, Lars Wilko Sommer, Libo Zhang, Linu Shine, Min Yao, Noor M. Al-Shakarji, Shengwen Li, Ting Sun, Wang Sai, Wentao Yu, Xi Wu, Xiaopeng Hong, Xing Wei, Xingjie Zhao, Yanyun Zhao, Yihong Gong, Yuehan Yao, Yuhang He, Zhaoze Zhao, Zhen Xie, Zheng Yang, Zhenyu Xu, Zhipeng Luo, Zhizhao Duan
2019 B conf
ICPADS
Wenzao Li, Jianwei Liu, Xi Wu, Fangxin Wang, Jiangchuan Liu
2019 conf
CSIA
Chunguang Chang, Xi Wu
2019 J jnl
Neural Networks
Xi Wu, Yixuan Wang, Huajin Tang, Rui Yan
2019 conf
CSIA
Chunguang Chang, Xi Wu
2019 conf
ISNN (2)
Zeyang Song, Xi Wu, Mengwen Yuan, Huajin Tang
2019 J jnl
Nucleic Acids Res.
Linchun Shi, Haimei Chen, Mei Jiang, Liqiang Wang, Xi Wu, Linfang Huang, Chang Liu
2019 J jnl
CoRR
Yifei Huang, Matt Shum, Xi Wu, Jason Zezhong Xiao
2019 J jnl
NeuroImage
Xun Yang, Jin Liu, Yajing Meng, Mingrui Xia, Zaixu Cui, Xi Wu, Xinyu Hu, Wei Zhang, Gaolang Gong, Qiyong Gong, John A. Sweeney, Yong He
2019 J jnl
Neural Comput.
Mengwen Yuan, Xi Wu, Rui Yan, Huajin Tang
2019 conf
CSIA
Chunguang Chang, Xi Wu
2019 conf
CSIA
Chunguang Chang, Xi Wu
2019 C conf
IGARSS
Sen Lei, Zhenwei Shi, Xi Wu, Bin Pan, Xia Xu, Hongxun Hao
2019 conf
ROBIO
Li Li, Linyong Shen, Wei Song, Xi Wu, Qinqing Ren
2019 C conf
ICIS
Xi Wu, Min-Seok Pang
2018 conf
IGTA
Hao Chen, Tianyang Shi, Zhenghuan Xia, Dunge Liu, Xi Wu, Zhenwei Shi
2018 conf
GLOBECOM Workshops
Xi Wu, Zhanji Wu
2018 J jnl
ACM SIGCSE Bull.
John Impagliazzo, Ming Zhang, Xi Wu
2018 J jnl
Remote. Sens.
Xi Wu, Zhenwei Shi
2017 conf
CRI
Shiqiang Tao, Ningzhou Zeng, Xi Wu, Wei Zhu, Xiaojin Li, Licong Cui, Guo-Qiang Zhang
2017 J jnl
Ad Hoc Sens. Wirel. Networks
Jiang Liu, Baigen Cai, Jian Wang, Xi Wu
2017 J jnl
Int. J. Adv. Media Commun.
Xi Wu, Wang-jie Sun
2017 C conf
VCIP
Wei Xu, Jin Wang, Qing Zhu, Xi Wu, Yifei Qi
2017 Misc conf
AMIA
Shiqiang Tao, Licong Cui, Xi Wu, Guo-Qiang Zhang
2017 conf
ICIG (3)
Mingyang Li, Ning Zhang, Bin Pan, Shaobiao Xie, Xi Wu, Zhenwei Shi
2017 conf
BIBM
Xi Wu, Steven K. Roggenkamp, Shiqiang Tao, Guo-Qiang Zhang
2017 conf
CSPS
Qiao Xiao, Qinyu Zhang, Boqian Wu, Xiao Han, Xi Wu
2016 B conf
CEC
Xin Yu, Xi Wu
2016 conf
CCTA
Ke Sun, Yan Li, Yiliang Wang, Xi Wu, Yiming Huang
2016 conf
ICYCSEE (1)
Haibin Wu, Qing Xu, Xi Wu, Guanglu Sun, Xiaoyang Yu, Xiaoming Sun
2016 conf
CCBD
Chang Liu, Xi Wu, Yuan Yan Tang, Xi Yu, Weidong Zhao, Li Zhang
2015 conf
IOV
Jiang Liu, Xi Wu, Bai-gen Cai
2014 C conf
CIT
Xi Shen, Shuhui Jiang, Xi Wu, Dayong Liu, Xiaofei Zhang, Jie Zhu
2013 conf
ROBIO
Long Wen, Jinwu Qian, Xiaowu Hu, Linyong Shen, Xi Wu, Changlin Yu
2009 conf
GCC
Jianjun Cui, Baoyin Zhang, Xi Wu, Zhou Huang, Yu Fang, Bin Chen
2009 conf
ICNC (4)
Xi Wu, Wuzhong Bi, Jingyu Zhu, Ling Yang, Mingyuan Xie
2008 conf
GCC
Zhou Huang, Yu Fang, Bin Chen, Xi Wu
2008 conf
IGARSS (2)
Pengfei Wu, Yu Fang, Bin Chen, Xi Wu
2008 conf
FSKD (5)
Dong Wei, Jiawei Ye, Xilong Zhang, Bo Zhang, Xi Wu
2007 conf
CDC
Stephen S.-T. Yau, Xi Wu, Lixing Jia, Amid Rasoulian
2006 J jnl
SIAM J. Control. Optim.
Xi Wu, Stephen S.-T. Yau
2004 C conf
GMP
Liyan Zhang, Shenglan Liu, Xi Wu, Laishui Zhou
2002 C conf
ACC
Xi Wu, Stephen S.-T. Yau
2001 conf
CDC
Xi Wu, Stephen S.-T. Yau
2000 C conf
ACC
Xi Wu, Stephen S.-T. Yau
APK_FEATURES_PDD.md
← Index APK_FEATURES_PDD.md markdown
# APK Extractor — Product Design Document

**Author:** Engineering Team
**Date:** 2026-02-21
**Status:** Draft
**Target:** redb ingestor pipeline

---

## 1. Overview

This document describes the design for adding APK (Android Package) static analysis to the redb ingestor pipeline. The APK extractor will follow the same architecture used by the existing PE, ELF, and Mach-O extractors: a format-specific base class (`APKExtractor`) with specialized sub-extractors for each analysis dimension.

### 1.1 Goals

- Extract comprehensive static metadata from Android APK files, comparable in depth to our PE/ELF/Mach-O analysis
- Follow the established extractor architecture (base class, sub-extractors, dataclasses, dual-export to Elasticsearch and ClickHouse)
- Enable clustering, hunting, and pivoting on APK-specific fields (permissions, certificates, DEX API usage, package names)
- Integrate with the existing format-agnostic extractors (BasicProperties, Hashes, DIE, CAPA, YARA, Strings, IOC)

### 1.2 Non-Goals

- Dynamic analysis / sandbox execution (out of scope)
- Full DEX decompilation to Java/smali (out of scope; may be a future extension)
- Deep analysis of embedded native `.so` libraries (inventory only; full ELF pipeline deferred)
- Recursive ingestion of APKs embedded inside other APKs (flag only; full recursive ingestion deferred)

---

## 2. Background

### 2.1 What Is an APK

An APK is a ZIP archive containing an Android application. Its internal structure:

| Path | Contents |
|------|----------|
| `AndroidManifest.xml` | Binary Android XML — package name, permissions, components, SDK versions, intent filters |
| `classes.dex` (+ `classes2.dex`, ...) | Dalvik bytecode — compiled Java/Kotlin code |
| `resources.arsc` | Compiled resource table (strings, dimensions, styles) |
| `res/` | Layouts, drawables, raw resources |
| `lib/<abi>/` | Native shared libraries (`.so`) per CPU architecture |
| `META-INF/` | JAR signing (v1 scheme), CERT.RSA/DSA certificates |
| `assets/` | Arbitrary files bundled by the developer |

### 2.2 Current State

The ingestor already detects APK files via Magika (`ingestor.py:1668`), but the handler is a no-op — it logs `"APK file detected"` and returns without running any extractors. All infrastructure for registration, dispatch, and export is already in place.

### 2.3 Industry Reference

This design was informed by analysis of existing platforms:

- **VirusTotal** — Extracts: hashes (MD5, SHA-1, SHA-256, SSDEEP, TLSH, Permhash), Android metadata (package name, SDK versions, main activity), certificate attributes, permissions with danger flags, full component lists (activities, services, receivers, providers), intent filters, and capability indicators ("performs reflection calls", "makes use of telephony related APIs")
- **Koodous** (https://docs.koodous.com/) — Powered by Androguard for static analysis. Extracts: package name, app name, activities, services, receivers, providers, permissions, intent filters, certificate (SHA-1, issuer, subject), hardcoded URLs, SDK versions. Supports YARA rules with an Androguard module for matching on all these fields
- **APKiD** (https://github.com/rednaga/APKiD) — "PEiD for Android". Signature-based identification of compilers, packers, obfuscators, protectors, anti-VM/debug/root techniques. Uses YARA rules on DEX/APK/ELF. Available under GPL or commercial perpetual license (https://github.com/rednaga/APKiD/blob/master/LICENSE.COMMERCIAL)
- **APKDetect** (https://www.apkdetect.com/) — Malware family identification (30+ families), configuration extraction, loader recognition, shared code detection

---

## 3. Architecture

### 3.1 Existing Extractor Pattern

All extractors in redb follow this hierarchy:

```
Extractor (abstract base — redb/extractors/extractor.py)
├── PEExtractor (redb/extractors/pe_extractor.py)
│   ├── PEFeaturesExtractor
│   ├── PEImportExtractor
│   ├── PESectionExtractor
│   └── ...
├── ELFExtractor (redb/extractors/elf_extractor.py)
│   ├── ELFFeaturesExtractor
│   ├── ELFImportExtractor
│   └── ...
├── MachOExtractor (redb/extractors/macho_extractor.py)
│   ├── MachOFeaturesExtractor
│   ├── MachOImportExtractor
│   └── ...
└── [Format-agnostic extractors]
    ├── BasicPropertiesExtractor
    ├── HashExtractor
    ├── DIEExtractor
    ├── CAPAExtractor
    ├── YaraExtractor
    └── StringsExtractor
```

Each concrete extractor implements:
- `tag()` — returns a `Tag` enum value identifying the extraction category
- `extract()` — performs the analysis, returns a dataclass instance or `None`
- `prepare_export_data(exporter_type)` — formats data for Elasticsearch or ClickHouse
- `get_clickhouse_table()` — returns the target ClickHouse table name

The format-specific base class (e.g., `PEExtractor`) handles:
- Accepting a pre-parsed object (e.g., `pe=`) to avoid redundant parsing
- Providing shared helper methods used by multiple sub-extractors
- Passing `precomputed_hashes` to the parent `Extractor.__init__()` when available

The ingestor dispatches extractors by filetype detected via Magika, running format-agnostic extractors (BasicProperties, Hashes, DIE, CAPA, YARA) followed by the format-specific list.

### 3.2 APK Extractor Architecture

```
Extractor
└── APKExtractor (NEW — redb/extractors/apk_extractor.py)
    ├── APKFeaturesExtractor      (redb/extractors/apk_extractors/apk_features.py)
    ├── APKManifestExtractor      (redb/extractors/apk_extractors/apk_manifest.py)
    ├── APKPermissionsExtractor   (redb/extractors/apk_extractors/apk_permissions.py)
    ├── APKSignatureExtractor     (redb/extractors/apk_extractors/apk_signature.py)
    ├── APKDexExtractor           (redb/extractors/apk_extractors/apk_dex.py)
    ├── APKResourceExtractor      (redb/extractors/apk_extractors/apk_resources.py)
    ├── APKNativeLibExtractor     (redb/extractors/apk_extractors/apk_native_libs.py)
    └── APKInconsistencyTestsExtractor (redb/extractors/apk_extractors/apk_inconsistency_tests.py)
```

The `APKExtractor` base class will:
- Accept an optional pre-parsed `androguard.core.apk.APK` object (`apk=`) to share across sub-extractors
- Parse the APK once in `__init__` if not provided
- Provide shared helpers: `_get_manifest()`, `_get_certificates()`, `_list_files()`, `_is_valid_apk()`

### 3.3 Ingestor Integration

In `ingestor.py:process_binary_file()`, the `elif filetype == "apk"` branch will be expanded to:

1. Parse the APK once using Androguard (`APK(filepath)`)
2. Run format-agnostic extractors (BasicProperties, Hashes, DIE, YARA) — same as PE/ELF/Mach-O
3. Run APK-specific extractors with the shared `apk` object
4. Run Strings + IOC extractors if applicable

---

## 4. Extractor Specifications

### 4.1 APKFeaturesExtractor

**Purpose:** Core APK metadata — the equivalent of `PEFeaturesExtractor` or `ELFFeaturesExtractor`.

**Extracted fields:**
- `package_name` — Android package identifier (e.g., `com.example.app`)
- `app_name` — Human-readable application name
- `version_code` — Internal integer version
- `version_name` — Display version string (e.g., `"1.2.3"`)
- `min_sdk_version` — Minimum Android API level
- `target_sdk_version` — Target Android API level
- `compile_sdk_version` — Compile SDK (if available)
- `main_activity` — Launcher activity class name
- `is_debuggable` — Whether `android:debuggable="true"`
- `allow_backup` — Whether `android:allowBackup="true"`
- `uses_cleartext_traffic` — Whether `android:usesCleartextTraffic="true"`
- `supported_abis` — List of ABIs from `lib/` directory (e.g., `["arm64-v8a", "armeabi-v7a"]`)
- `dex_count` — Number of DEX files
- `total_dex_size` — Combined DEX file size in bytes
- `total_file_count` — Total number of files in the APK archive
- `has_native_code` — Whether `lib/` contains `.so` files
- `has_assets` — Whether `assets/` directory is non-empty
- `uses_libraries` — Declared `<uses-library>` entries
- `earliest_content_modification` — Earliest timestamp from ZIP entry metadata
- `latest_content_modification` — Latest timestamp from ZIP entry metadata
- `contains_embedded_apk` — Whether the archive contains nested APK files (flag only)

**Tag:** `APK_FEATURES`
**ClickHouse table:** `redb_apk_features`

### 4.2 APKManifestExtractor

**Purpose:** Full AndroidManifest.xml component enumeration, mirroring what VirusTotal and Koodous display.

**Extracted fields:**
- `activities` — List of Activity class names with `exported` flag
- `services` — List of Service class names with `exported` flag
- `receivers` — List of BroadcastReceiver class names with `exported` flag
- `providers` — List of ContentProvider class names with `exported` flag
- `intent_filters_by_action` — Aggregated list of all intent filter actions
- `intent_filters_by_category` — Aggregated list of all intent filter categories
- `uses_features` — Declared hardware/software features (e.g., `android.hardware.camera`)
- `meta_data` — Key-value pairs from `<meta-data>` elements
- `manifest_xml` — Full decompiled AndroidManifest.xml as plain text

**Tag:** `APK_MANIFEST`
**ClickHouse table:** `redb_apk_manifest` (one row per APK for aggregated data), `redb_apk_components` (one row per component)

### 4.3 APKPermissionsExtractor

**Purpose:** Dedicated permission analysis with protection-level classification and permhash computation.

**Extracted fields:**
- `permissions` — List of requested permissions with protection level (`normal`, `dangerous`, `signature`, `signatureOrSystem`)
- `dangerous_permissions` — Filtered list of dangerous permissions only
- `dangerous_permission_count` — Count of dangerous permissions
- `custom_permissions` — Permissions defined by the app itself (`<permission>` declarations)
- `total_permission_count` — Total number of requested permissions
- `permhash` — SHA-256 of sorted permission list (Mandiant/Google permhash — https://github.com/google/permhash)

The `permhash` value will also be added to the `Hashes` dataclass in `redb/models/dataclasses.py` so it appears alongside `imphash`, `symhash`, etc. in the unified hash record.

**Tag:** `APK_PERMISSIONS`
**ClickHouse table:** `redb_apk_permissions` (one row per permission per APK)

### 4.4 APKSignatureExtractor

**Purpose:** Certificate and signing scheme analysis, analogous to `PESignatureExtractor` and `MachOSignatureExtractor`.

**Extracted fields:**
- `signature_scheme_versions` — Which signing schemes are present (v1 JAR, v2, v3, v4)
- `is_signed` — Whether the APK has a valid signature
- `number_of_certificates` — Certificate count in the chain
- `x509_certificates` — List of certificate details:
  - `subject` (Distinguished Name)
  - `issuer` (Distinguished Name)
  - `serial_number`
  - `valid_from` / `valid_to`
  - `thumbprint_sha1`
  - `thumbprint_sha256`
  - `algorithm`
  - `key_size`
  - `is_self_signed`
- `signer_subject` — Primary signer's subject DN (convenience field)
- `signer_issuer` — Primary signer's issuer DN

**Tag:** `APK_SIGNATURE`
**ClickHouse table:** `redb_apk_signature`

### 4.5 APKDexExtractor

**Purpose:** DEX file analysis — summarized with categorized API usage (not full method enumeration).

**Output structure (per DEX file):**

- `filename` — DEX filename (e.g., `classes.dex`)
- `sha256` — SHA-256 of the DEX file
- `class_count` — Total number of classes
- `method_count` — Total number of methods
- `string_count` — Total number of string constants
- `top_packages` — List of `{package, class_count}` for top-level Java packages
- `api_usage` — Categorized sensitive API calls:
  - `reflection` — `java.lang.reflect.*`, `Class.forName`, etc.
  - `crypto` — `javax.crypto.*`, `java.security.*`
  - `dynamic_loading` — `DexClassLoader`, `PathClassLoader`, `InMemoryDexClassLoader`
  - `telephony` — `TelephonyManager` methods
  - `sms` — `SmsManager`, `SmsReceiver`
  - `network` — `HttpURLConnection`, `OkHttp`, `Volley`, `Retrofit`
  - `native` — `System.loadLibrary`, `Runtime.exec`
  - `device_info` — `Build.*`, `Settings.Secure.ANDROID_ID`, IMEI/IMSI access
  - `file_io` — `FileOutputStream`, `SharedPreferences`, `SQLiteDatabase`
  - `ipc` — `ContentResolver`, `BroadcastReceiver`, `Binder`
- `obfuscation_indicators`:
  - `short_class_names_pct` — Percentage of classes with names <= 2 chars
  - `short_method_names_pct` — Percentage of methods with names <= 2 chars
  - `non_ascii_identifiers` — Count of identifiers with non-ASCII characters
  - `avg_class_name_length` — Average class name length

**Tag:** `APK_DEX`
**ClickHouse table:** `redb_apk_dex` (one row per DEX file), `redb_apk_dex_api_usage` (one row per API category per DEX)

### 4.6 APKResourceExtractor

**Purpose:** Inventory of embedded resources with filetype detection for suspicious content.

**Extracted fields:**
- `total_resource_count` — Total files in `res/` and `assets/`
- `total_resource_size` — Combined size
- `resource_inventory` — List of `{path, size, sha256, filetype_magika}` for each file
- `suspicious_files` — Files detected as ELF, PE, DEX, APK, ZIP, script, or other executable types
- `suspicious_file_count` — Count of suspicious files

**Tag:** `APK_RESOURCES`
**ClickHouse table:** `redb_apk_resources`

### 4.7 APKNativeLibExtractor

**Purpose:** Inventory of native `.so` libraries per ABI. No deep ELF analysis (inventory only).

**Extracted fields:**
- `native_lib_count` — Total `.so` file count
- `abis` — List of ABI directories present (e.g., `["arm64-v8a", "x86"]`)
- `native_libs` — List of `{abi, filename, size, sha256}` per `.so` file
- `known_packer_libs` — Any `.so` files matching known packer/protector library names (e.g., `libjiagu.so`, `libsecexe.so`, `libDexHelper.so`, `libprotectClass.so`)

**Tag:** `APK_NATIVE_LIBS`
**ClickHouse table:** `redb_apk_native_libs`

### 4.8 APKInconsistencyTestsExtractor

**Purpose:** Anomaly and anti-analysis detection, analogous to `PEInconsistencyTestsExtractor`.

**Extracted fields:**
- `test_zip_bomb` — Compression ratio exceeds threshold
- `test_zip_duplicate_entries` — ZIP contains duplicate filenames
- `test_zip_path_traversal` — ZIP entries with `../` path traversal
- `test_zip_suspicious_timestamps` — Timestamps in the future or at epoch (1980-01-01)
- `test_hidden_dex_files` — DEX files outside standard `classes*.dex` naming or in unexpected locations
- `test_manifest_component_mismatch` — Declared components that don't exist in DEX, or undeclared code
- `test_debuggable_release` — `android:debuggable="true"` combined with a release signature
- `test_emulator_detection_strings` — Presence of Build.FINGERPRINT/MANUFACTURER emulator check strings in DEX
- `test_debugger_detection` — Presence of `Debug.isDebuggerConnected()` calls
- `test_root_detection` — Presence of root detection patterns (su binary checks, Superuser.apk)

**Tag:** `APK_INCONSISTENCY_TESTS`
**ClickHouse table:** `redb_apk_inconsistency_tests`

---

## 5. New Dependencies

### 5.1 Required

| Library | Version | License | Purpose |
|---------|---------|---------|---------|
| **androguard** | >=4.1 | Apache 2.0 | Core APK parsing: binary XML manifest, DEX analysis, certificate extraction, permissions |
| **permhash** | latest | Apache 2.0 | Compute permhash (SHA-256 of sorted permissions) for APK clustering |

### 5.2 Already Available (no changes)

| Library | Current Version | Usage |
|---------|----------------|-------|
| `zipfile` (stdlib) | — | APK archive traversal, ZIP anomaly detection |
| `pyelftools` | 0.32 | Could be used for native .so analysis if scope expands |
| `lief` | 0.17.3 | Has `lief.DEX` module; complement to androguard for DEX class/method enumeration |
| `cryptography` | 43.0.3 | Certificate chain validation (used by PE/Mach-O signature extractors) |
| `Pillow` | 10.4.0 | Icon extraction if needed |
| `magika` | 1.0.1 | Filetype detection for embedded resources |

### 5.3 Future Consideration

| Library | License | Purpose | Notes |
|---------|---------|---------|-------|
| **APKiD** | GPL-3.0 or Commercial (perpetual, royalty-free) | Packer/protector/obfuscator identification | "PEiD for Android". Detects compilers (dx, dexlib, r8), packers (AppGuard, DingXiang, JiaguK), obfuscators (DexGuard, BlackObfuscator), protectors (DexProtector, DxShield), anti-VM/debug/root. Commercial license is perpetual and allows binary redistribution: https://github.com/rednaga/APKiD/blob/master/LICENSE.COMMERCIAL |
| **apksigtool** | MIT | APK Signature Scheme v2/v3/v4 verification | androguard handles v1 well; apksigtool provides more thorough v2+ support |
| **quark-engine** | GPL-3.0 | Behavioral analysis scoring | Similar to CAPA but for Android. Stretch goal |

---

## 6. Data Model Changes

### 6.1 New Dataclasses

Add to `redb/models/dataclasses.py`:
- `APKFeatures`
- `APKManifestComponent`
- `APKPermission`
- `APKCertificate`
- `APKCodeSigningInfo`
- `APKDexFile`
- `APKDexApiUsage`
- `APKResource`
- `APKNativeLib`
- `APKInconsistencyTests`

See Tech Annex for full field definitions.

### 6.2 Existing Dataclass Changes

**`Hashes` dataclass** — add:
```python
permhash: Optional[str] = None  # APK: SHA-256 of sorted permissions (Mandiant/Google)
```

### 6.3 Tag Enum Additions

Add to `redb/extractors/enum.py`:
```python
# APK
APK_FEATURES = "apk_features"
APK_MANIFEST = "apk_manifest"
APK_PERMISSIONS = "apk_permissions"
APK_SIGNATURE = "apk_signature"
APK_DEX = "apk_dex"
APK_RESOURCES = "apk_resources"
APK_NATIVE_LIBS = "apk_native_libs"
APK_INCONSISTENCY_TESTS = "apk_inconsistency_tests"
```

---

## 7. Implementation Phases

### Phase 1 — Core Extractors

1. `APKExtractor` base class + `APKFeaturesExtractor`
2. `APKManifestExtractor`
3. `APKPermissionsExtractor` (including permhash)
4. `APKSignatureExtractor`
5. `APKDexExtractor`
6. `APKResourceExtractor`
7. `APKNativeLibExtractor`
8. Ingestor integration (wire up dispatch in `process_binary_file()`)
9. Hashes dataclass update (add `permhash`)

### Phase 2 — Detection and Anomalies

10. `APKInconsistencyTestsExtractor`
11. Wire up existing format-agnostic extractors for APK (YARA, Strings, IOC)

### Phase 3 — Future (out of scope for this PDD)

- APKiD integration for packer/protector detection
- Deep native library analysis (run ELF pipeline on extracted `.so` files)
- Recursive APK ingestion
- androguard-yara module integration for YARA rules matching on APK metadata

---

## 8. Testing Strategy

- Unit tests per extractor using known APK samples (benign + malicious)
- Validate output against VirusTotal reports for the same samples (cross-reference fields)
- Edge cases: split APKs, obfuscated APKs, packed APKs, APKs with no native code, APKs with no DEX, corrupted APKs
- Integration test: full pipeline run (ingest APK, verify all extractors produce output, verify ClickHouse/ES export)