glaumar / QRookie

Download and install Quest games from ROOKIE Public Mirror (like VRP Rookie Sideloader but for Linux and MacOS)
GNU General Public License v3.0
41 stars 4 forks source link

Install multiple packages with same name #42

Open rKsanu2MMYvypWePtQWM opened 2 months ago

rKsanu2MMYvypWePtQWM commented 2 months ago

Certain packages (like beat saber) have addon packages like "explicit content unlocker" which has the same app name (because it changes the original package contents). However currently all such packages show up as "installed" and cannot be force installed.

frxctura commented 1 month ago

This isn't possible due to the OS that the Quest Systems run, which is Android.

On Android, each app has a unique package name that identifies it. When two packages have the exact same package name, Android sees them as the same app. This means you can’t install both separately, one will always overwrite the other or just straight up fail to install. Android does this to avoid confusion and conflicts, treating any package with the same name as an update to the original rather than a separate installation.

victorwads commented 1 month ago

@frxctura you're totally right, also Android always see the app signature fingerprint and version code, Android uses this to info to decide if the package will be replaced or trigger a install error.

But, the feature witch @rKsanu2MMYvypWePtQWM is a existing feature that automatically unzip an APK and change de package name, this way you can install to version of the "same" app.

Like @rKsanu2MMYvypWePtQWM said, it is used a lot on Beat Saber to have a official version and a modded version installed side-by-side.

But @rKsanu2MMYvypWePtQWM, is not that simple and most applications ends up crashing on initialization.

rKsanu2MMYvypWePtQWM commented 1 month ago

What I am asking for is not some new concept, but a feature parity with Windows Rookie sideloader, which allows this (and is required for things like explicit music enabling in beat saber).

frxctura commented 1 month ago

What I am asking for is not some new concept, but a feature parity with Windows Rookie sideloader, which allows this (and is required for things like explicit music enabling in beat saber).

Rookie does not install multiple packages on your headset, what you may be talking about is a release that seems like its the entire game again, but contains an install.txt, which Rookie runs as custom instructions, therefore doing custom steps to sideload. For example, in the "Explicit Content Unlock" there is a install.txt file that you download, so Rookie runs the following instructions:

adb shell mkdir -p /sdcard/Android/data/com.beatgames.beatsaber adb shell mkdir -p /sdcard/Android/data/com.beatgames.beatpaber adb push android /sdcard/ As you can see, it's not exactly installing a package, but just pushing files to your headset.

Other than that, Rookie doesn't allow installing the same game multiple times, it won't automatically rename packages to allow for it.

rKsanu2MMYvypWePtQWM commented 1 month ago

What I am asking for is not some new concept, but a feature parity with Windows Rookie sideloader, which allows this (and is required for things like explicit music enabling in beat saber).

Rookie does not install multiple packages on your headset, what you may be talking about is a release that seems like its the entire game again, but contains an install.txt, which Rookie runs as custom instructions, therefore doing custom steps to sideload. For example, in the "Explicit Content Unlock" there is a install.txt file that you download, so Rookie runs the following instructions:

adb shell mkdir -p /sdcard/Android/data/com.beatgames.beatsaber adb shell mkdir -p /sdcard/Android/data/com.beatgames.beatpaber adb push android /sdcard/ As you can see, it's not exactly installing a package, but just pushing files to your headset.

Other than that, Rookie doesn't allow installing the same game multiple times, it won't automatically rename packages to allow for it.

oh, I'm sorry, didn't realize how it actually works. But this was what I meant - support for it would be very useful!