It's a contain with its own environment and all dependencies inside.
Somewhere, there's a rule file that controls what directories it
can read or write in the real tree.
Snaps are impossible to debug, so they *must* work, or else.
The following sample, shows some content. It would appear that
hunspell is a separate thing it needs, and it might be a service
of some sort.
*******
It's a squashfs.
The snaps are "mounted", to speed access. A firefox package might be
54MB, and the (compressed) snap is a bit bigger than that.
it has a pipewire directory, meaning sound from Firefox is hooked up.
/var/lib/snapd/seed/snaps/firefox_3216.snap 252,190,720 bytes (squashfs, 7ZIP can read it)
Directory:
d----- 9/29/2023 1:57 PM data-dir
d----- 9/29/2023 1:57 PM gnome-platform
d----- 9/29/2023 1:57 PM meta
d----- 9/29/2023 1:57 PM snap
d----- 3/24/2022 12:14 PM usr
-a---- 9/29/2023 1:57 PM 32441 default256.png
-a---- 9/29/2023 1:57 PM 9146 firefox.desktop
-a---- 9/29/2023 1:57 PM 2470 firefox.launcher
-a---- 9/29/2023 1:57 PM 3716 patch-default-profile.py
Directory: data-dir
d----- 9/29/2023 1:57 PM icons
d----- 9/29/2023 1:57 PM sounds
d----- 9/29/2023 1:57 PM themes
Directory: meta
d----- 9/29/2023 1:57 PM gui
d----- 9/29/2023 1:57 PM hooks
-a---- 9/29/2023 1:57 PM 3616 snap.yaml
Directory: meta\gui
-a---- 9/29/2023 1:57 PM 9154 firefox.desktop
Directory: meta\hooks
-a---- 9/29/2023 1:57 PM 12 configure
-a---- 9/29/2023 1:57 PM 66 connect-plug-host-hunspell
-a---- 9/29/2023 1:57 PM 69 disconnect-plug-host-hunspell
-a---- 9/29/2023 1:57 PM 52 post-refresh
Directory: snap
d----- 9/29/2023 1:57 PM command-chain
d----- 9/29/2023 1:57 PM hooks
-a---- 9/29/2023 1:57 PM 46553 manifest.yaml
-a---- 9/29/2023 1:57 PM 22686 snapcraft.yaml
Directory: snap\command-chain
-a---- 9/29/2023 1:57 PM 149 desktop-launch
-a---- 9/29/2023 1:57 PM 156 hooks-configure-fonts
-a---- 9/29/2023 1:57 PM 541 run
Directory: snap\hooks
-a---- 9/29/2023 1:57 PM 147 connect-plug-host-hunspell
-a---- 9/29/2023 1:57 PM 61 disconnect-plug-host-hunspell
-a---- 9/29/2023 1:57 PM 1200 post-refresh
Directory: usr
d----- 9/29/2023 1:57 PM lib
d----- 9/29/2023 1:57 PM share
Directory: usr\lib
d----- 9/29/2023 1:57 PM firefox
d----- 9/29/2023 1:57 PM x86_64-linux-gnu
Directory: usr\lib\firefox
d----- 9/29/2023 1:57 PM browser
d----- 9/29/2023 1:57 PM defaults
d----- 9/29/2023 1:57 PM distribution
d----- 9/29/2023 1:57 PM fonts
d----- 9/29/2023 1:57 PM gmp-clearkey
-a---- 9/29/2023 12:48 PM 700 application.ini
-a---- 9/29/2023 1:57 PM 183952 crashreporter
-a---- 9/27/2023 10:37 PM 3902 crashreporter.ini
-a---- 9/29/2023 1:54 PM 189 dependentlibs.list
-a---- 9/29/2023 1:57 PM 650640 firefox
-a---- 9/29/2023 1:57 PM 650640 firefox-bin
-a---- 9/29/2023 1:57 PM 71238288 geckodriver
-a---- 9/29/2023 1:57 PM 23000 glxtest
-a---- 9/29/2023 1:57 PM 837976 libfreeblpriv3.so
-a---- 9/29/2023 1:57 PM 506056 libgkcodecs.so
-a---- 9/29/2023 1:57 PM 380072 libipcclientcerts.so
-a---- 9/29/2023 1:57 PM 34872 liblgpllibs.so
-a---- 9/29/2023 1:57 PM 3958728 libmozavcodec.so
-a---- 9/29/2023 1:57 PM 244488 libmozavutil.so
-a---- 9/29/2023 1:57 PM 5960 libmozgtk.so
-a---- 9/29/2023 1:57 PM 113264 libmozsandbox.so
-a---- 9/29/2023 1:57 PM 1240952 libmozsqlite3.so
-a---- 9/29/2023 1:57 PM 10120 libmozwayland.so
-a---- 9/29/2023 1:57 PM 218920 libnspr4.so
-a---- 9/29/2023 1:57 PM 698776 libnss3.so
-a---- 9/29/2023 1:57 PM 539616 libnssckbi.so
-a---- 9/29/2023 1:57 PM 183256 libnssutil3.so
-a---- 9/29/2023 1:57 PM 18576 libplc4.so
-a---- 9/29/2023 1:57 PM 14392 libplds4.so
-a---- 9/29/2023 1:57 PM 155216 libsmime3.so
-a---- 9/29/2023 1:57 PM 326024 libsoftokn3.so
-a---- 9/29/2023 1:57 PM 414280 libssl3.so
-a---- 9/29/2023 1:57 PM 142606392 libxul.so
-a---- 9/29/2023 1:57 PM 1387216 minidump-analyzer
-a---- 9/29/2023 1:57 PM 31642840 omni.ja
-a---- 9/29/2023 1:57 PM 695760 pingsender
-a---- 9/29/2023 1:54 PM 167 platform.ini
-a---- 9/29/2023 1:57 PM 642384 plugin-container
-a---- 9/29/2023 1:57 PM 0 removed-files
-a---- 9/27/2023 10:37 PM 825 Throbber-small.gif
-a---- 9/29/2023 1:57 PM 18720 vaapitest
Directory: usr\lib\firefox\browser
d----- 9/29/2023 1:57 PM chrome
d----- 9/29/2023 1:57 PM features
-a---- 9/27/2023 10:37 PM 787 crashreporter-override.ini
-a---- 9/29/2023 1:57 PM 40567859 omni.ja
Directory: usr\lib\firefox\browser\chrome
d----- 9/29/2023 1:57 PM icons
Directory: usr\lib\firefox\browser\chrome\icons
d----- 9/29/2023 1:57 PM default
Directory: usr\lib\firefox\browser\chrome\icons\default
-a---- 9/27/2023 10:37 PM 13513 default128.png
-a---- 9/27/2023 10:37 PM 722 default16.png
-a---- 9/27/2023 10:37 PM 1948 default32.png
-a---- 9/27/2023 10:37 PM 3448 default48.png
-a---- 9/27/2023 10:37 PM 5459 default64.png
Directory: usr\lib\firefox\browser\features
-a---- 9/29/2023 1:57 PM 138214 formau...@mozilla.org.xpi
-a---- 9/29/2023 1:57 PM 62247 picturei...@mozilla.org.xpi
-a---- 9/29/2023 1:57 PM 172269 scree...@mozilla.org.xpi
-a---- 9/29/2023 1:57 PM 30815 webcompat...@mozilla.org.xpi
-a---- 9/29/2023 1:57 PM 423940 webc...@mozilla.org.xpi
Directory: usr\lib\firefox\defaults
d----- 9/29/2023 1:57 PM pref
Directory: usr\lib\firefox\defaults\pref
-a---- 9/29/2023 1:54 PM 429 channel-prefs.js
Directory: usr\lib\firefox\distribution
d----- 9/29/2023 1:57 PM extensions
d----- 9/29/2023 1:57 PM searchplugins
-a---- 9/29/2023 1:57 PM 397 distribution.ini
Directory: usr\lib\firefox\distribution\extensions
d----- 9/29/2023 1:57 PM locale-en-GB # and many more
d----- 9/29/2023 1:57 PM locale-en-US
Directory: usr\lib\firefox\distribution\extensions\locale-en-GB
-a---- 9/29/2023 1:57 PM 538560 langpac...@firefox.mozilla.org.xpi
Directory: usr\lib\firefox\distribution\extensions\locale-en-US
-a---- 9/29/2023 1:57 PM 529346 langpac...@firefox.mozilla.org.xpi
Directory: usr\lib\firefox\distribution\searchplugins
d----- 9/29/2023 1:57 PM common
Directory: usr\lib\firefox\distribution\searchplugins\common
-a---- 9/29/2023 1:57 PM 7928 google.xml
Directory: usr\lib\firefox\fonts
-a---- 9/27/2023 10:37 PM 1474284 TwemojiMozilla.ttf
Directory: usr\lib\firefox\gmp-clearkey
d----- 9/29/2023 1:57 PM 0.1
Directory: usr\lib\firefox\gmp-clearkey\0.1
-a---- 9/29/2023 1:57 PM 67992 libclearkey.so
-a---- 9/29/2023 1:54 PM 225 manifest.json
Directory: usr\lib\x86_64-linux-gnu
d----- 9/29/2023 1:57 PM pipewire-0.3
d----- 9/29/2023 1:57 PM spa-0.2
-a---- 2/20/2022 12:14 PM 15 libaom.so.3
-a---- 2/20/2022 12:14 PM 5383376 libaom.so.3.3.0
-a---- 5/19/2022 2:10 AM 24 libavcodec.so.58
-a---- 5/19/2022 2:10 AM 14886880 libavcodec.so.58.134.100
-a---- 5/19/2022 2:10 AM 22 libavutil.so.56
-a---- 5/19/2022 2:10 AM 691088 libavutil.so.56.70.100
-a---- 11/27/2021 7:10 PM 15359024 libcodec2.so.1.0
-a---- 7/19/2023 12:23 PM 16 libcurl.so.4
-a---- 7/19/2023 12:23 PM 677656 libcurl.so.4.7.0
-a---- 9/12/2021 8:35 AM 17 libdav1d.so.5
-a---- 9/12/2021 8:35 AM 1316784 libdav1d.so.5.1.1
-a---- 1/31/2022 1:02 PM 16 libgsm.so.1
-a---- 1/31/2022 1:02 PM 59544 libgsm.so.1.0.19
-a---- 4/4/2022 6:38 AM 14 libmfx.so.1
-a---- 4/4/2022 6:38 AM 51592 libmfx.so.1.35
-a---- 3/24/2022 8:09 AM 19 libmp3lame.so.0
-a---- 3/24/2022 8:09 AM 288840 libmp3lame.so.0.0.0
-a---- 3/24/2022 12:21 PM 21 libnghttp2.so.14
-a---- 3/24/2022 12:21 PM 166256 libnghttp2.so.14.20.1
-a---- 3/24/2022 12:21 PM 16 libnuma.so.1
-a---- 3/24/2022 12:21 PM 48152 libnuma.so.1.0.0
-a---- 9/30/2021 10:28 AM 18 libOpenCL.so.1
-a---- 9/30/2021 10:28 AM 69288 libOpenCL.so.1.0.0
-a---- 3/24/2022 12:28 PM 16 libopus.so.0
-a---- 3/24/2022 12:28 PM 378952 libopus.so.0.8.0
-a---- 8/29/2021 10:45 PM 15 libpci.so.3
-a---- 8/29/2021 10:45 PM 60184 libpci.so.3.7.0
-a---- 11/9/2022 6:12 AM 26 libpipewire-0.3.so.0
-a---- 11/9/2022 6:12 AM 875640 libpipewire-0.3.so.0.348.0
-a---- 3/25/2022 5:57 AM 121864 librtmp.so.1
-a---- 12/12/2022 6:52 AM 18 libsasl2.so.2
-a---- 12/12/2022 6:52 AM 105392 libsasl2.so.2.0.25
-a---- 4/19/2018 2:25 PM 17 libshine.so.3
-a---- 4/19/2018 2:25 PM 43104 libshine.so.3.0.1
-a---- 3/25/2022 5:51 AM 18 libsnappy.so.1
-a---- 3/25/2022 5:51 AM 35184 libsnappy.so.1.1.8
-a---- 3/24/2022 12:20 PM 16 libsoxr.so.0
-a---- 3/24/2022 12:20 PM 199736 libsoxr.so.0.1.2
-a---- 5/23/2023 3:29 AM 19 libspeechd.so.2
-a---- 5/23/2023 3:29 AM 47096 libspeechd.so.2.6.0
-a---- 2/23/2022 8:33 AM 17 libspeex.so.1
-a---- 2/23/2022 8:33 AM 116776 libspeex.so.1.5.0
-a---- 5/19/2022 2:10 AM 24 libswresample.so.3
-a---- 5/19/2022 2:10 AM 133112 libswresample.so.3.9.100
-a---- 3/24/2022 12:13 PM 21 libtheoradec.so.1
-a---- 3/24/2022 12:13 PM 117040 libtheoradec.so.1.1.4
-a---- 3/24/2022 12:13 PM 21 libtheoraenc.so.1
-a---- 3/24/2022 12:13 PM 223536 libtheoraenc.so.1.1.2
-a---- 3/25/2022 5:52 AM 19 libtwolame.so.0
-a---- 3/25/2022 5:52 AM 129096 libtwolame.so.0.0.0
-a---- 3/24/2022 12:20 PM 17 libvdpau.so.1
-a---- 3/24/2022 12:20 PM 18592 libvdpau.so.1.0.0
-a---- 3/24/2022 12:21 PM 15 libvpx.so.7
-a---- 3/24/2022 12:21 PM 15 libvpx.so.7.0
-a---- 3/24/2022 12:21 PM 3176976 libvpx.so.7.0.0
-a---- 9/13/2023 1:57 PM 16 libwebp.so.7
-a---- 9/13/2023 1:57 PM 432688 libwebp.so.7.1.3
-a---- 9/13/2023 1:57 PM 19 libwebpmux.so.3
-a---- 9/13/2023 1:57 PM 47440 libwebpmux.so.3.0.8
-a---- 3/7/2022 9:23 AM 1863256 libx264.so.163
-a---- 9/23/2021 6:47 PM 16071296 libx265.so.199
-a---- 2/9/2022 10:28 AM 14 libXt.so.6
-a---- 2/9/2022 10:28 AM 441760 libXt.so.6.0.0
-a---- 2/15/2020 5:02 PM 18 libxvidcore.so.4
-a---- 2/15/2020 5:02 PM 691200 libxvidcore.so.4.3
-a---- 12/29/2021 9:02 AM 17 libzvbi.so.0
-a---- 12/29/2021 9:02 AM 581328 libzvbi.so.0.13.2
Directory: usr\lib\x86_64-linux-gnu\pipewire-0.3
d----- 9/29/2023 1:57 PM v4l2
-a---- 11/9/2022 6:12 AM 18704 libpipewire-module-access.so
-a---- 11/9/2022 6:12 AM 141584 libpipewire-module-adapter.so
-a---- 11/9/2022 6:12 AM 51472 libpipewire-module-client-device.so
-a---- 11/9/2022 6:12 AM 268560 libpipewire-module-client-node.so
-a---- 11/9/2022 6:12 AM 59664 libpipewire-module-echo-cancel.so
-a---- 11/9/2022 6:12 AM 18704 libpipewire-module-fallback-sink.so
-a---- 11/9/2022 6:12 AM 155336 libpipewire-module-filter-chain.so
-a---- 11/9/2022 6:12 AM 22800 libpipewire-module-link-factory.so
-a---- 11/9/2022 6:12 AM 47376 libpipewire-module-loopback.so
-a---- 11/9/2022 6:12 AM 47376 libpipewire-module-metadata.so
-a---- 11/9/2022 6:12 AM 22800 libpipewire-module-portal.so
-a---- 11/9/2022 6:12 AM 55568 libpipewire-module-profiler.so
-a---- 11/9/2022 6:12 AM 301360 libpipewire-module-protocol-native.so
-a---- 11/9/2022 6:12 AM 416784 libpipewire-module-protocol-pulse.so
-a---- 11/9/2022 6:12 AM 55568 libpipewire-module-protocol-simple.so
-a---- 11/9/2022 6:12 AM 59664 libpipewire-module-pulse-tunnel.so
-a---- 11/9/2022 6:12 AM 22800 libpipewire-module-raop-discover.so
-a---- 11/9/2022 6:12 AM 80144 libpipewire-module-raop-sink.so
-a---- 11/9/2022 6:12 AM 30992 libpipewire-module-rt.so
-a---- 11/9/2022 6:12 AM 30992 libpipewire-module-rtkit.so
-a---- 11/9/2022 6:12 AM 190704 libpipewire-module-session-manager.so
-a---- 11/9/2022 6:12 AM 22800 libpipewire-module-spa-device-factory.so
-a---- 11/9/2022 6:12 AM 14608 libpipewire-module-spa-device.so
-a---- 11/9/2022 6:12 AM 71952 libpipewire-module-spa-node-factory.so
-a---- 11/9/2022 6:12 AM 67856 libpipewire-module-spa-node.so
-a---- 11/9/2022 6:12 AM 22800 libpipewire-module-x11-bell.so
-a---- 11/9/2022 6:12 AM 43280 libpipewire-module-zeroconf-discover.so
Directory: usr\lib\x86_64-linux-gnu\pipewire-0.3\v4l2
-a---- 11/9/2022 6:12 AM 76048 libpw-v4l2.so
Directory: usr\lib\x86_64-linux-gnu\spa-0.2
d----- 9/29/2023 1:57 PM aec
d----- 9/29/2023 1:57 PM alsa
d----- 9/29/2023 1:57 PM audioconvert
d----- 9/29/2023 1:57 PM audiomixer
d----- 9/29/2023 1:57 PM audiotestsrc
d----- 9/29/2023 1:57 PM control
d----- 9/29/2023 1:57 PM support
d----- 9/29/2023 1:57 PM test
d----- 9/29/2023 1:57 PM v4l2
d----- 9/29/2023 1:57 PM videoconvert
d----- 9/29/2023 1:57 PM videotestsrc
d----- 9/29/2023 1:57 PM volume
Directory: usr\lib\x86_64-linux-gnu\spa-0.2\aec
-a---- 11/9/2022 6:12 AM 14672 libspa-aec-null.so
-a---- 11/9/2022 6:12 AM 18856 libspa-aec-webrtc.so
Directory: usr\lib\x86_64-linux-gnu\spa-0.2\alsa
-a---- 11/9/2022 6:12 AM 700584 libspa-alsa.so
Directory: usr\lib\x86_64-linux-gnu\spa-0.2\audioconvert
-a---- 11/9/2022 6:12 AM 702376 libspa-audioconvert.so
Directory: usr\lib\x86_64-linux-gnu\spa-0.2\audiomixer
-a---- 11/9/2022 6:12 AM 101304 libspa-audiomixer.so
Directory: usr\lib\x86_64-linux-gnu\spa-0.2\audiotestsrc
-a---- 11/9/2022 6:12 AM 63728 libspa-audiotestsrc.so
Directory: usr\lib\x86_64-linux-gnu\spa-0.2\control
-a---- 11/9/2022 6:12 AM 55536 libspa-control.so
Directory: usr\lib\x86_64-linux-gnu\spa-0.2\support
-a---- 11/9/2022 6:12 AM 22800 libspa-dbus.so
-a---- 11/9/2022 6:12 AM 18672 libspa-journal.so
-a---- 11/9/2022 6:12 AM 117072 libspa-support.so
Directory: usr\lib\x86_64-linux-gnu\spa-0.2\test
-a---- 11/9/2022 6:12 AM 84208 libspa-test.so
Directory: usr\lib\x86_64-linux-gnu\spa-0.2\v4l2
-a---- 11/9/2022 6:12 AM 112912 libspa-v4l2.so
Directory: usr\lib\x86_64-linux-gnu\spa-0.2\videoconvert
-a---- 11/9/2022 6:12 AM 108784 libspa-videoconvert.so
Directory: usr\lib\x86_64-linux-gnu\spa-0.2\videotestsrc
-a---- 11/9/2022 6:12 AM 55632 libspa-videotestsrc.so
Directory: usr\lib\x86_64-linux-gnu\spa-0.2\volume
-a---- 11/9/2022 6:12 AM 51440 libspa-volume.so
Directory: usr\share
d----- 9/29/2023 1:57 PM hunspell
d----- 9/29/2023 1:57 PM pipewire
Directory: usr\share\hunspell
-a---- 8/16/2021 3:56 PM 32953 en_GB.aff
-a---- 8/16/2021 3:56 PM 1121033 en_GB.dic # and many more
-a---- 1/4/2017 12:53 PM 1000898 en_med_glut.dic
-a---- 1/20/2022 12:16 AM 3131 en_US.aff
-a---- 1/20/2022 12:16 AM 860381 en_US.dic
Directory: usr\share\pipewire
-a---- 11/9/2022 6:12 AM 2816 client-rt.conf
-a---- 11/9/2022 6:12 AM 2535 client.conf
-a---- 11/9/2022 6:12 AM 3160 jack.conf
-a---- 11/9/2022 6:12 AM 12636 minimal.conf
-a---- 11/9/2022 6:12 AM 4992 pipewire-pulse.conf
-a---- 11/9/2022 6:12 AM 9476 pipewire.conf
Apologies for the format. I had to squish it down a bit, so
it wouldn't waste too much bandwidth. The directory the .snap is kept in
is suitably permissioned to keep you out.
The message here, is yes, they are decompose-able, if you want to examine one.
The gnome desktop in Ubuntu, is also a snap. Let that sink in for a moment.
Name: gnome-42-2204_141.snap
Size: 521,121,792 bytes (496 MiB)
SHA1: EEC0D094636944DC671C89C094C298018AAD3FC5
Paul