[BOUNTY #2851] Add multi-step remote DroidGuard session support#3471
[BOUNTY #2851] Add multi-step remote DroidGuard session support#3471Snooz1e wants to merge 2 commits into
Conversation
|
Hi @mar-v-in, quick follow-up on this bounty claim. PR: #3471 For payout flow: I’m available to provide payout details privately as requested; I’m not posting any sensitive details in this public thread. |
|
Small follow-up: I pushed one follow-up safety fix at commit to stringify remote payload map entries before URL encoding (no String casts) to avoid ClassCastExceptions with non-string fields. Core PR surface remains the same and claim metadata unchanged. |
|
Hi @mar-v-in — I’ve done a quick current-state sweep: this is the only open PR still addressing #2851, and the prior attempts I can find in history (#3335, #3336, #3370, #3111) were closed and did not land. So I’d say this is still the active candidate for the $100 bounty path. Could you please review/approve merge when you get a moment? I can also run one extra check in your CI/maintainer environment if you want explicit confirmation traces:
For the bounty payout route, I’m keeping payout details private; I can share final payment coordinates in a maintainer DM/private channel once PR is accepted. |
|
I also checked status plumbing: PR head commit Please confirm if you want me to add any extra maintainer-visible debug logging for review. |
|
Hi @mar-v-in — thanks for taking a look. I want to make this the active completion path for bounty #2851 and avoid duplicate churn. Quick status from me:
For a maintainer-side check, one quick flow works:
I can run additional maintainer-side checks if you want; no changes are needed before merge from this side. For bounty payout handling, I’m keeping payment details private and can share privately after your merge/accept. |
|
Quick maintainer-facing status update:
If you want, I can also provide a clean maintainer-side verification checklist in one comment on the PR. |
Summary
This PR implements the missing multi-step remote DroidGuard flow for #2851, so Play Integrity can use remote remote attestation properly.
Changes
IDroidGuardHandleAIDL with:begin,nextStep,snapshotWithSession,closeSession.DroidGuardResultsRequest(sessionId,stepNumber,totalSteps,isMultiStep).DroidGuardHandleImpl,RemoteHandleImpl).com.google.android.gms.droidguardJava interface + wrapper (DroidGuardHandleImpl).play-services-droidguard/REMOTE_DROIDGUARD_SETUP.md.Verification
I could not run a local Gradle build here because this environment currently uses JDK 25 and the build script fails with
Unsupported class file major version 69during Kotlin script compilation.Related bounty
BountyHub: https://www.bountyhub.dev/en/bounty/view/5bd7b660-5c46-4686-bead-39a53699e98d