{"id":13604263,"url":"https://github.com/AmberELEC/AmberELEC","last_synced_at":"2025-04-11T23:32:02.479Z","repository":{"id":36992403,"uuid":"311159060","full_name":"AmberELEC/AmberELEC","owner":"AmberELEC","description":"Handheld firmware optimized for the Anbernic RG351P/M/V/MP, RG552 and other compatible devices.","archived":false,"fork":false,"pushed_at":"2025-02-16T12:48:38.000Z","size":325039,"stargazers_count":1129,"open_issues_count":1,"forks_count":144,"subscribers_count":50,"default_branch":"dev","last_synced_at":"2025-04-09T19:16:21.860Z","etag":null,"topics":["d007","emulation","emulationstation","r35s","r36s","retroarch","rg351m","rg351mp","rg351p","rg351v","rg552","rgb20s","xu10"],"latest_commit_sha":null,"homepage":"https://amberelec.org","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AmberELEC.png","metadata":{"files":{"readme":".github/README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":"AmberELEC","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2020-11-08T21:32:38.000Z","updated_at":"2025-04-04T18:09:27.000Z","dependencies_parsed_at":"2025-02-19T06:37:04.866Z","dependency_job_id":null,"html_url":"https://github.com/AmberELEC/AmberELEC","commit_stats":{"total_commits":2611,"total_committers":61,"mean_commits":42.80327868852459,"dds":0.5365760245116813,"last_synced_commit":"083ce5ac24af0b1c735d99e5acf562fb6023b8ae"},"previous_names":["351elec/351elec"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmberELEC%2FAmberELEC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmberELEC%2FAmberELEC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmberELEC%2FAmberELEC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmberELEC%2FAmberELEC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AmberELEC","download_url":"https://codeload.github.com/AmberELEC/AmberELEC/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248495067,"owners_count":21113561,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["d007","emulation","emulationstation","r35s","r36s","retroarch","rg351m","rg351mp","rg351p","rg351v","rg552","rgb20s","xu10"],"created_at":"2024-08-01T19:00:42.526Z","updated_at":"2025-04-11T23:32:02.472Z","avatar_url":"https://github.com/AmberELEC.png","language":"Makefile","funding_links":["https://opencollective.com/AmberELEC"],"categories":["OS","Makefile"],"sub_categories":["CFW"],"readme":"![GitHub-Mark-Dark](https://raw.githubusercontent.com/AmberELEC/website/gh-pages/docs/images/transparent_amber_elec_horiz.svg#gh-dark-mode-only)\n![GitHub-Mark-Light](https://raw.githubusercontent.com/AmberELEC/website/gh-pages/docs/images/transparent_black_amber_elec_horiz.svg#gh-light-mode-only)\n[![GitHub Release](https://img.shields.io/github/release/AmberELEC/AmberELEC.svg?label=latest%20release\u0026style=flat-square\u0026labelColor=black\u0026color=gold)](https://github.com/AmberELEC/AmberELEC/releases/latest)\n[![Downloads Latest](https://img.shields.io/github/downloads/AmberELEC/AmberELEC/latest/total?label=downloads%40latest%20release\u0026style=flat-square\u0026labelColor=black\u0026color=gold)](https://github.com/AmberELEC/AmberELEC/releases/latest)\n[![Downloads Prerelease](https://img.shields.io/github/downloads/AmberELEC/AmberELEC-prerelease/total?label=downloads%40prerelease%20builds\u0026style=flat-square\u0026labelColor=black\u0026color=gold)](https://github.com/AmberELEC/AmberELEC-prerelease/releases)\n[![Discord](https://img.shields.io/discord/777665344289898536?logo=discord\u0026label=Discord\u0026labelColor=black\u0026color=gold)](https://discord.gg/W9F9xxRseu)\n---\nAn open source firmware for the Anbernic RG351P/M/V/MP, RG552 and other compatible devices (see listing below).\n\nAmberELEC (formerly know as 351ELEC) is a fork of [EmuELEC](https://github.com/EmuELEC/EmuELEC) which is based on [CoreELEC](https://github.com/CoreELEC/CoreELEC), [Lakka](https://github.com/libretro/Lakka-LibreELEC), and [Batocera](https://github.com/batocera-linux/batocera.linux).\n\nWe have a [Website](https://amberelec.org) with [installation instructions](https://amberelec.org/installation#overview) and a lot of information on how to [get started using AmberELEC](https://amberelec.org/guides/getting-to-know-amberelec).\n\nVisit us on our Discord! https://discord.gg/W9F9xxRseu\n\n## Supported Devices\n\u003c!--devices--\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"70\" nowrap=\"nowrap\"\u003eSoC\u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\" nowrap=\"nowrap\"\u003eManufacturer\u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\" nowrap=\"nowrap\"\u003eDevice\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eRK3399\u003c/td\u003e\n    \u003ctd\u003eAnbernic\u003c/td\u003e\n    \u003ctd\u003eRG552\u003c/td\u003e\n  \u003c/tr\u003e  \n  \u003ctr\u003e\n    \u003ctd rowspan=\"10\"\u003eRK3326\u003c/td\u003e\n    \u003ctd rowspan=\"4\"\u003eAnbernic\u003c/td\u003e\n    \u003ctd\u003eRG351P\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eRG351M\u003csup\u003e[1]\u003c/sup\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eRG351V\u003csup\u003e[2]\u003c/sup\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eRG351MP\u003csup\u003e[2]\u003c/sup\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd rowspan=\"2\"\u003ePowKiddy\u003c/td\u003e\n    \u003ctd\u003eRGB20S\u003csup\u003e[3]\u003c/sup\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eMagicx XU10\u003csup\u003e[3]\u003c/sup\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd rowspan=\"2\"\u003eGame Console\u003cbr /\u003eGame Station\u003c/td\u003e\n    \u003ctd\u003eR35S\u003csup\u003e[3]\u003c/sup\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eR36S\u003csup\u003e[3]\u003c/sup\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eSZDiiER\u003c/td\u003e\n    \u003ctd\u003eD007 Plus\u003csup\u003e[3]\u003c/sup\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003c!--devices--\u003e\n\n\u003e [!IMPORTANT]\n\u003e \u003csup\u003e[1]\u003c/sup\u003e use the RG351P image\u003cbr\u003e\n\u003e \u003csup\u003e[2]\u003c/sup\u003e for RG351V and RG351MP devices with v2 display the use of the [pre-release image](https://github.com/AmberELEC/AmberELEC-prerelease/releases) is mandatory\u003cbr\u003e\n\u003e \u003csup\u003e[3]\u003c/sup\u003e use the RG351MP [pre-release image](https://github.com/AmberELEC/AmberELEC-prerelease/releases)\n\n\u003e [!CAUTION]\n\u003e Do not replace or rename any of the `.dtb` files after flashing a new image or updating from an older AmberELEC release.\n\u003e To simplify the process and reduce complexity, we're determining which display the device is using, so no manual interaction is necessary.\n  \n## Installation\n\nPlease visit our Website [Installation](https://amberelec.org/installation#overview) page for installation instructions.\n\n## Building from Source\nBuilding AmberELEC from source is a fairly simple process. It is recommended to have a minimum of 4 cores, 16GB of RAM, and an SSD with 200GB of free space. The build environment used to develop these steps uses Ubuntu 20.04, your mileage may vary when building on other distributions.\n\n\u003e [!IMPORTANT]\n\u003e On Ubuntu 20.04 it's required to add the following apt-repository as golang 1.17 or higher is required for building AmberELEC:\u003cbr\u003e\n\u003e ```sudo add-apt-repository ppa:longsleep/golang-backports```\n\n```\nsudo apt update \u0026\u0026 sudo apt upgrade\n\nsudo apt install gcc make git unzip wget xz-utils libsdl2-dev libsdl2-mixer-dev libfreeimage-dev libfreetype6-dev libcurl4-openssl-dev rapidjson-dev libasound2-dev libgl1-mesa-dev build-essential libboost-all-dev cmake fonts-droid-fallback libvlc-dev libvlccore-dev vlc-bin texinfo premake4 golang libssl-dev curl patchelf xmlstarlet patchutils gawk gperf xfonts-utils default-jre python xsltproc libjson-perl lzop libncurses5-dev device-tree-compiler u-boot-tools rsync p7zip unrar libparse-yapp-perl zip binutils-aarch64-linux-gnu dos2unix p7zip-full libvpx-dev meson rdfind\n\ngit clone https://github.com/AmberELEC/AmberELEC.git AmberELEC\n\ncd AmberELEC\n\nmake clean\n\nmake world\n```\n\nThe make world process will build and generate a image which will be located in AmberELEC/release. Follow the installation steps to write your image to a microSD.\nIt will build for the RG351P/M, RG351V, RG351MP and for the RG552.\n\nTo create the image for the RG351P/M just ``make RG351P``, and just for the RG351V ``make RG351V``, and just for the RG351MP ``make RG351MP``, and just for the RG552 ``make RG552``.\n\n## Building from Source - Docker\nBuilding with Docker simplifies the build process as any dependencies, with the exception of `make`, are contained within the docker image - all CPU/RAM/Disk/build time requirements remain similar. \n\nNOTE: Make can be installed with `sudo apt update \u0026\u0026 sudo apt install -y make` on Ubuntu-based systems.\n\nAll make commands are available via docker, by prepending `docker-`. `make RG351V` becomes `make docker-RG351V` and `make clean` becomes `make docker-clean`.\n\nNew docker make commands: \n- `make docker-image-build` - Builds the docker image based on the Dockerfile. This is not required unless changes are needed locally. \n- `make docker-image-pull` - Pulls docker image from dockerhub. This will update to the latest image and replace any locally built changes to the docker file.\n- `make docker-shell` - (advanced) Launches a shell inside the docker build container. This allows running any development commands like `./scripts/build`, etc, which aren't in the Makefile.\n  - NOTE: Errors like `groups: cannot find name for group ID 1002` and the user being listed as `I have no name!` are OK and a result of mapping the host user/group into the docker container where the host user/groups may not exist.\n\nExample building with docker:\n```\ngit clone https://github.com/AmberELEC/AmberELEC.git AmberELEC\ncd AmberELEC\nmake docker-clean\nmake docker-world\n```\n\n## Automated Dev Builds\nBuilds are automatically run on commits to `main` and for Pull Requests (*PR's*) from previous committers.\n\nDevelopment builds can be found looking for the green checkmarks next to commit history. Artifacts are generated for each build which can be used to update the RG351P/RG351V and are stored for 30 days by GitHub. Note that due to Github Action limitations, artifacts are zipped (.img.gz and .tar are inside the zip file).\n\nAll artifacts generated by builds should be considered 'unstable' and only used by developers or advanced users who want to test the latest code.\n\nSee: [Build Overview](workflows/README.md) for more information.\n\n### GitHub Actions and Forks\nBuilds use GitHub actions (`.github/workflow`) to execute. GitHub validates that changes to the `.github/workflow` folder require a special `workflow` permission. \n\nWhen using [Personal Access Token](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token) to push in upstream changes from AmberELEC into your fork, you may get an error similar to the following:\n\n```\n! [remote rejected] main -\u003e main (refusing to allow a Personal Access Token to create or update workflow `.github/workflows/README.md` without `workflow` scope)\nerror: failed to push some refs to 'https://github.com/my-AmberELEC-fork/AmberELEC.git'\n```\n\nTo fix, edit the [Personal Access Token](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token) to add `workflow` permissions (or create a new token with workflow permission).\n\nAlternatively, [ssh-key authentication](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) can be used.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAmberELEC%2FAmberELEC","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAmberELEC%2FAmberELEC","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAmberELEC%2FAmberELEC/lists"}