Skip to content

fix(tv): keep BouncyCastle X25519 in release builds so identity transfer works - #107

Open
xservzeroman wants to merge 1 commit into
fix/web-iconfrom
fix/release-identity-keep
Open

xservzeroman wants to merge 1 commit into
fix/web-iconfrom
fix/release-identity-keep

Conversation

@xservzeroman

Copy link
Copy Markdown

Bug

Release-built MoonCast TVs (1.0-beta2, for example) answered /mc-native with an empty identityKey. So no phone or iPad could send them an identity, and a TV with no pairing of its own couldn't play PC games from them.

Cause

R8 removed org.bouncycastle.jcajce.provider.asymmetric.edec. The provider only loads those classes by name, so R8 saw them as unused. Debug builds aren't minified, so they were never affected.

Fix

One keep rule in app/proguard-rules.pro.

Testing

  • Release-signed 1.0-test258 TV APK (code 992): the dex contains the edec classes again.
  • Installed on the Google TV Streamer, it publishes a 32-byte key.
  • An iPad sent a PC game to it with identity transfer, and it played.

Stacked on #106.

🤖 Generated with Claude Code

…fer works

R8 removed org.bouncycastle.jcajce.provider.asymmetric.edec, which the provider
loads by name, so a release-built TV answered /mc-native with an empty
identityKey and could never receive an identity. Verified: 1.0-test258 (release
signed, code 992) on the Google TV Streamer publishes its key, and an iPad sent
Desktop on xserv Gaming to it with no pairing on the TV.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

1 participant