Skip to content

WIP: road to pair my TicWatch#3204

Draft
deadYokai wants to merge 43 commits intomicrog:masterfrom
deadYokai:wearable_tos
Draft

WIP: road to pair my TicWatch#3204
deadYokai wants to merge 43 commits intomicrog:masterfrom
deadYokai:wearable_tos

Conversation

@deadYokai
Copy link
Contributor

@deadYokai deadYokai commented Dec 25, 2025

Just trying to make a pair with my watch, no more

Many parts of code is just stubs, or workarounds, needed proper implementation

After 465f5f0 requires merging PR microg/Wearable#3 and pushing to maven (not relevant after 63a77a0)

P.S. maybe needed code cleanup

Added some callbacks

Added feature list to WearableService.java

Added android:exported="true", required by android 12, for TOS only, cuz i don't know if in other needed true or false
@deadYokai deadYokai changed the title Added bare layout for wearable TOS WIP: wearable TOS Dec 26, 2025
@deadYokai deadYokai marked this pull request as draft December 27, 2025 05:30
@deadYokai
Copy link
Contributor Author

deadYokai commented Dec 28, 2025

now maybe fixes #2444 ,

at least my Mobvoi Health going to pair screen (after TOS)

but code in rough state for now

@deadYokai
Copy link
Contributor Author

now, my device is trying to pair via Mobvoi Health

@deadYokai deadYokai changed the title WIP: wearable TOS WIP: road to pair my TicWatch Dec 29, 2025
…dRequest`, `sendMessage`

prepairing ConnectionConfiguration to bluetooth stuff, to proper pair devices

filled some Parcable classes
and handshake

some bluetooth stuff
@deadYokai
Copy link
Contributor Author

deadYokai commented Dec 31, 2025

now need to implement openChannel method (wip)

for now only rfcomm client supported

ble, network, server is not implemented

still failed to pair
@ale5000-git
Copy link
Member

@deadYokai
Copy link
Contributor Author

@ale5000-git as i mentioned before

After 465f5f0 requires merging PR microg/Wearable#3 and pushing to maven

@deadYokai
Copy link
Contributor Author

or i can try to move https://github.com/microg/Wearable/ into GmsCore repo and get rid of dependence

https://mvnrepository.com/artifact/org.microg/wearable/0.1.1

@ale5000-git
Copy link
Member

Sorry I missed that point, then we have to wait for @mar-v-in for the decision of this thing.
In the meanwhile go ahead with the other parts you are working, thanks.

@mar-v-in
Copy link
Member

mar-v-in commented Jan 5, 2026

I'd suggest to entirely move the content of the microg/Wearable repo into play-services-wearable/core module in this repo and then we can archive the microg/Wearable repo entirely.

and some bluetooth changes
@deadYokai
Copy link
Contributor Author

deadYokai commented Jan 5, 2026

just sharing with good looking logs, in my opinion (logcat)

P.s. still not paired yet

image

some Bluetooth changes

moved some functions from WearableImpl to MessageHandler
- and some DataItem changes
@deadYokai
Copy link
Contributor Author

i cannot pinpoint why connection closing when channel tries to open

can anybody help me? like some logs maybe logs from watch (i cannot capture from my)?

@teccheck
Copy link

teccheck commented Feb 27, 2026

Just looked at your code quickly, and you're the first who even got the Bluetooth UUID right. Looks very promising, keep it up. 👍

I'll try to test your code, as soon as I can with my Pixel Watch.

EDIT: If you need more information about the protocol, hit me up. I'm happy to help :)

@teccheck
Copy link

teccheck commented Mar 4, 2026

I've added 3 commits to my branch containing all of your changes unrelated to proto. Feel free to take a look. If you want to cleanly include them in your branch, you can do so via git reset --hard HEAD~3 and git pull [remote name of my repo] wearable. Cheers :D

@teccheck
Copy link

teccheck commented Mar 4, 2026

I just noticed, that I made a mistake with the ChannelControl Type in proto. They should be:

CHANNEL_CONTROL_OPEN = 1;
CHANNEL_CONTROL_OPEN_ACK = 2;
CHANNEL_CONTROL_CLOSE = 3;

This was correct in the constants in ChannelManager, but with your last two commits that changed.

@deadYokai
Copy link
Contributor Author

I just noticed, that I made a mistake with the ChannelControl Type in proto. They should be:

CHANNEL_CONTROL_OPEN = 1;
CHANNEL_CONTROL_OPEN_ACK = 2;
CHANNEL_CONTROL_CLOSE = 3;

This was correct in the constants in ChannelManager, but with your last two commits that changed.

image

@deadYokai
Copy link
Contributor Author

i has a dilema, to implement A2AEncryption i need somehow integrate ukey2 and i don't know how to do it

@teccheck
Copy link

i has a dilema, to implement A2AEncryption i need somehow integrate ukey2 and i don't know how to do it

I'm quite sure, you don't need A2AEncryption for pairing. All the traffic, I've seen wasn't encrypted.

@deadYokai
Copy link
Contributor Author

i has a dilema, to implement A2AEncryption i need somehow integrate ukey2 and i don't know how to do it

I'm quite sure, you don't need A2AEncryption for pairing. All the traffic, I've seen wasn't encrypted.

i just trying implement what i can for now, and for future is good to implement A2A encryption

@teccheck
Copy link

i has a dilema, to implement A2AEncryption i need somehow integrate ukey2 and i don't know how to do it

I'm quite sure, you don't need A2AEncryption for pairing. All the traffic, I've seen wasn't encrypted.

i just trying implement what i can for now, and for future is good to implement A2A encryption

Sure, that makes sense. But if it's a blocker for you, it might be better to work on other parts first, and look at that later, once there's nothing else left.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants