Wei Liang

148 papers A* 1A 1B 8C 7Misc 2Journal 91Unranked 37
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEEE Trans. Ind. Informatics
Jiatong Zheng, Jialin Zhang, Wei Liang, Yutuo Yang, Ying-Chang Liang
2026 J jnl
IEEE Trans. Cogn. Commun. Netw.
Lei Zhang, Meng Zheng, Wei Liang, Bin Feng, Chuqing Wang
2026 J jnl
IEEE Trans. Dependable Secur. Comput.
Nengyu He, Xiaofang Xia, Xiangru Zhan, Jiangtao Cui, Jiwei Tian, Chi Xu, Wei Liang
2026 J jnl
IEEE Trans. Consumer Electron.
Chaofan Ma, Wei Liang, Meng Zheng, Kai Wang
2026 J jnl
IEEE Wirel. Commun. Lett.
Bin Feng, Meng Zheng, Wei Liang, Lei Zhang, Lin Chen
2025 J jnl
IEEE Trans Autom. Sci. Eng.
Yinlong Zhang, Yuanhao Liu, Yunge Cui, Ziming Zeng, Wei Liang
2025 J jnl
Int. J. Sens. Networks
Shuai Liu, Wei Liang, Yinlong Zhang, Yanfei Wang, Yuanhao Liu
2025 J jnl
IEEE J. Sel. Areas Commun.
Wei Liang, Sichao Zhang, Yinlong Zhang, Jialin Zhang, Xudong Yuan
2025 Misc conf
ICASSP
Bin Feng, Meng Zheng, Wei Liang, Lei Zhang
2025 J jnl
CoRR
Bin Feng, Meng Zheng, Wei Liang, Lei Zhang
2025 J jnl
IEEE Trans. Ind. Informatics
Yinlong Zhang, Yuanye Xu, Yue Xu, Yuanhao Liu, Yang Li, Wei Liang, Zhibo Pang
2025 J jnl
IEEE CAA J. Autom. Sinica
Meng Zheng, Lei Zhang, Wei Liang
2025 J jnl
IEEE Trans. Netw. Serv. Manag.
Jialin Zhang, Wei Liang, Bo Yang, Huaguang Shi, Ying-Chang Liang
2025 J jnl
IEEE Trans. Cogn. Dev. Syst.
Yinlong Zhang, Yuanhao Liu, Shuai Liu, Wei Liang, Chu Wang, Kai Wang
2025 C conf
INDIN
Yinlong Zhang, Yuanhao Liu, Dapeng Lan, Wei Liang, Sichao Zhang, Xudong Yuan
2025 J jnl
IEEE Netw.
Wei Liang, Fuyou Wei, Qi Wang, Ming Zhan, Ke Wang
2025 conf
MLSP
Bin Feng, Meng Zheng, Wei Liang, Lei Zhang
2025 J jnl
IEEE Commun. Lett.
Lei Zhang, Meng Zheng, Bin Feng, Wei Liang, Lianbo Ma
2024 conf
ISIE
Ke Wang, Wei Liang, Huaguang Shi, Jialin Zhang, Qi Wang
2024 J jnl
ACM Trans. Sens. Networks
Chaofan Ma, Wei Liang, Meng Zheng, Xiaofang Xia, Lin Chen
2024 J jnl
IEEE Internet Things J.
Meng Zheng, Yongheng Zhao, Wei Liang
2024 J jnl
IEEE Trans. Netw. Sci. Eng.
Chao Pei, Yang Xiao, Wei Liang, Xiaojia Han, Wenhai Wang
2024 J jnl
IEEE Trans. Consumer Electron.
Yinlong Zhang, Wei Liang, Xudong Yuan, Sichao Zhang, Geng Yang, Ziming Zeng
2024 conf
ICSR + InnoBiz
Yue Xu, Yinlong Zhang, Shuai Liu, Yuanhao Liu, Wei Liang, Hongsheng He
2024 conf
M2VIP
Yuanhao Liu, Wei Liang, Chu Wang, Xin Zhang, Huanbing Gao, Yinlong Zhang
2024 J jnl
IEEE Wirel. Commun. Lett.
Qi Wang, Wei Liang, Zhibo Pang, Jialin Zhang, Ke Wang, Yang Yu
2024 J jnl
IEEE Trans. Consumer Electron.
Qi Wang, Wei Liang, Jialin Zhang, Ke Wang, Xiaolin Jiang
2024 J jnl
Complex Intell. Syst.
Ke Wang, Wei Liang, Huaguang Shi, Jialin Zhang, Qi Wang
2024 C conf
MobiQuitous
Yuanhao Liu, Yinlong Zhang, Shuai Liu, Dapeng Lan, Chu Wang, Wei Liang
2024 J jnl
IEEE Trans. Ind. Informatics
Qi Wang, Zhibo Pang, Wei Liang, Jialin Zhang, Ke Wang, Yutuo Yang
2024 J jnl
IEEE Trans. Ind. Informatics
Qi Wang, Zhibo Pang, Wei Liang, Jialin Zhang, Ke Wang
2023 conf
RCAR
Yuanye Xu, Libiao Yuan, Wei Liang, Yutuo Yang, Shuai Liu, Ziming Zeng, Yinlong Zhang
2023 J jnl
Robotics Comput. Integr. Manuf.
Yinlong Zhang, Libiao Yuan, Wei Liang, Xiaofang Xia, Zhibo Pang
2023 C conf
WFCS
Jialin Zhang, Wei Liang, Bo Yang, Huaguang Shi, Qi Wang, Zhibo Pang
2023 J jnl
IEEE Trans. Veh. Technol.
Meng Zheng, Yongheng Zhao, Huaguang Shi, Wei Liang
2023 J jnl
Int. J. Sens. Networks
Sichao Zhang, Wei Liang, Yinlong Zhang, Kai Wang
2023 J jnl
Telecommun. Syst.
Meng Zheng, Moquan Cheng, Wei Liang
2023 J jnl
Robotics Auton. Syst.
Ke Wang, Wei Liang, Huaguang Shi, Jialin Zhang, Qi Wang
2023 J jnl
IEEE Trans. Inf. Forensics Secur.
Xiaofang Xia, Jian Lin, Qiannan Jia, Xiaoluan Wang, Chaofan Ma, Jiangtao Cui, Wei Liang
2023 J jnl
IEEE Trans. Instrum. Meas.
Yinlong Zhang, Bo Li, Shijie Sun, Yuanhao Liu, Wei Liang, Xiaofang Xia, Zhibo Pang
2023 book
Haibin Yu, Peng Zeng, Meng Zheng, Chi Xu, Xi Jin, Wei Liang
2023 conf
PRCV (3)
Yinlong Zhang, Bo Li, Yuanhao Liu, Wei Liang
2022 conf
VTC Fall
Yitian Wang, Meng Zheng, Haibin Yu, Wei Liang
2022 J jnl
IEEE Trans. Cogn. Commun. Netw.
Jialin Zhang, Wei Liang, Bo Yang, Huaguang Shi, Ke Wang, Qi Wang
2022 conf
ICIT
Sichao Zhang, Wei Liang, Yinlong Zhang, Zhibo Pang
2022 J jnl
IEEE Syst. J.
Chaofan Ma, Meng Zheng, Wei Liang, Martin Kasparick, Yufeng Lin
2022 J jnl
Proc. IEEE
Xiaofang Xia, Yang Xiao, Wei Liang, Jiangtao Cui
2022 J jnl
IEEE Trans. Wirel. Commun.
Lin Chen, Yijin Zhang, Kehao Wang, Meng Zheng, Jihong Yu, Wei Liang
2022 J jnl
IEEE CAA J. Autom. Sinica
Yinlong Zhang, Wei Liang, Mingze Yuan, Hongsheng He, Jindong Tan, Zhibo Pang
2022 J jnl
IEEE Multim.
Yinlong Zhang, Xiaoyan Zheng, Wei Liang, Sichao Zhang, Xudong Yuan
2021 conf
CWSN
Ke Wang, Wei Liang, Huaguang Shi, Jialin Zhang, Qi Wang
2021 J jnl
IEEE Access
Chao Pei, Yang Xiao, Wei Liang, Xiaojia Han
2021 J jnl
IEEE Trans. Veh. Technol.
Huaguang Shi, Meng Zheng, Wei Liang, Jialin Zhang
2021 J jnl
IEEE Trans. Ind. Informatics
Wei Liang, Jialin Zhang, Huaguang Shi, Ke Wang, Qi Wang, Meng Zheng, Haibin Yu
2021 J jnl
IEEE Trans. Netw. Sci. Eng.
Chao Pei, Yang Xiao, Wei Liang, Xiaojia Han
2021 J jnl
IEEE Trans. Mob. Comput.
Wei Liang, Chaofan Ma, Meng Zheng, Longxiang Luo
2021 J jnl
IEEE Internet Things J.
Huaguang Shi, Meng Zheng, Wei Liang, Jialin Zhang, Ke Wang, Shuai Liu
2021 B conf
IWCMC
Longxiang Luo, Yang Xiao, Wei Liang, Meng Zheng
2020 conf
ICC
Huaguang Shi, Meng Zheng, Wei Liang, Jialin Zhang, Martin Kasparick
2020 C conf
INDIN
Chaofan Ma, Meng Zheng, Wei Liang, Martin Kasparick, Yufeng Lin
2020 J jnl
IEEE Trans. Netw. Sci. Eng.
Xiaofang Xia, Yang Xiao, Wei Liang, Meng Zheng
2020 J jnl
Int. J. Sens. Networks
Haibo An, Wei Liang, Yinlong Zhang, Jindong Tan
2020 C conf
INDIN
Yinlong Zhang, Wei Liang, Mingzhe Yuan, Jinchao Xiao, Jun Li, Shiwei Peng
2020 J jnl
IEEE Trans. Inf. Forensics Secur.
Xiaofang Xia, Yang Xiao, Wei Liang
2019 conf
VTC Spring
Huaguang Shi, Meng Zheng, Wei Liang, Jialin Zhang
2019 conf
ROBIO
Haibo An, Wei Liang, Xiaojian Ding, Yinlong Zhang, Jindong Tan
2019 J jnl
IEEE Trans. Inf. Forensics Secur.
Xiaofang Xia, Yang Xiao, Wei Liang
2019 conf
MSN
Longxiang Luo, Yang Xiao, Wei Liang
2019 conf
ROBIO
Yinlong Zhang, Haibo An, Xiaojian Ding, Wei Liang, Mingze Yuan, Chunyang Ji, Jindong Tan
2019 J jnl
IEEE Internet Things J.
Meng Zheng, Si Chen, Wei Liang, Min Song
2019 B conf
SECON
Jialin Zhang, Wei Liang, Bo Yang, Meng Zheng, Huaguang Shi, Seung Ho Hong
2019 J jnl
IEEE Syst. J.
Chaofan Ma, Wei Liang, Meng Zheng, Bo Yang
2019 J jnl
IEEE Access
Yinlong Zhang, Wei Liang, Hongsheng He, Jindong Tan
2019 J jnl
Proc. IEEE
Wei Liang, Meng Zheng, Jialin Zhang, Huaguang Shi, Haibin Yu, Yutuo Yang, Shuai Liu, Wenhua Yang, Xuefeng Zhao
2018 B conf
WCNC
Chaofan Ma, Wei Liang, Meng Zheng
2018 J jnl
Comput. Secur.
Xiaofang Xia, Yang Xiao, Wei Liang, Meng Zheng
2018 J jnl
Mob. Networks Appl.
Chaofan Ma, Wei Liang, Meng Zheng
2018 J jnl
ACM Trans. Embed. Comput. Syst.
Chi Xu, Wei Liang, Haibin Yu
2018 J jnl
IEEE Syst. J.
Meng Zheng, Wei Liang, Haibin Yu
2018 conf
ROBIO
Yinlong Zhang, Wei Liang, Hongsheng He, Jindong Tan
2018 J jnl
Pers. Ubiquitous Comput.
Yinlong Zhang, Wei Liang, Yang Li, Haibo An, Jindong Tan
2018 B conf
WCNC
Meng Zheng, Manyi Du, Lin Chen, Wei Liang, Haibin Yu
2018 J jnl
Sci. China Inf. Sci.
Chi Xu, Peng Zeng, Wei Liang, Haibin Yu
2018 B conf
ICPR
Yan Li, Jindong Tan, Yinlong Zhang, Wei Liang, Hongsheng He
2018 J jnl
EURASIP J. Wirel. Commun. Netw.
Chao Pei, Yang Xiao, Wei Liang, Xiaojia Han
2018 J jnl
IEEE Syst. J.
Meng Zheng, Wei Liang, Haibin Yu
2018 J jnl
IEEE J. Biomed. Health Informatics
Yinlong Zhang, Wei Liang, Hongsheng He, Jindong Tan
2017 conf
ES
Huaguang Shi, Meng Zheng, Wei Liang, Zhe Luo, Seung Ho Hong
2017 conf
CISP-BMEI
Yang Li, Wei Liang, Haibo An, Yinlong Zhang, Jindong Tan
2017 J jnl
J. Netw. Comput. Appl.
Chaofan Ma, Wei Liang, Meng Zheng
2017 J jnl
Comput. J.
Xiaofang Xia, Wei Liang, Yang Xiao, Meng Zheng
2017 J jnl
IEEE Trans. Wirel. Commun.
Chi Xu, Meng Zheng, Wei Liang, Haibin Yu, Ying-Chang Liang
2017 J jnl
CoRR
Chi Xu, Meng Zheng, Wei Liang, Haibin Yu, Ying-Chang Liang
2017 J jnl
IEEE Trans. Green Commun. Netw.
Meng Zheng, Lin Chen, Wei Liang, Haibin Yu, Jinsong Wu
2017 J jnl
Wirel. Pers. Commun.
Chi Xu, Meng Zheng, Wei Liang, Haibin Yu
2017 J jnl
Int. J. Sens. Networks
Chi Xu, Meng Zheng, Wei Liang, Haibin Yu, Youjian Zhao
2017 A conf
IROS
Yinlong Zhang, Wei Liang, Hongsheng He, Jindong Tan
2017 conf
VTC Spring
Chaofan Ma, Wei Liang, Meng Zheng
2017 conf
ES
Zhe Luo, Seung Ho Hong, Renzhi Lu, Yuting Li, Xiongfeng Zhang, Jong-Beom Kim, Taeyang Park, Meng Zheng, Wei Liang
2017 J jnl
Wirel. Pers. Commun.
Chaofan Ma, Wei Liang, Meng Zheng
2017 J jnl
Mob. Networks Appl.
Meng Zheng, Wei Liang, Haibin Yu, Yang Xiao
2017 conf
ES
Haibo An, Wei Liang, Yinlong Zhang, Yang Li, Ye Liang, Jindong Tan
2017 J jnl
Comput. Networks
Meng Zheng, Chi Xu, Wei Liang, Haibin Yu, Lin Chen
2016 C conf
INDIN
Yinlong Zhang, Wei Liang, Jindong Tan
2016 A* conf
INFOCOM
Bo Yang, Meng Zheng, Wei Liang
2016 conf
EMBC
Yang Li, Wei Liang, Yinlong Zhang, Haibo An, Jindong Tan
2016 J jnl
IEEE Trans. Veh. Technol.
Bo Yang, Wei Liang, Meng Zheng, Ying-Chang Liang
2016 J jnl
IEEE Commun. Lett.
Chi Xu, Meng Zheng, Wei Liang, Haibin Yu, Ying-Chang Liang
2016 J jnl
IEEE Access
Meng Zheng, Wei Liang, Haibin Yu, Min Song
2016 conf
ICC
Chaofan Ma, Wei Liang, Meng Zheng
2016 J jnl
IET Commun.
Meng Zheng, Wei Liang, Haibin Yu, Hamid Sharif
2015 J jnl
CoRR
Chaofan Ma, Wei Liang, Meng Zheng
2015 conf
ICC Workshops
Meng Zheng, Chi Xu, Wei Liang, Haibin Yu, Lin Chen
2015 conf
ICC
Xiaofang Xia, Wei Liang, Yang Xiao, Meng Zheng, Zhifeng Xiao
2015 conf
MeMeA
Yang Li, Wei Liang, Jindong Tan, Yinlong Zhang
2015 B conf
WCNC
Chaofan Ma, Wei Liang, Meng Zheng, Hamid Sharif
2015 conf
ICC
Xiaofang Xia, Wei Liang, Yang Xiao, Meng Zheng
2015 conf
ROBIO
Yinlong Zhang, Jindong Tan, Wei Liang, Yang Li
2015 J jnl
Wirel. Commun. Mob. Comput.
Junru Lin, Baohui Zhu, Peng Zeng, Wei Liang, Haibin Yu, Yang Xiao
2015 J jnl
IET Commun.
Xiaoling Zhang, Wei Liang, Haibin Yu, Xisheng Feng
2015 conf
ICIA
Yinlong Zhang, Wei Liang, Yang Li, Haibo An, Jindong Tan
2015 B conf
ICCCN
Bo Yang, Meng Zheng, Wei Liang
2015 J jnl
Int. J. Ad Hoc Ubiquitous Comput.
Junru Lin, Wei Liang, Haibin Yu, Yang Xiao
2015 J jnl
CoRR
Chaofan Ma, Wei Liang, Meng Zheng
2014 J jnl
Sensors
Wei Liang, Yinlong Zhang, Jindong Tan, Yang Li
2014 conf
EMBC
Yinlong Zhang, Jindong Tan, Ziming Zeng, Wei Liang, Ye Xia
2014 J jnl
Secur. Commun. Networks
Jingcheng Gao, Jing Liu, Bharat Rajan, Rahul Nori, Bo Fu, Yang Xiao, Wei Liang, C. L. Philip Chen
2013 J jnl
Int. J. Secur. Networks
Zhifeng Xiao, Bo Fu, Yang Xiao, C. L. Philip Chen, Wei Liang
2013 J jnl
Int. J. Sens. Networks
Meng Zheng, Wei Liang, Haibin Yu, Yang Xiao, Jianda Han
2013 conf
CWSN
Pengxiang Ji, Wei Liang, Xiaoling Zhang, Meng Zheng
2013 conf
BODYNETS
Yinlong Zhang, Wei Liang, Jindong Tan, Yang Li, Ziming Zeng
2013 J jnl
IET Commun.
Xiaoling Zhang, Wei Liang, Haibin Yu, Xisheng Feng
2012 J jnl
Future Gener. Comput. Syst.
Jingcheng Gao, Yang Xiao, Jing Liu, Wei Liang, C. L. Philip Chen
2012 J jnl
IEEE Commun. Surv. Tutorials
Jing Liu, Yang Xiao, Shuhui Li, Wei Liang, C. L. Philip Chen
2012 J jnl
Int. J. Distributed Sens. Networks
Xiaoling Zhang, Wei Liang, Haibin Yu, Xisheng Feng
2012 conf
CWSN
Wei Liang, Shuai Liu, Yutuo Yang, Shiming Li
2011 J jnl
Ad Hoc Sens. Wirel. Networks
Meng Zheng, Wei Liang, Haibin Yu
2011 J jnl
Wirel. Commun. Mob. Comput.
Wei Liang, Xiaoling Zhang, Yang Xiao, Fuqiang Wang, Peng Zeng, Haibin Yu
2010 J jnl
Comput. J.
Meng Zheng, Wei Liang, Haibin Yu, Yang Xiao
2009 B conf
GLOBECOM
Meng Zheng, Wei Liang, Xiaoling Zhang, Haibin Yu, Peng Zeng
2009 conf
CDC
Meng Zheng, Haibin Yu, Jianying Zheng, Wei Liang, Peng Zeng
2009 Misc conf
SenSys
Wei Liang, Xiaoling Zhang, Miao Yang, Peng Zeng, Jinchao Xiao, Haibin Yu
2008 J jnl
Wirel. Commun. Mob. Comput.
Yan Huang, Wei Liang, Haibin Yu, Yang Xiao
2007 conf
SNPD (3)
Wei Liang, Haibin Yu, Chang Che
2007 conf
ROBIO
Jianying Zheng, Haibin Yu, Wei Liang, Peng Zeng
2007 conf
ICNC (5)
Chuanzhi Zang, Wei Liang, Haibin Yu
2005 conf
ICIC (2)
Haibin Yu, Peng Zeng, Wei Liang
2005 C conf
CIT
Chuanzhi Zang, Haibin Yu, Wei Liang, Jieyin Bai, Guangwei Li
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)