The frustrating part about this is that it's getting more difficult to flash ROMs onto most phones, not easier. For instance, all Samsung Galaxy flagships since the S6 have a locked bootloader. If you have the US-based Snapdragon models, it's nearly impossible to unlock them and load custom ROMs. And if you somehow do, Samsung caps your battery at 80% or so.
There are notable exceptions. The OnePlus phones are easy to flash, as are Sony Experia models. But for the average person just looking to get a few more years out of their device, the OEMs have made it very clear how much they resent you keeping your phone beyond the two year mark.
LG have made some nice improvements to allowing bootloader unlocking on some of their models. It's still definitely well beyond what "normal people" would be able to do, but it's nice to see from a technical standpoint. At least one model from each of the LG V10/V20/V30 and G4/G5/G6 are able to be unlocked in an official way.
> And if you somehow do, Samsung caps your battery at 80% or so.
That sounds suspiciously like "we don't want you running firmware that causes that battery to explode on a device that features a Samsung logo prominently on it." Given their recent history, I'm not sure I blame them for that specific bit.
> With Android being the concrete pillar of stable OSes that it is, I would blame them for building a phone that can explode because of a software flaw.
Obviously they didn't build a phone that can blow up on purpose, and you don't actually have to have a real chance of it happening for other models for your legal department to tell you to cover your ass really, really well. It's not like these batteries haven't exploded in other contexts as well. Li-Ion batteries have been known to explode for a long time now. The problem with Samsung's phones was a defect that caused it to be far more likely. Also, the difference between software and hardware is much more fuzzy these days when talking about firmware. Some chips (what you might consider hardware) in the phone have their own little operating systems embedded and running in them.
The Xperia phones are very developer hostile if you ever intend to return back to the official software. Unlocking the bootloader wipes the TA partition which is required for camera and many other features on stock ROM.
I know that Xperia doesn't sell in the US. Assuming it sells elsewhere (Asia maybe ?), is the camera such a crown jewel for Sony to go through such lengths to punish their buyers ?
Only if the device has a known root exploit that lets you back up the partition before properly unlocking. For example, this is not yet possible on the latest XZ1 series.
A safe bet is to buy whatever device google sells from the google store. All the nexus and pixel devices sold directly by google have unlockable bootloaders. Recently, google has made things worse by selling ones that can't be unlocked through carriers. From a security standpoint, google's devices are also the only ones that let you verify a third party firmware with your own keys etc. At least that's one of the reasons cited by copperheadOS. I don't think other manufacturers have that feature, even if they allow unlocking the bootloader.
That is a different issue. That's probably because of the A/B system that Pixels use. Lineage hasn't implemented that for the original Pixel either. That is not a limitation to modding per se. The real limitations to porting software, once you get beyond the bootloader, are always blobs, free drivers, kernel updates etc. At least with Pixels, they use treble. So you should be able to build AOSP with their provided blobs without too much trouble.
Actually bootloaders are not always as perfectly secure as they may seem [0].
For example, McBitter from postmarketOS is a low level reverse engineering contributor, who made remarkable progress on opening up the bootloader of Mediatek devices [1]. People who want to contribute on that level, check out the #postmarketos-lowlevel ("the kernel is high level for us") chat [2].
I got my OnePlus stuck in a boot loop after installing Oxygen OS. OnePlus support scheduled a remote session and managed to flash it back to stock. I was very impressed, I had assumed they would refuse the help because I had flashed it with an unofficial OS.
HTC also offered easy unlocks since the One m7 (and probably before). Nexuses/Pixels of course are the easiest. To me it feels like Samsung is the exception here.
I had both an HTC One M7 and an M9, and while yes, unlocks are easy, that is only true if you buy directly from HTC.
OTOH, if you wanted to use them on Verizon's network, you needed a Verizon-branded HTC One, which had a locked bootloader. Getting around that usually required paying $25 to run some tool called Sunshine that could abuse an exploit to unlock the bootloader.
So where the OEM's allowed flexibility, the carriers swooped in to fill that void.
> I had both an HTC One M7 and an M9, and while yes, unlocks are easy, that is only true if you buy directly from HTC. ... OTOH, if you wanted to use them on Verizon's network, you needed a Verizon-branded phone
So if you buy a HTC phone, it's easy to unluck? And if you buy a Verizon phone, it's hard to unlock?
How can you blame HTC for the shortcomings on a defective phone you bought from Verizon? That's like me blaming Lenovo for problems I have with the MacBooks and OSX at work.
Firstly, I didn't blame HTC, I blamed Verizon, hence "So where the OEM's allowed flexibility, the carriers swooped in to fill that void."
Secondly, throwing the issue of "blame" aside and trying to imply that the planned obsolescence phone is somehow the fault of the consumer, you need to consider that until very recently, you had to buy a specific hardware variant of the phone if you wanted your phone to work on Sprint or Verizon, because of the CDMA networks. It wasn't a matter of being a "Verizon-branded" phone. If you wanted to use the phone on Verizon at all, you had to buy the Verizon-specific version (even through HTC directly), and if so, the bootloader was locked.
Not everyone has the luxury of being able to switch carriers if your current carrier is an ass, because they might be the only one servicing your area. So if you're on Verizon and you want a smartphone, there was a time when that meant you were likely bootloader-locked.
>> it's getting more difficult to flash ROMs onto most phones, not easier
Turns out, that is a niche use of a phone. Few people really need it.
But, some of them post on Facebook and Twitter "here is how to flash your phone and get unlimited games"
... and then many of those get bricked or attacked by viruses, and/or get otherwise disabled, and now the provider needs to deal with the tech support issues.
Plus, the ads may be redirected to someone else.
So yeah, if I was Samsung or Apple, I would not want you to flash the ROMs.
May this be the way open source arrives to the masses? As a solution against planned obsolescence?
If people gets used to giving their old devices a second life by lending their old devices to a fellow geek, to install this "weird app" that allows them to keep using it, that could become huge exposure for FLOSS operating systems.
It's the exact same story with Windows and Linux. Many old PCs running Windows XP that cannot handle Windows 7's minimum requirements are being wiped by geeks and are installing Linux Mint, Ubuntu, Xubuntu, or some other distro onto these devices.
As long as Linux, postmarketOS or LineageOS are the "weird apps" geeks install for their friends' devices, I highly doubt they'll ever gain any real exposure outside of tech circles.
In fairness though I'd say the issue is far less pronounced with desktop and laptop hardware than it is with mobile devices.
I can get a PC from 10 years ago and install Windows 10 and it'll most likely run absolutely fine - really rather well in fact. On the other hand, many people would probably be quite frustrated if they had to use a phone that's even three or four years old.
It amazes me how people react even when I tell them I'm still using an iPhone 6 Plus that I bought in 2015.
Galaxy Note 2 here. What are they at, the Note 8 or something? My device just won't die after I put Cyanogenmod on and stopped things from autostarting/wakelocking (battery life is great again).
Just like my bluetooth headphones. I had to re-solder a weak connection twice, but after adding some hot glue to keep it in place the second time, it hasn't broken anymore. The battery life is still better than advertised, and I've been using it daily for 3-4 years.
"Throwaway" is a culture, contributing to the problem just as much as (or maybe even more than?) planned obsolesce.
Problem with iPhone is when Apple decides to pull the plug with iOS support. Android devices suffer from the same problem with their vendor, but then you can flash it with e.g. LineageOS (+ microG if you wanna avoid Google) or postmarketOS.
True; although Apple keeps supporting their old phones for quite awhile. iOS 11 still supports the iPhone 5S, which came out in September 2013. Only 6% of ios devices use an ios 9 or earlier[1].
4.5 years is pretty good in this market - last I checked you were lucky to get 2 years of software updates from most android vendors. According to usage stats about half of all android phones are stuck on an operating system from 2014 or earlier[1]. I don't want to think about the security consequences of most android phones never having security updates installed.
4.5 years still is nothing on postmarketOS's 10 year target. Bravo.
Yes, my mother has that phone (I recommended it) not only does it still get updates it also has a small form factor with the latest one in that family being the iPhone SE. Downside is its expensive to get a battery replacement, and you're probably due after 4,5 years.
Just because phones run an old Android version, doesn't mean no patches get backported. For example, the official firmware for FP2 runs Android 6 with a patchlevel of (last time I checked) Dec 5.
Furthermore, other "postmarket OSes" such as LOS already extend life. The problem with these is firmware updates for chips, and hardware bugs.
> Just because phones run an old Android version, doesn't mean no patches get backported.
It’s a bit of a separate problem but I’ve seen an awful lot of ignored software update notifications on the phones of relatives over the Christmas break. Is there data on the install rate of security hotfixes?
that's the dumb (sorry) idea that hold Linux on the desktop for so long.
lots of time wasted without any big increase in adoption.
companies making the devices standards (apple, google, samsung) all make lots of money from ads, and subscription services. both of those things get huge advantage if you can lock in your customer.
we are still living the main frame age on mobiles. even if you can install your os on old and new devices, it doesn't matter, because they can cut you out of whatsapp or youtube (see Amazon firephone)
the os is irrelevant to adoption. but it must have the or dictate killer apps. when foss solve IM, social and ugc video streaming, then the personal computer era will begin on mobiles.
Keep in mind that the project at its current state does not aim at consumers, it's looking for fellow hackers who want to join the effort to create a sustainable alternative OS that can be used on phones that would otherwise be thrown away, and simply to have fun while doing that [0].
Regarding the walled-garden services like YouTube or WhatsApp: From a privacy and security point of view it would be better to avoid these altogether and switch to open source and decentralized services like Matrix[1] instead (for instant messaging/VoIP).
I know, for most people it is not feasible to convert all your friends to such services, but even in that situation it is possible to use open implementations that work on Linux. Check out this list [2] ("Apps that only work with proprietary services" table at the bottom).
Going further, when there's enough interest by one or more individuals to package anbox[3] for postmarketOS, it is possible in theory to run regular Android apps (NewPipe[4] is just one example of a great open YouTube client, that you can use on Android today).
But there's the chicken-and-egg problem. IM was solved for a long time, yet the masses didn't adopt the FLOSS version, because that required everyone switching at the same time.
Yet if people get to use the platform anyway as a secondary device, this could get these tools a significant steady user base that might grow to critical mass if/when a security/privacy scandal happens, disparaging the stablished players.
Ancient devices don't cease to work (unless their hardware fails, of course). They just don't get upgrades and new features (new apps, etc etc). A factory reset (or reflash) may be required to get rid of cruft, then reinstall apps from backup - but afterwards it would work.
If the postmarketOS would offer more features (mostly I think of apps) than some ancient Android, this may be a reason to replace the OS. But I really doubt it would happen. It would require a lot of effort to get anywhere close to Android 4.x ecosystem.
And I believe most users would prefer old apps (downloaded as .apks from random archive sites) to some security patches they frequently don't even know about.
Some old devices do cease to work or they start working more slowly. Apple slows down phones with old batteries, for example, even when they are plugged in. Many of todays devices also require online accounts and some completely stop working when those online services aren't available.
I'm kinda dealing with that with a modern company right now. My Ring doorbell doesn't work without Internet access and I can't get it for 7 days or so. I've got a home network setup, but no Internet. The Ring device won't even ring the bell on my house when you push the button, even though it is wired strait in... Now I'm off topic a bit.
The main reason for android phons to slow down is the storage, most of the android phones run cheap emmc chips, even some of the more high end ones. Even with a new battery and an AOSP rom, my Nexus 2012 is unusable even when I reverted to the version of android that that tablet came with, which is JB. So I don't believe that this will solve the hardware obsolescence problem.
I have a couple unused phones lying around doing nothing. One is cheap "GoClever" phone i bought a few years ago and had it die or something some years ago (it is most likely fixable, but my mother had a phone she didn't want anymore due to upgrading and i got hers instead) and another is the ill-fated ZTE Open with Firefox OS which i bought the instant it was available (through ebay because nobody local would have it available).
What i'd really love to do is to replace the entire OS from the ZTE Open one with a barebones Linux, and X server (no Wayland) and a few custom apps to use for music playback, note taking, etc. It was on my mind since i actually got my hands on it and saw how an awful idea was to have an OS that is built around "web applications" (i already knew it, i just hoped it wouldn't be too bad and wanted it for the novelty of having a phone with the Firefox logo :-P). The hardware is theoretically more powerful than the PC i had back when i played Quake 2 in full software rendering mode, yet it was barely usable due to everything being slow (i've actually lost calls because the UI was frozen).
I see from the hardware list that some related devices seem to be supported so at some point i'd like to try doing that. It is more for a "here is how to actually make use of hardware resources without sucking" personal statement than something i really need (my 1st gen iPod Touch still works fine after all), so it might take a while for me to bother trying :-P.
May I know why that is? By all accounts, Wayland is more adapted to embedded devices, with a cleaner architecture. I don't think that you need features such as xdraw, printer and gpu drivers, input handling or a lot of what isn't display related baked into the compositor.
I tkink that PostmarketOS could actually fit your goal quite well (you can run a variety of desktop environments on it, with Xorg o'er Wayland, including lightweight ones such as i3). But of course, the project is still in its infancy, although the community is pretty welcoming, and would probably be happy to help you get started ;)
I can understand why people are hesitant with Wayland, because they look at things like systemd (which is still a usability nightmare, although it does make packaging much easier).
I recently ran Wayland/Weston on my home theater PC running Void Linux. For the most part it semi-worked. I have few native wayland apps, so almost everything ran through xwayland. Steam was weird; as the mouse was offset about 300px to the right and down. I'd have to hover away from stuff to click on it. Kodi would often Flicker (my HTPC just uses Intel ingratiated graphics). Most of the Games (both Steam and Humble) worked fine though.
Weston, the reference implementation, just isn't that great. I ended up going back to X11/Gnome3 after getting sick of the graphics glitches and bugs, and forgot how terrible gnome is now (I've used i3 on my desktop for years).
I might go the Wayland route with Sway (i3 clone for Wayland) on my dev box, but Weston was honestly still too buggy for prime time on my media pc. I do agree though, X11 is old and awful and Wayland is a big improvement over X11. But I do run X11 apps remotely over SSH (something the wayland people assume no one does) and when asked about it, they kind just hand wave everything away like someone just needs to write a plug-in and it will work.
postmarketOS might be the big push to really get Wayland mainstream. I'm really impressed by postmarketOS and hope it will be what Linux was for the x86/PC in the mobile world. You could install Linux on everything back in the 90s/2000s. ARM is a cluster fuck of random shit connected to random pins that are different on every SoC. This is a real major step to true alternative mobile OSes.
Two reasons, one is that i don't like Wayland - partially because its simpler architecture comes from pushing the complexity to the clients, but also because i see its design as very short sighted (e.g. the wl_shell API provides a function to create a popup and grab the mouse cursor at the same time and that is the only way to create popups in the core API because the designers only thought about menus, comboboxes and the like and only defined functionality for that - in contrast X just gives you generic functionality).
The other reason is that i am writing an X toolkit and so i already have a lot of X code i can use (as i wrote, "custom apps"). For the uses i have in mind Wayland could probably also work, but i'd need to write a lot of extra code that i'd rather avoid writing.
PostmarketOS does indeed look like what i have in mind, but as i said, i'd rather have pure Xorg without Wayland (it should be doable since, AFAIK, both should use the same graphics stack). It is something i'll try looking into at some point.
Nice to see open GPU drivers freedreno and etnaviv being able to run complete desktop environments. Looks like lima might join the party too, eventually https://github.com/yuq/mesa-lima/issues/29
Is there good documentation anywhere regarding the minimum set of blobs (kernel, HAL, modem, display etc drivers) necessary to gut an Android device back to its bare shell? I love these alternative OS projects, but really I think a lot of that effort may be misspent for non-purists like myself. Maybe sometime after a simple, basic UI and apps are running on the phone, then a complex project like Microsoft's Android app sandboxing could be attempted
Would love there to be something that provided just enough glue code between HAL and, say, Qt, alongside a bunch of shell scripts for gutting images of common handsets. But getting there myself, I've really little clue about this stuff, but I'm sure there is tribal knowledge buried all over the forums the Android dev community use
It's not super clear which blobs are needed for particular devices - and it's different for all of them. I'm not aware of a single place to find what's needed - though the LineageOS device repositories can help a lot.
The plan, especially when it comes to modems and graphics acceleration, is to package these firmware blobs separately. Then, a user can choose at install time if they're alright with non-free blobs running on their phone. This has already been done for many phones for WiFi/Bluetooth chipsets.
This method also has the advantage of letting us move quicker - we don't need to wait years to reverse engineer modem firmware, or be required to spend the time mainlining every device we want to add in order to get the "essential" features for a phone.
That depends on the chip and what you really think you need.
Me personally I'm fine with framebuffer drivers, I don't need hardware acceleration. So that needs no blobs. For some Qualcomm chipsets you can get 3D acceleration working without blobs using freedreno.
I personally started working on getting the qualcomm modem userspace blobs working under pmOS[0].
If you just want pretty much everything to get to work, there's also the halium project[1] which runs a stripped down android in an LXC container to provide that stuff. This could easily be ported to pmOS too.
It really depends on how libre you want your phone to be. Android applications could probably be run on pmOS too using e.g. Anbox[2].
I mean what I really want is the ability to have my phone just be native Linux/GNU with android in a container. Ideally I'd like to be able to have 2 androids in a container so I've for somewhere to dump work apps and other invasiveness.
It varies per device, but the wiki also has some information about which firmware is needed/where more research needs to be done/which free software re-implementations exist.
Most manufactures when they had small consumer base were developer friendly, it is when they gain significant market they stop being one.
I can think of few technical reasons as well,
1. To sustain competition they have build their IP (e.g camera blob, Personal Assistant) .
2. Security as a commodity, especially for enterprise customers.
OnePlus has deep relations with XDA community, Oppo's Find series phone was actively contributed and If I'm right; the mods got free devices then. Oxygen OS team was by itself Paranoid Android team.
OnePlus devices could be the best 'modder' friendly phone right now, the question is how long they would be able to keep it that way.
Really cool to see Glass hit this list, I'd love to break mine out again if I had a way to use it without Google tracking.
The thing I recently got to play with wearable computing is a Vufine+ and an Intel Compute Stick, both of which can be powered by a regular external phone battery.
If you are interested in this and have some time to spare:
You should be able to flash something like your regular desktop Linux on it already. It's no where as functional as the original device was by now, but it's free of the tracking. From there on you could try to make it as functional as you need it to be.
Project is really cool and I am looking forward to it. Still, rather than make 10 different desktop environments run, wouldn't be better to implement critical features that are currently missing (i.e. calls)?
I think ollieparanoid, who founded this project and puts a ton of work into it has a great answer to a very similar question someone had on reddit a while back[0].
I fully agree with his philosophy. This is a project ran completely by unpaid volunteers. And the most important thing is to have fun while working on pmOS. If people have fun getting 10 different desktop environments to run, why not?
If you look at his comment from 6 months ago, only one phone had wifi support. Now, quite a few do[1].
I've read similar comments from OpenBSD devs. They get the best contributions when people work on something they simply want to work on, instead of telling people what needs work.
Progress on getting cellular working is tracked in this issue here[2], if you're curious what the state of that is.
I suspect there's a rather large use case that doesn't involve making calls. I've got a few cell phones hanging around the house in case a project like this makes them useful for something again, and I have no intention of making calls with them. After all, a mid-grade android from 3 years ago is still a computer that on most if not all specs thrashes what I called my desktop in 2000. There are uses for such things.
In contrast, those are the reason that I carry a phone and pay for service. An internet connection is a bonus, but the phone features are the only thing I use it for that I wouldn't rather do on a more traditional computer.
Long story short: The lack of HW acceleration made the UI (and thus everything else) extremely sluggish. It wasn't even near usable for anything you'd like to do on a regular basis.
It was a good gag to confuse co-workers with though.
I think it can be done, since there was the android on iphone project. In theory, one would need to find the Linux kernel fork that was used at the time, treat it as "vendor" kernel and start the port:
There is the iphonelinux project and we have the beginnings of a port to the ipod touch 1G, but the main issue with that port is that we can't get openiboot to build with GCC6
Again, I'd like to have some sense as to the relative difficulty involved vs. the PS3 break which, IIRC, was the same kind of cryptographic signing issue ...
Perhaps Apple just doesn't make those mistakes with their keys ?
> I understand they only run signed boot loaders / kernels / etc., but that was also true of the PS3 and that was broken wide open some years back ...
That was due to security flaws in Sony's software, though. Apple's software may have security flaws, but if it does, the flaws apparently either haven't been found yet or haven't been publicly published by anyone who did find flaws.
Most phones consist of similar chips, so as long as the Linux kernel has support for these, it is possible to run something like postmarketOS on closed devices as well.
It is harder, sometimes you need to hack the bootloader to get it done (or kexec-boot from the proprietary kernel like done on the PS4, get creative), but this has been done enough times for various devices. So with enough manpower and dedication at least booting a Linux-based OS is possible (not saying that you will be able to use all the hardware).
Thanks for letting us know, we'd love to fix that. Which browser and OS do you use, and how did you turn on a dark theme there?
Bug reports can be made here btw: https://github.com/postmarketOS/postmarketos.org/issues
But you can also reply here, then we'll open an issue for you.
Tangentially related: I keep wondering what to do with old Apple devices. I have an old 3rd gen iPad that is intolerably slow, but has such a nice form factor and screen that I hate to get rid of it.
If someone made a swap-out logic board to Android-ify these things, I suspect there’s still got to be tons of them laying around.
If you have some time to spare and want to learn something new, just try to get postmarketOS on one of them. Here are some loose ends to start with (not only iPod related, Apple in general): [0]
If you get stuck somewhere, the community is happy to help you either in the matrix/irc chat[1] or in GitHub issues[2].
Oh interesting, on my cursory glance I assumed PostmarketOS was only for rootable Android devices.
This might actuall be pretty fun to try and get my 3rd gen iPad going. It’s barely usable as is, so no great loss if I brick it. Even then, I assume the screen is still usable for something.
Does postmarketOS use android-based binary blobs, and what does it have over such projects as Google-Free LineageOS (as in, if you don't flash opengapps) or Replicant?
The biggest difference is, that Android's build system is completely avoided as of now. The system consists of small packages, and you can easily modify those parts without rebuilding the entire system.
Regarding blobs, right now there are no blobs running in the userspace. Firmware blobs are needed for Wifi for example. There are plans to both allow proprietary blobs in userspace (to get accelerated graphics for people who want that trade-off), but at the same time to make these entirely optional.
Relevant part of the post[0]:
"In contrary to most Linux on smartphone projects, almost all these photos and the video are taken off devices which do not run proprietary code on the main CPU. The only exception is the Droid 4, which @NotKit owns. He is actively working on making proprietary Android drivers usable in postmarketOS with libhybris. Libhybris allows devices lacking FLOSS drivers to make full use of their hardware."
"While we don't welcome binary blobs and prefer to sandbox them where we ship them at all, we embrace this solution for people who want it. However we intend to keep closed source components entirely optional, so you can run pmOS as libre as you want it."
For most devices, we're running the vendor forks of the Linux kernel (mostly Android). The source of all of them is available, just like the mainline Linux kernel.
With that being said, the stock Linux kernel and its vendor forks contain obfuscated code and even (small) blobs. To get rid of that we would need to package something like the Linux-libre patchset [0]. From what I know, no one is planning this currently, but if someone is interested in this, I don't think anyone in the community would be against having this as option.
I would even subscribe a recurring donation via patreon or something similar if only they at least promised to get calls working in at least one model.
Good idea, added it to the potential apps wiki page [0] (feel free to add more apps!).
The upcoming Matrix client for the open and recently funded Librem 5 phone[1] also looks promising. It will be one interface for doing both regular calls, and calls over the encrypted Matrix protocol over network. In theory we should be able to package that as well, since Librem 5 just runs on a Debian derivative.
I guess some project (especially ones where work is done on a voluntary basis) have a different scale of value, that is it's more important to first have stuff work and then make it look appealing or making it usable by non-technical users.
EDIT: I think in this case a more interesting question would be: why don't people with a better aesthetic taste or UX knowledge volunteer for these kind of projects?
There are notable exceptions. The OnePlus phones are easy to flash, as are Sony Experia models. But for the average person just looking to get a few more years out of their device, the OEMs have made it very clear how much they resent you keeping your phone beyond the two year mark.