0

This problem has troubled me for a long time, and I hope someone kind can help me.

When I was doing a hal program on android12, I encountered such an error "Cannot do a user transaction on a system stability wire protocol version 1 binder (android.hardware.invcase.Callbacks) in a vendor stability context."

android 12 + aidl + hal server + app clint.

Below I describe in detail.

catlog:

header 1 header 2 header 2
Invcase clint log E ------onItemClick----- create
IInvcase clint log E ---create---step---1--
IInvcase server log E invcase_sever create 1
IBpBinder pid-381 E Cannot do a user transaction on a system stability wire protocol version 1 binder (android.hardware.invcase.Callbacks) in a vendor stability context.
IInvcase server log E invcase_sever create 2
IInvcase clint log E ---createVics---step---2-- create
IInvcase clint log E ---createVics---step---3-- create

hal server code:

ndk::ScopedAStatus Invcase::create(const std::shared_ptr<ICallbacks>& in_callbacks,
                                       std::shared_ptr<IVics>* _aidl_return) {
    ALOGE("invcase_sever create 1");
    in_callbacks->OnCallBackSleep("test");
    ALOGE("invcase_sever create 2");
........

I expect that when the underlying hardware encounters a specific event, the upper layer application can be notified. For this reason, in the initialization phase, the upper application client will set some callback functions to the hal server. In fact, when the hal server calls these functions, the system will report an error.

amloading
  • 1
  • 2

0 Answers0