salvogiangri / KnoxPatch

LSPosed module to get Samsung apps/features working again in your rooted Galaxy device.
GNU General Public License v3.0
732 stars 29 forks source link

[FEATURE] Add Galaxy Wearable app support #4

Closed maxGerards closed 1 year ago

maxGerards commented 1 year ago

After rooting the phone, you can no longer connect your watch via Galaxy wearable. After your great work on this plugin it would be a cool feature for a new plugin or this one.

salvogiangri commented 1 year ago

Thank you for your interest in my project! I did try the app with my old Gear S3 and I confirm the app will just get stuck at the pairing loading page. I found by debugging that this is caused by a system service called WSM, I'll need to find a way to bypass this service and I think I'm gonna struggle a bit with this since the check is done via native libs, which Xposed can't hook (afaict)

maxGerards commented 1 year ago

Thank you for the good work. I've been dealing with the topic for a long time and the verification only happens on Samsung devices. Unfortunately, a fake from the manufacturer and model did not bring any improvement on the samsung fold4. If you find a way it would be very cool.

salvogiangri commented 1 year ago

Thank you for the good work. I've been dealing with the topic for a long time and the verification only happens on Samsung devices. Unfortunately, a fake from the manufacturer and model did not bring any improvement on the samsung fold4. If you find a way it would be very cool.

Yeah seems like spoofing the device manufacturer/brand doesn't works. The only way I could find to get Galaxy Wearable to work again is to rename/delete libhal.wsm.samsung.so in /system, but doing it via app is not a good idea since it would require the user's interaction and might also not work great/at all on devices with dynamic partitions/F2FS. Bind mounting the file via a Magisk module would be possible, but that would require a separate module just to fix that single app. There must be another way...

maxGerards commented 1 year ago

Deleting/renaming a file in /system doesn't sound like a good solution. The solution with magisk sounds better, but it may differ depending on the device. It would be good to know what wsm checks to manipulate this check. Unfortunately, my programming skills in the android area are very weak, so unfortunately I'm not much help.

salvogiangri commented 1 year ago

@maxGerards you think you can give a try to this? It's a Magisk module, install it via the Magisk app and try pairing your Watch.

kp_enhancer_test.zip

maxGerards commented 1 year ago

Unfortunately, the module does not work. The watch still won't pair, I checked the log but didn't find anything suspicious. But I noticed that the file in the module was only overwritten in /lib and /lib64. I can also find the libhal.wsm.samsun.so file under /system/vendor/lib64/libhal.wsm.samsun.so

salvogiangri commented 1 year ago

Vendor libs shouldn't be a problem since VNDK will prevent linker to load them. In the logs you should see WSM TA returning an error when pairing the device (the pairing actually happens in the Samsung Accessory app, not in Galaxy Wearable)

maxGerards commented 1 year ago

can you send me the log command to only see the log from Samsung Accessory app?

salvogiangri commented 1 year ago

can you send me the log command to only see the log from Samsung Accessory app?

adb logcat --pid=`adb shell pidof -s com.samsung.accessory`

I doubt it will capture the WSM TA logs since it's run on a different process, but it's still worth to try.

maxGerards commented 1 year ago

After deleting all data from the app (wearable,watch plugin, acceessory) and deinstall them it now works.

salvogiangri commented 1 year ago

Closing this issue since support for this app has been added in the new Enhancer Magisk module, thank you for your time!

maxGerards commented 1 year ago

Great Work