Olivier Ly

47 papers A* 4A 4B 6C 8Journal 11Unranked 14
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Kohio Deflesselle, Mélodie Daniel, Aly Magassouba, Miguel Aranda, Olivier Ly
2025 A* conf
ICRA
Marc Duclusaud, Grégoire Passault, Vincent Padois, Olivier Ly
2025 A* conf
ICRA
Clément Gaspard, Marc Duclusaud, Grégoire Passault, Mélodie Daniel, Olivier Ly
2025 J jnl
CoRR
Marc Duclusaud, Grégoire Passault, Vincent Padois, Olivier Ly
2025 J jnl
CoRR
Gregoire Passault, Clément Gaspard, Olivier Ly
2025 J jnl
CoRR
Kohio Deflesselle, Mélodie Daniel, Aly Magassouba, Miguel Aranda, Olivier Ly
2024 J jnl
CoRR
Marc Duclusaud, Grégoire Passault, Vincent Padois, Olivier Ly
2024 J jnl
CoRR
Clément Gaspard, Marc Duclusaud, Grégoire Passault, Mélodie Daniel, Olivier Ly
2024 A conf
IROS
Clément Gaspard, Grégoire Passault, Mélodie Daniel, Olivier Ly
2024 J jnl
CoRR
Clément Gaspard, Grégoire Passault, Mélodie Daniel, Olivier Ly
2024 J jnl
CoRR
Julien Allali, Adrien Boussicault, Cyprien Brocaire, Céline Dobigeon, Marc Duclusaud, Clément Gaspard, Hugo Gimbert, Loïc Gondry, Olivier Ly, Grégoire Passault, Antoine Pirrone
2023 C conf
RoboCup
Julien Allali, Adrien Boussicault, Cyprien Brocaire, Céline Dobigeon, Marc Duclusaud, Clément Gaspard, Hugo Gimbert, Loïc Gondry, Olivier Ly, Grégoire Passault, Antoine Pirrone
2022 conf
ICARSC
Grégoire Passault, Clément Gaspard, Olivier Ly
2019 C conf
RoboCup
Loïc Gondry, Ludovic Hofer, Patxi Laborde-Zubieta, Olivier Ly, Lucie Mathé, Grégoire Passault, Antoine Pirrone, Antun Skuric
2019 J jnl
CoRR
Loïc Gondry, Ludovic Hofer, Patxi Laborde-Zubieta, Olivier Ly, Lucie Mathé, Grégoire Passault, Antoine Pirrone, Antun Skuric
2018 C conf
RoboCup
Reinhard Gerndt, Maike Paetzel, Jacky Baltes, Olivier Ly
2017 conf
SII
David Bitonneau, Theo Moulieres-Seban, Julie Dumora, Olivier Ly, Jean-Francois Thibault, Jean Marc Salotti, Bernard Claverie
2017 C conf
RoboCup
Julien Allali, Rémi Fabre, Loïc Gondry, Ludovic Hofer, Olivier Ly, Steve N'Guyen, Grégoire Passault, Antoine Pirrone, Quentin Rouxel
2016 C conf
RoboCup
Rémi Fabre, Quentin Rouxel, Grégoire Passault, Steve N'Guyen, Olivier Ly
2016 A* conf
ICRA
Quentin Rouxel, Gregoire Passault, Ludovic Hofer, Steve N'Guyen, Olivier Ly
2016 conf
ICARSC
Gregoire Passault, Quentin Rouxel, François Petit, Olivier Ly
2016 conf
Living Machines
Grégoire Passault, Quentin Rouxel, Rémi Fabre, Steve N'Guyen, Olivier Ly
2016 C conf
RoboCup
Julien Allali, Louis Deguillaume, Rémi Fabre, Loïc Gondry, Ludovic Hofer, Olivier Ly, Steve N'Guyen, Grégoire Passault, Antoine Pirrone, Quentin Rouxel
2015 conf
ICARSC
Olivier Ly, Hugo Gimbert, Gregoire Passault, Gerald Baron
2015 A conf
TACAS
Emmanuel Fleury, Olivier Ly, Gérald Point, Aymeric Vincent
2015 conf
Humanoids
Gregoire Passault, Quentin Rouxel, Ludovic Hofer, Steve N'Guyen, Olivier Ly
2014 J jnl
Theor. Comput. Sci.
Olivier Ly, Zhilin Wu
2013 B conf
RO-MAN
Paul Fudal, Hugo Gimbert, Loïc Gondry, Ludovic Hofer, Olivier Ly, Gregoire Passault
2011 B conf
NSS
Serge Chaumette, Olivier Ly, Renaud Tabary
2011 A conf
IROS
Olivier Ly, Matthieu Lapeyre, Pierre-Yves Oudeyer
2011 conf
Humanoids
Pierre-Yves Oudeyer, Olivier Ly, Pierre Rouanet
2011 conf
Humanoids
Matthieu Lapeyre, Olivier Ly, Pierre-Yves Oudeyer
2011 conf
TOSCA
Moez Ben MBarka, Francine Krief, Olivier Ly
2011 A* conf
CAV
Sébastien Bardin, Philippe Herrmann, Jérôme Leroux, Olivier Ly, Renaud Tabary, Aymeric Vincent
2010 A conf
IROS
Olivier Ly, Pierre-Yves Oudeyer
2010 conf
SIGGRAPH Emerging Technologies
Olivier Ly, Pierre-Yves Oudeyer
2010 C conf
EUC
Serge Chaumette, Olivier Ly, Renaud Tabary
2009 conf
CSE (2)
Céline Thuillet, Philippe Andouard, Olivier Ly
2009 conf
CAI
Michel Bauderon, Rui Chen, Olivier Ly
2008 B conf
ICGT
Michel Bauderon, Rui Chen, Olivier Ly
2008 C conf
CRiSIS
Philippe Andouard, Olivier Ly, Davy Rouillard
2005 B conf
ISAAC
Cyril Gavoille, Olivier Ly
2004 B conf
MFCS
Olivier Ly
2003 J jnl
J. Comput. Syst. Sci.
Olivier Ly
2003 conf
TPHOLs
June Andronick, Boutheina Chetali, Olivier Ly
2000 B conf
MFCS
Olivier Ly
2000 conf
FSTTCS
Olivier Ly
docs/apk-feature-schema.md
← Index docs/apk-feature-schema.md markdown
# APK Feature Analysis — ClickHouse Schema

All tables follow the `ReplacingMergeTree()` pattern (no version column — latest
insert wins on deduplication).

**Companion schema:** `docs/apk-code-schema.md` (code-analysis tables)

---

## Table overview

| # | Table | Engine | Key |
|---|-------|--------|-----|
| 1 | `redb_apk_features` | ReplacingMergeTree | `sha256` |
| 2 | `redb_apk_components` | ReplacingMergeTree | `(sha256, component_type, class_name)` |
| 3 | `redb_apk_manifest` | ReplacingMergeTree | `sha256` |
| 4 | `redb_apk_permissions` | ReplacingMergeTree | `(sha256, permission_name)` |
| 5 | `redb_apk_signature` | ReplacingMergeTree | `sha256` |
| 6 | `redb_apk_certificates` | ReplacingMergeTree | `(sha256, certificate_thumbprint)` |
| 7 | `redb_apk_dex` | ReplacingMergeTree | `(sha256, dex_sha256)` |
| 8 | `redb_apk_dex_api_usage` | ReplacingMergeTree | `(sha256, dex_sha256, api_category)` |
| 9 | `redb_apk_resources` | ReplacingMergeTree | `(sha256, resource_path)` |
| 10 | `redb_apk_native_libs` | ReplacingMergeTree | `(sha256, lib_abi, lib_filename)` |
| 11 | `redb_apk_inconsistency_tests` | ReplacingMergeTree | `sha256` |

---

## Table 1: `redb_apk_features`

Core metadata — one row per APK.

```sql
CREATE TABLE IF NOT EXISTS redb_apk_features (
    sha256              FixedString(64),
    package_name        Nullable(String),
    app_name            Nullable(String),
    version_code        Nullable(UInt32),
    version_name        Nullable(String),
    min_sdk_version     Nullable(UInt16),
    target_sdk_version  Nullable(UInt16),
    compile_sdk_version Nullable(UInt16),
    main_activity       Nullable(String),
    is_debuggable       UInt8,
    allow_backup        UInt8,
    uses_cleartext_traffic UInt8,
    supported_abis      Array(String),
    dex_count           UInt16,
    total_dex_size      UInt64,
    total_file_count    UInt32,
    has_native_code     UInt8,
    has_assets          UInt8,
    uses_libraries      Array(String),
    earliest_content_modification Nullable(String),
    latest_content_modification   Nullable(String),
    contains_embedded_apk UInt8,
    analysis_date       DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY sha256;
```

## Table 2: `redb_apk_components`

Manifest components — one row per component.

```sql
CREATE TABLE IF NOT EXISTS redb_apk_components (
    sha256              FixedString(64),
    component_type      LowCardinality(String),   -- 'activity', 'service', 'receiver', 'provider'
    class_name          String,
    is_exported         UInt8,
    intent_actions      Array(String),
    intent_categories   Array(String),
    analysis_date       DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY (sha256, component_type, class_name);
```

## Table 3: `redb_apk_manifest`

Manifest summary — one row per APK.

```sql
CREATE TABLE IF NOT EXISTS redb_apk_manifest (
    sha256              FixedString(64),
    activity_count      UInt16,
    service_count       UInt16,
    receiver_count      UInt16,
    provider_count      UInt16,
    intent_filters_by_action   Array(String),
    intent_filters_by_category Array(String),
    uses_features       Array(String),
    manifest_xml        Nullable(String),
    analysis_date       DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY sha256;
```

## Table 4: `redb_apk_permissions`

Permissions — one row per permission per APK.

```sql
CREATE TABLE IF NOT EXISTS redb_apk_permissions (
    sha256              FixedString(64),
    permission_name     String,
    protection_level    LowCardinality(String),
    is_custom           UInt8,
    analysis_date       DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY (sha256, permission_name);
```

## Table 5: `redb_apk_signature`

Signing info — one row per APK. The `apk_signer_*` fields identify the actual
signer certificate using V3→V2→V1 priority (V2/V3: `certificates[0]` per spec;
V1: `SignerInfo.issuerAndSerialNumber` matching). Prefixed with `apk_` to
distinguish from PE/Mach-O signer fields in cross-format queries.

```sql
CREATE TABLE IF NOT EXISTS redb_apk_signature (
    sha256              FixedString(64),
    is_signed           UInt8,
    signature_scheme_versions Array(UInt8),
    number_of_certificates UInt8,
    apk_signer_subject  Nullable(String),
    apk_signer_issuer   Nullable(String),
    analysis_date       DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY sha256;
```

## Table 6: `redb_apk_certificates`

Certificate details — one row per certificate per APK. The
`certificate_source_scheme` column tracks which signing scheme(s) the
certificate was found in (`'v1'`, `'v2'`, `'v3'`, or `'v1,v2'` when the same
certificate appears across multiple schemes).

```sql
CREATE TABLE IF NOT EXISTS redb_apk_certificates (
    sha256                    FixedString(64),
    certificate_subject       String,
    certificate_issuer        String,
    certificate_serial_number String,
    certificate_valid_from    DateTime64(3, 'UTC'),
    certificate_valid_to      DateTime64(3, 'UTC'),
    certificate_thumbprint    FixedString(40),
    certificate_algorithm     LowCardinality(String),
    key_size                  Nullable(UInt16),
    is_self_signed            UInt8,
    certificate_source_scheme LowCardinality(String),
    analysis_date             DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY (sha256, certificate_thumbprint);
```

## Table 7: `redb_apk_dex`

DEX file analysis — one row per DEX file.

```sql
CREATE TABLE IF NOT EXISTS redb_apk_dex (
    sha256              FixedString(64),
    dex_sha256          FixedString(64),
    dex_filename        String,
    dex_tlsh            Nullable(String),
    dex_class_count     UInt32,
    dex_method_count    UInt32,
    dex_string_count    UInt32,
    dex_top_packages    String,                    -- JSON
    dex_obfuscation_indicators String,             -- JSON
    analysis_date       DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY (sha256, dex_sha256);
```

## Table 8: `redb_apk_dex_api_usage`

DEX API usage — one row per category per DEX.

```sql
CREATE TABLE IF NOT EXISTS redb_apk_dex_api_usage (
    sha256              FixedString(64),
    dex_sha256          FixedString(64),
    api_category        LowCardinality(String),
    api_calls           Array(String),
    analysis_date       DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY (sha256, dex_sha256, api_category);
```

## Table 9: `redb_apk_resources`

Resource inventory — one row per resource.

```sql
CREATE TABLE IF NOT EXISTS redb_apk_resources (
    sha256              FixedString(64),
    resource_path       String,
    resource_size       UInt64,
    resource_sha256     FixedString(64),
    resource_magika     LowCardinality(String),
    resource_entropy             Float32,
    is_suspicious       UInt8,
    analysis_date       DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY (sha256, resource_path);
```

## Table 10: `redb_apk_native_libs`

Native libraries — one row per `.so` file.

```sql
CREATE TABLE IF NOT EXISTS redb_apk_native_libs (
    sha256              FixedString(64),
    lib_abi             LowCardinality(String),
    lib_filename        String,
    lib_size            UInt64,
    lib_sha256          FixedString(64),
    lib_is_known_packer UInt8,
    analysis_date       DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY (sha256, lib_abi, lib_filename);
```

## Table 11: `redb_apk_inconsistency_tests`

Inconsistency tests — one row per APK.

```sql
CREATE TABLE IF NOT EXISTS redb_apk_inconsistency_tests (
    sha256              FixedString(64),
    test_zip_bomb                    Nullable(UInt8),
    test_zip_duplicate_entries       Nullable(UInt8),
    test_zip_path_traversal          Nullable(UInt8),
    test_zip_suspicious_timestamps   Nullable(UInt8),
    test_hidden_dex_files            Nullable(UInt8),
    test_manifest_component_mismatch Nullable(UInt8),
    test_debuggable_release          Nullable(UInt8),
    test_emulator_detection_strings  Nullable(UInt8),
    test_debugger_detection          Nullable(UInt8),
    test_root_detection              Nullable(UInt8),
    analysis_date       DateTime64(3, 'UTC')
) ENGINE = ReplacingMergeTree()
ORDER BY sha256;
```