Skip to content
TripleU613Public

About

Experimental Rust RCS discovery, provisioning and phone-verification research for independent Android clients.

Topics

Resources

Contributing

Stars

7 stars

Watchers

0 watching

Forks

Repository files navigation

rcs-rs

An experimental Rust foundation for independent RCS clients.

CI License: Apache-2.0

The goal is to let an open source SMS app add RCS through a reusable Rust library while retaining its own conversations and SMS transport. The intended Android host is a normal APK on stock or custom ROMs, including builds without GApps. Google Messages, microG and root are research tools in the current lab.

Research prototype. No successful Google RCS registration or two-way messaging has been demonstrated. The present crate implements discovery, provisioning and number-verification building blocks, not a complete RCS engine.

What works today

Area Implemented and checked Live result and limit
Configuration discovery Bounded protobuf decoding, real installed-GMS context, redacted diagnostics Rust reached configuration discovery with reference caller inputs; independent client admission remains open
ACS provisioning Stateful cookies, direct TS43 and UPI challenge/proof framing, owned MLS proof validation Challenges and carrier temporary tokens observed in the lab; no accepted complete Google provisioning flow
Number verification Consent lookup, Sync/Proceed, TS43 and incoming-SMS codecs Consent succeeds; latest completed Sync returned THROTTLED / status 8
Existing-number lookup Signed read-only requests and bounded record decoding Live request succeeded with zero number records
Android integration Ordinary-app permission probe, owned check-in/MLS identity tools, VM-material boundaries Several host capabilities checked; privileged lab operations do not establish ordinary-app availability
Proxy experiment Explicit HTTP CONNECT for PDV Sync/Proceed with origin TLS and no direct fallback Replacement proxy reached Google; the same verification throttle remained
Registration and messaging Research and implementation plan No registration binding, verified RCS message exchange or production Android SDK

The success criterion is a text sent by this library to current Google Messages and a reply received over verified RCS, independently of Google Messages on the sending device. Each earlier step is an intermediate result.

Start locally

Install a current stable Rust toolchain with Cargo, rustfmt and Clippy.

git clone https://github.com/TripleU613/rcs-rs.git
cd rcs-rs
cargo test --locked --all-targets
cargo fmt --all -- --check
cargo clippy --locked --all-targets -- -D warnings

Default tests use synthetic fixtures and local HTTP/gRPC servers. They need no SIM, phone, Google account, API key or live provider access. The ignored live proxy check is explicitly opt-in. The Android research tools have separate SDK/device prerequisites in their own READMEs.

The crate is not published to crates.io. For local evaluation:

[dependencies]
rcs-rs = { path = "../rcs-rs" }

Explore the project

Start here Contents
Usage guide Example commands, private input requirements, Sync/Proceed, incoming-SMS metadata and ACS APIs
Research index Evidence map, current blockers and dated experiments
Ordinary Android client Permission gates, independent APK checks and vanilla-ROM limits
Provider access Google credential/provisioning flow and carrier IMS comparison
Verification throttle Two distinct retry fields, public recovery reports and actual proxy outcomes
Community research microG implementation lineage and reported successes, with original sources
Wire and platform research Recovered behavior, artifact references and per-experiment limitations
Interoperability plan Remaining work through a two-way RCS exchange

Source layout

src/                 Discovery, consent, ACS and verification library
examples/            Explicit discovery, challenge, consent and verification probes
tests/fixtures/      Independently encoded synthetic protocol fixtures
tools/               Android admission, owned identity and VM-material research tools
patches/upstream/    Pinned evaluation patches for existing Rust RCS projects
docs/                Usage, evidence, design and interoperability plan

The shipping boundary is the Rust library plus an application-owned Android host. Live carrier authentication and platform proofs still require host work; private laboratory coordinators are not a distributed SDK.

Current investigation

The retained Google Sync responses contain a roughly one-hour global retry instruction, while the individual verification record's retry value is zero. Waiting beyond one hour and changing the network route both still produced the same refusal. The quota key and reset window remain unknown. A fresh October 21 consent lookup still reported RCS consent granted.

Incoming-SMS verification is the next distinct experiment: the library can encode a matched server-selected challenge, and the CLI can accept metadata from a real active Android receiver. Actual delivery, a server SMS challenge and a successful Proceed remain unproven. See the dated investigation.

Contribute

Useful contributions reproduce a specific failure, validate a wire field against an independent source, exercise an ordinary Android capability, or demonstrate a complete provider-admitted flow. Include what actually ran and what remains unproven. See CONTRIBUTING.md.

Keep real phone numbers, SIM/device identifiers, tokens, signing keys, account data, provisioning credentials, APKs and raw captures outside Git and issues. Fixtures must be synthetic. See fixture provenance.

Related work and license

This project evaluates rust-rcs-client and rust-rcs-core before duplicating a SIP/MSRP stack; pinned patches and their limits are included. microG's Constellation work is an important reference for Google number verification. Their results do not establish interoperability for this independent client.

Licensed under Apache-2.0. Retained upstream attribution and research tool provenance are described in NOTICE and the relevant tool READMEs. This is an independent project, unaffiliated with Google or the GSMA.

About

Experimental Rust RCS discovery, provisioning and phone-verification research for independent Android clients.

Topics

Resources

Contributing

Stars

7 stars

Watchers

0 watching

Forks

Used by

Contributors

Languages