Wei-Chen Chiu

142 papers A* 28A 19B 10Misc 5Journal 61Unranked 18
YearRankTypeTitle / Venue / Authors
2025 A* conf
ICLR
Sheng-Feng Yu, Jia-Jiun Yao, Wei-Chen Chiu
2025 J jnl
CoRR
Sheng-Feng Yu, Jia-Jiun Yao, Wei-Chen Chiu
2025 A conf
WACV
Shao-Hao Lu, Ren Wang, Ching-Chun Huang, Wei-Chen Chiu
2025 J jnl
CoRR
Shao-Hao Lu, Ren Wang, Ching-Chun Huang, Wei-Chen Chiu
2025 J jnl
CoRR
Pin-Lun Chen, Chi-Hsi Kung, Che-Han Chang, Wei-Chen Chiu, Yi-Ting Chen
2025 J jnl
CoRR
Huu-Phu Do, Yu-Wei Chen, Yi-Cheng Liao, Chi-Wei Hsiao, Han-Yang Wang, Wei-Chen Chiu, Ching-Chun Huang
2025 conf
CVPR Workshops
Yi-Lun Lee, Chen-Yu Lee, Wei-Chen Chiu, Yi-Hsuan Tsai
2025 A* conf
CVPR
Van-Tin Luu, Yon-Lin Cai, Vu-Hoang Tran, Wei-Chen Chiu, Yi-Ting Chen, Ching-Chun Huang
2025 J jnl
CoRR
Van-Tin Luu, Yon-Lin Cai, Vu-Hoang Tran, Wei-Chen Chiu, Yi-Ting Chen, Ching-Chun Huang
2025 A* conf
ICRA
Yi-Chang Cai, Heng-Chih Hsiao, Wei-Chen Chiu, Huei-Yung Lin, Chiao-Tung Chan
2025 A* conf
ICRA
Jhih-Rong Chen, Che-Yuan Chang, Szu-Han Tseng, Chih-Sheng Huang, Yong-Sheng Chen, Wei-Chen Chiu
2025 J jnl
CoRR
Bo-Hsu Ke, You-Zhe Xie, Yu-Lun Liu, Wei-Chen Chiu
2025 J jnl
CoRR
Hsuan Yuan, Shao-Yu Weng, I-Hsuan Lo, Wei-Chen Chiu, Yu-Syuan Xu, Hao-Chien Hsueh, Jen-Hui Chuang, Ching-Chun Huang
2025 J jnl
CoRR
Yi-Cheng Liao, Shyang-En Weng, Yu-Syuan Xu, Chi-Wei Hsiao, Wei-Chen Chiu, Ching-Chun Huang
2024 conf
ACCV (6)
Tsung-Han Chou, Brian Wang, Wei-Chen Chiu, Jun-Cheng Chen
2024 J jnl
CoRR
Tsung-Han Chou, Brian Wang, Wei-Chen Chiu, Jun-Cheng Chen
2024 conf
ICPR (16)
I-Sheng Fang, Wei-Chen Chiu, Yong-Sheng Chen
2024 A conf
WACV
Shao-Yu Weng, Hsuan Yuan, Yu-Syuan Xu, Ching-Chun Huang, Wei-Chen Chiu
2024 J jnl
CoRR
Yi-Lun Lee, Yi-Hsuan Tsai, Wei-Chen Chiu
2024 J jnl
CoRR
Yi-Lun Lee, Chen-Yu Lee, Wei-Chen Chiu, Yi-Hsuan Tsai
2024 J jnl
CoRR
Chiu-Chou Lin, Yu-Wei Shih, Kuei-Ting Kuo, Yu-Cheng Chen, Chien-Hua Chen, Wei-Chen Chiu, I-Chen Wu
2024 J jnl
Trans. Mach. Learn. Res.
Chiu-Chou Lin, Yu-Wei Shih, Kuei-Ting Kuo, Yu-Cheng Chen, Chien-Hua Chen, Wei-Chen Chiu, I-Chen Wu
2024 A* conf
AAAI
Bo-Yu Chen, Wei-Chen Chiu, Yu-Lun Liu
2024 J jnl
CoRR
Bo-Yu Cheng, Wei-Chen Chiu, Yu-Lun Liu
2024 J jnl
CoRR
Zhi-Yi Chin, Kuan-Chen Mu, Mario Fritz, Pin-Yu Chen, Wei-Chen Chiu
2024 A* conf
CVPR
Bor-Shiun Wang, Chien-Yi Wang, Wei-Chen Chiu
2024 J jnl
CoRR
Bor-Shiun Wang, Chien-Yi Wang, Wei-Chen Chiu
2024 J jnl
CoRR
Hsin-Ju Lin, Tsu-Chun Chung, Ching-Chun Hsiao, Pin-Yu Chen, Wei-Chen Chiu, Ching-Chun Huang
2024 A conf
WACV
Zhi-Yi Chin, Chieh-Ming Jiang, Ching-Chun Huang, Pin-Yu Chen, Wei-Chen Chiu
2024 J jnl
CoRR
Chiu-Chou Lin, Wei-Chen Chiu, I-Chen Wu
2024 J jnl
Trans. Mach. Learn. Res.
Chiu-Chou Lin, Wei-Chen Chiu, I-Chen Wu
2024 A* conf
ICML
Zhi-Yi Chin, Chieh-Ming Jiang, Ching-Chun Huang, Pin-Yu Chen, Wei-Chen Chiu
2024 J jnl
CoRR
Kuan-Chen Mu, Zhi-Yi Chin, Wei-Chen Chiu
2024 A conf
IROS
Sheng-Chi Huang, Wei-Chen Chiu
2024 A* conf
NeurIPS
Chen Yeh, You-Ming Chang, Wei-Chen Chiu, Ning Yu
2024 J jnl
CoRR
Chen Yeh, You-Ming Chang, Wei-Chen Chiu, Ning Yu
2024 B conf
ICIP
Hsuan Yuan, Shao-Yu Weng, I-Hsuan Lo, Wei-Chen Chiu, Yu-Syuan Xu, Hao-Chien Hsueh, Jen-Hui Chuang, Ching-Chun Huang
2023 A conf
WACV
Shin-I Cheng, Yu-Jie Chen, Wei-Chen Chiu, Hung-Yu Tseng, Hsin-Ying Lee
2023 J jnl
CoRR
You-Ming Chang, Chen Yeh, Wei-Chen Chiu, Ning Yu
2023 A* conf
CHI
Yu-Chun Chen, Yu-Jen Lee, Kuei-Chun Kao, Jie Tsai, En-Chi Liang, Wei-Chen Chiu, Faye Shih, Yung-Ju Chang
2023 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Fu-En Wang, Yu-Hsuan Yeh, Yi-Hsuan Tsai, Wei-Chen Chiu, Min Sun
2023 B conf
SMC
Yi-Hsin Chen, Dian-Shan Chen, Ying-Chieh Weng, Wen-Hsiao Peng, Wei-Chen Chiu
2023 B conf
SMC
Yi-Lun Lee, Dian-Shan Chen, Chen-Yu Lee, Yi-Hsuan Tsai, Wei-Chen Chiu
2023 Misc conf
ICASSP
Chun-Yi Li, Yen-Yu Lin, Wei-Chen Chiu
2023 A conf
IROS
Hsin-Ju Lin, Tsu-Chun Chung, Ching-Chun Hsiao, Pin-Yu Chen, Wei-Chen Chiu, Ching-Chun Huang
2023 J jnl
CoRR
Zhi-Yi Chin, Chieh-Ming Jiang, Ching-Chun Huang, Pin-Yu Chen, Wei-Chen Chiu
2023 B conf
SMC
Sheng-Feng Yu, Wei-Chen Chiu
2023 A* conf
CVPR
Yi-Lun Lee, Yi-Hsuan Tsai, Wei-Chen Chiu, Chen-Yu Lee
2023 J jnl
CoRR
Yi-Lun Lee, Yi-Hsuan Tsai, Wei-Chen Chiu, Chen-Yu Lee
2023 J jnl
CoRR
Zhi-Yi Chin, Chieh-Ming Jiang, Ching-Chun Huang, Pin-Yu Chen, Wei-Chen Chiu
2023 conf
ICCE-Taiwan
Heng-Chih Hsiao, Yi-Chang Cai, Huei-Yung Lin, Wei-Chen Chiu, Chiao-Tung Chan
2023 A* conf
AAAI
Wen-Cheng Chen, Chu-Song Chen, Wei-Chen Chiu, Min-Chun Hu
2023 J jnl
CoRR
Sheng-Chi Huang, Wei-Chen Chiu
2023 A* conf
ICCV
Yi-Hsin Chen, Ying-Chieh Weng, Chia-Hao Kao, Cheng Chien, Wei-Chen Chiu, Wen-Hsiao Peng
2023 B conf
ICIP
Chia-Hao Kao, Ying-Chieh Weng, Yi-Hsin Chen, Wei-Chen Chiu, Wen-Hsiao Peng
2023 conf
APSIPA ASC
Chia-Hao Kao, Yi-Hsin Chen, Cheng Chien, Wei-Chen Chiu, Wen-Hsiao Peng
2023 J jnl
CoRR
Chia-Hao Kao, Yi-Hsin Chen, Cheng Chien, Wei-Chen Chiu, Wen-Hsiao Peng
2023 J jnl
CoRR
Chia-Hao Kao, Ying-Chieh Weng, Yi-Hsin Chen, Wei-Chen Chiu, Wen-Hsiao Peng
2022 conf
ECCV (27)
Yu-Ting Yen, Chia-Ni Lu, Wei-Chen Chiu, Yi-Hsuan Tsai
2022 J jnl
CoRR
Yu-Ting Yen, Chia-Ni Lu, Wei-Chen Chiu, Yi-Hsuan Tsai
2022 J jnl
CoRR
Shin-I Cheng, Yu-Jie Chen, Wei-Chen Chiu, Hsin-Ying Lee, Hung-Yu Tseng
2022 J jnl
CoRR
Fu-En Wang, Yu-Hsuan Yeh, Yi-Hsuan Tsai, Wei-Chen Chiu, Min Sun
2022 Misc conf
ICASSP
Ting-Wei Chang, Wei-Chen Chiu, Ching-Chun Huang
2022 A conf
IROS
Yu-Liang Kuo, Wei-Jan Ko, Chen-Yi Chiu, Wei-Chen Chiu
2022 A* conf
ICLR
Chia-Hsiang Kao, Wei-Chen Chiu, Pin-Yu Chen
2022 A* conf
NeurIPS
Yu Hsuan Li, Tzu-Yin Chao, Ching-Chun Huang, Pin-Yu Chen, Wei-Chen Chiu
2022 J jnl
CoRR
Sheng-Feng Yu, Wei-Chen Chiu
2022 A conf
IROS
Wei-Jan Ko, Chen-Yi Chiu, Yu-Liang Kuo, Wei-Chen Chiu
2022 A conf
IROS
Meng-Shiun Tsai, Pei-Ze Chiang, Yi-Hsuan Tsai, Wei-Chen Chiu
2022 J jnl
CoRR
Meng-Shiun Tsai, Pei-Ze Chiang, Yi-Hsuan Tsai, Wei-Chen Chiu
2022 A conf
WACV
Pei-Ze Chiang, Meng-Shiun Tsai, Hung-Yu Tseng, Wei-Sheng Lai, Wei-Chen Chiu
2022 conf
ECCV (16)
Yu-Jie Chen, Shin-I Cheng, Wei-Chen Chiu, Hung-Yu Tseng, Hsin-Ying Lee
2022 J jnl
CoRR
Yu-Jie Chen, Shin-I Cheng, Wei-Chen Chiu, Hung-Yu Tseng, Hsin-Ying Lee
2021 J jnl
CoRR
Chiu-Chou Lin, Wei-Chen Chiu, I-Chen Wu
2021 A conf
UAI
Chiu-Chou Lin, Wei-Chen Chiu, I-Chen Wu
2021 Misc conf
MVA
Sheng-Feng Yu, Wei-Chen Chiu
2021 A* conf
CVPR
Chia-Ni Lu, Ya-Chu Chang, Wei-Chen Chiu
2021 J jnl
CoRR
Chia-Ni Lu, Ya-Chu Chang, Wei-Chen Chiu
2021 conf
MICCAI (3)
Chia-Hsiang Kao, Yong-Sheng Chen, Li-Fen Chen, Wei-Chen Chiu
2021 Misc conf
ICASSP
Chun-Chih Teng, Pin-Yu Chen, Wei-Chen Chiu
2021 J jnl
CoRR
Chun-Chih Teng, Pin-Yu Chen, Wei-Chen Chiu
2021 A conf
WACV
Min-Yuan Tseng, Yen-Chung Chen, Yi-Lun Lee, Wei-Sheng Lai, Yi-Hsuan Tsai, Wei-Chen Chiu
2021 B conf
ICIP
Yu-Ting Yen, Chia-Chi Cheng, Wei-Chen Chiu
2021 conf
UbiComp/ISWC Adjunct
Yu-Chun Chen, Kuei-Chun Kao, Yu-Jen Lee, Faye Shih, Wei-Chen Chiu, Yung-Ju Chang
2021 J jnl
CoRR
Fu-En Wang, Yu-Hsuan Yeh, Min Sun, Wei-Chen Chiu, Yi-Hsuan Tsai
2021 A* conf
CVPR
Fu-En Wang, Yu-Hsuan Yeh, Min Sun, Wei-Chen Chiu, Yi-Hsuan Tsai
2021 A* conf
ICCV
Jia-Ren Chang, Yong-Sheng Chen, Wei-Chen Chiu
2021 J jnl
CoRR
Jia-Ren Chang, Yong-Sheng Chen, Wei-Chen Chiu
2021 A conf
BMVC
Yi-Lun Lee, Yen-Chung Chen, Min-Yuan Tseng, Yi-Hsuan Tsai, Wei-Chen Chiu
2021 J jnl
CoRR
Chia-Hsiang Kao, Wei-Chen Chiu, Pin-Yu Chen
2021 J jnl
CoRR
Yu Hsuan Li, Tzu-Yin Chao, Ching-Chun Huang, Pin-Yu Chen, Wei-Chen Chiu
2021 J jnl
CoRR
Wei-Jan Ko, Hui-Yu Huang, Yu-Liang Kuo, Chen-Yi Chiu, Li-Heng Wang, Wei-Chen Chiu
2021 A* conf
ICRA
Bolivar Solarte, Chin-Hsuan Wu, Kuan-Wei Lu, Yi-Hsuan Tsai, Wei-Chen Chiu, Min Sun
2021 J jnl
CoRR
Bolivar Solarte, Chin-Hsuan Wu, Kuan-Wei Lu, Min Sun, Wei-Chen Chiu, Yi-Hsuan Tsai
2021 A conf
WACV
Ya-Chu Chang, Chia-Ni Lu, Chia-Chi Cheng, Wei-Chen Chiu
2021 J jnl
CoRR
Pei-Ze Chiang, Meng-Shiun Tsai, Hung-Yu Tseng, Wei-Sheng Lai, Wei-Chen Chiu
2021 A* conf
ICCV
Zunzhi You, Yi-Hsuan Tsai, Wei-Chen Chiu, Guanbin Li
2021 J jnl
CoRR
Zunzhi You, Yi-Hsuan Tsai, Wei-Chen Chiu, Guanbin Li
2020 A* conf
ICRA
Ning-Hsu Wang, Bolivar Solarte, Yi-Hsuan Tsai, Wei-Chen Chiu, Min Sun
2020 J jnl
CoRR
Rogan Morrow, Wei-Chen Chiu
2020 A* conf
CVPR
Fu-En Wang, Yu-Hsuan Yeh, Min Sun, Wei-Chen Chiu, Yi-Hsuan Tsai
2020 A conf
BMVC
Yen-Chung Chen, Keng-Jui Chang, Yi-Hsuan Tsai, Wei-Chen Chiu
2020 conf
ACCV (6)
Cheng-Hsun Lei, Yi-Hsin Chen, Wen-Hsiao Peng, Wei-Chen Chiu
2020 J jnl
CoRR
Cheng-Hsun Lei, Yi-Hsin Chen, Wen-Hsiao Peng, Wei-Chen Chiu
2020 conf
ECCV (7)
Chung-Sheng Lai, Zunzhi You, Chingchun Huang, Yi-Hsuan Tsai, Wei-Chen Chiu
2020 B conf
ICPR
You-Feng Wu, Vu-Hoang Tran, Ting-Wei Chang, Wei-Chen Chiu, Ching-Chun Huang
2020 J jnl
CoRR
Fu-En Wang, Yu-Hsuan Yeh, Min Sun, Wei-Chen Chiu, Yi-Hsuan Tsai
2020 A* conf
ICRA
Yi-Lun Lee, Min-Yuan Tseng, Yu-Cheng Luo, Dung-Ru Yu, Wei-Chen Chiu
2020 B conf
ICPR
Hsuan-Kai Kao, Cheng-Che Lee, Wei-Chen Chiu
2020 B conf
ICPR
Mian-Jhong Chiu, Wei-Chen Chiu, Hua-Tsung Chen, Jen-Hui Chuang
2020 A conf
WACV
Hung-Yu Chen, I-Sheng Fang, Chia-Ming Cheng, Wei-Chen Chiu
2020 J jnl
CoRR
Li-Wei Chen, Wei-Chen Chiu, Chin-Tien Wu
2020 J jnl
IEEE Trans. Emerg. Top. Comput. Intell.
Yu-Ying Yeh, Yen-Cheng Liu, Wei-Chen Chiu, Yu-Chiang Frank Wang
2020 conf
TAAI
Tsai-Jyun Fan, Chien-Yu Lu, Wei-Chen Chiu, Li Su, Che-Rung Lee
2020 A* conf
CVPR
Chia-Chi Cheng, Hung-Yu Chen, Wei-Chen Chiu
2020 conf
UbiComp/ISWC Adjunct
Piotr Kotlinski, Xi-Jing Chang, Chih-Yun Yang, Wei-Chen Chiu, Yung-Ju Chang
2020 J jnl
CoRR
Rogan Morrow, Wei-Chen Chiu
2019 J jnl
CoRR
Ning-Hsu Wang, Bolivar Solarte, Yi-Hsuan Tsai, Wei-Chen Chiu, Min Sun
2019 A conf
IROS
Tsun-Hsuan Wang, Hou-Ning Hu, Chieh Hubert Lin, Yi-Hsuan Tsai, Wei-Chen Chiu, Min Sun
2019 J jnl
CoRR
Tsun-Hsuan Wang, Hou-Ning Hu, Chieh Hubert Lin, Yi-Hsuan Tsai, Wei-Chen Chiu, Min Sun
2019 A* conf
CVPR
Wei-Lun Chang, Hui-Po Wang, Wen-Hsiao Peng, Wei-Chen Chiu
2019 J jnl
CoRR
Wei-Lun Chang, Hui-Po Wang, Wen-Hsiao Peng, Wei-Chen Chiu
2019 A* conf
CVPR
Hsueh-Ying Lai, Yi-Hsuan Tsai, Wei-Chen Chiu
2019 J jnl
CoRR
Hsueh-Ying Lai, Yi-Hsuan Tsai, Wei-Chen Chiu
2019 A conf
BMVC
Yen-Chung Chen, Keng-Jui Chang, Yi-Hsuan Tsai, Yu-Chiang Frank Wang, Wei-Chen Chiu
2019 conf
CVPR Workshops
Yen-Chung Chen, Keng-Jui Chang, Yi-Hsuan Tsai, Wei-Chen Chiu
2019 Misc conf
ICASSP
Yi-Lun Liao, Yao-Cheng Yang, Yuan-Fang Lin, Pin-Jung Chen, Chia-Wen Kuo, Wei-Chen Chiu, Yu-Chiang Frank Wang
2019 A* conf
ICRA
Tsun-Hsuan Wang, Fu-En Wang, Juan-Ting Lin, Yi-Hsuan Tsai, Wei-Chen Chiu, Min Sun
2018 A* conf
CVPR
Yen-Cheng Liu, Yu-Ying Yeh, Tzu-Chien Fu, Sheng-De Wang, Wei-Chen Chiu, Yu-Chiang Frank Wang
2018 J jnl
CoRR
Hung-Yu Chen, I-Sheng Fang, Wei-Chen Chiu
2018 conf
ECCV (15)
Hsuan-I Ho, Wei-Chen Chiu, Yu-Chiang Frank Wang
2017 conf
MLSP
Yen-Cheng Liu, Wei-Chen Chiu, Sheng-De Wang, Yu-Chiang Frank Wang
2017 J jnl
CoRR
Hsuan-I Ho, Wei-Chen Chiu, Yu-Chiang Frank Wang
2017 J jnl
CoRR
Tzu-Chien Fu, Yen-Cheng Liu, Wei-Chen Chiu, Sheng-De Wang, Yu-Chiang Frank Wang
2017 conf
MLSP
Tzu-Chien Fu, Wei-Chen Chiu, Yu-Chiang Frank Wang
2017 A* conf
CVPR
Yang He, Wei-Chen Chiu, Margret Keuper, Mario Fritz
2016
Wei-Chen Chiu
2016 J jnl
CoRR
Yang He, Wei-Chen Chiu, Margret Keuper, Mario Fritz
2016 conf
ACCV (5)
Wei-Chen Chiu, Fabio Galasso, Mario Fritz
2016 J jnl
CoRR
Wei-Chen Chiu, Fabio Galasso, Mario Fritz
2010 B conf
ICPR
Chingchun Huang, Wei-Chen Chiu, Sheng-Jyh Wang, Jen-Hui Chuang
2007 A conf
ICME
Qi Wu, Chingchun Huang, Shih-Yu Wang, Wei-Chen Chiu, Tsuhan Chen
redb/extractors/apk_extractors/apk_features.py
← Index redb/extractors/apk_extractors/apk_features.py python
import inspect
import zipfile
from datetime import datetime, timezone
from typing import Any

from redb.extractors.enum import Tag
from redb.extractors.apk_extractor import APKExtractor
from redb.models.dataclasses import APKFeatures


class APKFeaturesExtractor(APKExtractor):

    def __init__(
        self, filepath, log, exporters=None, index_prefix=None,
        known_benign=False, known_malicious=False,
        apk=None,
    ):
        super().__init__(
            filepath, log, exporters, index_prefix,
            known_benign, known_malicious, apk,
        )
        self.apk_features = None
        self.log.debug(inspect.currentframe().f_code.co_name)

    def tag(self):
        return Tag.APK_FEATURES.value

    def _extract_zip_timestamps(self):
        """Extract earliest and latest content modification from ZIP entries."""
        earliest = None
        latest = None
        try:
            zf = self._get_zip_file()
            if zf:
                with zf:
                    for info in zf.infolist():
                        try:
                            dt = datetime(*info.date_time)
                            if earliest is None or dt < earliest:
                                earliest = dt
                            if latest is None or dt > latest:
                                latest = dt
                        except (ValueError, TypeError):
                            continue
        except Exception as e:
            self.log.warning(f"Error extracting ZIP timestamps: {e}")
        return (
            earliest.isoformat() if earliest else None,
            latest.isoformat() if latest else None,
        )

    def _extract_supported_abis(self):
        """Determine supported ABIs from lib/ directory."""
        abis = set()
        for f in self._list_files():
            if f.startswith("lib/") and f.endswith(".so"):
                parts = f.split("/")
                if len(parts) >= 3:
                    abis.add(parts[1])
        return sorted(abis)

    def _count_dex_files(self):
        """Count DEX files and compute total size."""
        dex_count = 0
        total_size = 0
        try:
            zf = self._get_zip_file()
            if zf:
                with zf:
                    for info in zf.infolist():
                        if info.filename.endswith(".dex"):
                            dex_count += 1
                            total_size += info.file_size
        except Exception as e:
            self.log.warning(f"Error counting DEX files: {e}")
        return dex_count, total_size

    def _check_embedded_apk(self):
        """Check if the archive contains nested APK files."""
        for f in self._list_files():
            if f.lower().endswith(".apk"):
                return True
        return False

    def _safe_extract(self, field_name, func, default=None):
        """Extract a single field, logging and returning default on failure."""
        try:
            return func()
        except Exception as e:
            self.log.warning(
                f"Error extracting APK field '{field_name}' for "
                f"{self.hash.sha256}: {e}"
            )
            return default

    def extract(self):
        if not self._is_valid_apk():
            self.log.error(f"Invalid APK for {self.hash.sha256}")
            return None

        package_name = self._safe_extract(
            "package_name", lambda: self.apk.get_package()
        )
        app_name = self._safe_extract(
            "app_name", lambda: self.apk.get_app_name()
        )

        def _get_version_code():
            try:
                return int(self.apk.get_androidversion_code() or 0)
            except (ValueError, TypeError):
                return 0

        version_code = self._safe_extract("version_code", _get_version_code)
        version_name = self._safe_extract(
            "version_name", lambda: self.apk.get_androidversion_name()
        )

        def _get_sdk(getter):
            val = getter()
            return int(val) if val else None

        min_sdk = self._safe_extract(
            "min_sdk_version", lambda: _get_sdk(self.apk.get_min_sdk_version)
        )
        target_sdk = self._safe_extract(
            "target_sdk_version", lambda: _get_sdk(self.apk.get_target_sdk_version)
        )
        compile_sdk = self._safe_extract(
            "compile_sdk_version",
            lambda: _get_sdk(self.apk.get_effective_target_sdk_version),
        )

        main_activity = self._safe_extract(
            "main_activity", lambda: self.apk.get_main_activity()
        )

        is_debuggable = self._safe_extract(
            "is_debuggable",
            lambda: self.apk.get_attribute_value(
                "application", "debuggable"
            ) == "true",
            False,
        )
        allow_backup = self._safe_extract(
            "allow_backup",
            lambda: self.apk.get_attribute_value(
                "application", "allowBackup"
            ) != "false",
            True,
        )
        uses_cleartext = self._safe_extract(
            "uses_cleartext_traffic",
            lambda: self.apk.get_attribute_value(
                "application", "usesCleartextTraffic"
            ) == "true",
            False,
        )

        supported_abis = self._safe_extract(
            "supported_abis", self._extract_supported_abis, []
        )
        dex_count, total_dex_size = self._safe_extract(
            "dex_files", self._count_dex_files, (0, 0)
        )
        all_files = self._safe_extract("file_list", self._list_files, [])
        total_file_count = len(all_files)
        has_native_code = any(
            f.startswith("lib/") and f.endswith(".so") for f in all_files
        )
        has_assets = any(f.startswith("assets/") for f in all_files)
        contains_embedded_apk = self._safe_extract(
            "contains_embedded_apk", self._check_embedded_apk, False
        )

        uses_libraries = self._safe_extract(
            "uses_libraries",
            lambda: list(self.apk.get_libraries() or []),
            [],
        )

        earliest_mod, latest_mod = self._safe_extract(
            "zip_timestamps", self._extract_zip_timestamps, (None, None)
        )

        self.apk_features = APKFeatures(
            package_name=package_name,
            app_name=app_name,
            version_code=version_code,
            version_name=version_name,
            min_sdk_version=min_sdk,
            target_sdk_version=target_sdk,
            compile_sdk_version=compile_sdk,
            main_activity=main_activity,
            is_debuggable=is_debuggable,
            allow_backup=allow_backup,
            uses_cleartext_traffic=uses_cleartext,
            supported_abis=supported_abis,
            dex_count=dex_count,
            total_dex_size=total_dex_size,
            total_file_count=total_file_count,
            has_native_code=has_native_code,
            has_assets=has_assets,
            uses_libraries=uses_libraries,
            earliest_content_modification=earliest_mod,
            latest_content_modification=latest_mod,
            contains_embedded_apk=contains_embedded_apk,
        )
        return self.apk_features

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ClickHouseExporter":
            if not self.apk_features:
                return None

            f = self.apk_features
            current_time = datetime.now(timezone.utc)
            data = [[
                self.sha256,
                f.package_name,
                f.app_name,
                f.version_code,
                f.version_name,
                f.min_sdk_version,
                f.target_sdk_version,
                f.compile_sdk_version,
                f.main_activity,
                int(f.is_debuggable),
                int(f.allow_backup),
                int(f.uses_cleartext_traffic),
                f.supported_abis,
                f.dex_count,
                f.total_dex_size,
                f.total_file_count,
                int(f.has_native_code),
                int(f.has_assets),
                f.uses_libraries,
                f.earliest_content_modification,
                f.latest_content_modification,
                int(f.contains_embedded_apk),
                current_time,
            ]]

            column_names = [
                "sha256",
                "package_name", "app_name", "version_code", "version_name",
                "min_sdk_version", "target_sdk_version", "compile_sdk_version",
                "main_activity",
                "is_debuggable", "allow_backup", "uses_cleartext_traffic",
                "supported_abis",
                "dex_count", "total_dex_size", "total_file_count",
                "has_native_code", "has_assets",
                "uses_libraries",
                "earliest_content_modification", "latest_content_modification",
                "contains_embedded_apk",
                "analysis_date",
            ]

            column_type_names = [
                "FixedString(64)",
                "Nullable(String)", "Nullable(String)", "Nullable(UInt32)", "Nullable(String)",
                "Nullable(UInt16)", "Nullable(UInt16)", "Nullable(UInt16)",
                "Nullable(String)",
                "UInt8", "UInt8", "UInt8",
                "Array(String)",
                "UInt16", "UInt64", "UInt32",
                "UInt8", "UInt8",
                "Array(String)",
                "Nullable(String)", "Nullable(String)",
                "UInt8",
                "DateTime64(3, 'UTC')",
            ]

            return (data, column_names, column_type_names)

    def get_clickhouse_table(self) -> str:
        return "redb_apk_features"