hello friends! new(ish)!

Android ROMs

From InstallGentoo Wiki v2
Revision as of 02:50, 14 May 2023 by >Davyjonez521 (Updated support devices for CalyxOS)
Jump to navigation Jump to search
Warning: The majority of the Android Rooting/Ricing/Unlocking/Etc community is filled to the brim with idiotic, self-contradictory Engrish Pajeetism. Due to this, a majority of things you have to do outside of the common `adb` and `fastboot` commands (such as if you have accidentally bricked your device due to deleting the main system) are virus-ridden software tools that not only glow-in-the-dark, but are often malicious and in a Pseudo-English that you can not understand. They also are prone to failure 80% of the time. Yes, this does include the XDA Forums. If you absolutely are moronic enough to have a Smart Phone as a daily driver and wish to put an (allegedly) non-ZOG ROM on it to get rid of Android Botnet, you should proceed with caution. I'm telling you the truth here: your years of experience with Computer Systems, your PhD in CS and EE, and your own hobbyist experience have not prepared you for the clusterfuck that is the Android Embedded System.

About Android

Android is a mobile operating system designed by Google with surveillance and freedom restriction in mind. It is based on the open source Linux kernel. Android is Open Source (a fully free fork called Replicant exists but only supports a small amount of old devices), the majority of it is licensed under Apache or GPLv2. Android has components that can easily be swapped out that will change the user experience.

Warning: Android is designed with surveillance and freedom restriction in mind. Every known ROM you didn't configure and compile manually from scratch is (at least partially) proprietary and includes binary blobs such as nonfree firmware and drivers (except for Replicant). Note that "Open Source" is often used as a code word for "proprietary" or "almost free"/"<99% free". Android makes it very difficult and inconvenient to be compiled from source, audited, or worked with in general. It requires a NASA computer and will not compile on common freedom respecting hardware such as old ThinkPads, because it requires an insane amount of RAM and CPU performance. The Android source tree is over 30GiB in size. This is approximately x7.5 times worse for auditing/compiling/modifying as Chromium, which has a source tree of approximately 4GiB. Basically every Android phone you can buy comes preloaded with non-removable and non-replaceable (or very hard to remove/replace, involving things like soldering or external EEPROM programmers) proprietary malware such as bootloaders, embedded firmware, and hardware backdoors like ARM TrustZone or specialized "security" chips (like on Google Pixel devices). If you genuinely care about freedom, privacy, or security then you shouldn't use smartphones at all. Especially not Android or let alone Crapple. There is a very good reason why Richard Stallman doesn't have a cellphone. Cellphones are surveillance devices solely designed to control humans and spy on them. They are as bad as brain chips, but inside your pocket instead of your head, and come with way more advanced surveillance capabilities such as cameras and microphones. Consider using Linux Phones or even better, computers running Libreboot and a fully free (ideally FSF endorsed) operating system instead if you care about freedom/privacy/security/etc. For portability's sake, consider a ThinkPad X200. It is very easy to Libreboot, very lightweight, relatively powerful, has good battery life, and will fit into any backpack.

Rooting

Rooting is the process of gaining access to root privileges on your device. It will allow you to modify aspects of the Android system that wouldn't be possible with normal privileges. Rooting your device is a prerequisite of many customization options. Rooting your device may void its warranty. However, there are usually ways to unroot your device in the event you wish to do so, and remove all traces of it ever happening. Keep in mind, that security-wise, rooting your device can be very harmful if you don't know what you are doing, and since all apps will know that you have a rooted device and being able to alter system from userland destroys the purpose of the Android sandbox. Be careful what you install. A solution to this problem is called "systemless root". It prevents apps from detecting that you have access to root permissions, which can also be useful when trying to trick proprietary software that refuses to work on rooted devices into thinking that it's running on an unrooted one. The most popular type of systemless root (and as of today, Android rooting in general) is Magisk.

Bootloaders

Some OEMs lock the proprietary bootloaders of your device. You might have to unlock it, see your device's XDA Forum section for instructions. Some smartphone manufactures such as ASUS or HTC allow you to unlock it with a tool or registering your device with it's developer program. In some cases you can use a LB (locked bootloader) ROM, with limitations that come with it. There are also devices that have a custom dual or multi-bootloader written for them by the developers at XDA. Unlocking the bootloader will often void the warranty of your device, but some manufacturers such as ASUS allow you to keep so called "limited warranty", which means some things won't be fixed by the manufacturer (e.g you hard-brick your phone installing a custom-recovery or ROM).

Custom Recovery

Android devices ship with a "recovery mode" that allows you to flash vendor approved (signed) software and perform a factory reset. A custom recovery replaces that stock recovery mode with one that is much more powerful, allowing you to make backups of the device and flash unsigned custom ROMs. There are two main custom recovery software: TWRP and ClockWorkMod.


What is a ROM?

Despite being called "ROMs" (standing for "Read-Only Memory"), Android ROMs are not actually Read-Only and can be (over)written as many times as you wish (until your flash memory dies or you brick your device). ROMs are different versions of the Android operating system. Many companies make devices with their own ROMs (such as HTC Sense or Samsung TouchWiz) that control the user experience. Although not necessary, downloading and installing a different ROM to your phone may be able to give you more features and increased customization. To do this, you need to root your device to gain administrative access and install a custom recovery, which will install and manage ROMs.

Check the XDA forums, find your device, look at the ROMs section and find yourself a recent and stable system.

Popular Choices

A visual schizophrenic rant about "open source" software that contains proprietary blobs and is not absolutely 100% free

Some popular ROMs and their respective benefits and features include:

CyanogenMod Lineage OS

  • Relatively similar to stock or AOSP (Android Open Source Project) Android
  • Very mature ROM, has a large community
  • Clean and uncluttered (in comparison to TouchWiz, for example)
  • Variety of features (ex. Pie Controls, Quick Settings, etc.)
  • Easy installation process (simply follow the Installer App)
  • If you're not going to install Google Play because of its proprietary nature, use freecygn or LineageOS for microG to remove the rest of the proprietary userspace, which includes Google Analytics in the settings app.

GrapheneOS

Warning: GrapheneOS (also known as "GraphmemeOS") is known to ban users from their matrix rooms for mentioning the existence of binary blobs in GrapheneOS, and/or for mention security concerns about proprietary software having full control over the hardware. GrapheneOS is possibly fed bait and possibly financed by Google, considering that they only support Google hardware; claiming it is for "security reasons" (Google phones including proprietary locked down "security" chips GrapheneOS makes use of), and that Google uses GrapheneOS code (linux-hardened). Daniel Micay (the project's lead developer) is rumored to be schizophrenic. GrapheneOS supports OTA updates, which presents freedom; privacy; and security problems for some people. Due to Android's anti-freedom and pro-surveillance design, it is hard and very inconvenient to compile it yourself, especially every time an update rolls out.
  • Open source mobile operating system claiming to be focused on privacy and security
  • Since Android 10, it is thought to be more secure than the current Apple iOS iterations
  • Seamlessly downloads all security updates in the background (OTA delta-updating is actually better than you might think)
  • File-based Encryption (most customs ROMs won't have encryption and even require you to kill dm-verity which disables verified boot
  • Has a built-in chromium-fork (Vanadium, only for GrapheneOS), which is on par with Bromite security/privacy
  • Claims to Aim to provide the highest privacy and security currently possible
  • GrapheneOS project is know for the linux-hardened kernel and even Google uses it for Android
  • No Root - since user freedom and control is supposedly a security threat
  • Runs on small number of devices, currently supported devices are Google Pixels 4 through 7a.

CalyxOS

  • Focused on privacy and security similar to GrapheneOS
  • Preloads apps such as Signal and K-9 Mail
  • Includes Seedvault for encrypted device backups
  • Supports more devices than GrapheneOS, but still small. Supported devices are all Pixels 3 through 7, Fairphone 4 and SHIFT6mq
  • Backed by the Calyx Institute


Resurrection Remix

  • Based on AOSP
  • Very feature rich, containing most of the features from other ROMs.

Paranoid Android

  • Again, lots of options for customization
  • Not many features anymore, since the Oreo-based OA1 release
  • Very light

AOSP Extended

  • Aims to provide stock experience with customization features
  • Supports more devices than other popular ROMs such as LineageOS

Dirty Unicorns

  • Stopped development as of 2021 (last version supported was 11)

OmniROM

  • Developed by former CyanogenMod community members after it went corporate
  • Multi-window support

Pixel Experience

  • Basically converts your phone to a Google phone.
  • Copies the entire Google Pixel Experience (hence the name).

Bootleggers ROM

MIUI

  • Created by Chinese company Xiaomi intended to replicate the iOS experience.
  • Contains lots of features such as a wide plethora of MIUI-exclusive themes and an easy-to-edit bootscreen.
  • Forces all apps to front due to no app tray, which can be very problematic for some people.
  • One of the fastest ROMs available.
  • No longer open source as of Android 7.0
  • >Botnet

Replicant

  • A project to replace all proprietary components of Android, the only known ROM that is fully free. Only works on a small number of (old) devices, relies on proprietary software stored elsewhere on the device, lacks full functionality such as hardware acceleration.

Other ROMs

There are a plethora of custom ROMs available. For most devices, your best bet is to search the XDA-developers forum for your specific device's subforum, and see what is available and compatible with it.

Installing A ROM

Warning: Do not try and install a ROM by using the steps here. Follow the steps from the place you downloaded it from (aka the XDA thread). Each ROM and each phone are different so make sure you are following the correct instructions for the right ROM and the right phone. Don't skip steps and if something is off, try to work out why before you continue further.

Typically, there are a number of set steps to installing a ROM on your Android phone. Unfortunately, these steps are simply guidelines and can vary depending on what ROM you wish to install. You can typically find specific instructions by searching the for the ROM followed by your device name. Nevertheless, these steps include:

  • Rooting your phone. Rooting is the easiest step in installing a ROM. There should be many guides describing the process for your exact phone model and Android version, which can be found be searching the web.
  • Installing a ROM managing app. This is also quite easy; simply go to the Play Store and download a ROM managing app that appeals the most to you. For the purpose of these steps, I will assume you downloaded the "ROM Manager" App. You can also use an app like Flashify or FlashFire and download the custom recoveries and/or ROMS from XDA. You can also use the fastboot command, by installing the Android SDK Tools, although we won't get too into that right now.
  • Open the app and back up. Perform a manual backup of your device by selecting that option on your ROM Manager App.
  • Flash a Recovery Image to your phone. Within your ROM Manager App, select the Flash Recovery Image option (typically, you should be flashing ClockworkMod Recovery or TWRP).
  • Download and copy your ROM. Find the ROM you want and then download it (if you would like any of the ROMs listed above, simply click on a title to be redirected to the ROM's website). Ensure that the ROM is in a .ZIP file (do not extract!) and copy it to your phone.
  • Flash the ROM. Within your ROM Manager App, select an option that resembles "Install ROM from SD Card" and select the .ZIP file you downloaded earlier. Be sure to select options to wipe data and cache when prompted. Installation should take approximately 5-10 minutes, whereas the first boot should take 10 minutes or more.
  • Optional: Restore from your backup. If you are unsatisfied with your ROM, that's OK. Re-install your ROM Manager App and select an option similar to "Manage and Restore Backups" and select your backup. This should restore your phone to its original state before flashing.

See also