Conversation
|
It will take a while for this to be reviewed, but I'm happy to finally see someone actually tackling the issue instead of having an LLM generate bullshit. 👏 |
|
@opstic |
|
@opstic We generally try to sort things into two modules:
The error @ale5000-git mentioned is probably due to having safe parcelable classes in Kotlin (which was never supported or tested), meaning they have automatically generated annotations that shouldn't be there. The Kotlin code also somewhat looks like it was automatically converted from Java (which is not always 100% safe, as seen here). For this API specifically, because it is an internal API of Google, you can also just add it to the |
|
@mar-v-in The @JvmField were workarounds to avoid safe-parcel-processor using reflection to access the fields, I'll be converting these into Java then. Also I'll restructure a bit to fit the sorting better. |
|
@opstic The issue is that it sees the type as |
|
@mar-v-in |
This is PR 1 of 3 towards RCS support.
Related PRs: #3360, #3361
Related issue: #2994
Collectively these changes enable Google Messages to verify the phone number via UPI and retrieve the provisioning document.
In my testing, setup progresses through verification, provisioning and reaches a connected state in Google Messages.
The remaining failure occurs during Tachyon registration. One possible cause is that the final DroidGuard
tachyon_registrationchallenge is not being satisfied correctly in my test environment.Testing from people with environments that pass DroidGuard/Play Integrity would be appreciated, especially with logs/network captures if possible. Many thanks!
Description
This PR implements the Constellation service, including:
verifyPhoneNumberV1verifyPhoneNumberSingleUseverifyPhoneNumbergetIidTokengetPnvCapabilitiesgetIidTokenandverifyPhoneNumberappear to be the main APIs Google Messages would call.Most of the verification paths are hopefully implemented correctly, only the TS.43 path was tested.
Flashcall is excluded for now as it's implementation in GMS requires a hidden API in Android SDK.
The gRPC proto definitions and client implementation are also used by
play-services-asterism(PR #3360)Screenshots