Repository navigation
Android 17 (riscv64) for two RISC-V boards with an Imagination BXM-4-64 GPU: the SpacemiT K3 Pico-ITX and the Alibaba A210 EVB. Both run an android-mainline 7.1 kernel, an open boot chain (U-Boot + OpenSBI) and open-source PowerVR graphics (upstream drm/imagination + Mesa, Vulkan and OpenGL ES).
Downloads
| Board | Image package | Lunch target |
|---|---|---|
| SpacemiT K3 Pico-ITX | rise-android-17-v1.0-k3-pico-itx.tar.gz |
aosp_k3_pico_itx-trunk_staging-userdebug |
| Alibaba A210 EVB | rise-android-17-v1.0-a210-evb.tar.gz |
aosp_a210_evb-trunk_staging-userdebug |
Each package holds the bootloaders, the Android images, the board flash script, adb, fastboot, mke2fs, the license notices and the pinned manifest.xml it was built from. SHA256SUMS covers the packages and the manifests.
Flashing
Extract the package and run the flash script from its directory. A first installation erases the board.
K3 Pico-ITX: power the board, hold FDL, press RST, release FDL, then connect the DRD Type-C port to the host (USB ID 361c:1001).
tar -xzf rise-android-17-v1.0-k3-pico-itx.tar.gz && cd rise-android-17-v1.0-k3-pico-itx && bash flash_pico_itx.sh --dfu --wipeA210 EVB: power the board, hold the Flash button, press Reset, then connect the USB flashing port to the host.
tar -xzf rise-android-17-v1.0-a210-evb.tar.gz && cd rise-android-17-v1.0-a210-evb && sh flash_android_images.sh --wipe && fastboot rebootOmit --wipe to keep user data on an already installed board.
What works
| Feature | K3 Pico-ITX | A210 EVB |
|---|---|---|
| Boot | SPI NOR + UFS, A/B slots | eMMC, A/B slots |
| Flashing | USB DFU + fastboot | fastboot |
| Display | DisplayPort / USB-C DP, up to 1080p, hardware composition | HDMI 1080p, hardware composition |
| GPU | Vulkan, OpenGL ES 2.0 | Vulkan, OpenGL ES 2.0 |
| Audio | DisplayPort | HDMI (default) and headset jack |
| Wi-Fi / Bluetooth | RTL8852BE (PCIe) | RTL8822CS |
| USB | Type-C, ADB, UVC cameras | ADB, UVC cameras |
| WebView | yes | yes |
| Video playback | software decoding | software decoding |
| Games validated | SuperTuxKart, Luanti, Mindustry, OpenTTD | SuperTuxKart, Luanti, Mindustry, OpenTTD |
Known issues
- SELinux runs in permissive mode. Secure boot and a TEE are out of scope.
- The GPU exposes OpenGL ES 2.0 only, so WebView has no WebGL and no accelerated canvas.
- K3: after
adb reboot,fastboot usb 0in U-Boot can fail to initialise the USB3 PHY; power-cycle the board. - K3: audio through an HDMI dock does not work; DisplayPort hot-plug and Android thermal management are not tested.
- A210: Android thermal management is not tested.
- Not supported: the NPUs (K3 A100, A210).
Sources
Every RISE repository used by this release is tagged android-17-v1.0. Repositories with one branch per board carry android-17-v1.0-k3 and android-17-v1.0-a210 instead: android_kernel_common, android_bootloader_build, u-boot and opensbi.
The release also ships pinned manifests (default.xml, kernel-spacemit.xml, kernel-alibaba.xml, bootloader-spacemit.xml, bootloader-alibaba.xml): every project is fixed to the exact commit used for this release. To check out the release sources:
repo init -u https://github.com/riseproject-dev/android_manifest.git -b refs/tags/android-17-v1.0 -m default.xml && repo sync -m "$PWD/default.xml" -j24(default.xml here is the pinned manifest downloaded from this release.)
The README describes how to rebuild the kernel, the bootloaders, Mesa, the WebView and the Android images.