[Testannounce] Purism Newsletter 2021-04-20
testannounce at announce.puri.sm
testannounce at announce.puri.sm
Tue Apr 20 10:40:54 PDT 2021
Purism News Summary: March / April 2021
Librem 14
Purism News Summary:
March/April 2021
------------------------------------------------------------------------
Librem 14 Begins Shipping
We set out on a multi-year journey to build our dream laptop—the
Librem 14 <https://puri.sm/products/librem-14/>—and today that dream
is reality and is shipping.
The most secure laptop, the Librem 14 by Purism
As expected, there is a lot of demand for the Librem 14 and now that we
are shipping we expect that demand to grow. We plan to reach shipping
parity (the point where we have shipped all existing orders so that new
orders ship within our normal 10-business-day window) as soon as
possible and with the help of some overtime we have an internal goal to
ship through all existing orders in May, any newly placed orders get
into the ever growing queue for fulfillment in a first-in-first-out
process. If you are already in the queue with a pre-order, we will
confirm shipping details prior to your order being delivered.
The most secure laptop, the Librem 14 by Purism
Thank you to everyone for supporting the Librem 14, the most advanced,
secure, and powerful laptop we’ve made so far.
The most secure laptop, the Librem 14 by Purism
Librem 14 Rave
Now that shipping of the Librem 14 to customers is imminent we should
talk about some more details and enhancements we made.
Like we mentioned before the outside dimensions are almost the same as
the Librem 13 was, so the Librem 14 measures: 322mm x 222mm x 17mm.
The total weight including the 4 cell battery, two SODIMMs and one M.2
SSD is about 1490gr (I am living in Germany, you have to get along with
metric units 🙂 ).
A Walk Around
Let’s have a walk around.
>From left to right: “Kensington lockâ€, HDMI, type-A USB, microSD
card reader, type-C USB
On the left hand side there are four connectors: HDMI, type-A USB3.1,
microSD card reader (via USB3) and one type-C USB3.1. Also on the left
side is a so-called “Kensington lock†hole for one of those laptop
anti-theft locks.
>From left to right: 3.55mm headphone jack, type-C USB with PD and DP,
type-A USB, RJ45 Ethernet, DC in, power LED
On the right hand side we have a 4mm barrel connector for 19V DC input
(rated up to 120W), a gigabit Ethernet RJ45 jack with a neat flip down
cover, another type-A USB3.1, a 3.5mm headphone jack and finally a full
function type-C port.
Supporting Extra Screens
The full function type-C port is something new and that we are super
happy about! This not only supports USB 3.1 data but also power delivery
to charge the laptop and can also support the so-called type-C Display
Port alt mode to attach to an external screen! So together with the HDMI
2.0 port we can now support three screens in total, the internal 14″
LCD, HDMI and type-C, all at the same time.
Three screens in GNOME display settings
Another new feature of the Librem 14 is a power state LED next to the DC
input barrel connector. We implemented this so that you can see the
laptop’s power state even when the LCD lid is closed, e.g. when you
put it in your backpack. This LED on the outside reflects the same
states as the power LED on the inside next to the hardware kill switches
(HKS). But before looking at these let’s first have a look inside.
A Look Inside
The bottom case plate can be removed after removing 9 screws holding it.
The bottom plate (also called D-shell) is additionally held in place by
a number of plastic frame snaps. These are actually an enhancement
compared to the former Librem 13 and 15 since these help to hold the
bottom plate in place and shape at all times. So after carefully
clicking these out you get access to the guts.
Main PCB, CPU heat pipe, fans, battery, speakers
Towards the bottom sits the pretty large 4 cell battery with the
speakers to the left and right. This covers pretty much the whole space
underneath the hand rest. Above that sits the brand new Purism Librem 14
main board. Center piece is the Core i7 10710U CPU covered by the copper
heat pipe leading to the two fans left and right. Between CPU and the
battery are the two SODIMM slots – two for faster dual channel RAM
access and up to 64GB memory! To the bottom right corner of the PCB you
can see the two M.2 SSD slots — and here is the problem with the
4-cell battery, the second SSD slot is blocked by it, only one is
usable. Once we get 3-cell batteries we can offer a choice, either
4-cell and one M.2 SSD or 3-cell and two M.2 SSDs. But right now there
is only one M.2 SSD possible. And finally to the bottom left corner of
the PCB there is the M.2 WiFi/BT card.
New M.2 Slot Features
The M.2 slot for WiFi/BT also has some new features–you will probably
not need them but well, for the tinkerers and future compatibility we
added them anyway! So, what’s new is that we have a couple of new
interfaces connected on the M.2 socket. An UART from the chipset (PCH)
is conected so you can use an M.2 card with serial UART interface. The
PCM audio interface is connected to the I2S interface of the chipset,
some Bluetooth cards use this for Bluetooth audio (SCO). And we have
SDIO connected to the chipset so that you can use M.2 cards with an SDIO
interface. So to summarize all interfaces that are now supported on the
WiFi/BT M.2 socket: PCIe, USB, UART, SDIO, I2S/PCM [4].
BIOS and EC Chips
For those interested, the BIOS flash chip containing Coreboot/PureBoot
is the small SOIC-8 chip located right of the left fan, the flash chip
containing the Librem EC firmware is located beneath the M.2 WiFi/BT
card. Right next to the BIOS chip you can also see two small DIP
switches (circled in red):
Main PCB, top side, BIOS and EC flash + write protect DIP switch circled
in red
These are connected to the write protect pins of the BIOS and EC flash
chips! With these you will be able to write protect the chips so that
software can not write to them anymore. We still need to add software
support for write protect so this is still work in progress. But the
hardware is there! And for completeness, here is also the quite boring
bottom side of the PCB:
Main PCB bottom side (the larger black chip to the bottom right is the
embedded controller)
Opening the Lid
Now let’s open up the LCD lid:
Let’s go from bottom to top. First of all there is the large
multi-touch touchpad, perfect for all kinds of tasks. Above that is the
custom Purism keyboard with Purism key and a customized key layout,
especially as it relates to special keys. Instead of cramming in tiny
keys for page-up/-down, home and end we went for an approach using the
Fn key, so Fn-Up serves as page-up etc. In the top row are the usual
multi media keys (F7 rev, F8 play/pause, F9 fwd, F10 mute, F11 vol-, F12
vol+) along with the LCD brightness F6 down and F7 up. The keyboard
backlight can be toggled with Fn-F4. And here we have a novelty for the
Purism laptops, this can not just be toggle on or off! We now can
support multiple brightness levels, right now we have implemented four
so that you can tune it to your liking and / or ambient condition.
Hardware Kill Switches
Towards the top we have the Purism signature hardware kill switches, now
with a nice silver chamfer around them. We placed the HKS on the
keyboard side (instead of the side as in Librem 13 / Librem 15) to
better protect the switch levers. Next to the HKS we now have two LEDs
to also visually signal the state of the devices. And here I need to
elaborate a bit more, because there is more to it than meets the eye.
So first of all the working of the kill switches changed a bit. The
camera / microphone kill switch still severs power to the integrated web
cam. But since we now have integrated digital microphones which provide
much better audio quality the kill switch now also severs the power
supply to the digital microphones. The 3.5mm headphone jack also
supports headsets with microphones[1] and the kill switch will also cut
off this.
The more interesting change is for the WiFi/BT kill switch. With the
L13/L15 we used the DISABLE signals on the M.2 slot to hardware disable
the WiFi/BT M.2 For this to work you have to rely on the card inserted
to honor these signals. With the Atheros card we ship we are sure this
is happening, but we can not guarantee this for other cards. So we
changed that approach and we now cut power to the M.2 slot altogether!
This will result in the USB BT device being “unplugged†and the PCIe
WiFi device dropping from the PCIe bus, only to get hot plug added back
again when being re-enabled again. So the big change here is that we do
not rely on the M.2 module honoring the DISABLE signal but we cut power
to it, so there is no way that it can get re-enabled by anything, except
by your finger flipping the switch!
Controlling the WiFi LED
Next to the HKS we now have LEDs signaling their state. The LED next to
the camera / microphone HKS will be on when camera and microphone are
enabled and off otherwise. It is pretty much hardwired to the power
supply of the camera and microphones. The LED next to the WiFi/BT LED is
a bit different. This one is not only hardwired to the switch state but
when the switch is on it can also be controlled by the EC. In default
mode it will be on when WiFi/BT is enabled (powered) and off otherwise.
With the ACPI driver [2] that we adapted for the EC [3] this LED can now
also be controlled by software! It becomes a regular Linux LED:
/sys/class/leds/librem_ec\:airplane
/Note: Before you start to freak about the following commandline shell
examples, there will be reasonable defaults, you do not have to do
anything unless you want to take over control and customize your
hardware’s behavior to your wishes./
Like all Linux LEDs the LED can be assigned to a so called trigger, i.e.
a Linux kernel driver that can automatically change the state of the LED
based on certain events. By default the Librem EC ACPI driver will
assign the “rfkill†trigger to the LED, which means that if the
radio is switched off from Linux using the rfkill framework (e.g. by
disabling it from the graphical user interface) the LED will also turn
off! But there are more cool things you can do here, there are more
triggers.
One trigger I personally like a lot is the ‘netdev’ trigger. With
this trigger you can configure a network interface to monitor and if the
RX or TX (or both) queue are triggering a ‘blink’ of the LED. A
simple script like this:
modprobe ledtrig-netdev
echo netdev > /sys/class/leds/librem_ec\:airplane/trigger
echo wls6 > /sys/class/leds/librem_ec\:airplane/device_name
echo 1 > /sys/class/leds/librem_ec\:airplane/rx
echo 1 > /sys/class/leds/librem_ec\:airplane/tx
will let your WiFi/BT LED next to the WiFi/BT HKS blink whenever there
is traffic on the WiFi interface. I like this a lot since it gives me an
idea if I am still connected, data is still flowing and it also gives an
idea about how much data. Cool, isn’t it? But you can also use it for
all the other triggers that the kernel offers or control it by your very
own program or script, just by writing 0 or 1 to:
/sys/class/leds/librem_ec\:airplane/brightness
Controlling the Notification LED
If you think this is fun and cool, wait for what we have next, the
notification LED! It is located literally right next to the WiFi/BT LED.
I talked about it a bit in our post about the EC firmware development,
now it is real and working. The notification LED is in fact a triple LED
with red, green and blue (RGB). Each color can be controlled
individually in 255 brightness steps – not just 0 or 1. So
theoretically you have 255*255*255 colors to choose from! In practice
there are fewer colors since not all LEDs have a visible brightness at
low levels. In particular blue is comparably dark so the color yield is
a bit less. But this is pretty normal for RGB LEDs and is also rooted in
the perceived brightness through the human eye, among other things. To
give you an idea: to get something pretty close to a neutral white you
need to set red:90, blue:200 and green:255. The three colors can be
accessed through the LED interface in the sys filesystem:
/sys/class/leds/red\:status
/sys/class/leds/green\:status
/sys/class/leds/blue\:status
and brightness can vary from 0 to 255, so
echo 255 > /sys/class/leds/red\:status/brightness
will turn on the red LED to full brightness. The idea behind the
notification LED is the same as what mobile phones, like the Librem 5,
have: an LED to signal something while the display is off or something
else is occupying the display, so that the user can see that something
tries to get her or his attention. We have implemented this for the
Librem 5 already and this will then also work on the Librem 14! Or you
can choose to use the LEDs in other creative ways! Since access is super
easy by shell script or simple program, I am sure we will see a lot of
creative uses for them.
Also the notification LED colors can of course be used with triggers,
with all the triggers the kernel offers, e.g. what about a nice red
heartbeat, getting faster with CPU load:
modprobe ledtrig-heartbeat
echo heartbeat > /sys/class/leds/red\:status/trigger
Or the green LED in such a cool glow dimming pattern:
modprobe ledtrig-pattern
echo pattern > /sys/class/leds/green\:status/trigger
echo 0 1000 255 1000 > /sys/class/leds/green\:status/pattern
So cool!
Controlling the Keyboard Backlight
And there are more things you can control from user space the very same
way, like the keyboard backlight:
/sys/class/leds/librem_ec\:kbd_backlight/brightness
You can write the actual brightness into that virtual file and the
keyboard backlight will change. Since this interface is a common
interface in Linux, user interfaces like GNOME pick them up, i.e. you
get feedback on the screen when the keyboard backlight is toggled by the
hotkey (Fn+F4) and the keyboard backlight will get switched off when the
screen saver kicks in and switches off the LCD! Very nice. And GNOME
remembers the backlight brightness between reboots too.
Controlling the Battery
In our last blog post we also talked about the battery charge controller
and that we can set some threshold from user space. Here you go:
/sys/class/power_supply/BAT0/charge_control_start_threshold
/sys/class/power_supply/BAT0/charge_control_end_threshold
If the battery percentage falls below the start threshold and then a new
charge is started, charging will stop when the battery reaches the end
threshold percentage. On my Librem 14 I currently use a script and set
this to:
# set default battery thresholds
echo 40 > /sys/class/power_supply/BAT0/charge_control_start_threshold
echo 95 > /sys/class/power_supply/BAT0/charge_control_end_threshold
The system fans can not be controlled from user space yet, right now,
but they can at least be monitored a bit:
/sys/class/hwmon/hwmon4
We will work further on it.
The ACPI driver is on its way into PureOS as a DKMS package and we will
do our best to get this into upstream Linux kernel so the DKMS will not
be necessary mid-term.
Battery Life
Now with the final product in hand we can also answer another FAQ: What
is the battery life? Well, of course this always depends on a lot of
factors, like display brightness, if programs keep the CPU or GPU busy
etc. etc. So it is pretty hard to give definitive answer to that
question. But I think I can provide you with at least two data points
that should give you a good idea.
With about 60% LCD brightness, WiFi connected and otherwise pretty much
idle I get an estimated (!) battery life of more than 10 hours! Does
this sound vague? Just an estimate? Well, yes, it always will be, your
mileage will vary a lot actually depending on your use case. But I can
add a second data point. I usually switch off the power strip on my desk
when I leave my office–just to be sure, no rogue electronics, no
unexpected “surprises†in the morning, an engineer’s desk can be a
mess (and mine for sure is) so better be safe than sorry. So one night I
did just that, but totally forgot that my development Librem 14 was
booted up sitting there, LCD off, Ethernet connected and mostly idle. I
recognized my negligence the next morning when I returned and to my
surprise it was still alive! It sat there patiently all night for over
15 hours and still had 20% juice! So these approximate 10h battery time
with LCD and light load seem pretty realistic to me and I am super happy
about that!
Closing…
Bringing the Librem 14 to life and into your hands has been quite an
adventure! And a long one too… much longer than we planned for and
wanted. First Covid crushed all plans, then a CPU shortage which delayed
the main board verification, general silicon shortage making sourcing
parts a pain and finally issues in sourcing decent LCDs. And to top it
all off this is the most customized laptop we ever built with a lot of
Purism special features. Doing something the first time always has a
certain risk to it, will it work out as expected?
After all these months of hard work it is with incredible joy to see all
these tiles falling into place, the product taking shape and all we have
planned and dreamed of becoming a reality!
And let me add in closing a brief personal anecdote. My first contact
with Purism was in 2016. I was taking part at GUADEC, held in Germany
that year. At that time I was, yet again, hacking on some laptop I
bought some weeks before and trying to make it work as well as possible
with Linux. It was so annoying having to work around tiny paper cuts in
the proprietary BIOS and embedded controller which prevented some really
basic things, like proper battery readings. This was not the first time
I went through that pain, it was a usual thing for me every time I had
to get myself a new laptop. They usually, mostly worked well but every
time there were these paper cuts here and there. It was super
frustrating because usually these things are trivial fixes, if you would
just have access to the BIOS source code, or the EC or … you name it.
I was fed up with this proprietary stuff.
And there came Purism, fighting for opening up that stuff and creating
consumer devices as open and as free as they possibly can be. I had to
get in touch with them!
So here we are, about five years later and I am so proud to be part of
this Purism team, just having finished yet another product that heals
many of these paper cut wounds. The Librem 14 offers pretty much
everything that I wanted back then and I can not really describe the
feeling I have right now. All these things I ever wanted to have in such
a machine but never could. Now we are here. So awesome!
I very much hope you will like it as much as I do!
[1] Headset microphone and headset plug-in detection is not yet working.
The wiring is there but there is still work that needs to be done on the
software side with the codec.
[2] https://source.puri.sm/nicole.faerber/librem-ec-acpi-dkms
<https://source.puri.sm/nicole.faerber/librem-ec-acpi-dkms>
[3] https://source.puri.sm/coreboot/librem-ec
<https://source.puri.sm/coreboot/librem-ec>
[4] Some of these may need additional software to work.
Librem 14 in Pictures
We are excited that the Librem 14 is shipping
<https://puri.sm/posts/librem-14-begins-shipping/>, and we are so
pleased with the production model that we wanted to share some brand new
pictures of it inside and out:
Purism Librem 14 Motherboard Logo
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-01-2021-04-19.jpeg>Purism
Librem 14 Motherboard Logo
------------------------------------------------------------------------
Purism Librem 14 Motherboard Logo
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-02-2021-04-19.jpeg>Purism
Librem 14 Motherboard Logo
------------------------------------------------------------------------
Purism Librem 14 Dropdown RJ45 Ethernet Port and Motherboard
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-04-2021-04-19.jpeg>Purism
Librem 14 Dropdown RJ45 Ethernet Port and Motherboard
------------------------------------------------------------------------
Purism Librem 14 Dual RAM Slots on Motherboard
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-03-2021-04-19.jpeg>Purism
Librem 14 Dual RAM Slots on Motherboard
------------------------------------------------------------------------
Purism Librem 14 Ports and Motherboard
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-06-2021-04-19.jpeg>Purism
Librem 14 Ports and Motherboard
------------------------------------------------------------------------
Purism Librem 14 Hinge and Motherboard
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-05-2021-04-19.jpeg>Purism
Librem 14 Hinge and Motherboard
------------------------------------------------------------------------
Purism Librem 14 Dual RAM Slots, Cooling, and Motherboard
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-07-2021-04-19.jpeg>Purism
Librem 14 Dual RAM Slots, Cooling, and Motherboard
------------------------------------------------------------------------
Purism Librem 14 Ports and Motherboard
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-09-2021-04-19.jpeg>Purism
Librem 14 Ports and Motherboard
------------------------------------------------------------------------
Purism Librem 14 M.2 Drive and Motherboard
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-08-2021-04-19.jpeg>Purism
Librem 14 M.2 Drive and Motherboard
------------------------------------------------------------------------
Purism Librem 14 Bottom Logo
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-11-2021-04-19.jpeg>Purism
Librem 14 Bottom Logo
------------------------------------------------------------------------
Purism Librem 14 Bottom Logo and Fan Grill
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-10-2021-04-19.jpeg>Purism
Librem 14 Bottom Logo and Fan Grill
------------------------------------------------------------------------
Purism Librem 14 Bottom Certs and Speaker Grill
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-13-2021-04-19.jpeg>Purism
Librem 14 Bottom Certs and Speaker Grill
------------------------------------------------------------------------
Purism Librem 14 Bottom Rubber Foot, Regular Screw Access, and tight
tolerance.
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-12-2021-04-19.jpeg>Purism
Librem 14 Bottom Rubber Foot, Regular Screw Access, and tight tolerance.
------------------------------------------------------------------------
Purism Librem 14 Top View
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-14-2021-04-19.jpeg>Purism
Librem 14 Top View
------------------------------------------------------------------------
Purism Librem 14 Closed Corner
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-15-2021-04-19.jpeg>Purism
Librem 14 Closed Corner
------------------------------------------------------------------------
Purism Librem 14 Closed Corner and Ports
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-16-2021-04-19.jpeg>Purism
Librem 14 Closed Corner and Ports
------------------------------------------------------------------------
Purism Librem 14 Closed with Ports
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-17-2021-04-19.jpeg>Purism
Librem 14 Closed with Ports
------------------------------------------------------------------------
Purism Librem 14 Closed with Ports
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-18-2021-04-19.jpeg>Purism
Librem 14 Closed with Ports
------------------------------------------------------------------------
Purism Librem 14 Screen
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-20-2021-04-19.jpeg>Purism
Librem 14 Screen
------------------------------------------------------------------------
Purism Librem 14 with Librem 5
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-19-2021-04-19.jpeg>Purism
Librem 14 with Librem 5
------------------------------------------------------------------------
Purism Librem 14 Top Wide Angle
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-21-2021-04-19.jpeg>Purism
Librem 14 Top Wide Angle
------------------------------------------------------------------------
Purism Librem 14 Top Open
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-22-2021-04-19.jpeg>Purism
Librem 14 Top Open
------------------------------------------------------------------------
Purism Librem 14 Purism Key
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-23-2021-04-19.jpeg>Purism
Librem 14 Purism Key
------------------------------------------------------------------------
Purism Librem 14 Keyboard
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-24-2021-04-19.jpeg>Purism
Librem 14 Keyboard
------------------------------------------------------------------------
Purism Librem 14 Hardware Kill Switches and Indicator Lights
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-25-2021-04-19.jpeg>Purism
Librem 14 Hardware Kill Switches and Indicator Lights
------------------------------------------------------------------------
Purism Librem 14 Hardware Kill Switches and Indicator Lights
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-26-2021-04-19.jpeg>Purism
Librem 14 Hardware Kill Switches and Indicator Lights
------------------------------------------------------------------------
Purism Librem 14 Space and Keyboard
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-28-2021-04-19.jpeg>Purism
Librem 14 Space and Keyboard
------------------------------------------------------------------------
Purism Librem 14 Multi-Language Enter and Keyboard
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-27-2021-04-19.jpeg>Purism
Librem 14 Multi-Language Enter and Keyboard
------------------------------------------------------------------------
Purism Librem 14 Trackpad
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-29-2021-04-19.jpeg>Purism
Librem 14 Trackpad
------------------------------------------------------------------------
Purism Librem 14 Opening
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-31-2021-04-19.jpeg>Purism
Librem 14 Opening
------------------------------------------------------------------------
Purism Librem 14 Camera and Dual Microphone
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-30-2021-04-19.jpeg>Purism
Librem 14 Camera and Dual Microphone
------------------------------------------------------------------------
Purism Librem 14 Left Front Angle
<https://puri.sm/wp-content/uploads/2021/04/purism-librem-14-32-2021-04-19.jpeg>Purism
Librem 14 Left Front Angle
------------------------------------------------------------------------
If you like what you see but you haven’t yet ordered your own Librem
14, now’s the best time to reserve your place in line
<https://shop.puri.sm/shop/librem-14/>!
App Showcase: Tootle
Social media can be a great way to engage with friends and family. But
most of the popular services and apps track their users. With Tootle
<https://github.com/bleakgrey/tootle> and Librem Social
<https://social.librem.one/>, you can have a great social media
experience without your data being exploited for profit.
Sorry, your client doesn't seem to support embedded videos. View the
video directly here <https://videos.puri.sm/promo/tootle.mp4?_=1>
We at Purism fight against vendor lock-in. We believe you should have
full control of your hardware and services. This is the reason we are
promoting Tootle with the ability to connect to any Mastodon instance.
You are welcome and encouraged to try out Librem Social, but you can
take your workflow and even your apps with you if you choose to switch
providers.
Once logged in, Librem Social has all the basic features you’d expect
from a popular platform. Have fun scrolling your feed or finding more
interesting people to follow.
It’s time to take back control of your hardware, data, and social
media presence.
Data Double Dipping: When Companies Mine Paying Customers
There’s an old snarky saying among privacy advocates: “If you
aren’t paying for something, /you/ are the product!†This updated
version of “There’s no such thing as a free lunch†arose in the
Internet age among the ever-growing list of free services and apps on
the Internet funded by collecting and selling your data to advertisers.
If large companies like Google and Facebook are any indication, a lot of
money can be made with user data and the more data you collect, the more
money you can make.
The more data = more money formula has meant that privacy on the
Internet is hard to come by. There’s just too much money to be made
and too little regulation and in some cases too little public will to
prevent it. Many people justify the invasion of their privacy with the
fact that they /are/ at least getting something for free in return.
Indeed many free phone apps or services that show ads to users also
offer a paid version that removes ads (although that doesn’t
necessarily mean the data /collection/ stops).
You Are Always The Product
As bad as trading your privacy in exchange for an app or service might
be, there’s at least some logic and precedent to it. Yet there’s a
growing trend among businesses who have realized the gold mine of data
they have *from their /paying/ customers*. They see all the money they
are leaving on the table and few so far have been able to resist the
urge to copy the business model of Big Data companies. Now that everyone
is data mining, we can shorten that snarky saying to just: “You are
always the product.â€
Most recently T-Mobile made the news by announcing a new program
<https://arstechnica.com/tech-policy/2021/03/t-mobile-will-tell-advertisers-how-you-use-the-web-starting-next-month/>
that will, by default, collect and sell customer data to advertisers:
“[S]tarting April 26, 2021, T‑Mobile will begin a new program
that uses some data we have about you, including information we
learn from your web and device usage data (like the apps installed
on your device) and interactions with our products and services for
our own and 3rd party advertising, unless you tell us not to,â€
T-Mobile said in a privacy notice. “When we share this information
with third parties, it is not tied to your name or information that
directly identifies you.â€
Of course T-Mobile isn’t the only cellular carrier doing this. As we
mentioned when we announced our AweSIM service
<https://puri.sm/posts/announcing-librem-awesim-a-privacy-focused-cellular-service-for-the-librem-5/>,
*all the major US carriers are working together* on a unified customer
identifier
<https://arstechnica.com/tech-policy/2020/09/att-wants-to-put-ads-on-your-smartphone-in-exchange-for-5-discount/>
that according to the AT&T CEO, “would allow marketers to identify
users across multiple devices and serve them relevant advertising.â€
Naturally, the default these carriers pick is to collect and sell your
data and the responsibility is on you to opt out. T-Mobile, like Big
Tech firms, realizes that if users had to opt in to having their privacy
invaded, they wouldn’t, but making users research how to opt out and
go through a convoluted and sometimes confusing workflow to do so, means
few people will bother.
This, by the way, is why Big Tech firms fought so hard against the
provision of early drafts of the California Consumer Privacy Act (CCPA)
that would require users to opt in before they could collect and sell
their data. Despite the fact that we at Purism and others argued in
favor of the opt in clause
<https://puri.sm/posts/purisms-ceo-todd-weaver-testifies-at-california-congressional-privacy-commission/>,
ultimately Big Tech won their concession
<https://puri.sm/posts/the-california-consumer-privacy-act/> and the
CCPA was weakened to opt out.
Cellular carriers aren’t the only companies double dipping. There is
so much money to be made in capturing and selling user data that all
companies are taking notice and if you are a publicly-traded company,
you may even have a fiduciary responsibility to mine this resource. Not
doing so leaves money on the table and puts a company at risk of a
shareholder lawsuit for not maximizing shareholder value. Internet
Service Providers, credit card companies, and even appliance
manufacturers are getting in on the game to wring extra money from
paying customers by harvesting their data.
The CTO of Vizio (a television manufacturer) even admitted in an
interview
<https://www.theverge.com/2019/1/7/18172397/airplay-2-homekit-vizio-tv-bill-baxter-interview-vergecast-ces-2019>
that removing “smart TV†features would *make their TVs more
expensive*. Why? They are making so much extra money on the side with
user data they would have to make up that difference by charging more on
a TV without “smart†features.
Privacy By Default
Some of the questions we get about the AweSIM service (“Q: Would you
turn over customer data to law enforcement?†“A: Yes if it were a
legal request.â€) lead me to believe some people have assumed we
created the service with law enforcement in the threat model. AweSIM
doesn’t exist for people to commit crimes. Instead as we said in our
product announcement
<https://puri.sm/posts/announcing-librem-awesim-a-privacy-focused-cellular-service-for-the-librem-5/>
we created the service for two main reasons: convenience (“just works
on Librem 5 phonesâ€) and privacy. In particular we were focused on
*protecting your privacy from the major cellular providers* because we
saw where the industry was headed.
Because we register each AweSIM number in Purism’s name, upstream
cellular networks have no direct link between a phone number and one of
our customers. We aren’t providing vendor-supplied Android phones
loaded with spyware apps that you can’t remove. Instead are providing
AweSIM for use in the US on either the Librem 5
<https://puri.sm/products/librem-5/> or Librem 5 USA
<https://puri.sm/products/librem-5-usa/>, running PureOS not Android, so
you are in complete control of your own privacy /by default/.
With the Librem 5 and AweSIM, there are no pre-installed vendor apps to
track what other apps are installed and there is nothing to opt out of.
You even have the option of taking your privacy a step further by
protecting your Internet traffic as it goes over the cellular
provider’s network with a VPN service like Librem Tunnel
<https://puri.sm/posts/introducing-the-librem-tunnel/> or Tor. That way,
if the cellular provider tries to associate web traffic with a
particular SIM, all they will see are a steady stream of encrypted
connections to a VPN or Tor node.
No Double Dipping
While companies should protect their customer’s privacy by default
whether their product is free or not, it’s particularly discouraging
to see that many companies out there are double dipping on their
customers. First they get money from you for a product or service and
then they mine your data for extra money for as long as you are a
customer. In many cases customers have no idea this is even going on.
As a customer, you are empowered to do something about this. Your dollar
is a vote, and when you cast your vote for a particular company, insist
that they respect your privacy. There should be no double-dipping, and
no data mining, especially not without your explicit, informed, consent.
Vote for companies that respect your privacy.
Why Librem Tunnel is Leaving iOS
/Update 2021-03-17: We’ve been asked a few times what our plans are
for existing iOS customers. Because Librem Tunnel uses the standard,
open, OpenVPN protocol, we have been working with customers to apply
their OpenVPN configuration to a different iOS OpenVPN client. It’s
less convenient than Librem Tunnel of course, but works. We are also
updating our documentation to reflect these new steps./
When we launched Librem One <https://librem.one/> almost two years ago,
the goal was to provide a convenient and privacy-respecting suite of
services running on open platforms as an alternative to Big Tech
platforms. The service launched with Librem Chat
<https://puri.sm/posts/introducing-the-new-librem-chat/>, Librem Social
<https://puri.sm/posts/introducing-librem-social/>, Librem Mail
<https://puri.sm/posts/introducing-the-new-librem-mail/>, and Librem
Tunnel <https://puri.sm/posts/introducing-the-librem-tunnel/>. We feel
everyone deserves privacy and we are not a fan of vendor lock-in, so
when we launched, we provided free software Librem One applications for
Android and iOS so customers on those platforms could join the party.
Recently we’ve been forced to remove Librem Tunnel from iOS due to
their unfair policies and in this post we’ll explain why.
Anti-Trust and the App Store
If you have been following the anti-trust hearings the United States
Congress has held for Big Tech companies over the past year or two, you
will be familiar with some of the anti-trust concerns Congress has over
Apple and its App Store. Apple’s anti-trust concerns centered on two
main points:
1. Their use of the App Store to disadvantage competitors (such as when
they removed competing parental control
<https://www.nytimes.com/2019/06/03/technology/apple-parental-control-apps.html>
apps in the name of privacy coincidentally when launching their own).
2. The fees they charge companies who create apps that make money in
the App Store (such as the ongoing legal battle between Apple and
Epic <https://arstechnica.com/series/epic-vs-apple-google/> over
whether Epic owes Apple 30% of its revenue from games like Fortnite).
Apple’s policy is that applications that make in-app purchases or
offer subscriptions using Apple’s payment platform pay Apple 30% of
their revenue. The justification behind that fee is that companies are
benefiting from all of the work Apple has put into its payments platform
and so the fee helps them maintain that payments infrastructure while
saving app developers from having to implement their own payment or
subscription infrastructure.
This policy may seem straightforward and even reasonable at first, but
gets complicated when you start talking about apps that have their own
payments infrastructure. In Epic’s case, they are using their own
infrastructure, not Apple’s, for sign-ups and payments. Apple is
saying that regardless of what payment infrastructure they use, Epic’s
apps are on the App Store and must pay Apple 30% of any revenue from
them. Because Apple doesn’t allow alternative App Stores on iOS, Epic
and other iOS developers have no alternative /but/ to use the App Store
if they want their iOS users to be able to run their applications.
Tunnel Vision
Where does Librem One fit into all of this? In addition to the free
Librem Social and Librem Chat services in Librem One, we also offer paid
subscriptions which give you access to Librem Mail and Librem Tunnel.
Recently our VPN endpoints have changed, which required us to update the
Librem Tunnel application.
Unfortunately our attempts to push an update were blocked, because Apple
saw that the application was a VPN, which flagged it to check whether it
was a subscription service (which VPNs frequently are). Even though
Librem Tunnel is just part of the overall Librem One offering, because
it’s part of a subscription service, Apple is requiring us to add the
ability to sign up and pay for Librem One subscriptions within the
Librem Tunnel app before they will allow updated versions into the App
Store.
Why are they making that requirement even though we already have our own
independent payment infrastructure? Because once that app allows in-app
purchases, Apple can then automatically take their 30% cut.
We do not accept these kinds of monopolistic practices, nor do we want
to fund them through our own customers. Since Apple does not allow
alternatives to the App Store on their platform, we have no choice but
to remove Librem Tunnel from iOS, until such time Apple changes their
policies either on their own, or through government intervention.
Because our other apps on iOS are linked to our free services, we
don’t believe Apple will make the same demands of them.
We are really sorry for those Librem Tunnel users who are on iOS, and we
hope one day we will be able to add Librem Tunnel back to the App Store.
The S in IOT is for Security
Recently I was given two LED desk lamps to improve lighting for video
meetings, these are just lamps with three controls, on/off, temperature,
and brightness. In the misguided vein of “make it an IOT device with
an app to monetize human data†mentality the temperature and
brightness control aren’t just knobs on the lamp, no, they are
controlled by a proprietary app that you are forced (well… unless you
hack it (as I explain below)) to download to your phone or computer. You
also have to agree to the terms of service to install and use the
application. After installing the app you must “activate†the lamp
in the app by connecting it to your WiFi and the Internet.
Full Lamp Stack
This is no longer just a lamp… it is a full computer and WiFi access
point. Secondarily it requires a proprietary app to be installed on a
phone or computer that cannot be audited for security. Ownership is the
ultimate measurement of privacy, security, and freedom; if you don’t
own the device fully, you are owned by the developer (and manufacturer)
of the device. *The only way to own my lamp was to pwn my lamp.*
Knowing (from experience) that a device that can access the Internet can
create a reverse tunnel into the local network (|autossh ... -R ...|)
and my refusal to connect these lamps to my local WiFi and the Internet,
I decided I would either a) recycle them; b) only use them in ‘lamp’
offline mode with the default values; or c) see if I can control their
access point APIs without ever using (or agreeing to the terms of
service of) the proprietary app.
Remember, there is just on/off, temperature, and brightness.
On/off works from both a physical switch on the lamp (right next to the
reset button, since you know, it’s now a computer) as well as the app
(that I only saw from the screenshots since I never installed it).
Temperature controls the blue to yellow colors of the light (and the
default is full blue unless you change it). Brightness is about 90%
bright by default, and I would like to adjust depending on the time of day.
I thought if I can hack the lamp I could also put together an app that
*I own* that can manage the lamp for my personal purposes. Since I have
been following the incredible progress of app development for PureOS and
the Librem 5 by using GNOME-Builder, writing a simple app would be a
great project-based experiment to fully own/pwn my lamp.
Pwning the Lamp
Seeing that these two lamps are WiFi access points and seeing from the
screen shots of the proprietary app that their general flow is to
“add†the lamp from the app (which means connect to it as your WiFi
Access Point) then connect the lamp to the local WiFi (which then of
course gives it unfettered Internet access unless you do a lot of
firewall rule guessing/setup at your router) I decided to connect to the
Lamp AP and see what I could glean. The (unnamed) manufacturer did setup
the APs with unique hex codes appended to their ESSIDs (“Manufacturer
4CDCâ€), and after connecting to the first lamp (it will take me a long
while to not laugh that a lamp is an IOT device) I got the local ip
|192.168.1.24| with the access point at |192.168.1.1|. A browser at that
address 404’d so I probed the ports and came up with a port open at
8193. A browser hitting that returned a page to connect the lamp to
local WiFi. That is a no-go, so maybe there is a web API…
The Web API
A brief search returned the web API URL path that returns a JSON
structure
|{"numberOfLights":1,"lights":[{"on":0,"brightness":28,"temperature":309}]}|,
so you can read the three values the lamp uses in the one-line data
object. A method |GET| returns the values and a method |PUT| sets the
value. I was now able to connect to the access point and PUT a JSON
string to the address:port/path and control the lamps three values.
Score: Lamp 0, Me 1.
A quick bash script allowed me to at least power on the lamps and set
them to a predetermined temperature and brightness.
Having the ability to pwn the lamps via the web API means I do not have
to give up any of my digital rights and can have complete ownership of
these lamps, never giving any control the the manufacturer or app
developers. Score: Lamp App 0, Me 2.
The App
Liberating the freedom crushing proprietary app and regaining control
was fun. It’s not just that it’s a bad idea to connect a lamp to the
Internet, it’s also that it’s a bad idea to install a random
application you can’t audit on your phone.
GNOME-Builder <https://wiki.gnome.org/Apps/Builder> is amazing (hi
Christian). I decided to start a new project, select Python and it
immediately started me into a fully-functioning (and buildable) Hello
World example project.
I whipped up a quick layout in GNOME-Builder’s View Design tab and
began translating bash’s |nmcli| and |wget| into Python libraries.
After a bit of work learning how Flatpak manifests work to include the
necessary libraries (hint: manifests are required learning to solve
dependencies within a flatpak), I had a proof of concept app that allows
me to connect to a lamp and adjust temperature and brightness.
An IOT Light App on PureOS for Librem 5
Securing my Lamp
Now I am able to control the lamps without their ever accessing the
Internet from my Librem 5 phone as well as Librem Mini desktop, adding
the much needed security to this IOT device. Fortunately because I have
a Librem 5 running PureOS, it was relatively simple to replace the
proprietary, insecure app with my own simple application that works both
on my phone *and* (through convergent app development) on my desktop so
I can keep the lamps in their own private compartment, disconnected from
the Internet, and control it with my own trusted app.
The more Internet of Things (or as some call them Internet of Stings
<https://stallman.org/articles/internet-of-stings.pdf>) makes it onto
more networks and into more homes, the greater exploitation you and your
digital life will suffer. This exploitation is highlighted regularly,
today’s example as published by Washington Post, Massive camera hack
exposes the growing reach and intimacy of American surveillance
<https://www.washingtonpost.com/technology/2021/03/10/verkada-hack-surveillance-risk/>,
showcases the creepiness of insecure IOT.
Securing IOT
It’s commonplace now for companies to ship devices that take control
away from you. In this case I was able to take control back.
Security must be at the foundation of IOT products, if a lamp needs to
be an IOT device it can at the very least be developed in a way that the
user has complete control over it, doesn’t require signing a terms of
service, doesn’t phone home, and doesn’t send a single bit over the
network without user request. I made my lamp IOT device do just that.
Librem 14 Security Features
The Librem 14 was designed based on a long wishlist we made to build our
dream laptop. When we first announced the Librem 14 we stuck to the
features we knew for sure would be part of the first revision. Over the
next few months as we worked through prototypes we were able to announce
new features such as dual RAM slots and a number of exciting security
features. While these features are mentioned on the Librem 14 product
page <https://puri.sm/products/librem-14/>, I thought it would be useful
to collect all of the security features of the Librem 14 into a single
place.
Hardware
Our previous Librem laptop lines touted a number of unique hardware
security features and we have learned many lessons over the years as we
use the hardware ourselves and get feedback from security-minded
customers. With the Librem 14 we have been able to improve hardware
security across the board.
Hardware Kill Switches
Our most famous hardware security feature is our hardware kill switches
<https://puri.sm/learn/hardware-kill-switches/> (HKS), a set of physical
switches that disables the webcam and microphone, or WiFi, in hardware.
Placing a sticker over a webcam is a nice start, but with HKS you can be
sure that your computer isn’t spying on you and can conveniently
enable the camera and microphone only when you need it.
We got feedback from a number of customers that having HKS on the side
meant you had to crane your neck to see the current state and find the
right switch. We also heard that some customers were flipping HKS when
inserting their laptops into a case. With the Librem 14 we have moved
the HKS back above the keyboard and have added LEDs to make the current
state of the hardware obvious at a glance. We have also extended the
webcam/microphone hardware kill switch so that it also disables the
microphone in the headphone jack
<https://puri.sm/posts/librem-14-adds-microphone-kill-switch-enhancements/>.
Ethernet Port
A physical Ethernet port might not seem like a security feature to some
people, but for people facing particular threats it’s a critical
security feature. The ability to remove the WiFi card completely, or at
least keep it disabled with a HKS, and access the network over a
physical Ethernet port, means you can completely avoid entire classes of
attacks on WiFi cards and protocols.
Firmware Write Protection Switches
Another security feature that’s completely new to the Librem 14 is a
set of switches on the motherboard that will allow you to write protect
the BIOS and EC firmware
<https://puri.sm/posts/librem-14-features-bios-and-ec-write-protection/>.
Currently the physical switches are implemented, but we still need to
complete some software and configuration work so that they actually
trigger write protection.
Librem 14 Firmware Write Protect Switch in the Off PositionLibrem 14
Firmware Write Protect Switches in the Off Position
Firmware
After the hardware, the next area to focus on for security is the
firmware–code that runs on discrete chips on your hardware that
straddles the fence between hardware and software. Supply-chain attacks
on firmware continue to be a growing concern in the security community
so we take a number of additional steps on the Librem 14 to help secure
its firmware.
Intel Management Engine
Perhaps one of the most famous bits of firmware on a modern Intel
computer is the firmware for the Intel Management Engine (ME)–a chip
that initializes Intel hardware and that is required for it to boot.
Because the ME has core access to your hardware, because the code is
proprietary so it can’t be audited, and because some versions of the
ME include Active Management Technology (AMT) that enable IT
administrators to control machines remotely over the network, there have
been some concerns that the ME might contain secret backdoors. Also, as
the features of the ME expand, there have also been concerns that the
increased attack surface might allow attackers to exploit flaws in ME
firmware and take remote control over a computer.
Like in past Librem laptops we select the simplest version of ME
firmware available, without AMT, so that we begin with the smallest
possible attack surface. Next we disable the ME by setting what is known
as the HAP bit so that after the hardware is initialized the ME is
disabled. In the past we have also performed an additional step of
“neutralizing†the ME (overwriting most of the ME firmware with
zeros, leaving only the bits critical to booting). As the Librem 14 is
newer hardware running a newer version of the Intel ME, we haven’t yet
been able to neutralize it, but hope to be able to add that in a future
firmware release.
PureBoot
PureBoot
<https://puri.sm/posts/pureboot-the-high-security-boot-process/> is the
name we give for a suite of technologies we use to secure the boot
process. It starts with our boot firmware based on free software
projects coreboot and Heads that help you detect firmware tampering when
paired with a Librem Key <https://puri.sm/products/librem-key/>. When
you order a Librem 14 with the PureBoot Bundle
<https://puri.sm/posts/pureboot-bundle/>, we pair the laptop with a
Librem Key at our facility so that when you boot the laptop with the
Librem Key inserted, the key will blink green if the system is safe, and
blink red indefinitely if it detects firmware tampering.
Sorry, your client doesn't seem to support embedded videos. View the
video directly here
<https://puri.sm/wp-content/uploads/2018/09/heads-demo-edit.webm?_=1>
PureBoot also extends into the operating system itself and will detect
any tampering in the kernel or boot configuration files and alert you to
them before it boots. Finally, PureBoot can even be configured to use
your Librem Key to unlock disk encryption.
Embedded Controller
In addition to the Intel ME, another area of concern for firmware
security is the embedded controller (EC). This chip manages the keyboard
in addition to many other things
<https://puri.sm/posts/librem-14-adding-librem-ec-freed-embedded-controller-firmware/>:
With more tasks assigned to the EC, the software and its
capabilities grew which makes it a pretty essential piece these
days, especially for laptops. So the first thing the EC needs to do
is to control the power up and power down of the machine, which
means to enable or disable certain voltage domains, doing that in a
controlled fashion honoring dependencies (often some power rails are
derived from others), and also taking into account the power supply
constraints of the main CPU in certain power modes. This is
especially important for low power states like suspend to RAM where
you just want to power what is needed. There are also other very
interesting peripherals attached to the EC. Of course the EC
controls the keyboard matrix, i.e. it assigns keypresses in that
matrix to key scan codes sent to the main CPU.
Normally the EC runs proprietary firmware, and like with the ME, due to
the level of access the EC has (such as the fact that it controls the
keyboard), there is concern over what an attacker could do with
backdoored or hacked EC firmware.
Starting with the Librem 14 we are freeing the EC firmware which will
not only allow you to audit the firmware for backdoors and security
flaws, but also give a Librem 14 owner much more control over their
hardware. The blog post I linked above goes into much detail about the
EC overall as well as our plans for it.
Software
By default the Librem 14 will ship with PureOS Byzantium–our latest
and greatest release of PureOS featuring many security and feature
updates while being accessible and convenient for the average user to
use. For users who want even more security, perhaps at the expense of
some convenience, we also offer Qubes <https://qubesos.org/> as an
operating system option on the Librem 14.
We have a long history of Qubes support on our hardware and treat Qubes
as a first class operating system at Purism. Because Qubes makes heavy
use of hardware virtualization, the average Qubes users finds themselves
running ten or more virtual machines simultaneously, with some users
running many more than that. With the 6 core, 12 thread tenth generation
Intel i7 CPU, fast NVMe storage, and dual SO-DIMM slots allowing a
maximum of 64GB RAM, we believe the Librem 14 is the best laptop for
Qubes <https://puri.sm/pages/best-qubes-laptop-is-the-secure-librem-14/>.
Anti-Interdiction
Finally, some customers face security threats such that having their
laptop tampered with during shipment is a real concern. Other customers
simply want the peace of mind that their laptop hasn’t been tampered
with. Regardless of the reasons, Purism offers a premium
anti-interdiction service
<https://puri.sm/posts/anti-interdiction-services/> where we work with a
customer over encrypted email to model their particular threats and
custom-tailor our anti-interdiction measures both on the hardware itself
with glitter nail polish and tamper-evident seals, and on the software
with an integrated PureBoot Bundle using customer-supplied secrets.
A close-up of the unique pattern of blue glitter nail polish on the
center screw.A close-up of the unique pattern of blue glitter nail
polish on the center screw.
Conclusion
We are very proud of the Librem 14 and believe that its combination of
hardware, firmware, software, and anti-interdiction features make it one
of the most secure laptops you can buy.
Sneak Peek of the Next PureOS Release on the Librem 5
With the next release of PureOS, code-named Byzantium, just around the
corner, let’s give you a sneak peek of what you can look forward to.
Sorry, your client doesn't seem to support embedded videos. View the
video directly here <https://videos.puri.sm/promo/byzantium_v6.mp4?_=1>
Encryption
Disk encryption will allow for the root disk to be password protected.
With this setup, you’ll be asked to decrypt your device before it
continues to the phone shell.
Byzantium OS Intro
The default lineup of preinstalled apps is not finalized but is growing.
For now, this is what it looks like.
Everything is newer; This release uses the more recent base of Debian
Bullseye. On top of that, the codebase between phone, laptop, desktop,
and the server will be shared. There was a special repository for the
phone that contained additional adaptive applications in the previous
release. From this release on, the desktop and phone will use the same
adaptive apps and packages.
Files
Also new in this release is the adaptive file manager. Now you’ll be
able to manage your home directory with ease.
Other New Apps and App Features
Video decoding using the onboard Video Processing Unit is planned to
land in Gnome Web soon. Once added, the Librem 5 will play videos for
longer and stay cooler while streaming from the browser.
GPS and Gnome Maps are planned to be supported.
In this release, you can uninstall even the default apps giving you full
control of what software runs on your device.
Flipping the camera/microphone hardware killswitch will come with UI
feedback.
KDE applications work much better out of the box. This gives users, and
developers access to QT tools on top of the default GTK UI toolkit.
Settings
The device settings has many more options and we are working with the
community to finish up making these additional settings adaptive.
For those familiar with other platforms, Applications should be very
familiar. You can search through your installed apps and manage any
Integration settings they might have.
Users with impaired eyesight can look forward to a high contrast mode.
We are putting the finishing touches on support in Phosh, but most apps
respond well to the high contrast mode.In this release, it’s also
possible to test a Screen Reader, giving users audio feedback as they
navigate the UI and applications.
Other desktop environments
Desktop-only software isn’t desktop-only anymore. With a few commands,
you can install and startup a plasma session on its own screen.
|#install sudo tasksel install desktop kde-desktop sudo apt install
plasma-wayland-protocols plasma-workspace-wayland
kwin-wayland-backend-fbdev kde-standard #run sudo systemctl stop phosh
export WAYLAND_DISPLAY=wayland-0 startplasma-wayland --framebuffer
--fb-device /dev/fb0 &#or fb1 to select the screen you want it on
plasmashell|
Or start KDE like an app from within Phosh.
|#login to Phosh and run plasmashell|
If you’re looking for a classic interface, you can start Mate on the
onboard screen.
|#mate on PureOS 10 sudo apt install xinit xorg xterm x2x mate #run X11
sudo systemctl stop phosh sudo xinit -- -masterfd 9 9<>/dev/dri/card1 &
export DISPLAY=:0 mate-session|
While there are too many interfaces to go over here, you can spend hours
exploring what each one feels like on the go.
|#Other desktops that could be fun: tasksel# Gnome Xfce Cinnamon Mate
LXDE LXQT|
This new release of PureOS is already used on the Librem Mini v2 and our
Librem 14, and will be made available for your Librem 5 soon.
Librem 5 and Librem 5 USA: What are the Differences?
We sometimes get questions from customers who are trying to decide
between the Librem 5 <https://puri.sm/products/librem-5/> and Librem 5
USA <https://puri.sm/products/librem-5-usa/>, such as whether someone
living in the USA must buy a Librem 5 USA (Answer: both Librem 5 and
Librem 5 USA work in the US) or whether the Librem 5 is $1999 (Answer:
the Librem 5 is $799, the Librem 5 USA is $1999). If you are trying to
decide between the two phones and want to understand what makes the
Librem 5 USA a premium product, in this post we’ll highlight the
differences between the two.
What’s the Same
*Librem 5* and *Librem 5 USA* have the same Purism authored schematics,
Industrial Design (ID), and Mechanical Design (MD), they both run the
same firmware, kernel (Linux), operating system (PureOS), and
applications from the PureOS Store. Both products are from Purism, a
US-based Social Purpose Company <https://puri.sm/about/social-purpose/>.
Both phones work in all the regions of the world by using a removable
region-specific modem module included and installed in the phone.
Trust & Verify
Both the *Librem 5* and *Librem 5 USA* have public schematics
<https://developer.puri.sm/Librem5/Hardware_Reference.html> (they’re
the same schematics, since they’re our schematics) for public
verification. They both have X-rays released after manufacturing of the
PCBAs to verify hardware chips and placement. Both phones are fully
Purism designs top-to-bottom. Both phones have all source code released
<https://source.puri.sm/Librem5/> for reproducible verification of no
tampering and public verification.
What’s Different
The core differences between the products are based on the *Librem 5*
being contract manufactured in China while the *Librem 5 USA* is
manufactured at our facility in Carlsbad, California.
Librem 5
The *Librem 5* PCBAs (the two boards inside the chassis) are
manufactured in China. The PCBAs are then assembled into the Librem 5
Chassis, and imported to our facility in the USA for final assembly,
flashing, testing, and fulfillment.
Librem 5 USA
The *Librem 5 USA* PCBAs are manufactured in our facility in Carlsbad,
California—therefore are Made in the USA Electronics—for a secure
hardware supply chain in the USA. The PCBAs are then assembled into the
*Librem 5* Chassis (engraved with ‘USA’ on its side), and have final
assembly, flashing, testing, and fulfillment all done at our Purism
facility.
The immediate benefits of the *Librem 5 USA* are to support US labor
laws, Made in USA Electronics, secure hardware supply chain, and US
manufacturing.
Price
The *Librem 5 <https://shop.puri.sm/shop/librem-5/>* is $799 while the
*Librem 5 USA <https://shop.puri.sm/shop/librem-5-usa/>* is $1999
Both are Great
Regardless of which product you choose, you will end up with a phone
that’s on your side, designed from the bottom up to respect your
freedom and protect your privacy and security.
Snitching on Phones That Snitch On You
Our phones are our most personal computers, and the most vulnerable to
privacy abuses. They carry personal files and photos, our contact list,
and our email and private chat messages. They also are typically always
left on and always connected to the Internet either over a WiFi or
cellular network. Phones also contain more sensors and cameras than your
average computer so they can not only collect and share your location,
but the GPS along with the other sensors such as the gyroscope, light
sensor, compass and accelerometer can reveal a lot more information
about a person than you might suspect (which is why we designed the
Librem 5 with a “lockdown mode
<https://puri.sm/posts/lockdown-mode-on-the-librem-5-beyond-hardware-kill-switches/>â€
so you can turn all of that off).
One of the problems with the security measures implemented in Android
and iOS is that they restrict the user as much, if not more, than they
restrict an attacker. Ultimately Google and Apple control what your
phone can and can’t do, not you. While these security measures are
marketed as making your phone a strong castle you live inside, that’s
only true /if you hold the keys/. As I mentioned in my article Your
Phone is Your Castle <https://puri.sm/posts/your-phone-is-your-castle/>:
If you live inside a strong, secure fortification where someone else
writes the rules, decides who can enter, can force anyone to leave,
decides what things you’re allowed to have, and can take things
away if they decide it’s contraband, are you living in a castle or
a prison? There is a reason that bypassing phone security so you can
install your own software is called jailbreaking.
You not only don’t have much say over what Google or Apple do on your
phone, but also these security measures mean *you can’t see what the
phone is doing behind the scenes*. While you might suspect your phone is
snitching on you to Google or Apple, without breaking out of that jail
it’s hard to know for sure.
Your Phone Snitches On You
It turns out if you did break out of jail and monitored your phone,
you’d discover your phone /is/ snitching on you, constantly. A
research paper <https://www.scss.tcd.ie/doug.leith/apple_google.pdf>
just published by Douglas J. Leith at Trinity College in Dublin Ireland
says it all in the abstract (emphasis mine):
We investigate what data iOS on an iPhone shares with Apple and what
data Google Android on a Pixel phone shares with Google. *We find
that even when minimally configured and the handset is idle both iOS
and Google Android share data with Apple/Google on average every 4.5
mins.* The phone IMEI, hardware serial number, SIM serial number and
IMSI, handset phone number etc. are shared with Apple and Google.
Both iOS and Google Android transmit telemetry, *despite the user
explicitly opting out of this*. When a SIM is inserted both iOS and
Google Android send details to Apple/Google. iOS sends the MAC
addresses of nearby devices, e.g. other handsets and the home
gateway, to Apple together with their GPS location. Users have no
opt out from this and currently there are few, if any, realistic
options for preventing this data sharing.
I should note that both Google and Apple dispute some of the findings
and methodology in this paper which you can read in reporting by Ars
Technica
<https://arstechnica.com/gadgets/2021/03/android-sends-20x-more-data-to-google-than-ios-sends-to-apple-study-says/>.
Yet I should note they don’t seem to dispute that they do this
(because they claim it’s essential for the OS to function), they only
quibble over how /much/ they do it, how much bandwidth is used, and how
much the user can opt out of this telemetry. Even more telling is
Google’s defense in the article, which perfectly summarizes how they
view the world:
The company [Google] also contended that data collection is a core
function of any Internet-connected device.
Just to underscore the point, we aren’t talking about the massive
privacy issues with apps on your phone that snitch on you to app
vendors, instead this study focused just on what the OS itself does,
often in the background while idle, or while doing simple things like
inserting a SIM card or looking at settings. Also, the data that is
being shared uniquely identifies you (including your IMSI and phone
number, IP and location) and your hardware (IMEI, hardware serial
number, SIM serial number).
How to Snitch On Your Phone
The Librem 5 runs PureOS and not Android nor iOS, and Purism is a Social
Purpose Company that puts protecting customer privacy in our corporate
charter <https://puri.sm/about/social-purpose/>. We treat data like
uranium, not gold, and don’t collect any telemetry by default on the
Librem 5 phone just like we don’t on our other computers. The only
connection a Librem 5 makes to Purism servers is to check for software
updates and you can change that by pointing to one of our mirrors or you
can disable the automatic checks entirely. In that communication all we
get is a web log of an IP address and any software you may have
downloaded, the same information you share when you visit any other
website. We do /not/ capture unique identifying data (like IMEI or other
hardware serial numbers) that links that traffic to you and your phone.
In general the Librem 5 only talks to the Internet when you start an
application that needs it. All of the applications we install by default
respect your privacy and applications within PureOS do as well. Because
everything in PureOS is free software, if an application wanted to
violate your privacy they’d have to do it out in the open in the
source code, and if someone didn’t like it, they could fork the code
and publish a version without that telemetry.
That said, there are some applications you can install like Firefox that
do collect telemetry by default. While you could audit the source code
to look for anything sketchy, it would be even better if you could just
monitor all of the outgoing network connections your applications make
and block any you don’t like. While we think you should trust us when
we say Purism doesn’t spy on you, we also think you should be able to
verify our claims and protect yourself. This is where a tool like
OpenSnitch <https://github.com/evilsocket/opensnitch> comes in.
OpenSnitch
OpenSnitch is inspired by a similar program on MacOS called Little
Snitch and it acts as a firewall for a desktop user. Unlike traditional
firewall tools that were designed for servers and mostly concerned with
incoming connections, OpenSnitch works on the principle that the larger
threat on desktops isn’t incoming connections (since desktops rarely
have open ports anyway) but outgoing connections. On a desktop an
attacker trying to connect to a vulnerable network service is a
relatively low threat. A much larger threat is an application that gets
compromised (or added sketchy features that haven’t been caught in a
code audit) that starts making unauthorized connections out to the
attacker’s servers.
While OpenSnitch isn’t yet packaged for PureOS, I’ve been evaluating
it on my Librem 5 for a few weeks now. Even though I’m running the
regular desktop version of OpenSnitch, it works surprisingly well on the
Librem 5 and while the interface is complicated with lots of tabs and
tables, it actually fits well on the screen already.
Main OpenSnitch window, displaying outgoing traffic
OpenSnitch monitors all new outgoing network connections and alerts you
when something new shows up it doesn’t already have a rule for. The
alert shows which application is making the connection, where it is
connecting, and on which port. You can then choose to allow or deny the
connection, and whether to apply this rule forever, until the next
reboot, or for a number of minutes. There is also a 15 second countdown
timer that will deny the connection after it times out. The idea here is
to protect your computer from unauthorized outbound connections when the
computer is unattended.
OpenSnitch warning about Firefox connecting on localhost port 8080
You can also click the + button and fine-tune the rule. This can be
handy if you want to allow a program to access DNS regardless of what
it’s looking up, so you can just select port 53. You can even restrict
a rule so it only applies to a particular user on the system.
OpenSnitch is a really powerful tool but software like this requires a
lot of time spent training the firewall, and can sometimes cause odd app
errors until you realize the firewall is just doing it’s job. It would
definitely benefit from a set of “known good†baseline rules you
could apply so you only get prompted for the real outliers. Because of
this I don’t know that it’s something the average user would want to
install by default, but it’s definitely something useful for people
facing more extreme threats.
This would also be a great tool for an IT organization to deploy
throughout a fleet of computers along with custom rules that factor in
their known good services. It would add an additional layer of
protection that would be relatively seamless for their employees.
A Phone That’s On Your Side
A phone that snitches on you and sends a trove of personally-identifying
data back to the vendor every few minutes, even if it’s idle, is not
on your side. A phone that’s on your side helps /you/ snitch on
/them/. A phone that’s on your side honors your opt-out requests and
ideally requires you to opt-in to anything that risks your privacy. A
phone that’s on your side doesn’t collect your data, it protects it.
The Simplicity of Making Librem 5 Apps
Getting started with developing applications for a mobile platform can
be a challenging task, especially when it comes to building and testing
the application on the mobile device itself.
The Librem 5 makes its application development workflow extremely simple.
* You don’t need to worry about registering a developer account with
some parent company.
* You don’t need to register your testing devices and ask the
permission to a parent company just to be able to build and run your
applications on those devices.
* You don’t need to “Jailbreak†your devices in order to access
some restricted software or hardware features.
* And the best part is that you don’t need to worry about cross
platform compiling because *you can use the development tools
directly on the phone*.
The “quick start†video below that I made for the Librem 5
developers documentation demonstrates how quickly you can get up and
running with making your own GTK applications on a Librem 5.
In this video, I have attached a Librem 5 to an external keyboard, mouse
and monitor through a USB-C hub, and I use GNOME Builder to quickly
create a new GTK application project, build it and run it on both the
big desktop monitor and the small mobile screen with just a drag and
drop across the screens.
Yes, I do all that with the computing power of the Librem 5 only! There
are no special effects nor a hidden desktop computer. I even did the
screencast recording with an external device so it shows the real speed
of the Librem 5 when driving a 32″ Full HD monitor.
Sorry, your client doesn't seem to support embedded videos. View the
video directly here
<https://videos.puri.sm/docs/getting-started-l5-dev.mp4?_=1>
App Showcase: Drawing
Drawing is a simple app in the PureOS store to doodle on a digital canvas.
Sorry, your client doesn't seem to support embedded videos. View the
video directly here <https://videos.puri.sm/promo/Drawing.mp4?_=1>
With Drawing, you can import and clip images or start from scratch and
make unique artwork.
Drawing has you covered from the essential pencil tool that adds color
to the more advanced filters that affect the entire picture.
Whether you need to edit an image or create one from scratch, Drawing is
a handy tool for any screen size.
Purism
Thanking you for your support,
— the Purism team (feedback at puri.sm)
------------------------------------------------------------------------
Note: contents of this email are CC-by-SA; feel free to forward it to
friends!
/To remove yourself from our announcements list, simply email
announce-leave at announce.puri.sm <mailto:announce-leave at announce.puri.sm>
and you will automatically be instructed how to unsubscribe./
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://announce.puri.sm/pipermail/testannounce/attachments/20210420/ef3922bc/attachment-0001.html>
More information about the Testannounce
mailing list