Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ The files in `upstream/` get rewritten by a bot every Monday, so any change you

## Reporting what works

The [form](https://github.com/NotAFlightRisk/android-rom-compat/issues/new?template=report-feature.yml) is the easy way. Pick a device and ROM, set whatever you've tried, and a bot opens a pull request for you with your name on the commit. If something's missing or doesn't add up, it comments on the issue saying what - just edit the issue and it'll try again. The "Report" link on each ROM row of a device page puts the device, its codename and the ROM in the title, so you can copy them across.
The [form](https://github.com/NotAFlightRisk/android-rom-compat/issues/new?template=report-feature.yml) is the easy way. Pick a device and ROM, set whatever you've tried, and a bot opens a pull request for you with your name on the commit. If something's missing or doesn't add up, it comments on the issue saying what - just edit the issue and it'll try again. The "Report what works" button on each ROM on a device page fills in the device, the ROM and its Android version for you.

Rather do it by hand? Add a `features` section to `data/support/<codename>/<rom>.yml`, making the file if it's not there yet. Anything you leave out shows as unknown, which is fine.

Expand All @@ -40,7 +40,7 @@ features:
widevine: L3
```

`android` and `build` are what you tested on, `checked` is the date, and `variant` is for a ROM's other builds (like LineageOS for microG). A report shows as stale once the ROM moves to a newer Android than yours, or `checked` is over a year old.
`android` and `build` are what you tested on, `checked` is the date, and `variant` is for a ROM's other builds (like LineageOS for microG). Once the ROM moves to a newer Android than yours, or `checked` is over a year old, the site says when it was last checked.

The keys come from [`features.yml`](../data/features.yml). Most features use these:

Expand Down Expand Up @@ -109,7 +109,7 @@ source: https://example.com/devices/tegu
install: https://example.com/devices/tegu/install
```

`status` is `active`, or `discontinued` once the ROM stops building for it. `status` and `source` are the only must-haves.
`status` is `active`, or `discontinued` once the ROM stops building for it. `status` and `source` are the only must-haves. `maintainer` can also be `{ name: someone, link: https://github.com/someone }`, to link to them.

A new ROM lives at `data/roms/<rom>.yml`. Keep that name, and any variant key, to lowercase letters and numbers - imports are named `<rom>-<variant>.yml`, so a hyphen in either splits in the wrong place.

Expand Down
2 changes: 1 addition & 1 deletion .github/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

Covers GrapheneOS, LineageOS, CalyxOS, /e/OS, crDroid, iodéOS, Evolution X and PixelOS, official builds only. Every bit of data lives as YAML in [`data/`](../data), so fixing a mistake just means editing a file - no coding needed.

It'd rather leave a gap than guess, so anything nobody has checked shows as unknown. A report goes stale once the ROM moves to a newer Android than it was checked on, or when it's over a year old.
It'd rather leave a gap than guess, so anything nobody has checked is left out, and shows as unknown in the table view. A report goes stale once the ROM moves to a newer Android than it was checked on, or when it's over a year old.

---

Expand Down
10 changes: 10 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"@astrojs/sitemap": "^3.7.4",
"@fontsource-variable/roboto": "^5.3.0",
"@fontsource-variable/roboto-mono": "^5.3.0",
"@lucide/astro": "^1.52.0",
"@sentry/browser": "^11.4.0",
"astro": "^7.3.5"
},
Expand Down
2 changes: 1 addition & 1 deletion public/icons/broken.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion public/icons/ended.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion public/icons/na.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion public/icons/note.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion public/icons/partial.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion public/icons/sort-down.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion public/icons/sort-up.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion public/icons/sort.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion public/icons/stale.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion public/icons/unknown.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion public/icons/working.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 14 additions & 1 deletion schema/upstream.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,20 @@
"status": { "enum": ["active", "discontinued"] },
"channel": { "enum": ["stable", "community", "beta"] },
"android": { "type": "number", "minimum": 1, "maximum": 99 },
"maintainer": { "type": "string", "minLength": 1 },
"maintainer": {
"anyOf": [
{ "type": "string", "minLength": 1 },
{
"type": "object",
"required": ["name", "link"],
"additionalProperties": false,
"properties": {
"name": { "type": "string", "minLength": 1 },
"link": { "$ref": "#/$defs/link" }
}
}
]
},
"relock": {
"anyOf": [
{ "enum": ["yes", "no", "unknown"] },
Expand Down
7 changes: 6 additions & 1 deletion scripts/import/sources/evolutionx.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ export const typeOfName = (name) => (/\b(pad|tab|tablet)\b/i.test(name) ? 'table

export const dateOf = (seconds) => isoDate(seconds * 1000);

const maintainerOf = ({ maintainer, github }) =>
/^[a-z\d-]+$/i.test(github ?? '')
? { name: maintainer, link: `https://github.com/${github}` }
: maintainer;

/** Brand, device and row from one builds/<codename>.json, or undefined when it has no builds */
export function parse(json, { codename, branch }) {
const build = json.response?.[0];
Expand All @@ -34,7 +39,7 @@ export function parse(json, { codename, branch }) {
const row = {
status: build.currently_maintained ? 'active' : 'discontinued',
android: androidOf[branch],
...(build.maintainer && { maintainer: build.maintainer }),
...(build.maintainer && { maintainer: maintainerOf(build) }),
...(build.timestamp > 0 && {
latest: {
...(build.version && { version: String(build.version) }),
Expand Down
38 changes: 38 additions & 0 deletions src/assets/logos/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Logos

Single-colour marks used to identify each brand and ROM. The site paints them as a CSS mask, so they always show in the current text colour.

Brand and ROM names and logos are trademarks of their respective owners and are used here only to identify them. No endorsement is implied.

| File | Source | Licence / terms |
| --- | --- | --- |
| `brands/asus.svg` | https://unpkg.com/simple-icons@16.34.0/icons/asus.svg | Simple Icons 16.34.0, CC0-1.0 |
| `brands/fairphone.svg` | https://unpkg.com/simple-icons@16.34.0/icons/fairphone.svg | Simple Icons 16.34.0, CC0-1.0 |
| `brands/google.svg` | https://unpkg.com/simple-icons@16.34.0/icons/google.svg | Simple Icons 16.34.0, CC0-1.0 |
| `brands/htc.svg` | https://unpkg.com/simple-icons@16.34.0/icons/htc.svg | Simple Icons 16.34.0, CC0-1.0 |
| `brands/huawei.svg` | https://unpkg.com/simple-icons@16.34.0/icons/huawei.svg | Simple Icons 16.34.0, CC0-1.0 |
| `brands/lenovo.svg` | https://unpkg.com/simple-icons@16.34.0/icons/lenovo.svg | Simple Icons 16.34.0, CC0-1.0 |
| `brands/lg.svg` | https://unpkg.com/simple-icons@16.34.0/icons/lg.svg | Simple Icons 16.34.0, CC0-1.0 (face symbol only, "LG" letters removed) |
| `brands/meizu.svg` | https://unpkg.com/simple-icons@16.34.0/icons/meizu.svg | Simple Icons 16.34.0, CC0-1.0 |
| `brands/motorola.svg` | https://unpkg.com/simple-icons@16.34.0/icons/motorola.svg | Simple Icons 16.34.0, CC0-1.0 |
| `brands/nokia.svg` | https://unpkg.com/simple-icons@16.34.0/icons/nokia.svg | Simple Icons 16.34.0, CC0-1.0 |
| `brands/nvidia.svg` | https://unpkg.com/simple-icons@16.34.0/icons/nvidia.svg | Simple Icons 16.34.0, CC0-1.0 |
| `brands/oneplus.svg` | https://unpkg.com/simple-icons@16.34.0/icons/oneplus.svg | Simple Icons 16.34.0, CC0-1.0 |
| `brands/oppo.svg` | https://unpkg.com/simple-icons@16.34.0/icons/oppo.svg | Simple Icons 16.34.0, CC0-1.0 |
| `brands/razer.svg` | https://unpkg.com/simple-icons@16.34.0/icons/razer.svg | Simple Icons 16.34.0, CC0-1.0 |
| `brands/samsung.svg` | https://unpkg.com/simple-icons@16.34.0/icons/samsung.svg | Simple Icons 16.34.0, CC0-1.0 |
| `brands/solana.svg` | https://unpkg.com/simple-icons@16.34.0/icons/solana.svg | Simple Icons 16.34.0, CC0-1.0 |
| `brands/sony.svg` | https://unpkg.com/simple-icons@16.34.0/icons/sony.svg | Simple Icons 16.34.0, CC0-1.0 |
| `brands/xiaomi.svg` | https://unpkg.com/simple-icons@16.34.0/icons/xiaomi.svg | Simple Icons 16.34.0, CC0-1.0 |
| `roms/lineageos.svg` | https://unpkg.com/simple-icons@16.34.0/icons/lineageos.svg | Simple Icons 16.34.0, CC0-1.0 |
| `roms/grapheneos.svg` | https://unpkg.com/simple-icons@16.34.0/icons/grapheneos.svg | Simple Icons 16.34.0, CC0-1.0 |
| `roms/eos.svg` | https://unpkg.com/simple-icons@16.34.0/icons/e.svg | Simple Icons 16.34.0, CC0-1.0 |
| `roms/calyxos.svg` | https://gitlab.com/CalyxOS/branding/-/raw/main/calyxos/icon/Icon-CalyxOS.light.svg | Registered trademark of the Calyx Institute (background square removed) |
| `roms/crdroid.svg` | https://raw.githubusercontent.com/crdroidandroid/android_packages_apps_crDroidSettings/17.0/res/drawable/ic_crdroid_logo.xml | Trademark of the crDroid Android Project; file header Apache-2.0 |
| `roms/iodeos.svg` | https://gitlab.com/iode/os/public_archive/blocker/iode/-/raw/main/android/app/src/main/res/drawable/ic_iode_foreground.xml | Trademark of iodé Technologies; file header AGPL-3.0-or-later |
| `roms/evolutionx.svg` | https://raw.githubusercontent.com/Evolution-X/wiki/main/public/icon.svg | Trademark of Evolution X |
| `roms/pixelos.svg` | https://pixelos.net/images/logo.svg | Trademark of PixelOS |

Simple Icons releases its icon data under CC0-1.0, but its disclaimer notes that the logos themselves remain trademarks of their owners: https://github.com/simple-icons/simple-icons/blob/develop/DISCLAIMER.md

To add a logo, drop a single-colour SVG named after the brand or ROM key into `brands/` or `roms/`; anything without one shows its initials.
1 change: 1 addition & 0 deletions src/assets/logos/brands/asus.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions src/assets/logos/brands/fairphone.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions src/assets/logos/brands/google.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions src/assets/logos/brands/htc.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading