🚀 Building Android from Source (AOSP 15) on Lenovo ThinkBook 16p G5 IRX
Author: Porfy Vidal
Platform: Ubuntu 22.04 LTS
Target: AOSP 15 (Vanilla Ice Cream, Cuttlefish Emulator)
🧩 1. System Overview
After multiple rebuilds and optimizations, this guide shows the complete setup for a working AOSP 15 development environment on the Lenovo ThinkBook 16p G5 IRX with Ubuntu 22.04.
Key goals:
- Compile AOSP 15 from source
- Run Cuttlefish emulator (x86_64 phone)
- Enable ADB access and app installation
- Automate system maintenance tasks
⚙️ 2. Preparing Ubuntu 22.04
Install the essentials and developer tools:
sudo apt update && sudo apt install -y \
openjdk-17-jdk python3 git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev libncurses5-dev libncurses5 \
x11proto-core-dev libx11-dev libgl1-mesa-dev libxml2-utils xsltproc unzip \
fontconfig repo ccache
Optional (but useful) developer tools:
sudo apt install -y htop nvtop iotop baobab gnome-disk-utility gparted \
vim nano gnome-tweaks filezilla qbittorrent chrome-gnome-shell
🧰 3. Set Up the AOSP Source Tree
mkdir ~/aosp15
cd ~/aosp15
repo init -u https://android.googlesource.com/platform/manifest -b aosp-main
To sync specific components only (faster iteration):
repo sync -j1 --fail-fast external/ComputeLibrary external/apache-harmony \
external/aws-sdk-java-v2 prebuilts/remoteexecution-client prebuilts/tools
Expected output:
repo sync has finished successfully.
🧱 4. Build Configuration
cd ~/aosp15
source build/envsetup.sh
Choose the target build:
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
🖥️ 5. Installing Cuttlefish Emulator Packages
Download the following from the official AOSP Cuttlefish build server:
cvd-host_package.tar.gz
aosp_cf_x86_64_only_phone-img-14253210.zip
Extract them:
mkdir ~/cuttlefish
tar -xzf ~/Downloads/cvd-host_package.tar.gz -C ~/cuttlefish
unzip ~/Downloads/aosp_cf_x86_64_only_phone-img-14253210.zip -d ~/cuttlefish
Verify images exist:
ls ~/cuttlefish | grep img
You should see:
boot.img
init_boot.img
super.img
userdata.img
vendor_boot.img
...
🧪 6. Launching the Emulator
cd ~/cuttlefish/bin
./launch_cvd
Once launched, check ADB connectivity:
adb devices
Expected:
List of devices attached
0.0.0.0:6520 device
Open an interactive shell:
adb shell
📦 7. Installing Apps via ADB
To install an APK:
adb install MyApp.apk
For .xapk packages:
- Unzip the
.xapk. - Find the contained
.apkfile. - Install it:
adb install app.apk
🧼 8. System Maintenance Automation
Create /usr/local/bin/sysrefresh to automate updates and cleanup:
#!/bin/bash
echo "============================================="
echo "🕒 System refresh started at: $(date)"
echo "============================================="
echo "🔄 Checking for package updates..."
UPDATES=$(apt list --upgradable 2>/dev/null | grep -v Listing | wc -l)
if [ "$UPDATES" -eq 0 ]; then
echo "☑️ No updates were needed. System is already up to date."
else
echo "🛠️ Installing updates..."
sudo apt update && sudo apt upgrade -y
fi
echo "🧹 Performing cleanup..."
sudo apt autoremove -y
sudo apt autoclean -y
echo "🧠 Disk space usage summary:"
df -h | grep -E '^/dev/nvme|Filesystem'
echo "---------------------------------------------"
echo "✅ Last refresh completed: $(date)"
echo "---------------------------------------------"
echo "🟢 sysrefresh complete."
Make it executable:
sudo chmod +x /usr/local/bin/sysrefresh
Run it any time:
sysrefresh
🖥️ 9. Display Configuration
Switching to Xorg restored full dual-monitor support.
Current setup:
- Internal display:
eDP-1(3200×2000) - External monitor:
HDMI-1-0(3840×2160)
Dual display:
xrandr --output eDP-1 --primary --mode 3200x2000 --pos 0x0
xrandr --output HDMI-1-0 --mode 3840x2160 --right-of eDP-1 --scale 0.5x0.5
External only:
xrandr --output eDP-1 --off --output HDMI-1-0 --auto
Internal only:
xrandr --output HDMI-1-0 --off --output eDP-1 --auto
🧩 10. Summary of Achievements
- ✅ AOSP 15 environment successfully built
- ✅ Cuttlefish emulator running smoothly
- ✅ ADB functional for app install and testing
- ✅ Automated maintenance script (sysrefresh)
- ✅ Dual-display working under Xorg
- ✅ Optimized Ubuntu 22.04 for development
💡 Final Thoughts
This setup transforms the ThinkBook 16p G5 IRX into a powerful Android development workstation. While the process takes patience, once configured, the environment is stable and production-ready.
“Building Android from source isn’t just about compiling code — it’s about understanding the entire ecosystem.”
No comments:
Post a Comment