FamilyTreeMaker offers an engaging way to follow your family’s story across generations. Organize relatives, trace ancestral connections, and preserve meaningful memories as you explore your roots. Each branch can reveal fascinating details about your family’s past while helping you create a lasting record of your heritage and the stories that connect generations together.
Hello everyone, how's it going? 
In this post I'd like to explain and teach how to enable debugging of system components, Click apps as well as Snap packages. This is intended for developers choosing to contribute to the Operating System's development, wanting to fix a bug in their Click apps, or release Ubuntu Touch apps on the Snap Store for both Ubuntu Touch and all Snap-supporting Linux distributions.
Prerequisites
The Snap Store offers a static version of gdb which we're going to make use of for this setup:
sudo snap install gdb-static
Make sure to add this snippet to your ~/.bashrc file:
export PATH="/snap/gdb-static/current/usr/bin:$PATH"
After logging into a shell you are now able to run the Snap-provided gdb and gdbserver commands directly, but they don't yet work when using sudo with short-hand commands like sudo gdb.
Running gdb & strace with sudo
Since these versions of debugging tools don't sit in a PATH that is allowed for sudo-invoked commands, we will have to teach sudo to set them in its default PATH without breaking the Operating System's expectations of the read-only rootfs. So to make this work, we will have to create an overlay for /etc/sudoers.d which configures sudo to keep our tools paths intact.
First let's create an overlay containing our sudoers addition:
sudo mkdir -p /userdata/custom/overlays/etc/sudoers.d
cat - | sudo tee /userdata/custom/overlays/etc/sudoers.d/gdb <<EOF
Defaults secure_path="/snap/gdb-static/current/usr/bin:/snap/strace-static/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
EOF
sudo chmod 440 /userdata/custom/overlays/etc/sudoers.d/gdb
sudo chmod 500 /userdata/custom/overlays/etc/sudoers.d
This effectively configures sudo to keep the paths to gdb, gdbserver and strace (described later) when executing i.e sudo gdb or when snap run is launched with the --gdbserver argument.
Next create a systemd mount unit to effectively apply this overlay immediately and enable on boot:
cat - | sudo tee /etc/systemd/system/etc-sudoers.d.mount <<EOF
[Unit]
Before=local-fs.target
[Mount]
What=/userdata/custom/overlays/etc/sudoers.d
Where=/etc/sudoers.d
Type=overlay
Options=ro,relatime,lowerdir=/userdata/custom/overlays/etc/sudoers.d:/etc/sudoers.d
[Install]
WantedBy=local-fs.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now etc-sudoers.d.mount
This overlay is not modifying the immutable file system and is secure against Operating System updates changing the underlying files and defaults other than what we adapted.
Debugging your app
You're now able to run any command with the gdb command and attaching to your desired application's process, simply using sudo gdb -p <PID-of-the-process>, whether it being a system process or Click app.
You can also safely debug your Snaps using built-in commands. Let's take the wasted Snap as an example:
snap run --gdbserver wasted
This will prompt you to 1) enter your sudo password and 2) to execute the outlined gdb command in a separate terminal:
phablet@fairphone5:~$ snap run --gdbserver wasted
Welcome to "snap run --gdbserver".
You are right before your application is run.
Please open a different terminal and run:
gdb -ex="target remote :42957" -ex=continue -ex="signal SIGCONT"
(gdb) continue
or use your favorite gdb frontend and connect to :42957
Running the mentioned command and typing cont in the resulting gdb session will launch the debugging process. You are also free to connect to the server's TCP port it mentions from your development PC, allowing you to comfortably and remotely debug the app.
Tip: If your app receives SIGSTOP signals frequently during start-up, filter those signals out of process management:
(gdb) handle SIGSTOP nostop
syscall tracing
The Snap Store also has strace-static in store for debugging a process' use of syscalls at runtime. Since we've already set up the strace-static PATH in the /etc/sudoers.d overlay we can proceed with the installation:
sudo snap install strace-static
If you wish to use this version of strace over the system default one, add this to your ~/.bashrc:
export PATH="/snap/strace-static/current/bin:$PATH"
You can now simply run a command with strace prefixed, or attach to all running process' threads and children using sudo strace -p <PID-of-the-process> -ff. All the regularly expected strace command arguments apply.
On the Snap side, with a simple snap run --strace wasted we're able to capture each syscall the Snap makes to the kernel. snap run --strace wasted 2>strace.log will save the captured trace to strace.log for further inspection.
How does this work?
Unlike an apt-installed version of gdb, this one is an all-it-can-support static build of gdb into one file, same as strace-static for strace. This means those can be executed on any Linux OS, regardless of dependencies provided by your host's OS. But since they aren't dynamic binaries instead they cannot be extended by various dependencies through packaging means, especially because in this case the required sources currently expect to be compiled & linked dynamically.
As a result of all this gdb-static lacks debuginfod support for debug symbol retrieval because libdebuginfod upstream still requires yet-to-be-seen changes to build statically.
Final words
You did it! You have successfully set up your Ubuntu Touch for debugging purposes without sacrificing on the system's immutability, OTA stability guarantee, or in ease of use.
We just had to override the system-default PATH for regular sudo commands in a way that would survive any OTA coming in, and without touching our beloved immutable file system.
Congratulations, you now know how to debug on Ubuntu Touch. 
Hello Ubuntu Touch and UBPort friends,
I've created a spreadsheet (currently in LibreOffice as a .ods file) that I want to share with the community to help new people avoid 2 scenarios:
-
purchasing a phone that they cannot unlock the bootloader or have great difficulty in unlocking the bootloader
-
choosing a phone that they later discover doesn't work on the Cell Carrier (due to mismatch of cell modem bands. e.g. Phone doesn't have bands that the Carrier uses).
The idea is that an individual could go to this spreadsheet and make a better initial decision to choose a device that works for them (and they will likely have a good experience with). It is also populated with a lot of the tribal knowledge in the specific Device vendor forums and puts it in one place (that way it saves each person from doing and duplicating all this research). The spreadsheet is currently in an .ods file (LibreOffice) and contains filterable and sortable columns. The table contains:
device make
device model
latest Ubuntu Touch port version (e.g. focal, noble)
can unlock without vendor? (yes/no)
brief note on unlock
cell modem
cell modem bands
I would like to publish it in a public space preferably with an open source product (e.g. NOT Google sheets or similar Big Tech product). If you recommend an open source platform to store this info, I would be interested in hearing your suggestion. Perhaps I publish as a table in GitLab (tho I don't think would be sortable or filterable?).
After receiving so much help from so many people in these forums and community, I wanted to try to return the favor and contribute back (I did some of this research for the device I ultimately selected and am happy with. I just did the same for the rest of the devices Ubuntu Touch can operate on).
Thank you for reading and any suggestions you share.
I have updated (again) this small game. And I have to say that I like how it is going.
https://open-store.io/app/qturn.cibersheep/
The goal f this game is being the first player to get your token to the opposite corner and back. The discs indicate in which directions each player may move. Landing on certain discs lets you rotate one or all of the disks, changing the potential paths across the board, and since you aren't allowed to pass, fate will sometimes send you heading off in the wrong direction.
It is an adaptation for 2 players (I may go bananas and try to make it work for 4, as the original). The app is based on an original, free for personal use, game designed by Andrew Looney and produced by Kristin Looney.

In my obsession to have all the IF (Interactive Fiction) tools and weird codes on Ubuntu Touch, I managed to put something that I couldn't do some years ago:
https://open-store.io/app/wander.cibersheep/
Wander is a bit more than a platform to play three games, is an engine (the first that is known of) to create games for it. In plain text. Read the docs, create your stories and import them in Wander Engine.


As the title FP5 24.04.2x daily.
I have my devices SD card synced with syncthing to my desktop.
Empty folders (Documents, Pictures, Videos...) keep being created on the ext4 SD card volume by the device, how can I stop this.
I'm assuming a uid is being changed for the card causing adduser/skel to generate these files, I'm not sure?
I've stopped syncthing from pushing these folders to my machine by setting "Pull only" however, they throw cant read errors in syncthing and can't easily be removed due to permissions.
Hi,
Has anyone experienced the front facing camera disappearing on their Nothing Phone (1) Spacewar? Only the selfie camera became available. It seemed like the camera app just couldn't detect the front facing camera.
I tried changing channels for 24.04-2.0 RC to Daily and it didn't come back. I also tried reflashing with the ubports-installer and it also didn't come back.
The only way I can get it again is by reflashing back to Nothing OS 3.2.
Many thanks,
Guy
The Calendar app has stopped syncing events.
I recreated the accounts -> No luck.
Then I uninstalled the Calendar app and tried to reinstall it. The Calendar app can no longer be reinstalled.
Does anyone have any ideas?
Hi, I'm using Ubuntu Touch (24.04; 2026-08-22) on Nothing Phone 1. Here's the problem:
When I'm using the experimental feature of storage encryption, on the very first boot screenlock the screen brightness gets too low for me to see what I'm even typing and where is what key (when the enviroment is dark I can see that though, but that is irrelevant here). It happens every time I reboot the device. It does not happen on usual screenlock (after storage got decrypted), and the problem does not exist to me when encryption is not enabled (I tried restoring Ubuntu Touch to defaults a couple of times out of curiosity and when testing some stuff, so I noticed). Generally, I face the issue for a couple of months at least, since I started using Ubuntu Touch for the very first time. What is also important to mention, is that after storage decryption the brightness level automatically gets right, even though I have automatic brightness adjustment disabled, so I assume that maybe either the storage decryption has a different screenlock configuration, or the screenlock simply cannot read the default intended brightness value before storage decryption, but that's simply guessing.
What I would obviously wish to happen is for the screen brightness to have logical defaults when encryption is enabled. I assume that there is not that much of people using Ubuntu Touch on this device using experimental features and willing to report issues, so I understand why the problem was not noticed for all this time. I decided to stop being lazy and report it myself, guess to contribute, since I find use cases for this system (mostly using this device as a Ventoy-like USB stick for OS booting via the ISODrive app, since it has greater compatibility with things than Ventoy, I know that from experience).
Thanks for reading and the continuous development of this OS.
Today is Ubuntu Touch Q&A Day
Ubuntu Touch Q&A197 is today at 19:00 UTC please join us on our YouTube Channel: https://www.youtube.com/watch?v=KJEpjjmjIWI
Questions can be posted during the show or for priority using this link:https://forums.ubports.com/topic/12519/ubuntu-touch-q-a-197-call-for-questions
UBports@telegram
#ubports:matrix.org
#UBports #UbuntuTouch #UBportsQandA #Lomiri #Ubuntu #UTnoble #MobileLinux