LineageOS is great, my one complaint is that it is almost never available for the phones I own. You basically have to get phones according to their popularity in a certain subgroup: for example currently one HTC model and two LG models are supported, but close to everything from OnePlus.
I know I can get unofficial builds, put apart from the sometimes quite severe missing features (calling or camera not or only partially working) I don't want to trust random people on a forum to provide a build of an OS without including malware. It just looks like a prime target for all the intelligence services of the world, and a nice target for hackers. With official builds there's at least some accountability somewhere to mitigate this.
> I don't want to trust random people on a forum to provide a build of an OS without including malware
Why is it some communities still work like this? With Android dev, sometimes there's even some source on GitHub, but still a forum post is the main place to find the latest version, with the actual download from some questionable-looking download site. If you're lucky they include sha hashes at least.
I've installed a handful of custom ROMs on 3 or 4 devices - most recently resurrecting my old TF101 to run modern Firefox - but I don't think I've ever seen anything like an automated build for one of these. Really, many don't even post source code.
Is there anyone doing this type of Android dev in a "modern" best practices way like most other open source (public git, CI, maybe issue tracker and pull requests)? Why doesn't this catch on more?
Becauses the cost of doing a CI of Android is astronomical.
(Especially for students)
For my own ROM [1] I spent days and a hundred of euros optimizing the cost of building by trying various cloud providers (fwiw my current best spot is scaleway GP instance with 600GB local SSD). As of today, I'm still at 6€ per builds (For standard ROM devs, that should be cut down to 2€ I'd say). There is simply no way I can afford a CI. (well if someone wants to give me money for that, please do!)
I do my best to isolate components and have at least some kind of CI where I can, but that's hard work (And doing CI is my day job, and I consider myself rather good in it)
Even android's own CI is very far from what you'd call a modern CI. They basically just build master once every hour and pray for the best, and let the build cop fix that. They do have a mechanism where they try to build CLs in batches, but "try" is the keyword.
Sure you can, for 20+€/mo if you want your builds take less than a day. That's still astronomical for the enthusiasts compared to struggling to build on their own PCs.
Because the people doing it are mostly teenagers and hobbyists who do it for free because they think it's fun. They're not professional developers, so they don't follow professional dev best practices.
Well, nowadays, for devices that started from Oreo or later, there is this thing called Project Treble where every device are guaranteed to boot AOSP of the same version.
It is possible to use that to create generic lineage image, that just works on all devices released with oreo or later.
Of course with those generic images, not everything will just work, but calling and camera are a given.
There are unofficial builds of this [1] but lineage doesn't want to endorse this approach, even though that's technically how they support all recent devices.
Project Treble images are less "generic" than they sound - they vary by stock-OS version (Nougat, Oreo, Pie, Q/10), 32-vs.-64 bits, A-only vs. A+B boot.
That's still only one source code for all of them. (Nougat never had treble) the difference there between actually one single image and five is build time. There is no additional development needed.
And that still means that with five images you target several hundreds (probably thousands) devices. More than lineage will ever support
GSIs should be closer to the goal - Lineage and other free software people should really push manufacturers to publish their GSI images to make Lineage porting easier.
> my one complaint is that it is almost never available for the phones I own
This is the reason that I've only bought Google's handsets. Easy to unlock and always excellent ROM support. Flawless LineageOS support and I have also very good experiences of GrapheneOS (former CopperheadOS).
I buy them when the next model (or the model after that) is out for a fraction of the price. Couldn't care less about getting the latest phone these days. At this level they're pretty much all the same to me.
Only thing to look out for is Google's crappy long term support and security fixes (which even GrapheneOS relies on). For my current Pixel 1 device OS updates were supposed to run out over a year ago. Still, Android 10 was "just" released for the Pixel 1...
While popularity of phones plays some part, mostly this is down to the manufacturers. HTC are well-known for providing locked-down devices; even if you're looking for a near-stock experience, HTC tends not to be recommended.
Samsung is similar in this regard, though they get away with it somewhat more than HTC due to demand.
In short, don't complain to/about Lineage. Vote with your pocket and buy more open phones.
>In short, don't complain to/about Lineage. Vote with your pocket and buy more open phones.
I agree with this wholly. Devices like iphones or the samsung devices are riddled with user-hostile features like KNOX, locked bootloaders, pre-installed payment gardens and proprietary blobs all over along with carrier locked, contractually defined handset ownership agreements.
The state of open smartphones is rather nacient, checking the wikipedia list page[0] there hasn't been a real handset launched in numbers for 3 years. I would describe the availability of these devices at best as Very Poor.
That said, HTC is much better for open firmwares than the big ones like apple or samsung. You can just ask and they will return the bootloader key. Try that with Samsung, they are horrible. Samsung is a very integrated vendor, and it can be quite challenging to develop for these very closed platforms, the software sometimes takes ages.
Case in point the Galaxy s6. The verizon locked phones still have no public bootloader unlock tooling afiak. Quite a hassle.
Currently the only Openish devices you might be able to get soonish are ( In the order of my own arbitrary bias )
There some threads here a couple weeks ago and on r/Purism, but it appears they have shipped 0 phones to customers so far. There are just a handful of pre-production units given to employees. Unfortunately it also sounds like they have spent all, or nearly all of the money they raised in crowdfunding, so how they are going to ship all the backorders is unknown.
Always in matters like this, it's about degrees of compromise.
While some will be happy with one of these three options, some will find it a step too far from mainstream, low maintenance high end options.
With this in mind, it's important to make recommendations across the spectrum, to encourage those not willing to go "all the way" to still go some of the way.
In this area, I'd look at Fairphone (not great on the high end cutting edge tech side for obvious reasons, but decent on openness), Motorola and One+ (both more mainstream high-end options but also not quite as heavy on user-hostility as some competitors).
Google are also quite good in this area, on the hardware side, but given their ownership of the software side and general practices in that area, I'd be in less of a hurry to recommend them.
Great list. There's also the option of going for a SailfishOS smartphone because you won't have to abide to FAANG tracking.
Fairphone 3 doesn't quite fit the bill, but I'd still mention it in lists like these as it is possible to unlock bootloader, the phone is modular so can be repaired, and the Fairphone 2 ran a myriad of OSes (#3 just got released, give it some time).
>HTC are well-known for providing locked-down devices
I've been using HTC devices for ages, and so far every one of them was dead-simple to unlock: Just go to the HTC developer page and enter your phone ID, get unlock code and enter on phone, done! Naturally HTC will from there on out decline responsibility for bricked phones, but which company doesn't?
If you're talking about simply unlocking the bootloader, that's as simple on most phones. I'm more referring to the general barriers put up to doing anything with your phone, either before unlocking (the OS itself is restrictively HTC-oriented) or after unlocking (S-ON, etc.)
> Naturally HTC will from there on out decline responsibility for bricked phones, but which company doesn't?
The fact that this is an accepted norm is another part of the problem. Why "naturally"? Some manufacturers (like Google, Fairphone, Motorola on a limited number of phones) don't void the warranty, but even if none did: why do you think this "naturally" an acceptable thing other than it being the norm?
If you don't damage the hardware by flashing, there's no reason it should be out of warranty. If you do "damage" it because of some malicious hardware fuse installed by the manufacturer, then it seems to me that could reasonably be considered a faulty device.
You can actually permabrick the hardware with a non-compatible or buggy flashed OS. It's an embedded device, so the Linux kernel has access to a lot of stuff that it wouldn't, e.g. on an ordinary PC.
> The fact that this is an accepted norm is another part of the problem. Why "naturally"? Some manufacturers (like Google, Fairphone, Motorola on a limited number of phones) don't void the warranty, but even if none did: why do you think this "naturally" an acceptable thing other than it being the norm?
Because I want to be allowed to install software that will damage the phone. Holding the phone manufacturer responsible for code I wrote is not in fact a natural thing to do.
> Holding the phone manufacturer responsible for code I wrote is not in fact a natural thing to do.
I'm sorry but I'm really struggling to understand what you mean by this. What hardware should I be running the code I write on without fear of voiding the warranty.
If it's the fact I wrote the code that constitutes voiding the warranty, exactly who's code should we be permitted to run on hardware we've purchased? Only code which has been written by/provided by the manufacturer themselves?
You shouldn't be running the code you write on any hardware without fear of voiding the warranty. The point of a general-purpose computer is that the code you write might do anything at all. There is no warranty to cover that, and there shouldn't be. You should get over your desire for a warranty.
I've bought a handful of used HTC devices in the past. Only "real" HTC devices are go to dev page and unlock. If they've been through a carrier that isn't T-Mobile, it's very likely permanently not unlockable. Try entering a Verizon-issued HTC or Sprint-issued HTC on the page.
But yet Samsung is the only LOS option that doesn't have Qualcomm's broken-by-design integrated baseband/application processors.
I'm certainly not trying to fanboy here (Samsung cameras suck [0]), just pointing out that all manufacturers are intrinsically inclined to deploy some user-hostile features. "Voting" with your wallet doesn't particularly move their needles.
And drilling down to the most popular phone for your country seems to turn up a fairly well supported model. I ended up with a Moto Z2 Force (https://wiki.lineageos.org/devices/nash) for pretty cheap, and I've been happy with it.
About HTC, I used to run Lineage my One/m7. After upgrading to the One/m9 I switched to AICP, and I'm very happy with it!
AICP really let me down only once: I'm semi-religiously doing the weekly security updates. Once that broke the installation, because it was a major version upgrade (I think Oreo to Nougat). I suppose I should have wiped and installed it manually, but the AICP update center just enqueued it like a regular security update.
I used AICP to extend the life of an LG G2 and was very happy with it. Many may not realize that the builds for each phone can require significant tweaking off the base ASOP builds and much of that is dependent upon vendor documentation and lockdown. That is a lot of work for a small community of devs deadicated to these types of projects. Then consider how many Android phones are out there (Samsung alone has 388 per GSM Arena)
Been using lineageOS 16 on my OnePlus phone for years.
LineageOS has allowed me to use my perfectly fine phone much much longer than the normal upgrade cycle. And this has saved me money.
More importantly my phone remains in use rather than being thrown away and a new one purchased saving about 4 phones from landfill (my guess based on a 2 year upgrade cycle).
Apple with all their environmental goodness claims locks their phones down from both custom rooms and from re-use after donation. Most donated phones have an iCloud lock with no way to contact the previous owner to request an unlock,
> LineageOS has allowed me to use my perfectly fine phone much much longer than the normal upgrade cycle. And this has saved me money.
OnePlus actually does a pretty fine job of supporting even their "older" models. The OP3 and OP3T were running up-to-date "stock" OS's not too long ago.
I remember the first one coming out (and haven't kept track of how many there have been) but I honestly don't think I do anything that needs more than what the first one would give me.
(I actually have a Motorola One, which is on the 'Android One' mostly-stock long-term upgrade committment, and was about £150 new 18mo ago? £100 phone or less would be plenty powerful enpugh, I just paid a bit more to know I'd get the upgrades, and thought the fingerprint reader might be useful. (It is.))
I still have my OnePlus One as a spare phone. I can confirm the only missing feature is a fingerprint reader. Photo and video quality are fine, power is more than necessary, battery lasts long enough...
I wish I could buy another new OnePlus one. Phone lasted me three and a half years before I broke the screen and decided to upgrade. All while never having a case. Phone has a metal bezel that extends out past the edges of the glass and a sandpaper textured back that actually allows you to grip it. Eventually I dropped it one too many times flat on its face. I should have just figured out how to fix the screen. Its amazing how much longer a phone lasts when it's not entirely wrapped in glass. Sure you can buy an OtterBox, but then you're carrying around a brick in your pocket.
There's a middle ground between nothing and Otterbox. I also have a One, and put it in a simple plastic case. It doesn't add that much to the size, but no matter how the phone falls, the elastic parts of the case always make contact with the ground first. I've dropped that phone numerous times and it still looks pristine. If only the battery wasn't slowly dying on me.
It's easy to disable FRP by de-associating any Google accounts from the phone before factory reset. Can iCloud locks be removed with comparable ease by the original owner before they "donate" the device?
> Most donated phones have an iCloud lock with no way to contact the previous owner to request an unlock
If someone donates a phone, isn’t clearing the phone and releasing the “iCloud lock” typical practice? Otherwise the phone has negative value, in that it is simply toxic waste.
LineageOS is very nice, also because it gives you the same experience of different devices. You know that it will be easy to have root, you know you won't have to learn again where every menu is, you don't expect too many surprises.
I had a Fairphone 2 before and I used LineageOS on it. Then I decided to change it, got a second hand OnePlus 5, installed again LineageOS and it's just the same thing, except the phone is faster and doesn't have a few hardware bugs.
I actually choose the OnePlus also because all OnePlus models seem to be well supported by LineageOS, which is probably related to the fact the OnePlus releases quite a lot of things as open source[1] (another good reason for the choice). On top of that, it seems to have a good quality/price ratio. I am quite happy of the choice.
I have used CyanogenMod, and later LineageOS, for quite some time and was pretty pleased with it.
The problem is it seems to be past its prime. It dropped support for mainstream phones more and more and is currenly limited to either very old handsets or rather exotic manufacturers.
The most recent Samsung S series they support is from 2014, almost six years ago. CM and LOS were also popular on the Nexus 4 and 5, these were completely dropped as well and even the successors do not have a recent Android version at this point.
All of this coupled with long delays of moving to the most recent Android version. Many phone were still on Nougat LOS, when there was already Pie.
> All of this coupled with long delays of moving to the most recent Android version. Many phone were still on Nougat LOS, when there was already Pie.
Yep, this is a pretty serious problem; even if you want to purchase a "supported" device, the odds you'll get feature upgrades aren't great. The list of currently supported devices is quite small, and many of those don't receive any maintainer edition - they're just letting the weekly automatic builds happen. So there's not really any hope that the Nexus 5X, for example, will ever get Android 9, let alone Android 10, with LineageOS. It's stuck on LineageOS 15.1.
If you want to go to less trusted ROM sources, like PixelExperience, you can do that... but unlike LineageOS where you're likely to get ignored by maintainers, trying to keep the phone on its latest version means that things are broken half the time. Currently the Nexus 5X is hardly usable with the PE ROM.
It's really a sucky experience currently if you want to buy a smartphone for longevity. Everything is built around the wasteful and expensive 2-year upgrade market, and since that's the most profitable, we're not likely to see improvements soon.
I think that's just because stock ROMS have become good enough that we don't need custom ROMS; except for purposes like de-Googling your phone or removing stuff installed by your OEM.
I'm using because I don't want to give location permission to apps. At least not my real location. I want to have the ability to spoof any detail of my phone.
LineageOS was great a few years ago when I used it with my older Nexus devices, but it doesn't seem as maintained nowadays. There's no images for the newer Pixel devices and no Android 10 support, which is a huge shame.
There's some speculation that the newer Pixel devices will be getting mainline (or close-enough-to-mainline) kernel support. So it should be relatively easy to work on a clean postmarketOS build for those, as opposed to relying on the AOSP-like LineageOS.
Lineage has never been very fast to release new Android versions. If Android 10 was out by now it would have been the fastest turnaround from AOSP release they've ever done.
Had a similar issue with GPS on LineageOS 16. Setting the GPS mode to 'Device only' fixed it for me. My guess is the other settings have a hidden dependency on Google Play Services, causing GPS to silently stop working if Play services isn't available.
I don't think people use ROMs as much as they used to. Especially since mobiles are so fast nowadays that they don't get slow even if the ROM is bloated.
Rooting with Magisk usually isn't enough to trigger SafetyNet failures (which is what most apps use to detect "rooting", among other things). I've been running rooted on my OnePlus 6 since day one without any app ever complaining, including google pay. Custom ROMs will fail SafetyNet typically, but there are ways around it if you want to keep hacking.
I just wish that LineageOS just picks couple of devices that they can support. So, me as a "not highly technical" user can just buy that specific device. The current at https://download.lineageos.org/ where they list every device is confusing and hard to track which is the phone most are working on. Pick one and work on it. With enough people using it, hardware makers will have a strong case to sell device that is "Lineage OS compliant" even if it's shipped with Android.
Like how GrapheneOS has focused on Pixel 2 and Pixel 2 XL.
Oh for the love of god please no. Please don't narrow down the focus on 1 or 2 high end devices and neglect the rest just because a small percentage of people can't be arsed to read the documentation.
LineageOS is an hacker/enthusiast thing, it will always remain niche regardless of how easy to use you make it.
I currently use a Galaxy S8+ and it still works perfectly fine. However, it isn't compatible with LineageOS. I know that the next phone I purchase LineageOS compatibility will be a prerequisite.
I adore LineageOS and official support has now become my #1 factor in choosing a new phone. I've been running it on my Oneplus 5T which was already two generations behind when I bought it and there hasn't been a single day in over a year of ownership when I thought it wasn't fast or responsive enough. It's incredibly stable, there's no bloatware, and I get updates every night, which means I'm always on the latest security version.
If this thing ever breaks or dies I'll probably get a Zenfone 6 (I recall Asus actually openly distributed kernel sources with the express purpose of helping out the open source ROM community) and I'm excited to see how LineageOS runs on that.
Also from my past experience: LineageOS don't care about privacy, Google DNS & internet connectivity checks points to Google servers; probably the telemetry works too.
About quality: very different results, highly depends from device. In mostly cases - camera apps quality is horrible 'cause vendors doesn't provide any code.
At some point Samsung started locking down their bootloaders I think. Device support is based on whether/how many people volunteer to own that branch, so it's based on general demand. Last I checked OnePlus made the best Lineage devices, although with all the recent China stuff you can decide whether you're comfortable with having even firmware from a Chinese company.
I don't know about the DNS, but Gapps don't come preinstalled, so I'd be surprised if it sent telemetry to Google by default. Either way, I'm sure it's possible to disable/redirect those things.
As for privacy in general, they offer a pretty unique feature that allows you to forcibly block granular app permissions after the fact, after granting them for the install. Because this isn't iOS it'll break some apps that don't handle it gracefully, but it's nice to have the option.
But yes, if you're trying to run Android in a privacy-minded way at all, you'll be making some sacrifices.
I remember a ROM distribution similar to this, where the maintainer/company also sold used phones with it preinstalled. I thought it was LineageOS, but looking at the LineageOS site I'm definitely remembering that wrong. Does anyone know the name for what I'm describing?
iPhone user here. Increasingly curious about Android. If I installed LineageOS on a pixel3a, how much information would be going to google by default? How easy is it to avoid google altogether?
If you want to have a working phone, you need google apps (Google Maps, Google Play Services (used for many apps' notifications, location, analytics, etc.), Google Play Store, YouTube app). The Open Gapps project packages these nicely for use with LineageOS, but installation is janky (download a .zip file, install it using TWRP). note: despite being called "open", Open Gapps are proprietary, but packaged using open source software. Using LineageOS in this way is the sane/easy default that most LineageOS users probably choose. Using this method, you must sign in to google play services to install or update apps through the play store. Google play services includes a google analytics api, a a device registration program that generates an advertising id (so does iOS), Google also collects location data associating Wi-Fi hotspot with GPS coordinates (so does iOS). I'm not sure of the full extent of what info google collects, but it is probably substantial, and most probably happens through google play services. You could dodge this tracking by not logging in to Google Play Services and using a play store replacement like Aurora Store or Yalp (play backwards).
Another option is to use microG, a derivative of LineageOS that re implements parts of google play services with open source and throws out the rest. YMMV, but I have used it and my phone worked, excepting some apps' notifications because they use google cloud messaging. I never signed in anywhere with a google account, but I did have google maps installed (I haven't found a good replacement on Android). Google probably got rather little info from me, but they did get my location sometimes.
Very easy; the default is to have zero google proprietary stuff. In fact, you have to jump through some hoops to get Google play store, Maps etc installed, and it's getting harder and harder as Google locks its services down.
Simply set up your default search engine to DDG or whatever you want and your LineageOS phone will send exactly nil to Google.
My understanding is that completely de-googling the phone is somewhat hard because of Google Play Services being a prerequisite for many services. I understand that you can get by without it, but many people find that somewhat of a burden.
The main missing part is a good maps/Waze equivalent. I don't need anything else that's not available on F-Droid. Now I'm a GNU/Linux user of strict observance (depends only on Free Software!), so I probably don't have the same requirements as most.
I know I can get unofficial builds, put apart from the sometimes quite severe missing features (calling or camera not or only partially working) I don't want to trust random people on a forum to provide a build of an OS without including malware. It just looks like a prime target for all the intelligence services of the world, and a nice target for hackers. With official builds there's at least some accountability somewhere to mitigate this.