Even if half of the hardware features don't work, having a working, standards based linux image for old cell phones is super useful for prototyping random IoT devices.
An old cell phone is like a raspberry pi, if a pi had a built in touchscreen, camera, microphone, battery, wifi, and gps.
I use old EeePC subnotebooks for that, which I get on eBay for about $40. Compute power, WiFi, wired Ethernet, USB, a keyboard, screen, trackpad, battery backup, and case. With a Raspberry Pi you usually have to add peripherals just to talk to the thing.
When I get one in I immediately install Xubuntu from a USB stick and do a total wipe.
(If you do this, get a real ASUS power supply. The cheapo ones with no brand and no UL certification overheat. Fires have been reported.)
I quit Windows a few years ago (I'm fine now thanks for asking!). It took me a couple of hours from what is this Linux thing to dual boot, and a few months from everything proprietary to everything open source. Freedom feels awesome.
I long for the day where I can have the same feeling on my phone.
I absolutely can recommend LineageOS (used to be CyanogenMod). I installed it for the first time about a week ago on my phone, and I couldn't be happier.
Rooting it is straightforward, and the first thing I did was to install a firewall, and AdAway (so I get system wide ad-blocking and tracker-blocking). It's an incredible feeling that for the first time in forever I'm more in charge of what my phone does.
The only caveat is that the support from LineageOS for less popular phones isn't great (unless you get lucky!) but if it does work on your phone, absolutely go for it.
Also, assuming your device has a good maintainer or maintainers, security patches arrive in days rather than the months-if-ever it can take manufacturers to release updated images and then carriers to roll them out.
Lineage and Copperhead are still AOSP, warts and all, under the covers.
An interesting ticket [1] is to try and boot devices using an upstream kernel. This would enhance the utility of older devices, given the community fork of Ubuntu [2] is abandoning devices stuck on a Jelly Bean kernel (v3.4) without serious back-porting.
A few years ago I've actually built an iPhone app launcher simulator in a few kilobytes which looked exactly the same on a PPC iBook, an x86 Mac Mini or a Windows PC...
If it works on Linux, why not? Everyone is encouraged to work on what they like best, and we will together, as a community, pick sane defaults from the best components we have. See also: https://github.com/postmarketOS/pmbootstrap/wiki/Milestones
Looks like a good fit on first look but I'm wondering about the architecture/compiler fit with the rest of pmOS. Especially with the ARM chips being so varied, a more popular language with wide arch support might be a better choice.
> For Linux folks, sorry guys, the GUI support is not yet ready for prime time, though in the meantime, you could use Wine, Red GUI usually runs just fine on it.
Hope this becomes big, all the best. The beginnings are extremely promising. My biggest motivation behind seeing this succeed is that this is a free software alternative to Android.
Same here. I don't think we'll see an Android alternative so much as more BeagleBoard/Pi like devices. The ARM ecosystem has always bothered me. The reason we don't see more alternative OSes for mobile devices is the total lack of standards.
With the PC/x86 architecture, you had a pretty basic standard. Even if you had things like a PCI modem that didn't work or an unsupported Ethernet card, you could always at least get a Linux distribution to boot on any PC. There are x86 systems that aren't PCs (PS4, Wonderswan, etc.) and it was the PC/BIOS standard that really paved the way for Linux back in the 90s/2000s.
I wish Windows would unlock their bootloaders. ARM+UEFI seems like the perfect platform for easily creating alternative OSes. Microsoft barely has a mobile market. They should really open their devices to the community.
Check out the https://ubports.com/ project, they have continued Ubuntu Phone (which has officially been discontinued), and they have made really impressive progress since then. You can really run it on a phone and have all drivers working, unlike postmarketOS (but we have different goals, remember).
One of our goals is packaging all sorts of user interfaces, and ubports is one of them (but it depends on individual developers, if they actually want to do it, because developers are encouraged to work on what they like most):
https://github.com/postmarketOS/pmbootstrap/issues/62
Isn't this also what OpenWRT/ddWRT have accomplished? I wouldn't be surprised at all if there was a huge amount of synergy between those groups and pmOS since there has been so much work done on wifi and core machine management for the various router hardware that's around.
All embedded Linux projects have a certain amount of crossover, though I suspect a large amount of the work carried out by the OpenWRT and ddWRT teams was on MIPS-based hardware rather than ARM.
Sailfish isn't open enough for me, they have closed source UI components and I couldn't even find the build recipes for the packages they provide when I tried.
They do not support full disk encryption, although it has been asked for by the community for ages.
Also Sailfish tries to abstract components from Android with libhybris. I wanted to have a real Linux distribution, which does not need some sort of Android compatibility layer to actually work, or else it would just run behind Android and the phone industry (as I've worded it in the introduction post of pmOS).
MeeGo has its last release from 2012 (according to Wikipedia), so one would need to update everything first, deal with the legacy stuff that it brings and fully maintain it from there. By using an alive desktop/server Linux distribution all the regular distro maintenance does not need to be done, it just needs to be bent to run on phones.
Finally there is the pmbootstrap component. I've started scripting everything before I developed it and realized, that I need a real program that abstracts all the bootstrapping and cross-compiling. The result is, that you can install it on any Linux distribution, that runs Python 3.4 and OpenSSL, and it sets up all the crosss-compilers and else everything you need in chroots. I haven't seen any other of the existing projects doing something like that.
(We also have the deviceinfo files, and the one-package-per-device thing, which I haven't seen anywhere else.)
I'm not Ollie but I'd say the main strengths of pmOS is that it's lightweight (Alpine is a small Linux distro) and that it seems to aim to be structurally simple (only one package changing per device supported). There's probably some additional strengths in having pmOS as a community-led project, with no need to navigate the bureaucracy surrounding earlier attempts.
Would be interesting to know what can be shared from those projects. For instance Jolla are just preparing to release Sailfish on the Xperia X, I wonder how much assistance that will provide to this project as well. Sony have an Xperia Open Devices programme which at least puts some effort into running on a mainline kernel.
We have used the usb network configuration code from SailfishOS' hybris-boot as reference to implement our own version for the initramfs already.
What these projects can share is mainlining kernels at least, and there could be more. We have heavily documented what we do and I hope that this will prove to be useful to other projects as well.
Meego or Sailfish are niche systems compared to Alpine and it's my understanding they don't graphical applications from desktop Linux systems, though I'd take any GNU over Android.
The problem is phones require a different UX than desktops. That’s the reason why Apple has two similar but different frameworks between iOS and macOS, and windows 10 attempts at cross-device (touch or mouse, your choice!) have largely failed. A menu bar, for example, won’t work well at all on a phone but is ubiquitous for X-based apps.
I'm honestly not convinced of this. I know it's gone terribly so far, but it's not clear to me that that's an interface issue and not an ecosystem problem with the phones in question. A menu bar, for instance, would certainly be unwieldy, but themed with large text it's no different than toolbars which certainly are found on mobile. It would frequently be clunky, but even limited support for the universe of existing software would in my opinion have a massive effect on the usability of any new platform.
Nice! Now we just need approval for use over cell towers.
This is really exciting!
If there is a way for a laymen to help please provide some guidance, I'm comfortable tinkering around with Linux and breaking and fixing things but this looks a bit over my head.
I guess you also need a device that is already supported by LineageOS, right? I have a damaged Huawei Ascend P7 Mini that I would love to try postmarketOS on, but having to port LineageOS first makes it seem like more of a long-term effort than a weekend hack.
No, all you need is the source code to a kernel that works on the phone. This could be from LineageOS, AOSP, TWRP, CyanogenMOD (if they didn't transfer it to LineageOS yet), or any other random repository on github with "kernel" and your device's codename in the repositories name. There are lots of those actually.
Even if you can spend "only" one weekend on it, it would hep porting to your phone immensely. As we document our progress in a device specific page, someone else can pick it up from there and advance your port!
Google had to embrace OEM bloatware to get Android into the market and has been, so far without success, trying to stuff the evil OEM product management "we have to be distinctive" genie back into the bottle ever since.
Google is going to have to save Android Things from the same fate or we'll have billions of unpatched IoT devices.
Without diagnosing Android One, Nexus, Android Silver, etc. and why they all failed - not to mention Cyanogen - why do two guys with a Linux distro think they will succeed?
Who said, that we are "two guys"? I've started with this alone, before I considered pmbootstrap good enough. Since I've released it, we have 40-60 people hanging out in the irc/matrix channel, and a good bunch of them are actually contributing to either this project or other projects with which we share efforts.
The big difference compared with Android and everything based on Android/AOSP is, that we keep the effort for each device minimal. Read the introduction post for more information: https://ollieparanoid.github.io/post/postmarketOS/
Luckily the battery drivers are all included in the Android kernels so far (which we use right now). Besides that, it will work like with Linux on your Laptop - carefully craft energy efficient programs together and you will get a nice battery lifetime :)
All you need is some Linux knowledge, and we will help you with the process in the irc/matrix channel.
Even if you can't get very far, it helps the next guy who picks up your work and starts from there. That's why we document our progress on a device-specific wiki page:
If you have some time to spare, the best way to get there is through contributions, we all do this in our free time after all. With some decent Linux knowledge and help from the community, you should be able to get a port done in most cases, check out the porting guide in the wiki: https://postmarketos.org/wiki
In its current state, this project does not target end users, but fellow developers who find this interesting and want to join in. So if you count these blog posts as releases, it follows the release early, release often principle to get interested developers to know the project and accelerate with joined forces.
This is me right now on my iPhone. Apart from an ssh app, a openvpn app, and my bank's app (which could probably be handled on the browser using KeyChain), I use the browser for everything. It's glorious.
An old cell phone is like a raspberry pi, if a pi had a built in touchscreen, camera, microphone, battery, wifi, and gps.