Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] different plugin priveledges depending on install method #748

Open
4 tasks done
xXJSONDeruloXx opened this issue Feb 9, 2025 · 1 comment
Open
4 tasks done
Labels
bug Something isn't working

Comments

@xXJSONDeruloXx
Copy link
Contributor

Please confirm

  • I have searched existing issues
  • This issue is not a duplicate of an existing one
  • I have checked the common issues section in the readme file
  • I have attached logs to this bug report (failure to include logs will mean your issue may not be responded to).

Bug Report Description

I noticed an odd behavior where a plugin installed from a ZIP file appears to have elevated privileges compared to the same plugin downloaded via the Decky Store. Specifically, the store-downloaded version was unable to copy a file from /defaults/assets to the mod path, while the ZIP-installed version could.

This could be related to differences in permissions set during installation, potentially between 777 and 755. My current workaround involves ensuring everything is downloaded to /bin first before copying over, but I’m unsure if this is intended behavior or if I’m handling something incorrectly.

Would appreciate any insights on whether this is expected or if there’s a permissions issue at play.

Steps to Reproduce:
1. Install the plugin from the Decky Store.
2. Attempt to copy a file from /defaults/assets to the mod path.
3. Install the same plugin via ZIP.
4. Perform the same file operation and note that it succeeds.

specific to my test case of decky frame gen v 0.9.0 https://github.com/xXJSONDeruloXx/Decky-Framegen/releases/tag/v0.9.0

Expected Behaviour

Both installation methods should result in the same permission behavior unless explicitly intended otherwise.

SteamOS version

3.6.20

Selected Update Channel

Stable

Decky Loader Version

v3.1.3 pre release

Plugin Info

(deck@steamdeck ~)$ bash -c 'directory_to_scan="$HOME/homebrew/plugins"; for dir in "$directory_to_scan"/*/; do if [ -f "${dir}package.json" ]; then name=$(jq -r ".name" "${dir}package.json"); version=$(jq -r ".version" "${dir}package.json"); echo "Directory: ${dir}"; echo "Package Name: $name"; echo "Version: $version"; echo "-----------------------------"; fi; done'
Directory: /home/deck/homebrew/plugins/Crosshair/
Package Name: crosshair
Version: 1.0.0

Directory: /home/deck/homebrew/plugins/deck-roulette/
Package Name: deck-roulette
Version: 1.1.6-d0eea04

Directory: /home/deck/homebrew/plugins/decky-brightness-bar/
Package Name: decky-brightness-bar
Version: 1.0.3-2b39e94

Directory: /home/deck/homebrew/plugins/Decky-Framegen/
Package Name: decky-framegen
Version: 0.9.1-ce332ab

Directory: /home/deck/homebrew/plugins/decky-game-settings/
Package Name: decky-game-settings
Version: 0.0.1-9fc66b1

Directory: /home/deck/homebrew/plugins/Decky-Lookup/
Package Name: Decky-Lookup
Version: 0.0.1

Directory: /home/deck/homebrew/plugins/decky-steamgriddb/
Package Name: decky-steamgriddb
Version: 1.5.1-loaderv2

Directory: /home/deck/homebrew/plugins/decky-terminal/
Package Name: decky-terminal
Version: 0.4.1

Directory: /home/deck/homebrew/plugins/hltb-for-deck/
Package Name: hltb-for-deck
Version: 2.0.4-7d39e65

Directory: /home/deck/homebrew/plugins/Junk-Store/
Package Name: Junk-Store
Version: 1.1.8

Directory: /home/deck/homebrew/plugins/MagicPodsDecky/
Package Name: magicpods-decky
Version: 1.0.7

Directory: /home/deck/homebrew/plugins/MangoPeel/
Package Name: MangoPeel
Version: 0.0.5-1

Directory: /home/deck/homebrew/plugins/protondb-decky/
Package Name: protondb-decky
Version: 1.1.0

Directory: /home/deck/homebrew/plugins/SDH-AnimationChanger/
Package Name: decky-animation-changer
Version: 1.3.2-01f5968

Directory: /home/deck/homebrew/plugins/SDH-AudioLoader/
Package Name: SDH-AudioLoader
Version: 1.6.0

Directory: /home/deck/homebrew/plugins/SDH-CssLoader/
Package Name: SDH-CssLoader
Version: 2.1.2

Directory: /home/deck/homebrew/plugins/SDH-PauseGames/
Package Name: pause-games
Version: 1.0.0-b2be59f

Directory: /home/deck/homebrew/plugins/SDH-PlayTime/
Package Name: PlayTime
Version: 2.0.9-c9445a5

(deck@steamdeck ~)$

Have you modified the read-only filesystem at any point?

no

Backend Logs

deckylog.txt

Frontend Logs

[0208/222222.347230:WARNING:alloy_main_delegate.cc(578)] Alloy bootstrap is deprecated and will be removed in ~M127. See chromiumembedded/cef#3685
[0208/222222.395715:INFO:crash_reporting.cc(238)] Crash reporting enabled for process: browser
[0208/222222.406050:WARNING:task_impl.cc(31)] No task runner for threadId 0
[0208/222222.408373:WARNING:task_impl.cc(31)] No task runner for threadId 0
[0208/222222.644723:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/portal/desktop: org.freedesktop.DBus.Error.InvalidArgs: No such interface “org.freedesktop.portal.FileChooser”
[0208/222222.644759:WARNING:property.cc(144)] version: GetAndBlock: failed.
[0208/222222.645142:ERROR:select_file_dialog_linux_portal.cc(287)] Failed to read portal version property
[0208/222222.650319:INFO:crash_reporting.cc(255)] Crash reporting enabled for process: gpu-process
[0208/222222.800406:WARNING:sandbox_linux.cc(430)] InitializeSandbox() called with multiple threads in process gpu-process.
[0208/222223.569581:INFO:crash_reporting.cc(238)] Crash reporting enabled for process: utility
[0208/222223.598257:INFO:crash_reporting.cc(255)] Crash reporting enabled for process: utility
[0208/222225.013521:INFO:crash_reporting.cc(255)] Crash reporting enabled for process: renderer
[0208/222227.590365:ERROR:atom_cache.cc(229)] Add STEAM_GAME to kAtomsToCache
[0208/222228.098091:ERROR:ffmpeg_common.cc(959)] Unsupported pixel format: -1
[0208/222228.226827:INFO:crash_reporting.cc(238)] Crash reporting enabled for process: utility
[0208/222258.388091:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 times!
[0208/222258.389662:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 2 times!
[0208/222301.962025:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 3 times!
[0208/222458.491346:INFO:CONSOLE(2)] "Unable to preventDefault inside passive event listener invocation.", source: https://steamloopback.host/libraries/libraries~00299a408.js (2)
[0208/222459.419055:INFO:CONSOLE(2)] "Unable to preventDefault inside passive event listener invocation.", source: https://steamloopback.host/libraries/libraries~00299a408.js (2)
[0208/222522.427765:WARNING:sync_reader.cc(175)] ASR: No room in socket buffer.: Broken pipe (32)
[0208/222523.647341:INFO:CONSOLE(2)] "Unable to preventDefault inside passive event listener invocation.", source: https://steamloopback.host/libraries/libraries~00299a408.js (2)
[0208/222524.956511:INFO:CONSOLE(2)] "Unable to preventDefault inside passive event listener invocation.", source: https://steamloopback.host/libraries/libraries~00299a408.js (2)
[0208/223027.391313:INFO:CONSOLE(2)] "Unable to preventDefault inside passive event listener invocation.", source: https://steamloopback.host/libraries/libraries~00299a408.js (2)
[0208/223028.177303:INFO:CONSOLE(2)] "Unable to preventDefault inside passive event listener invocation.", source: https://steamloopback.host/libraries/libraries~00299a408.js (2)
[0208/223029.284035:INFO:CONSOLE(2)] "Unable to preventDefault inside passive event listener invocation.", source: https://steamloopback.host/libraries/libraries~00299a408.js (2)
[0208/223030.091191:INFO:CONSOLE(2)] "Unable to preventDefault inside passive event listener invocation.", source: https://steamloopback.host/libraries/libraries~00299a408.js (2)
[0208/223030.691979:INFO:CONSOLE(2)] "Unable to preventDefault inside passive event listener invocation.", source: https://steamloopback.host/libraries/libraries~00299a408.js (2)
[0208/223031.102229:INFO:CONSOLE(2)] "Unable to preventDefault inside passive event listener invocation.", source: https://steamloopback.host/libraries/libraries~00299a408.js (2)
[0208/223043.507250:INFO:CONSOLE(2)] "Unable to preventDefault inside passive event listener invocation.", source: https://steamloopback.host/libraries/libraries~00299a408.js (2)

previous.txt

@xXJSONDeruloXx xXJSONDeruloXx added the bug Something isn't working label Feb 9, 2025
@xXJSONDeruloXx
Copy link
Contributor Author

Also potentially related, sometimes when I install the plugin from store the mod install button won’t show up in the plugin ui, but it shows just fine after a restart. This button state depends on detecting the presence of files from the backend py function for paths outside the plugin itself. So maybe on install and through that session it’s not given the permissions it typically would from unit on fresh boot after being installed?

@xXJSONDeruloXx xXJSONDeruloXx changed the title [BUG] <title> [BUG] different plugin priveledges depending on install method Feb 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant