Файлы System/bin Android 12. Справочник.


  Все     Команда     Скрипт     Служба     Приложение  

lshal
Список и отладка HIDL HAL

Тип файла: команда
  Рус  
lshal: List and debug HIDL HALs.
   (for AIDL HALs, see `dumpsys`)

commands:
    list         List HIDL HALs.
    debug        Debug a specified HIDL HAL.
    help         Print help message.
    wait         Wait for HIDL HAL to start if it is not already started.
If no command is specified, `list` is the default.

list:
    lshal
    lshal list
        List all hals with default ordering and columns (`lshal list -Vliepc`)
    lshal list [-h|--help] 

  • -h, --help: Print help message for list (`lshal help list`) lshal [list] [OPTIONS...]

  • -i, --interface: print the instance name column

  • -l, --released: print the 'is released?' column (Y=released, N=unreleased, ?=unknown)

  • -t, --transport: print the transport mode column

  • -r, --arch: print the bitness column

  • -s, --hash: print hash of the interface

  • -p, --pid: print the server PID, or server cmdline if -m is set

  • -a, --address: print the server object address column

  • -c, --clients: print the client PIDs, or client cmdlines if -m is set

  • -e, --threads: print currently used/available threads (note, available threads created lazily)

  • -m, --cmdline: print cmdline instead of PIDs

  • -d[=<arg>], --debug[=<arg>]: Emit debug info from IBase::debug with empty options. Cannot be used with --neat. Writes to specified file if 'arg' is provided, otherwise stdout.

  • -V, --vintf: print VINTF info. This column contains a comma-separated list of:

  • - DM: if the HIDL HAL is in the device manifest

  • - DC: if the HIDL HAL is in the device compatibility matrix

  • - FM: if the HIDL HAL is in the framework manifest

  • - FC: if the HIDL HAL is in the framework compatibility matrix

  • - X: if the HIDL HAL is in none of the above lists

  • -S, --service-status: print service status column. Possible values are:

  • - alive: alive and running hwbinder service;

  • - registered;dead: registered to hwservicemanager but is not responsive;

  • - declared: only declared in VINTF manifest but is not registered to hwservicemanager;

  • - N/A: no information for passthrough HALs.

  • -A, --all: print all columns

  • --init-vintf: form a skeleton HAL manifest to specified file, or stdout if no file specified.

  • --init-vintf-partition=<arg>: Specify the partition of the HAL manifest generated by --init-vintf. Valid values are 'system', 'vendor', and 'odm'. Default is 'vendor'.

  • --sort=<arg>: sort by a column. 'arg' can be (i|interface) or (p|pid).

  • --neat: output is machine parsable (no explanatory text). Cannot be used with --debug.

  • --types=<arg>: comma-separated list of one or more sections. The output is restricted to the selected section(s). Valid options are: (b|binderized), (c|passthrough_clients), (l|passthrough_libs), (v|vintf), (z|lazy), and (a|all). Default is `b,c,l`. debug: lshal debug [-E] <interface> [options [options [...]]] Print debug information of a specified interface.

  • -E: excludes debug output if HIDL HAL is actually a subclass. <interface>: Format is `android.hardware.foo@1.0::IFoo/default`. If instance name is missing `default` is used. options: space separated options to IBase::debug. help: lshal lshal lshal help Print this help message lshal help list Print help message for list lshal help debug Print help message for debug lshal help help Print help message for help lshal help wait Print help message for wait wait: lshal wait <interface/instance> For a HAL that is on the device, wait for the HAL to start. This will not start a HAL unless it is configured as a lazy HAL. <interface>: Format is `android.hardware.foo@1.0::IFoo/default`. If instance name is missing `default` is used.
  •    

    Комментарии
    Hardware Abstraction Layer (HAL)-
    Уровень аппаратной абстракции

    HIDL - язык определения интерфейса HAL
    HIDL — язык описания интерфейса (IDL), определяющий интерфейс между HAL и
    его пользователями.
    HIDL позволяет указывать типы и вызовы методов, собранные в интерфейсы и пакеты.
    В более широком смысле HIDL — это система для связи между кодовыми базами,
    которые могут быть скомпилированы независимо друг от друга.
    Начиная с Android 10, HIDL устарел, и Android переходит на повсеместное использование AIDL

    HIDL предназначен для межпроцессного взаимодействия (IPC).
    HAL, созданные с помощью HDL, называются Binderized HAL, поскольку они могут
    взаимодействовать с другими уровнями архитектуры с помощью вызовов межпроцессного
    взаимодействия (IPC).

    Binderized HAL запускаются в отдельном процессе от клиента, который их использует.
    Для библиотек, которые должны быть связаны с процессом, также доступен сквозной режим
    не поддерживается в Java).

    HIDL определяет структуры данных и сигнатуры методов, организованные в интерфейсы
    (аналогично классу), которые собираются в пакеты.

    Синтаксис HIDL выглядит знакомым программистам на C++ и Java,
    но с другим набором ключевых слов. HIDL также использует аннотации в стиле Java

    Терминология

    binderized Указывает, что HIDL используется для удаленных вызовов процедур между процессами, реализованными с помощью механизма, подобного Binder. См. также прохождение .
    callback, asynchronous Интерфейс, обслуживаемый пользователем HAL, передаваемый в HAL (с использованием метода HIDL) и вызываемый HAL для возврата данных в любое время.
    callback, synchronous Возвращает данные из реализации метода HIDL сервера клиенту. Не используется для методов, возвращающих void или одно примитивное значение.
    client Процесс, вызывающий методы определенного интерфейса. Процесс платформы HAL или Android может быть клиентом одного интерфейса и сервером другого. См. также прохождение .
    extends Указывает интерфейс, который добавляет методы и/или типы к другому интерфейсу. Интерфейс может расширять только один другой интерфейс. Может использоваться для дополнительного приращения версии в пакете с тем же именем или для нового пакета (например, расширения поставщика) для создания более старого пакета.
    generates Указывает метод интерфейса, возвращающий значения клиенту. Чтобы вернуть одно не примитивное значение или более одного значения, генерируется синхронная функция обратного вызова.
    interface Коллекция методов и типов. Переведен в класс на C++ или Java. Все методы в интерфейсе вызываются в одном направлении: клиентский процесс вызывает методы, реализованные серверным процессом.
    oneway При применении к методу HIDL указывает, что метод не возвращает значений и не блокируется.
    package Коллекция интерфейсов и типов данных, разделяющих версию.
    passthrough Режим dlopen , в котором сервер является разделяемой библиотекой, открытой клиентом. В сквозном режиме клиент и сервер — это один и тот же процесс, но разные кодовые базы. Используется только для переноса устаревших кодовых баз в модель HIDL. См. также Связанный .
    server Процесс, реализующий методы интерфейса. См. также прохождение .
    transport Инфраструктура HIDL, которая перемещает данные между сервером и клиентом.
    version Версия пакета. Состоит из двух целых чисел, старшего и младшего. Второстепенные приращения версии могут добавлять (но не изменять) типы и методы.