mirror of
https://github.com/DorkSquadRR/DorkNet.git
synced 2026-10-26 07:28:45 -07:00
feat: DorkNet.Quest, a sideload patcher for the 2023 Quest client
Patches the Quest build of Rec Room 2023.03.21 (20230317 / 2128210, the
same appVersion as the PC client) to connect to a DorkNet server, using
one native hook library loaded via DT_NEEDED on libmain.so.
- host rewrite onto <svc>.<ServerHost> or a {service}-dev.example.com template
- Photon app ids and region injection (PhotonRegion must match PC)
- TLS / pinning / image-signature bypass, integrity callbacks neutralised
- no-Meta-account build; the server treats platform id 0/1/blank as a
placeholder and keys those accounts by device id
- build.ps1 -Obb packages a DorkNet-<ver>.xapk with one-command
installers for Windows and macOS/Linux; app is named via AppName
- README, docs/quest.md and NOTICE updated; credits RecFlare and
And64InlineHook (MIT)
Tested on a Quest 2: all hooks arm, requests reach the dev server.
This commit is contained in:
@@ -153,10 +153,25 @@ calls so self-signed certs work.
|
||||
|
||||
### Quest
|
||||
|
||||
A Quest client for this branch is in progress and not usable yet. The
|
||||
archive holds a Quest build of the same release (version `20230317`), so
|
||||
Quest and PC players will be on matching versions once it lands. Until
|
||||
then, this branch supports the PC client only.
|
||||
`DorkNet.Quest` patches the Rec Room 2023.03.21 Quest client (versionCode
|
||||
`2128210`) for sideloading onto a standalone Meta Quest. That build reports
|
||||
`appVersion` `20230317`, the same version as the PC client, so Quest and PC
|
||||
players can share rooms.
|
||||
|
||||
The patcher injects a single native hook library into the APK. The library
|
||||
redirects the Rec Room name server to your DorkNet host, supplies your
|
||||
Photon AppIds, and turns off the client's certificate pinning and
|
||||
image-signature checks so a self-hosted server works. A build without a
|
||||
Meta app ID lets players sign in with DorkNet credentials and no Meta
|
||||
account. Each hook checks a fingerprint of its target first, so the patch
|
||||
refuses to apply to any other build.
|
||||
|
||||
You supply your own extracted APK and OBB; no game binaries are
|
||||
redistributed. Build, install and troubleshooting steps are in
|
||||
[DorkNet.Quest/README.md](DorkNet.Quest/README.md), and the operator view
|
||||
is in [docs/quest.md](docs/quest.md).
|
||||
|
||||
> The Quest build is new and has not yet been tested on a headset.
|
||||
|
||||
### Debugging (opt-in — `DorkNet.DebugMod`)
|
||||
|
||||
@@ -478,6 +493,31 @@ it across. Don't rebase across branches.
|
||||
|
||||
---
|
||||
|
||||
## Acknowledgements
|
||||
|
||||
Thanks to [RecFlare](https://github.com/recflare), an independent
|
||||
open-source 2023 Rec Room server by djdevin, for sharing their work in the
|
||||
open. Their server and Quest client were a valuable second opinion while
|
||||
building this branch:
|
||||
|
||||
- **Quest:** `DorkNet.Quest` follows their approach of a single native hook
|
||||
library loaded through a `DT_NEEDED` entry on `libmain.so`. Their notes
|
||||
also showed which client checks a self-hosted server has to get past.
|
||||
- **Wire contracts:** their implementation pointed us at several things we
|
||||
then confirmed in our own client disassembly. These include the profile
|
||||
edit form fields, the saved-outfit keys, the `{Success, Error}` envelope
|
||||
behind `isCreationAllowedForAccount`, and the gameconfig catalogue,
|
||||
including the `PlayMenuCarouselOrdering_*` format.
|
||||
- **Accounts:** their warning that a Quest client without a Meta account
|
||||
sends the same platform id from every headset led to the placeholder
|
||||
platform-id handling in `PlayerService`.
|
||||
|
||||
No RecFlare code is included in DorkNet. RecFlare targets a newer client
|
||||
(20230414), so every finding was re-verified against the 2023.03.21 build
|
||||
before use.
|
||||
|
||||
---
|
||||
|
||||
## License
|
||||
|
||||
[AGPL-3.0](LICENSE). Hosted forks must publish their source.
|
||||
|
||||
Reference in New Issue
Block a user