Android HIDL lshal

https://source.android.google.cn/devices/architecture/vintf/resources?hl=zh-cn

 

LSHAL
LSHAL 是一种设备端工具,可以列出向 hwservicemanager 注册的所有 HAL 以及设备上所有可用的直通实现(例如 android.hardware.foo@1.0-impl.so)。它还可以根据该列表生成设备清单文件:

adb shell su 0 /system/bin/lshal –init-vintf

 

 

130|rk3399pro_firefly_aiojd4:/ # lshal
All binderized services (registered services through hwservicemanager)
Interface                                                                               Thread Use      Server  Clients
android.frameworks.displayservice@1.0::IDisplayService/default                          0/1             279     237
android.frameworks.schedulerservice@1.0::ISchedulingPolicyService/default               0/4             577     237
android.frameworks.sensorservice@1.0::ISensorManager/default                            0/4             577     237
android.hardware.audio.effect@2.0::IEffectsFactory/default                              0/3             261     388 237
android.hardware.audio@2.0::IDevicesFactory/default                                     0/3             261     388 237
android.hardware.bluetooth@1.0::IBluetoothHci/default                                   0/2             262     237
android.hardware.camera.provider@2.4::ICameraProvider/legacy/0                          0/3             263     389 237
android.hardware.cas@1.0::IMediaCasService/default                                      0/2             264     237
android.hardware.configstore@1.0::ISurfaceFlingerConfigs/default                        0/2             265     718 1200 739 944 577 279 237
android.hardware.drm@1.0::ICryptoFactory/default                                        0/2             266     237
android.hardware.drm@1.0::ICryptoFactory/widevine                                       0/2             267     237
android.hardware.drm@1.0::IDrmFactory/default                                           0/2             266     237
android.hardware.drm@1.0::IDrmFactory/widevine                                          0/2             267     237
android.hardware.gnss@1.0::IGnss/default                                                0/1             259     577 237
android.hardware.graphics.allocator@2.0::IAllocator/default                             0/4             269     263 279 237
android.hardware.graphics.composer@2.1::IComposer/default                               0/4             270     279 237
android.hardware.keymaster@3.0::IKeymasterDevice/default                                0/1             250     393 237
android.hardware.light@2.0::ILight/default                                              0/1             271     577 237
android.hardware.media.omx@1.0::IOmx/default                                            0/5             402     237
android.hardware.media.omx@1.0::IOmxStore/default                                       0/5             402     237
android.hardware.neuralnetworks@1.0::IDevice/armnn                                      0/1             272     237
android.hardware.neuralnetworks@1.0::IDevice/ovx                                        0/2             273     237
android.hardware.power@1.0::IPower/default                                              0/1             274     577 237
android.hardware.sensors@1.0::ISensors/default                                          1/2             275     577 237
android.hardware.soundtrigger@2.0::ISoundTriggerHw/default                              0/3             261     388 237
android.hardware.wifi@1.0::IWifi/default                                                0/1             276     577 237
android.hardware.wifi@1.1::IWifi/default                                                0/1             276     577 237
android.hidl.allocator@1.0::IAllocator/ashmem                                           0/1             260     263 237
android.hidl.base@1.0::IBase/armnn                                                      0/1             272     237
android.hidl.base@1.0::IBase/ashmem                                                     0/1             260     263 237
android.hidl.base@1.0::IBase/default                                                    0/4             577     237
android.hidl.base@1.0::IBase/legacy/0                                                   0/3             263     389 237
android.hidl.base@1.0::IBase/ovx                                                        0/2             273     237
android.hidl.base@1.0::IBase/widevine                                                   0/2             267     237
android.hidl.manager@1.0::IServiceManager/default                                       1/1             237     577
android.hidl.manager@1.1::IServiceManager/default                                       1/1             237     577
android.hidl.token@1.0::ITokenManager/default                                           1/1             237  
android.system.net.netd@1.0::INetd/default                                              0/1             398     237
android.system.wifi.keystore@1.0::IKeystore/default                                     0/1             393     237

All interfaces that getService() has ever return as a passthrough interface;
PIDs / processes shown below might be inaccurate because the process
might have relinquished the interface or might have died.
The Server / Server CMD column can be ignored.
The Clients / Clients CMD column shows all process that have ever dlopen'ed 
the library and successfully fetched the passthrough implementation.
Interface                                                                               Thread Use      Server  Clients
android.hardware.audio.effect@2.0::IEffectsFactory/default                              N/A             261     261
android.hardware.audio@2.0::IDevicesFactory/default                                     N/A             261     261
android.hardware.bluetooth@1.0::IBluetoothHci/default                                   N/A             262     262
android.hardware.camera.provider@2.4::ICameraProvider/legacy/0                          N/A             263     263
android.hardware.drm@1.0::ICryptoFactory/default                                        N/A             266     266
android.hardware.drm@1.0::IDrmFactory/default                                           N/A             266     266
android.hardware.gnss@1.0::IGnss/default                                                N/A             259     259
android.hardware.graphics.allocator@2.0::IAllocator/default                             N/A             269     269
android.hardware.graphics.composer@2.1::IComposer/default                               N/A             270     270
android.hardware.graphics.mapper@2.0::IMapper/default                                   N/A             N/A     263 270 279 577 718 739 944 1200
android.hardware.keymaster@3.0::IKeymasterDevice/default                                N/A             250     250
android.hardware.light@2.0::ILight/default                                              N/A             271     271
android.hardware.power@1.0::IPower/default                                              N/A             274     274
android.hardware.sensors@1.0::ISensors/default                                          N/A             275     275
android.hardware.soundtrigger@2.0::ISoundTriggerHw/default                              N/A             261     261
android.hidl.memory@1.0::IMapper/ashmem                                                 N/A             N/A     397 402 577 739

All available passthrough implementations (all -impl.so files)
Interface                                                                               Thread Use      Server  Clients
android.hardware.audio.effect@2.0::I*/* (/vendor/lib/hw/)                               N/A             N/A     261
android.hardware.audio.effect@2.0::I*/* (/vendor/lib64/hw/)                             N/A             N/A  
android.hardware.audio@2.0::I*/* (/vendor/lib/hw/)                                      N/A             N/A     261
android.hardware.audio@2.0::I*/* (/vendor/lib64/hw/)                                    N/A             N/A  
android.hardware.bluetooth@1.0::I*/* (/vendor/lib/hw/)                                  N/A             N/A  
android.hardware.bluetooth@1.0::I*/* (/vendor/lib64/hw/)                                N/A             N/A     262
android.hardware.camera.provider@2.4::I*/* (/vendor/lib/hw/)                            N/A             N/A     263
android.hardware.camera.provider@2.4::I*/* (/vendor/lib64/hw/)                          N/A             N/A  
android.hardware.drm@1.0::I*/* (/vendor/lib/hw/)                                        N/A             N/A     266
android.hardware.gnss@1.0::I*/* (/vendor/lib/hw/)                                       N/A             N/A  
android.hardware.gnss@1.0::I*/* (/vendor/lib64/hw/)                                     N/A             N/A     259
android.hardware.graphics.allocator@2.0::I*/* (/vendor/lib/hw/)                         N/A             N/A  
android.hardware.graphics.allocator@2.0::I*/* (/vendor/lib64/hw/)                       N/A             N/A     269
android.hardware.graphics.composer@2.1::I*/* (/vendor/lib/hw/)                          N/A             N/A  
android.hardware.graphics.composer@2.1::I*/* (/vendor/lib64/hw/)                        N/A             N/A     270
android.hardware.graphics.mapper@2.0::I*/* (/vendor/lib/hw/)                            N/A             N/A     263 387
android.hardware.graphics.mapper@2.0::I*/* (/vendor/lib64/hw/)                          N/A             N/A     270 279 386 577 718 739 930 944 1162 1176 1200 1216 1255 1289 1323 1341 1364 1382
android.hardware.keymaster@3.0::I*/* (/vendor/lib/hw/)                                  N/A             N/A  
android.hardware.keymaster@3.0::I*/* (/vendor/lib64/hw/)                                N/A             N/A     250
android.hardware.light@2.0::I*/* (/vendor/lib/hw/)                                      N/A             N/A  
android.hardware.light@2.0::I*/* (/vendor/lib64/hw/)                                    N/A             N/A     271
android.hardware.power@1.0::I*/* (/vendor/lib/hw/)                                      N/A             N/A  
android.hardware.power@1.0::I*/* (/vendor/lib64/hw/)                                    N/A             N/A     274
android.hardware.sensors@1.0::I*/* (/vendor/lib/hw/)                                    N/A             N/A  
android.hardware.sensors@1.0::I*/* (/vendor/lib64/hw/)                                  N/A             N/A     275
android.hardware.soundtrigger@2.0::I*/* (/vendor/lib/hw/)                               N/A             N/A     261
android.hidl.memory@1.0::I*/* (/system/lib/hw/)                                         N/A             N/A     397 402
android.hidl.memory@1.0::I*/* (/system/lib64/hw/)                                       N/A             N/A     577 739

rk3399pro_firefly_aiojd4:/ # 
rk3399pro_firefly_aiojd4:/ # 

 

 

 

 

130|rk3399pro_firefly_aiojd4:/ # /system/bin/lshal --init-vintf
<!-- 
    This is a skeleton device manifest. Notes: 
    1. android.hidl.*, android.frameworks.*, android.system.* are not included.
    2. If a HAL is supported in both hwbinder and passthrough transport, 
       only hwbinder is shown.
    3. It is likely that HALs in passthrough transport does not have
       <interface> declared; users will have to write them by hand.
    4. A HAL with lower minor version can be overridden by a HAL with
       higher minor version if they have the same name and major version.
    5. sepolicy version is set to 0.0. It is recommended that the entry
       is removed from the manifest file and written by assemble_vintf
       at build time.
-->
<manifest version="1.0" type="device">
    <hal format="hidl">
        <name>android.hardware.audio</name>
        <transport>hwbinder</transport>
        <version>2.0</version>
        <interface>
            <name>IDevicesFactory</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.audio.effect</name>
        <transport>hwbinder</transport>
        <version>2.0</version>
        <interface>
            <name>IEffectsFactory</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.bluetooth</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>IBluetoothHci</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.camera.provider</name>
        <transport>hwbinder</transport>
        <version>2.4</version>
        <interface>
            <name>ICameraProvider</name>
            <instance>legacy/0</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.cas</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>IMediaCasService</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.configstore</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>ISurfaceFlingerConfigs</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.drm</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>ICryptoFactory</name>
            <instance>default</instance>
            <instance>widevine</instance>
        </interface>
        <interface>
            <name>IDrmFactory</name>
            <instance>default</instance>
            <instance>widevine</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.gnss</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>IGnss</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.graphics.allocator</name>
        <transport>hwbinder</transport>
        <version>2.0</version>
        <interface>
            <name>IAllocator</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.graphics.composer</name>
        <transport>hwbinder</transport>
        <version>2.1</version>
        <interface>
            <name>IComposer</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.graphics.mapper</name>
        <transport arch="32+64">passthrough</transport>
        <version>2.0</version>
        <interface>
            <name>IMapper</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.keymaster</name>
        <transport>hwbinder</transport>
        <version>3.0</version>
        <interface>
            <name>IKeymasterDevice</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.light</name>
        <transport>hwbinder</transport>
        <version>2.0</version>
        <interface>
            <name>ILight</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.media.omx</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>IOmx</name>
            <instance>default</instance>
        </interface>
        <interface>
            <name>IOmxStore</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.neuralnetworks</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>IDevice</name>
            <instance>armnn</instance>
            <instance>ovx</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.power</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>IPower</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.sensors</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>ISensors</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.soundtrigger</name>
        <transport>hwbinder</transport>
        <version>2.0</version>
        <interface>
            <name>ISoundTriggerHw</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.wifi</name>
        <transport>hwbinder</transport>
        <version>1.1</version>
        <interface>
            <name>IWifi</name>
            <instance>default</instance>
        </interface>
    </hal>
    <sepolicy>
        <version>0.0</version>
    </sepolicy>
</manifest>
rk3399pro_firefly_aiojd4:/ # 
rk3399pro_firefly_aiojd4:/ # 
rk3399pro_firefly_aiojd4:/ # 

 

 

 

 

 

 

 

https://devarea.com/android-hidl-and-project-treble/#.XTWcS_mAShE

 

编写客户端要使用该服务,我们将编写一个简单的客户端应用程序 通常,它将成为Google编写的Android框架的一部分。 例如,如果通用框架想要访问振动器服务:在文件框架/ base / services / core / jni / com_android_server_VibratorService.cpp中

static sp mHal;
 
...
 
mHal = IVibrator::getService();
...
Status retStatus = mHal->on(timeout_ms);
...
Status retStatus = mHal->off();

 

 

 

 

 

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值