TrebleDroid / treble_experimentations

Scripts to automatically build/CI/Release TrebleDroid GSI
Other
224 stars 31 forks source link

[Asus Rog Phone 1] tspdrv vibrator not working #119

Open Rocky7842 opened 6 months ago

Rocky7842 commented 6 months ago

Describe the bug:

No vibration

Smartphone (please complete the following information):

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.

phhusson commented 6 months ago

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?

Rocky7842 commented 6 months ago

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.

phhusson commented 6 months ago

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?

Rocky7842 commented 6 months ago

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.

Rocky7842 commented 5 months ago

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.