5 Commits

Author SHA1 Message Date
oxmc 0d07f33021 Point libcamera and libudev-zero at their android-17.0 branches
Both now have one (content identical to android-16.0 for now, same as
upstream's own unpatched android-17.0 branches for these two repos).
2026-07-09 01:59:38 -07:00
oxmc 2a8e194e89 Point vendor/pawlet, Updater, and BgUpd at their android-17.0 branches
They now actually have one. SetupWizard and patches stay on android-16.0
since no android-17.0 branch exists for them yet.
2026-07-09 01:35:02 -07:00
oxmc 68b32ff1ca Add BgUpd project to the manifest
Now that the repo exists at PawletOS/android_packages_apps_BgUpd.
2026-07-09 01:30:19 -07:00
oxmc d403b8b206 Document rpi manifests and support multi-source remove_projects
Add header comment naming the AOSP release, and switch remove_projects
to a list so multiple remove-project XML fragments can be merged by
environ.py.
2026-07-04 02:29:24 -07:00
oxmc 366d734c4d Restructure the repo 2026-07-04 01:50:53 -07:00
9 changed files with 152 additions and 93 deletions
+12 -77
View File
@@ -1,87 +1,22 @@
### Device specific configuration to build AOSP Android 16 (android-16.0.0_r4) for Raspberry Pi 4 and Raspberry Pi 5. ### Android Manifests
Based on [RaspberryVanilla](https://github.com/raspberry-vanilla).
*** ***
### How to build (Ubuntu 22.04 LTS): This repo holds manifests per project (except in the common folder) to build Android 17 for all supported devices that PawletOS targets.
1. Establish [Android build environment](https://source.android.com/docs/setup/start/requirements). ***
2. Install additional packages: ### Setup
``` 1. Install [`repo`](https://source.android.com/docs/setup/download#installing-repo).
sudo apt-get install dosfstools e2fsprogs gdisk kpartx mtools rsync 2. Establish an [Android build environment](https://source.android.com/docs/setup/start/requirements).
```
3. Initialize repo: Each target below has its own build instructions (additional tools, repo init steps, lunch targets, etc).
``` ***
repo init -u https://android.googlesource.com/platform/manifest -b android-16.0.0_r4
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
```
Or optionally, you can reduce download size by creating a shallow clone and removing unneeded projects: ### Supported targets
``` | Target | Description |
repo init -u https://android.googlesource.com/platform/manifest -b android-16.0.0_r4 --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 | [rpi](rpi/) | Raspberry Pi 4 and Raspberry Pi 5 |
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
```
4. Sync source code:
```
repo sync
```
5. Setup Android build environment:
```
. build/envsetup.sh
```
6. Select the device (`rpi4` or `rpi5`) and build target (normal, `tablet` for tablet, `tv` for Android TV, or `car` for Android Automotive):
```
lunch pawlet_rpi4-bp4a-userdebug
```
```
lunch pawlet_rpi4_tablet-bp4a-userdebug
```
```
lunch pawlet_rpi4_tv-bp4a-userdebug
```
```
lunch pawlet_rpi4_car-bp4a-userdebug
```
```
lunch pawlet_rpi5-bp4a-userdebug
```
```
lunch pawlet_rpi5_tablet-bp4a-userdebug
```
```
lunch pawlet_rpi5_tv-bp4a-userdebug
```
```
lunch pawlet_rpi5_car-bp4a-userdebug
```
7. Compile:
```
make bootimage systemimage systemextimage vendorimage productimage -j$(nproc)
```
8. Make flashable image for the device (`rpi4` or `rpi5`):
```
./rpi4-mkimg.sh
```
```
./rpi5-mkimg.sh
```
+4 -14
View File
@@ -5,17 +5,6 @@
<remote name="oxmc_git" fetch="https://git.oxmc.me/" /> <remote name="oxmc_git" fetch="https://git.oxmc.me/" />
<remote name="aosp_git" fetch="https://android.googlesource.com" /> <remote name="aosp_git" fetch="https://android.googlesource.com" />
<!-- PawletOS devices -->
<project path="device/pawlet/rpi" name="PawletOS/pawlet_rpi_common" remote="oxmc_git" revision="android-16.0" />
<project path="device/pawlet/rpi4" name="PawletOS/pawlet_rpi4" remote="oxmc_git" revision="android-16.0">
<linkfile src="mkimg.sh" dest="rpi4-mkimg.sh" />
<linkfile src="wrimg.sh" dest="rpi4-wrimg.sh" />
</project>
<project path="device/pawlet/rpi5" name="PawletOS/pawlet_rpi5" remote="oxmc_git" revision="android-16.0">
<linkfile src="mkimg.sh" dest="rpi5-mkimg.sh" />
<linkfile src="wrimg.sh" dest="rpi5-wrimg.sh" />
</project>
<!-- PawletOS Overlays --> <!-- PawletOS Overlays -->
<project path="vendor/pawlet/fonts/ArcticonsSans" name="PawletOS/fonts_ArcticonsSans" remote="oxmc_git" revision="main" /> <project path="vendor/pawlet/fonts/ArcticonsSans" name="PawletOS/fonts_ArcticonsSans" remote="oxmc_git" revision="main" />
@@ -30,7 +19,7 @@
--> -->
<!-- Vendor (HALs, system apps, etc.) --> <!-- Vendor (HALs, system apps, etc.) -->
<project path="vendor/pawlet" name="PawletOS/android_vendor_pawlet" remote="oxmc_git" revision="android-16.0" /> <project path="vendor/pawlet" name="PawletOS/android_vendor_pawlet" remote="oxmc_git" revision="android-17.0" />
<!-- Patches (applied post-sync by PawletOS-Build/environ.py) --> <!-- Patches (applied post-sync by PawletOS-Build/environ.py) -->
<project path="vendor/pawlet/patches" name="PawletOS/patches" remote="oxmc_git" revision="android-16.0" /> <project path="vendor/pawlet/patches" name="PawletOS/patches" remote="oxmc_git" revision="android-16.0" />
@@ -45,10 +34,11 @@
--> -->
<!-- First party apps --> <!-- First party apps -->
<project path="packages/apps/Updater" name="PawletOS/android_packages_apps_Updater" remote="oxmc_git" revision="android-16.0" /> <project path="packages/apps/Updater" name="PawletOS/android_packages_apps_Updater" remote="oxmc_git" revision="android-17.0" />
<project path="packages/apps/SetupWizard" name="PawletOS/android_packages_apps_SetupWizard" remote="oxmc_git" revision="android-16.0" /> <project path="packages/apps/SetupWizard" name="PawletOS/android_packages_apps_SetupWizard" remote="oxmc_git" revision="android-16.0" />
<project path="packages/apps/ConfigProvisioner" name="PawletOS/app_ConfigProvisioner" remote="oxmc_git" revision="main" /> <project path="packages/apps/ConfigProvisioner" name="PawletOS/app_ConfigProvisioner" remote="oxmc_git" revision="main" />
<project path="packages/apps/PawletSettings" name="PawletOS/app_PawletSettings" remote="oxmc_git" revision="main" /> <project path="packages/apps/PawletSettings" name="PawletOS/app_PawletSettings" remote="oxmc_git" revision="main" />
<project path="packages/apps/BgUpd" name="PawletOS/android_packages_apps_BgUpd" remote="oxmc_git" revision="android-17.0" />
<!-- MicroG --> <!-- MicroG -->
<project path="vendor/partner_gms" name="PawletOS/vendor_partner_gms" remote="oxmc_git" revision="master" /> <project path="vendor/partner_gms" name="PawletOS/vendor_partner_gms" remote="oxmc_git" revision="master" />
@@ -76,4 +66,4 @@
<project path="vendor/Lawnchair/LawnchairLauncher" name="PawletOS/prebuilt_lawnchair" remote="oxmc_git" revision="android-16.0" /> <project path="vendor/Lawnchair/LawnchairLauncher" name="PawletOS/prebuilt_lawnchair" remote="oxmc_git" revision="android-16.0" />
<project path="vendor/vivaldi/VivaldiBrowser" name="PawletOS/prebuilt_VivaldiBrowser" remote="oxmc_git" revision="main" /> <project path="vendor/vivaldi/VivaldiBrowser" name="PawletOS/prebuilt_VivaldiBrowser" remote="oxmc_git" revision="main" />
<project path="vendor/floris/Florisboard" name="PawletOS/prebuilt_Florisboard" remote="oxmc_git" revision="main" /> <project path="vendor/floris/Florisboard" name="PawletOS/prebuilt_Florisboard" remote="oxmc_git" revision="main" />
</manifest> </manifest>
@@ -12,6 +12,8 @@
<remove-project name="platform/hardware/invensense" /> <remove-project name="platform/hardware/invensense" />
<remove-project name="platform/hardware/nxp/keymint" /> <remove-project name="platform/hardware/nxp/keymint" />
<remove-project name="platform/hardware/nxp/nfc" /> <remove-project name="platform/hardware/nxp/nfc" />
<remove-project name="platform/hardware/nxp/nxp_mcu_loader" />
<remove-project name="platform/hardware/nxp/uwb" />
<remove-project name="platform/hardware/nxp/secure_element" /> <remove-project name="platform/hardware/nxp/secure_element" />
<remove-project name="platform/hardware/nxp/weaver" /> <remove-project name="platform/hardware/nxp/weaver" />
<remove-project name="platform/hardware/qcom/wlan" /> <remove-project name="platform/hardware/qcom/wlan" />
@@ -19,6 +21,7 @@
<remove-project name="platform/hardware/st/secure_element2" /> <remove-project name="platform/hardware/st/secure_element2" />
<remove-project name="platform/hardware/samsung/nfc" /> <remove-project name="platform/hardware/samsung/nfc" />
<remove-project name="platform/hardware/synaptics/wlan" /> <remove-project name="platform/hardware/synaptics/wlan" />
<remove-project name="platform/hardware/telink/atv/refDesignRcu" />
<remove-project name="platform/hardware/ti/am57x" /> <remove-project name="platform/hardware/ti/am57x" />
<remove-project name="platform/prebuilts/clang/host/darwin-x86" /> <remove-project name="platform/prebuilts/clang/host/darwin-x86" />
<remove-project name="platform/prebuilts/go/darwin-x86" /> <remove-project name="platform/prebuilts/go/darwin-x86" />
+88
View File
@@ -0,0 +1,88 @@
### Device specific configuration to build AOSP Android 17 (android-17.0.0_r1) for Raspberry Pi 4 and Raspberry Pi 5.
Based on [RaspberryVanilla](https://github.com/raspberry-vanilla).
***
### How to build (Ubuntu Server 26.04 LTS):
After setting up the [Android build environment](../README.md#setup), do:
1. Install additional packages:
```
sudo apt-get install dosfstools e2fsprogs gdisk kpartx mtools rsync
```
2. Clone [PawletOS-Build](https://git.oxmc.me/PawletOS/PawletOS-Build) and install its dependencies:
```
git clone https://git.oxmc.me/PawletOS/PawletOS-Build
cd PawletOS-Build
pip3 install -r requirements.txt
```
3. Download the `repo.yml` config for this target:
```
curl -o repo.yml -L https://git.oxmc.me/PawletOS/android_local_manifest/raw/branch/android-17.0/rpi/repo.yml
```
Or optionally, to reduce download size with a shallow clone:
```
curl -o repo.yml -L https://git.oxmc.me/PawletOS/android_local_manifest/raw/branch/android-17.0/rpi/repo-shallow.yml
```
4. Run the build script (clones source and syncs it based on `repo.yml`):
```
python3 ./environ.py --applyPatches
```
5. source the environment:
```
. AOSP-Source/build/envsetup.sh
```
6. Select the device (`rpi4` or `rpi5`) and build target (normal, `tablet` for tablet, `tv` for Android TV, or `car` for Android Automotive):
```
lunch pawlet_rpi4-cp2a-userdebug
```
```
lunch pawlet_rpi4_tablet-cp2a-userdebug
```
```
lunch pawlet_rpi4_tv-cp2a-userdebug
```
```
lunch pawlet_rpi4_car-cp2a-userdebug
```
```
lunch pawlet_rpi5-cp2a-userdebug
```
```
lunch pawlet_rpi5_tablet-cp2a-userdebug
```
```
lunch pawlet_rpi5_tv-cp2a-userdebug
```
```
lunch pawlet_rpi5_car-cp2a-userdebug
```
7. Compile:
```
make bootimage systemimage systemextimage vendorimage productimage -j$(nproc)
```
8. Make flashable image for the device (`rpi4` or `rpi5`):
```
./rpi4-mkimg.sh
```
```
./rpi5-mkimg.sh
```
+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<!-- PawletOS devices -->
<project path="device/pawlet/rpi" name="PawletOS/pawlet_rpi_common" remote="oxmc_git" revision="android-16.0" />
<project path="device/pawlet/rpi4" name="PawletOS/pawlet_rpi4" remote="oxmc_git" revision="android-16.0">
<linkfile src="mkimg.sh" dest="rpi4-mkimg.sh" />
<linkfile src="wrimg.sh" dest="rpi4-wrimg.sh" />
</project>
<project path="device/pawlet/rpi5" name="PawletOS/pawlet_rpi5" remote="oxmc_git" revision="android-16.0">
<linkfile src="mkimg.sh" dest="rpi5-mkimg.sh" />
<linkfile src="wrimg.sh" dest="rpi5-wrimg.sh" />
</project>
</manifest>
+17
View File
@@ -0,0 +1,17 @@
# Android 17.0.0_r1 local manifest for PawletOS on Raspberry Pi
repo:
url: "https://android.googlesource.com/platform/manifest"
branch: "android-17.0.0_r1"
options:
- "--depth=1"
local_manifests:
manifest_common_pawletos: "https://git.oxmc.me/PawletOS/android_local_manifest/raw/branch/android-17.0/common/pawletos.xml"
manifest_brcm_rpi: "https://git.oxmc.me/PawletOS/android_local_manifest/raw/branch/android-17.0/rpi/vendor/brcm_rpi.xml"
manifest_lineageos: "https://git.oxmc.me/PawletOS/android_local_manifest/raw/branch/android-17.0/common/vendor/lineageos.xml"
manifest_pawletos: "https://git.oxmc.me/PawletOS/android_local_manifest/raw/branch/android-17.0/rpi/pawletos.xml"
remove_projects:
- "https://git.oxmc.me/PawletOS/android_local_manifest/raw/branch/android-17.0/common/remove_projects.xml"
patches:
dirs:
- vendor/pawlet/patches
+13
View File
@@ -0,0 +1,13 @@
# Android 17.0.0_r1 local manifest for PawletOS on Raspberry Pi
repo:
url: "https://android.googlesource.com/platform/manifest"
branch: "android-17.0.0_r1"
local_manifests:
manifest_common_pawletos: "https://git.oxmc.me/PawletOS/android_local_manifest/raw/branch/android-17.0/common/pawletos.xml"
manifest_brcm_rpi: "https://git.oxmc.me/PawletOS/android_local_manifest/raw/branch/android-17.0/rpi/vendor/brcm_rpi.xml"
manifest_lineageos: "https://git.oxmc.me/PawletOS/android_local_manifest/raw/branch/android-17.0/common/vendor/lineageos.xml"
manifest_pawletos: "https://git.oxmc.me/PawletOS/android_local_manifest/raw/branch/android-17.0/rpi/pawletos.xml"
patches:
dirs:
- vendor/pawlet/patches
+2 -2
View File
@@ -30,7 +30,7 @@
<!-- Camera --> <!-- Camera -->
<remove-project name="platform/external/libcamera" /> <remove-project name="platform/external/libcamera" />
<project path="external/libcamera" name="PawletOS/external_libcamera" remote="oxmc_git" revision="android-16.0" /> <project path="external/libcamera" name="PawletOS/external_libcamera" remote="oxmc_git" revision="android-17.0" />
<project path="external/libpisp" name="raspberry-vanilla/android_external_libpisp" 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/libyuv_chromium" name="raspberry-vanilla/android_external_libyuv_chromium" remote="github" revision="android-16.0" /> <project path="external/libyuv_chromium" name="raspberry-vanilla/android_external_libyuv_chromium" remote="github" revision="android-16.0" />
@@ -38,7 +38,7 @@
<remove-project name="platform/external/libudev-zero" /> <remove-project name="platform/external/libudev-zero" />
<project path="external/ffmpeg" name="raspberry-vanilla/android_external_ffmpeg" remote="github" revision="android-16.0" /> <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/ffmpeg_codec2" name="raspberry-vanilla/android_external_ffmpeg_codec2" remote="github" revision="android-16.0" />
<project path="external/libudev-zero" name="PawletOS/external_libudev-zero" remote="oxmc_git" revision="android-16.0" /> <project path="external/libudev-zero" name="PawletOS/external_libudev-zero" remote="oxmc_git" revision="android-17.0" />
<!-- Graphics --> <!-- Graphics -->
<remove-project name="platform/external/drm_hwcomposer" /> <remove-project name="platform/external/drm_hwcomposer" />