On an Android or Apple phone, the carrier that pushes the updates to my phone can safely make several assumptions about the current state of the operating system on my phone. Since I don’t have root access there, I can’t make changes that they don’t approve of and thus, the OS updating process is very safe.
The first thing I do when I root an Android phone is to use the new root privileges to disable the forced updates that the carrier is going to push out going forward. The next step after rooting the phone is to remove the boatware that requires root privileges to remove. If the first step after rooting (disabling future updates) is skipped before the next forced carrier update, the phone will turn in to a useless brick the next time the carrier pushes out updates to apps that I have removed. Upon the attempt to boot after the update, you’ll have a brick for a phone and may not be able to recover anything of it. The same thing happens every time you do anything on a rooted phone that requires root privileges. You might even reinstall the boatware if you want to do a carrier update (which also could lock you out of having root access permanently). But anything you did as root could brick your phone if you forget to reverse it properly before doing the next carrier update.
On the Librem 5, all of us will have root access. How will Purism know to build the updates in a way that does not break things or brick the phone completely? If I compile and/or install from some other repo, purism won’t likely know what I have done. How will the L5 updates be safe?
Unlike with an Android phone where the manufacturer doesn’t expect you to root the phone and uninstall their software, the Librem 5 will be running a standard Linux stack and the user is expected to have root access, so Purism is less likely to create updates that will make your phone unbootable.
I’ve had upgrades from Debian stable to Debian testing make a PC unbootable, but I’ve never had an unbootable PC with normal updates of Debian stable or Debian testing, so I don’t think this is going to be a very common problem if you are just installing software from the PureOS repo.
If you do end up with an unbootable Librem 5, you can connect the phone to your PC with a USB cable and use Jumpdrive to boot from an image on your PC that is loaded into the RAM. Then, you can mount the eMMC and tinker with the files to fix the problem. If you can’t figure out how to fix it, then you can transfer the files off the phone to your PC. Then, do a clean install of the Librem 5 and transfer the files back to the phone.
I haven’t played with the Librem 5 installer/flasher, so I’m not sure what options are available, but I hope that there will be an option to manually set up a separate /home partition on the eMMC, so you are less likely to lose your personal files if you have to do a reinstall.
Does anyone know if a program similar to Titanium backup is available that will run on the Librem 5? It would be nice to be able to reboot the phone and then select a different OS any time I want to. Theoretically maybe GRUB might work. But I found that the learning curve on GRUB seems steep (at least it used to be). Back in the Windows 95 days, I had a boot manager program called “System Commander” that when you booted the PC, would give you a list of all operating systems I had installed. I had multiple instances of various different versions of Windows, DOS, and Linux installed there, and a separate partition for file storage that could be accessed from any of them. If I accidentally damaged any given OS and couldn’t fix it, it was super easy to restore that OS by copying another instance of it that served as a backup from the list of bootable operating systems. My permanent files stayed safe on that separate common partition that could be accessed by any OS that I had installed. So with zero risk, I was able to optomize everything and I learned what not to do to avoid damaging any given OS. It would be ideal if I could get that same functionality on my L5 when it arrives too. Such a tool could even allow one to maintain separate secret identities on your phone too. If the access to the boot menu stays hidden, anyone who boots your phone only sees the default identity after the phone boots.
What do you use on your Linux now, if not GRUB? However, I don’t know how many other OSes you could install on the phone’s eMMC, it’s not huge. I guess you could put it on a SD card a la raspberry pi…
At any rate, though, it’s a Linux computer at its core. I think your concerns are a product of overthinking.
I use Ubuntu on my PC now. For just a basic bootloader, GRUB works fine. But I’ve never learned to do a lot of creative things with it. If you install a second Linux OS on your PC, GRUB might find it and just work for making a selection at boot time. If it doesn’t, what then? Maybe you just lost your boot sector for the first OS. Titanium backup has tools to do just about anything you might want to do. Maybe I just need to learn GRUB better. But it’s hard to get a handle on and easy to mess things up permanently. System commander even came with a boot disk to restore the boot sectors if they get damaged.
Does the L5 even use GRUB? Regardless, GRUB is not the answer because it can’t help you if the disk that it was on is hosed.
For people who want to ‘tinker’, there needs to be a documented, feasible procedure for imaging and restoring the eMMC drive - which is I think basically what you are saying.
For example, I would like to be able to boot from a USB flash drive connected to the USB port and image the eMMC drive to a file on the µSD card (plenty of space). Then if I ‘tinker’ with something and the phone won’t boot from the eMMC drive any more, I can again boot from USB and restore the image from the µSD card to the eMMC drive.
Doing the same thing but booting from a PC via a USB cable, as described above, may be an alternative.