3 Commits

Author SHA1 Message Date
Konsta
74c068f5bd remove coreutils from additional packages
* This is installed on Ubuntu by default.
* dosfstools and mtools are required for custom mkbootimg.mk.
  e2fsprogs, fdisk, and kpartx are required for mkimg.sh.
  rsync is required for AOSP kernel build environment.
2025-06-27 12:23:50 +03:00
Konsta
fc65dea5ab remove meson build system tools from additional packages
* Mesa and libcamera have been converted to build using soong blueprint
  makefiles so these are no longer required.
2025-06-27 12:23:50 +03:00
Konsta
03c2070ba0 switch to external/mesa3d-rpi in device manifest
* Moving forward there will be two copies of Mesa in Raspberry Vanilla
  AOSP source tree.

  external/mesa3d is the upstream AOSP fork directly from AOSP that has
  soong blueprint makefiles to satisfy package dependencies for
  gfxstream-vulkan elsewhere in the AOSP tree.

  external/mesa3d-rpi is the Raspberry Vanilla fork (generally the latest
  upstream mainline stable version) that has some additional patches and
  soong blueprint makefiles to build only the drivers that are used on
  Raspberry Pi (vc4 & v3d gallium, broadcom vulkan).
2025-06-27 12:23:47 +03:00
6 changed files with 108 additions and 91 deletions

View File

@@ -1,5 +1,4 @@
### Device specific configuration to build AOSP Android 16 for Raspberry Pi 4 and Raspberry Pi 5.
Based on [RaspberryVanilla](https://github.com/raspberry-vanilla).
### Device specific configuration to build AOSP Android 15 for Raspberry Pi 4 and Raspberry Pi 5.
***
@@ -16,20 +15,16 @@ sudo apt-get install dosfstools e2fsprogs fdisk kpartx mtools rsync
3. Initialize repo:
```
repo init -u https://android.googlesource.com/platform/manifest -b android-16.0.0_r1
curl -o .repo/local_manifests/manifest_brcm_rpi.xml -L https://git.oxmc.me/PawletOS/android_local_manifest/raw/branch/android-16.0/vendors/brcm_rpi.xml --create-dirs
curl -o .repo/local_manifests/manifest_lineageos.xml -L https://git.oxmc.me/PawletOS/android_local_manifest/raw/branch/android-16.0/vendors/lineageos.xml --create-dirs
curl -o .repo/local_manifests/manifest_pawletos.xml -L https://git.oxmc.me/PawletOS/android_local_manifest/raw/branch/android-16.0/pawletos.xml --create-dirs
repo init -u https://android.googlesource.com/platform/manifest -b android-15.0.0_r32
curl -o .repo/local_manifests/manifest_brcm_rpi.xml -L https://raw.githubusercontent.com/raspberry-vanilla/android_local_manifest/android-15.0/manifest_brcm_rpi.xml --create-dirs
```
Or optionally, you can reduce download size by creating a shallow clone and removing unneeded projects:
```
repo init -u https://android.googlesource.com/platform/manifest -b android-16.0.0_r1 --depth=1
curl -o .repo/local_manifests/manifest_brcm_rpi.xml -L https://git.oxmc.me/PawletOS/android_local_manifest/raw/branch/android-16.0/vendors/brcm_rpi.xml --create-dirs
curl -o .repo/local_manifests/manifest_lineageos.xml -L https://git.oxmc.me/PawletOS/android_local_manifest/raw/branch/android-16.0/vendors/lineageos.xml --create-dirs
curl -o .repo/local_manifests/manifest_pawletos.xml -L https://git.oxmc.me/PawletOS/android_local_manifest/raw/branch/android-16.0/pawletos.xml --create-dirs
curl -o .repo/local_manifests/remove_projects.xml -L https://git.oxmc.me/PawletOS/android_local_manifest/raw/branch/android-16.0/remove_projects.xml
repo init -u https://android.googlesource.com/platform/manifest -b android-15.0.0_r32 --depth=1
curl -o .repo/local_manifests/manifest_brcm_rpi.xml -L https://raw.githubusercontent.com/raspberry-vanilla/android_local_manifest/android-15.0/manifest_brcm_rpi.xml --create-dirs
curl -o .repo/local_manifests/remove_projects.xml -L https://raw.githubusercontent.com/raspberry-vanilla/android_local_manifest/android-15.0/remove_projects.xml
```
4. Sync source code:
@@ -47,22 +42,22 @@ repo sync
6. Select the device (`rpi4` or `rpi5`) and build target (tablet UI, `tv` for Android TV, or `car` for Android Automotive):
```
lunch pawlet_rpi4-bp2a-userdebug
lunch aosp_rpi4-bp1a-userdebug
```
```
lunch pawlet_rpi4_tv-bp2a-userdebug
lunch aosp_rpi4_tv-bp1a-userdebug
```
```
lunch pawlet_rpi4_car-bp2a-userdebug
lunch aosp_rpi4_car-bp1a-userdebug
```
```
lunch pawlet_rpi5-bp2a-userdebug
lunch aosp_rpi5-bp1a-userdebug
```
```
lunch pawlet_rpi5_tv-bp2a-userdebug
lunch aosp_rpi5_tv-bp1a-userdebug
```
```
lunch pawlet_rpi5_car-bp2a-userdebug
lunch aosp_rpi5_car-bp1a-userdebug
```
7. Compile:
@@ -79,3 +74,25 @@ make bootimage systemimage vendorimage -j$(nproc)
```
./rpi5-mkimg.sh
```
Also look into [Linux kernel build instructions](https://github.com/raspberry-vanilla/android_kernel_manifest/tree/android-15.0).
***
### Issues:
- [Android](https://github.com/raspberry-vanilla/android_local_manifest/issues)
- [Linux kernel](https://github.com/raspberry-vanilla/android_kernel_manifest/issues)
***
### Wiki:
- [Audio](https://github.com/raspberry-vanilla/android_local_manifest/wiki/Audio)
- [DSI display](https://github.com/raspberry-vanilla/android_local_manifest/wiki/DSI-display)
- [HDMI display](https://github.com/raspberry-vanilla/android_local_manifest/wiki/HDMI-display)
- [HDMI-CEC](https://github.com/raspberry-vanilla/android_local_manifest/wiki/HDMI-CEC)
- [Interfaces](https://github.com/raspberry-vanilla/android_local_manifest/wiki/Interfaces)
- [USB boot](https://github.com/raspberry-vanilla/android_local_manifest/wiki/USB-boot)
- [Utilities](https://github.com/raspberry-vanilla/android_local_manifest/wiki/Utilities)
- [Video decoding & encoding](https://github.com/raspberry-vanilla/android_local_manifest/wiki/Video-decoding-&-encoding)

View File

@@ -1,26 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="github" fetch="https://github.com/" />
<!-- Raspberry Pi -->
<project path="device/brcm/rpi4" name="PawletOS/android_device_brcm_rpi4" remote="oxmc_git" revision="android-16.0" >
<project path="device/brcm/rpi4" name="raspberry-vanilla/android_device_brcm_rpi4" remote="github" revision="android-15.0" >
<linkfile src="mkimg.sh" dest="rpi4-mkimg.sh" />
<linkfile src="wrimg.sh" dest="rpi4-wrimg.sh" />
</project>
<project path="device/brcm/rpi5" name="PawletOS/android_device_brcm_rpi5" remote="oxmc_git" revision="android-16.0" >
<project path="device/brcm/rpi5" name="raspberry-vanilla/android_device_brcm_rpi5" remote="github" revision="android-15.0" >
<linkfile src="mkimg.sh" dest="rpi5-mkimg.sh" />
<linkfile src="wrimg.sh" dest="rpi5-wrimg.sh" />
</project>
<project path="device/brcm/rpi4-kernel" name="raspberry-vanilla/android_device_brcm_rpi4-kernel" remote="github" revision="android-16.0" />
<project path="device/brcm/rpi5-kernel" name="raspberry-vanilla/android_device_brcm_rpi5-kernel" remote="github" revision="android-16.0" />
<project path="vendor/brcm" name="raspberry-vanilla/proprietary_vendor_brcm" remote="github" revision="android-16.0" />
<project path="device/brcm/rpi4-kernel" name="raspberry-vanilla/android_device_brcm_rpi4-kernel" remote="github" revision="android-15.0" />
<project path="device/brcm/rpi5-kernel" name="raspberry-vanilla/android_device_brcm_rpi5-kernel" remote="github" revision="android-15.0" />
<project path="vendor/brcm" name="raspberry-vanilla/proprietary_vendor_brcm" remote="github" revision="android-15.0" />
<!-- Audio -->
<project path="external/alsa-lib" name="raspberry-vanilla/android_external_alsa-lib" remote="github" revision="android-16.0" />
<project path="external/alsa-utils" name="raspberry-vanilla/android_external_alsa-utils" remote="github" revision="android-16.0" />
<project path="external/alsa-lib" name="raspberry-vanilla/android_external_alsa-lib" remote="github" revision="android-15.0" />
<project path="external/alsa-utils" name="raspberry-vanilla/android_external_alsa-utils" remote="github" revision="android-15.0" />
<!-- Build -->
<remove-project name="platform/build" />
<remove-project name="platform/build/soong" />
<project path="build/make" name="raspberry-vanilla/android_build" remote="github" revision="android-16.0" >
<project path="build/make" name="raspberry-vanilla/android_build" remote="github" revision="android-15.0" >
<linkfile src="CleanSpec.mk" dest="build/CleanSpec.mk" />
<linkfile src="buildspec.mk.default" dest="build/buildspec.mk.default" />
<linkfile src="core" dest="build/core" />
@@ -28,34 +30,36 @@
<linkfile src="target" dest="build/target" />
<linkfile src="tools" dest="build/tools" />
</project>
<project path="build/soong" name="raspberry-vanilla/android_build_soong" remote="github" revision="android-16.0" >
<project path="build/soong" name="raspberry-vanilla/android_build_soong" remote="github" revision="android-15.0" >
<linkfile src="root.bp" dest="Android.bp" />
<linkfile src="bootstrap.bash" dest="bootstrap.bash" />
</project>
<!-- Camera -->
<project path="external/libcamera" name="raspberry-vanilla/android_external_libcamera" remote="github" revision="android-16.0" />
<project path="external/libpisp" name="raspberry-vanilla/android_external_libpisp" remote="github" revision="android-16.0" />
<project path="external/libyaml" name="raspberry-vanilla/android_external_libyaml" remote="github" revision="android-16.0" />
<project path="external/libyuv_chromium" name="raspberry-vanilla/android_external_libyuv_chromium" remote="github" revision="android-16.0" />
<project path="external/libcamera" name="raspberry-vanilla/android_external_libcamera" remote="github" revision="android-15.0" />
<project path="external/libpisp" name="raspberry-vanilla/android_external_libpisp" remote="github" revision="android-15.0" />
<project path="external/libyaml" name="raspberry-vanilla/android_external_libyaml" remote="github" revision="android-15.0" />
<project path="external/libyuv_chromium" name="raspberry-vanilla/android_external_libyuv_chromium" remote="github" revision="android-15.0" />
<!-- FFmpeg -->
<project path="external/ffmpeg" name="raspberry-vanilla/android_external_ffmpeg" remote="github" revision="android-16.0" />
<project path="external/ffmpeg_codec2" name="raspberry-vanilla/android_external_ffmpeg_codec2" remote="github" revision="android-16.0" />
<project path="external/libudev-zero" name="raspberry-vanilla/android_external_libudev-zero" remote="github" revision="android-16.0" />
<project path="external/ffmpeg" name="raspberry-vanilla/android_external_ffmpeg" remote="github" revision="android-15.0" />
<project path="external/ffmpeg_codec2" name="raspberry-vanilla/android_external_ffmpeg_codec2" remote="github" revision="android-15.0" />
<project path="external/libudev-zero" name="raspberry-vanilla/android_external_libudev-zero" remote="github" revision="android-15.0" />
<!-- Graphics -->
<remove-project name="platform/external/drm_hwcomposer" />
<remove-project name="platform/external/minigbm" />
<project path="external/drm_hwcomposer" name="raspberry-vanilla/android_external_drm_hwcomposer" remote="github" revision="android-16.0" />
<project path="external/mesa3d-rpi" name="raspberry-vanilla/android_external_mesa3d-rpi" remote="github" revision="android-16.0" />
<project path="external/minigbm" name="raspberry-vanilla/android_external_minigbm" remote="github" revision="android-16.0" />
<project path="external/drm_hwcomposer" name="raspberry-vanilla/android_external_drm_hwcomposer" remote="github" revision="android-15.0" />
<project path="external/libdisplay-info" name="platform/external/libdisplay-info" remote="aosp" revision="26677e2a01d937c837cb1789a776463ed18263ac" />
<project path="external/mesa3d-rpi" name="raspberry-vanilla/android_external_mesa3d-rpi" remote="github" revision="android-15.0" />
<project path="external/minigbm" name="raspberry-vanilla/android_external_minigbm" remote="github" revision="android-15.0" />
<!-- v4l2_codec2 -->
<remove-project name="platform/external/v4l2_codec2" />
<project path="external/v4l2_codec2" name="raspberry-vanilla/android_external_v4l2_codec2" remote="github" revision="android-16.0" />
<project path="external/v4l2_codec2" name="raspberry-vanilla/android_external_v4l2_codec2" remote="github" revision="android-15.0" />
<!-- Wifi -->
<remove-project name="platform/packages/modules/Wifi" />
<project path="packages/modules/Wifi" name="raspberry-vanilla/android_packages_modules_Wifi" remote="github" revision="android-16.0" />
<project path="packages/modules/Wifi" name="raspberry-vanilla/android_packages_modules_Wifi" remote="github" revision="android-15.0" />
</manifest>

View File

@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<!-- Raspberry Pi utils -->
<project path="external/raspberrypi-utils" name="raspberry-vanilla/android_external_raspberrypi-utils" remote="github" revision="android-16.0" />
<remote name="github" fetch="https://github.com/" />
<!-- Utilities -->
<project path="external/raspberrypi-utils" name="raspberry-vanilla/android_external_raspberrypi-utils" remote="github" revision="android-15.0" />
<project path="external/v4l-utils" name="raspberry-vanilla/android_external_v4l-utils" remote="github" revision="android-15.0" />
<!-- V4L utils -->
<remove-project name="platform/external/v4l-utils" />
<project path="external/v4l-utils" name="raspberry-vanilla/android_external_v4l-utils" remote="github" revision="android-16.0" />
</manifest>

View File

@@ -1,26 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<!-- Remotes -->
<remote name="github" fetch="https://github.com/" />
<remote name="oxmc_git" fetch="https://git.oxmc.me/" />
<remote name="aosp_git" fetch="https://android.googlesource.com" />
<!-- PawletOS devices -->
<project path="device/pawlet/rpi" name="PawletOS/PawletRPI" remote="oxmc_git" revision="main" />
<!-- PawletOS Overlays -->
<project path="vendor/pawlet/overlays/FrameworkResOverlay" name="PawletOS/FrameworkResOverlay" remote="oxmc_git" revision="main" />
<project path="vendor/pawlet/fonts/ArcticonsSans" name="PawletOS/fonts_ArcticonsSans" remote="oxmc_git" revision="main" />
<!-- Framework API Extensions -->
<!--<project path="vendor/pawlet/framework-extension" name="PawletOS/FrameworkExtension" remote="oxmc_git" revision="main" />-->
<project path="frameworks/base/pawlet" name="PawletOS/FrameworkAPI" remote="oxmc_git" revision="main" />
<!-- First party apps -->
<project path="packages/apps/ConfigProvisioner" name="PawletOS/app_ConfigProvisioner" remote="oxmc_git" revision="main" />
<!-- Third party apps -->
<project path="vendor/lawnchair/Lawnchair" name="PawletOS/prebuilt_Lawnchair" remote="oxmc_git" revision="master" />
<project path="vendor/vivladi/VivladiBrowser" name="PawletOS/prebuilt_VivladiBrowser" remote="oxmc_git" revision="main" />
<project path="vendor/floris/Florisboard" name="PawletOS/prebuilt_Florisboard" remote="oxmc_git" revision="main" />
</manifest>

View File

@@ -1,14 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remove-project name="device/google/akita" />
<remove-project name="device/google/akita-sepolicy" />
<remove-project name="device/google/akita-kernels/6.1" />
<remove-project name="device/amlogic/yukawa" />
<remove-project name="device/amlogic/yukawa-kernel" />
<remove-project name="device/google/bluejay" />
<remove-project name="device/google/bluejay-sepolicy" />
<remove-project name="device/google/bluejay-kernels/6.1" />
<remove-project name="device/google/caimito" />
<remove-project name="device/google/caimito-kernels/6.1" />
<remove-project name="device/google/caimito-sepolicy" />
<remove-project name="device/google/comet" />
<remove-project name="device/google/comet-kernels/6.1" />
<remove-project name="device/google/comet-sepolicy" />
<remove-project name="device/google/common/etm" />
<remove-project name="device/google/contexthub" />
<remove-project name="device/google/felix" />
<remove-project name="device/google/felix-sepolicy" />
<remove-project name="device/google/felix-kernels/6.1" />
<remove-project name="device/google/gs101" />
<remove-project name="device/google/gs101-sepolicy" />
<remove-project name="device/google/gs201" />
<remove-project name="device/google/gs201-sepolicy" />
<remove-project name="device/google/gs-common" />
<remove-project name="device/google/lynx" />
<remove-project name="device/google/lynx-sepolicy" />
<remove-project name="device/google/lynx-kernels/6.1" />
<remove-project name="device/google/pantah" />
<remove-project name="device/google/pantah-sepolicy" />
<remove-project name="device/google/pantah-kernels/6.1" />
<remove-project name="device/google/raviole" />
<remove-project name="device/google/raviole-kernels/6.1" />
<remove-project name="device/google/tangorpro" />
<remove-project name="device/google/tangorpro-sepolicy" />
<remove-project name="device/google/tangorpro-kernels/6.1" />
<remove-project name="device/google/shusky" />
<remove-project name="device/google/shusky-sepolicy" />
<remove-project name="device/google/shusky-kernels/6.1" />
<remove-project name="device/google/trout" />
<remove-project name="device/google/zuma" />
<remove-project name="device/google/zuma-sepolicy" />
<remove-project name="device/google/zumapro" />
<remove-project name="device/google/zumapro-sepolicy" />
<remove-project name="device/linaro/dragonboard" />
<remove-project name="device/linaro/dragonboard-kernel" />
<remove-project name="device/linaro/hikey" />
<remove-project name="device/linaro/hikey-kernel" />
<remove-project name="device/linaro/poplar" />
<remove-project name="device/linaro/poplar-kernel" />
<remove-project name="platform/hardware/invensense" />
<remove-project name="platform/hardware/nxp/keymint" />
<remove-project name="platform/hardware/nxp/nfc" />

18
vendors/lineageos.xml vendored
View File

@@ -1,18 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<!-- Updater -->
<!--<project path="packages/apps/Updater" name="PawletOS/lineageos_updater" remote="oxmc_git" revision="lineage-22.2" />-->
<!-- Setup Wizard -->
<!--<project path="packages/apps/SetupWizard" name="PawletOS/lineageos_setupwizard" remote="oxmc_git" revision="lineage-22.2" />-->
<!-- Webview Patches -->
<!--<project path="external/chromium-webview/patches" name="LineageOS/android_external_chromium-webview_patches" remote="github" revision="main" >
<linkfile src="os_pickup.bp" dest="external/chromium-webview/Android.bp" />
<linkfile src="README" dest="external/chromium-webview/README" />
</project>
<project path="external/chromium-webview/prebuilt/arm" name="LineageOS/android_external_chromium-webview_prebuilt_arm" remote="github" revision="main" />
<project path="external/chromium-webview/prebuilt/arm64" name="LineageOS/android_external_chromium-webview_prebuilt_arm64" remote="github" revision="main" />
<project path="external/chromium-webview/prebuilt/x86" name="LineageOS/android_external_chromium-webview_prebuilt_x86" remote="github" revision="main" />
<project path="external/chromium-webview/prebuilt/x86_64" name="LineageOS/android_external_chromium-webview_prebuilt_x86_64" remote="github" revision="main" />-->
</manifest>