Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0d07f33021 | |||
| 2a8e194e89 | |||
| 68b32ff1ca | |||
| d403b8b206 | |||
| 366d734c4d |
@@ -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
|
|
||||||
```
|
|
||||||
|
|||||||
@@ -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" />
|
||||||
@@ -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" />
|
||||||
@@ -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
|
||||||
|
```
|
||||||
@@ -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>
|
||||||
@@ -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
|
||||||
@@ -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
@@ -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" />
|
||||||
Reference in New Issue
Block a user