<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Luigi311</title>
    <subtitle>Blog mostly focused on the mobile linux scene</subtitle>
    <link rel="self" type="application/atom+xml" href="https://blog-d.luigi311.com/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://blog-d.luigi311.com"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-04-25T00:00:00+00:00</updated>
    <id>https://blog-d.luigi311.com/atom.xml</id>
    <entry xml:lang="en">
        <title>Furilabs FLX1s</title>
        <published>2026-04-25T00:00:00+00:00</published>
        <updated>2026-04-25T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog-d.luigi311.com/furilabs-flx1s/"/>
        <id>https://blog-d.luigi311.com/furilabs-flx1s/</id>
        
        <content type="html" xml:base="https://blog-d.luigi311.com/furilabs-flx1s/">&lt;ul&gt;
&lt;li&gt;Performance: 4&#x2F;5&lt;&#x2F;li&gt;
&lt;li&gt;Affordability: Great price for the hardware and support provided&lt;&#x2F;li&gt;
&lt;li&gt;Compatibility: 3&#x2F;5&lt;&#x2F;li&gt;
&lt;li&gt;Battery Life: 5&#x2F;5&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h1 id=&quot;setup-information&quot;&gt;Setup information&lt;&#x2F;h1&gt;
&lt;ul&gt;
&lt;li&gt;OS: FuriOS 14.0.2&lt;&#x2F;li&gt;
&lt;li&gt;Kernel: 4.19.325&lt;&#x2F;li&gt;
&lt;li&gt;DE: Phosh&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h1 id=&quot;introduction&quot;&gt;Introduction&lt;&#x2F;h1&gt;
&lt;p&gt;The furilabs FLX1s is the sibling device of the FLX1. After the launch of the FLX1 devices they ran into issues trying to source more batches from their Original Design Manufactuer (ODM). They decided to continue moving forward and work with a new factory to design a new device from the ground up with the same SoC as the base. With the SoC being the same devices this allows them to continue development that benefits both the FLX1s and FLX1 devices with minimal changes thus providing a major benefit to existing FLX1 users.&lt;&#x2F;p&gt;
&lt;p&gt;The FLX1s dubbed the slim, is a more compact and easy to carry phone. The furilabs team were more involved with the design of this phone compared to the FLX1 so they targeted features that would have the most impact on the user experience and left out some feature that were less critical especially in the linux environment. Some of the differences are great for some users but could also be a potential deal breaker for others as such the differences are listed below as a table, if you want the full specs you can check out the &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;furilabs.com&#x2F;shop&#x2F;flx1s&#x2F;&quot;&gt;official website&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;The hardware switches are a nice addition to the phone and use a similar design to the librem 5 where they are positioned on the side and easy to use unlike the dip switches on the back of the pinephone that requires removal of the back panel. The lack of the removable battery and waterproofing is a bummer but I know the waterproofing itself causes issues due to the testing and certification process whenever changes need to be made. The reduction in screen resolution isn&#x27;t to big of a deal to me and can actually bring with it better gpu performance in some cases like games and 90hz is still a big improvement over the 60hz that other linux phones have. The modems themselves also seem to support different bands due to firmware differences between the two ODMs with the FLX1s having more bands supported, hopefully this will make its way back to the FLX1 in the future. The shell quality is also a downgrade over the original FLX1 with it being a more brittle and plasticy feeling material though this can be remedied by utilizing a phone case.&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Feature&lt;&#x2F;th&gt;&lt;th&gt;FLX1&lt;&#x2F;th&gt;&lt;th&gt;FLX1s (Slim)&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Screen size&lt;&#x2F;td&gt;&lt;td&gt;6.59&quot;&lt;&#x2F;td&gt;&lt;td&gt;6.7&quot;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Resolution&lt;&#x2F;td&gt;&lt;td&gt;2412x1080&lt;&#x2F;td&gt;&lt;td&gt;1600x720&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Refresh rate&lt;&#x2F;td&gt;&lt;td&gt;120hz&lt;&#x2F;td&gt;&lt;td&gt;90hz&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Glass type&lt;&#x2F;td&gt;&lt;td&gt;Gorilla Glass 5&lt;&#x2F;td&gt;&lt;td&gt;Asahi Dragontrail Glass&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;RAM&lt;&#x2F;td&gt;&lt;td&gt;6GB&lt;&#x2F;td&gt;&lt;td&gt;8GB&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Rear Cameras&lt;&#x2F;td&gt;&lt;td&gt;50MP + 2MP&lt;&#x2F;td&gt;&lt;td&gt;20MP + 2MP&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Front Camera&lt;&#x2F;td&gt;&lt;td&gt;16MP&lt;&#x2F;td&gt;&lt;td&gt;13MP&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;USB-C Port&lt;&#x2F;td&gt;&lt;td&gt;3.0&lt;&#x2F;td&gt;&lt;td&gt;2.0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Removable Back&#x2F;Battery&lt;&#x2F;td&gt;&lt;td&gt;Yes&lt;&#x2F;td&gt;&lt;td&gt;No&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Headphone Jack&lt;&#x2F;td&gt;&lt;td&gt;Yes&lt;&#x2F;td&gt;&lt;td&gt;No&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Water protection&lt;&#x2F;td&gt;&lt;td&gt;IP68&lt;&#x2F;td&gt;&lt;td&gt;Splash not certified&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Privacy Kill Switches&lt;&#x2F;td&gt;&lt;td&gt;No&lt;&#x2F;td&gt;&lt;td&gt;Microphone, Camera, Modem&#x2F;GPS&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;NFC&lt;&#x2F;td&gt;&lt;td&gt;Yes&lt;&#x2F;td&gt;&lt;td&gt;No&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Fingerprint Sensor&lt;&#x2F;td&gt;&lt;td&gt;Yes&lt;&#x2F;td&gt;&lt;td&gt;No&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h1 id=&quot;hardware-supported&quot;&gt;Hardware Supported&lt;&#x2F;h1&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Hardware&lt;&#x2F;th&gt;&lt;th&gt;Supported&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;GPS ²&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;aGPS ¹&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Cameras&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Microphone&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Bluetooth&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Modem&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Accel&#x2F;Tilt&#x2F;Step&#x2F;Wake&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Orientation&#x2F;Gyroscope&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Light&#x2F;Pressure&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Proximity&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;NPU&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;¹ Not hardware but important usability feature and is optional
² GPS seems to struggle finding a fix indoors&lt;&#x2F;p&gt;
&lt;p&gt;Some hardware is a grouping as those are all functions handled by a single sensor on the device and exposed as different metrics.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;cell-service&quot;&gt;Cell Service&lt;&#x2F;h1&gt;
&lt;p&gt;Cell service was tested in the US utilizing US Mobile MVNO, &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.usmobile.com&#x2F;referrals?referrer=0178DFD2&amp;amp;name=Luis&amp;amp;utm_campaign=monster_referral&quot;&gt;referral link&lt;&#x2F;a&gt;, as it allows for easy testing of the 3 major US network providers. The only downside is the TMobile service has deprioritized download speeds so your speeds can be on the slower side like mine based on location and network traffic. Download&#x2F;Upload speed tests were done using ookla &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;speedtest.net&quot;&gt;speedtest.net&lt;&#x2F;a&gt; and netflix &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;fast.com&quot;&gt;fast.com&lt;&#x2F;a&gt; with the data waster option enabled. As service seems to vary from moment to moment, I ran multiple tests and grabbed the best results for each section.&lt;&#x2F;p&gt;
&lt;p&gt;Light Speed (Tmobile) seems to work great without any issues. While the FLX1s does support the bands for 5g, the 5g connection in the US seems to be unstable and causes issues as a result I have disabled the 5g bands. I have seen reports that lots of people outside the US use 5g without any issues. Dark Star (AT&amp;amp;T) along with Warp (Verizon) do not work as the upstream carrier have blocks in place for phones that have not gone through their certification process, which furilabs as a small company has not had the resources to go through.&lt;&#x2F;p&gt;
&lt;p&gt;I use my JMP.Chat eSIM adapter and it works perfectly and even has a built in way to change profiles and add new profiles, it is clunky but it is enough to get the job done. It does not work with &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;codeberg.org&#x2F;lucaweiss&#x2F;lpa-gtk&quot;&gt;eSIM Manager&lt;&#x2F;a&gt;, hopefully it will in the future or the built in app is improved as adding new profiles is a bit of a hassle.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;us-mobile-light-speed-tmobile&quot;&gt;US Mobile Light Speed (Tmobile)&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Phone&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Tech&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Speedtest down&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Fast down&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Fast up&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: center&quot;&gt;VoLTE &#x2F; VoNR&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;FLX1s&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;4G&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: center&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;Pixel 6&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;5G&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: center&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;Pixel 6&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;4G&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: center&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h1 id=&quot;performance&quot;&gt;Performance&lt;&#x2F;h1&gt;
&lt;p&gt;The FLX1s is a fast phone in general. The Mediatek Dimensity 900 is fast especially compared to pinephone&#x2F;pinephone pro&#x2F;librem 5 devices. It comes with 8GB of RAM, which is a nice improvement over the FLX1 6GB which is nice when having to rely on andromeda for some of your android apps. Web browsing and media playback are fast and smooth. Android container is fully supported with acceleration working well and the performance is great. There are some acceleration issues with flatpak qt6 based applications due to upstream QT flatpak gles issues. Flatpak qt5&#x2F;gtk4 and native qt5&#x2F;qt6&#x2F;gtk4 are all accelerated and seem to be working without issues.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;compatibility&quot;&gt;Compatibility&lt;&#x2F;h1&gt;
&lt;p&gt;The FLX1s is a halium based device so it is limiting to what OS&#x2F;DE you can run on it. Currently you can run both FuriOS and Ubuntu Touch, though FuriOS is the only one officially supported by the FuriLabs team. You wont be able to run any of the other mainline OS though like arch and postmarketos. For desktop environments (DE) you are also limited to Phosh in FuriOS and Lomiri in the Ubuntu Touch port. GTK based applications seem to function the best while some QT based applications have issues such as acceleration and&#x2F;or failing to launch. The FLX1s also supports multiboot allowing you to install multiple OS side by side. This makes it simple to test new changes without breaking your main image or even testing out separate different OS as they are released. The app they created to manage this is bootman and once an OS is integrated with it then its as simple as telling it to create a new partition of X size and telling it what OS to flash onto the partition. It will then show up as a touch interface when turning the phone on to select what OS&#x2F;Partition you want to boot into.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;android&quot;&gt;Android&lt;&#x2F;h1&gt;
&lt;p&gt;Android support is amazing with lots of sensors passed through to the container, listed below. The android system is called &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;FuriLabs&#x2F;andromeda&quot;&gt;Andromeda&lt;&#x2F;a&gt; which forked off Waydroid and has made tons of improvements and updates to the base android system. You should be able to run most android applications without any issues except the usually culprits that have Integrity API (Safetynet replacement) like banking apps. Video playback works and I can confirm Grayjay works perfectly except the volume control guesture control. Android also integrated perfectly with the rest of the host OS with all your android applications showing up in the app drawer.&lt;&#x2F;p&gt;
&lt;p&gt;There is a gnome software plugin so you can search and install android apps from fdroid through the gnome software store as if it was a native application removing the need to manually open fdroid. There&#x27;s a android section in the gnome settings that exposes a lot of android settings to the user as shown below. Enabling the Shared Folder setting allows you to have full access to files in both directions so you can take pictures within the linux environment and share them within android apps and vice versa, download files from android apps and access them within the host linux environment. On the host the android files are located under ~&#x2F;Android and within android the host files are located under ~&#x2F;Linux.&lt;&#x2F;p&gt;

&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;furilabs-flx1&#x2F;FLX1_Gnome_Settings_Android.png&quot; target=&quot;_blank&quot; alt=&quot;FuriOS Android Settings&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;FLX1_Gnome_Settings_Android.a5043e8c53494e45.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;h2 id=&quot;sensors-passed-to-android&quot;&gt;Sensors passed to Android&lt;&#x2F;h2&gt;
&lt;p&gt;Tested using &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;play.google.com&#x2F;store&#x2F;apps&#x2F;details?id=com.exatools.sensors&amp;amp;hl=en_US&quot;&gt;Sensors Toolbox&lt;&#x2F;a&gt; app&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Sensor&lt;&#x2F;th&gt;&lt;th&gt;Passed through&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;GPS&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Cameras&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Microphone&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Bluetooth&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Modem&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Accelerometer&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Geomagnetic&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Orientation&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Gyroscope&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Light&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Pressure&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Proximity&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Gravity&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Linear Acceleration&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Rotation Vector&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Step Counter&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h1 id=&quot;docking&quot;&gt;Docking&lt;&#x2F;h1&gt;
&lt;p&gt;The FLX1s like the FLX1 does not support usb dp-alt mode but they are still able to utilize evdi to get output externally. They have also developed an app that allows for wireless casting of media content directly to an external display via miracast though it seems to not work on every wireless display.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;web-browsing&quot;&gt;Web Browsing&lt;&#x2F;h1&gt;
&lt;p&gt;Web browsing works really well. Firefox runs well and comes with a custom configuration similar to postmarketos mobile-config-firefox for a better experience on mobile screens. Benchmarking results with &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;browserbench.org&#x2F;Speedometer3.1&#x2F;&quot;&gt;speedometer 3.1&lt;&#x2F;a&gt; and &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;webglsamples.org&#x2F;aquarium&#x2F;aquarium.html&quot;&gt;webgl aquarium test&lt;&#x2F;a&gt; with scale set to 100% are below. The aquarium test shows every fish count preset to show how the fps scales with the number of fishes.&lt;&#x2F;p&gt;
&lt;p&gt;Based on results I would recommend sticking with firefox. If you do have andromeda running in the background then running firefox in it is also a great option as performance is amazing and it scales perfectly. Epiphany while having a nice mobile design, seems to suffer from some performance issues due to some webkit bugs that the flx1s runs into. Angelfish runs but since it is qt6 it is missing hardware acceleration and also requires disabling the qt webengine sandbox due to chromium complaining about suid on bwrap.&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Browsers&lt;&#x2F;th&gt;&lt;th&gt;Version&lt;&#x2F;th&gt;&lt;th&gt;Toolkit&lt;&#x2F;th&gt;&lt;th&gt;Install&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td&gt;1.149.0&lt;&#x2F;td&gt;&lt;td&gt;Gecko&lt;&#x2F;td&gt;&lt;td&gt;Repo&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Angelfish&lt;&#x2F;td&gt;&lt;td&gt;25.12.3&lt;&#x2F;td&gt;&lt;td&gt;Chromium&lt;&#x2F;td&gt;&lt;td&gt;Flatpak&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Epiphany&lt;&#x2F;td&gt;&lt;td&gt;50.4&lt;&#x2F;td&gt;&lt;td&gt;WebKit&lt;&#x2F;td&gt;&lt;td&gt;Flatpak&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Kumo&lt;&#x2F;td&gt;&lt;td&gt;1.7.2&lt;&#x2F;td&gt;&lt;td&gt;Webkit&#x2F;servo&lt;&#x2F;td&gt;&lt;td&gt;Flatpak&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Andromeda Firefox&lt;&#x2F;td&gt;&lt;td&gt;150&lt;&#x2F;td&gt;&lt;td&gt;Gecko&lt;&#x2F;td&gt;&lt;td&gt;Andromeda&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;speedometer-3-1&quot;&gt;Speedometer 3.1&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Browser&lt;&#x2F;th&gt;&lt;th&gt;Score&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td&gt;3.03 ± 0.089&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Angelfish&lt;&#x2F;td&gt;&lt;td&gt;2.59 ± 0.080&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Epiphany&lt;&#x2F;td&gt;&lt;td&gt;2.06 ± 0.088&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Kumo ¹&lt;&#x2F;td&gt;&lt;td&gt;N&#x2F;A&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Andromeda Firefox&lt;&#x2F;td&gt;&lt;td&gt;5.09 ± 0.16&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;¹ Fails to launch&lt;&#x2F;p&gt;
&lt;h2 id=&quot;webgl-aquarium&quot;&gt;WebGL Aquarium&lt;&#x2F;h2&gt;
&lt;p&gt;Angel&lt;strong&gt;fish&lt;&#x2F;strong&gt; isn&#x27;t hardware accelerated so no fishes for angel&lt;strong&gt;fish&lt;&#x2F;strong&gt; :&#x27;(&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Fish amount&lt;&#x2F;th&gt;&lt;th&gt;Firefox&lt;&#x2F;th&gt;&lt;th&gt;Epiphany&lt;&#x2F;th&gt;&lt;th&gt;Andromeda Firefox&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;100&lt;&#x2F;td&gt;&lt;td&gt;59-66 ¹&lt;&#x2F;td&gt;&lt;td&gt;27&lt;&#x2F;td&gt;&lt;td&gt;90&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;500&lt;&#x2F;td&gt;&lt;td&gt;51-59 ¹&lt;&#x2F;td&gt;&lt;td&gt;24&lt;&#x2F;td&gt;&lt;td&gt;90&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;1,000&lt;&#x2F;td&gt;&lt;td&gt;45-50 ¹&lt;&#x2F;td&gt;&lt;td&gt;21&lt;&#x2F;td&gt;&lt;td&gt;85-90 ¹&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;5,000&lt;&#x2F;td&gt;&lt;td&gt;25-28&lt;&#x2F;td&gt;&lt;td&gt;10&lt;&#x2F;td&gt;&lt;td&gt;40-44&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;10,000&lt;&#x2F;td&gt;&lt;td&gt;17&lt;&#x2F;td&gt;&lt;td&gt;6&lt;&#x2F;td&gt;&lt;td&gt;25&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;15,000&lt;&#x2F;td&gt;&lt;td&gt;12&lt;&#x2F;td&gt;&lt;td&gt;4&lt;&#x2F;td&gt;&lt;td&gt;18&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;20,000&lt;&#x2F;td&gt;&lt;td&gt;10&lt;&#x2F;td&gt;&lt;td&gt;3&lt;&#x2F;td&gt;&lt;td&gt;14&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;25,000&lt;&#x2F;td&gt;&lt;td&gt;8&lt;&#x2F;td&gt;&lt;td&gt;3&lt;&#x2F;td&gt;&lt;td&gt;11&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;30,000&lt;&#x2F;td&gt;&lt;td&gt;7&lt;&#x2F;td&gt;&lt;td&gt;2&lt;&#x2F;td&gt;&lt;td&gt;9&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;¹ Estimated range as the fps seemed to fluctuate a lot while running making it hard to see actual numbers&lt;&#x2F;p&gt;
&lt;h1 id=&quot;media-playback&quot;&gt;Media Playback&lt;&#x2F;h1&gt;
&lt;p&gt;Below is a table of different video codecs and their playback performance. The hardware has support for decoding h264&#x2F;h265&#x2F;vp9 and they are working on adding in the software support necessary. The best results for native seem to come from MPV&#x2F;Celluloid&#x2F;firefox so as long as you are using any of those performance should be fine and inline with each other.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;player-information&quot;&gt;Player Information&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Player&lt;&#x2F;th&gt;&lt;th&gt;Version&lt;&#x2F;th&gt;&lt;th&gt;Method&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt;0.41.0&lt;&#x2F;td&gt;&lt;td&gt;Repo&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt;0.10.0&lt;&#x2F;td&gt;&lt;td&gt;Flatpak&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Livi&lt;&#x2F;td&gt;&lt;td&gt;0.4.0&lt;&#x2F;td&gt;&lt;td&gt;Flatpak&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Celluloid&lt;&#x2F;td&gt;&lt;td&gt;0.29-3&lt;&#x2F;td&gt;&lt;td&gt;Repo&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td&gt;1.149&lt;&#x2F;td&gt;&lt;td&gt;Repo&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Andromeda Firefox&lt;&#x2F;td&gt;&lt;td&gt;150&lt;&#x2F;td&gt;&lt;td&gt;Andromeda&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h3 id=&quot;h-264-avc&quot;&gt;H.264&#x2F;AVC&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Player&lt;&#x2F;th&gt;&lt;th&gt;1080p@30&lt;&#x2F;th&gt;&lt;th&gt;720p@30&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
 ¹&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Livi&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Celluloid&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Andromeda Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;hr &#x2F;&gt;
&lt;h3 id=&quot;h-265-hevc&quot;&gt;H.265&#x2F;HEVC&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Player&lt;&#x2F;th&gt;&lt;th&gt;1080p@30&lt;&#x2F;th&gt;&lt;th&gt;720p@30&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Livi&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
 ²&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
 ²&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Celluloid&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Andromeda Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;hr &#x2F;&gt;
&lt;h3 id=&quot;av1&quot;&gt;AV1&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Player&lt;&#x2F;th&gt;&lt;th&gt;1080p@30&lt;&#x2F;th&gt;&lt;th&gt;720p@30&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
 ¹&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Livi&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Celluloid&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Andromeda Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;hr &#x2F;&gt;
&lt;h3 id=&quot;vp9&quot;&gt;VP9&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Player&lt;&#x2F;th&gt;&lt;th&gt;1080p@30&lt;&#x2F;th&gt;&lt;th&gt;720p@30&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Livi&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
 ²&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
 ²&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Celluloid&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Andromeda Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;¹ While plays smoothly it seems to have a stutter like if frames are sometimes played out of order&lt;&#x2F;p&gt;
&lt;p&gt;² No video output at all&lt;&#x2F;p&gt;
&lt;h1 id=&quot;camera&quot;&gt;Camera&lt;&#x2F;h1&gt;
&lt;p&gt;The phone does not support libcamera and megapixels like mainline linux phones. Instead it has it&#x27;s own camera stack and exposes the cameras out via v4l, gstreamer, qcamera and pipewire. This allows it to be used universally by other applications. For example for video chatting through firefox. The camera application opens up quickly. It can also capture video with audio correctly in sync. The phone has 3 camera sensors and all them are supported and exposed individually. There is no advance mode to manually control WB, ISO, codec, etc but it does have tap to auto adjust the focus&#x2F;wb&#x2F;iso and it works really well.&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Library&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Supported&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Libcamera&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Droidmedia&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;CameraProvider&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Abstraction Layer&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Supported&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;LibMegapixels&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;v4l2&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Gstreamer&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Qcamera&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Pipewire&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;example&quot;&gt;Example&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Temp&lt;&#x2F;th&gt;&lt;th&gt;Kelvin&lt;&#x2F;th&gt;&lt;th&gt;Led&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Normal&lt;&#x2F;td&gt;&lt;td&gt;5000k&lt;&#x2F;td&gt;&lt;td&gt;B35AM&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Low&lt;&#x2F;td&gt;&lt;td&gt;2500k&lt;&#x2F;td&gt;&lt;td&gt;519A 3500K dedome&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Light&lt;&#x2F;th&gt;&lt;th&gt;Description&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Medium&lt;&#x2F;td&gt;&lt;td&gt;Convoy S21B 3rd click, Emisar DW4 High Ramp&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Low&lt;&#x2F;td&gt;&lt;td&gt;Convoy S21B 1st click, Emisar DW4 Moonlight&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;Flashlights were pointed at the ceiling and everything left on auto, Pixel 9 and Iphone 12 both have a night mode where it took 3s for the low light photos&lt;&#x2F;p&gt;
&lt;h2 id=&quot;normal-temp-medium-light&quot;&gt;Normal Temp Medium Light&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;FLX1s&lt;&#x2F;th&gt;&lt;th&gt;Pixel 9&lt;&#x2F;th&gt;&lt;th&gt;iPhone 12&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Pixel_9_Normal_Temp_Medium_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;pixel 9 B35AM 5000k Medium Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Pixel_9_Normal_Temp_Medium_Lux.53d9cc43339adb32.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Iphone_12_Normal_Temp_Medium_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;iPhone 12 B35AM 5000k Medium Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Iphone_12_Normal_Temp_Medium_Lux.74dfed1374feaae5.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;normal-temp-low-light&quot;&gt;Normal Temp Low Light&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;FLX1s&lt;&#x2F;th&gt;&lt;th&gt;Pixel 9&lt;&#x2F;th&gt;&lt;th&gt;iPhone 12&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Pixel_9_Normal_Temp_Low_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;pixel 9 B35AM 5000k Low Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Pixel_9_Normal_Temp_Low_Lux.7ffcde1b5dc2dbd2.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Iphone_12_Normal_Temp_Low_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;iPhone 12 B35AM 5000k Low Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Iphone_12_Normal_Temp_Low_Lux.7609f77677bae9cf.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;low-temp-medium-light&quot;&gt;Low Temp Medium Light&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: center&quot;&gt;FLX1s&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: center&quot;&gt;Pixel 9&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: center&quot;&gt;iPhone 12&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center&quot;&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Pixel_9_Low_Temp_Medium_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;pixel 9 519a 3500K DD Medium Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Pixel_9_Low_Temp_Medium_Lux.25a8cd7bd16b4f94.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Iphone_12_Low_Temp_Medium_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;iPhone 12 519a 3500K DD Medium Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Iphone_12_Low_Temp_Medium_Lux.aba50dd450c16b11.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;low-temp-low-light&quot;&gt;Low Temp Low Light&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: center&quot;&gt;FLX1s&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: center&quot;&gt;Pixel 9&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: center&quot;&gt;iPhone 12&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center&quot;&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Pixel_9_Low_Temp_Low_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;pixel 9 519a 3500K DD Low Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Pixel_9_Low_Temp_Low_Lux.4cad82220753b5a8.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Iphone_12_Low_Temp_Low_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;iPhone 12 519a 3500K DD Low Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Iphone_12_Low_Temp_Low_Lux.6a925acb5dd74ee9.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h1 id=&quot;battery-life&quot;&gt;Battery Life&lt;&#x2F;h1&gt;
&lt;p&gt;The phone has amazing battery life with the screen on and on standby. Standby is also different from the mainline devices as it does not use deep sleep. Instead it uses a low power mode, this allows it to continue running applications and keep network alive. This has the major benefit of allowing you to ssh in at anytime and continue to receive notifications from all apps including web based apps. Charging speed is also great supporting Power Delivery at 10v 3a allowing you to get multiple hours of battery life with just a handful of minutes on the charger.&lt;&#x2F;p&gt;
&lt;p&gt;Testing was done using the following settings:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Screen brightness set to 50%&lt;&#x2F;li&gt;
&lt;li&gt;Screen timeout disabled&lt;&#x2F;li&gt;
&lt;li&gt;Measured from 100% battery to device shutdown&lt;&#x2F;li&gt;
&lt;li&gt;Without android unless specified&lt;&#x2F;li&gt;
&lt;li&gt;With sim unless specified&lt;&#x2F;li&gt;
&lt;li&gt;With Wifi enabled&lt;&#x2F;li&gt;
&lt;li&gt;Video playback is 720p 30 fps no audio&lt;&#x2F;li&gt;
&lt;li&gt;Charge time tested on pinepower v1 desktop&lt;&#x2F;li&gt;
&lt;li&gt;Prometheus polling
&lt;ul&gt;
&lt;li&gt;Standard: every 15 seconds&lt;&#x2F;li&gt;
&lt;li&gt;Standby: every 30 minutes&lt;&#x2F;li&gt;
&lt;li&gt;Charging: every 5 seconds&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;screen-time&quot;&gt;Screen Time&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Method&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Battery Life&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Drain Per Hour&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Screen on&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.00 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;6.67%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Screen on + Android&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;14.06 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.11%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Screen on + Stress CPU&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.70 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;17.54%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Screen on without sim&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;video-playback&quot;&gt;Video Playback&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Method&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Battery Life&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Drain Per Hour&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;8.40 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;11.90%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Andromeda Firefox&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;standby&quot;&gt;Standby&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Method&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Battery Life&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Drain Per Hour&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Standby&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Standby + Android&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Standby without sim&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;charging&quot;&gt;Charging&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Method&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Charging Time&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Charge 0-80%&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;95 mins&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h3 id=&quot;charging-curve&quot;&gt;Charging Curve&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Measured from Sonoff S31 running esphome&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;furilabs-flx1s&#x2F;Charge_Curve.png&quot; target=&quot;_blank&quot; alt=&quot;FX1s Battery charging curve&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Charge_Curve.8655d3d55efb2c59.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;h1 id=&quot;support&quot;&gt;Support&lt;&#x2F;h1&gt;
&lt;p&gt;Support from FuriLabs has been outstanding. They are all constantly in the telegram group so when issues are discovered by endusers and they mention it in the chat they are able to immediately replicate it on their side so they can troubleshoot and fix it. They also have a great system to allow users to test fixes similar to Ubuntu Touch where there is a new repository for each fix that the user can install and uninstall. While UT requires the user to use the terminal to install said repository the FuriLabs folks have instead decided to create a GUI so even users that are terminal shy can test fixes and provide feedback. Overall getting ahold of them and getting software support from them is amazing but I have yet to interact with them when it comes to hardware defects so I can&#x27;t comment on their warranty experience.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;conclusion&quot;&gt;Conclusion&lt;&#x2F;h1&gt;
&lt;p&gt;This is a great device for the price when you consider both performance and support. The phone has just gone through its first set of updates with tons of fixes and improvements compared to out of the box. Since it is still very new there are issues that are appearing that the team is working through fixing. The phone is great to use and the battery life is amazing. The camera is good and better than the primary mainline linux phones I have tested, pp&#x2F;ppp&#x2F;l5. The only downside is the lack of software support for other OSes and DEs but that is expected with a halium devices. The docking situation is an envolving situation with promising results coming soon. The quality of the devices coming out of the factory for the initial batch seemed to have some cosmetic issues with some users having some of the screen glue seeping out and others with small cracks in the frame but the team is currently looking into those and will hopefully be able to work with the factory to reduce those problems. The quality of the plastic used for the house also doesn&#x27;t scream quality but its the kind of thing you would not notice once the phone is in a case, which is a lot easier to do as it is not as thick as the FLX1. Even with those caveats it is still a great device to use and I would 100% recommend it to anyone looking for a linux phone that is usable as of today as long as you are ok with the limitations of a halium device.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;my-involvement-disclosures&quot;&gt;My Involvement &#x2F; Disclosures&lt;&#x2F;h1&gt;
&lt;p&gt;I&#x27;ve followed Bardia, the CEO, development over the years across different devices prior to founding FuriLabs, while he was working on Droidian. While he was working on droidian, I financially donated to him in order for him to acquire hardware. I have purchased the FLX1 as soon as it was available for purchase and have daily driven it for the past year.&lt;&#x2F;p&gt;
&lt;p&gt;The FLX1s was &lt;strong&gt;sent to me for free&lt;&#x2F;strong&gt; for assisting in development and review but this is all my own information and opinions. I do minimally contribute to their development, mostly on the user side of things like their gallery app, bootman and andromeda system. Everything I&#x27;ve contributed on the software side is open in my &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;luigi311&quot;&gt;Github&lt;&#x2F;a&gt; and tagged as such on their official repos. I also currently participate in their software QA testing prior to its public release when I have time. My FLX1s is also available for them to utilize for developing and testing fixes for US specific problems that they are unable to replicate in their country such as the modem 5g issues that exist in the US but work for them in Canada and Spain.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Pinephone Pro</title>
        <published>2026-01-08T00:00:00+00:00</published>
        <updated>2026-01-08T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog-d.luigi311.com/pinephone-pro/"/>
        <id>https://blog-d.luigi311.com/pinephone-pro/</id>
        
        <content type="html" xml:base="https://blog-d.luigi311.com/pinephone-pro/">&lt;ul&gt;
&lt;li&gt;Performance: 3&#x2F;5&lt;&#x2F;li&gt;
&lt;li&gt;Affordability: A bit expensive for the performance but decent for linux first devices&lt;&#x2F;li&gt;
&lt;li&gt;Compatibility: 4&#x2F;5&lt;&#x2F;li&gt;
&lt;li&gt;Battery Life: 2&#x2F;5&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h1 id=&quot;setup-information&quot;&gt;Setup information&lt;&#x2F;h1&gt;
&lt;ul&gt;
&lt;li&gt;OS: Danct Archlinux 2025&#x2F;07&#x2F;28 (Updated 2025&#x2F;12&#x2F;01)&lt;&#x2F;li&gt;
&lt;li&gt;Kernel: 6.15.6 Megi Danct&lt;&#x2F;li&gt;
&lt;li&gt;DE: Phosh&lt;&#x2F;li&gt;
&lt;li&gt;Mesa: 25.2.7&lt;&#x2F;li&gt;
&lt;li&gt;Uboot: Megi 2024.04 uboot w&#x2F; rkbin&lt;&#x2F;li&gt;
&lt;li&gt;Modem Firmware: the-modem-distro&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h1 id=&quot;hardware-supported&quot;&gt;Hardware Supported&lt;&#x2F;h1&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Hardware&lt;&#x2F;th&gt;&lt;th&gt;Supported&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;GPS&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;aGPS ¹&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;exclamation.svg&quot; alt=&quot;Maybe&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Cameras&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Microphone&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Bluetooth&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Modem&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Accel&#x2F;Tilt&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Orientation&#x2F;Gyroscope&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Light&#x2F;Proximity&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;¹ Not hardware but important usability feature, not built in and requires a 3rd party &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;gist.github.com&#x2F;alastair-dm&#x2F;263209b54d01209be28828e555fa6628&quot;&gt;python script&lt;&#x2F;a&gt; to use it&lt;&#x2F;p&gt;
&lt;h1 id=&quot;cell-service&quot;&gt;Cell Service&lt;&#x2F;h1&gt;
&lt;p&gt;Cell service was tested in the US utilizing US Mobile MVNO on the T-Mobile Network, &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.usmobile.com&#x2F;referrals?referrer=0178DFD2&amp;amp;name=Luis&amp;amp;utm_campaign=monster_referral&quot;&gt;referral link&lt;&#x2F;a&gt;. Download&#x2F;Upload speed tests were done using ookla &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;speedtest.net&quot;&gt;speedtest.net&lt;&#x2F;a&gt; and netflix &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;fast.com&quot;&gt;fast.com&lt;&#x2F;a&gt; with the data waster option enabled. As service seems to vary from moment to moment, I ran multiple tests and grabbed the best results for each section. This was tested with the 3rd party modem firmware, &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;the-modem-distro&#x2F;pinephone_modem_sdk&quot;&gt;the modem distro&lt;&#x2F;a&gt;, which is the recommended modem firmware for the EG25 as it fixes a lot of issues with the stock firmware and also reduces power usage&#x2F;heat on it.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Note: US Mobile seems to think the EG25-G&#x2F;PPP is a mobile hotspot device and will kick the line offline if you are on an unlimited plan and requires you to be on a by the gig&#x2F;pooled line instead. Learned this the hard way by physically moving my personal sim from my FLX1 to the pinephone pro and the line went dead and required customer support and inserting it into my pixel 6 to fix it.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;The eSIM adapter works on the PPP but it doesnt have a built in way to change profiles easily. It does not work with &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;codeberg.org&#x2F;lucaweiss&#x2F;lpa-gtk&quot;&gt;eSIM Manager&lt;&#x2F;a&gt;, hopefully it will in the future as I see there are discussions and even commits related to enabling AT backend support.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;us-mobile-light-speed-tmobile&quot;&gt;US Mobile Light Speed (Tmobile)&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Phone&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Tech&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Speedtest down&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Fast down&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Fast up&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: center&quot;&gt;VoLTE &#x2F; VoNR&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;PPP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;4G&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.44 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.1 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;8.5 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: center&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;Pixel 6&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;5G&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;30.78 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;29 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;17 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: center&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;Pixel 6&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;4G&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;24.77 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.1 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: center&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h1 id=&quot;performance&quot;&gt;Performance&lt;&#x2F;h1&gt;
&lt;p&gt;The PPP is not a fast device, while leagues faster than the original pinephone it does not hold a candle to other devices in its price point. The RK3399s with its 4GB of memory can be pretty limiting but is decent enough for non demanding end users that have some patience. Where it falls flat though is when it comes to doing development work that requires compliation or even with any application or framework that is compute heavy that isn&#x27;t accelerated somewhere in hardware. The RK3399s even though is binned is still not really designed for such a small form factor so it gets very hot and as a result will start to throttle in any sustained workload, the modem itself also generates significant heat when in use which only exasterbates the problem when trying to use the device out in the real world. Luckily GTK4 and QT6 &quot;should&quot; all be accelerated automatically so most applications run just fine without any hassle. Browsing the web is not fast but is decent enough to not be painful to use and can even handle video playback in software.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;compatibility&quot;&gt;Compatibility&lt;&#x2F;h1&gt;
&lt;p&gt;The PPP is almost compatible with everything, its a mainline device running a downstream kernel that has been built into pretty much every mobile linux OS and works with every mobile linux DE. The SOC is way newer than the one in the pinephone so it has support for opengl ES 3.1 so it doesnt run into the same issues that the pinephone is running into now adays with GTK dropping GLES 2.0 support. It is sadly lacking support for vulkan so applications that are vulkan only or even applications that implement GLES as an after thought might run into issues. One example of this is the rust WGPU library which is the main library used most rust applications for getting hardware acceleration. WGPU gles implementation seems to be spotty on mobile linux so it doesn&#x27;t actually work on the PPP so all rust GUI applications need to be forced to run in software. Some of the other qualcom mainline devices work around this by just running WGPU in vulkan but that isn&#x27;t an option on the PPP. The good thing though is those are far and few in between and pine has a large community around it so when new mobile linux applications are developed they are usually tested on the PP or the PPP.&lt;&#x2F;p&gt;
&lt;p&gt;Other OS have varying levels of community support such as Sailfish, Ubuntu Touch, postmarketos and mobian. While sailfish and ubuntu touch are prodominetely OS used in halium devices they run on the PPP perfectly fine utilizing the mainline drivers for everything. UT on the PPP though does lack some features that make it hard to daily, OTA&#x2F;Camera&#x2F;Spotty Calls, compared to other halium UT devices. All the OS that the PPP runs though are all community supported with no involvment usually from the parent companies, with the exception of mobian with the mobian team officially supporting the PPP.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;android&quot;&gt;Android&lt;&#x2F;h1&gt;
&lt;p&gt;Android support is handled by the &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;waydroid&#x2F;waydroid&quot;&gt;upstream waydroid&lt;&#x2F;a&gt;. Setting it up is pretty easy by installing waydroid from the danctnix repo or from aur. Another helpful tool is &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ayasa520&#x2F;waydroid-helper&quot;&gt;waydroid-helper&lt;&#x2F;a&gt; which is also in the aur for easy install. Waydroid does not integrate with the system in anyway so theres no settings for it in the gnome settings app but waydroid helper does atleast make it easy to manager certain features such as mapping in folders and even stopping and starting the container from a GUI. Sensor passthrough is pretty limited which some work arounds existing such as for GPS with the following script &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;papiris&#x2F;geobridge&quot;&gt;geobridge&lt;&#x2F;a&gt;. Waydroid performance is actually better than expected though there is a slight delay when tapping. Leaving it running will eat up limited resources so its best to keep it off, luckily startup time is under a minute so you can start it up just when needed and then shut it down.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;sensors-passed-to-android&quot;&gt;Sensors passed to Android&lt;&#x2F;h2&gt;
&lt;p&gt;Tested using &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;play.google.com&#x2F;store&#x2F;apps&#x2F;details?id=com.exatools.sensors&amp;amp;hl=en_US&quot;&gt;Sensors Toolbox&lt;&#x2F;a&gt; app&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Sensor&lt;&#x2F;th&gt;&lt;th&gt;Passed through&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;GPS&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Cameras&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Microphone&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Bluetooth&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Modem&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Accelerometer&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Geomagnetic&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Orientation&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Gyroscope&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Light&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Pressure&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Proximity&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Gravity&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Linear Acceleration&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Rotation Vector&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h1 id=&quot;docking&quot;&gt;Docking&lt;&#x2F;h1&gt;
&lt;p&gt;The PPP similar to the original PP has excellent docking support. It supports video out natively through DP-Alt mode so you can use any dock that utilizes that standard or even plug directly into something like a NexDock for a laptop like experience. This level of docking support is what all other mobile linux devices should strive for and makes it great for using it as a single device to cover all your needs. It makes it super handy for traveling as it allows you to keep all your files in a single location and research information in a bigger screen and then take it to go with you when you are heading out.&lt;&#x2F;p&gt;
&lt;p&gt;What is missing though is a way to handle wireless docking such as the halium devices running UT that can wirelessly cast to a remote display via miracast. If the PPP does support miracast in hardware then no one has gotten around to getting the software side of it implemented and UT on the PPP does not have this feature implemented. There is limited development around miracast in general though so not sure if this is something someone will ever develop&#x2F;research for the PPP.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;web-browsing&quot;&gt;Web Browsing&lt;&#x2F;h1&gt;
&lt;p&gt;Web browsing works decently. Firefox runs well and comes with postmarketos mobile-config-firefox for a better experience on the mobile screen. Benchmarking results with &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;browserbench.org&#x2F;Speedometer3.1&#x2F;&quot;&gt;speedometer 3.1&lt;&#x2F;a&gt; with scale set to 100% are below, based on results below kumo works the best for performance but stuggles with videos as shown in the next section. Kumo itself is relatively new so if you run into any &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;catacombing&#x2F;kumo&quot;&gt;issues please report them&lt;&#x2F;a&gt; so they can be fixed, the developers are very active and friendly. Waydroid firefox actually has really good performance and scales really well since its an android app, just know since it requires waydroid running so it will consume resources even when not in use.&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Browser&lt;&#x2F;th&gt;&lt;th&gt;Score&lt;&#x2F;th&gt;&lt;th&gt;Version&lt;&#x2F;th&gt;&lt;th&gt;Toolkit&lt;&#x2F;th&gt;&lt;th&gt;Install&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td&gt;1.24 ± 0.17&lt;&#x2F;td&gt;&lt;td&gt;145.0.2&lt;&#x2F;td&gt;&lt;td&gt;Gecko&lt;&#x2F;td&gt;&lt;td&gt;Repo&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Angelfish&lt;&#x2F;td&gt;&lt;td&gt;1.20 ± 0.03&lt;&#x2F;td&gt;&lt;td&gt;25.08.0&lt;&#x2F;td&gt;&lt;td&gt;Chromium&lt;&#x2F;td&gt;&lt;td&gt;Flatpak&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Epiphany&lt;&#x2F;td&gt;&lt;td&gt;1.23 ± 0.04&lt;&#x2F;td&gt;&lt;td&gt;49.2&lt;&#x2F;td&gt;&lt;td&gt;WebKit&lt;&#x2F;td&gt;&lt;td&gt;Flatpak&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Kumo&lt;&#x2F;td&gt;&lt;td&gt;1.29 ± 0.03&lt;&#x2F;td&gt;&lt;td&gt;1.6.1&lt;&#x2F;td&gt;&lt;td&gt;Webkit&lt;&#x2F;td&gt;&lt;td&gt;Flatpak&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Waydroid Firefox&lt;&#x2F;td&gt;&lt;td&gt;1.99 ± 0.12&lt;&#x2F;td&gt;&lt;td&gt;146.0&lt;&#x2F;td&gt;&lt;td&gt;Gecko&lt;&#x2F;td&gt;&lt;td&gt;Waydroid&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h1 id=&quot;media-playback&quot;&gt;Media Playback&lt;&#x2F;h1&gt;
&lt;p&gt;Below is a table of different video codecs and their playback performance. The hardware has support for decoding h264&#x2F;h265&#x2F;vp9 and there is work being done on adding in the software support though no timeline on when it will be widely avaliable in everything. Results seem to be pretty mixed though luckily almost everything is able to play h264 which is still pretty much everywhere. It does struggle to play some of the newer codecs that are starting to take over such as AV1 being limited to just 720p. Waydroid firefox struggles with everything so if you need a browser for video playback just stick with native firefox. Kumo seems to be in a weird part where it can play 720p av1 and vp9 but h264 stutters and seems to struggle.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;player-information&quot;&gt;Player Information&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Player&lt;&#x2F;th&gt;&lt;th&gt;Version&lt;&#x2F;th&gt;&lt;th&gt;Method&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt;0.40.0&lt;&#x2F;td&gt;&lt;td&gt;Repo&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt;0.8.0&lt;&#x2F;td&gt;&lt;td&gt;Flatpak&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Livi&lt;&#x2F;td&gt;&lt;td&gt;0.3.2&lt;&#x2F;td&gt;&lt;td&gt;Flatpak&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Celluloid&lt;&#x2F;td&gt;&lt;td&gt;0.29&lt;&#x2F;td&gt;&lt;td&gt;Repo&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td&gt;145.0.2&lt;&#x2F;td&gt;&lt;td&gt;Repo&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Waydroid Firefox&lt;&#x2F;td&gt;&lt;td&gt;146.0&lt;&#x2F;td&gt;&lt;td&gt;Waydroid&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Kumo&lt;&#x2F;td&gt;&lt;td&gt;1.6.1&lt;&#x2F;td&gt;&lt;td&gt;Flatpak&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h3 id=&quot;h-264-avc&quot;&gt;H.264&#x2F;AVC&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Player&lt;&#x2F;th&gt;&lt;th&gt;1080p@30&lt;&#x2F;th&gt;&lt;th&gt;720p@30&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Livi&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Celluloid&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Waydroid Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Kumo&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;hr &#x2F;&gt;
&lt;h3 id=&quot;h-265-hevc&quot;&gt;H.265&#x2F;HEVC&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Player&lt;&#x2F;th&gt;&lt;th&gt;1080p@30&lt;&#x2F;th&gt;&lt;th&gt;720p@30&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Livi&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Celluloid&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Waydroid Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Kumo&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;hr &#x2F;&gt;
&lt;h3 id=&quot;av1&quot;&gt;AV1&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Player&lt;&#x2F;th&gt;&lt;th&gt;1080p@30&lt;&#x2F;th&gt;&lt;th&gt;720p@30&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Livi&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Celluloid&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Waydroid Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Kumo&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;hr &#x2F;&gt;
&lt;h3 id=&quot;vp9&quot;&gt;VP9&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Player&lt;&#x2F;th&gt;&lt;th&gt;1080p@30&lt;&#x2F;th&gt;&lt;th&gt;720p@30&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Livi&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Celluloid&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Waydroid Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Kumo&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h1 id=&quot;camera&quot;&gt;Camera&lt;&#x2F;h1&gt;
&lt;p&gt;Cameras on the PPP are working but not in a great position. The libcamera stack that is used across multiple apps such as gnome snapshot&#x2F;camera and what the browsers use lack autofocus so its almost impossible to use in the real world as everything will be out of focus and blurry. There was a PoC that someone created for the rkisp for libcamera but looks like its been stuck and has not progressed upstream into libcamera. On the other hand Megapixles has autofocus and manual focus but the processing on it is very slow as it is all done on the CPU instead of the rkisp like libcamera. Megapixels processing by default also has a green tint to all the images though it can be worked around by using an external &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;luigi311&#x2F;megapixels_postprocess&quot;&gt;postprocessing script like mine&lt;&#x2F;a&gt; or manually processing the images via darktables and&#x2F;or gimp or modifying postprocessd to enable auto white balance in the raw processing step. Overall its great that the camera works at all so in a pinch you can make use of it but its not something you would want to use as your main camera for taking pictures. If autofocus support is added to libcamera in the future then the camera situation will be greatly improved as libcamera has way better performance than megapixels and the quality is already really good even without the image tuning.&lt;&#x2F;p&gt;
&lt;p&gt;There is a &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;git.nekocwd.link&#x2F;NekoCWD&#x2F;libcamera&quot;&gt;WiP autofocus for the software isp&lt;&#x2F;a&gt; in libcamera so maybe onces thats merged in we can use that as a base for designing the rkisp version for atleast a generic autofocus implementation and maybe down the line someone can implement the phase detection autofocus that the imx258 supports.&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Library&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Supported&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Libcamera&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;exclamation.svg&quot; alt=&quot;Maybe&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
 ¹&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;¹ Libcamera supports the sensors but as of this review, it is missing autofocus which is a hard requirement for actual usage&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Abstraction Layer&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Supported&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;LibMegapixels&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Gstreamer&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;exclamation.svg&quot; alt=&quot;Maybe&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
 ¹&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Pipewire&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;exclamation.svg&quot; alt=&quot;Maybe&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
 ¹&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;¹ Gstreamer and Pipewire are handled through Libcamera so the same issues that affect libcamera also affect these layers&lt;&#x2F;p&gt;
&lt;h2 id=&quot;example&quot;&gt;Example&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Temp&lt;&#x2F;th&gt;&lt;th&gt;Kelvin&lt;&#x2F;th&gt;&lt;th&gt;Led&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Normal&lt;&#x2F;td&gt;&lt;td&gt;5000k&lt;&#x2F;td&gt;&lt;td&gt;B35AM&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Low&lt;&#x2F;td&gt;&lt;td&gt;2500k&lt;&#x2F;td&gt;&lt;td&gt;519A 3500K dedome&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Light&lt;&#x2F;th&gt;&lt;th&gt;Description&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Medium&lt;&#x2F;td&gt;&lt;td&gt;Convoy S21B 3rd click, Emisar DW4 High Ramp&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Low&lt;&#x2F;td&gt;&lt;td&gt;Convoy S21B 1st click, Emisar DW4 Moonlight&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;Flashlights were pointed at the ceiling and everything left on auto, pixel 9 and Iphone 12 both have a night mode where it took 3s for the low light photos&lt;&#x2F;p&gt;
&lt;h2 id=&quot;versions&quot;&gt;Versions&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Application&lt;&#x2F;th&gt;&lt;th&gt;Method&lt;&#x2F;th&gt;&lt;th&gt;Version&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Megapixels&lt;&#x2F;td&gt;&lt;td&gt;Repo&lt;&#x2F;td&gt;&lt;td&gt;2.0.0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Libcamera&lt;&#x2F;td&gt;&lt;td&gt;Repo&lt;&#x2F;td&gt;&lt;td&gt;0.6.0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Gnome Snapshot&lt;&#x2F;td&gt;&lt;td&gt;Flatpak&lt;&#x2F;td&gt;&lt;td&gt;49.0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;normal-temp-medium-light&quot;&gt;Normal Temp Medium Light&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Megapixels Postprocessd&lt;&#x2F;th&gt;&lt;th&gt;Megapixels Personal&lt;&#x2F;th&gt;&lt;th&gt;Gnome Snapshot&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;pinephone-pro&#x2F;camera&#x2F;megapixels&#x2F;PPP_Postprocessd_Normal_Temp_Medium_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;Megapixels Postprocessd&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;PPP_Postprocessd_Normal_Temp_Medium_Lux.00bfbbe874add3eb.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;pinephone-pro&#x2F;camera&#x2F;megapixels&#x2F;PPP_Personal_Normal_Temp_Medium_Lux.png&quot; target=&quot;_blank&quot; alt=&quot;Megapixels Personal &quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;PPP_Personal_Normal_Temp_Medium_Lux.68c5073ac1697d73.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;pinephone-pro&#x2F;camera&#x2F;libcamera&#x2F;PPP_Libcamera_Normal_Temp_Medium_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;PPP_Libcamera_Normal_Temp_Medium_Lux.1cd2a9f30f20595d.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Pixel 9&lt;&#x2F;th&gt;&lt;th&gt;iPhone 12&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Pixel_9_Normal_Temp_Medium_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;pixel 9 B35AM 5000k Medium Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Pixel_9_Normal_Temp_Medium_Lux.53d9cc43339adb32.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Iphone_12_Normal_Temp_Medium_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;iPhone 12 B35AM 5000k Medium Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Iphone_12_Normal_Temp_Medium_Lux.74dfed1374feaae5.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;normal-temp-low-light&quot;&gt;Normal Temp Low Light&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Megapixels Postprocessd&lt;&#x2F;th&gt;&lt;th&gt;Megapixels Personal&lt;&#x2F;th&gt;&lt;th&gt;Gnome Snapshot&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;pinephone-pro&#x2F;camera&#x2F;megapixels&#x2F;PPP_Postprocessd_Normal_Temp_Low_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;Megapixels Postprocessd&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;PPP_Postprocessd_Normal_Temp_Low_Lux.0668de76ac21e254.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;pinephone-pro&#x2F;camera&#x2F;megapixels&#x2F;PPP_Personal_Normal_Temp_Low_Lux.png&quot; target=&quot;_blank&quot; alt=&quot;Megapixels Personal &quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;PPP_Personal_Normal_Temp_Low_Lux.1c8c501ffa769a1b.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;pinephone-pro&#x2F;camera&#x2F;libcamera&#x2F;PPP_Libcamera_Normal_Temp_Low_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;PPP_Libcamera_Normal_Temp_Low_Lux.6270df47ab49320f.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;pixel 9&lt;&#x2F;th&gt;&lt;th&gt;iPhone 12&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Pixel_9_Normal_Temp_Low_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;pixel 9 B35AM 5000k Low Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Pixel_9_Normal_Temp_Low_Lux.7ffcde1b5dc2dbd2.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Iphone_12_Normal_Temp_Low_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;iPhone 12 B35AM 5000k Low Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Iphone_12_Normal_Temp_Low_Lux.7609f77677bae9cf.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;low-temp-medium-light&quot;&gt;Low Temp Medium Light&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Megapixels Postprocessd&lt;&#x2F;th&gt;&lt;th&gt;Megapixels Personal&lt;&#x2F;th&gt;&lt;th&gt;Gnome Snapshot&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;pinephone-pro&#x2F;camera&#x2F;megapixels&#x2F;PPP_Postprocessd_Low_Temp_Medium_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;Megapixels Postprocessd&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;PPP_Postprocessd_Low_Temp_Medium_Lux.15df53cea5dc4ed8.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;pinephone-pro&#x2F;camera&#x2F;megapixels&#x2F;PPP_Personal_Low_Temp_Medium_Lux.png&quot; target=&quot;_blank&quot; alt=&quot;Megapixels Personal &quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;PPP_Personal_Low_Temp_Medium_Lux.9e5c37242e705075.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;pinephone-pro&#x2F;camera&#x2F;libcamera&#x2F;PPP_Libcamera_Low_Temp_Medium_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;PPP_Libcamera_Low_Temp_Medium_Lux.509a7aeb2fb28f76.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;pixel 9&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: center&quot;&gt;iPhone 12&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Pixel_9_Low_Temp_Medium_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;pixel 9 519a 3500K DD Medium Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Pixel_9_Low_Temp_Medium_Lux.25a8cd7bd16b4f94.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Iphone_12_Low_Temp_Medium_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;iPhone 12 519a 3500K DD Medium Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Iphone_12_Low_Temp_Medium_Lux.aba50dd450c16b11.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;low-temp-low-light&quot;&gt;Low Temp Low Light&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Megapixels Postprocessd&lt;&#x2F;th&gt;&lt;th&gt;Megapixels Personal&lt;&#x2F;th&gt;&lt;th&gt;Gnome Snapshot&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;pinephone-pro&#x2F;camera&#x2F;megapixels&#x2F;PPP_Postprocessd_Low_Temp_Low_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;Megapixels Postprocessd&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;PPP_Postprocessd_Low_Temp_Low_Lux.f988b8563d3fd79f.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;pinephone-pro&#x2F;camera&#x2F;megapixels&#x2F;PPP_Personal_Low_Temp_Low_Lux.png&quot; target=&quot;_blank&quot; alt=&quot;Megapixels Personal &quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;PPP_Personal_Low_Temp_Low_Lux.7728b637ae59bb48.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;pinephone-pro&#x2F;camera&#x2F;libcamera&#x2F;PPP_Libcamera_Low_Temp_Low_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;PPP_Libcamera_Low_Temp_Low_Lux.1d0aeefa3733a982.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;pixel 9&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: center&quot;&gt;iPhone 12&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Pixel_9_Low_Temp_Low_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;pixel 9 519a 3500K DD Low Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Pixel_9_Low_Temp_Low_Lux.4cad82220753b5a8.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Iphone_12_Low_Temp_Low_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;iPhone 12 519a 3500K DD Low Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Iphone_12_Low_Temp_Low_Lux.6a925acb5dd74ee9.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h1 id=&quot;battery-life&quot;&gt;Battery Life&lt;&#x2F;h1&gt;
&lt;p&gt;The phone is not great when it comes to active usage battery life. The RK3399s is a power hungry SOC and the PPP has a relatively small battery for the power draw of the SOC and will require charging throughout the day if you are a heavy phone user. Standby battery life is decent enough though and will last throughout the day, so for users that only need a phone for communication this is more that good enough.&lt;&#x2F;p&gt;
&lt;p&gt;One major problem though is the phone seems to lose the battery percentage that it&#x27;s at, with it sometimes just staying at 100% until the battery runs dry and the phone turns off. This problem is made even worse when utilizing suspend which seems to cause more problems with the battery percentage drifting off. One workaround for this seems to be removing the battery from the phone itself and holding the power button while the battery is unplugged. While this seems to temporarily fix the issue, this is not an ideal solution as you wont know your battery percentage is stuck so you cant rely on the battery not being almost dead when you need it. Since non suspended battery is not great you could end up in a situation where the phone didnt enter suspend and ate up your battery and you won&#x27;t know until it suddenly dies on you. During the standby tests below, the phone was reporting that it still had 50-60% battery left when it suddenly shut off and would not turn back on until plugged in for a while to bring the battery back to life.&lt;&#x2F;p&gt;
&lt;p&gt;Testing was done using the following settings:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Screen brightness set to 50%&lt;&#x2F;li&gt;
&lt;li&gt;Screen timeout disabled&lt;&#x2F;li&gt;
&lt;li&gt;Measured from 100% battery to device shutdown&lt;&#x2F;li&gt;
&lt;li&gt;Without android unless specified&lt;&#x2F;li&gt;
&lt;li&gt;With sim unless specified&lt;&#x2F;li&gt;
&lt;li&gt;With Wifi enabled&lt;&#x2F;li&gt;
&lt;li&gt;Video playback is 720p 30 fps h264&lt;&#x2F;li&gt;
&lt;li&gt;Charge time tested on pinepower v1 desktop&lt;&#x2F;li&gt;
&lt;li&gt;Prometheus polling every 15 seconds&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;screen-time&quot;&gt;Screen Time&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Method&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Battery Life&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Drain Per Hour&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Screen on&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.50 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;22.22%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Screen on + Android&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.25 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;23.52%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Screen on + Stress CPU&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.41 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;70.59%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Screen on without sim&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.50 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;22.22%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;video-playback&quot;&gt;Video Playback&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Method&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Battery Life&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Drain Per Hour&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.96 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;103.45%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.15 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;86.96%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Waydroid Firefox&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.30 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;76.92%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;standby&quot;&gt;Standby&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;taken with &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;L0v3P01s0n&#x2F;sleepwalk&quot;&gt;sleepwalk&lt;&#x2F;a&gt; enabled utilizing the default settings
&lt;ul&gt;
&lt;li&gt;SLEEP_STEP=30&lt;&#x2F;li&gt;
&lt;li&gt;SLEEP_MAX_SECS=600&lt;&#x2F;li&gt;
&lt;li&gt;WAKE_SECS=30&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Method&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Battery Life&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Drain Per Hour&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Standby&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;22.78 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.39%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Standby + Android&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;21.75 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.60%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Standby without sim&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;27.11 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.69%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;charging&quot;&gt;Charging&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Method&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Charging Time&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Charge 0-80%&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;78 mins&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h3 id=&quot;charging-curve&quot;&gt;Charging Curve&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Prometheus polling every 5 seconds&lt;&#x2F;li&gt;
&lt;li&gt;Measured from Sonoff S31 running esphome&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;pinephone-pro&#x2F;Charge_Curve.png&quot; target=&quot;_blank&quot; alt=&quot;PPP Battery charging curve&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Charge_Curve.3ebbfd450be8a2d1.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;h1 id=&quot;support&quot;&gt;Support&lt;&#x2F;h1&gt;
&lt;p&gt;Support from Pine64 on the software side is nonexistent, especially now that they have officially discontinued the device and are no longer producing it. Even before the discontinuation the only official support pine provided was if something was broken on arrival but due to the low warranty period it was a rush job to go through that process of validating it and contacting them. I&#x27;ve had to contact them once for a separate pine device, keyboard, and the support itself was great for me. In that instance they sent me a replacement motherboard that I then had to go in and manually swap out and this was outside the warranty period at the time.&lt;&#x2F;p&gt;
&lt;p&gt;Most of the support for the pine devices actually come from the community side. Due to the low price of entry for most pine devices, the community itself is massive especially compared to all other mobile linux communities. The PINE64 discord community is the primary place where everyone works and talks all pine things so if you are keeping up with the conversations you know everything going on with all the pine ecosystems. Most of the developers that work on pine devices all hangout in there so its great to ask them questions about what they are working on or if you run into issues. One of the great things about the community based development is that tons of people can pick it up and focus on things that are important for them, one of the main driving forces is Megi on the downstream kernel that is used everywhere on pine devices and you can &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;xnux.eu&#x2F;log&#x2F;&quot;&gt;read his blog&lt;&#x2F;a&gt;, though its imporant to note that his development on the PPP has basically come to a standstill and is just carrying forward his current patches so we can continue to use newer linux kernels. Some members in the community though are not so keen on relying on a downstream kernel forever so there are a handful of memebers in the community that have been working on upstreaming bits and pieces to reduce the hard requirement of the downstream kerenel. Overall the community is great and very helpful so if you run into any issues or need help setting something up you can usually find someone willing to help you out. Though after so many years with the same pine devices it seems like actual development has slowed down a lot compared to a few years ago.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;conclusion&quot;&gt;Conclusion&lt;&#x2F;h1&gt;
&lt;p&gt;The Pinephone Pro is in a weird place when it comes to its future outlook and if it will ever reach the point of recommendation for daily usage. The hardware itself is decent enough for actual usage as long as the battery life is enough for you but the real problem comes from the software side with things being in a almost good enough state but not quite there. The camera situation is a big issue with it lacking autofocus in libcamera which is a hard requirement for actually using the camera in the real world, the megapixels side lacking performance and having the green tint issue by default. The battery percentage issue is also a big problem since you can&#x27;t relying on your phone to not being close to dying when you need it. The dwindling amount of active developers working on the PPP itself also makes it hard to have a positive outlook on the future of the device as it seems like most developers have moved on to other devices&#x2F;projects. The lack of first party software support from pine64 also means if the remaining developers in the community move on to other things then development will stop entirely. Luckily all the work that was done is still being carried forward so the PPP continues to run newer kernels and OS releases instead of rotting away like downstream only SBC boards but improvements seem to be coming at a dripping pace at this point. So if the PPP functions well enough for you as it currently stands then it can be a decent enough daily driver but I would not get it with the expectation that it will continue to improve as it has in the past.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;my-involvement-disclosures&quot;&gt;My Involvement &#x2F; Disclosures&lt;&#x2F;h1&gt;
&lt;p&gt;I&#x27;ve been involvement in multiple different pine related projects. Ive worked on Megapixels and Libcamera for the user camera software stack on implementing fixes and features for a better experience. My biggest contribution I&#x27;m most proud of would be locating the Raspberry PI imx258 (rear camera) driver in the pi downstream kernel and adapting it so it supports the imx258 variant used by the PPP and pushing it all upstream to the offical linux kernel which then made its way to megi&#x27;s kernel and all pine devices. This brought an improvement to the camera quality in the driver side of things and also allows for less reliance on a downstream kernel for camera support.&lt;&#x2F;p&gt;
&lt;p&gt;The pinephone pro and all pine devices were all purchased with my own money. I have financially contributed to multiple developers in the pine&#x2F;mobile linux ecosystem such as Megi (Kernel), Martijn (Megapixels), Guido (Phosh), PostmarketOS (OS), Ubuntu Touch (OS) and hope to continue to provide financial support.&lt;&#x2F;p&gt;
&lt;p&gt;My involvement with the pine community has mostly dwindled as I&#x27;ve moved to other devices in the mobile linux ecosystem but I do try to keep up with things that are happening as I still have some pine devices I wish to use more in the future such as my PineTab 2.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Furilabs FLX1</title>
        <published>2025-06-09T00:00:00+00:00</published>
        <updated>2025-06-09T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog-d.luigi311.com/furilabs-flx1/"/>
        <id>https://blog-d.luigi311.com/furilabs-flx1/</id>
        
        <content type="html" xml:base="https://blog-d.luigi311.com/furilabs-flx1/">&lt;ul&gt;
&lt;li&gt;Performance: 4&#x2F;5&lt;&#x2F;li&gt;
&lt;li&gt;Affordability: Great price for the hardware and support provided&lt;&#x2F;li&gt;
&lt;li&gt;Compatibility: 3&#x2F;5&lt;&#x2F;li&gt;
&lt;li&gt;Battery Life: 5&#x2F;5&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h1 id=&quot;setup-information&quot;&gt;Setup information&lt;&#x2F;h1&gt;
&lt;ul&gt;
&lt;li&gt;OS: FuriOS 13.0.9&lt;&#x2F;li&gt;
&lt;li&gt;Kernel: 4.19.325&lt;&#x2F;li&gt;
&lt;li&gt;DE: Phosh&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h1 id=&quot;hardware-supported&quot;&gt;Hardware Supported&lt;&#x2F;h1&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Hardware&lt;&#x2F;th&gt;&lt;th&gt;Supported&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;GPS&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;aGPS ¹&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Cameras&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Microphone&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Bluetooth ²&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Modem&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;NFC&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Fingerprint&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Accel&#x2F;Tilt&#x2F;Step&#x2F;Wake&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Orientation&#x2F;Gyroscope&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Light&#x2F;Pressure&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Proximity&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;NPU&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;¹ Not hardware but important usability feature and is optional
² Bluetooth is working but uses bluez and that seems to have difficulty connecting to some devices&lt;&#x2F;p&gt;
&lt;p&gt;Some hardware is a grouping as those are all functions handled by a single sensor on the device and exposed as different metrics.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;cell-service&quot;&gt;Cell Service&lt;&#x2F;h1&gt;
&lt;p&gt;Cell service was tested in the US utilizing US Mobile MVNO, &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.usmobile.com&#x2F;referrals?referrer=0178DFD2&amp;amp;name=Luis&amp;amp;utm_campaign=monster_referral&quot;&gt;referral link&lt;&#x2F;a&gt;, as it allows for easy testing of the 3 major US network providers. The only downside is the TMobile service has deprioritized download speeds so your speeds can be on the slower side like mine based on location and network traffic. Download&#x2F;Upload speed tests were done using ookla &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;speedtest.net&quot;&gt;speedtest.net&lt;&#x2F;a&gt; and netflix &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;fast.com&quot;&gt;fast.com&lt;&#x2F;a&gt; with the data waster option enabled. As service seems to vary from moment to moment, I ran multiple tests and grabbed the best results for each section. Light Speed (Tmobile) seems to work perfectly without any issues, while the FLX1 does support the bands for 5g, the 5g connection in the US seems to be unstable and causes issues. In my case with the 5g bands enabled, the phone would no longer connect to service so I had to stay on the 4g network. I have seen reports that lots of people outside the US use 5g without any issues. I&#x27;ve attempted Dark Star (AT&amp;amp;T) and ran into issues getting a complete connection, data wasnt working but was able to make calls and text.&lt;&#x2F;p&gt;
&lt;p&gt;I also put in my JMP.Chat eSIM with their data plan and while the phosh settings says AT&amp;amp;T, speedtest says its T-Mobile and I dont have a reliable way to validate it since they route it so you come out of Poland for privacy reasons. The eSIM works on my FLX1 and even has a built in way to change profiles and add new profiles, it is clunky but it is enough to get the job done. It does not work with &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;codeberg.org&#x2F;lucaweiss&#x2F;lpa-gtk&quot;&gt;eSIM Manager&lt;&#x2F;a&gt;, hopefully it will in the future or the build in app is improved.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;us-mobile-light-speed-tmobile&quot;&gt;US Mobile Light Speed (Tmobile)&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Phone&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Tech&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Speedtest down&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Fast down&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Fast up&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: center&quot;&gt;VoLTE &#x2F; VoNR&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;FLX1&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;4G&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.7 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;9.6 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;8.0 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: center&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;Pixel 6&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;5G&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;86.6 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;100 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;12 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: center&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;Pixel 6&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;4G&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;25.2 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;23 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;12 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: center&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;jmp-chat-data-plan&quot;&gt;JMP.Chat Data Plan&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Phone&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Tech&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Speedtest down&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Fast down&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Fast up&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;FLX1&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;4G&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;6.2 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;9.3 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;5.0 Mbps&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;Pixel 6&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;4G&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;13.1 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10 Mbps&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10 Mbps&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h1 id=&quot;performance&quot;&gt;Performance&lt;&#x2F;h1&gt;
&lt;p&gt;The FLX1 is a fast phone in general. The Mediatek Dimensity 900 is a fast SOC especially compared to the pinephone&#x2F;pinephone pro&#x2F;librem 5 devices. It comes with 6GB of RAM , which is more than enough for most tasks but can be limiting. Web browsing and media playback are fast and smooth. Android container is fully supported with acceleration working well and the performance is great. There are some acceleration issues with flatpak qt6 based applications due to upstream QT flatpak gles issues. Flatpak qt5&#x2F;gtk4 and native qt5&#x2F;qt6&#x2F;gtk4 are all accelerated and seem to be working without issues.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;compatibility&quot;&gt;Compatibility&lt;&#x2F;h1&gt;
&lt;p&gt;The FLX1 is a halium based device so it is limiting to what OS&#x2F;DE you can run on it. Currently you can run both FuriOS and Ubuntu Touch, though FuriOS is the only one officially supported by the FuriLabs team. You wont be able to run any of the other mainline OS though like arch and postmarketos. For desktop environments (DE) you are also limited to Phosh in FuriOS and Lomiri in the Ubuntu Touch port. GTK based applications seem to function the best while some QT based applications have issues such as acceleration and&#x2F;or failing to launch like angelfish due to upstream issues around GLES support and inclusion in the flatpak builds. The FLX1 also supports multiboot allowing you to install multiple OS side by side. This makes it simple to test new changes without breaking your main image or even testing out separate different OS as they are released. The app they created to manage this is bootman and once an OS is integrated with it then its as simple as telling it to create a new partition of X size and telling it what OS to flash onto the partition. It will then show up as a touch interface when turning the phone on to select what OS&#x2F;Partition you want to boot into.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;android&quot;&gt;Android&lt;&#x2F;h1&gt;
&lt;p&gt;Android support is amazing with lots of sensors passed through to the container, listed below. The android system is called &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;FuriLabs&#x2F;andromeda&quot;&gt;Andromeda&lt;&#x2F;a&gt; which forked off Waydroid and has made tons of improvements and updates to the base android system. You should be able to run most android applications without any issues except the usually culprits that have Integrity API (Safetynet replacement) like banking apps. Video playback works and I can confirm Grayjay works perfectly except the volume control guesture control. Android also integrated perfectly with the rest of the OS with all your android applications showing up in the app drawer. There is a gnome software plugin so you can search and install android apps from fdroid through the gnome software store as if it was a native application removing the need to manually open fdroid. There&#x27;s a android section in the gnome settings that exposes a lot of android settings to the user as shown below.&lt;&#x2F;p&gt;

&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;furilabs-flx1&#x2F;FLX1_Gnome_Settings_Android.png&quot; target=&quot;_blank&quot; alt=&quot;FuriOS Android Settings&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;FLX1_Gnome_Settings_Android.a5043e8c53494e45.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;h2 id=&quot;sensors-passed-to-android&quot;&gt;Sensors passed to Android&lt;&#x2F;h2&gt;
&lt;p&gt;Tested using &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;play.google.com&#x2F;store&#x2F;apps&#x2F;details?id=com.exatools.sensors&amp;amp;hl=en_US&quot;&gt;Sensors Toolbox&lt;&#x2F;a&gt; app&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Sensor&lt;&#x2F;th&gt;&lt;th&gt;Passed through&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;GPS&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Cameras&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Microphone&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Bluetooth&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Modem&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;NFC&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Fingerprint&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Accelerometer&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Geomagnetic&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Orientation&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Gyroscope&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Light&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Pressure&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Proximity&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Gravity&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Linear Acceleration&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Rotation Vector&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Step Counter&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h1 id=&quot;docking&quot;&gt;Docking&lt;&#x2F;h1&gt;
&lt;p&gt;The FLX1 docking is in a weird position as the hardware does not support usb dp-alt mode but they are still able to utilize evdi to get output externally. They are also working on a wireless solution like what UT has with Miracast. Neither of these options are avaliable publically though so only time will tell how well it works out and how universal the solutions are.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;web-browsing&quot;&gt;Web Browsing&lt;&#x2F;h1&gt;
&lt;p&gt;Web browsing works really well. Firefox runs well and comes with a custom configuration similar to postmarketos  mobile-config-firefox for a better experience on mobile screens. Benchmarking results with &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;browserbench.org&#x2F;Speedometer3.1&#x2F;&quot;&gt;speedometer 3.1&lt;&#x2F;a&gt; with scale set to 100% are below, based on results I would recommend sticking with firefox. If you do have andromeda running in the background then running firefox in it is also an option and has great performance since a lot is accelerated.&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Browser&lt;&#x2F;th&gt;&lt;th&gt;Score&lt;&#x2F;th&gt;&lt;th&gt;Version&lt;&#x2F;th&gt;&lt;th&gt;Toolkit&lt;&#x2F;th&gt;&lt;th&gt;Install&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td&gt;2.54 ± 0.074&lt;&#x2F;td&gt;&lt;td&gt;135.0.1&lt;&#x2F;td&gt;&lt;td&gt;Gecko&lt;&#x2F;td&gt;&lt;td&gt;Repo&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Angelfish ¹&lt;&#x2F;td&gt;&lt;td&gt;N&#x2F;A&lt;&#x2F;td&gt;&lt;td&gt;25.04.1&lt;&#x2F;td&gt;&lt;td&gt;Chromium&lt;&#x2F;td&gt;&lt;td&gt;Flatpak&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Epiphany&lt;&#x2F;td&gt;&lt;td&gt;1.86 ± 0.065&lt;&#x2F;td&gt;&lt;td&gt;48.3&lt;&#x2F;td&gt;&lt;td&gt;WebKit&lt;&#x2F;td&gt;&lt;td&gt;Flatpak&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Kumo ¹&lt;&#x2F;td&gt;&lt;td&gt;N&#x2F;A&lt;&#x2F;td&gt;&lt;td&gt;1.1.0&lt;&#x2F;td&gt;&lt;td&gt;Webkit&lt;&#x2F;td&gt;&lt;td&gt;Flatpak&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Andromeda Firefox&lt;&#x2F;td&gt;&lt;td&gt;4.43 ± 0.066&lt;&#x2F;td&gt;&lt;td&gt;138.0.3&lt;&#x2F;td&gt;&lt;td&gt;Gecko&lt;&#x2F;td&gt;&lt;td&gt;Andromeda&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;¹ Fails to launch&lt;&#x2F;p&gt;
&lt;h1 id=&quot;media-playback&quot;&gt;Media Playback&lt;&#x2F;h1&gt;
&lt;p&gt;Below is a table of different video codecs and their playback performance. The hardware has support for decoding h264&#x2F;h265&#x2F;vp9 and they are working on adding in the software support necessary. The best results for native seem to come from MPV&#x2F;Celluloid&#x2F;firefox so as long as you are using any of those performance should be fine and inline with each other.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;player-information&quot;&gt;Player Information&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Player&lt;&#x2F;th&gt;&lt;th&gt;Version&lt;&#x2F;th&gt;&lt;th&gt;Method&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt;0.40.0&lt;&#x2F;td&gt;&lt;td&gt;Repo&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt;0.8.0&lt;&#x2F;td&gt;&lt;td&gt;Flatpak&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Livi&lt;&#x2F;td&gt;&lt;td&gt;0.3.1&lt;&#x2F;td&gt;&lt;td&gt;Flatpak&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Celluloid&lt;&#x2F;td&gt;&lt;td&gt;0.28&lt;&#x2F;td&gt;&lt;td&gt;Repo&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td&gt;135.0.1&lt;&#x2F;td&gt;&lt;td&gt;Repo&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Andromeda Firefox&lt;&#x2F;td&gt;&lt;td&gt;138.0.3&lt;&#x2F;td&gt;&lt;td&gt;Andromeda&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h3 id=&quot;h-264-avc&quot;&gt;H.264&#x2F;AVC&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Player&lt;&#x2F;th&gt;&lt;th&gt;1080p@30&lt;&#x2F;th&gt;&lt;th&gt;720p@30&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Livi&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Celluloid&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Andromeda Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;hr &#x2F;&gt;
&lt;h3 id=&quot;h-265-hevc&quot;&gt;H.265&#x2F;HEVC&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Player&lt;&#x2F;th&gt;&lt;th&gt;1080p@30&lt;&#x2F;th&gt;&lt;th&gt;720p@30&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Livi ¹&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Celluloid&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Firefox ¹&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Andromeda Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;¹ No video output at all&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h3 id=&quot;av1&quot;&gt;AV1&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Player&lt;&#x2F;th&gt;&lt;th&gt;1080p@30&lt;&#x2F;th&gt;&lt;th&gt;720p@30&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Livi&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Celluloid&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Andromeda Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;hr &#x2F;&gt;
&lt;h3 id=&quot;vp9&quot;&gt;VP9&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Player&lt;&#x2F;th&gt;&lt;th&gt;1080p@30&lt;&#x2F;th&gt;&lt;th&gt;720p@30&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Livi&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Celluloid&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Andromeda Firefox&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h1 id=&quot;camera&quot;&gt;Camera&lt;&#x2F;h1&gt;
&lt;p&gt;The phone does not support libcamera and megapixels like mainline linux phones. Instead it has it&#x27;s own camera stack and exposes the cameras out via v4l, gstreamer, qcamera and pipewire. This allows it to be used universally by other applications. For example for video chatting through firefox. The camera quality is really good and the processing is instant as it&#x27;s using the mediatek isp. The camera application also opens up quickly. It can also capture video with audio correctly in sync. The phone has 3 camera sensors and all them are supported and exposed individually. There is no advance mode to manually control WB, ISO, codec, etc but it does have tap to auto adjust the focus&#x2F;wb&#x2F;iso and it works really well.&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Library&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Supported&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Libcamera&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Droidmedia&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;CameraProvider&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Abstraction Layer&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Supported&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;LibMegapixels&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;v4l2&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Gstreamer&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Qcamera&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Pipewire&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;example&quot;&gt;Example&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Temp&lt;&#x2F;th&gt;&lt;th&gt;Kelvin&lt;&#x2F;th&gt;&lt;th&gt;Led&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Normal&lt;&#x2F;td&gt;&lt;td&gt;5000k&lt;&#x2F;td&gt;&lt;td&gt;B35AM&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Low&lt;&#x2F;td&gt;&lt;td&gt;2500k&lt;&#x2F;td&gt;&lt;td&gt;519A 3500K dedome&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Light&lt;&#x2F;th&gt;&lt;th&gt;Description&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Medium&lt;&#x2F;td&gt;&lt;td&gt;Convoy S21B 3rd click, Emisar DW4 High Ramp&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Low&lt;&#x2F;td&gt;&lt;td&gt;Convoy S21B 1st click, Emisar DW4 Moonlight&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;Flashlights were pointed at the ceiling and everything left on auto, Pixel 9 and Iphone 12 both have a night mode where it took 3s for the low light photos&lt;&#x2F;p&gt;
&lt;h2 id=&quot;normal-temp-medium-light&quot;&gt;Normal Temp Medium Light&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;FLX1&lt;&#x2F;th&gt;&lt;th&gt;Pixel 9&lt;&#x2F;th&gt;&lt;th&gt;iPhone 12&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;furilabs-flx1&#x2F;camera&#x2F;FLX1_Normal_Temp_Medium_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;FLX1 B35AM 5000k Medium Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;FLX1_Normal_Temp_Medium_Lux.17440a08090023a1.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Pixel_9_Normal_Temp_Medium_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;pixel 9 B35AM 5000k Medium Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Pixel_9_Normal_Temp_Medium_Lux.53d9cc43339adb32.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Iphone_12_Normal_Temp_Medium_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;iPhone 12 B35AM 5000k Medium Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Iphone_12_Normal_Temp_Medium_Lux.74dfed1374feaae5.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;normal-temp-low-light&quot;&gt;Normal Temp Low Light&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;FLX1&lt;&#x2F;th&gt;&lt;th&gt;Pixel 9&lt;&#x2F;th&gt;&lt;th&gt;iPhone 12&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;furilabs-flx1&#x2F;camera&#x2F;FLX1_Normal_Temp_Low_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;FLX1 B35AM 5000k Low Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;FLX1_Normal_Temp_Low_Lux.b4df5efca08721a3.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Pixel_9_Normal_Temp_Low_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;pixel 9 B35AM 5000k Low Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Pixel_9_Normal_Temp_Low_Lux.7ffcde1b5dc2dbd2.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Iphone_12_Normal_Temp_Low_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;iPhone 12 B35AM 5000k Low Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Iphone_12_Normal_Temp_Low_Lux.7609f77677bae9cf.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;low-temp-medium-light&quot;&gt;Low Temp Medium Light&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: center&quot;&gt;FLX1&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: center&quot;&gt;Pixel 9&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: center&quot;&gt;iPhone 12&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;furilabs-flx1&#x2F;camera&#x2F;FLX1_Low_Temp_Medium_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;FLX1 519a 3500K DD Medium Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;FLX1_Low_Temp_Medium_Lux.685381af5291fb90.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Pixel_9_Low_Temp_Medium_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;pixel 9 519a 3500K DD Medium Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Pixel_9_Low_Temp_Medium_Lux.25a8cd7bd16b4f94.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Iphone_12_Low_Temp_Medium_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;iPhone 12 519a 3500K DD Medium Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Iphone_12_Low_Temp_Medium_Lux.aba50dd450c16b11.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;low-temp-low-light&quot;&gt;Low Temp Low Light&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: center&quot;&gt;FLX1&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: center&quot;&gt;Pixel 9&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: center&quot;&gt;iPhone 12&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;furilabs-flx1&#x2F;camera&#x2F;FLX1_Low_Temp_Low_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;FLX1 519a 3500K DD Low Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;FLX1_Low_Temp_Low_Lux.ac2b5ddc587e8568.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Pixel_9_Low_Temp_Low_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;pixel 9 519a 3500K DD Low Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Pixel_9_Low_Temp_Low_Lux.4cad82220753b5a8.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;camera&#x2F;Iphone_12_Low_Temp_Low_Lux.jpg&quot; target=&quot;_blank&quot; alt=&quot;iPhone 12 519a 3500K DD Low Light&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Iphone_12_Low_Temp_Low_Lux.6a925acb5dd74ee9.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h1 id=&quot;battery-life&quot;&gt;Battery Life&lt;&#x2F;h1&gt;
&lt;p&gt;The phone has amazing battery life with the screen on and on standby. Standby is also different from the mainline devices as it does not use deep sleep. Instead it uses a low power mode, this allows it to continue running applications and keep network alive. This has the major benefit of allowing you to ssh in at anytime and continue to receive notifications from all apps including web based apps. Charging speed is also great supporting Power Delivery at 10v 3a allowing you to get multiple hours of battery life with just a handful of minutes on the charger.&lt;&#x2F;p&gt;
&lt;p&gt;Testing was done using the following settings:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Screen brightness set to 50%&lt;&#x2F;li&gt;
&lt;li&gt;Screen timeout disabled&lt;&#x2F;li&gt;
&lt;li&gt;Measured from 100% battery to device shutdown&lt;&#x2F;li&gt;
&lt;li&gt;Without android unless specified&lt;&#x2F;li&gt;
&lt;li&gt;With sim unless specified&lt;&#x2F;li&gt;
&lt;li&gt;With Wifi enabled&lt;&#x2F;li&gt;
&lt;li&gt;Video playback is 720p 30 fps&lt;&#x2F;li&gt;
&lt;li&gt;Charge time tested on pinepower v1 desktop&lt;&#x2F;li&gt;
&lt;li&gt;Prometheus polling every 15 seconds&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;screen-time&quot;&gt;Screen Time&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Method&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Battery Life&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Drain Per Hour&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Screen on&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;9.82 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.18%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Screen on + Android&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;8.83 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;11.32%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Screen on + Stress CPU&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.86 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;20.58%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Screen on without sim&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;10.11 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;9.89%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;video-playback&quot;&gt;Video Playback&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Method&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Battery Life&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Drain Per Hour&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;6.43 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;15.55%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;6.90 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;14.49%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Andromeda Firefox&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;6.67 hours&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;14.99%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;standby&quot;&gt;Standby&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;prometheus polling every 30 mins&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Method&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Battery Life&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Drain Per Hour&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Standby&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;4.47 days&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.93%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Standby + Android&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;3.19 days&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;1.30%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Standby without sim&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;7.86 days&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;0.53%&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;charging&quot;&gt;Charging&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Method&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: right&quot;&gt;Charging Time&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Charge 0-80%&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: right&quot;&gt;51.5 mins&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h3 id=&quot;charging-curve&quot;&gt;Charging Curve&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Prometheus polling every 5 seconds&lt;&#x2F;li&gt;
&lt;li&gt;Measured from Sonoff S31 running esphome&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;furilabs-flx1&#x2F;Charge_Curve.png&quot; target=&quot;_blank&quot; alt=&quot;FX1 Battery charging curve&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Charge_Curve.8dc8d9a28d28a4ee.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;h1 id=&quot;support&quot;&gt;Support&lt;&#x2F;h1&gt;
&lt;p&gt;Support from FuriLabs has been outstanding. They are all constantly in the telegram group so when issues are discovered by endusers and they mention it in the chat they are able to immediately replicate it on their side so they can troubleshoot and fix it. They also have a great system to allow users to test fixes similar to Ubuntu Touch where there is a new repository for each fix that the user can install and uninstall. While UT requires the user to use the terminal to install said repository the FuriLabs folks have instead decided to create a GUI so even users that are terminal shy can test fixes and provide feedback. Overall getting ahold of them and getting software support from them is amazing but I have yet to interact with them when it comes to hardware defects so I can&#x27;t comment on their warranty experience.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;conclusion&quot;&gt;Conclusion&lt;&#x2F;h1&gt;
&lt;p&gt;This is a great device for the price when you consider both performance and support. It is constantly getting new improvements and updates. The phone is great to use and the battery life is amazing. The camera is good and better than all mainline linux phones I have tested, pp&#x2F;ppp&#x2F;l5. The only downside is the lack of software support for other OSes and DEs but that is expected with a halium devices. The docking situation is a bummer but will hopefully improve soon. Even with those caveats it is still a great device to use and I would 100% recommend it to anyone looking for a linux phone that is usable.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;my-involvement-disclosures&quot;&gt;My Involvement &#x2F; Disclosures&lt;&#x2F;h1&gt;
&lt;p&gt;I&#x27;ve followed Bardia, the CEO, development over the years across different devices prior to founding FuriLabs, while he was working on Droidian. While he was working on droidian, I financially donated to him in order for him to acquire hardware.&lt;&#x2F;p&gt;
&lt;p&gt;The FLX1 was purchased with my own money and I was the first one to official purchase a device from them. I did feel confident purchasing the device when they first opened up and their promise for support because of my connection and good experience with Bardia. I minimally contribute to their development, mostly on the user side of things like their gallery app and andromeda system. Everything ive contributed on the software side is open in my &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;luigi311&quot;&gt;Github&lt;&#x2F;a&gt; and tagged as such on their official repos. I also currently participate in their software QA testing prior to its public release when I have time.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Widevine on Mobile&#x2F;ARM Linux</title>
        <published>2025-05-04T00:00:00+00:00</published>
        <updated>2025-05-04T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog-d.luigi311.com/widevine/"/>
        <id>https://blog-d.luigi311.com/widevine/</id>
        
        <content type="html" xml:base="https://blog-d.luigi311.com/widevine/">&lt;h1 id=&quot;what-is-widevine&quot;&gt;What is widevine&lt;&#x2F;h1&gt;
&lt;p&gt;Widevine is a DRM system used to protect copyrighted media content. It contains 3 different levels that determines what level of content you have access too usually seperated based on quality. The 3 levels consist of L1 &amp;gt; L2 &amp;gt; L3 with L3 being the lowest level and is done in software so it is something that can be do on all devices as long as its an architecture that google has released binaries for. L1 and L2 can only be implemented by the hardware manufacture for your individual device as it requires a hardware secure element and certification.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;why-so-complicated&quot;&gt;Why so complicated&lt;&#x2F;h1&gt;
&lt;p&gt;Why do I need to use widevine on my mobile&#x2F;arm linux device while my desktop linux just works?&lt;&#x2F;p&gt;
&lt;p&gt;Your AMD&#x2F;Intel based linux machine is still using widevine L3, the major difference is firefox&#x2F;chrome both automatically install and configure it for you on AMD64 machines.&lt;&#x2F;p&gt;
&lt;p&gt;When you are using firefox and try to access any media with DRM for the first time, firefox will prompt you if you want to enable support for it. If you allow it then firefox will go out and fetch widevine L3 and get it configured automatically for you so its a seamless experience. This feature though is only implemented for AMD64 based builds of firefox so it is not avaliable on the ARM builds. There have been feature requests for firefox to enable this functionality for their arm builds but until then the process has to be done manually.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;limitations&quot;&gt;Limitations&lt;&#x2F;h1&gt;
&lt;p&gt;Limitations on access and quality based on online posts.&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Widevine Level&lt;&#x2F;th&gt;&lt;th&gt;Spotify&lt;&#x2F;th&gt;&lt;th&gt;Netflix&lt;&#x2F;th&gt;&lt;th&gt;Disney+&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;L1&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt;4k&lt;&#x2F;td&gt;&lt;td&gt;4k&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;L3&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt;480p¹&lt;&#x2F;td&gt;&lt;td&gt;720p&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;None&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;None&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;None&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;None&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;¹ Requires a specific User Agent to work&lt;&#x2F;p&gt;
&lt;h1 id=&quot;before-after&quot;&gt;Before&#x2F;After&lt;&#x2F;h1&gt;
&lt;p&gt;Here are some screenshots to show a before and after widevine L3 has been configured&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Website&lt;&#x2F;th&gt;&lt;th&gt;Before&lt;&#x2F;th&gt;&lt;th&gt;After&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;bitmovin.com&#x2F;demos&#x2F;drm&#x2F;&quot;&gt;Bitmovin&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;widevine&#x2F;Before_Bitmovin.png&quot; target=&quot;_blank&quot; alt=&quot;Bitmovin no access&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Before_Bitmovin.8b09197e1d49a31b.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;widevine&#x2F;After_Bitmovin.png&quot; target=&quot;_blank&quot; alt=&quot;Bitmovin widevine&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;After_Bitmovin.d1be3868dd4b738d.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Spotify&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;widevine&#x2F;Before_Spotify.png&quot; target=&quot;_blank&quot; alt=&quot;Spotify no access&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;Before_Spotify.c19830e6b0149b38.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;
&lt;a href=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;widevine&#x2F;After_Spotify.png&quot; target=&quot;_blank&quot; alt=&quot;Spotify working&quot; &gt;
    &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;blog-d.luigi311.com&amp;#x2F;processed_images&amp;#x2F;After_Spotify.53c5e25f98b08426.webp&quot; &#x2F;&gt;
&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h1 id=&quot;prerequisites&quot;&gt;Prerequisites&lt;&#x2F;h1&gt;
&lt;ul&gt;
&lt;li&gt;curl&lt;&#x2F;li&gt;
&lt;li&gt;git&lt;&#x2F;li&gt;
&lt;li&gt;python3&lt;&#x2F;li&gt;
&lt;li&gt;unsquashfs&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;debian-ubuntu&quot;&gt;Debian&#x2F;Ubuntu&lt;&#x2F;h2&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;language-bash z-code&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;z-source z-shell z-bash&quot;&gt;&lt;span class=&quot;z-meta z-function-call z-shell&quot;&gt;&lt;span class=&quot;z-variable z-function z-shell&quot;&gt;sudo&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-function-call z-arguments z-shell&quot;&gt; apt install curl git python3 squashfs-tools&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h2 id=&quot;archlinux&quot;&gt;Archlinux&lt;&#x2F;h2&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;language-bash z-code&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;z-source z-shell z-bash&quot;&gt;&lt;span class=&quot;z-meta z-function-call z-shell&quot;&gt;&lt;span class=&quot;z-variable z-function z-shell&quot;&gt;sudo&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-function-call z-arguments z-shell&quot;&gt; pacman&lt;span class=&quot;z-variable z-parameter z-option z-shell&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-parameter z-shell&quot;&gt; -&lt;&#x2F;span&gt;S&lt;&#x2F;span&gt; curl git python3 squashfs-tools&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h1 id=&quot;install&quot;&gt;Install&lt;&#x2F;h1&gt;
&lt;p&gt;Tested on a Furilabs FLX1 and Pinephone Pro&lt;&#x2F;p&gt;
&lt;p&gt;Clone into the git repo by AsahiLinux&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;language-bash z-code&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;z-source z-shell z-bash&quot;&gt;&lt;span class=&quot;z-meta z-function-call z-shell&quot;&gt;&lt;span class=&quot;z-variable z-function z-shell&quot;&gt;git&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-function-call z-arguments z-shell&quot;&gt; clone https:&#x2F;&#x2F;github.com&#x2F;AsahiLinux&#x2F;widevine-installer.git&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-shell z-bash&quot;&gt;&lt;span class=&quot;z-meta z-function-call z-shell&quot;&gt;&lt;span class=&quot;z-support z-function z-cd z-shell&quot;&gt;cd&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-function-call z-arguments z-shell&quot;&gt; widevine-installer&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Find your lib directory&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;language-bash z-code&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;z-source z-shell z-bash&quot;&gt;&lt;span class=&quot;z-meta z-function-call z-shell&quot;&gt;&lt;span class=&quot;z-storage z-modifier z-shell&quot;&gt;export&lt;&#x2F;span&gt; &lt;span class=&quot;z-variable z-other z-readwrite z-assignment z-shell&quot;&gt;LIBDIR&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-operator z-assignment z-shell&quot;&gt;=&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-shell&quot;&gt;&lt;span class=&quot;z-meta z-group z-expansion z-command z-parens z-shell&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-variable z-shell&quot;&gt;$&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-section z-parens z-begin z-shell&quot;&gt;(&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-function-call z-shell&quot;&gt;&lt;span class=&quot;z-variable z-function z-shell&quot;&gt;dirname&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-function-call z-arguments z-shell&quot;&gt; &lt;span class=&quot;z-meta z-group z-expansion z-command z-parens z-shell&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-variable z-shell&quot;&gt;$&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-section z-parens z-begin z-shell&quot;&gt;(&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-function-call z-shell&quot;&gt;&lt;span class=&quot;z-variable z-function z-shell&quot;&gt;find&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-function-call z-arguments z-shell&quot;&gt; &#x2F;usr&#x2F;lib&lt;span class=&quot;z-keyword z-operator z-regexp z-quantifier z-shell&quot;&gt;*&lt;&#x2F;span&gt;&lt;span class=&quot;z-variable z-parameter z-option z-shell&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-parameter z-shell&quot;&gt; -&lt;&#x2F;span&gt;name&lt;&#x2F;span&gt; &lt;span class=&quot;z-string z-quoted z-double z-shell&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-string z-begin z-shell&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;firefox&lt;span class=&quot;z-punctuation z-definition z-string z-end z-shell&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-variable z-parameter z-option z-shell&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-parameter z-shell&quot;&gt; -&lt;&#x2F;span&gt;type&lt;&#x2F;span&gt; d&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-section z-parens z-end z-shell&quot;&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-section z-parens z-end z-shell&quot;&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-shell z-bash&quot;&gt;&lt;span class=&quot;z-meta z-function-call z-shell&quot;&gt;&lt;span class=&quot;z-support z-function z-echo z-shell&quot;&gt;echo&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-function-call z-arguments z-shell&quot;&gt; &lt;span class=&quot;z-string z-quoted z-double z-shell&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-string z-begin z-shell&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-group z-expansion z-parameter z-shell&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-variable z-shell&quot;&gt;$&lt;&#x2F;span&gt;&lt;span class=&quot;z-variable z-other z-readwrite z-shell&quot;&gt;LIBDIR&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-string z-end z-shell&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;This should hopefully return a single directory, in my case &lt;code&gt;&#x2F;usr&#x2F;lib&lt;&#x2F;code&gt;&lt;br &#x2F;&gt;
If multiple directories are returned then you will need to figure out which one actually contains your firefox config that is being used and use that as your LIBDIR&lt;&#x2F;p&gt;
&lt;p&gt;Run the widevine-installer script as root with your libdir and follow the instructions in the terminal, mostly enter to accept license agreements&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;language-bash z-code&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;z-source z-shell z-bash&quot;&gt;&lt;span class=&quot;z-meta z-function-call z-shell&quot;&gt;&lt;span class=&quot;z-variable z-function z-shell&quot;&gt;sudo&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-function-call z-arguments z-shell&quot;&gt; LIBDIR=&lt;span class=&quot;z-string z-quoted z-double z-shell&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-string z-begin z-shell&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-group z-expansion z-parameter z-shell&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-variable z-shell&quot;&gt;$&lt;&#x2F;span&gt;&lt;span class=&quot;z-variable z-other z-readwrite z-shell&quot;&gt;LIBDIR&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-string z-end z-shell&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt; .&#x2F;widevine-installer&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;or&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;language-bash z-code&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;z-source z-shell z-bash&quot;&gt;&lt;span class=&quot;z-meta z-function-call z-shell&quot;&gt;&lt;span class=&quot;z-variable z-function z-shell&quot;&gt;sudo&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-function-call z-arguments z-shell&quot;&gt; LIBDIR=&lt;span class=&quot;z-string z-quoted z-double z-shell&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-string z-begin z-shell&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&#x2F;usr&#x2F;lib&lt;span class=&quot;z-punctuation z-definition z-string z-end z-shell&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt; .&#x2F;widevine-installer&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Once completed, give your system a reboot and you should be good to go! Try opening the bitmovin drm testing site and see if it reports widevine is supported.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;special-thanks&quot;&gt;Special thanks&lt;&#x2F;h1&gt;
&lt;ul&gt;
&lt;li&gt;AsahiLinux for developing and maintaining the installer&lt;&#x2F;li&gt;
&lt;li&gt;Widevine folks for creating a software L3&lt;&#x2F;li&gt;
&lt;li&gt;Google for releasing widevine L3 binaries for both AMD64 and ARM64, hopefully more architectures too at some point&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Migrate to Mobile Linux Guide</title>
        <published>2024-10-05T00:00:00+00:00</published>
        <updated>2024-10-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog-d.luigi311.com/migrate-mobile-linux/"/>
        <id>https://blog-d.luigi311.com/migrate-mobile-linux/</id>
        
        <content type="html" xml:base="https://blog-d.luigi311.com/migrate-mobile-linux/">&lt;p&gt;This is a guide on how to migrate from Android&#x2F;IOS to Mobile Linux. Sections are broken down by Desktop Enviornment since that has an affect on what you have access to and what apps are expecting.&lt;&#x2F;p&gt;
&lt;br&gt;
&lt;h1 id=&quot;phosh-gnome-mobile&quot;&gt;Phosh &#x2F; Gnome Mobile&lt;&#x2F;h1&gt;
&lt;h2 id=&quot;contacts&quot;&gt;Contacts&lt;&#x2F;h2&gt;
&lt;p&gt;App: &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;flathub.org&#x2F;apps&#x2F;org.gnome.Contacts&quot;&gt;Contacts by The GNOME Project&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;google-nextcloud-webdav&quot;&gt;Google &#x2F; Nextcloud &#x2F; WebDAV&lt;&#x2F;h3&gt;
&lt;h5 id=&quot;untested&quot;&gt;UNTESTED&lt;&#x2F;h5&gt;
&lt;ol&gt;
&lt;li&gt;Open Settings&lt;&#x2F;li&gt;
&lt;li&gt;Tap on Online Accounts&lt;&#x2F;li&gt;
&lt;li&gt;Tap on service provider and fill in information&lt;&#x2F;li&gt;
&lt;li&gt;Open Contacts app and it should start populating&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;br&gt;
&lt;h3 id=&quot;manual-import&quot;&gt;Manual Import&lt;&#x2F;h3&gt;
&lt;ol&gt;
&lt;li&gt;Open the Contacts app&lt;&#x2F;li&gt;
&lt;li&gt;Tap the menu icon on the top right corner&lt;&#x2F;li&gt;
&lt;li&gt;Tap on &quot;Import From File...&quot;&lt;&#x2F;li&gt;
&lt;li&gt;Locate the contact vcf file you transfered and tap on it so its highlighted&lt;&#x2F;li&gt;
&lt;li&gt;Tap on Import on the top right corner&lt;&#x2F;li&gt;
&lt;li&gt;Tap on Import on the top right corner again&lt;&#x2F;li&gt;
&lt;li&gt;All your contacts should be imported now&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;hr &#x2F;&gt;
&lt;br&gt;
&lt;h2 id=&quot;calendar&quot;&gt;Calendar&lt;&#x2F;h2&gt;
&lt;p&gt;App: &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;flathub.org&#x2F;apps&#x2F;org.gnome.Calendar&quot;&gt;Calendar by The GNOME Project&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;google-nextcloud-webdav-1&quot;&gt;Google &#x2F; Nextcloud &#x2F; WebDAV&lt;&#x2F;h3&gt;
&lt;h5 id=&quot;untested-1&quot;&gt;UNTESTED&lt;&#x2F;h5&gt;
&lt;ol&gt;
&lt;li&gt;Open Settings&lt;&#x2F;li&gt;
&lt;li&gt;Tap on Online Accounts&lt;&#x2F;li&gt;
&lt;li&gt;Tap on service provider and fill in information&lt;&#x2F;li&gt;
&lt;li&gt;Open the Calendar App and it should start populating the events&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;br&gt;
&lt;h3 id=&quot;manual-import-1&quot;&gt;Manual Import&lt;&#x2F;h3&gt;
&lt;ol&gt;
&lt;li&gt;Open Calendar app&lt;&#x2F;li&gt;
&lt;li&gt;Tap on the &quot;Calendars&quot;&lt;&#x2F;li&gt;
&lt;li&gt;Tap on &quot;Manage Calendars...&quot; from the drop down menu&lt;&#x2F;li&gt;
&lt;li&gt;Tap on &quot;Add Calendar...&quot;&lt;&#x2F;li&gt;
&lt;li&gt;Provide a name and color for your new calendar&lt;&#x2F;li&gt;
&lt;li&gt;Tap on &quot;Open a File&quot;&lt;&#x2F;li&gt;
&lt;li&gt;Tap on the transfered ics calendar file&lt;&#x2F;li&gt;
&lt;li&gt;Tap on Open on the top right corner&lt;&#x2F;li&gt;
&lt;li&gt;All your calendar events should be imported now&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;hr &#x2F;&gt;
&lt;br&gt;
&lt;h2 id=&quot;email&quot;&gt;Email&lt;&#x2F;h2&gt;
&lt;p&gt;App: &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;flathub.org&#x2F;apps&#x2F;org.gnome.Geary&quot;&gt;Geary by Geary Development Team&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;google-microsoft-imap-smtp&quot;&gt;Google &#x2F; Microsoft &#x2F; IMAP &#x2F; SMTP&lt;&#x2F;h3&gt;
&lt;ol&gt;
&lt;li&gt;Open Settings&lt;&#x2F;li&gt;
&lt;li&gt;Tap on Online Accounts&lt;&#x2F;li&gt;
&lt;li&gt;Tap on service provider and fill in information&lt;&#x2F;li&gt;
&lt;li&gt;Open Geary and it should detect your email account and start syncing&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;hr &#x2F;&gt;
&lt;br&gt;
&lt;br&gt;
&lt;h1 id=&quot;plasma-mobile-6&quot;&gt;Plasma Mobile 6&lt;&#x2F;h1&gt;
&lt;h2 id=&quot;contacts-1&quot;&gt;Contacts&lt;&#x2F;h2&gt;
&lt;p&gt;App: &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;apps.kde.org&#x2F;phonebook&quot;&gt;Phonebook by Plasma Mobile&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;manual-import-2&quot;&gt;Manual Import&lt;&#x2F;h3&gt;
&lt;ol&gt;
&lt;li&gt;Open Phonebook&lt;&#x2F;li&gt;
&lt;li&gt;Tap on the 3 dots on the top right corner&lt;&#x2F;li&gt;
&lt;li&gt;Tap on Import contacts&lt;&#x2F;li&gt;
&lt;li&gt;Locate the contact vcf file you transfered and tap on it&lt;&#x2F;li&gt;
&lt;li&gt;All your contacts should be imported now&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;hr &#x2F;&gt;
&lt;br&gt;
&lt;h2 id=&quot;calendar-1&quot;&gt;Calendar&lt;&#x2F;h2&gt;
&lt;p&gt;App: &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;apps.kde.org&#x2F;calindori&quot;&gt;Calindori by Plasma Mobile&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;manual-import-3&quot;&gt;Manual Import&lt;&#x2F;h3&gt;
&lt;ol&gt;
&lt;li&gt;Open Calindori&lt;&#x2F;li&gt;
&lt;li&gt;Tap on the Hamburger Menu button on the top left corner&lt;&#x2F;li&gt;
&lt;li&gt;Tap on Settings&lt;&#x2F;li&gt;
&lt;li&gt;Tap on Manage internal calendars&lt;&#x2F;li&gt;
&lt;li&gt;Tap on personal
&lt;ul&gt;
&lt;li&gt;If it does not exist then create a calendar&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Tap on Import calendar file&lt;&#x2F;li&gt;
&lt;li&gt;Tap on the transfered ics calendar file&lt;&#x2F;li&gt;
&lt;li&gt;Tap on Proceed at the bottom to confirm to add your events&lt;&#x2F;li&gt;
&lt;li&gt;It should say import completed successfully in green at the bottom&lt;&#x2F;li&gt;
&lt;li&gt;All your calendar events should be imported now&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;hr &#x2F;&gt;
&lt;br&gt;
&lt;h2 id=&quot;email-1&quot;&gt;Email&lt;&#x2F;h2&gt;
&lt;p&gt;App: &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;flathub.org&#x2F;apps&#x2F;org.gnome.Geary&quot;&gt;Geary by Geary Development Team&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;google-microsoft-imap-smtp-1&quot;&gt;Google &#x2F; Microsoft &#x2F; IMAP &#x2F; SMTP&lt;&#x2F;h3&gt;
&lt;ol&gt;
&lt;li&gt;Open Geary&lt;&#x2F;li&gt;
&lt;li&gt;Tap on Add on the top left corner&lt;&#x2F;li&gt;
&lt;li&gt;Fill in Name and Email address&lt;&#x2F;li&gt;
&lt;li&gt;It should auto detect the method based on your email address&lt;&#x2F;li&gt;
&lt;li&gt;Fill out any of the information it asks for and make sure its correct&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;hr &#x2F;&gt;
&lt;br&gt;
&lt;br&gt;
&lt;h1 id=&quot;manual-exports&quot;&gt;Manual Exports&lt;&#x2F;h1&gt;
&lt;h2 id=&quot;contacts-2&quot;&gt;Contacts&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;android&quot;&gt;Android&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Android Phone
&lt;ol&gt;
&lt;li&gt;Open Contacts app&lt;&#x2F;li&gt;
&lt;li&gt;Tap on Organize tab on the bottom right corner&lt;&#x2F;li&gt;
&lt;li&gt;Scroll to the bottom and tap on &quot;Export to file&quot;&lt;&#x2F;li&gt;
&lt;li&gt;Select a folder and name and tap on SAVE&lt;&#x2F;li&gt;
&lt;li&gt;Transfer the new contacts vcf file to your mobile linux device&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;ios&quot;&gt;IOS&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;iPhone
&lt;ol&gt;
&lt;li&gt;Open Contacts app&lt;&#x2F;li&gt;
&lt;li&gt;Tap on Lists in the top left corner&lt;&#x2F;li&gt;
&lt;li&gt;Press and Hold the group that you want&lt;&#x2F;li&gt;
&lt;li&gt;Tap on Export in the popup menu&lt;&#x2F;li&gt;
&lt;li&gt;Select the desired fields or tap &quot;Select All Fields&quot; at the bottom&lt;&#x2F;li&gt;
&lt;li&gt;Tap on Done in the top right corner&lt;&#x2F;li&gt;
&lt;li&gt;Save the contact card file somewhere&lt;&#x2F;li&gt;
&lt;li&gt;Transfer the new contact vcf file to your mobile linux device&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;hr &#x2F;&gt;
&lt;br&gt;
&lt;h2 id=&quot;calendar-2&quot;&gt;Calendar&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;android-1&quot;&gt;Android&lt;&#x2F;h3&gt;
&lt;p&gt;There is no way to export your local only calendar from the google calendar app. You will need to sync it to your google account so you can export it from the web calendar.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Android Phone&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Sync your calendar with your google account&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Computer&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Open the website &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;calendar.google.com&quot;&gt;https:&#x2F;&#x2F;calendar.google.com&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Click the Settings gear icon on the top right corner&lt;&#x2F;li&gt;
&lt;li&gt;Click on Settings&lt;&#x2F;li&gt;
&lt;li&gt;Click on &quot;Import &amp;amp; Export&quot; on the left menu&lt;&#x2F;li&gt;
&lt;li&gt;Click on the &quot;Export&quot; button&lt;&#x2F;li&gt;
&lt;li&gt;Extract the Zip file that gets downloaded to your machine&lt;&#x2F;li&gt;
&lt;li&gt;Transfer the ics calendar file that you just extracted to your mobile linux device&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;ios-1&quot;&gt;IOS&lt;&#x2F;h3&gt;
&lt;h5 id=&quot;untested-2&quot;&gt;UNTESTED&lt;&#x2F;h5&gt;
&lt;p&gt;Like android there is no way to export the calendar out of an iPhone locally. I have no way to verify but I did find a workaround online by utilizing icloud. &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;discussions.apple.com&#x2F;thread&#x2F;8370609?sortBy=rank&quot;&gt;Workaround discussion&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;iPhone&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Sync your calendar with your iCloud account&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Computer&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Open the website &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.icloud.com&#x2F;&quot;&gt;https:&#x2F;&#x2F;www.icloud.com&#x2F;&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Login to your iCloud account&lt;&#x2F;li&gt;
&lt;li&gt;Click on the Calendar icon&lt;&#x2F;li&gt;
&lt;li&gt;In the left panel click on Share Calendar button&lt;&#x2F;li&gt;
&lt;li&gt;On the popup tick the &quot;Public Calendar&quot; option and copy the url&lt;&#x2F;li&gt;
&lt;li&gt;Paste the url into the browser and change webcal to http in the url&lt;&#x2F;li&gt;
&lt;li&gt;Rename the downloaded file to calendar.ics&lt;&#x2F;li&gt;
&lt;li&gt;Transfer the new calendar.ics file to your mobile linux device&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Pine64 Pinephone</title>
        <published>2024-06-22T00:00:00+00:00</published>
        <updated>2024-06-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog-d.luigi311.com/pinephone/"/>
        <id>https://blog-d.luigi311.com/pinephone/</id>
        
        <content type="html" xml:base="https://blog-d.luigi311.com/pinephone/">&lt;ul&gt;
&lt;li&gt;Performance: 1&#x2F;5&lt;&#x2F;li&gt;
&lt;li&gt;VoLTE Calls: Supported&lt;&#x2F;li&gt;
&lt;li&gt;GPS and aGPS: Both work, but the antenna is weak, leading to potential delays in locking on or difficulties indoors&lt;&#x2F;li&gt;
&lt;li&gt;Affordability: Designed to be super cheap, making it a good entry point for developers interested in mobile Linux&lt;&#x2F;li&gt;
&lt;li&gt;Compatibility: Great&lt;&#x2F;li&gt;
&lt;li&gt;Camera Support:
&lt;ul&gt;
&lt;li&gt;Libcamera: New support, handles everything in software as there is no ISP&lt;&#x2F;li&gt;
&lt;li&gt;Megapixels: Currently the better option, offering decent quality but slow processing due to the phone’s speed and the heavy processing required for raw images&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Battery Life: Decent, from 2-3.5 hours of active use and around multiple days on standby&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h1 id=&quot;setup-information&quot;&gt;Setup information&lt;&#x2F;h1&gt;
&lt;ul&gt;
&lt;li&gt;OS: Danct Archlinux&lt;&#x2F;li&gt;
&lt;li&gt;Kernel: 6.7.7&lt;&#x2F;li&gt;
&lt;li&gt;DE: Phosh&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h1 id=&quot;performance&quot;&gt;Performance&lt;&#x2F;h1&gt;
&lt;p&gt;The Pinephone is slow. It uses an Allwinner A64 SOC, which is a quad-core Cortex-A53 processor. This SOC is very old and slow. It comes with 3GB of RAM, which is enough for most tasks. The performance is passable for basic tasks like calling, texting and other light applications but can struggle with heavy applications like web browsers and media playback that doesnt use hardware acceleration.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;web-browsing&quot;&gt;Web Browsing&lt;&#x2F;h1&gt;
&lt;p&gt;Web browsing is slow, and the phone can struggle especially with heavy websites. Performance is also affected by the browser used. Based on benchmarking results with &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;browserbench.org&#x2F;Speedometer3.0&#x2F;&quot;&gt;speedometer 3.0&lt;&#x2F;a&gt; you should use either Epiphany or Angelfish for web browsing.&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Browser&lt;&#x2F;th&gt;&lt;th&gt;Score&lt;&#x2F;th&gt;&lt;th&gt;Toolkit&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Firefox&lt;&#x2F;td&gt;&lt;td&gt;0.372 ± 0.014&lt;&#x2F;td&gt;&lt;td&gt;Gecko&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Angelfish&lt;&#x2F;td&gt;&lt;td&gt;0.436 ± 0.0074&lt;&#x2F;td&gt;&lt;td&gt;Chromium&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Epiphany&lt;&#x2F;td&gt;&lt;td&gt;0.451 ± 0.0065&lt;&#x2F;td&gt;&lt;td&gt;WebKit&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h1 id=&quot;media-playback&quot;&gt;Media Playback&lt;&#x2F;h1&gt;
&lt;p&gt;Your best bet for media playback is to avoid doing it in the browser and instead downloading the video or audio file and playing it in a dedicated media player with hopefully hardware acceleration. The phone can struggle with high-resolution videos so keeping to 720p and lower is recommended and should be fine since the screen is only 720p anyway.&lt;&#x2F;p&gt;
&lt;p&gt;Below is a table of different video codecs and their playback performance listing the highest resolution that can be played back in real-time per codecs, if the resolution is higher and not listed they all failed, if the resolution is lower then they all passed. Real-time playback means that the video can be played back without any dropped frames or stuttering. Hardware acceleration means that the video is being decoded by the GPU instead of the CPU, which can help with performance and battery life.&lt;&#x2F;p&gt;
&lt;p&gt;Based on the table below if you are using h.264 you should use clapper or livi, for everything else you should use mpv.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;h-264-avc&quot;&gt;H.264&#x2F;AVC&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Resolution&lt;&#x2F;th&gt;&lt;th&gt;Player&lt;&#x2F;th&gt;&lt;th&gt;Realtime Playback&lt;&#x2F;th&gt;&lt;th&gt;Hardware Acceleration&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;1080p&lt;&#x2F;td&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;1080p&lt;&#x2F;td&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;1080p&lt;&#x2F;td&gt;&lt;td&gt;Livi&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;720p&lt;&#x2F;td&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;720p&lt;&#x2F;td&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;720p&lt;&#x2F;td&gt;&lt;td&gt;Livi&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h3 id=&quot;h-265-hevc&quot;&gt;H.265&#x2F;HEVC&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Resolution&lt;&#x2F;th&gt;&lt;th&gt;Player&lt;&#x2F;th&gt;&lt;th&gt;Realtime Playback&lt;&#x2F;th&gt;&lt;th&gt;Hardware Acceleration&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;576p&lt;&#x2F;td&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;576p&lt;&#x2F;td&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;576p&lt;&#x2F;td&gt;&lt;td&gt;Livi&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h3 id=&quot;av1&quot;&gt;AV1&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Resolution&lt;&#x2F;th&gt;&lt;th&gt;Player&lt;&#x2F;th&gt;&lt;th&gt;Realtime Playback&lt;&#x2F;th&gt;&lt;th&gt;Hardware Acceleration&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;576p&lt;&#x2F;td&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;exclamation.svg&quot; alt=&quot;Maybe&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;576p&lt;&#x2F;td&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;576p&lt;&#x2F;td&gt;&lt;td&gt;Livi&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h3 id=&quot;vp9&quot;&gt;VP9&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Resolution&lt;&#x2F;th&gt;&lt;th&gt;Player&lt;&#x2F;th&gt;&lt;th&gt;Realtime Playback&lt;&#x2F;th&gt;&lt;th&gt;Hardware Acceleration&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;720p&lt;&#x2F;td&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;720p&lt;&#x2F;td&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;720p&lt;&#x2F;td&gt;&lt;td&gt;Livi&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;576p&lt;&#x2F;td&gt;&lt;td&gt;MPV&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;checkmark.svg&quot; alt=&quot;Yes&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;576p&lt;&#x2F;td&gt;&lt;td&gt;Clapper&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;576p&lt;&#x2F;td&gt;&lt;td&gt;Livi&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;td&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;cross.svg&quot; alt=&quot;No&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt; 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;icons&#x2F;exclamation.svg&quot; alt=&quot;Maybe&quot; width=&quot;48&quot; height=&quot;48&quot; loading=&quot;lazy&quot; &#x2F;&gt;
 Close to real-time playback, few dropped frames in heavy scenes only&lt;&#x2F;p&gt;
&lt;h1 id=&quot;camera&quot;&gt;Camera&lt;&#x2F;h1&gt;
&lt;p&gt;There are two supported camera stacks that support the pinephone, libcamera and megapixels. Megapixels is the better option for now as it offers better quality and more features. The camera quality is decent but the processing is slow due to the phone&#x27;s speed and the heavy processing required for raw images. The camera is not suitable for fast moving objects or low light conditions due to the slow processing and high noise levels. Its useful if you need to take a quick picture of something static.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;libcamera&quot;&gt;Libcamera&lt;&#x2F;h3&gt;
&lt;p&gt;Libcamera support has been added to the pinephone but it is not the best option as it handles everything in software as there is no ISP that it can use. It also currently lacks autofocus so it is not the best option for now.&lt;&#x2F;p&gt;
&lt;p&gt;Image pending for autofocus support&lt;&#x2F;p&gt;
&lt;h3 id=&quot;megapixels&quot;&gt;Megapixels&lt;&#x2F;h3&gt;
&lt;p&gt;Megapixels is the better option for now as it offers better quality and more features. The processing is slow due to the phone&#x27;s speed and the heavy processing required for raw images. I have written a postprocessing script that can be used that will give slightly different results compared to postprocessd, you can find it &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;luigi311&#x2F;megapixels_postprocess&quot;&gt;here&lt;&#x2F;a&gt;. It allows you to change processing settings and the final image codec to be used so you can get the best results for your use case such as avif or jxl.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;postprocessd&quot;&gt;Postprocessd&lt;&#x2F;h4&gt;
 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;images&#x2F;camera&#x2F;pinephone&#x2F;superman_postprocessd_stacked.jpg&quot; alt=&quot;Superman Postprocessd&quot; width=&quot;1930&quot; height=&quot;2572&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;h4 id=&quot;custom-postprocessing&quot;&gt;Custom Postprocessing&lt;&#x2F;h4&gt;
 
&lt;img src=&quot;https:&#x2F;&#x2F;blog-d.luigi311.com&#x2F;images&#x2F;camera&#x2F;pinephone&#x2F;superman_custom_processed.jpg&quot; alt=&quot;Superman Custom&quot; width=&quot;1944&quot; height=&quot;2592&quot; loading=&quot;lazy&quot; &#x2F;&gt;
&lt;h1 id=&quot;battery-life&quot;&gt;Battery Life&lt;&#x2F;h1&gt;
&lt;p&gt;Testing was done using the following setup:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Screen brightness set to 50%&lt;&#x2F;li&gt;
&lt;li&gt;Screen timeout disabled&lt;&#x2F;li&gt;
&lt;li&gt;Battery life was measured from 95% to device shutdown&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Method&lt;&#x2F;th&gt;&lt;th&gt;Battery Life&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Screen on&lt;&#x2F;td&gt;&lt;td&gt;3.71 hours&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Livi 720p Video Playback&lt;&#x2F;td&gt;&lt;td&gt;3.31 hours&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;mpv 720p Video Playback&lt;&#x2F;td&gt;&lt;td&gt;2.19 hours&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;stress cpu&lt;&#x2F;td&gt;&lt;td&gt;2.12 hours&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h1 id=&quot;recommended&quot;&gt;Recommended&lt;&#x2F;h1&gt;
&lt;p&gt;Only for using it as a base for mobile linux development. Its downstream kernel is well maintained and the software support is great but the hardware is slow and outdated. If you are just looking for a mobile linux device to use then you should take a look at the pinephone pro or even getting a used android device with mobile linux support.&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
