TrebleDroid/treble_experimentations

[Asus Rog Phone 1] tspdrv vibrator not working

Opened this issue · 5 comments

Describe the bug:

No vibration

Smartphone (please complete the following information):

  • Device: Asus Rog Phone 1
  • Build Flavor: system-td-arm64-ab-vanilla.img.xz
  • Version: android_14.0.0_r21 ci-20240130

Additional context

As far as I know this device uses tspdrv+immvibe service, and on stock rom the immvibe executable and libs are located at /system, so basically the whole thing is not there on GSI.
Is there any chance we could make it work on GSI? Since I'm don't familiar with these, please let me know if there is any useful info I should obtain.

Just to clarify context, that's this device: https://www.gsmarena.com/asus_rog_phone_zs600kl-9224.php ; and you run the stock OEM Android 9 vendor that is originally AB and doesn't require vndklite?

Just to clarify context, that's this device: https://www.gsmarena.com/asus_rog_phone_zs600kl-9224.php

Yes that's the device.

and you run the stock OEM Android 9 vendor that is originally AB and doesn't require vndklite?

I guess so...?
I've double check now by re-flashing the stock P vendor and the GSI version I mentioned, and it boots just fine.

Roger that. Okay, what do you know about it? You mention immvibe, but would you know how Android framework communicates with immvibe?
Would you have a dump of stock rom somewhere so I can take a look?

Roger that. Okay, what do you know about it? You mention immvibe, but would you know how Android framework communicates with immvibe?

Sadly no. The only thing I know is that it uses ioctl rather than sysfs. But other than that, I don't know at all 🫤.

Would you have a dump of stock rom somewhere so I can take a look?

Conveniently someone did a dump here. I've also put the kernel release here if that helps.

BTW, these ([1] and [2]) are probably useful. I've checked tspdrv.h and these lge devices are basically the same with my rog phone. In fact lots of asus devices also uses the TSPDRV vibration ([1]) in TWRP.

But I don't really know where/how should I wire these things up here in gsi. Please let me know if you have any thought.