Jack H. Koolen

115 papers Journal 115
YearRankTypeTitle / Venue / Authors
2026 J jnl
Eur. J. Comb.
Jack H. Koolen, Hong-Jun Ge, Chenhui Lv, Qianqian Yang
2026 J jnl
Eur. J. Comb.
Jack H. Koolen, Chenhui Lv, Alexander L. Gavrilyuk
2026 J jnl
J. Comb. Theory, Ser. A
Chenhui Lv, Jack H. Koolen
2026 J jnl
CoRR
Hans-Jürgen Bandelt, Victor Chepoi, Andreas W. M. Dress, Jack H. Koolen
2025 J jnl
J. Comb. Theory B
Alexander L. Gavrilyuk, Jack H. Koolen
2025 J jnl
Discret. Math.
Jack H. Koolen, Chenhui Lv, Jongyook Park, Qianqian Yang
2025 J jnl
J. Comb. Theory, Ser. A
Edwin R. van Dam, Jack H. Koolen, Yanzhen Xiong
2025 J jnl
Discret. Math.
Qianqian Yang, Jack H. Koolen
2025 J jnl
Eur. J. Comb.
Jack H. Koolen, Brhane Gebremichel, Jeong Rye Park, Jongyook Park
2025 J jnl
Eur. J. Comb.
Jack H. Koolen, Kefan Yu, Xiaoye Liang, Harrison Choi, Greg Markowsky
2025 J jnl
Electron. J. Comb.
Hong-Jun Ge, Jack H. Koolen
2024 J jnl
Discret. Math.
Mamoon Abdullah, Brhane Gebremichel, Sakander Hayat, Jack H. Koolen
2024 J jnl
Electron. J. Comb.
Jack H. Koolen, Jae-Ho Lee, Shuang-Dong Li, Yun-Han Li, Xiaoye Liang, Ying-Ying Tan
2023 J jnl
Electron. J. Comb.
Zheng-Jiang Xia, Jae-Ho Lee, Jack H. Koolen
2023 J jnl
J. Comb. Theory A
Aida Abiad, Wouter Castryck, Maarten De Boeck, Jack H. Koolen, Sjanne Zeijlemaker
2023 J jnl
Graphs Comb.
Ying-Ying Tan, Jack H. Koolen, Mengyue Cao, Jongyook Park
2022 J jnl
Des. Codes Cryptogr.
Aida Abiad, Bart De Bruyn, Jozefien D'haeseleer, Jack H. Koolen
2022 J jnl
Eur. J. Comb.
Sebastian M. Cioaba, Jack H. Koolen, Masato Mimura, Hiroshi Nozaki, Takayuki Okuda
2022 J jnl
Discret. Math.
Jack H. Koolen, Jae-Ho Lee, Ying-Ying Tan
2022 J jnl
Discret. Math.
Yuanjiang Zhang, Xiaoye Liang, Jack H. Koolen
2022 J jnl
J. Comb. Theory A
Mengyue Cao, Jack H. Koolen, Yen-Chi Roger Lin, Wei-Hsuan Yu
2022 J jnl
Electron. J. Comb.
Jack H. Koolen, Brhane Gebremichel
2022 J jnl
Graphs Comb.
Ying-Ying Tan, Jack H. Koolen, Mengyue Cao, Jongyook Park
2021 J jnl
Exp. Math.
Noga Alon, Sebastian M. Cioaba, Brandon D. Gilbert, Jack H. Koolen, Brendan D. McKay
2021 J jnl
Eur. J. Comb.
Gary R. W. Greaves, Jack H. Koolen, Jongyook Park
2021 J jnl
J. Comb. Theory A
Sebastian M. Cioaba, Jack H. Koolen, Paul M. Terwilliger
2021 J jnl
Graphs Comb.
Mengyue Cao, Jack H. Koolen, Akihiro Munemasa, Kiyoto Yoshino
2021 J jnl
Graphs Comb.
Jack H. Koolen, Akihiro Munemasa, Atsuhiro Nakamoto, Katsuhiro Ota, Akira Saito
2021 J jnl
Graphs Comb.
Jack H. Koolen, Mengyue Cao, Qianqian Yang
2021 J jnl
Electron. J. Comb.
Ying-Ying Tan, Xiaoye Liang, Jack H. Koolen
2021 J jnl
Discret. Math.
Brhane Gebremichel, Mengyue Cao, Jack H. Koolen
2020 J jnl
Discuss. Math. Graph Theory
Jack H. Koolen, Ying-Ying Tan, Zheng-Jiang Xia
2020 J jnl
J. Comb. Theory A
Zhi Qiao, Jack H. Koolen, Greg Markowsky
2020 J jnl
Eur. J. Comb.
Ivan Guo, Jack H. Koolen, Greg Markowsky, Jongyook Park
2020 J jnl
CoRR
Sebastian M. Cioaba, Jack H. Koolen, Masato Mimura, Hiroshi Nozaki, Takayuki Okuda
2019 J jnl
Comb.
Alexander L. Gavrilyuk, Jack H. Koolen
2019 J jnl
J. Comb. Theory B
Jack H. Koolen, Qianqian Yang, Jae Young Yang
2019 J jnl
Eur. J. Comb.
Sakander Hayat, Jack H. Koolen, Muhammad Riaz
2019 J jnl
Discret. Math.
Gary R. W. Greaves, Jack H. Koolen
2019 J jnl
Eur. J. Comb.
Sejeong Bang, Alexander L. Gavrilyuk, Jack H. Koolen
2019 J jnl
Electron. J. Comb.
Zhi Qiao, Yifan Jing, Jack H. Koolen
2019 J jnl
Eur. J. Comb.
Zhi Qiao, Jongyook Park, Jack H. Koolen
2019 J jnl
Graphs Comb.
Jack H. Koolen, Masood Ur Rehman, Qianqian Yang
2019 J jnl
CoRR
Francesco Belardo, Sebastian M. Cioaba, Jack H. Koolen, Jianfeng Wang
2019 J jnl
Discret. Math.
Katharina T. Huber, Jack H. Koolen, Vincent Moulton
2019 J jnl
Graphs Comb.
Jack H. Koolen, Quaid Iqbal, Jongyook Park, Masood Ur Rehman
2018 J jnl
CoRR
Sebastian M. Cioaba, Jack H. Koolen, Hiroshi Nozaki
2018 J jnl
CoRR
Sebastian M. Cioaba, Brandon D. Gilbert, Jack H. Koolen, Brendan D. McKay
2018 J jnl
Eur. J. Comb.
Gary R. W. Greaves, Jack H. Koolen
2018 J jnl
J. Comb. Theory B
Xi-Ming Cheng, Gary R. W. Greaves, Jack H. Koolen
2018 J jnl
Art Discret. Appl. Math.
Francesco Belardo, Sebastian M. Cioaba, Jack H. Koolen, Jianfeng Wang
2018 J jnl
J. Comb. Theory B
Edwin R. van Dam, Jack H. Koolen, Jongyook Park
2017 J jnl
Des. Codes Cryptogr.
Xi-Ming Cheng, Jack H. Koolen
2017 J jnl
Electron. J. Comb.
Qianqian Yang, Aida Abiad, Jack H. Koolen
2017 J jnl
Des. Codes Cryptogr.
Jack H. Koolen, Zhi Qiao
2017 J jnl
Des. Codes Cryptogr.
Aart Blokhuis, Edwin R. van Dam, Willem H. Haemers, Jack H. Koolen
2016 J jnl
Electron. J. Comb.
Zhi Qiao, Shao-Fei Du, Jack H. Koolen
2016 J jnl
Discret. Math.
Jack H. Koolen, Greg Markowsky
2016 J jnl
Eur. J. Comb.
Xi-Ming Cheng, Alexander L. Gavrilyuk, Gary R. W. Greaves, Jack H. Koolen
2016 J jnl
SIAM J. Discret. Math.
Sebastian M. Cioaba, Jack H. Koolen, Hiroshi Nozaki, Jason R. Vermette
2015 J jnl
J. Comb. Theory B
Gary R. W. Greaves, Jack H. Koolen, Akihiro Munemasa, Yoshio Sano, Tetsuji Taniguchi
2015 J jnl
CoRR
Sebastian M. Cioaba, Jack H. Koolen, Hiroshi Nozaki, Jason R. Vermette
2015 J jnl
CoRR
Sebastian M. Cioaba, Jack H. Koolen, Weiqiang Li
2015 J jnl
Discret. Math.
Sven Herrmann, Jack H. Koolen, Alice Lesser, Vincent Moulton, Taoyang Wu
2015 J jnl
Graphs Comb.
Sejeong Bang, Jack H. Koolen, Jongyook Park
2014 J jnl
Eur. J. Comb.
Sebastian M. Cioaba, Jack H. Koolen, Weiqiang Li
2014 J jnl
Ars Math. Contemp.
Hye Jin Jang, Jack H. Koolen, Akihiro Munemasa, Tetsuji Taniguchi
2014 J jnl
J. Comb. Theory B
Edwin R. van Dam, Willem H. Haemers, Jack H. Koolen
2013 J jnl
Eur. J. Comb.
Jack H. Koolen, Jongyook Park
2013 J jnl
CoRR
Sebastian M. Cioaba, Jack H. Koolen, Weiqiang Li
2013 J jnl
Electron. J. Comb.
Jack H. Koolen, Joohyung Kim, Jongyook Park
2013 J jnl
Eur. J. Comb.
Jack H. Koolen, Greg Markowsky, Jongyook Park
2013 J jnl
J. Comb. Theory B
Jongyook Park, Jack H. Koolen, Greg Markowsky
2012 J jnl
Des. Codes Cryptogr.
Jack H. Koolen, Jongyook Park
2012 J jnl
J. Comb. Theory A
Jack H. Koolen, Jongyook Park
2012 J jnl
Discret. Math.
Jack H. Koolen, Alice Lesser, Vincent Moulton, Taoyang Wu
2012 J jnl
J. Comb. Theory A
Sebastian M. Cioaba, Kijung Kim, Jack H. Koolen
2011 J jnl
J. Comb. Theory A
Aleksandar Jurisic, Jack H. Koolen
2011 J jnl
CoRR
Sebastian M. Cioaba, Kijung Kim, Jack H. Koolen
2010 J jnl
Eur. J. Comb.
Sebastian M. Cioaba, Edwin R. van Dam, Jack H. Koolen, Jae-Ho Lee
2010 J jnl
Graphs Comb.
Sejeong Bang, Akira Hiraki, Jack H. Koolen
2010 J jnl
Eur. J. Comb.
Jack H. Koolen, Jongyook Park
2009 J jnl
Electron. J. Comb.
Ebrahim Ghorbani, Jack H. Koolen, Jae Young Yang
2009 J jnl
Eur. J. Comb.
Jack H. Koolen, Alice Lesser, Vincent Moulton
2009 J jnl
Eur. J. Comb.
Sejeong Bang, Tatsuya Fujisaki, Jack H. Koolen
2009 J jnl
Eur. J. Comb.
Andries E. Brouwer, Jack H. Koolen
2008 J jnl
Eur. J. Comb.
Kris Coolsaet, Aleksandar Jurisic, Jack H. Koolen
2008 J jnl
Discret. Math.
Sejeong Bang, Hyun Kwang Kim, Jack H. Koolen, Mitsugu Hirasaka, Sung Yell Song
2008 J jnl
Eur. J. Comb.
Aleksandar Jurisic, Jack H. Koolen, Arjana Zitnik
2007 J jnl
Discret. Comput. Geom.
Jack H. Koolen, Alice Lesser, Vincent Moulton
2006 J jnl
Eur. J. Comb.
Hans-Jürgen Bandelt, Victor Chepoi, Andreas W. M. Dress, Jack H. Koolen
2005 J jnl
J. Comb. Theory A
Akira Hiraki, Jack H. Koolen
2005 J jnl
Discret. Appl. Math.
Andreas W. M. Dress, Barbara R. Holland, Katharina T. Huber, Jack H. Koolen, Vincent Moulton, Jan Weyer-Menkhoff
2005 J jnl
Des. Codes Cryptogr.
Sejeong Bang, Jack H. Koolen
2005 J jnl
J. Comb. Theory B
Aleksandar Jurisic, Jack H. Koolen, Stefko Miklavic
2004 J jnl
Graphs Comb.
Akira Hiraki, Jack H. Koolen
2004 J jnl
Eur. J. Comb.
Jack H. Koolen, Vincent Moulton, Dragan Stevanovic
2003 J jnl
Discret. Math.
Andries E. Brouwer, Jack H. Koolen, Mikhail H. Klin
2003 J jnl
Eur. J. Comb.
Sejeong Bang, Jack H. Koolen, Vincent Moulton
2003 J jnl
Eur. J. Comb.
Andreas W. M. Dress, Jack H. Koolen, Vincent Moulton
2003 J jnl
Graphs Comb.
Jack H. Koolen, Vincent Moulton
2003 J jnl
J. Comb. Theory A
Andries E. Brouwer, Chris D. Godsil, Jack H. Koolen, William J. Martin
2002 J jnl
Eur. J. Comb.
Jack H. Koolen, Vincent Moulton
2002 J jnl
Eur. J. Comb.
Andreas W. M. Dress, Jack H. Koolen, Vincent Moulton
2002 J jnl
Eur. J. Comb.
Jack H. Koolen, Vincent Moulton
2001 J jnl
Adv. Appl. Math.
Jack H. Koolen, Vincent Moulton
2000 J jnl
Eur. J. Comb.
Jack H. Koolen, Vincent Moulton, Udo Tönges
2000 J jnl
Des. Codes Cryptogr.
Aleksandar Jurisic, Jack H. Koolen
2000 J jnl
Des. Codes Cryptogr.
Jack H. Koolen, Monique Laurent, Alexander Schrijver
2000 J jnl
Eur. J. Comb.
Aleksandar Jurisic, Jack H. Koolen
1999 J jnl
Inf. Process. Lett.
Sandi Klavzar, Jack H. Koolen, Henry Martyn Mulder
1998 J jnl
Comb.
Jack H. Koolen
1998 J jnl
Discret. Math.
Jack H. Koolen, Vincent Moulton, Udo Tönges
1994 J jnl
Eur. J. Comb.
Jack H. Koolen, Sergey V. Shpectorov
1992 J jnl
Eur. J. Comb.
Jack H. Koolen
redb/extractors/decompiler/apk/apktool_wrapper.py
← Index redb/extractors/decompiler/apk/apktool_wrapper.py python
"""Apktool disassembler subprocess wrapper.

Manages apktool subprocess execution for smali disassembly,
following the CAPA extractor subprocess pattern.
"""

import os
import signal
import subprocess
from typing import List, Optional


class ApktoolDisassembler:
    """Subprocess wrapper for apktool smali disassembly."""

    def __init__(
        self, apktool_path: str = None, timeout: int = None, log=None
    ):
        self.apktool_path = apktool_path or os.getenv("APKTOOL_PATH", "apktool")
        self.timeout = timeout or int(os.getenv("APKTOOL_TIMEOUT", "120"))
        self.log = log

    def disassemble(self, apk_path: str, output_dir: str) -> bool:
        """Run apktool disassembly on an APK file.

        Returns True on success, False on failure.
        """
        cmd = [
            self.apktool_path,
            "d",
            "--no-res",
            "--force",
            "--output", output_dir,
            apk_path,
        ]

        try:
            process = subprocess.Popen(
                cmd,
                stdout=subprocess.PIPE,
                stderr=subprocess.PIPE,
                text=True,
                preexec_fn=os.setsid,
            )

            try:
                stdout, stderr = process.communicate(timeout=self.timeout)
                if process.returncode != 0:
                    if self.log:
                        self.log.warning(
                            f"apktool returned non-zero exit code {process.returncode}: "
                            f"{stderr[:500] if stderr else 'no stderr'}"
                        )
                    return False
                return True

            except subprocess.TimeoutExpired:
                if self.log:
                    self.log.error(
                        f"apktool timed out after {self.timeout}s"
                    )
                try:
                    os.killpg(os.getpgid(process.pid), signal.SIGTERM)
                    process.wait(timeout=3)
                except (ProcessLookupError, subprocess.TimeoutExpired):
                    try:
                        os.killpg(os.getpgid(process.pid), signal.SIGKILL)
                    except ProcessLookupError:
                        pass
                return False

        except FileNotFoundError:
            if self.log:
                self.log.error(
                    f"apktool not found at '{self.apktool_path}'. "
                    "Install apktool or set APKTOOL_PATH env var."
                )
            return False
        except Exception as e:
            if self.log:
                self.log.error(f"apktool execution error: {e}")
            return False

    def get_smali_directories(self, output_dir: str) -> List[str]:
        """Return paths to all smali output directories.

        Handles multi-DEX: smali/, smali_classes2/, smali_classes3/, etc.
        """
        smali_dirs = []
        if not os.path.isdir(output_dir):
            return smali_dirs

        for entry in sorted(os.listdir(output_dir)):
            if entry == "smali" or entry.startswith("smali_classes"):
                full_path = os.path.join(output_dir, entry)
                if os.path.isdir(full_path):
                    smali_dirs.append(full_path)

        return smali_dirs