ComputerElite / QuestAppVersionSwitcher

Allows you to backup and restore apps directly from withing your quest
GNU General Public License v3.0
35 stars 9 forks source link

How do I keep downgraded apps from auto-updating to the newest version after downgrading? (can I clone an app?) #42

Closed mynamejeff1234-star closed 7 months ago

mynamejeff1234-star commented 8 months ago

Since late September 2023 my headset aggressively automatically updates apps. I disconnect wifi, turn off the headset fully, and unplug. When I want to use it again I run the command "adb shell pm disable-user --user 0 com.oculus.updater" (apparently doesn't work) and then turn the wifi back on. Just the other (before I decided to try QuestAppVersionSwitcher) day I witnessed it download and install the newest version of DeoVR after I set the headset down for literally a few seconds. I tried clicking the "..." in the lower right corner of the app thumbnail to cancel the install but there was no cancel option in the menu.

This is the reason I am trying QuestAppVersionSwitcher. It did successfully downgrade the app, but already -- immediately after downgrading -- I see a pending update. I fear that when I go through the process mentioned in the previous paragraph it will update right after I turn the wifi back on. (I have the sleep timer set to the max 4 hours but it doesn't help.)

Is it possible to clone the app to "Unknown Sources" so that it is not connected to the Quest auto-update mechanism?

Can I clone apps so that I can keep two separate versions (old version and new version)?

Or is it possible to modify the app so that it will not auto-update? It is just a (solo, not multiplayer) media player app, not a game, so I don't need for it to be "official" or connect to the Internet for playing with other players in a multiplayer game mode. I just need to be able to use the old version without it constantly auto-updating.

I think my Quest OS version number is still in the 40s, but in late September they somehow dropped in some kind of smaller modular change (i.e., without a full OS update) that causes apps to aggressively auto-update. I never had this problem with app updates before (owned the Quest 2 since 2020). Maybe it only auto-updates small-size apps like media players (as opposed to large games)? Not sure...

I also wanted to mention: In the downgrade UI for your app, some of the buttons are very thin, such that I cannot read the text in them (for example, the button next to the search text box which I guess probably is supposed to say "search" or "submit"). So I have to guess as to what they say. (Also when I first tried to use your app I initially had a gray screen, then a black screen, then an invisible screen, but somehow I eventually got you app's UI to show... it's a bit wonky.)

Also whenever I resize the window (it starts out in portrait mode due to some kind of modular Quest OS update like the one I mentioned before) it goes back to the Select Wizard screen for some reason.

Any help would be appreciated.

mynamejeff1234-star commented 8 months ago

I guess I could just restore the backups from within QuestAppVersionSwitcher every time I use my headset. I can't believe Meta will make me do this every single time I power on my headset and turn on the wifi: unblockable Auto-Update -> Restore Backup of Old Version, unblockable Auto-Update -> Restore Backup of Old Version, etc., ad infinitum. I really need to figure out a way to block the auto-updates. Either that or figure out a way to clone the apps to Unknown Sources where they will not auto-update. I bought HereSphere media player; it's in Unknown Sources, and it never auto-updates. If I could do that with my other media player apps I bought from the official app store, that would awesome.

I wonder if the app auto-updates have something to do with the battery level or with it being plugged in. I normally use the headset with it plugged in to avoid having the battery run out (although I turn of wifi and unplug when turning it off). But I never had problems with auto-updates until late September.

AltyFox commented 8 months ago

Press and hold your power button, and turn off the toggle that says "Auto update" and reboot

mynamejeff1234-star commented 8 months ago

Press and hold your power button, and turn off the toggle that says "Auto update" and reboot

Thanks for the suggestion. But I do not have that option. I think that what you are referring to is something that was added in a recent OS update (version number in the 50s). The version number reported by my OS is in the late 40s (I forget the exact number but I can check it later). The OS I have is from early 2023. (But I believe that small parts of it have been surreptitiously updated my Meta.)

Actually when I was typing my first post I had set the headset down next to me. I had turned the Internet on in order to perform the downgrade step in QAVS. The headset shut off automatically with the battery at 0% (oops). I let it charge it charge to 16% and then I turned it on so that I could turn the Internet off and then turn the headset back off and let it charge to 50% or more (it made me nervous having the Internet turned on). I immediately turned the Internet off after booting, and then I checked DeoVR and found that it had already updated to the latest version :(

So either it updated when it was sitting next to me when I was typing the post above, or it updated immediately at startup when I booted it with the batter at 16% (!).

I could try to always turn off the Internet before I take the headset away from my face for even 1 second. Or I could try to fool the sensor into thinking that it was always attached to my face. Or maybe if I entered into an app before I set the headset down (e.g., to use the bathroom) then it would not auto-update. Maybe it only updates from the Home area. I dunno... :(

If I mod or patch the app using QAVS will that make a copy of the app in Unknown Sources? Because I would think that modding/patching requires re-signing the apk? I haven't tried that yet. There is no modification I desire to make (other than disabling updates if possible), but I would like to clone it to Unknown Sources if possible.

(or even clone it to the main area but as a separate app not connected to the update channel)

mynamejeff1234-star commented 8 months ago

The other thing to note is that according to this post

https://www.meta.com/help/quest/articles/in-vr-experiences/oculus-apps/receive-automatic-updates/

"you cannot use Automatically power headset to update if you have a lock pin or unlock pattern set. When a lock pin or unlock pattern is set, your headset cannot be unlocked unless you enter the pin or pattern".

I have a lock screen, so it should (if the post is to be believed) be impossible for the headset to update when it is off.

I know I shouldn't have set it down next to me and let the battery run to 0%, but as I explained in my initial post above, I have seen this thing automatically update an app within minutes after powering it on: I saw it in progress and I tried to stop it by clicking the dots (...) -- but there was no Cancel option in the menu.

Again, maybe it only happens with small-size apps. I have a pending update for "Bigscreen Beta" but so far it hasn't auto-updated -- perhaps because it's larger, or something to do with the "Beta". Or not. I'm just speculating. I don't really understand what the heck Meta has done to my headset lol

mynamejeff1234-star commented 8 months ago

OK, wow, after more testing, I can now confirm that the DeoVR starts to update IMMEDIATELY after I turn the WiFi on. I was able to cancel it, though. It's a small download, so you have to have fast reflexes. It was in the process of downloading when I cancelled it. It didn't get to the installation phase -- but I believe that installation would have started automatically immediately after the download was finished, had I not cancelled the download.

Does anyone know how to stop this? I mean, I can downgrade or restore a backup with QuestAppVersionSwitcher, but after reboot it starts auto-updating immediately after I turn the WiFi on. It's horrible :(

(I expect to have the same problem with Pigasus and Wolvic browser, which are the other apps I need to downgrade.)

mynamejeff1234-star commented 8 months ago

Oh my god. In the few minutes it took to type that last post, DeoVR auto-updated itself (download and installation), even though I had cancelled the download a few minutes ago.

So then I restored the backup with QAVS. Then immediately it started to download the update AGAIN. I noticed it as soon as I closed QAVS. I didn't even remove the headset from my face.

This is a nightmare. What can I do. I need to either make a clone of the app that is not connected to the updater service, or else figure out how to disable the app updater service.

Otherwise I guess I have to buy a router that allows me to block all domain names and/or IP addresses controlled by Meta from interacting with my headset. My current router can't do this.

Is it possible to install an Android software firewall in the Quest? To block Meta?

Or can I use QuestAppVersionSwitcher to make a version of the app that does not auto-update?

ComputerElite commented 8 months ago

I'm not sure, there could be a setting somewhere. I recommend to Google

ComputerElite commented 8 months ago

Is it possible to clone the app to "Unknown Sources" so that it is not connected to the Quest auto-update mechanism? Can I clone apps so that I can keep two separate versions (old version and new version)?

Yes, however that'll change the package id. If the game has entitlement checks (which basically every game has) they'll thus fail and the app will close immediately. I may add an option to clone apps to QAVS next week and update you

Or is it possible to modify the app so that it will not auto-update? It is just a (solo, not multiplayer) media player app, not a game, so I don't need for it to be "official" or connect to the Internet for playing with other players in a multiplayer game mode. I just need to be able to use the old version without it constantly auto-updating.

Auto updates are triggered by the OS. However I'll get in contact with someone who may know more

I think my Quest OS version number is still in the 40s, but in late September they somehow dropped in some kind of smaller modular change (i.e., without a full OS update) that causes apps to aggressively auto-update. I never had this problem with app updates before (owned the Quest 2 since 2020). Maybe it only auto-updates small-size apps like media players (as opposed to large games)? Not sure...

Can't give you any more insight on that unfortunately

I also wanted to mention: In the downgrade UI for your app, some of the buttons are very thin, such that I cannot read the text in them (for example, the button next to the search text box which I guess probably is supposed to say "search" or "submit"). So I have to guess as to what they say.

Yeah... Quest 1 uses a really old version of WebView which doesn't support some basic stuff. I should fix that as I use a quest 1 myself and I'll look into that tomorrow. On quest 2 and up that isn't an issue anymore as far as I'm aware. Doesn't change the fact that I should have done that way sooner

Also when I first tried to use your app I initially had a gray screen, then a black screen, then an invisible screen, but somehow I eventually got you app's UI to show... it's a bit wonky.)

Yeah it is. However afaik on V49 (version my quest is on) it works a bit better. Latest version seems to be fine too as I haven't heard anyone else complain about that in quite a while

Also whenever I resize the window (it starts out in portrait mode due to some kind of modular Quest OS update like the one I mentioned before) it goes back to the Select Wizard screen for some reason.

I already changed that it'll start in landscape mode and that'll come with the next update. I'll see if I can make it not reload on resize.

ComputerElite commented 8 months ago

If I mod or patch the app using QAVS will that make a copy of the app in Unknown Sources? Because I would think that modding/patching requires re-signing the apk? I haven't tried that yet. There is no modification I desire to make (other than disabling updates if possible), but I would like to clone it to Unknown Sources if possible.

Yesn't. Patching the game won't put it into unknown sources however it'll disable auto updates due to the different signature. Generally that's done so developer versions of a game don't get overridden with the latest production one

ComputerElite commented 8 months ago

Depending on the app patching it may break it. I'll add an "just resign" toggle in the next update which shouldn't break anything expect online functionality of the game.

ComputerElite commented 8 months ago

Alright, here's a test version which enables you to change the package id of apps (clone them) or just resign them (which should also disable auto updates). I'd recommend latter. Options for that are at the very bottom of the patching tab. You'll want to change to the correct app and then use this switch image and perhaps turn of all of those image

Download at bottom of this page https://github.com/ComputerElite/QuestAppVersionSwitcher/actions/runs/6604032155

AltyFox commented 8 months ago

@mynamejeff1234-star any update on this?

ComputerElite commented 7 months ago

Closing due to inactivity and seeing it as resolved. Feel free to open the issue again if issues arise