-
Notifications
You must be signed in to change notification settings - Fork 2
The Two APKs
A cook produces up to two APKs, written next to the loaded environment:
| File | Package | Install on… | How it loads |
|---|---|---|---|
<env>_NoRoot-Spoof.apk |
masquerades as …haven2025
|
any Quest (no root) | replaces the Haven 2025 home in place; loads after the shell relaunches |
<env>_Rooted-System.apk |
the env's own package | rooted / dev headsets only | auto-selected via adb (oculuspreferences) — needs root |
An unrooted Quest can't switch to a custom home environment — it only loads Meta's built-in homes, and only root can point the shell at an arbitrary env. The spoof gets around this by taking over the built-in Haven 2025 home: it installs as Haven 2025 (same package id), so the home the shell already loads becomes your ported env. There is nothing to "switch" to — and on an unrooted headset you can't. That's the whole reason the spoof exists.
The trade-off: it replaces your installed Haven 2025. The tool backs the original up first — see Restoring Haven 2025.
-
Normal retail Quest (not rooted): the
NoRoot-SpoofAPK. The only one loadable without root. It replaces Haven 2025 in place; after install the tool relaunches the shell and your env loads where Haven 2025 was. (If you don't see it, make sure Haven 2025 is your selected home environment.) -
Rooted / userdebug headset: the
Rooted-SystemAPK keeps your env under its own package name and is auto-selected for you (root can point the shell at any env).
You normally don't choose — the auto-installer does.
When Install to headset is on, after signing the tool:
-
Detects root over adb — runs
adb root, then checksadb shell id(uid=0),su -c id, andgetprop ro.debuggable. -
Rooted → installs the
Rooted-SystemAPK and auto-selects it (oculuspreferences --setc environment_selected …). -
Not rooted → backs up the real Haven 2025 (see Restoring Haven 2025),
then uninstalls the original — the spoof is signed with our debug cert, not Meta's, so an in-place
update is impossible and the original must be removed first — installs the
NoRoot-SpoofAPK, and relaunches the shell so your env loads in place. The uninstall happens only after a successful backup; if the backup fails, the tool aborts and leaves Haven 2025 untouched.
So the default is the spoof; the unspoofed own-package APK is used only when root is confirmed.
After a spoof install the running shell must restart to pick up the new home. The tool kills the
exact com.oculus.vrshell process id so it relaunches.
⚠️ Do not useam force-stop(it doesn't reload the home) or a broadpkill vrshell(it reboots the headset). Target the exact pid only — which is what the tool does.