Vinay Pratap Singh

35 papers Journal 30Unranked 5
YearRankTypeTitle / Venue / Authors
2026 J jnl
Soft Comput.
Aditya Prasad Padhy, Sibarama Panigrahi, Vinay Pratap Singh, Prateek Pratyasha
2025 J jnl
IEEE Access
Akhilesh Mathur, Vinay Pratap Singh, Mahipal Bukya
2025 J jnl
IEEE Access
Tarun Kumar Bashishtha, Vinay Pratap Singh, Rishav Dubey
2025 J jnl
Annu. Rev. Control.
Tarun Kumar Bashishtha, Vinay Pratap Singh, Umesh Kumar Yadav, Umesh Kumar Sahu
2025 J jnl
Int. J. Autom. Control.
Veerpratap Meena, Preeti Meena, Vinay Pratap Singh, Ahmad Taher Azar, Saim Ahmed
2025 J jnl
IEEE Access
Umesh Kumar Yadav, Vinay Pratap Singh, Luigi Fortuna, Umesh Kumar Sahu
2024 J jnl
Math. Comput. Simul.
Veerpratap Meena, Vinay Pratap Singh, Josep M. Guerrero
2024 J jnl
IEEE Access
Mamta, Vinay Pratap Singh, Akanksha V. Waghmare, Veerpratap Meena, Francesco Benedetto, Tarun Varshney
2024 J jnl
IEEE Trans. Veh. Technol.
Veerpratap Meena, Vinay Pratap Singh, Sanjeevikumar Padmanaban, Francesco Benedetto
2024 J jnl
J. Control. Decis.
Umesh Kumar Yadav, Praveen Mande, Vinay Pratap Singh
2023 conf
ICCCNT
Jitendra Kapoor, Umesh Kumar Yadav, Bhanu Pratap, Vinay Pratap Singh
2023 J jnl
Int. J. Model. Identif. Control.
Umesh Kumar Yadav, Naresh Patnana, Veerpratap Meena, Vinay Pratap Singh
2023 J jnl
Circuits Syst. Signal Process.
Umesh Kumar Yadav, Vinay Pratap Singh
2022 J jnl
J. Intell. Robotic Syst.
Umesh Kumar Yadav, Veerpratap Meena, Vinay Pratap Singh
2022 J jnl
Int. J. Model. Identif. Control.
Nitin Mathur, Veerpratap Meena, Vinay Pratap Singh
2022 J jnl
Circuits Syst. Signal Process.
Veerpratap Meena, Vinay Pratap Singh, Lalbihari Barik
2022 J jnl
Int. J. Model. Identif. Control.
Veerpratap Meena, Vinay Pratap Singh
2022 J jnl
IEEE Access
Veerpratap Meena, Umesh Kumar Yadav, Vinay Pratap Singh, Baseem Khan
2022 conf
ICIMMI
P. D. Dewangan, Praveen Mande, Ankur Gupta, P. J. Krishna, Veerpratap Meena, Vinay Pratap Singh
2022 J jnl
IEEE Access
P. J. Krishna, Veerpratap Meena, Vinay Pratap Singh, Baseem Khan
2022 J jnl
Artif. Intell. Rev.
Bharat Singh, Rajesh Kumar, Vinay Pratap Singh
2022 J jnl
J. Frankl. Inst.
Umesh Kumar Yadav, Vinay Pratap Singh
2021 J jnl
IEEE Access
Jagadish Kumar Bokam, Vinay Pratap Singh, Sharada Nandan Raw, Ramesh Devarapalli, Fausto Pedro García Márquez
2021 conf
OCIT
Veerpratap Meena, Nitin Kumar, Rakesh Kumar Lenka, Rabindra K. Barik, Vinay Pratap Singh
2021 J jnl
Circuits Syst. Signal Process.
Aditya Prasad Padhy, Varsha Singh, Vinay Pratap Singh
2020 J jnl
IEEE Syst. J.
Tapan Prakash, Vinay Pratap Singh, Soumya R. Mohanty
2020 J jnl
Circuits Syst. Signal Process.
P. D. Dewangan, Vinay Pratap Singh, S. L. Sinha
2020 J jnl
Int. J. Comput. Aided Eng. Technol.
Vinay Pratap Singh, Naresh Patnana, Sugandh Pratap Singh
2020 J jnl
IEEE Syst. J.
Tapan Prakash, Soumya R. Mohanty, Vinay Pratap Singh
2020 J jnl
Algorithms
Naresh Patnana, Swapnajit Pattnaik, Tarun Varshney, Vinay Pratap Singh
2020 J jnl
Int. J. Model. Identif. Control.
Naresh Patnana, Swapnajit Pattnaik, Vinay Pratap Singh, Rajesh Kumar
2020 J jnl
Algorithms
Jagadish Kumar Bokam, Naresh Patnana, Tarun Varshney, Vinay Pratap Singh
2019 conf
WPMC
Sidharth Garg, Bhaumil Katiyar, Vinay Pratap Singh, Pavan Kumar Mishra
2018 J jnl
Wirel. Pers. Commun.
Pavan Kumar Mishra, Amitesh Kumar, Sudhakar Pandey, Vinay Pratap Singh
2016 conf
ICIIS
Kuldeep Rana, K. Naga Mahesh, Jong-Hyun Ahn, Vinay Pratap Singh
redb/extractors/decompiler/apk/library_filter.py
← Index redb/extractors/decompiler/apk/library_filter.py python
"""Package-based library filtering for APK DEX code analysis.

Determines whether a method belongs to a known library/framework package
and should be filtered out of content tables. This is the Android equivalent
of is_lib_or_thunk() in the Binary Ninja pipeline.
"""

import os
from typing import Dict, List


DEFAULT_LIBRARY_PREFIXES = [
    "android.",
    "androidx.",
    "com.google.android.",
    "com.google.firebase.",
    "com.google.gson.",
    "com.google.protobuf.",
    "kotlin.",
    "kotlinx.",
    "org.apache.",
    "com.squareup.",
    "io.reactivex.",
    "org.reactivestreams.",
    "com.facebook.",
    "com.crashlytics.",
    "io.fabric.",
    "org.junit.",
    "org.mockito.",
]


class LibraryFilter:
    """Filters library/framework classes from APK analysis."""

    def __init__(self, prefixes: List[str] = None):
        env_prefixes = os.getenv("APK_LIBRARY_PREFIXES")
        if env_prefixes:
            self._prefixes = [p.strip() for p in env_prefixes.split(",") if p.strip()]
        elif prefixes is not None:
            self._prefixes = prefixes
        else:
            self._prefixes = DEFAULT_LIBRARY_PREFIXES

        # Convert Dalvik-style prefixes to both formats for matching
        self._dot_prefixes = tuple(self._prefixes)

        self._stats = {"library": 0, "user": 0}

    def is_library(self, class_name: str) -> bool:
        """Check if a class belongs to a known library/framework package.

        Accepts both Java dot notation (com.example.Foo) and Dalvik
        descriptor notation (Lcom/example/Foo;).
        """
        # Normalize Dalvik descriptor to dot notation
        normalized = self._normalize_class_name(class_name)

        is_lib = normalized.startswith(self._dot_prefixes)
        if is_lib:
            self._stats["library"] += 1
        else:
            self._stats["user"] += 1
        return is_lib

    def get_filter_stats(self) -> Dict[str, int]:
        """Return counts of filtered vs. retained classes."""
        return dict(self._stats)

    @staticmethod
    def _normalize_class_name(class_name: str) -> str:
        """Convert Dalvik descriptor to dot notation.

        Lcom/example/Foo; -> com.example.Foo
        com.example.Foo -> com.example.Foo
        """
        if class_name.startswith("L") and class_name.endswith(";"):
            return class_name[1:-1].replace("/", ".")
        return class_name.replace("/", ".")