Librem 5 Capabilities That No Other Phone Has

Has anyone who has received their Librem 5 phone here, discovered uses for it in your day to day life that would not be possible using an Android or an Apple phone? It might be fun to find out if anyone is doing anything unique with it more than only obtaining privacy.

You can’t at the ecoATM. It’s odd

1 Like

“no other phone” is a big call.

I would like to make a more general response: The Librem 5 is encouraging me to try things that I wouldn’t even try on my previous phone (iPhone), for various reasons.

To take one example, I routinely have an ssh session into my Librem 5. With that I can check the battery charge level ‘remotely’ (i.e. from another room of the house), check and change configuration, and do all sorts of other things.

Is it possible to do that on an iPhone? Apparently, yes - but not without jailbreaking i.e. so really only if Apple lets you - and then some.

So it’s not so much that you can’t do it on an iPhone. It’s that you wouldn’t try to do it on an iPhone.

As a second example, I have dipped my toe in writing a program for my Librem 5. To do that for an iPhone would require (according to my understanding) that I buy an Apple computer. That would cost a lot of money for something that I might just want to try out. It’s not like I’m going to write a best-selling app and get the cost of the Apple computer back many times over. Again, it isn’t that you can’t do it for an iPhone. It’s that I wouldn’t try to do it for an iPhone.

The Librem 5 has the capability to pull the user out of jail.

Some people are happy being in jail. Some people are happy doing only a small number of things, all of which are things that Apple lets them do. Don’t get me wrong. The iPhone is the right phone for some customers. Not for me though.

Late model iPhones don’t have a replaceable battery. So that’s a definite capability in favour of the Librem 5.

On the other side of the ledger, at the current time, there are a few too many things that the iPhone can do that the Librem 5 cannot yet do. That’s what 14 years and billions of dollars does for you.


I can use the L5 as a USB/WiFi speaker without any extra software. Stay tuned for a blog post.


I don’t have the physical phone yet, but I have been looking forward to having a way to schedule an SMS message to be sent at a certain time. I imagine that this must be possible (using a cron job, if nothing else) on the Librem 5, yet I have no knowledge how I’d do it on my current (Android) phone.

There’s also callen, which is hackersgame’s attempt to fight back against robo-callers, and I’ve been dying to try it out myself.

And these are just two examples off the top of my head… being able to program directly on the device – with no restrictive terms of service, no rooting/jailbreaking process, no extra development fee, etc. – would immediately unlock a world of possibilities.


If you find out how, let me know. I asked here: Camera development progress about a command to send a text message but I don’t think it was ever answered.

Once you have a command to send a text message then a cron job is one way to schedule it. The at command may be more convenient.

You can do it using the mmcli command. Here is a demo:

When I was playing around with that, the tricky part was that you had to kill chatty first because otherwise chatty took the messages before they were sent. Not sure if it’s still like that.


So what was the actual command?

Creating a new SMS message & storing it
mmcli -m 0 --messaging-create-sms=“text=‘Hello world’,number=’+1234567890’”

Sending SMS messages from files
sudo mmcli -m 0 --messaging-create-sms=“number=’+1234567890’” --messaging-create-sms-with-data=/path/to/your/file

Not sure if the ‘sudo’ is needed as it appears to be missing from the first example. Maybe the user needs to be in some unix group to not need ‘sudo’.


I don’t have my Librem 5 yet, but I can already state the number one thing, I can remove every app, replace every app, and modify every app.

Besides that, I don’t have to jump through any hoops to interact with my other Linux computers.

AFAICT, these things are true of any Linux phone, but the reason I chose the Librem 5 is the resource dedication. Paying a development team and already having a production infrastructure in place were two big sellers.


The Librem 5 (and the Pinephone) can run a complete desktop GNU+Linux OS out of the box.

(Or, if you prefer, a complete OS with some modifications or optimizations.)


I agree, this is the main point. Especially being able to modify things.


Heh, you can remove apps, and the kernel, and the libraries, and the battery, the modem and WiFi cards even :slight_smile: Not necessarily all recommended things to do.


That’s an important part, thanks @dcz for the hints about how to rebuild and install modified kernels, that has been very useful for me. Not to mention fun! :slight_smile: There is a thread about that here if others want to dive in: Librem 5 kernel hacking


It does still seem to be like that. That is far from ideal for real use, but OK for playing around and testing.

Which raises the question as to what the correct way of restarting chatty afterwards is (short of rebooting the phone)?

Yes, it does appear to be needed. To create, send or delete an SMS it needed the sudo but to list the messages did not (which all seems fair enough). Otherwise:

error: couldn't create new SMS: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Unauthorized: PolicyKit authorization failed: not authorized for 'org.freedesktop.ModemManager1.Messaging''

So perhaps one should not use sudo and instead should authorise specified non-root users in some way.

For completeness, to actually send an SMS needs: sudo mmcli --send -s N
where N is replaced by the SMS message index (as displayed at the time of creation or subsequently by listing).

Related to that, I routinely have an ssh session open to the phone.

If I need to do something e.g. relating to the network, for example, but unrelated to the phone it doesn’t matter which shell window I pick. The same command works the same whether it is a shell window that is remote onto the phone, or one that is local to the computer I am using.

1 Like

Switching out the modem with another, for replacement or upgrading, is the one feature the Librem 5 has that I am pretty sure literally no other phone in a brick-smartphone form factor has at the moment. Most of the other features can be replicated in the Pinephone or in some of the more open Android phones like the OnePlus One.

The Librem 5 is also, to my knowledge, the only phone that is fully capable with an OS without any proprietary blobs in it at all.


I have one for sell. If you are looking to buy… its not a ripper or jacker I am selling a Librem 5 usa for 1500.00 rn. Please 6614931781 call text or reply here if your not comfortable using the phone to communicate with.

It looks like it’s not so much about the Librem 5 can do, but about what we might be able to make it do in the future that is exciting. I agree also that it’s the linux itself and not living in a jail that is exciting. If there are two rooms that you could choose to live in, and one room has an unlocked door while the other room has a door that is locked from the outside, most of us would choose to live in the room with a door that you can exit if you want to.


One way to handle it is to just pause the chatty process and resume it afterwards. The following works for me (just replace the “+46numberhere” with the actual phone number to send to.):

# Pause chatty
killall -STOP chatty

# Create SMS and save its id
id=`sudo mmcli -m any --messaging-create-sms="text='Hello world',number='+46numberhere'" | gawk -F/ '{print $6}'`

echo id = $id

# Send SMS
sudo mmcli -s $id --send

# Resume chatty
killall -CONT chatty

The part picking out the message id number uses gawk, installed using sudo apt install gawk.

1 Like

I would use cut rather than (g)awk for a relatively straightforward text operation. You can even do it directly in shell (with assumptions). Example:

echo id = $id

You could of course write a (longer, more complex) pattern that more exactly reflects the text operation being done by gawk or cut.