Coder Social home page Coder Social logo

glodroidcommunity / raspberry-pi Goto Github PK

View Code? Open in Web Editor NEW
27.0 9.0 3.0 1.43 MB

Android 14 for the Raspberry PI 4 series based on the GloDroid project

License: Apache License 2.0

Shell 100.00%
android aosp aosp-android glodroid lineageos raspberry-pi raspberrypi rpi4

raspberry-pi's Introduction

Android 14 for the Raspberry PI 4 series based on the GloDroid project

GloDroid ProjectStatus License Discord

Warning!

This project is a free and open-source initiative maintained by a group of volunteers. It is provided "as is" without any warranties or guarantees. The user is fully responsible for any issues arising from using the project.

Flashing images

Find the sdcard image or archive with fastboot images here

Use the SDCard raw image to flash the Android into SDCard.

Or use the fastboot images archive to download Android on SDCard using fastboot mode:

Step 1

Extract the content of the archive.
Using any available iso-to-usb utility, prepare recovery SDCARD.
To flash Android on a sdcard, use deploy-sd.img

Step 2

Ensure you have installed the adb package: $ sudo apt install adb (required to set up udev rules)
Insert recovery sdcard into the phone.
Connect the phone and your PC using a typec cable.
Power up the phone. Blue LED indicates that the phone is in bootloader mode, and you can proceed with flashing.

Step 3

Run ./flash-sd.sh utility for flashing Android to sdcard

After several minutes flashing should complete, and Android should boot

Building from sources

Before building, ensure your system has at least 32GB of RAM, a swap file is at least 8GB, and 300GB of free disk space available. We recommend using the latest laptops to get good performance. E.g., the HP ENVY x360 model15-ds1083cl takes about 5 hours to build the project.

Install system packages

(Ubuntu 22.04 LTS is only supported. Building on other distributions can be done using docker)

sudo apt-get install -y git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

  • Install additional packages
sudo apt-get install -y swig libssl-dev flex bison device-tree-compiler mtools git gettext libncurses5 libgmp-dev libmpc-dev cpio rsync dosfstools kmod gdisk lz4 meson cmake libglib2.0-dev git-lfs

  • Install additional packages (for building mesa3d, libcamera, and other meson-based components)
sudo apt-get install -y python3-pip pkg-config python3-dev ninja-build
sudo pip3 install mako jinja2 ply pyyaml pyelftools
  • Install the repo tool
sudo apt-get install -y python-is-python3 wget
wget -P ~/bin http://commondatastorage.googleapis.com/git-repo-downloads/repo
chmod a+x ~/bin/repo

NOTE: After this step, you may need to log out and log in to the system to make $HOME/bin added to the PATH environment variable.

Fetching the sources and building the project

git clone https://github.com/GloDroidCommunity/raspberry-pi.git
cd raspberry-pi

Building AOSP

./unfold_aosp.sh && ./build.sh

NOTE: If you're using git for the first time, it may ask you to configure the user name and email address and confirm the colored terminal. Please follow the suggestion you see on the screen in this case.

Building LineageOS

To enable GMS (microg), set the environment variable export WITH_GMS=true.

./unfold_lineageos.sh && ./build.sh

Notes

  • Depending on your hardware and internet connection, downloading and building may take 8h or more.
  • After the successful build, find the fastboot images at ./out/images.tar.gz or sdcard image at ./out/sdcard.img.
  • To disable GloDroid's prebuild apps (like skytube, Firefox, etc.), set the environment variable before building export GD_NO_DEFAULT_APPS=true.

raspberry-pi's People

Contributors

konstat avatar mikegapinski avatar rsglobal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

raspberry-pi's Issues

Cannot do Factory reset

Hi Glodroid,

I observe that on all of the versions of Glodroid, I cannot do factory reset.

Thanks,

Project status

Component Status Comment
Display drm_hwcomposer
GPU/GLES mesa3d/v3d GLES3.1
GPU/VULKAN mesa3d/v3dv VKAPIv1.2
WIFI
Bluetooth AOSP btlinux HAL
Camera ⚠️ CSI Preview works only / USB camera doesn't work
Hardware video encoders Zero-Copy H264 (up to 1080p)
Hardware video decoders ⚠️ Zero-Copy H264 (up to 1080) and non zero-copy H265 (up to 4k) *1
Software video codecs High performance using ffmpeg
Audio ⚠️ tinyhal, 3.5mm jack output works. No HDMI audio support

Issues:

Component Comment Issue link
*1 HW video codecs H265 video decoder uses CPU to copy/detile buffers, which impacts performance
SDCARD Boot time 2+ boot takes 56s

Building on Ubuntu 23.10 requires downloading extra packages that are not available via apt install:

wget http://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.4-2_amd64.deb && sudo dpkg -i libtinfo5_6.4-2_amd64.deb && rm -f libtinfo5_6.4-2_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libncurses5_6.4-2_amd64.deb && sudo dpkg -i libncurses5_6.4-2_amd64.deb && rm -f libncurses5_6.4-2_amd64.deb

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.