Lineage OS notes

is the hardware locked down?

levels of software freedom

freedom amount can replace bootloader can replace recovery or OS can gain root access
great yes
(never seen this)
yes: fastboot oem unlock yes
good
("factory unlocked" devices?)
no yes: fastboot oem unlock yes
OK
("factory unlocked" devices?)
no yes: by asking manufacturer for a bootloader unlock key
(they could take down the unlock website at any time)
yes
not good
(devices for a specific cellular carrier or Amazon?)
no maybe: via exploit
(exploits usually get patched at some point)
maybe: via exploit
bad no no maybe: via exploit
really bad
(cellular carriers' ideal world)
no no no
when buying an Android device, going below the "OK" level is not advised. unfortunately, the vast majority of devices will be at "not good" or worse (at least in the USA)

how to check how freed a device is:

  1. go to the Lineage OS device wiki
  2. click on a device
  3. click on "How to install Lineage OS on ..."
  4. check the steps:
    • if there's a link to a random website or XDA Developers, be afraid. the device will probably need an exploit (not good)
    • if there's fastboot oem device-info or fastboot flash unlock unlock.bin, the device needs an unlock key from the manufacturer (OK)
    • if there's fastboot oem unlock, the device can be unlocked freely! (good)

detailed device search

  1. get the Lineage OS wiki source: https://github.com/LineageOS/lineage_wiki
  2. cd lineage_wiki/_data/devices/
  3. search through the yml files for desired attributes
    • SoC is ARMv8: find ./ -type f -exec grep -EiH 'architecture: arm64' "{}" \;
    • SoC is Snapdragon >= 820: find ./ -type f -exec grep -EiH 'soc:.*Snapdragon 8[2-9][0-9]' '{}' \;
    • SoC is Exynos and ARMv8: find ./ -type f -exec grep -EiH 'soc:.*Exynos.*(5[4-9][3-9][0-9]|[6-9][0-9][0-9][0-9])' "{}" \;
    • screen size >= 5.0in: find ./ -type f -exec grep -EiH 'screen:.*[ (]([5-9]|[1-9][0-9])\.[0-9]+ in' '{}' \;
    • screen size >= 5.5in and < 6.9in: find ./ -type f -exec grep -EiH 'screen:.*[ (](5\.[5-9][0-9]*|6\.[0-9]+) in' '{}' \;
    • screen size < 5.0in: find ./ -type f -exec grep -EiH 'screen:.*[ (][0-4]\.[0-9]+ in' '{}' \;
    • unsupported devices: find ./ -type f -exec grep -EiH 'channels: \[discontinued\]' '{}' \;